CDMS code for testing sbc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE by shubham c

Committer:
krishanprajapat
Date:
Sat Feb 06 10:27:11 2016 +0000
Revision:
116:8f431a8bbe82
added common_functions.h file

Who changed what in which revision?

UserRevisionLine numberNew contents of line
krishanprajapat 116:8f431a8bbe82 1 #define get_call_sign(tm_ptr) {\
krishanprajapat 116:8f431a8bbe82 2 Base_tm* call_sign_tm = new Short_tm;\
krishanprajapat 116:8f431a8bbe82 3 call_sign_tm->next_TM = NULL;\
krishanprajapat 116:8f431a8bbe82 4 tm_ptr = call_sign_tm;\
krishanprajapat 116:8f431a8bbe82 5 uint8_t temp8 = TMID_CALL_SIGN;\
krishanprajapat 116:8f431a8bbe82 6 PUTtmid(call_sign_tm->fields, temp8);\
krishanprajapat 116:8f431a8bbe82 7 temp8 = SHORT_TM_CODE;\
krishanprajapat 116:8f431a8bbe82 8 PUTshort_or_long_tm(call_sign_tm->fields, temp8);\
krishanprajapat 116:8f431a8bbe82 9 for( int i = 0 ; i < TM_SHORT_SIZE ; ++i ){\
krishanprajapat 116:8f431a8bbe82 10 call_sign_tm->TM_string[i] = gCALL_SIGN_STRING[i];\
krishanprajapat 116:8f431a8bbe82 11 }\
krishanprajapat 116:8f431a8bbe82 12 }
krishanprajapat 116:8f431a8bbe82 13
krishanprajapat 116:8f431a8bbe82 14 #define get_ack_l1( tm_ptr ){\
krishanprajapat 116:8f431a8bbe82 15 Base_tc *current_TC = gHEAD_NODE_TCL;\
krishanprajapat 116:8f431a8bbe82 16 Base_tm *l1_ack = new Short_tm;\
krishanprajapat 116:8f431a8bbe82 17 /*APPEND TO THE tm_ptr HERE*/\
krishanprajapat 116:8f431a8bbe82 18 tm_ptr = l1_ack;\
krishanprajapat 116:8f431a8bbe82 19 fill_l1_ack(l1_ack);\
krishanprajapat 116:8f431a8bbe82 20 int TC_count = 0;\
krishanprajapat 116:8f431a8bbe82 21 int overflowCountL1 = 0;\
krishanprajapat 116:8f431a8bbe82 22 while(current_TC != NULL){\
krishanprajapat 116:8f431a8bbe82 23 if( overflowCountL1 < TCL_OVERFLOW_CONSTANT ){\
krishanprajapat 116:8f431a8bbe82 24 /*IF CRC PASS*/\
krishanprajapat 116:8f431a8bbe82 25 if( (GETcrc_pass(current_TC) == 1) ){\
krishanprajapat 116:8f431a8bbe82 26 if(TC_count > 4){\
krishanprajapat 116:8f431a8bbe82 27 /*PENDING: FILL TC_EXEC_CODE, APPEND CRC TO THE TM*/\
krishanprajapat 116:8f431a8bbe82 28 put_crc_l1_ack( l1_ack );\
krishanprajapat 116:8f431a8bbe82 29 /*extend the TM linked list*/\
krishanprajapat 116:8f431a8bbe82 30 TC_count = 0;\
krishanprajapat 116:8f431a8bbe82 31 l1_ack->next_TM = new Short_tm;\
krishanprajapat 116:8f431a8bbe82 32 l1_ack = l1_ack->next_TM;\
krishanprajapat 116:8f431a8bbe82 33 fill_l1_ack(l1_ack);\
krishanprajapat 116:8f431a8bbe82 34 }\
krishanprajapat 116:8f431a8bbe82 35 /*PSC starts from 7th byte*/\
krishanprajapat 116:8f431a8bbe82 36 l1_ack->TM_string[6+TC_count] = GETpacket_seq_count(current_TC);\
krishanprajapat 116:8f431a8bbe82 37 /*TC exec status*/\
krishanprajapat 116:8f431a8bbe82 38 switch(TC_count){\
krishanprajapat 116:8f431a8bbe82 39 case 0:\
krishanprajapat 116:8f431a8bbe82 40 l1_ack->TM_string[3] = (GETexec_status(current_TC)) & 0x0F;\
krishanprajapat 116:8f431a8bbe82 41 break;\
krishanprajapat 116:8f431a8bbe82 42 case 1:\
krishanprajapat 116:8f431a8bbe82 43 l1_ack->TM_string[4] = (GETexec_status(current_TC) << 4) & 0xF0;\
krishanprajapat 116:8f431a8bbe82 44 break;\
krishanprajapat 116:8f431a8bbe82 45 case 2:\
krishanprajapat 116:8f431a8bbe82 46 l1_ack->TM_string[4] |= (GETexec_status(current_TC)) & 0x0F;\
krishanprajapat 116:8f431a8bbe82 47 break;\
krishanprajapat 116:8f431a8bbe82 48 case 3:\
krishanprajapat 116:8f431a8bbe82 49 l1_ack->TM_string[5] = (GETexec_status(current_TC) << 4) & 0xF0;\
krishanprajapat 116:8f431a8bbe82 50 break;\
krishanprajapat 116:8f431a8bbe82 51 case 4:\
krishanprajapat 116:8f431a8bbe82 52 l1_ack->TM_string[5] |= (GETexec_status(current_TC)) & 0x0F;\
krishanprajapat 116:8f431a8bbe82 53 }\
krishanprajapat 116:8f431a8bbe82 54 ++TC_count;\
krishanprajapat 116:8f431a8bbe82 55 }\
krishanprajapat 116:8f431a8bbe82 56 current_TC = current_TC->next_TC;\
krishanprajapat 116:8f431a8bbe82 57 ++overflowCountL1;\
krishanprajapat 116:8f431a8bbe82 58 }\
krishanprajapat 116:8f431a8bbe82 59 else{\
krishanprajapat 116:8f431a8bbe82 60 /*PENDING: RESET CDMS*/\
krishanprajapat 116:8f431a8bbe82 61 break;\
krishanprajapat 116:8f431a8bbe82 62 }\
krishanprajapat 116:8f431a8bbe82 63 }\
krishanprajapat 116:8f431a8bbe82 64 /*FILL UP THE REMAINING FIELDS WITH 0x00 as PSC, AND 0xF as tc exec status*/\
krishanprajapat 116:8f431a8bbe82 65 if( (TC_count < 5) && (TC_count != 0) ){\
krishanprajapat 116:8f431a8bbe82 66 while(TC_count < 5){\
krishanprajapat 116:8f431a8bbe82 67 l1_ack->TM_string[6+TC_count] = 0x00;\
krishanprajapat 116:8f431a8bbe82 68 switch(TC_count){\
krishanprajapat 116:8f431a8bbe82 69 case 1:\
krishanprajapat 116:8f431a8bbe82 70 l1_ack->TM_string[4] = 0xF0;\
krishanprajapat 116:8f431a8bbe82 71 break;\
krishanprajapat 116:8f431a8bbe82 72 case 2:\
krishanprajapat 116:8f431a8bbe82 73 l1_ack->TM_string[4] |= 0x0F;\
krishanprajapat 116:8f431a8bbe82 74 break;\
krishanprajapat 116:8f431a8bbe82 75 case 3:\
krishanprajapat 116:8f431a8bbe82 76 l1_ack->TM_string[5] = 0xF0;\
krishanprajapat 116:8f431a8bbe82 77 break;\
krishanprajapat 116:8f431a8bbe82 78 case 4:\
krishanprajapat 116:8f431a8bbe82 79 l1_ack->TM_string[5] |= 0x0F;\
krishanprajapat 116:8f431a8bbe82 80 }\
krishanprajapat 116:8f431a8bbe82 81 ++TC_count;\
krishanprajapat 116:8f431a8bbe82 82 }\
krishanprajapat 116:8f431a8bbe82 83 }\
krishanprajapat 116:8f431a8bbe82 84 put_crc_l1_ack(l1_ack);\
krishanprajapat 116:8f431a8bbe82 85 }