PWM and ALGO updated.. PWM getting generated
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of TFR_BAE_vr1_1working_finally_PWM_CTRLALGO_update by
TCTM.cpp@14:ccdf8790a15e, 2016-04-07 (annotated)
- Committer:
- Bragadeesh153
- Date:
- Thu Apr 07 18:12:20 2016 +0000
- Revision:
- 14:ccdf8790a15e
- Parent:
- 6:036d08b62785
Commissioning included , both Control_Algo and Hardware
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sakthipriya | 0:7b4c00e3912f | 1 | #include "mbed.h" |
sakthipriya | 0:7b4c00e3912f | 2 | #include "TCTM.h" |
sakthipriya | 3:07e15677a75c | 3 | #include "crc.h" |
sakthipriya | 4:39a4ae8c7ecd | 4 | #include "EPS.h" |
sakthipriya | 5:bb592f3185cc | 5 | #include "pin_config.h" |
sakthipriya | 5:bb592f3185cc | 6 | #include "FreescaleIAP.h" |
sakthipriya | 6:036d08b62785 | 7 | #include "inttypes.h" |
sakthipriya | 6:036d08b62785 | 8 | #include "iostream" |
sakthipriya | 6:036d08b62785 | 9 | #include "stdint.h" |
sakthipriya | 6:036d08b62785 | 10 | #include "cassert" |
sakthipriya | 0:7b4c00e3912f | 11 | |
sakthipriya | 5:bb592f3185cc | 12 | extern DigitalOut gpo1; // enable of att sens2 switch |
sakthipriya | 5:bb592f3185cc | 13 | extern DigitalOut gpo2; // enable of att sens switch |
sakthipriya | 5:bb592f3185cc | 14 | |
sakthipriya | 5:bb592f3185cc | 15 | extern DigitalOut TRXY_SW; //TR XY Switch |
sakthipriya | 5:bb592f3185cc | 16 | extern DigitalOut TRZ_SW; //TR Z Switch |
sakthipriya | 5:bb592f3185cc | 17 | extern DigitalOut CDMS_RESET; // CDMS RESET |
sakthipriya | 5:bb592f3185cc | 18 | extern DigitalOut BCN_SW; //Beacon switch |
sakthipriya | 4:39a4ae8c7ecd | 19 | |
sakthipriya | 4:39a4ae8c7ecd | 20 | extern BAE_HK_actual actual_data; |
sakthipriya | 4:39a4ae8c7ecd | 21 | extern BAE_HK_min_max bae_HK_minmax; |
sakthipriya | 4:39a4ae8c7ecd | 22 | extern uint32_t BAE_STATUS; |
sakthipriya | 5:bb592f3185cc | 23 | extern float data[6]; |
sakthipriya | 5:bb592f3185cc | 24 | extern float moment[3]; |
sakthipriya | 5:bb592f3185cc | 25 | |
Bragadeesh153 | 14:ccdf8790a15e | 26 | extern PwmOut PWM1; //x //Functions used to generate PWM signal |
Bragadeesh153 | 14:ccdf8790a15e | 27 | extern PwmOut PWM2; //y |
Bragadeesh153 | 14:ccdf8790a15e | 28 | extern PwmOut PWM3; //z //PWM output comes from pins p6 |
Bragadeesh153 | 14:ccdf8790a15e | 29 | |
Bragadeesh153 | 14:ccdf8790a15e | 30 | |
sakthipriya | 5:bb592f3185cc | 31 | extern void FCTN_ATS_DATA_ACQ(); |
sakthipriya | 5:bb592f3185cc | 32 | extern void FCTN_ACS_CNTRLALGO(float*,float*); |
sakthipriya | 0:7b4c00e3912f | 33 | |
sakthipriya | 3:07e15677a75c | 34 | uint8_t* FCTN_BAE_TM_TC (uint8_t* tc) |
sakthipriya | 0:7b4c00e3912f | 35 | |
sakthipriya | 3:07e15677a75c | 36 | { |
sakthipriya | 3:07e15677a75c | 37 | uint8_t service_type=(tc[2]&0xF0); |
sakthipriya | 3:07e15677a75c | 38 | uint8_t* tm; |
sakthipriya | 3:07e15677a75c | 39 | uint16_t crc16; |
sakthipriya | 3:07e15677a75c | 40 | |
sakthipriya | 3:07e15677a75c | 41 | |
sakthipriya | 3:07e15677a75c | 42 | switch(service_type) |
sakthipriya | 3:07e15677a75c | 43 | { |
sakthipriya | 3:07e15677a75c | 44 | case 0x60: |
sakthipriya | 3:07e15677a75c | 45 | { |
sakthipriya | 3:07e15677a75c | 46 | printf("Memory Management Service\r\n"); |
sakthipriya | 3:07e15677a75c | 47 | uint8_t service_subtype=(tc[2]&0x0F); |
sakthipriya | 3:07e15677a75c | 48 | |
sakthipriya | 3:07e15677a75c | 49 | switch(service_subtype) |
sakthipriya | 3:07e15677a75c | 50 | { |
sakthipriya | 3:07e15677a75c | 51 | case 0x01: |
sakthipriya | 3:07e15677a75c | 52 | { |
sakthipriya | 3:07e15677a75c | 53 | printf("Read from Flash\r\n"); |
sakthipriya | 3:07e15677a75c | 54 | } |
sakthipriya | 3:07e15677a75c | 55 | case 0x02: |
sakthipriya | 3:07e15677a75c | 56 | { |
sakthipriya | 4:39a4ae8c7ecd | 57 | printf("Read from RAM\r\n"); |
sakthipriya | 4:39a4ae8c7ecd | 58 | switch(tc[3]) |
sakthipriya | 4:39a4ae8c7ecd | 59 | { |
sakthipriya | 5:bb592f3185cc | 60 | case 0x01: |
sakthipriya | 5:bb592f3185cc | 61 | { |
sakthipriya | 5:bb592f3185cc | 62 | printf("Read MUX DATA\r\n"); |
sakthipriya | 5:bb592f3185cc | 63 | tm[0] = 0x60; |
sakthipriya | 5:bb592f3185cc | 64 | tm[1] = tc[0]; |
sakthipriya | 5:bb592f3185cc | 65 | tm[2] = ACK_CODE; |
sakthipriya | 5:bb592f3185cc | 66 | for(int i=0; i<16; i++) //16*4 = 64 bytes //tm[4] to tm[67] filled |
sakthipriya | 5:bb592f3185cc | 67 | FCTN_CONVERT_FLOAT(actual_data.voltage_actual[i], &tm[4+(i*4)]); |
sakthipriya | 5:bb592f3185cc | 68 | for(int i=0; i<12; i++) //12*4 = 48 //tm[68] to tm[115] filled |
sakthipriya | 5:bb592f3185cc | 69 | FCTN_CONVERT_FLOAT(actual_data.current_actual[i],&tm[68 + (i*4)]); |
sakthipriya | 5:bb592f3185cc | 70 | for (int i=116; i<132;i++) |
sakthipriya | 5:bb592f3185cc | 71 | { |
sakthipriya | 5:bb592f3185cc | 72 | tm[i] = 0x00; |
sakthipriya | 5:bb592f3185cc | 73 | } |
sakthipriya | 5:bb592f3185cc | 74 | crc16 = CRC::crc16_gen(tm,132); |
sakthipriya | 5:bb592f3185cc | 75 | tm[132] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 5:bb592f3185cc | 76 | tm[133] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 5:bb592f3185cc | 77 | return tm; |
sakthipriya | 5:bb592f3185cc | 78 | } |
sakthipriya | 5:bb592f3185cc | 79 | case 0x02: |
sakthipriya | 4:39a4ae8c7ecd | 80 | { |
sakthipriya | 4:39a4ae8c7ecd | 81 | printf("Read HK\r\n"); |
sakthipriya | 4:39a4ae8c7ecd | 82 | tm[0] = 0x60; |
sakthipriya | 4:39a4ae8c7ecd | 83 | tm[1] = tc[0]; |
sakthipriya | 4:39a4ae8c7ecd | 84 | tm[2] = ACK_CODE; |
sakthipriya | 5:bb592f3185cc | 85 | FCTN_CONVERT_FLOAT(actual_data.Batt_temp_actual[0],&tm[4]); //tm[4]-tm[7] |
sakthipriya | 5:bb592f3185cc | 86 | FCTN_CONVERT_FLOAT(actual_data.Batt_temp_actual[1],&tm[8]); //tm[8]- tm[11] |
sakthipriya | 5:bb592f3185cc | 87 | for(int i=0; i<4; i++) |
sakthipriya | 5:bb592f3185cc | 88 | FCTN_CONVERT_FLOAT(actual_data.Batt_gauge_actual[i],&tm[12+(i*4)]); //tm[12] - tm[27] |
sakthipriya | 5:bb592f3185cc | 89 | FCTN_CONVERT_FLOAT(actual_data.BAE_temp_actual,&tm[28]); //tm[28] - tm[31] |
sakthipriya | 5:bb592f3185cc | 90 | tm[32] = (uint8_t)actual_data.power_mode; |
sakthipriya | 5:bb592f3185cc | 91 | tm[33] = actual_data.faultPoll_status; |
sakthipriya | 5:bb592f3185cc | 92 | tm[34] = actual_data.faultIr_status; |
sakthipriya | 5:bb592f3185cc | 93 | for(int i=0; i<3; i++) |
sakthipriya | 5:bb592f3185cc | 94 | FCTN_CONVERT_FLOAT(actual_data.AngularSpeed_actual[i],&tm[35+(i*4)]); //35 -46 |
sakthipriya | 5:bb592f3185cc | 95 | for(int i=0; i<3; i++) |
sakthipriya | 5:bb592f3185cc | 96 | FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[i],&tm[47+(i*4)]); //47 -58 |
sakthipriya | 5:bb592f3185cc | 97 | FCTN_CONVERT_FLOAT(actual_data.Batt_voltage_actual,&tm[59]); //59 - 62 |
sakthipriya | 5:bb592f3185cc | 98 | for (int i=63; i<132;i++) |
sakthipriya | 4:39a4ae8c7ecd | 99 | { |
sakthipriya | 5:bb592f3185cc | 100 | tm[i] = 0x00; |
sakthipriya | 4:39a4ae8c7ecd | 101 | } |
sakthipriya | 4:39a4ae8c7ecd | 102 | crc16 = CRC::crc16_gen(tm,132); |
sakthipriya | 4:39a4ae8c7ecd | 103 | tm[132] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 4:39a4ae8c7ecd | 104 | tm[133] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 5:bb592f3185cc | 105 | return tm; |
sakthipriya | 4:39a4ae8c7ecd | 106 | |
sakthipriya | 5:bb592f3185cc | 107 | } |
sakthipriya | 5:bb592f3185cc | 108 | case 0x03: |
sakthipriya | 4:39a4ae8c7ecd | 109 | { |
sakthipriya | 4:39a4ae8c7ecd | 110 | printf("Read min max data"); |
sakthipriya | 5:bb592f3185cc | 111 | tm[0] = 0x60; |
sakthipriya | 5:bb592f3185cc | 112 | tm[1] = tc[0]; |
sakthipriya | 5:bb592f3185cc | 113 | tm[2] = ACK_CODE; |
sakthipriya | 5:bb592f3185cc | 114 | for(int i=4; i<20; i++) |
sakthipriya | 5:bb592f3185cc | 115 | tm[i] = (uint8_t)bae_HK_minmax.voltage_max[i-4]; |
sakthipriya | 5:bb592f3185cc | 116 | for(int i=20; i<32; i++) |
sakthipriya | 5:bb592f3185cc | 117 | tm[i] = (uint8_t)bae_HK_minmax.current_max[i-20]; |
sakthipriya | 5:bb592f3185cc | 118 | tm[32] = (uint8_t)bae_HK_minmax.Batt_temp_max[0]; |
sakthipriya | 5:bb592f3185cc | 119 | tm[33] = (uint8_t)bae_HK_minmax.Batt_temp_max[1]; |
sakthipriya | 5:bb592f3185cc | 120 | tm[34] = (uint8_t)bae_HK_minmax.Batt_gauge_max[0]; |
sakthipriya | 5:bb592f3185cc | 121 | tm[35] = (uint8_t)bae_HK_minmax.Batt_gauge_max[1]; |
sakthipriya | 5:bb592f3185cc | 122 | tm[36] = (uint8_t)bae_HK_minmax.Batt_gauge_max[2]; |
sakthipriya | 5:bb592f3185cc | 123 | tm[37] = (uint8_t)bae_HK_minmax.BAE_temp_max; |
sakthipriya | 5:bb592f3185cc | 124 | FCTN_CONVERT_FLOAT(bae_HK_minmax.AngularSpeed_max[0],&tm[38]); //tm[38] - tm[41] |
sakthipriya | 5:bb592f3185cc | 125 | FCTN_CONVERT_FLOAT(bae_HK_minmax.AngularSpeed_max[1],&tm[42]); //tm[42] - tm[45] |
sakthipriya | 5:bb592f3185cc | 126 | FCTN_CONVERT_FLOAT(bae_HK_minmax.AngularSpeed_max[2],&tm[46]); //tm[46] - tm[49] |
sakthipriya | 5:bb592f3185cc | 127 | FCTN_CONVERT_FLOAT(bae_HK_minmax.Bvalue_max[0],&tm[50]); //tm[50] - tm[53] |
sakthipriya | 5:bb592f3185cc | 128 | FCTN_CONVERT_FLOAT(bae_HK_minmax.Bvalue_max[1],&tm[54]); //tm[54] - tm[57] |
sakthipriya | 5:bb592f3185cc | 129 | FCTN_CONVERT_FLOAT(bae_HK_minmax.Bvalue_max[2],&tm[58]); //tm[58] - tm[61] |
sakthipriya | 5:bb592f3185cc | 130 | tm[62] = (uint8_t)bae_HK_minmax.Bvalue_max[0]; |
sakthipriya | 5:bb592f3185cc | 131 | tm[63] = (uint8_t)bae_HK_minmax.Bvalue_max[1]; |
sakthipriya | 5:bb592f3185cc | 132 | tm[64] = (uint8_t)bae_HK_minmax.Bvalue_max[2]; |
sakthipriya | 5:bb592f3185cc | 133 | tm[65] = (uint8_t)bae_HK_minmax.Batt_voltage_max; |
sakthipriya | 5:bb592f3185cc | 134 | for(int i=66; i<82; i++) |
sakthipriya | 5:bb592f3185cc | 135 | tm[i] = (uint8_t)bae_HK_minmax.voltage_min[i-66]; |
sakthipriya | 5:bb592f3185cc | 136 | for(int i=82; i<94; i++) |
sakthipriya | 5:bb592f3185cc | 137 | tm[i] = (uint8_t)bae_HK_minmax.current_min[i-82]; |
sakthipriya | 5:bb592f3185cc | 138 | tm[94] = (uint8_t)bae_HK_minmax.Batt_temp_min[0]; |
sakthipriya | 5:bb592f3185cc | 139 | tm[95] = (uint8_t)bae_HK_minmax.Batt_temp_min[1]; |
sakthipriya | 5:bb592f3185cc | 140 | tm[96] = (uint8_t)bae_HK_minmax.Batt_gauge_min[0]; |
sakthipriya | 5:bb592f3185cc | 141 | tm[97] = (uint8_t)bae_HK_minmax.Batt_gauge_min[1]; |
sakthipriya | 5:bb592f3185cc | 142 | tm[98] = (uint8_t)bae_HK_minmax.Batt_gauge_min[2]; |
sakthipriya | 5:bb592f3185cc | 143 | tm[99] = (uint8_t)bae_HK_minmax.BAE_temp_min; |
sakthipriya | 5:bb592f3185cc | 144 | FCTN_CONVERT_FLOAT(bae_HK_minmax.AngularSpeed_min[0],&tm[100]); //tm[100] - tm[103] |
sakthipriya | 5:bb592f3185cc | 145 | FCTN_CONVERT_FLOAT(bae_HK_minmax.AngularSpeed_min[1],&tm[104]); //tm[104] - tm[107] |
sakthipriya | 5:bb592f3185cc | 146 | FCTN_CONVERT_FLOAT(bae_HK_minmax.AngularSpeed_min[2],&tm[108]); //tm[108] - tm[111] |
sakthipriya | 5:bb592f3185cc | 147 | FCTN_CONVERT_FLOAT(bae_HK_minmax.Bvalue_min[0],&tm[112]); //tm[112] - tm[115] |
sakthipriya | 5:bb592f3185cc | 148 | FCTN_CONVERT_FLOAT(bae_HK_minmax.Bvalue_min[1],&tm[116]); //tm[116] - tm[119] |
sakthipriya | 5:bb592f3185cc | 149 | FCTN_CONVERT_FLOAT(bae_HK_minmax.Bvalue_min[2],&tm[120]); //tm[120] - tm[123] |
sakthipriya | 5:bb592f3185cc | 150 | tm[124] = (uint8_t)bae_HK_minmax.Batt_voltage_min; |
sakthipriya | 5:bb592f3185cc | 151 | for (int i=125; i<132;i++) |
sakthipriya | 5:bb592f3185cc | 152 | { |
sakthipriya | 5:bb592f3185cc | 153 | tm[i] = 0x00; |
sakthipriya | 5:bb592f3185cc | 154 | } |
sakthipriya | 5:bb592f3185cc | 155 | crc16 = CRC::crc16_gen(tm,132); |
sakthipriya | 5:bb592f3185cc | 156 | tm[132] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 5:bb592f3185cc | 157 | tm[133] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 5:bb592f3185cc | 158 | return tm; |
sakthipriya | 4:39a4ae8c7ecd | 159 | } |
sakthipriya | 5:bb592f3185cc | 160 | case 0x04: |
sakthipriya | 4:39a4ae8c7ecd | 161 | { |
sakthipriya | 4:39a4ae8c7ecd | 162 | printf("Read status"); |
sakthipriya | 5:bb592f3185cc | 163 | tm[0] = 0x60; |
sakthipriya | 5:bb592f3185cc | 164 | tm[1] = tc[0]; |
sakthipriya | 5:bb592f3185cc | 165 | tm[2] = ACK_CODE; |
sakthipriya | 5:bb592f3185cc | 166 | tm[4] = (BAE_STATUS>>24) & 0xFF; |
sakthipriya | 5:bb592f3185cc | 167 | tm[5] = (BAE_STATUS>>16) & 0xFF; |
sakthipriya | 5:bb592f3185cc | 168 | tm[6] = (BAE_STATUS>>8) & 0xFF; |
sakthipriya | 5:bb592f3185cc | 169 | tm[7] = BAE_STATUS & 0xFF; |
sakthipriya | 5:bb592f3185cc | 170 | for (int i=8; i<132;i++) |
sakthipriya | 5:bb592f3185cc | 171 | { |
sakthipriya | 5:bb592f3185cc | 172 | tm[i] = 0x00; |
sakthipriya | 5:bb592f3185cc | 173 | } |
sakthipriya | 5:bb592f3185cc | 174 | crc16 = CRC::crc16_gen(tm,132); |
sakthipriya | 5:bb592f3185cc | 175 | tm[132] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 5:bb592f3185cc | 176 | tm[133] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 5:bb592f3185cc | 177 | return tm; |
sakthipriya | 4:39a4ae8c7ecd | 178 | |
sakthipriya | 4:39a4ae8c7ecd | 179 | } |
sakthipriya | 4:39a4ae8c7ecd | 180 | } |
sakthipriya | 3:07e15677a75c | 181 | } |
sakthipriya | 3:07e15677a75c | 182 | case 0x05: |
sakthipriya | 3:07e15677a75c | 183 | { |
sakthipriya | 3:07e15677a75c | 184 | printf("Write on Flash\r\n"); |
sakthipriya | 3:07e15677a75c | 185 | } |
sakthipriya | 3:07e15677a75c | 186 | default: |
sakthipriya | 3:07e15677a75c | 187 | { |
sakthipriya | 3:07e15677a75c | 188 | printf("Invalid TC"); |
sakthipriya | 3:07e15677a75c | 189 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 190 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 191 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 192 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 193 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 194 | { |
sakthipriya | 3:07e15677a75c | 195 | tm[i]=0x00; |
sakthipriya | 0:7b4c00e3912f | 196 | } |
sakthipriya | 3:07e15677a75c | 197 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 198 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 199 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 200 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 201 | { |
sakthipriya | 3:07e15677a75c | 202 | tm[i]=0x00; |
sakthipriya | 0:7b4c00e3912f | 203 | } |
sakthipriya | 3:07e15677a75c | 204 | return tm; |
sakthipriya | 3:07e15677a75c | 205 | } |
sakthipriya | 3:07e15677a75c | 206 | } |
sakthipriya | 0:7b4c00e3912f | 207 | } |
sakthipriya | 0:7b4c00e3912f | 208 | |
sakthipriya | 3:07e15677a75c | 209 | case 0x80: |
sakthipriya | 3:07e15677a75c | 210 | { |
sakthipriya | 3:07e15677a75c | 211 | printf("Function Management Service\r\n"); |
sakthipriya | 3:07e15677a75c | 212 | uint8_t service_subtype=(tc[2]&0x0F); |
sakthipriya | 3:07e15677a75c | 213 | |
sakthipriya | 3:07e15677a75c | 214 | switch(service_subtype) |
sakthipriya | 3:07e15677a75c | 215 | { |
sakthipriya | 3:07e15677a75c | 216 | case 0x01: |
sakthipriya | 3:07e15677a75c | 217 | { |
sakthipriya | 3:07e15677a75c | 218 | printf("FMS Activated\r\n"); |
sakthipriya | 3:07e15677a75c | 219 | |
sakthipriya | 3:07e15677a75c | 220 | uint8_t pid=tc[3]; |
sakthipriya | 3:07e15677a75c | 221 | switch(pid) |
sakthipriya | 3:07e15677a75c | 222 | { |
sakthipriya | 5:bb592f3185cc | 223 | case 0xE0: |
sakthipriya | 3:07e15677a75c | 224 | { |
Bragadeesh153 | 14:ccdf8790a15e | 225 | |
Bragadeesh153 | 14:ccdf8790a15e | 226 | float B[3],W[3]; |
sakthipriya | 5:bb592f3185cc | 227 | printf("ACS_COMSN\r\n"); |
sakthipriya | 3:07e15677a75c | 228 | //ACK_L234_TM |
Bragadeesh153 | 14:ccdf8790a15e | 229 | uint8_t B_x[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 230 | uint8_t B_y[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 231 | uint8_t B_z[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 232 | uint8_t W_x[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 233 | uint8_t W_y[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 234 | uint8_t W_z[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 235 | |
Bragadeesh153 | 14:ccdf8790a15e | 236 | B_x[0]=tc[3]; |
Bragadeesh153 | 14:ccdf8790a15e | 237 | B_x[1]=tc[4]; |
Bragadeesh153 | 14:ccdf8790a15e | 238 | B_y[0]=tc[5]; |
Bragadeesh153 | 14:ccdf8790a15e | 239 | B_y[1]=tc[6]; |
Bragadeesh153 | 14:ccdf8790a15e | 240 | B_z[0]=tc[7]; |
Bragadeesh153 | 14:ccdf8790a15e | 241 | B_z[1]=tc[8]; |
Bragadeesh153 | 14:ccdf8790a15e | 242 | |
Bragadeesh153 | 14:ccdf8790a15e | 243 | W_x[0]=tc[9]; |
Bragadeesh153 | 14:ccdf8790a15e | 244 | W_x[1]=tc[10]; |
Bragadeesh153 | 14:ccdf8790a15e | 245 | W_y[0]=tc[11]; |
Bragadeesh153 | 14:ccdf8790a15e | 246 | W_y[1]=tc[12]; |
Bragadeesh153 | 14:ccdf8790a15e | 247 | W_z[0]=tc[13]; |
Bragadeesh153 | 14:ccdf8790a15e | 248 | W_z[1]=tc[14]; |
Bragadeesh153 | 14:ccdf8790a15e | 249 | |
Bragadeesh153 | 14:ccdf8790a15e | 250 | FCTN_CONVERT_UINT (B_x, &B[0]); |
Bragadeesh153 | 14:ccdf8790a15e | 251 | FCTN_CONVERT_UINT (B_y, &B[1]); |
Bragadeesh153 | 14:ccdf8790a15e | 252 | FCTN_CONVERT_UINT (B_z, &B[2]); |
Bragadeesh153 | 14:ccdf8790a15e | 253 | |
Bragadeesh153 | 14:ccdf8790a15e | 254 | FCTN_CONVERT_UINT (W_x, &W[0]); |
Bragadeesh153 | 14:ccdf8790a15e | 255 | FCTN_CONVERT_UINT (W_y, &W[1]); |
Bragadeesh153 | 14:ccdf8790a15e | 256 | FCTN_CONVERT_UINT (W_z, &W[2]); |
Bragadeesh153 | 14:ccdf8790a15e | 257 | |
Bragadeesh153 | 14:ccdf8790a15e | 258 | |
Bragadeesh153 | 14:ccdf8790a15e | 259 | |
Bragadeesh153 | 14:ccdf8790a15e | 260 | |
Bragadeesh153 | 14:ccdf8790a15e | 261 | |
sakthipriya | 3:07e15677a75c | 262 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 263 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 264 | tm[2]=ACK_CODE; |
Bragadeesh153 | 14:ccdf8790a15e | 265 | //FCTN_ATS_DATA_ACQ(); //get data |
sakthipriya | 5:bb592f3185cc | 266 | printf("gyro values\n\r"); |
sakthipriya | 5:bb592f3185cc | 267 | for(int i=0; i<3; i++) |
Bragadeesh153 | 14:ccdf8790a15e | 268 | printf("%f\n\r",W[i]); |
sakthipriya | 5:bb592f3185cc | 269 | printf("mag values\n\r"); |
Bragadeesh153 | 14:ccdf8790a15e | 270 | for(int i=0; i<3; i++) |
Bragadeesh153 | 14:ccdf8790a15e | 271 | printf("%f\n\r",B[i]); |
Bragadeesh153 | 14:ccdf8790a15e | 272 | //FCTN_CONVERT_FLOAT(data[0],&tm[4]); //tm[4] - tm[7] |
Bragadeesh153 | 14:ccdf8790a15e | 273 | //FCTN_CONVERT_FLOAT(data[1],&tm[8]); //tm[8] - tm[11] |
Bragadeesh153 | 14:ccdf8790a15e | 274 | //FCTN_CONVERT_FLOAT(data[2],&tm[12]); //tm[12] - tm[15] |
Bragadeesh153 | 14:ccdf8790a15e | 275 | //FCTN_CONVERT_FLOAT(data[0],&tm[16]); //tm[16] - tm[19] |
Bragadeesh153 | 14:ccdf8790a15e | 276 | //FCTN_CONVERT_FLOAT(data[1],&tm[20]); //tm[20] - tm[23] |
Bragadeesh153 | 14:ccdf8790a15e | 277 | //FCTN_CONVERT_FLOAT(data[2],&tm[24]); //tm[24] - tm[27] |
Bragadeesh153 | 14:ccdf8790a15e | 278 | //if((data[0]<8) && (data[1]<8) && (data[2] <8)) |
Bragadeesh153 | 14:ccdf8790a15e | 279 | // tm[28] = 1; // gyro values in correct range |
Bragadeesh153 | 14:ccdf8790a15e | 280 | //else |
Bragadeesh153 | 14:ccdf8790a15e | 281 | // tm[28] = 0; |
Bragadeesh153 | 14:ccdf8790a15e | 282 | //if ((data[3] > 20 ) && (data[4] >20) && (data[5]>20)&& (data[3] < 50 ) && (data[4] <50) && (data[5]<50)) |
Bragadeesh153 | 14:ccdf8790a15e | 283 | // tm[29] = 1; // mag values in correct range |
Bragadeesh153 | 14:ccdf8790a15e | 284 | //else |
Bragadeesh153 | 14:ccdf8790a15e | 285 | // tm[29] = 0; |
sakthipriya | 5:bb592f3185cc | 286 | |
Bragadeesh153 | 14:ccdf8790a15e | 287 | |
sakthipriya | 5:bb592f3185cc | 288 | // Control algo commissioning |
sakthipriya | 5:bb592f3185cc | 289 | FCTN_ACS_CNTRLALGO(B,W); |
Bragadeesh153 | 14:ccdf8790a15e | 290 | FCTN_CONVERT_FLOAT(moment[0],&tm[4]); //tm[4] - tm[7] |
Bragadeesh153 | 14:ccdf8790a15e | 291 | FCTN_CONVERT_FLOAT(moment[1],&tm[8]); //tm[8] - tm[11] |
Bragadeesh153 | 14:ccdf8790a15e | 292 | FCTN_CONVERT_FLOAT(moment[2],&tm[12]); //tm[12] - tm[15] |
sakthipriya | 5:bb592f3185cc | 293 | // to include commission TR as well |
Bragadeesh153 | 14:ccdf8790a15e | 294 | for(uint8_t i=16;i<132;i++) |
Bragadeesh153 | 14:ccdf8790a15e | 295 | { |
Bragadeesh153 | 14:ccdf8790a15e | 296 | tm[i]=0x00; |
Bragadeesh153 | 14:ccdf8790a15e | 297 | } |
Bragadeesh153 | 14:ccdf8790a15e | 298 | |
Bragadeesh153 | 14:ccdf8790a15e | 299 | crc16 = CRC::crc16_gen(tm,132); |
Bragadeesh153 | 14:ccdf8790a15e | 300 | tm[133] = (uint8_t)((crc16&0xFF00)>>8); |
Bragadeesh153 | 14:ccdf8790a15e | 301 | tm[134] = (uint8_t)(crc16&0x00FF); |
Bragadeesh153 | 14:ccdf8790a15e | 302 | return tm; |
Bragadeesh153 | 14:ccdf8790a15e | 303 | |
Bragadeesh153 | 14:ccdf8790a15e | 304 | } |
Bragadeesh153 | 14:ccdf8790a15e | 305 | |
Bragadeesh153 | 14:ccdf8790a15e | 306 | |
Bragadeesh153 | 14:ccdf8790a15e | 307 | |
Bragadeesh153 | 14:ccdf8790a15e | 308 | case 0xE1: |
Bragadeesh153 | 14:ccdf8790a15e | 309 | { |
Bragadeesh153 | 14:ccdf8790a15e | 310 | float moment_tc[3]; |
Bragadeesh153 | 14:ccdf8790a15e | 311 | printf("HARDWARE_COMSN\r\n"); |
Bragadeesh153 | 14:ccdf8790a15e | 312 | //ACK_L234_TM |
Bragadeesh153 | 14:ccdf8790a15e | 313 | uint8_t M0[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 314 | uint8_t M1[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 315 | uint8_t M2[2]; |
Bragadeesh153 | 14:ccdf8790a15e | 316 | |
Bragadeesh153 | 14:ccdf8790a15e | 317 | M0[0]=tc[3]; |
Bragadeesh153 | 14:ccdf8790a15e | 318 | M0[1]=tc[4]; |
Bragadeesh153 | 14:ccdf8790a15e | 319 | M1[0]=tc[5]; |
Bragadeesh153 | 14:ccdf8790a15e | 320 | M1[1]=tc[6]; |
Bragadeesh153 | 14:ccdf8790a15e | 321 | M2[0]=tc[7]; |
Bragadeesh153 | 14:ccdf8790a15e | 322 | M2[1]=tc[8]; |
Bragadeesh153 | 14:ccdf8790a15e | 323 | |
Bragadeesh153 | 14:ccdf8790a15e | 324 | |
Bragadeesh153 | 14:ccdf8790a15e | 325 | tm[0]=0xB0; |
Bragadeesh153 | 14:ccdf8790a15e | 326 | tm[1]=tc[0]; |
Bragadeesh153 | 14:ccdf8790a15e | 327 | tm[2]=ACK_CODE; |
Bragadeesh153 | 14:ccdf8790a15e | 328 | FCTN_CONVERT_UINT (M0, &moment_tc[0]); |
Bragadeesh153 | 14:ccdf8790a15e | 329 | FCTN_CONVERT_UINT (M1, &moment_tc[1]); |
Bragadeesh153 | 14:ccdf8790a15e | 330 | FCTN_CONVERT_UINT (M2, &moment_tc[2]); |
Bragadeesh153 | 14:ccdf8790a15e | 331 | |
Bragadeesh153 | 14:ccdf8790a15e | 332 | |
Bragadeesh153 | 14:ccdf8790a15e | 333 | |
Bragadeesh153 | 14:ccdf8790a15e | 334 | FCTN_ACS_GENPWM_MAIN(moment_tc); |
Bragadeesh153 | 14:ccdf8790a15e | 335 | |
Bragadeesh153 | 14:ccdf8790a15e | 336 | float PWM_measured[3]; |
Bragadeesh153 | 14:ccdf8790a15e | 337 | |
Bragadeesh153 | 14:ccdf8790a15e | 338 | PWM_measured[0] = PWM1.read(); |
Bragadeesh153 | 14:ccdf8790a15e | 339 | PWM_measured[1] = PWM2.read(); |
Bragadeesh153 | 14:ccdf8790a15e | 340 | PWM_measured[2] = PWM3.read(); |
Bragadeesh153 | 14:ccdf8790a15e | 341 | |
Bragadeesh153 | 14:ccdf8790a15e | 342 | |
Bragadeesh153 | 14:ccdf8790a15e | 343 | FCTN_CONVERT_FLOAT(PWM_measured[0],&tm[4]); //4-7 |
Bragadeesh153 | 14:ccdf8790a15e | 344 | FCTN_CONVERT_FLOAT(PWM_measured[1],&tm[8]); //8-11 |
Bragadeesh153 | 14:ccdf8790a15e | 345 | FCTN_CONVERT_FLOAT(PWM_measured[2],&tm[12]); //12-15 |
Bragadeesh153 | 14:ccdf8790a15e | 346 | for(int i=0; i<12; i++) |
Bragadeesh153 | 14:ccdf8790a15e | 347 | FCTN_CONVERT_FLOAT(actual_data.current_actual[i],&tm[16 + (i*4)]); |
Bragadeesh153 | 14:ccdf8790a15e | 348 | |
Bragadeesh153 | 14:ccdf8790a15e | 349 | |
Bragadeesh153 | 14:ccdf8790a15e | 350 | FCTN_ATS_DATA_ACQ(); //get data |
Bragadeesh153 | 14:ccdf8790a15e | 351 | |
Bragadeesh153 | 14:ccdf8790a15e | 352 | |
Bragadeesh153 | 14:ccdf8790a15e | 353 | // to include commission TR as well |
Bragadeesh153 | 14:ccdf8790a15e | 354 | for(uint8_t i=64;i<132;i++) |
sakthipriya | 3:07e15677a75c | 355 | { |
sakthipriya | 3:07e15677a75c | 356 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 357 | } |
sakthipriya | 5:bb592f3185cc | 358 | |
sakthipriya | 5:bb592f3185cc | 359 | crc16 = CRC::crc16_gen(tm,132); |
sakthipriya | 5:bb592f3185cc | 360 | tm[133] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 5:bb592f3185cc | 361 | tm[134] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 362 | return tm; |
sakthipriya | 3:07e15677a75c | 363 | |
sakthipriya | 3:07e15677a75c | 364 | } |
sakthipriya | 5:bb592f3185cc | 365 | /* case 0x02: |
sakthipriya | 3:07e15677a75c | 366 | { |
sakthipriya | 3:07e15677a75c | 367 | printf("Run P_EPS_MAIN\r\n"); |
sakthipriya | 3:07e15677a75c | 368 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 369 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 370 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 371 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 372 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 373 | { |
sakthipriya | 3:07e15677a75c | 374 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 375 | } |
sakthipriya | 3:07e15677a75c | 376 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 377 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 378 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 379 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 380 | { |
sakthipriya | 3:07e15677a75c | 381 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 382 | } |
sakthipriya | 3:07e15677a75c | 383 | return tm; |
sakthipriya | 3:07e15677a75c | 384 | } |
sakthipriya | 3:07e15677a75c | 385 | case 0x03: |
sakthipriya | 3:07e15677a75c | 386 | { |
sakthipriya | 3:07e15677a75c | 387 | printf("Run P_ACS_INIT\r\n"); |
sakthipriya | 3:07e15677a75c | 388 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 389 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 390 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 391 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 392 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 393 | { |
sakthipriya | 3:07e15677a75c | 394 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 395 | } |
sakthipriya | 3:07e15677a75c | 396 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 397 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 398 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 399 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 400 | { |
sakthipriya | 3:07e15677a75c | 401 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 402 | } |
sakthipriya | 3:07e15677a75c | 403 | return tm; |
sakthipriya | 3:07e15677a75c | 404 | } |
sakthipriya | 3:07e15677a75c | 405 | case 0x04: |
sakthipriya | 3:07e15677a75c | 406 | { |
sakthipriya | 3:07e15677a75c | 407 | printf("Run P_ACS_ACQ_DATA\r\n"); |
sakthipriya | 3:07e15677a75c | 408 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 409 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 410 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 411 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 412 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 413 | { |
sakthipriya | 3:07e15677a75c | 414 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 415 | } |
sakthipriya | 3:07e15677a75c | 416 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 417 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 418 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 419 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 420 | { |
sakthipriya | 3:07e15677a75c | 421 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 422 | } |
sakthipriya | 3:07e15677a75c | 423 | return tm; |
sakthipriya | 3:07e15677a75c | 424 | } |
sakthipriya | 3:07e15677a75c | 425 | case 0x05: |
sakthipriya | 3:07e15677a75c | 426 | { |
sakthipriya | 3:07e15677a75c | 427 | printf("Run P_ACS_MAIN\r\n"); |
sakthipriya | 3:07e15677a75c | 428 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 429 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 430 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 431 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 432 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 433 | { |
sakthipriya | 3:07e15677a75c | 434 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 435 | } |
sakthipriya | 3:07e15677a75c | 436 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 437 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 438 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 439 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 440 | { |
sakthipriya | 3:07e15677a75c | 441 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 442 | } |
sakthipriya | 3:07e15677a75c | 443 | return tm; |
sakthipriya | 3:07e15677a75c | 444 | } |
sakthipriya | 3:07e15677a75c | 445 | case 0x06: |
sakthipriya | 3:07e15677a75c | 446 | { |
sakthipriya | 3:07e15677a75c | 447 | printf("Run P_BCN_INIT\r\n"); |
sakthipriya | 3:07e15677a75c | 448 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 449 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 450 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 451 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 452 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 453 | { |
sakthipriya | 3:07e15677a75c | 454 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 455 | } |
sakthipriya | 3:07e15677a75c | 456 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 457 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 458 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 459 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 460 | { |
sakthipriya | 3:07e15677a75c | 461 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 462 | } |
sakthipriya | 3:07e15677a75c | 463 | return tm; |
sakthipriya | 3:07e15677a75c | 464 | } |
sakthipriya | 3:07e15677a75c | 465 | case 0x07: |
sakthipriya | 3:07e15677a75c | 466 | { |
sakthipriya | 3:07e15677a75c | 467 | printf("Run P_BCN_TX_MAIN\r\n"); |
sakthipriya | 3:07e15677a75c | 468 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 469 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 470 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 471 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 472 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 473 | { |
sakthipriya | 3:07e15677a75c | 474 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 475 | } |
sakthipriya | 3:07e15677a75c | 476 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 477 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 478 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 479 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 480 | { |
sakthipriya | 3:07e15677a75c | 481 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 482 | } |
sakthipriya | 3:07e15677a75c | 483 | return tm; |
sakthipriya | 5:bb592f3185cc | 484 | }*/ |
sakthipriya | 3:07e15677a75c | 485 | case 0x11: |
sakthipriya | 3:07e15677a75c | 486 | { |
sakthipriya | 3:07e15677a75c | 487 | printf("SW_ON_ACS_ATS1_SW_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 488 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 489 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 490 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 491 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 492 | gpo1 = 0; |
sakthipriya | 3:07e15677a75c | 493 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 494 | { |
sakthipriya | 3:07e15677a75c | 495 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 496 | } |
sakthipriya | 3:07e15677a75c | 497 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 498 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 499 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 500 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 501 | { |
sakthipriya | 3:07e15677a75c | 502 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 503 | } |
sakthipriya | 3:07e15677a75c | 504 | return tm; |
sakthipriya | 3:07e15677a75c | 505 | } |
sakthipriya | 3:07e15677a75c | 506 | case 0x12: |
sakthipriya | 3:07e15677a75c | 507 | { |
sakthipriya | 3:07e15677a75c | 508 | printf("SW_ON_ACS_ATS2_SW_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 509 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 510 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 511 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 512 | gpo2 = 0; |
sakthipriya | 5:bb592f3185cc | 513 | tm[2]=1; |
sakthipriya | 3:07e15677a75c | 514 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 515 | { |
sakthipriya | 3:07e15677a75c | 516 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 517 | } |
sakthipriya | 3:07e15677a75c | 518 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 519 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 520 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 521 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 522 | { |
sakthipriya | 3:07e15677a75c | 523 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 524 | } |
sakthipriya | 3:07e15677a75c | 525 | return tm; |
sakthipriya | 3:07e15677a75c | 526 | } |
sakthipriya | 3:07e15677a75c | 527 | case 0x13: |
sakthipriya | 3:07e15677a75c | 528 | { |
sakthipriya | 3:07e15677a75c | 529 | printf("SW_ON_ACS_TR_XY_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 530 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 531 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 532 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 533 | TRXY_SW = 1; |
sakthipriya | 5:bb592f3185cc | 534 | tm[2]=1; |
sakthipriya | 3:07e15677a75c | 535 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 536 | { |
sakthipriya | 3:07e15677a75c | 537 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 538 | } |
sakthipriya | 3:07e15677a75c | 539 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 540 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 541 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 542 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 543 | { |
sakthipriya | 3:07e15677a75c | 544 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 545 | } |
sakthipriya | 3:07e15677a75c | 546 | return tm; |
sakthipriya | 3:07e15677a75c | 547 | } |
sakthipriya | 3:07e15677a75c | 548 | case 0x14: |
sakthipriya | 3:07e15677a75c | 549 | { |
sakthipriya | 3:07e15677a75c | 550 | printf("SW_ON_ACS_TR_Z_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 551 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 552 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 553 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 554 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 555 | TRZ_SW = 1; |
sakthipriya | 3:07e15677a75c | 556 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 557 | { |
sakthipriya | 3:07e15677a75c | 558 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 559 | } |
sakthipriya | 3:07e15677a75c | 560 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 561 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 562 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 563 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 564 | { |
sakthipriya | 3:07e15677a75c | 565 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 566 | } |
sakthipriya | 3:07e15677a75c | 567 | return tm; |
sakthipriya | 3:07e15677a75c | 568 | } |
sakthipriya | 3:07e15677a75c | 569 | case 0x15: |
sakthipriya | 3:07e15677a75c | 570 | { |
sakthipriya | 3:07e15677a75c | 571 | printf("SW_ON_BCN_TX_SW_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 572 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 573 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 574 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 575 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 576 | BCN_SW = 0; |
sakthipriya | 3:07e15677a75c | 577 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 578 | { |
sakthipriya | 3:07e15677a75c | 579 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 580 | } |
sakthipriya | 3:07e15677a75c | 581 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 582 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 583 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 584 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 585 | { |
sakthipriya | 3:07e15677a75c | 586 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 587 | } |
sakthipriya | 3:07e15677a75c | 588 | return tm; |
sakthipriya | 3:07e15677a75c | 589 | } |
sakthipriya | 3:07e15677a75c | 590 | case 0x21: |
sakthipriya | 3:07e15677a75c | 591 | { |
sakthipriya | 3:07e15677a75c | 592 | printf("SW_OFF_ACS_ATS1_SW_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 593 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 594 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 595 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 596 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 597 | gpo1 = 1; |
sakthipriya | 3:07e15677a75c | 598 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 599 | { |
sakthipriya | 3:07e15677a75c | 600 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 601 | } |
sakthipriya | 3:07e15677a75c | 602 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 603 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 604 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 605 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 606 | { |
sakthipriya | 3:07e15677a75c | 607 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 608 | } |
sakthipriya | 3:07e15677a75c | 609 | return tm; |
sakthipriya | 3:07e15677a75c | 610 | } |
sakthipriya | 3:07e15677a75c | 611 | case 0x22: |
sakthipriya | 3:07e15677a75c | 612 | { |
sakthipriya | 3:07e15677a75c | 613 | printf("SW_OFF_ACS_ATS2_SW_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 614 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 615 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 616 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 617 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 618 | gpo2 = 1; |
sakthipriya | 3:07e15677a75c | 619 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 620 | { |
sakthipriya | 3:07e15677a75c | 621 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 622 | } |
sakthipriya | 3:07e15677a75c | 623 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 624 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 625 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 626 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 627 | { |
sakthipriya | 3:07e15677a75c | 628 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 629 | } |
sakthipriya | 3:07e15677a75c | 630 | return tm; |
sakthipriya | 3:07e15677a75c | 631 | } |
sakthipriya | 3:07e15677a75c | 632 | case 0x23: |
sakthipriya | 3:07e15677a75c | 633 | { |
sakthipriya | 3:07e15677a75c | 634 | printf("SW_OFF_ACS_TR_XY_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 635 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 636 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 637 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 638 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 639 | TRXY_SW = 0; |
sakthipriya | 3:07e15677a75c | 640 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 641 | { |
sakthipriya | 3:07e15677a75c | 642 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 643 | } |
sakthipriya | 3:07e15677a75c | 644 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 645 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 646 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 647 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 648 | { |
sakthipriya | 3:07e15677a75c | 649 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 650 | } |
sakthipriya | 3:07e15677a75c | 651 | return tm; |
sakthipriya | 3:07e15677a75c | 652 | } |
sakthipriya | 3:07e15677a75c | 653 | case 0x24: |
sakthipriya | 3:07e15677a75c | 654 | { |
sakthipriya | 3:07e15677a75c | 655 | printf("SW_OFF_ACS_TR_Z_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 656 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 657 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 658 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 659 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 660 | TRZ_SW = 0; |
sakthipriya | 3:07e15677a75c | 661 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 662 | { |
sakthipriya | 3:07e15677a75c | 663 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 664 | } |
sakthipriya | 3:07e15677a75c | 665 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 666 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 667 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 668 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 669 | { |
sakthipriya | 3:07e15677a75c | 670 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 671 | } |
sakthipriya | 3:07e15677a75c | 672 | return tm; |
sakthipriya | 3:07e15677a75c | 673 | } |
sakthipriya | 3:07e15677a75c | 674 | case 0x25: |
sakthipriya | 3:07e15677a75c | 675 | { |
sakthipriya | 3:07e15677a75c | 676 | printf("SW_OFF_BCN_TX_SW_ENABLE\r\n"); |
sakthipriya | 3:07e15677a75c | 677 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 678 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 679 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 680 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 681 | BCN_SW = 1; |
sakthipriya | 3:07e15677a75c | 682 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 683 | { |
sakthipriya | 3:07e15677a75c | 684 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 685 | } |
sakthipriya | 3:07e15677a75c | 686 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 687 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 688 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 689 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 690 | { |
sakthipriya | 3:07e15677a75c | 691 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 692 | } |
sakthipriya | 3:07e15677a75c | 693 | return tm; |
sakthipriya | 3:07e15677a75c | 694 | } |
sakthipriya | 3:07e15677a75c | 695 | case 0x31: |
sakthipriya | 3:07e15677a75c | 696 | { |
sakthipriya | 5:bb592f3185cc | 697 | printf("ACS_ATS1_SW_RESET\r\n"); |
sakthipriya | 3:07e15677a75c | 698 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 699 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 700 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 701 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 702 | gpo1 = 1; |
sakthipriya | 5:bb592f3185cc | 703 | wait_us(1); |
sakthipriya | 5:bb592f3185cc | 704 | gpo1 = 0; |
sakthipriya | 3:07e15677a75c | 705 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 706 | { |
sakthipriya | 3:07e15677a75c | 707 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 708 | } |
sakthipriya | 3:07e15677a75c | 709 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 710 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 711 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 712 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 713 | { |
sakthipriya | 3:07e15677a75c | 714 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 715 | } |
sakthipriya | 3:07e15677a75c | 716 | return tm; |
sakthipriya | 3:07e15677a75c | 717 | } |
sakthipriya | 3:07e15677a75c | 718 | case 0x32: |
sakthipriya | 3:07e15677a75c | 719 | { |
sakthipriya | 3:07e15677a75c | 720 | printf("BCN_SW_RESET\r\n"); |
sakthipriya | 3:07e15677a75c | 721 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 722 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 723 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 724 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 725 | BCN_SW = 1; |
sakthipriya | 5:bb592f3185cc | 726 | wait_us(1); |
sakthipriya | 5:bb592f3185cc | 727 | BCN_SW = 0; |
sakthipriya | 3:07e15677a75c | 728 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 729 | { |
sakthipriya | 3:07e15677a75c | 730 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 731 | } |
sakthipriya | 3:07e15677a75c | 732 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 733 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 734 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 735 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 736 | { |
sakthipriya | 3:07e15677a75c | 737 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 738 | } |
sakthipriya | 3:07e15677a75c | 739 | return tm; |
sakthipriya | 3:07e15677a75c | 740 | } |
sakthipriya | 3:07e15677a75c | 741 | case 0x33: |
sakthipriya | 3:07e15677a75c | 742 | { |
sakthipriya | 5:bb592f3185cc | 743 | printf("ACS_ATS2_SW_RESET\r\n"); |
sakthipriya | 3:07e15677a75c | 744 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 745 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 746 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 747 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 748 | gpo1 = 1; |
sakthipriya | 5:bb592f3185cc | 749 | wait_us(1); |
sakthipriya | 5:bb592f3185cc | 750 | gpo1 = 0; |
sakthipriya | 3:07e15677a75c | 751 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 752 | { |
sakthipriya | 3:07e15677a75c | 753 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 754 | } |
sakthipriya | 3:07e15677a75c | 755 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 756 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 757 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 758 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 759 | { |
sakthipriya | 3:07e15677a75c | 760 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 761 | } |
sakthipriya | 3:07e15677a75c | 762 | return tm; |
sakthipriya | 3:07e15677a75c | 763 | } |
sakthipriya | 3:07e15677a75c | 764 | case 0x34: |
sakthipriya | 3:07e15677a75c | 765 | { |
sakthipriya | 3:07e15677a75c | 766 | printf("CDMS_SW_RESET\r\n"); |
sakthipriya | 3:07e15677a75c | 767 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 768 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 769 | tm[1]=tc[0]; |
sakthipriya | 5:bb592f3185cc | 770 | tm[2]=1; |
sakthipriya | 5:bb592f3185cc | 771 | CDMS_RESET = 0; |
sakthipriya | 5:bb592f3185cc | 772 | wait_us(1); |
sakthipriya | 5:bb592f3185cc | 773 | CDMS_RESET = 1; |
sakthipriya | 3:07e15677a75c | 774 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 775 | { |
sakthipriya | 3:07e15677a75c | 776 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 777 | } |
sakthipriya | 3:07e15677a75c | 778 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 779 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 780 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 781 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 782 | { |
sakthipriya | 3:07e15677a75c | 783 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 784 | } |
sakthipriya | 3:07e15677a75c | 785 | return tm; |
sakthipriya | 3:07e15677a75c | 786 | } |
sakthipriya | 5:bb592f3185cc | 787 | |
sakthipriya | 5:bb592f3185cc | 788 | |
sakthipriya | 3:07e15677a75c | 789 | default: |
sakthipriya | 3:07e15677a75c | 790 | { |
sakthipriya | 3:07e15677a75c | 791 | printf("Invalid TC\r\n"); |
sakthipriya | 3:07e15677a75c | 792 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 793 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 794 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 795 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 796 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 797 | { |
sakthipriya | 3:07e15677a75c | 798 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 799 | } |
sakthipriya | 3:07e15677a75c | 800 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 801 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 802 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 803 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 804 | { |
sakthipriya | 3:07e15677a75c | 805 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 806 | } |
sakthipriya | 3:07e15677a75c | 807 | return tm; |
sakthipriya | 3:07e15677a75c | 808 | } |
sakthipriya | 3:07e15677a75c | 809 | } |
sakthipriya | 3:07e15677a75c | 810 | |
sakthipriya | 3:07e15677a75c | 811 | default: |
sakthipriya | 3:07e15677a75c | 812 | { |
sakthipriya | 3:07e15677a75c | 813 | printf("Invalid TC\r\n"); |
sakthipriya | 3:07e15677a75c | 814 | //ACK_L234_TM |
sakthipriya | 3:07e15677a75c | 815 | tm[0]=0xB0; |
sakthipriya | 3:07e15677a75c | 816 | tm[1]=tc[0]; |
sakthipriya | 3:07e15677a75c | 817 | tm[2]=ACK_CODE; |
sakthipriya | 3:07e15677a75c | 818 | for(uint8_t i=3;i<11;i++) |
sakthipriya | 3:07e15677a75c | 819 | { |
sakthipriya | 3:07e15677a75c | 820 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 821 | } |
sakthipriya | 3:07e15677a75c | 822 | crc16 = CRC::crc16_gen(tm,11); |
sakthipriya | 3:07e15677a75c | 823 | tm[11] = (uint8_t)((crc16&0xFF00)>>8); |
sakthipriya | 3:07e15677a75c | 824 | tm[12] = (uint8_t)(crc16&0x00FF); |
sakthipriya | 3:07e15677a75c | 825 | for(uint8_t i=13;i<134;i++) |
sakthipriya | 3:07e15677a75c | 826 | { |
sakthipriya | 3:07e15677a75c | 827 | tm[i]=0x00; |
sakthipriya | 3:07e15677a75c | 828 | } |
sakthipriya | 3:07e15677a75c | 829 | return tm; |
sakthipriya | 3:07e15677a75c | 830 | } |
sakthipriya | 3:07e15677a75c | 831 | } |
sakthipriya | 3:07e15677a75c | 832 | } |
sakthipriya | 3:07e15677a75c | 833 | } |
sakthipriya | 3:07e15677a75c | 834 | } |
sakthipriya | 4:39a4ae8c7ecd | 835 | } |
sakthipriya | 4:39a4ae8c7ecd | 836 | |
sakthipriya | 4:39a4ae8c7ecd | 837 | |
sakthipriya | 4:39a4ae8c7ecd | 838 | |
sakthipriya | 4:39a4ae8c7ecd | 839 | |
sakthipriya | 4:39a4ae8c7ecd | 840 | int strt_add = flash_size() - (2*SECTOR_SIZE); |
sakthipriya | 4:39a4ae8c7ecd | 841 | uint32_t flasharray[8]; //256+(3*1024) |
sakthipriya | 4:39a4ae8c7ecd | 842 | char *nativeflash = (char*)strt_add; |
sakthipriya | 4:39a4ae8c7ecd | 843 | |
sakthipriya | 4:39a4ae8c7ecd | 844 | /*Writing to the Flash*/ |
sakthipriya | 4:39a4ae8c7ecd | 845 | void FCTN_CDMS_WR_FLASH(uint16_t j,uint32_t fdata) //j-position to write address ; fdata - flash data to be written |
sakthipriya | 4:39a4ae8c7ecd | 846 | { |
sakthipriya | 4:39a4ae8c7ecd | 847 | for(int i=0;i<8;i++) |
sakthipriya | 4:39a4ae8c7ecd | 848 | { |
sakthipriya | 4:39a4ae8c7ecd | 849 | flasharray[i]=nativeflash[i]; |
sakthipriya | 4:39a4ae8c7ecd | 850 | } |
sakthipriya | 4:39a4ae8c7ecd | 851 | flasharray[j]=fdata; |
sakthipriya | 4:39a4ae8c7ecd | 852 | erase_sector(strt_add); |
sakthipriya | 4:39a4ae8c7ecd | 853 | program_flash(strt_add, (char*)&flasharray,4*8); |
sakthipriya | 4:39a4ae8c7ecd | 854 | } |
sakthipriya | 4:39a4ae8c7ecd | 855 | /*End*/ |
sakthipriya | 4:39a4ae8c7ecd | 856 | |
sakthipriya | 4:39a4ae8c7ecd | 857 | /*Reading from Flash*/ |
sakthipriya | 4:39a4ae8c7ecd | 858 | uint32_t FCTN_CDMS_RD_FLASH(uint16_t j) |
sakthipriya | 4:39a4ae8c7ecd | 859 | { |
sakthipriya | 4:39a4ae8c7ecd | 860 | for(int i=0;i<8;i++) |
sakthipriya | 4:39a4ae8c7ecd | 861 | { |
sakthipriya | 4:39a4ae8c7ecd | 862 | flasharray[i]=nativeflash[i]; |
sakthipriya | 4:39a4ae8c7ecd | 863 | } |
sakthipriya | 4:39a4ae8c7ecd | 864 | return flasharray[j]; |
sakthipriya | 4:39a4ae8c7ecd | 865 | } |
sakthipriya | 5:bb592f3185cc | 866 | /*End*/ |
sakthipriya | 5:bb592f3185cc | 867 | |
sakthipriya | 5:bb592f3185cc | 868 | // Convert float to 4 uint8_t |
sakthipriya | 5:bb592f3185cc | 869 | |
sakthipriya | 6:036d08b62785 | 870 | void FCTN_CONVERT_FLOAT(float input, uint8_t output[4]) |
sakthipriya | 5:bb592f3185cc | 871 | { |
sakthipriya | 6:036d08b62785 | 872 | assert(sizeof(float) == sizeof(uint32_t)); |
sakthipriya | 6:036d08b62785 | 873 | uint32_t* temp = reinterpret_cast<uint32_t*>(&input); |
sakthipriya | 6:036d08b62785 | 874 | |
sakthipriya | 6:036d08b62785 | 875 | //float* output1 = reinterpret_cast<float*>(temp); |
sakthipriya | 6:036d08b62785 | 876 | |
sakthipriya | 6:036d08b62785 | 877 | printf("\n\r %f ", input); |
sakthipriya | 6:036d08b62785 | 878 | std::cout << "\n\r uint32"<<*temp << std::endl; |
sakthipriya | 6:036d08b62785 | 879 | |
sakthipriya | 6:036d08b62785 | 880 | output[0] =(uint8_t )(((*temp)>>24)&0xFF); |
Bragadeesh153 | 14:ccdf8790a15e | 881 | output[1] =(uint8_t ) (((*temp)>>16)&0xFF); |
Bragadeesh153 | 14:ccdf8790a15e | 882 | output[2] =(uint8_t ) (((*temp)>>8)&0xFF); |
sakthipriya | 6:036d08b62785 | 883 | output[3] =(uint8_t ) ((*temp) & 0xFF); // verify the logic |
sakthipriya | 6:036d08b62785 | 884 | //printf("\n\r inside %d %d %d %d", output[3],output[2],output[1],output[0]); |
sakthipriya | 6:036d08b62785 | 885 | //std:: cout << "\n\r uint8 inside " << output[3] << '\t' << output[2] << '\t' << output[1] << '\t' << output[0] <<std::endl; |
Bragadeesh153 | 14:ccdf8790a15e | 886 | } |
Bragadeesh153 | 14:ccdf8790a15e | 887 | |
Bragadeesh153 | 14:ccdf8790a15e | 888 | void FCTN_CONVERT_UINT (uint8_t input[2], float* output) |
Bragadeesh153 | 14:ccdf8790a15e | 889 | { |
Bragadeesh153 | 14:ccdf8790a15e | 890 | |
Bragadeesh153 | 14:ccdf8790a15e | 891 | *output = (float) input[1]; |
Bragadeesh153 | 14:ccdf8790a15e | 892 | *output = *output/100.0; //input[0] integer part |
Bragadeesh153 | 14:ccdf8790a15e | 893 | *output = *output + (float) input[0]; //input[1] decimal part correct to two decimal places |
sakthipriya | 5:bb592f3185cc | 894 | } |