I2C BAE standalone hardware testing

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of ACS_Flowchart_BAE_1 by Team Fox

Committer:
prasanthbj05
Date:
Wed Jul 06 10:12:38 2016 +0000
Revision:
19:95ba0ed3370c
Parent:
18:95f0cc565ee3
publishing for hardware i2c test;

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"
lakshya 10:f93407b97750 11 #include"math.h"
lakshya 10:f93407b97750 12
lakshya 11:1fdb94ae6563 13 /*define the pins for digital out*/
sakthipriya 0:7b4c00e3912f 14
sakthipriya 9:194afacf7449 15 extern DigitalOut ATS1_SW_ENABLE; // enable of att sens2 switch
sakthipriya 9:194afacf7449 16 extern DigitalOut ATS2_SW_ENABLE; // enable of att sens switch
sakthipriya 5:bb592f3185cc 17
Bragadeesh153 13:fb7facaf308b 18 extern DigitalOut TRXY_SW; //TR XY Switch if any TR_SW error arises then it is same as TR_SW_EN
sakthipriya 5:bb592f3185cc 19 extern DigitalOut TRZ_SW; //TR Z Switch
sakthipriya 5:bb592f3185cc 20 extern DigitalOut CDMS_RESET; // CDMS RESET
sakthipriya 5:bb592f3185cc 21 extern DigitalOut BCN_SW; //Beacon switch
lakshya 10:f93407b97750 22 extern uint8_t BCN_TX_STATUS;
lakshya 10:f93407b97750 23 extern uint8_t BCN_FEN;
sakthipriya 4:39a4ae8c7ecd 24 extern BAE_HK_actual actual_data;
sakthipriya 4:39a4ae8c7ecd 25 extern BAE_HK_min_max bae_HK_minmax;
sakthipriya 4:39a4ae8c7ecd 26 extern uint32_t BAE_STATUS;
sakthipriya 5:bb592f3185cc 27 extern float data[6];
sakthipriya 5:bb592f3185cc 28 extern float moment[3];
lakshya 10:f93407b97750 29 extern uint8_t ACS_STATE;
lakshya 10:f93407b97750 30 extern DigitalOut EN_BTRY_HT;
lakshya 10:f93407b97750 31 extern DigitalOut phase_TR_x;
lakshya 10:f93407b97750 32 extern DigitalOut phase_TR_y;
lakshya 10:f93407b97750 33 extern DigitalOut phase_TR_z;
lakshya 10:f93407b97750 34 extern BAE_HK_quant quant_data;
Bragadeesh153 13:fb7facaf308b 35 //extern DigitalOut TRXY_SW;
lakshya 11:1fdb94ae6563 36 //extern DigitalOut TRZ_SW_EN; //same as TRZ_SW
lakshya 11:1fdb94ae6563 37 extern uint32_t BAE_ENABLE;
lakshya 11:1fdb94ae6563 38 //extern DigitalOut ACS_ACQ_DATA_ENABLE;
lakshya 11:1fdb94ae6563 39
lakshya 11:1fdb94ae6563 40 /*given a default value as of now shuld read value from flash and increment it write it back very time it starts(bae)*/
lakshya 11:1fdb94ae6563 41 extern uint8_t BAE_RESET_COUNTER=0;
lakshya 11:1fdb94ae6563 42
lakshya 14:a9588f443f1a 43 //extern uint8_t BCN_FAIL_COUNT;
lakshya 11:1fdb94ae6563 44
Bragadeesh153 13:fb7facaf308b 45 extern PwmOut PWM1; //x //Functions used to generate PWM signal
lakshya 11:1fdb94ae6563 46 extern PwmOut PWM2; //y
lakshya 11:1fdb94ae6563 47 extern PwmOut PWM3; //z //PWM output comes from pins p6
lakshya 11:1fdb94ae6563 48
lakshya 11:1fdb94ae6563 49 extern void F_ACS();
lakshya 11:1fdb94ae6563 50 extern void F_BCN();
lakshya 11:1fdb94ae6563 51 //extern void FCTN_ACS_GENPWM_MAIN();
lakshya 11:1fdb94ae6563 52 extern void F_EPS();
lakshya 11:1fdb94ae6563 53 extern void FCTN_ACS_GENPWM_MAIN(float Moment[3]);
Bragadeesh153 16:cc77770d787f 54 extern int FCTN_ACS_INIT();
lakshya 11:1fdb94ae6563 55
sakthipriya 5:bb592f3185cc 56
Bragadeesh153 16:cc77770d787f 57 extern int FCTN_ATS_DATA_ACQ();
sakthipriya 5:bb592f3185cc 58 extern void FCTN_ACS_CNTRLALGO(float*,float*);
Bragadeesh153 13:fb7facaf308b 59 uint8_t telemetry[135];
lakshya 11:1fdb94ae6563 60
lakshya 11:1fdb94ae6563 61 void FCTN_CONVERT_UINT (uint8_t input[2], float* output)
lakshya 11:1fdb94ae6563 62 {
lakshya 11:1fdb94ae6563 63
lakshya 11:1fdb94ae6563 64 *output = (float) input[1];
lakshya 11:1fdb94ae6563 65 *output = *output/100.0; //input[0] integer part
lakshya 11:1fdb94ae6563 66 *output = *output + (float) input[0]; //input[1] decimal part correct to two decimal places
lakshya 11:1fdb94ae6563 67 }
lakshya 11:1fdb94ae6563 68
lakshya 10:f93407b97750 69 float angle(float x,float y,float z)
lakshya 10:f93407b97750 70 {
lakshya 10:f93407b97750 71 float mag_total=sqrt(x*x + y*y + z*z);
lakshya 10:f93407b97750 72 float cos_z = z/mag_total;
lakshya 10:f93407b97750 73 float theta_z = acosf(cos_z);
Bragadeesh153 13:fb7facaf308b 74
lakshya 10:f93407b97750 75 return theta_z;
lakshya 10:f93407b97750 76 //printf("/n cos_zz= %f /t theta_z= %f /n",cos_z,theta_z);
lakshya 10:f93407b97750 77 }
lakshya 10:f93407b97750 78
Bragadeesh153 13:fb7facaf308b 79 //uint8_t tm1[134];
Bragadeesh153 13:fb7facaf308b 80
prasanthbj05 18:95f0cc565ee3 81 //uint8_t telemetry[134];
sakthipriya 0:7b4c00e3912f 82
prasanthbj05 18:95f0cc565ee3 83 void FCTN_BAE_TM_TC (uint8_t* tc)
sakthipriya 3:07e15677a75c 84 {
prasanthbj05 18:95f0cc565ee3 85 for(int i=0;i<134;i++)
prasanthbj05 18:95f0cc565ee3 86 telemetry[i]=tc[i];
Bragadeesh153 13:fb7facaf308b 87 // tm1[0] = 1;
sakthipriya 3:07e15677a75c 88 uint8_t service_type=(tc[2]&0xF0);
lakshya 15:e09aaaccf134 89 /*chaged*/
lakshya 15:e09aaaccf134 90 uint8_t* tm; // without it some identifier error
prasanthbj05 18:95f0cc565ee3 91 uint16_t crc16=CRC::crc16_gen(telemetry,9);
prasanthbj05 18:95f0cc565ee3 92 //printf("\n\r the crc is %x",crc16);
prasanthbj05 18:95f0cc565ee3 93
sakthipriya 3:07e15677a75c 94 switch(service_type)
sakthipriya 3:07e15677a75c 95 {
sakthipriya 3:07e15677a75c 96 case 0x60:
sakthipriya 3:07e15677a75c 97 {
sakthipriya 3:07e15677a75c 98 printf("Memory Management Service\r\n");
sakthipriya 3:07e15677a75c 99 uint8_t service_subtype=(tc[2]&0x0F);
Bragadeesh153 13:fb7facaf308b 100
sakthipriya 3:07e15677a75c 101 switch(service_subtype)
sakthipriya 3:07e15677a75c 102 {
sakthipriya 3:07e15677a75c 103 case 0x01:
sakthipriya 3:07e15677a75c 104 {
sakthipriya 3:07e15677a75c 105 printf("Read from Flash\r\n");
lakshya 15:e09aaaccf134 106 uint16_t jj;
lakshya 15:e09aaaccf134 107 uint16_t MID = ((uint16_t)tc[3] << 8) | tc[4];
lakshya 15:e09aaaccf134 108 switch(MID)
lakshya 15:e09aaaccf134 109 {case 0x1100:jj=0x00;// using uint16_t as jj typesimilarly used in FCTN_CDMS_WR_FLASH
lakshya 15:e09aaaccf134 110 break;
lakshya 15:e09aaaccf134 111 case 0x0100:jj=0x01;
lakshya 15:e09aaaccf134 112 break;
lakshya 15:e09aaaccf134 113 case 0x0101:jj=0x02;
lakshya 15:e09aaaccf134 114 break;
lakshya 15:e09aaaccf134 115 case 0x0102:jj=0x03;
lakshya 15:e09aaaccf134 116 break;
lakshya 15:e09aaaccf134 117 case 0x0107:jj=0x04;
lakshya 15:e09aaaccf134 118 break;
lakshya 15:e09aaaccf134 119 case 0x0103:jj=0x05;
lakshya 15:e09aaaccf134 120 break;
lakshya 15:e09aaaccf134 121 case 0x0104:jj=0x05;
lakshya 15:e09aaaccf134 122 break;
lakshya 15:e09aaaccf134 123 case 0x0105:jj=0x06;
lakshya 15:e09aaaccf134 124 break;
lakshya 15:e09aaaccf134 125 case 0x0106:jj=0x07;
lakshya 15:e09aaaccf134 126 break;
lakshya 15:e09aaaccf134 127 }
lakshya 15:e09aaaccf134 128 /*pointer....!!!!*/
lakshya 15:e09aaaccf134 129 uint32_t FLASH_TEMP = FCTN_CDMS_RD_FLASH(jj);
lakshya 15:e09aaaccf134 130
lakshya 15:e09aaaccf134 131 tm[0] = 0x60;
lakshya 15:e09aaaccf134 132 tm[1] = tc[0];
lakshya 15:e09aaaccf134 133 tm[2] = ACK_CODE;
lakshya 15:e09aaaccf134 134 for(int i=0; i<8*4; i+=4)
lakshya 15:e09aaaccf134 135 {
lakshya 15:e09aaaccf134 136 tm[4+i] =(uint8_t )(((FLASH_TEMP)>>24)&0xFF);
lakshya 15:e09aaaccf134 137 tm[5+i] =(uint8_t ) (((FLASH_TEMP)>>16)&0xFF);
lakshya 15:e09aaaccf134 138 tm[6+i] =(uint8_t ) (((FLASH_TEMP)>>8)&0xFF);
lakshya 15:e09aaaccf134 139 tm[7+i] =(uint8_t ) ((FLASH_TEMP) & 0xFF);
lakshya 15:e09aaaccf134 140
prasanthbj05 18:95f0cc565ee3 141 }
lakshya 15:e09aaaccf134 142 for (int i=4+8*4; i<132;i++)
lakshya 15:e09aaaccf134 143 {
lakshya 15:e09aaaccf134 144 tm[i] = 0x00;
lakshya 15:e09aaaccf134 145 }
lakshya 15:e09aaaccf134 146 crc16 = CRC::crc16_gen(tm,132);
lakshya 15:e09aaaccf134 147 tm[132] = (uint8_t)((crc16&0xFF00)>>8);
lakshya 15:e09aaaccf134 148 tm[133] = (uint8_t)(crc16&0x00FF);
lakshya 15:e09aaaccf134 149
Bragadeesh153 13:fb7facaf308b 150 break;
sakthipriya 3:07e15677a75c 151 }
sakthipriya 3:07e15677a75c 152 case 0x02:
sakthipriya 3:07e15677a75c 153 {
lakshya 15:e09aaaccf134 154 printf("Read from RAM\r\n");
Bragadeesh153 13:fb7facaf308b 155 uint16_t MID = ((uint16_t)tc[3] << 8) | tc[4];
Bragadeesh153 13:fb7facaf308b 156 switch(MID)
Bragadeesh153 13:fb7facaf308b 157 {
Bragadeesh153 13:fb7facaf308b 158
lakshya 10:f93407b97750 159 case 0x0001:
Bragadeesh153 13:fb7facaf308b 160 {
lakshya 15:e09aaaccf134 161 printf("\nRead from MID 0001 hk\n");
Bragadeesh153 13:fb7facaf308b 162
Bragadeesh153 13:fb7facaf308b 163 /*taking some varible till we find some thing more useful*/
Bragadeesh153 13:fb7facaf308b 164 //uint8_t ref_val=0x01;
Bragadeesh153 13:fb7facaf308b 165 telemetry[0] = 1;
Bragadeesh153 13:fb7facaf308b 166 telemetry[1] = tc[0];
Bragadeesh153 13:fb7facaf308b 167 telemetry[2] = ACK_CODE;
Bragadeesh153 13:fb7facaf308b 168 /*random or with bcn_tx_sw_enable assuming it is 1 bit in length
Bragadeesh153 13:fb7facaf308b 169 how to get that we dont know, now we just assume it to be so*/
Bragadeesh153 13:fb7facaf308b 170 telemetry[3] = (BCN_SW);
Bragadeesh153 13:fb7facaf308b 171 telemetry[3] = telemetry[3]|(TRXY_SW<<1);
Bragadeesh153 13:fb7facaf308b 172 telemetry[3] = telemetry[3]|(TRZ_SW<<2);
Bragadeesh153 13:fb7facaf308b 173 telemetry[3] = telemetry[3]|(ATS1_SW_ENABLE<<3);
Bragadeesh153 13:fb7facaf308b 174 telemetry[3] = telemetry[3]|(ATS2_SW_ENABLE<<4);
Bragadeesh153 13:fb7facaf308b 175
Bragadeesh153 13:fb7facaf308b 176 if(BCN_TX_STATUS==2)
Bragadeesh153 13:fb7facaf308b 177 telemetry[3] = telemetry[3]|0x20;
Bragadeesh153 13:fb7facaf308b 178 else
Bragadeesh153 13:fb7facaf308b 179 telemetry[3] = telemetry[3] & 0xDF;
Bragadeesh153 13:fb7facaf308b 180
Bragadeesh153 13:fb7facaf308b 181 telemetry[3] = telemetry[3]|(BCN_FEN<<6);
Bragadeesh153 13:fb7facaf308b 182 uint8_t mask_val=BAE_ENABLE & 0x00000008;
Bragadeesh153 13:fb7facaf308b 183 /*can be a problem see if any error occurs*/
Bragadeesh153 13:fb7facaf308b 184 telemetry[3] = telemetry[3]|(mask_val<<7);
Bragadeesh153 13:fb7facaf308b 185
Bragadeesh153 13:fb7facaf308b 186 /*not included in the code yet*/
Bragadeesh153 13:fb7facaf308b 187 telemetry[4] = BAE_RESET_COUNTER;
Bragadeesh153 13:fb7facaf308b 188 telemetry[5] = ACS_STATE;
Bragadeesh153 13:fb7facaf308b 189 telemetry[5] = telemetry[5]|(EN_BTRY_HT<<3);
Bragadeesh153 13:fb7facaf308b 190 telemetry[5] = telemetry[5]|(phase_TR_x<<4);
Bragadeesh153 13:fb7facaf308b 191 telemetry[5] = telemetry[5]|(phase_TR_y<<5);
Bragadeesh153 13:fb7facaf308b 192 telemetry[5] = telemetry[5]|(phase_TR_z<<6);
Bragadeesh153 13:fb7facaf308b 193 /*spare to be fixed*/
Bragadeesh153 13:fb7facaf308b 194 //telemetry[5] = telemetry[5]|(Spare))<<7);
Bragadeesh153 13:fb7facaf308b 195 /**/
Bragadeesh153 13:fb7facaf308b 196 uint8_t soc_powerlevel_2=50;
Bragadeesh153 13:fb7facaf308b 197 uint8_t soc_powerlevel_3=65;
Bragadeesh153 13:fb7facaf308b 198
Bragadeesh153 13:fb7facaf308b 199 telemetry[6] = soc_powerlevel_2;
Bragadeesh153 13:fb7facaf308b 200 telemetry[7] = soc_powerlevel_3;
lakshya 10:f93407b97750 201
Bragadeesh153 13:fb7facaf308b 202 /*to be fixed*/
Bragadeesh153 13:fb7facaf308b 203 telemetry[8] = 0;
Bragadeesh153 13:fb7facaf308b 204 telemetry[9] = 0;
Bragadeesh153 13:fb7facaf308b 205 telemetry[10] = 0;
Bragadeesh153 13:fb7facaf308b 206 telemetry[11] = 0;
Bragadeesh153 13:fb7facaf308b 207 //telemetry[8] = Torque Rod X Offset;
Bragadeesh153 13:fb7facaf308b 208 //telemetry[9] = Torque Rod Y Offset;
Bragadeesh153 13:fb7facaf308b 209 //telemetry[10] = Torque Rod Z Offset;
Bragadeesh153 13:fb7facaf308b 210 //telemetry[11] = ACS_DEMAG_TIME_DELAY;
Bragadeesh153 13:fb7facaf308b 211 telemetry[12] = (BAE_STATUS>>24) & 0xFF;
Bragadeesh153 13:fb7facaf308b 212 telemetry[13] = (BAE_STATUS>>16) & 0xFF;
Bragadeesh153 13:fb7facaf308b 213 telemetry[14] = (BAE_STATUS>>8) & 0xFF;
Bragadeesh153 13:fb7facaf308b 214 telemetry[15] = BAE_STATUS & 0xFF;
Bragadeesh153 13:fb7facaf308b 215
Bragadeesh153 13:fb7facaf308b 216 /*to be fixed*/
lakshya 14:a9588f443f1a 217 //telemetry[16] = BCN_FAIL_COUNT;
Bragadeesh153 13:fb7facaf308b 218 telemetry[17] = actual_data.power_mode;
Bragadeesh153 13:fb7facaf308b 219 /*to be fixed*/
Bragadeesh153 13:fb7facaf308b 220 uint16_t P_BAE_I2CRX_COUNTER=0;
Bragadeesh153 13:fb7facaf308b 221 uint16_t P_ACS_MAIN_COUNTER=0;
Bragadeesh153 13:fb7facaf308b 222 uint16_t P_BCN_TX_MAIN_COUNTER=0;
Bragadeesh153 13:fb7facaf308b 223 uint16_t P_EPS_MAIN_COUNTER=0;
Bragadeesh153 13:fb7facaf308b 224
Bragadeesh153 13:fb7facaf308b 225 telemetry[18] = P_BAE_I2CRX_COUNTER>>8;
Bragadeesh153 13:fb7facaf308b 226 telemetry[19] = P_BAE_I2CRX_COUNTER;
Bragadeesh153 13:fb7facaf308b 227 telemetry[20] = P_ACS_MAIN_COUNTER>>8;
Bragadeesh153 13:fb7facaf308b 228 telemetry[21] = P_ACS_MAIN_COUNTER;
Bragadeesh153 13:fb7facaf308b 229 telemetry[22] = P_BCN_TX_MAIN_COUNTER>>8;
Bragadeesh153 13:fb7facaf308b 230 telemetry[23] = P_BCN_TX_MAIN_COUNTER;
Bragadeesh153 13:fb7facaf308b 231 telemetry[24] = P_EPS_MAIN_COUNTER>>8;
Bragadeesh153 13:fb7facaf308b 232 telemetry[25] = P_EPS_MAIN_COUNTER;
Bragadeesh153 13:fb7facaf308b 233
lakshya 15:e09aaaccf134 234 //actual_data.AngularSpeed_actual[0]=5.32498;
Bragadeesh153 13:fb7facaf308b 235 for(int i=0; i<3; i++)
lakshya 15:e09aaaccf134 236 FCTN_CONVERT_FLOAT((float)actual_data.Bvalue_actual[i],&telemetry[26+ (i*4)]);
Bragadeesh153 13:fb7facaf308b 237 for(int i=0; i<3; i++)
lakshya 15:e09aaaccf134 238 FCTN_CONVERT_FLOAT((float)actual_data.AngularSpeed_actual[i],&telemetry[38+(i*4)]);
lakshya 15:e09aaaccf134 239
lakshya 15:e09aaaccf134 240 //printf("\n\rthe value is 38\t %x\n",telemetry[38]);
lakshya 15:e09aaaccf134 241 //printf("\n\rthe value is 39\t%x\n",telemetry[39]);
lakshya 15:e09aaaccf134 242 //printf("\n\rthe value is 40\t%x\n",telemetry[40]);
lakshya 15:e09aaaccf134 243 //printf("\n\rthe value is 41\t%x\n",telemetry[41]);
lakshya 15:e09aaaccf134 244 //printf("\n\rthe value true\t%f\n",actual_data.AngularSpeed_actual[0]);
lakshya 15:e09aaaccf134 245
lakshya 15:e09aaaccf134 246
lakshya 15:e09aaaccf134 247 //uint32_t input_stage1=0x00000000;
lakshya 15:e09aaaccf134 248 //uint8_t output1[4];
lakshya 15:e09aaaccf134 249 //output1[0]=(uint32_t)(telemetry[38]);
lakshya 15:e09aaaccf134 250 //output1[1]=(uint32_t)(telemetry[39]);
lakshya 15:e09aaaccf134 251 //output1[2]=(uint32_t)(telemetry[40]);
lakshya 15:e09aaaccf134 252 //output1[3]=(uint32_t)(telemetry[41]);
lakshya 15:e09aaaccf134 253
lakshya 15:e09aaaccf134 254 //input_stage1=output[3]+(output[2]*(0x100))+(output[1]*(0x10000))+(output[0]*(0x1000000));
lakshya 15:e09aaaccf134 255 //input_stage1=(output1[0]<<24) | (output1[1]<<16) | (output1[2]<<8) | (output1[3]);
lakshya 15:e09aaaccf134 256
lakshya 15:e09aaaccf134 257
lakshya 15:e09aaaccf134 258 //assert(sizeof(float) == sizeof(uint32_t));
lakshya 15:e09aaaccf134 259 //float* temp1 = reinterpret_cast<float*>(&input_stage1);
lakshya 15:e09aaaccf134 260
lakshya 15:e09aaaccf134 261 //printf("\n\r the value is: %f \n",*temp1);
Bragadeesh153 13:fb7facaf308b 262
Bragadeesh153 13:fb7facaf308b 263 //FAULT_FLAG();
Bragadeesh153 13:fb7facaf308b 264 telemetry[50] = actual_data.faultIr_status;
Bragadeesh153 13:fb7facaf308b 265 telemetry[51] = actual_data.faultPoll_status;
Bragadeesh153 13:fb7facaf308b 266 //Bdot Rotation Speed of Command telemetry[52-53]
Bragadeesh153 13:fb7facaf308b 267 //Bdot Output Current telemetry[54]
Bragadeesh153 13:fb7facaf308b 268 //float l_pmw1 = (PWM1);
Bragadeesh153 13:fb7facaf308b 269 //float l_pmw2 = PWM2;
Bragadeesh153 13:fb7facaf308b 270 //float l_pmw3 = PWM3;
Bragadeesh153 13:fb7facaf308b 271
lakshya 11:1fdb94ae6563 272 /*__________________________________________________________________*/
Bragadeesh153 13:fb7facaf308b 273
lakshya 11:1fdb94ae6563 274 /*change and check if changing it to PWM1 causes problem*/
Bragadeesh153 13:fb7facaf308b 275
lakshya 11:1fdb94ae6563 276 /*___________________________________________________________________*/
Bragadeesh153 13:fb7facaf308b 277
lakshya 11:1fdb94ae6563 278 float PWM_measured[3];
Bragadeesh153 13:fb7facaf308b 279
Bragadeesh153 13:fb7facaf308b 280 PWM_measured[0] = PWM1.read();
Bragadeesh153 13:fb7facaf308b 281 PWM_measured[1] = PWM2.read();
Bragadeesh153 13:fb7facaf308b 282 PWM_measured[2] = PWM3.read();
Bragadeesh153 13:fb7facaf308b 283
Bragadeesh153 13:fb7facaf308b 284 FCTN_CONVERT_FLOAT(PWM_measured[0], &telemetry[55]);
Bragadeesh153 13:fb7facaf308b 285 FCTN_CONVERT_FLOAT(PWM_measured[1], &telemetry[59]);
Bragadeesh153 13:fb7facaf308b 286 FCTN_CONVERT_FLOAT(PWM_measured[2], &telemetry[63]);
lakshya 10:f93407b97750 287 float attitude_ang = angle(actual_data.Bvalue_actual[0],actual_data.Bvalue_actual[1],actual_data.Bvalue_actual[2]);
Bragadeesh153 13:fb7facaf308b 288 FCTN_CONVERT_FLOAT(attitude_ang, &telemetry[67]);
lakshya 10:f93407b97750 289
lakshya 10:f93407b97750 290 for (int i=0; i<16; i++)
Bragadeesh153 13:fb7facaf308b 291 telemetry[68+i] = quant_data.voltage_quant[i];
lakshya 10:f93407b97750 292 for (int i=0; i<12; i++)
Bragadeesh153 13:fb7facaf308b 293 telemetry[84+i] = quant_data.current_quant[i];
Bragadeesh153 13:fb7facaf308b 294 //telemetry[96]
Bragadeesh153 13:fb7facaf308b 295 //telemetry[97]
Bragadeesh153 13:fb7facaf308b 296 //telemetry[98]
Bragadeesh153 13:fb7facaf308b 297 //telemetry[99]
Bragadeesh153 13:fb7facaf308b 298 telemetry[100] = quant_data.Batt_voltage_quant;
Bragadeesh153 13:fb7facaf308b 299 telemetry[101] = quant_data.BAE_temp_quant;
Bragadeesh153 13:fb7facaf308b 300 telemetry[102] = quant_data.Batt_gauge_quant[1];
Bragadeesh153 13:fb7facaf308b 301 telemetry[103] = quant_data.Batt_temp_quant[0];
Bragadeesh153 13:fb7facaf308b 302 telemetry[104] = quant_data.Batt_temp_quant[1];
Bragadeesh153 13:fb7facaf308b 303
Bragadeesh153 13:fb7facaf308b 304 //telemetry[105] = beacon temperature;
Bragadeesh153 13:fb7facaf308b 305
lakshya 10:f93407b97750 306 for (int i=105; i<132;i++)
sakthipriya 8:82250e41da81 307 {
Bragadeesh153 13:fb7facaf308b 308 telemetry[i] = 0x00;
sakthipriya 5:bb592f3185cc 309 }
Bragadeesh153 13:fb7facaf308b 310 crc16 = CRC::crc16_gen(telemetry,132);
Bragadeesh153 13:fb7facaf308b 311 telemetry[132] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 312 telemetry[133] = (uint8_t)(crc16&0x00FF);
Bragadeesh153 13:fb7facaf308b 313
Bragadeesh153 13:fb7facaf308b 314 break;
Bragadeesh153 13:fb7facaf308b 315 }
Bragadeesh153 13:fb7facaf308b 316 case 0x0002:
Bragadeesh153 13:fb7facaf308b 317 {
lakshya 15:e09aaaccf134 318 printf("\r\n");
Bragadeesh153 13:fb7facaf308b 319 telemetry[0] = 0x60;
Bragadeesh153 13:fb7facaf308b 320 telemetry[1] = tc[0];
Bragadeesh153 13:fb7facaf308b 321 telemetry[2] = ACK_CODE;
Bragadeesh153 13:fb7facaf308b 322
Bragadeesh153 13:fb7facaf308b 323 for(int i;i<16;i++)
Bragadeesh153 13:fb7facaf308b 324 telemetry[i+3] = bae_HK_minmax.voltage_max[i];
Bragadeesh153 13:fb7facaf308b 325
Bragadeesh153 13:fb7facaf308b 326 for(int i;i<12;i++)
Bragadeesh153 13:fb7facaf308b 327 telemetry[i+18] = bae_HK_minmax.current_max[i];
Bragadeesh153 13:fb7facaf308b 328
Bragadeesh153 13:fb7facaf308b 329 telemetry[29] = bae_HK_minmax.Batt_voltage_max;;
Bragadeesh153 13:fb7facaf308b 330 telemetry[30] = bae_HK_minmax.BAE_temp_max;
Bragadeesh153 13:fb7facaf308b 331
Bragadeesh153 13:fb7facaf308b 332 /*battery soc*/
Bragadeesh153 13:fb7facaf308b 333 //telemetry[31] = BAE_HK_min_max bae_HK_minmax.voltage_max;
Bragadeesh153 13:fb7facaf308b 334
Bragadeesh153 13:fb7facaf308b 335 telemetry[32] = bae_HK_minmax.Batt_temp_max[0];
Bragadeesh153 13:fb7facaf308b 336 telemetry[33] = bae_HK_minmax.Batt_temp_max[1];
Bragadeesh153 13:fb7facaf308b 337
Bragadeesh153 13:fb7facaf308b 338 /*BCN temp not there*/
Bragadeesh153 13:fb7facaf308b 339 //telemetry[34] = BAE_HK_min_max bae_HK_minmax.;
Bragadeesh153 13:fb7facaf308b 340
Bragadeesh153 13:fb7facaf308b 341 for(int i=0; i<3; i++)
Bragadeesh153 13:fb7facaf308b 342 FCTN_CONVERT_FLOAT(bae_HK_minmax.Bvalue_max[i],&telemetry[35+(i*4)]);
Bragadeesh153 13:fb7facaf308b 343
Bragadeesh153 13:fb7facaf308b 344 for(int i=0; i<3; i++)
Bragadeesh153 13:fb7facaf308b 345 FCTN_CONVERT_FLOAT(bae_HK_minmax.AngularSpeed_max[i],&telemetry[47+(i*4)]);
Bragadeesh153 13:fb7facaf308b 346
Bragadeesh153 13:fb7facaf308b 347 /*min data*/
Bragadeesh153 13:fb7facaf308b 348
Bragadeesh153 13:fb7facaf308b 349 for(int i;i<16;i++)
Bragadeesh153 13:fb7facaf308b 350 telemetry[i+59] = bae_HK_minmax.voltage_min[i];
Bragadeesh153 13:fb7facaf308b 351
Bragadeesh153 13:fb7facaf308b 352 for(int i;i<12;i++)
Bragadeesh153 13:fb7facaf308b 353 telemetry[i+74] = bae_HK_minmax.current_min[i];
Bragadeesh153 13:fb7facaf308b 354
Bragadeesh153 13:fb7facaf308b 355 telemetry[86] = bae_HK_minmax.Batt_voltage_min;
Bragadeesh153 13:fb7facaf308b 356 telemetry[87] = bae_HK_minmax.BAE_temp_min;
Bragadeesh153 13:fb7facaf308b 357
Bragadeesh153 13:fb7facaf308b 358 /*battery soc*/
Bragadeesh153 13:fb7facaf308b 359 //telemetry[88] = BAE_HK_min_max bae_HK_minmax.voltage_max;
Bragadeesh153 13:fb7facaf308b 360
Bragadeesh153 13:fb7facaf308b 361 telemetry[89] = bae_HK_minmax.Batt_temp_min[0];
Bragadeesh153 13:fb7facaf308b 362 telemetry[90] = bae_HK_minmax.Batt_temp_min[1];
Bragadeesh153 13:fb7facaf308b 363 //huhu//
Bragadeesh153 13:fb7facaf308b 364
Bragadeesh153 13:fb7facaf308b 365 /*BCN temp not there*/
Bragadeesh153 13:fb7facaf308b 366 //telemetry[91] = BAE_HK_min_max bae_HK_minmax.;
Bragadeesh153 13:fb7facaf308b 367
Bragadeesh153 13:fb7facaf308b 368 for(int i=0; i<3; i++)
Bragadeesh153 13:fb7facaf308b 369 FCTN_CONVERT_FLOAT(bae_HK_minmax.Bvalue_min[i],&telemetry[91+(i*4)]);
Bragadeesh153 13:fb7facaf308b 370
Bragadeesh153 13:fb7facaf308b 371 for(int i=0; i<3; i++)
Bragadeesh153 13:fb7facaf308b 372 FCTN_CONVERT_FLOAT(bae_HK_minmax.AngularSpeed_min[i],&telemetry[103+(i*4)]);
Bragadeesh153 13:fb7facaf308b 373
Bragadeesh153 13:fb7facaf308b 374
Bragadeesh153 13:fb7facaf308b 375 for (int i=115; i<132;i++)
Bragadeesh153 13:fb7facaf308b 376 {
Bragadeesh153 13:fb7facaf308b 377 telemetry[i] = 0x00;
Bragadeesh153 13:fb7facaf308b 378 }
Bragadeesh153 13:fb7facaf308b 379 crc16 = CRC::crc16_gen(telemetry,132);
Bragadeesh153 13:fb7facaf308b 380 telemetry[132] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 381 telemetry[133] = (uint8_t)(crc16&0x00FF);
Bragadeesh153 13:fb7facaf308b 382 break;
Bragadeesh153 13:fb7facaf308b 383 }
Bragadeesh153 13:fb7facaf308b 384 }
Bragadeesh153 13:fb7facaf308b 385 break;
Bragadeesh153 13:fb7facaf308b 386 }
sakthipriya 3:07e15677a75c 387 case 0x05:
sakthipriya 3:07e15677a75c 388 {
lakshya 15:e09aaaccf134 389 printf("\nRead from MID 0001 min max\n");
lakshya 15:e09aaaccf134 390 /*changed*/
lakshya 15:e09aaaccf134 391 printf("\n\rwrite on flash\n");
lakshya 15:e09aaaccf134 392 uint32_t FLASH_DATA[8];
lakshya 15:e09aaaccf134 393
lakshya 15:e09aaaccf134 394 uint16_t MID = ((uint16_t)tc[3] << 8) | tc[4];
lakshya 15:e09aaaccf134 395 switch(MID )
lakshya 15:e09aaaccf134 396 {
lakshya 15:e09aaaccf134 397
lakshya 15:e09aaaccf134 398 case 0x0100:
lakshya 15:e09aaaccf134 399 {
lakshya 15:e09aaaccf134 400 FLASH_DATA[0] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
lakshya 15:e09aaaccf134 401 FCTN_CDMS_WR_FLASH(0x00,FLASH_DATA[0]);
lakshya 15:e09aaaccf134 402 break;
lakshya 15:e09aaaccf134 403 }
lakshya 15:e09aaaccf134 404 case 0x0101:
lakshya 15:e09aaaccf134 405 {
lakshya 15:e09aaaccf134 406 FLASH_DATA[1] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
lakshya 15:e09aaaccf134 407 FCTN_CDMS_WR_FLASH(0x01,FLASH_DATA[1]);
lakshya 15:e09aaaccf134 408 break;
lakshya 15:e09aaaccf134 409 }
lakshya 15:e09aaaccf134 410
lakshya 15:e09aaaccf134 411 case 0x0102:
lakshya 15:e09aaaccf134 412 {
lakshya 15:e09aaaccf134 413 FLASH_DATA[2] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
lakshya 15:e09aaaccf134 414 FCTN_CDMS_WR_FLASH(0x02,FLASH_DATA[2]);
lakshya 15:e09aaaccf134 415 break;
lakshya 15:e09aaaccf134 416 }
lakshya 15:e09aaaccf134 417
lakshya 15:e09aaaccf134 418 case 0x0103:
lakshya 15:e09aaaccf134 419 {
lakshya 15:e09aaaccf134 420 FLASH_DATA[3] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
lakshya 15:e09aaaccf134 421 FCTN_CDMS_WR_FLASH(0x03,FLASH_DATA[3]);
lakshya 15:e09aaaccf134 422 break;
lakshya 15:e09aaaccf134 423 }
lakshya 15:e09aaaccf134 424 case 0x0104:
lakshya 15:e09aaaccf134 425 {
lakshya 15:e09aaaccf134 426 FLASH_DATA[4] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
lakshya 15:e09aaaccf134 427 FCTN_CDMS_WR_FLASH(0x04,FLASH_DATA[4]);
lakshya 15:e09aaaccf134 428 break;
lakshya 15:e09aaaccf134 429 }
lakshya 15:e09aaaccf134 430
lakshya 15:e09aaaccf134 431 case 0x0105:
lakshya 15:e09aaaccf134 432 {
lakshya 15:e09aaaccf134 433 FLASH_DATA[5] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
lakshya 15:e09aaaccf134 434 FCTN_CDMS_WR_FLASH(0x05,FLASH_DATA[5]);
lakshya 15:e09aaaccf134 435 break;
lakshya 15:e09aaaccf134 436 }
lakshya 15:e09aaaccf134 437 case 0x0106:
lakshya 15:e09aaaccf134 438 {
lakshya 15:e09aaaccf134 439 FLASH_DATA[6] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
lakshya 15:e09aaaccf134 440 FCTN_CDMS_WR_FLASH(0x06,FLASH_DATA[6]);
lakshya 15:e09aaaccf134 441 break;
lakshya 15:e09aaaccf134 442 }
lakshya 15:e09aaaccf134 443
lakshya 15:e09aaaccf134 444 case 0x0107:
lakshya 15:e09aaaccf134 445 {
lakshya 15:e09aaaccf134 446 FLASH_DATA[7] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
lakshya 15:e09aaaccf134 447 FCTN_CDMS_WR_FLASH(0x07,FLASH_DATA[7]);
lakshya 15:e09aaaccf134 448 break;
lakshya 15:e09aaaccf134 449 }
lakshya 15:e09aaaccf134 450
lakshya 15:e09aaaccf134 451 default:
lakshya 15:e09aaaccf134 452 {
lakshya 15:e09aaaccf134 453 printf("Invalid MMS\r\n");
lakshya 15:e09aaaccf134 454 }
lakshya 15:e09aaaccf134 455 }
lakshya 15:e09aaaccf134 456
lakshya 15:e09aaaccf134 457
lakshya 15:e09aaaccf134 458 for (int i=4; i<132;i++)
lakshya 15:e09aaaccf134 459 {
lakshya 15:e09aaaccf134 460 tm[i] = 0x00;
lakshya 15:e09aaaccf134 461 }
lakshya 15:e09aaaccf134 462 crc16 = CRC::crc16_gen(tm,132);
lakshya 15:e09aaaccf134 463 tm[132] = (uint8_t)((crc16&0xFF00)>>8);
lakshya 15:e09aaaccf134 464 tm[133] = (uint8_t)(crc16&0x00FF);
lakshya 15:e09aaaccf134 465 tm[0] = 0x60;
lakshya 15:e09aaaccf134 466 tm[1] = tc[0];
lakshya 15:e09aaaccf134 467 tm[2] = ACK_CODE;
lakshya 15:e09aaaccf134 468
lakshya 15:e09aaaccf134 469 printf("Written on Flash\r\n");
Bragadeesh153 13:fb7facaf308b 470 break;
sakthipriya 3:07e15677a75c 471 }
sakthipriya 3:07e15677a75c 472 default:
sakthipriya 3:07e15677a75c 473 {
sakthipriya 3:07e15677a75c 474 printf("Invalid TC");
Bragadeesh153 13:fb7facaf308b 475 //ACK_L234_telemetry
Bragadeesh153 13:fb7facaf308b 476 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 477 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 478 telemetry[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 479 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 480 {
Bragadeesh153 13:fb7facaf308b 481 telemetry[i]=0x00;
sakthipriya 0:7b4c00e3912f 482 }
Bragadeesh153 13:fb7facaf308b 483 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 484 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 485 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 486 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 487 {
Bragadeesh153 13:fb7facaf308b 488 telemetry[i]=0x00;
sakthipriya 0:7b4c00e3912f 489 }
Bragadeesh153 13:fb7facaf308b 490 break;
sakthipriya 3:07e15677a75c 491 }
sakthipriya 3:07e15677a75c 492 }
Bragadeesh153 13:fb7facaf308b 493 break;
sakthipriya 0:7b4c00e3912f 494 }
sakthipriya 3:07e15677a75c 495 case 0x80:
sakthipriya 3:07e15677a75c 496 {
Bragadeesh153 13:fb7facaf308b 497 //printf("Function Management Service\r\n");
sakthipriya 3:07e15677a75c 498 uint8_t service_subtype=(tc[2]&0x0F);
sakthipriya 3:07e15677a75c 499 switch(service_subtype)
sakthipriya 3:07e15677a75c 500 {
sakthipriya 3:07e15677a75c 501 case 0x01:
sakthipriya 3:07e15677a75c 502 {
prasanthbj05 18:95f0cc565ee3 503 //printf("FMS Activated\r\n");
sakthipriya 3:07e15677a75c 504 uint8_t pid=tc[3];
sakthipriya 3:07e15677a75c 505 switch(pid)
sakthipriya 3:07e15677a75c 506 {
sakthipriya 5:bb592f3185cc 507 case 0xE0:
sakthipriya 3:07e15677a75c 508 {
lakshya 10:f93407b97750 509 float B[3],W[3];
sakthipriya 5:bb592f3185cc 510 printf("ACS_COMSN\r\n");
Bragadeesh153 13:fb7facaf308b 511 //ACK_L234_telemetry
Bragadeesh153 13:fb7facaf308b 512
lakshya 10:f93407b97750 513 uint8_t B_x[2];
lakshya 10:f93407b97750 514 uint8_t B_y[2];
lakshya 10:f93407b97750 515 uint8_t B_z[2];
lakshya 10:f93407b97750 516 uint8_t W_x[2];
lakshya 10:f93407b97750 517 uint8_t W_y[2];
lakshya 10:f93407b97750 518 uint8_t W_z[2];
Bragadeesh153 13:fb7facaf308b 519
lakshya 10:f93407b97750 520 B_x[0]=tc[3];
lakshya 10:f93407b97750 521 B_x[1]=tc[4];
lakshya 10:f93407b97750 522 B_y[0]=tc[5];
lakshya 10:f93407b97750 523 B_y[1]=tc[6];
lakshya 10:f93407b97750 524 B_z[0]=tc[7];
lakshya 10:f93407b97750 525 B_z[1]=tc[8];
Bragadeesh153 13:fb7facaf308b 526
lakshya 10:f93407b97750 527 W_x[0]=tc[9];
lakshya 10:f93407b97750 528 W_x[1]=tc[10];
lakshya 10:f93407b97750 529 W_y[0]=tc[11];
lakshya 10:f93407b97750 530 W_y[1]=tc[12];
lakshya 10:f93407b97750 531 W_z[0]=tc[13];
lakshya 10:f93407b97750 532 W_z[1]=tc[14];
Bragadeesh153 13:fb7facaf308b 533
lakshya 11:1fdb94ae6563 534 FCTN_CONVERT_UINT(B_x,&B[0]);
lakshya 11:1fdb94ae6563 535 FCTN_CONVERT_UINT(B_y,&B[1]);
lakshya 11:1fdb94ae6563 536 FCTN_CONVERT_UINT(B_z,&B[2]);
Bragadeesh153 13:fb7facaf308b 537
lakshya 10:f93407b97750 538 FCTN_CONVERT_UINT (W_x, &W[0]);
lakshya 10:f93407b97750 539 FCTN_CONVERT_UINT (W_y, &W[1]);
lakshya 10:f93407b97750 540 FCTN_CONVERT_UINT (W_z, &W[2]);
Bragadeesh153 13:fb7facaf308b 541
Bragadeesh153 13:fb7facaf308b 542 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 543 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 544 telemetry[2]=ACK_CODE;
lakshya 10:f93407b97750 545 //FCTN_ATS_DATA_ACQ(); //get data
Bragadeesh153 13:fb7facaf308b 546 printf("gyro values\n\r");
Bragadeesh153 13:fb7facaf308b 547 for(int i=0; i<3; i++)
lakshya 10:f93407b97750 548 printf("%f\n\r",W[i]);
sakthipriya 5:bb592f3185cc 549 printf("mag values\n\r");
Bragadeesh153 13:fb7facaf308b 550 for(int i=0; i<3; i++)
lakshya 10:f93407b97750 551 printf("%f\n\r",B[i]);
Bragadeesh153 13:fb7facaf308b 552 /* FCTN_CONVERT_FLOAT(data[0],&telemetry[4]); //telemetry[4] - telemetry[7]
Bragadeesh153 13:fb7facaf308b 553 FCTN_CONVERT_FLOAT(data[1],&telemetry[8]); //telemetry[8] - telemetry[11]
Bragadeesh153 13:fb7facaf308b 554 FCTN_CONVERT_FLOAT(data[2],&telemetry[12]); //telemetry[12] - telemetry[15]
Bragadeesh153 13:fb7facaf308b 555 FCTN_CONVERT_FLOAT(data[0],&telemetry[16]); //telemetry[16] - telemetry[19]
Bragadeesh153 13:fb7facaf308b 556 FCTN_CONVERT_FLOAT(data[1],&telemetry[20]); //telemetry[20] - telemetry[23]
Bragadeesh153 13:fb7facaf308b 557 FCTN_CONVERT_FLOAT(data[2],&telemetry[24]); //telemetry[24] - telemetry[27]
sakthipriya 5:bb592f3185cc 558 if((data[0]<8) && (data[1]<8) && (data[2] <8))
Bragadeesh153 13:fb7facaf308b 559 telemetry[28] = 1; // gyro values in correct range
sakthipriya 5:bb592f3185cc 560 else
Bragadeesh153 13:fb7facaf308b 561 telemetry[28] = 0;
sakthipriya 5:bb592f3185cc 562 if ((data[3] > 20 ) && (data[4] >20) && (data[5]>20)&& (data[3] < 50 ) && (data[4] <50) && (data[5]<50))
Bragadeesh153 13:fb7facaf308b 563 telemetry[29] = 1; // mag values in correct range
sakthipriya 5:bb592f3185cc 564 else
Bragadeesh153 13:fb7facaf308b 565 telemetry[29] = 0;
Bragadeesh153 13:fb7facaf308b 566 */
Bragadeesh153 13:fb7facaf308b 567 // float B[3],W[3];
lakshya 10:f93407b97750 568 // B[0] = B0;
Bragadeesh153 13:fb7facaf308b 569 // B[1] = B1;
lakshya 10:f93407b97750 570 // B[2] = B2;
lakshya 10:f93407b97750 571 // W[0] = W0;
Bragadeesh153 13:fb7facaf308b 572 // W[1] = W1;
Bragadeesh153 13:fb7facaf308b 573 // W[2] = W2;
sakthipriya 5:bb592f3185cc 574 // Control algo commissioning
lakshya 10:f93407b97750 575 /* FCTN_ACS_CNTRLALGO(B,W);
Bragadeesh153 13:fb7facaf308b 576 FCTN_CONVERT_FLOAT(moment[0],&telemetry[30]); //telemetry[30] - telemetry[33]
Bragadeesh153 13:fb7facaf308b 577 FCTN_CONVERT_FLOAT(moment[1],&telemetry[34]); //telemetry[34] - telemetry[37]
Bragadeesh153 13:fb7facaf308b 578 FCTN_CONVERT_FLOAT(moment[2],&telemetry[38]); //telemetry[38] - telemetry[41]
sakthipriya 5:bb592f3185cc 579 // to include commission TR as well
sakthipriya 5:bb592f3185cc 580 for(uint8_t i=42;i<132;i++)
sakthipriya 3:07e15677a75c 581 {
Bragadeesh153 13:fb7facaf308b 582 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 583 }
Bragadeesh153 13:fb7facaf308b 584
Bragadeesh153 13:fb7facaf308b 585 crc16 = CRC::crc16_gen(telemetry,132);
Bragadeesh153 13:fb7facaf308b 586 telemetry[133] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 587 telemetry[134] = (uint8_t)(crc16&0x00FF);
Bragadeesh153 13:fb7facaf308b 588 break;
Bragadeesh153 13:fb7facaf308b 589 */
Bragadeesh153 13:fb7facaf308b 590
lakshya 10:f93407b97750 591 // Control algo commissioning
lakshya 10:f93407b97750 592 FCTN_ACS_CNTRLALGO(B,W);
Bragadeesh153 13:fb7facaf308b 593 FCTN_CONVERT_FLOAT(moment[0],&telemetry[4]); //telemetry[4] - telemetry[7]
Bragadeesh153 13:fb7facaf308b 594 FCTN_CONVERT_FLOAT(moment[1],&telemetry[8]); //telemetry[8] - telemetry[11]
Bragadeesh153 13:fb7facaf308b 595 FCTN_CONVERT_FLOAT(moment[2],&telemetry[12]); //telemetry[12] - telemetry[15]
lakshya 10:f93407b97750 596 // to include commission TR as well
lakshya 10:f93407b97750 597 for(uint8_t i=16;i<132;i++)
lakshya 10:f93407b97750 598 {
Bragadeesh153 13:fb7facaf308b 599 telemetry[i]=0x00;
lakshya 10:f93407b97750 600 }
Bragadeesh153 13:fb7facaf308b 601
Bragadeesh153 13:fb7facaf308b 602 crc16 = CRC::crc16_gen(telemetry,132);
Bragadeesh153 13:fb7facaf308b 603 telemetry[133] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 604 telemetry[134] = (uint8_t)(crc16&0x00FF);
Bragadeesh153 13:fb7facaf308b 605 break;
sakthipriya 3:07e15677a75c 606 }
lakshya 10:f93407b97750 607 case 0xE1:
sakthipriya 3:07e15677a75c 608 {
Bragadeesh153 13:fb7facaf308b 609 float moment_tc[3];
lakshya 10:f93407b97750 610 printf("HARDWARE_COMSN\r\n");
Bragadeesh153 13:fb7facaf308b 611 //ACK_L234_telemetry
lakshya 10:f93407b97750 612 uint8_t M0[2];
lakshya 10:f93407b97750 613 uint8_t M1[2];
lakshya 10:f93407b97750 614 uint8_t M2[2];
Bragadeesh153 13:fb7facaf308b 615
lakshya 10:f93407b97750 616 M0[0]=tc[3];
lakshya 10:f93407b97750 617 M0[1]=tc[4];
lakshya 10:f93407b97750 618 M1[0]=tc[5];
lakshya 10:f93407b97750 619 M1[1]=tc[6];
lakshya 10:f93407b97750 620 M2[0]=tc[7];
lakshya 10:f93407b97750 621 M2[1]=tc[8];
Bragadeesh153 13:fb7facaf308b 622
Bragadeesh153 13:fb7facaf308b 623
Bragadeesh153 13:fb7facaf308b 624 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 625 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 626 telemetry[2]=ACK_CODE;
lakshya 10:f93407b97750 627
Bragadeesh153 13:fb7facaf308b 628 float PWM_measured[3];
lakshya 10:f93407b97750 629
lakshya 10:f93407b97750 630
Bragadeesh153 13:fb7facaf308b 631 FCTN_CONVERT_UINT(M0,&moment_tc[0]);
Bragadeesh153 13:fb7facaf308b 632 moment_tc[1] = 0;
Bragadeesh153 13:fb7facaf308b 633 moment_tc[2] = 0;
Bragadeesh153 13:fb7facaf308b 634 FCTN_ACS_GENPWM_MAIN(moment_tc);
Bragadeesh153 13:fb7facaf308b 635 PWM_measured[0] = PWM1.read();
lakshya 14:a9588f443f1a 636 FCTN_CONVERT_FLOAT(actual_data.current_actual[5],&telemetry[16 + (0*4)]);
lakshya 10:f93407b97750 637
Bragadeesh153 13:fb7facaf308b 638 FCTN_CONVERT_UINT(M1, &moment_tc[1]);
Bragadeesh153 13:fb7facaf308b 639 moment_tc[0] = 0;
Bragadeesh153 13:fb7facaf308b 640 moment_tc[2] = 0;
Bragadeesh153 13:fb7facaf308b 641 FCTN_ACS_GENPWM_MAIN(moment_tc);
Bragadeesh153 13:fb7facaf308b 642 PWM_measured[1] = PWM2.read();
lakshya 14:a9588f443f1a 643 FCTN_CONVERT_FLOAT(actual_data.current_actual[5],&telemetry[16 + (1*4)]);
Bragadeesh153 13:fb7facaf308b 644
Bragadeesh153 13:fb7facaf308b 645 FCTN_CONVERT_UINT(M2, &moment_tc[2]);
Bragadeesh153 13:fb7facaf308b 646 moment_tc[0] = 0;
Bragadeesh153 13:fb7facaf308b 647 moment_tc[1] = 0;
Bragadeesh153 13:fb7facaf308b 648 FCTN_ACS_GENPWM_MAIN(moment_tc);
Bragadeesh153 13:fb7facaf308b 649 PWM_measured[2] = PWM3.read();
lakshya 14:a9588f443f1a 650 FCTN_CONVERT_FLOAT(actual_data.current_actual[5],&telemetry[16 + (2*4)]);
lakshya 10:f93407b97750 651
Bragadeesh153 13:fb7facaf308b 652 FCTN_CONVERT_FLOAT(PWM_measured[0],&telemetry[4]); //4-7
Bragadeesh153 13:fb7facaf308b 653 FCTN_CONVERT_FLOAT(PWM_measured[1],&telemetry[8]); //8-11
Bragadeesh153 13:fb7facaf308b 654 FCTN_CONVERT_FLOAT(PWM_measured[2],&telemetry[12]); //12-15
Bragadeesh153 13:fb7facaf308b 655
lakshya 10:f93407b97750 656
Bragadeesh153 13:fb7facaf308b 657 // for(int i=0; i<12; i++)
Bragadeesh153 13:fb7facaf308b 658 // FCTN_CONVERT_FLOAT(actual_data.current_actual[i],&telemetry[16 + (i*4)]);
lakshya 10:f93407b97750 659
Bragadeesh153 13:fb7facaf308b 660
Bragadeesh153 13:fb7facaf308b 661 // FCTN_ATS_DATA_ACQ(); //get data
Bragadeesh153 13:fb7facaf308b 662
lakshya 10:f93407b97750 663
lakshya 10:f93407b97750 664 // to include commission TR as well
Bragadeesh153 13:fb7facaf308b 665 for(uint8_t i=28;i<132;i++)
lakshya 10:f93407b97750 666 {
Bragadeesh153 13:fb7facaf308b 667 telemetry[i]=0x00;
lakshya 10:f93407b97750 668 }
Bragadeesh153 13:fb7facaf308b 669
Bragadeesh153 13:fb7facaf308b 670 crc16 = CRC::crc16_gen(telemetry,132);
Bragadeesh153 13:fb7facaf308b 671 telemetry[133] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 672 telemetry[134] = (uint8_t)(crc16&0x00FF);
Bragadeesh153 13:fb7facaf308b 673 break;
lakshya 10:f93407b97750 674 }
Bragadeesh153 13:fb7facaf308b 675 case 0x02:
lakshya 10:f93407b97750 676 {
Bragadeesh153 13:fb7facaf308b 677
Bragadeesh153 13:fb7facaf308b 678 printf("Run P_EPS_MAIN\r\n");
Bragadeesh153 13:fb7facaf308b 679 F_EPS();
Bragadeesh153 13:fb7facaf308b 680 //ACK_L234_telemetry
Bragadeesh153 13:fb7facaf308b 681 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 682 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 683 telemetry[2]=ACK_CODE;
lakshya 10:f93407b97750 684 for(uint8_t i=0;i<133;i++)
sakthipriya 3:07e15677a75c 685 {
Bragadeesh153 13:fb7facaf308b 686 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 687 }
Bragadeesh153 13:fb7facaf308b 688 crc16 = CRC::crc16_gen(telemetry,132);
Bragadeesh153 13:fb7facaf308b 689 telemetry[132] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 690 telemetry[133] = (uint8_t)(crc16&0x00FF);
Bragadeesh153 13:fb7facaf308b 691
sakthipriya 3:07e15677a75c 692 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 693 {
Bragadeesh153 13:fb7facaf308b 694 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 695 }
Bragadeesh153 13:fb7facaf308b 696 break;
sakthipriya 3:07e15677a75c 697 }
Bragadeesh153 13:fb7facaf308b 698 case 0x03:
sakthipriya 3:07e15677a75c 699 {
Bragadeesh153 13:fb7facaf308b 700 printf("Run P_ACS_INIT\r\n");
Bragadeesh153 13:fb7facaf308b 701 FCTN_ACS_INIT();
Bragadeesh153 13:fb7facaf308b 702 //ACK_L234_telemetry
Bragadeesh153 13:fb7facaf308b 703 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 704 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 705 telemetry[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 706 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 707 {
Bragadeesh153 13:fb7facaf308b 708 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 709 }
Bragadeesh153 13:fb7facaf308b 710 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 711 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 712 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 713 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 714 {
Bragadeesh153 13:fb7facaf308b 715 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 716 }
Bragadeesh153 13:fb7facaf308b 717 break;
sakthipriya 3:07e15677a75c 718 }
sakthipriya 3:07e15677a75c 719 case 0x04:
sakthipriya 3:07e15677a75c 720 {
Bragadeesh153 13:fb7facaf308b 721
sakthipriya 3:07e15677a75c 722 printf("Run P_ACS_ACQ_DATA\r\n");
Bragadeesh153 13:fb7facaf308b 723 FCTN_ATS_DATA_ACQ();
sakthipriya 3:07e15677a75c 724 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 725 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 726 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 727 telemetry[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 728 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 729 {
Bragadeesh153 13:fb7facaf308b 730 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 731 }
Bragadeesh153 13:fb7facaf308b 732 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 733 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 734 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 735 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 736 {
Bragadeesh153 13:fb7facaf308b 737 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 738 }
Bragadeesh153 13:fb7facaf308b 739 break;
sakthipriya 3:07e15677a75c 740 }
sakthipriya 3:07e15677a75c 741 case 0x05:
sakthipriya 3:07e15677a75c 742 {
sakthipriya 3:07e15677a75c 743 printf("Run P_ACS_MAIN\r\n");
lakshya 10:f93407b97750 744 F_ACS();
Bragadeesh153 13:fb7facaf308b 745 for(int i=0; i<3; i++)
Bragadeesh153 13:fb7facaf308b 746 FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[i],&telemetry[(i*4)]);
lakshya 10:f93407b97750 747 for(int i=0; i<3; i++)
Bragadeesh153 13:fb7facaf308b 748 FCTN_CONVERT_FLOAT(actual_data.AngularSpeed_actual[i],&telemetry[12+(i*4)]);
Bragadeesh153 13:fb7facaf308b 749
Bragadeesh153 13:fb7facaf308b 750 telemetry[24] = ACS_STATE;
Bragadeesh153 13:fb7facaf308b 751 telemetry[24] = telemetry[5]|(EN_BTRY_HT<<3);
Bragadeesh153 13:fb7facaf308b 752 telemetry[24] = telemetry[5]|(phase_TR_x<<4);
Bragadeesh153 13:fb7facaf308b 753 telemetry[24] = telemetry[5]|(phase_TR_y<<5);
Bragadeesh153 13:fb7facaf308b 754 telemetry[24] = telemetry[5]|(phase_TR_z<<6);
Bragadeesh153 13:fb7facaf308b 755
lakshya 11:1fdb94ae6563 756 /*___________________change / check pwm working__________________________________*/
Bragadeesh153 13:fb7facaf308b 757
Bragadeesh153 13:fb7facaf308b 758 FCTN_CONVERT_FLOAT(PWM1,&telemetry[25]);
Bragadeesh153 13:fb7facaf308b 759 FCTN_CONVERT_FLOAT(PWM2,&telemetry[29]);
Bragadeesh153 13:fb7facaf308b 760 FCTN_CONVERT_FLOAT(PWM3,&telemetry[33]);
Bragadeesh153 13:fb7facaf308b 761
lakshya 10:f93407b97750 762 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 763 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 764 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 765 telemetry[2]=ACK_CODE;
lakshya 10:f93407b97750 766 for(uint8_t i=3;i<11;i++)
lakshya 10:f93407b97750 767 {
Bragadeesh153 13:fb7facaf308b 768 telemetry[i]=0x00;
lakshya 10:f93407b97750 769 }
Bragadeesh153 13:fb7facaf308b 770
Bragadeesh153 13:fb7facaf308b 771 crc16 = CRC::crc16_gen(telemetry,37);
Bragadeesh153 13:fb7facaf308b 772 telemetry[37] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 773 telemetry[38] = (uint8_t)(crc16&0x00FF);
lakshya 10:f93407b97750 774 for(uint8_t i=39;i<134;i++)
lakshya 10:f93407b97750 775 {
Bragadeesh153 13:fb7facaf308b 776 telemetry[i]=0x00;
lakshya 10:f93407b97750 777 }
Bragadeesh153 13:fb7facaf308b 778 break;
lakshya 10:f93407b97750 779 }
lakshya 10:f93407b97750 780 case 0x06:
lakshya 10:f93407b97750 781 {
lakshya 10:f93407b97750 782 F_BCN();
Bragadeesh153 13:fb7facaf308b 783 printf("Run P_BCN_INIT\r\n");
sakthipriya 3:07e15677a75c 784 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 785 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 786 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 787 telemetry[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 788 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 789 {
Bragadeesh153 13:fb7facaf308b 790 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 791 }
Bragadeesh153 13:fb7facaf308b 792 crc16 = CRC::crc16_gen(telemetry,0);
Bragadeesh153 13:fb7facaf308b 793 telemetry[0] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 794 telemetry[1] = (uint8_t)(crc16&0x00FF);
lakshya 10:f93407b97750 795 for(uint8_t i=2;i<134;i++)
sakthipriya 3:07e15677a75c 796 {
Bragadeesh153 13:fb7facaf308b 797 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 798 }
Bragadeesh153 13:fb7facaf308b 799 break;
sakthipriya 3:07e15677a75c 800 }
sakthipriya 3:07e15677a75c 801 case 0x07:
sakthipriya 3:07e15677a75c 802 {
Bragadeesh153 13:fb7facaf308b 803 printf("Run P_BCN_TX_MAIN\r\n");
sakthipriya 3:07e15677a75c 804 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 805 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 806 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 807 telemetry[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 808 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 809 {
Bragadeesh153 13:fb7facaf308b 810 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 811 }
Bragadeesh153 13:fb7facaf308b 812 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 813 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 814 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 815 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 816 {
Bragadeesh153 13:fb7facaf308b 817 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 818 }
Bragadeesh153 13:fb7facaf308b 819 break;
Bragadeesh153 13:fb7facaf308b 820 }
Bragadeesh153 13:fb7facaf308b 821 case 0x11:
sakthipriya 3:07e15677a75c 822 {
sakthipriya 3:07e15677a75c 823 printf("SW_ON_ACS_ATS1_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 824 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 825 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 826 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 827 telemetry[2]=1;
lakshya 10:f93407b97750 828 ATS1_SW_ENABLE = 1; // making sure we switch off the other
sakthipriya 9:194afacf7449 829 ATS1_SW_ENABLE = 0;
sakthipriya 3:07e15677a75c 830 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 831 {
Bragadeesh153 13:fb7facaf308b 832 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 833 }
Bragadeesh153 13:fb7facaf308b 834 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 835 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 836 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 837 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 838 {
Bragadeesh153 13:fb7facaf308b 839 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 840 }
Bragadeesh153 13:fb7facaf308b 841 break;
sakthipriya 3:07e15677a75c 842 }
sakthipriya 3:07e15677a75c 843 case 0x12:
sakthipriya 3:07e15677a75c 844 {
sakthipriya 3:07e15677a75c 845 printf("SW_ON_ACS_ATS2_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 846 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 847 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 848 telemetry[1]=tc[0];
lakshya 10:f93407b97750 849 ATS1_SW_ENABLE = 1; //make sure u switch off the other
sakthipriya 9:194afacf7449 850 ATS2_SW_ENABLE = 0;
Bragadeesh153 13:fb7facaf308b 851 telemetry[2]=1;
sakthipriya 3:07e15677a75c 852 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 853 {
Bragadeesh153 13:fb7facaf308b 854 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 855 }
Bragadeesh153 13:fb7facaf308b 856 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 857 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 858 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 859 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 860 {
Bragadeesh153 13:fb7facaf308b 861 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 862 }
Bragadeesh153 13:fb7facaf308b 863 break;
sakthipriya 3:07e15677a75c 864 }
sakthipriya 3:07e15677a75c 865 case 0x13:
sakthipriya 3:07e15677a75c 866 {
sakthipriya 3:07e15677a75c 867 printf("SW_ON_ACS_TR_XY_ENABLE\r\n");
sakthipriya 3:07e15677a75c 868 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 869 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 870 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 871 TRXY_SW = 1;
Bragadeesh153 13:fb7facaf308b 872 telemetry[2]=1;
sakthipriya 3:07e15677a75c 873 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 874 {
Bragadeesh153 13:fb7facaf308b 875 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 876 }
Bragadeesh153 13:fb7facaf308b 877 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 878 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 879 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 880 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 881 {
Bragadeesh153 13:fb7facaf308b 882 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 883 }
Bragadeesh153 13:fb7facaf308b 884 break;
sakthipriya 3:07e15677a75c 885 }
sakthipriya 3:07e15677a75c 886 case 0x14:
sakthipriya 3:07e15677a75c 887 {
sakthipriya 3:07e15677a75c 888 printf("SW_ON_ACS_TR_Z_ENABLE\r\n");
sakthipriya 3:07e15677a75c 889 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 890 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 891 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 892 telemetry[2]=1;
sakthipriya 5:bb592f3185cc 893 TRZ_SW = 1;
sakthipriya 3:07e15677a75c 894 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 895 {
Bragadeesh153 13:fb7facaf308b 896 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 897 }
Bragadeesh153 13:fb7facaf308b 898 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 899 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 900 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 901 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 902 {
Bragadeesh153 13:fb7facaf308b 903 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 904 }
Bragadeesh153 13:fb7facaf308b 905 break;
sakthipriya 3:07e15677a75c 906 }
Bragadeesh153 13:fb7facaf308b 907 case 0x15:
sakthipriya 3:07e15677a75c 908 {
sakthipriya 3:07e15677a75c 909 printf("SW_ON_BCN_TX_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 910 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 911 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 912 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 913 telemetry[2]=1;
Bragadeesh153 13:fb7facaf308b 914 BCN_SW = 0;
sakthipriya 3:07e15677a75c 915 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 916 {
Bragadeesh153 13:fb7facaf308b 917 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 918 }
Bragadeesh153 13:fb7facaf308b 919 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 920 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 921 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 922 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 923 {
Bragadeesh153 13:fb7facaf308b 924 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 925 }
Bragadeesh153 13:fb7facaf308b 926 break;
sakthipriya 3:07e15677a75c 927 }
sakthipriya 3:07e15677a75c 928 case 0x21:
sakthipriya 3:07e15677a75c 929 {
sakthipriya 3:07e15677a75c 930 printf("SW_OFF_ACS_ATS1_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 931 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 932 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 933 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 934 telemetry[2]=1;
sakthipriya 9:194afacf7449 935 ATS1_SW_ENABLE = 1;
sakthipriya 3:07e15677a75c 936 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 937 {
Bragadeesh153 13:fb7facaf308b 938 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 939 }
Bragadeesh153 13:fb7facaf308b 940 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 941 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 942 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 943 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 944 {
Bragadeesh153 13:fb7facaf308b 945 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 946 }
Bragadeesh153 13:fb7facaf308b 947 break;
sakthipriya 3:07e15677a75c 948 }
sakthipriya 3:07e15677a75c 949 case 0x22:
sakthipriya 3:07e15677a75c 950 {
sakthipriya 3:07e15677a75c 951 printf("SW_OFF_ACS_ATS2_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 952 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 953 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 954 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 955 telemetry[2]=1;
sakthipriya 9:194afacf7449 956 ATS2_SW_ENABLE = 1;
sakthipriya 3:07e15677a75c 957 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 958 {
Bragadeesh153 13:fb7facaf308b 959 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 960 }
Bragadeesh153 13:fb7facaf308b 961 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 962 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 963 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 964 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 965 {
Bragadeesh153 13:fb7facaf308b 966 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 967 }
Bragadeesh153 13:fb7facaf308b 968 break;
sakthipriya 3:07e15677a75c 969 }
sakthipriya 3:07e15677a75c 970 case 0x23:
sakthipriya 3:07e15677a75c 971 {
sakthipriya 3:07e15677a75c 972 printf("SW_OFF_ACS_TR_XY_ENABLE\r\n");
sakthipriya 3:07e15677a75c 973 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 974 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 975 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 976 telemetry[2]=1;
Bragadeesh153 13:fb7facaf308b 977 TRXY_SW= 0;
sakthipriya 3:07e15677a75c 978 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 979 {
Bragadeesh153 13:fb7facaf308b 980 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 981 }
Bragadeesh153 13:fb7facaf308b 982 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 983 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 984 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 985 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 986 {
Bragadeesh153 13:fb7facaf308b 987 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 988 }
Bragadeesh153 13:fb7facaf308b 989 break;
sakthipriya 3:07e15677a75c 990 }
sakthipriya 3:07e15677a75c 991 case 0x24:
sakthipriya 3:07e15677a75c 992 {
sakthipriya 3:07e15677a75c 993 printf("SW_OFF_ACS_TR_Z_ENABLE\r\n");
sakthipriya 3:07e15677a75c 994 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 995 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 996 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 997 telemetry[2]=1;
sakthipriya 5:bb592f3185cc 998 TRZ_SW = 0;
sakthipriya 3:07e15677a75c 999 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 1000 {
Bragadeesh153 13:fb7facaf308b 1001 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1002 }
Bragadeesh153 13:fb7facaf308b 1003 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1004 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1005 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 1006 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 1007 {
Bragadeesh153 13:fb7facaf308b 1008 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1009 }
Bragadeesh153 13:fb7facaf308b 1010 break;
sakthipriya 3:07e15677a75c 1011 }
Bragadeesh153 13:fb7facaf308b 1012 case 0x25:
sakthipriya 3:07e15677a75c 1013 {
sakthipriya 3:07e15677a75c 1014 printf("SW_OFF_BCN_TX_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 1015 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 1016 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 1017 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 1018 telemetry[2]=1;
sakthipriya 5:bb592f3185cc 1019 BCN_SW = 1;
sakthipriya 3:07e15677a75c 1020 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 1021 {
Bragadeesh153 13:fb7facaf308b 1022 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1023 }
Bragadeesh153 13:fb7facaf308b 1024 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1025 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1026 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 1027 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 1028 {
Bragadeesh153 13:fb7facaf308b 1029 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1030 }
Bragadeesh153 13:fb7facaf308b 1031 break;
sakthipriya 3:07e15677a75c 1032 }
sakthipriya 3:07e15677a75c 1033 case 0x31:
sakthipriya 3:07e15677a75c 1034 {
sakthipriya 5:bb592f3185cc 1035 printf("ACS_ATS1_SW_RESET\r\n");
sakthipriya 3:07e15677a75c 1036 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 1037 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 1038 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 1039 telemetry[2]=1;
sakthipriya 9:194afacf7449 1040 ATS1_SW_ENABLE = 1;
sakthipriya 5:bb592f3185cc 1041 wait_us(1);
sakthipriya 9:194afacf7449 1042 ATS1_SW_ENABLE = 0;
sakthipriya 3:07e15677a75c 1043 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 1044 {
Bragadeesh153 13:fb7facaf308b 1045 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1046 }
Bragadeesh153 13:fb7facaf308b 1047 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1048 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1049 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 1050 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 1051 {
Bragadeesh153 13:fb7facaf308b 1052 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1053 }
Bragadeesh153 13:fb7facaf308b 1054 break;
sakthipriya 3:07e15677a75c 1055 }
sakthipriya 3:07e15677a75c 1056 case 0x32:
sakthipriya 3:07e15677a75c 1057 {
sakthipriya 3:07e15677a75c 1058 printf("BCN_SW_RESET\r\n");
sakthipriya 3:07e15677a75c 1059 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 1060 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 1061 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 1062 telemetry[2]=1;
sakthipriya 5:bb592f3185cc 1063 BCN_SW = 1;
sakthipriya 5:bb592f3185cc 1064 wait_us(1);
sakthipriya 5:bb592f3185cc 1065 BCN_SW = 0;
sakthipriya 3:07e15677a75c 1066 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 1067 {
Bragadeesh153 13:fb7facaf308b 1068 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1069 }
Bragadeesh153 13:fb7facaf308b 1070 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1071 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1072 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 1073 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 1074 {
Bragadeesh153 13:fb7facaf308b 1075 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1076 }
Bragadeesh153 13:fb7facaf308b 1077 break;
sakthipriya 3:07e15677a75c 1078 }
sakthipriya 3:07e15677a75c 1079 case 0x33:
sakthipriya 3:07e15677a75c 1080 {
sakthipriya 5:bb592f3185cc 1081 printf("ACS_ATS2_SW_RESET\r\n");
sakthipriya 3:07e15677a75c 1082 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 1083 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 1084 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 1085 telemetry[2]=1;
sakthipriya 9:194afacf7449 1086 ATS1_SW_ENABLE = 1;
sakthipriya 5:bb592f3185cc 1087 wait_us(1);
sakthipriya 9:194afacf7449 1088 ATS1_SW_ENABLE = 0;
sakthipriya 3:07e15677a75c 1089 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 1090 {
Bragadeesh153 13:fb7facaf308b 1091 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1092 }
Bragadeesh153 13:fb7facaf308b 1093 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1094 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1095 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 1096 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 1097 {
Bragadeesh153 13:fb7facaf308b 1098 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1099 }
Bragadeesh153 13:fb7facaf308b 1100 break;
sakthipriya 3:07e15677a75c 1101 }
Bragadeesh153 13:fb7facaf308b 1102 case 0x34:
sakthipriya 3:07e15677a75c 1103 {
prasanthbj05 18:95f0cc565ee3 1104 //printf("CDMS_SW_RESET\r\n");
sakthipriya 3:07e15677a75c 1105 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 1106 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 1107 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 1108 telemetry[2]=1;
sakthipriya 5:bb592f3185cc 1109 CDMS_RESET = 0;
sakthipriya 5:bb592f3185cc 1110 wait_us(1);
sakthipriya 5:bb592f3185cc 1111 CDMS_RESET = 1;
sakthipriya 3:07e15677a75c 1112 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 1113 {
Bragadeesh153 13:fb7facaf308b 1114 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1115 }
Bragadeesh153 13:fb7facaf308b 1116 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1117 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1118 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 1119 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 1120 {
Bragadeesh153 13:fb7facaf308b 1121 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1122 }
Bragadeesh153 13:fb7facaf308b 1123 break;
sakthipriya 3:07e15677a75c 1124 }
sakthipriya 3:07e15677a75c 1125 default:
Bragadeesh153 13:fb7facaf308b 1126 {
sakthipriya 3:07e15677a75c 1127 printf("Invalid TC\r\n");
sakthipriya 3:07e15677a75c 1128 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 1129 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 1130 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 1131 telemetry[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 1132 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 1133 {
Bragadeesh153 13:fb7facaf308b 1134 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1135 }
Bragadeesh153 13:fb7facaf308b 1136 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1137 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1138 telemetry[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 1139 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 1140 {
Bragadeesh153 13:fb7facaf308b 1141 telemetry[i]=0x00;
sakthipriya 3:07e15677a75c 1142 }
Bragadeesh153 13:fb7facaf308b 1143 break;
sakthipriya 3:07e15677a75c 1144 }
sakthipriya 3:07e15677a75c 1145 }
Bragadeesh153 13:fb7facaf308b 1146 break;
Bragadeesh153 13:fb7facaf308b 1147 }
sakthipriya 3:07e15677a75c 1148 default:
Bragadeesh153 13:fb7facaf308b 1149 {
Bragadeesh153 13:fb7facaf308b 1150 printf("Invalid TC\r\n");
Bragadeesh153 13:fb7facaf308b 1151 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 1152 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 1153 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 1154 telemetry[2]=ACK_CODE;
Bragadeesh153 13:fb7facaf308b 1155 for(uint8_t i=3;i<11;i++)
Bragadeesh153 13:fb7facaf308b 1156 {
Bragadeesh153 13:fb7facaf308b 1157 telemetry[i]=0x00;
Bragadeesh153 13:fb7facaf308b 1158 }
Bragadeesh153 13:fb7facaf308b 1159 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1160 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1161 telemetry[12] = (uint8_t)(crc16&0x00FF);
Bragadeesh153 13:fb7facaf308b 1162 for(uint8_t i=13;i<134;i++)
Bragadeesh153 13:fb7facaf308b 1163 {
Bragadeesh153 13:fb7facaf308b 1164 telemetry[i]=0x00;
Bragadeesh153 13:fb7facaf308b 1165 }
Bragadeesh153 13:fb7facaf308b 1166 break;
sakthipriya 3:07e15677a75c 1167 }
sakthipriya 3:07e15677a75c 1168 }
Bragadeesh153 13:fb7facaf308b 1169 break;
Bragadeesh153 13:fb7facaf308b 1170 }
Bragadeesh153 13:fb7facaf308b 1171 default:
Bragadeesh153 13:fb7facaf308b 1172 {
Bragadeesh153 13:fb7facaf308b 1173 printf("Invalid TC\r\n");
Bragadeesh153 13:fb7facaf308b 1174 //ACK_L234_TM
Bragadeesh153 13:fb7facaf308b 1175 telemetry[0]=0xB0;
Bragadeesh153 13:fb7facaf308b 1176 telemetry[1]=tc[0];
Bragadeesh153 13:fb7facaf308b 1177 telemetry[2]=ACK_CODE;
Bragadeesh153 13:fb7facaf308b 1178 for(uint8_t i=3;i<11;i++)
Bragadeesh153 13:fb7facaf308b 1179 {
Bragadeesh153 13:fb7facaf308b 1180 telemetry[i]=0x00;
Bragadeesh153 13:fb7facaf308b 1181 }
Bragadeesh153 13:fb7facaf308b 1182 crc16 = CRC::crc16_gen(telemetry,11);
Bragadeesh153 13:fb7facaf308b 1183 telemetry[11] = (uint8_t)((crc16&0xFF00)>>8);
Bragadeesh153 13:fb7facaf308b 1184 telemetry[12] = (uint8_t)(crc16&0x00FF);
Bragadeesh153 13:fb7facaf308b 1185 for(uint8_t i=13;i<134;i++)
Bragadeesh153 13:fb7facaf308b 1186 {
Bragadeesh153 13:fb7facaf308b 1187 telemetry[i]=0x00;
Bragadeesh153 13:fb7facaf308b 1188 }
Bragadeesh153 13:fb7facaf308b 1189 break;
sakthipriya 3:07e15677a75c 1190 }
sakthipriya 3:07e15677a75c 1191 }
Bragadeesh153 13:fb7facaf308b 1192 }
sakthipriya 4:39a4ae8c7ecd 1193
sakthipriya 4:39a4ae8c7ecd 1194
sakthipriya 4:39a4ae8c7ecd 1195
sakthipriya 4:39a4ae8c7ecd 1196
Bragadeesh153 13:fb7facaf308b 1197 int strt_add = flash_size() - (2*SECTOR_SIZE);
sakthipriya 4:39a4ae8c7ecd 1198 uint32_t flasharray[8]; //256+(3*1024)
sakthipriya 4:39a4ae8c7ecd 1199 char *nativeflash = (char*)strt_add;
sakthipriya 4:39a4ae8c7ecd 1200
sakthipriya 4:39a4ae8c7ecd 1201 /*Writing to the Flash*/
sakthipriya 4:39a4ae8c7ecd 1202 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 1203 {
Bragadeesh153 13:fb7facaf308b 1204 for(int i=0;i<8;i++)
sakthipriya 4:39a4ae8c7ecd 1205 {
sakthipriya 4:39a4ae8c7ecd 1206 flasharray[i]=nativeflash[i];
sakthipriya 4:39a4ae8c7ecd 1207 }
sakthipriya 4:39a4ae8c7ecd 1208 flasharray[j]=fdata;
sakthipriya 4:39a4ae8c7ecd 1209 erase_sector(strt_add);
sakthipriya 4:39a4ae8c7ecd 1210 program_flash(strt_add, (char*)&flasharray,4*8);
sakthipriya 4:39a4ae8c7ecd 1211 }
sakthipriya 4:39a4ae8c7ecd 1212 /*End*/
sakthipriya 4:39a4ae8c7ecd 1213
sakthipriya 4:39a4ae8c7ecd 1214 /*Reading from Flash*/
sakthipriya 4:39a4ae8c7ecd 1215 uint32_t FCTN_CDMS_RD_FLASH(uint16_t j)
sakthipriya 4:39a4ae8c7ecd 1216 {
sakthipriya 4:39a4ae8c7ecd 1217 for(int i=0;i<8;i++)
sakthipriya 4:39a4ae8c7ecd 1218 {
sakthipriya 4:39a4ae8c7ecd 1219 flasharray[i]=nativeflash[i];
sakthipriya 4:39a4ae8c7ecd 1220 }
sakthipriya 4:39a4ae8c7ecd 1221 return flasharray[j];
sakthipriya 4:39a4ae8c7ecd 1222 }
sakthipriya 5:bb592f3185cc 1223 /*End*/
sakthipriya 5:bb592f3185cc 1224
sakthipriya 5:bb592f3185cc 1225 // Convert float to 4 uint8_t
sakthipriya 5:bb592f3185cc 1226
lakshya 15:e09aaaccf134 1227
sakthipriya 6:036d08b62785 1228 void FCTN_CONVERT_FLOAT(float input, uint8_t output[4])
sakthipriya 5:bb592f3185cc 1229 {
sakthipriya 6:036d08b62785 1230 assert(sizeof(float) == sizeof(uint32_t));
sakthipriya 6:036d08b62785 1231 uint32_t* temp = reinterpret_cast<uint32_t*>(&input);
sakthipriya 6:036d08b62785 1232
sakthipriya 6:036d08b62785 1233 //float* output1 = reinterpret_cast<float*>(temp);
Bragadeesh153 13:fb7facaf308b 1234
lakshya 15:e09aaaccf134 1235 //printf("\n\r %f ", input);
lakshya 15:e09aaaccf134 1236 //std::cout << "\n\r uint32"<<*temp << std::endl;
sakthipriya 6:036d08b62785 1237
sakthipriya 6:036d08b62785 1238 output[0] =(uint8_t )(((*temp)>>24)&0xFF);
lakshya 15:e09aaaccf134 1239 output[1] =(uint8_t ) (((*temp)>>16)&0xFF);
lakshya 15:e09aaaccf134 1240 output[2] =(uint8_t ) (((*temp)>>8)&0xFF);
lakshya 15:e09aaaccf134 1241 output[3] =(uint8_t ) ((*temp) & 0xFF); // verify the logic
lakshya 15:e09aaaccf134 1242
lakshya 15:e09aaaccf134 1243 printf("\n\rthe values generated are\n");
lakshya 15:e09aaaccf134 1244 /*printf("\n\r%x\n",output[0]);
lakshya 15:e09aaaccf134 1245 printf("\n\r%x\n",output[1]);
lakshya 15:e09aaaccf134 1246 printf("\n\r%x\n",output[2]);
lakshya 15:e09aaaccf134 1247 printf("\n\r%x\n",output[3]);
lakshya 15:e09aaaccf134 1248 to check the values generated
lakshya 15:e09aaaccf134 1249 */
sakthipriya 6:036d08b62785 1250 //printf("\n\r inside %d %d %d %d", output[3],output[2],output[1],output[0]);
Bragadeesh153 13:fb7facaf308b 1251 //std:: cout << "\n\r uint8 inside " << output[3] << '\t' << output[2] << '\t' << output[1] << '\t' << output[0] <<std::endl;
Bragadeesh153 13:fb7facaf308b 1252 }