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