PWM and ALGO updated.. PWM getting generated

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of TFR_BAE_vr1_1working_finally_PWM_CTRLALGO_update by Team Fox

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?

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
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 }