To be debugged

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of TFR_BAE_vr1_1_Debug153 by Bragadeesh S

Committer:
Bragadeesh153
Date:
Wed Feb 03 18:41:17 2016 +0000
Revision:
9:f66c57a01e05
Parent:
8:aad4f22221b1
To be debugged

Who changed what in which revision?

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