11th feb i2c checking chaitu's code
Dependencies: SimpleDMA eeprom mbed-rtos mbed
Fork of CDMS_CODE_FM_28JAN2017 by
common_functions.h@116:8f431a8bbe82, 2016-02-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |