Changes to be made for ATS_Fault logic and ACS_State

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of Japan_BAE_sensorworking_interrupr_reoccuring_copy by Team Fox

Committer:
sakthipriya
Date:
Thu Dec 31 17:12:52 2015 +0000
Revision:
5:bb592f3185cc
Parent:
4:39a4ae8c7ecd
Child:
6:036d08b62785
final version of BAE

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