@@ -132,16 +132,14 @@ uart_cmd_t all_cmds[] = {
132
132
{
133
133
.description = "Actuate motors up" ,
134
134
.cmd = & actuate_pay_motors_cmd ,
135
- // TODO - constants
136
- .arg1 = 1 ,
135
+ .arg1 = CAN_PAY_CTRL_ACT_UP ,
137
136
.arg2 = 0 ,
138
137
.bypass_trans = false
139
138
},
140
139
{
141
140
.description = "Actuate motors down" ,
142
141
.cmd = & actuate_pay_motors_cmd ,
143
- // TODO - constants
144
- .arg1 = 2 ,
142
+ .arg1 = CAN_PAY_CTRL_ACT_DOWN ,
145
143
.arg2 = 0 ,
146
144
.bypass_trans = false
147
145
}
@@ -172,8 +170,8 @@ void print_therm_temp(uint16_t raw_data) {
172
170
adc_raw_data_to_raw_vol (raw_data ))));
173
171
}
174
172
175
- void print_imu_data (uint16_t raw_data ) {
176
- print (" 0x%.4X\n" , raw_data );
173
+ void print_gyro_data (uint16_t raw_data ) {
174
+ print (" 0x%.4X = %.3f rad/s \n" , raw_data , imu_raw_data_to_gyro ( raw_data ) );
177
175
}
178
176
179
177
void print_header (mem_header_t header ) {
@@ -199,48 +197,43 @@ void print_local_data_fn(void) {
199
197
print_voltage (eps_hk_fields [CAN_EPS_HK_BB_VOL ]);
200
198
print ("BB Cur:" );
201
199
print_current (eps_hk_fields [CAN_EPS_HK_BB_CUR ]);
202
- print ("BT Vol:" );
203
- print_voltage (eps_hk_fields [CAN_EPS_HK_BT_VOL ]);
204
- print ("BT Cur:" );
205
- print_current (eps_hk_fields [CAN_EPS_HK_BT_CUR ]);
200
+ print ("-Y Cur:" );
201
+ print_current (eps_hk_fields [CAN_EPS_HK_NY_CUR ]);
206
202
print ("+X Cur:" );
207
203
print_current (eps_hk_fields [CAN_EPS_HK_PX_CUR ]);
208
- print ("-X Cur:" );
209
- print_current (eps_hk_fields [CAN_EPS_HK_NX_CUR ]);
210
204
print ("+Y Cur:" );
211
205
print_current (eps_hk_fields [CAN_EPS_HK_PY_CUR ]);
212
- print ("-Y Cur:" );
213
- print_current (eps_hk_fields [CAN_EPS_HK_NY_CUR ]);
214
- print ("Bat Vol:" );
215
- print_voltage (eps_hk_fields [CAN_EPS_HK_BAT_VOL ]);
216
- print ("Bat Cur:" );
217
- print_current (eps_hk_fields [CAN_EPS_HK_BAT_CUR ]);
206
+ print ("-X Cur:" );
207
+ print_current (eps_hk_fields [CAN_EPS_HK_NX_CUR ]);
218
208
print ("Bat Temp 1:" );
219
209
print_therm_temp (eps_hk_fields [CAN_EPS_HK_BAT_TEMP1 ]);
220
210
print ("Bat Temp 2:" );
221
211
print_therm_temp (eps_hk_fields [CAN_EPS_HK_BAT_TEMP2 ]);
222
- // print("Acc X:");
223
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_ACC_X]);
224
- // print("Acc Y:");
225
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_ACC_Y]);
226
- // print("Acc Z:");
227
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_ACC_Z]);
228
- // print("Gyr X:");
229
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_GYR_X]);
230
- // print("Gyr Y:");
231
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_GYR_Y]);
232
- // print("Gyr Z:");
233
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_GYR_Z]);
234
- // print("Mag X:");
235
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_MAG_X]);
236
- // print("Mag Y:");
237
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_MAG_Y]);
238
- // print("Mag Z:");
239
- // print_imu_data(eps_hk_fields[CAN_EPS_HK_IMU_MAG_Z]);
240
- print ("Bat Temp Setpt 1:" );
212
+ print ("Bat Vol:" );
213
+ print_voltage (eps_hk_fields [CAN_EPS_HK_BAT_VOL ]);
214
+ print ("Bat Cur:" );
215
+ print_current (eps_hk_fields [CAN_EPS_HK_BAT_CUR ]);
216
+ print ("BT Cur:" );
217
+ print_current (eps_hk_fields [CAN_EPS_HK_BT_CUR ]);
218
+ print ("BT Vol:" );
219
+ print_voltage (eps_hk_fields [CAN_EPS_HK_BT_VOL ]);
220
+ print ("Heater Setpt 1:" );
241
221
print_therm_temp (eps_hk_fields [CAN_EPS_HK_HEAT_SP1 ]);
242
- print ("Bat Temp Setpt 2:" );
222
+ print ("Heater Setpt 2:" );
243
223
print_therm_temp (eps_hk_fields [CAN_EPS_HK_HEAT_SP2 ]);
224
+ print ("Gyro (uncal) X:" );
225
+ print_gyro_data (eps_hk_fields [CAN_EPS_HK_GYR_UNCAL_X ]);
226
+ print ("Gyro (uncal) Y:" );
227
+ print_gyro_data (eps_hk_fields [CAN_EPS_HK_GYR_UNCAL_Y ]);
228
+ print ("Gyro (uncal) Z:" );
229
+ print_gyro_data (eps_hk_fields [CAN_EPS_HK_GYR_UNCAL_Z ]);
230
+ print ("Gyro (cal) X:" );
231
+ print_gyro_data (eps_hk_fields [CAN_EPS_HK_GYR_CAL_X ]);
232
+ print ("Gyro (cal) Y:" );
233
+ print_gyro_data (eps_hk_fields [CAN_EPS_HK_GYR_CAL_Y ]);
234
+ print ("Gyro (cal) Z:" );
235
+ print_gyro_data (eps_hk_fields [CAN_EPS_HK_GYR_CAL_Z ]);
236
+
244
237
245
238
print ("\nPAY HK:\n" );
246
239
@@ -263,11 +256,12 @@ void print_local_data_fn(void) {
263
256
print ("Temp %u:" , i );
264
257
print_therm_temp (pay_hk_fields [CAN_PAY_HK_THERM0 + i ]);
265
258
}
266
- print ("Temp Setpt 1:" );
259
+ print ("Heater Setpt 1:" );
267
260
print_therm_temp (pay_hk_fields [CAN_PAY_HK_HEAT_SP1 ]);
268
- print ("Temp Setpt 2:" );
261
+ print ("Heater Setpt 2:" );
269
262
print_therm_temp (pay_hk_fields [CAN_PAY_HK_HEAT_SP2 ]);
270
263
264
+
271
265
print ("\nPAY OPT:\n" );
272
266
273
267
// print("Header: ");
@@ -521,9 +515,12 @@ void sim_send_next_eps_tx_msg(void) {
521
515
// Can return early to not send a message back
522
516
switch (msg_type ) {
523
517
case CAN_EPS_HK :
524
- if (0 <= field_num && field_num < CAN_EPS_HK_FIELD_COUNT ) {
525
- // All fields are 12-bit ADC data
518
+ if (CAN_EPS_HK_BB_VOL <= field_num && field_num <= CAN_EPS_HK_HEAT_SP2 ) {
519
+ // 12-bit data - ADC (fields 0-11) or DAC (fields 12-13)
526
520
populate_msg_data (rx_msg , rand_bits (12 ));
521
+ } else if (CAN_EPS_HK_GYR_UNCAL_X <= field_num && field_num <= CAN_EPS_HK_GYR_CAL_Z ) {
522
+ // 16-bit data - IMU gyro
523
+ populate_msg_data (rx_msg , rand_bits (16 ));
527
524
} else {
528
525
return ;
529
526
}
@@ -645,19 +642,33 @@ uint8_t uart_cb(const uint8_t* data, uint8_t len) {
645
642
if (all_cmds [i ].bypass_trans ) {
646
643
enqueue_cmd (all_cmds [i ].cmd , all_cmds [i ].arg1 , all_cmds [i ].arg2 );
647
644
} else {
645
+ uint8_t msg_type = trans_cmd_to_msg_type (all_cmds [i ].cmd );
646
+ uint32_t arg1 = all_cmds [i ].arg1 ;
647
+ uint32_t arg2 = all_cmds [i ].arg2 ;
648
+
649
+ // Encode one byte to two ASCII hex bytes
648
650
trans_rx_enc_msg [0 ] = 0x00 ;
649
- trans_rx_enc_msg [1 ] = 9 ;
650
- trans_rx_enc_msg [2 ] = trans_cmd_to_msg_type (all_cmds [i ].cmd );
651
- trans_rx_enc_msg [3 ] = (all_cmds [i ].arg1 >> 24 ) & 0xFF ;
652
- trans_rx_enc_msg [4 ] = (all_cmds [i ].arg1 >> 16 ) & 0xFF ;
653
- trans_rx_enc_msg [5 ] = (all_cmds [i ].arg1 >> 8 ) & 0xFF ;
654
- trans_rx_enc_msg [6 ] = all_cmds [i ].arg1 & 0xFF ;
655
- trans_rx_enc_msg [7 ] = (all_cmds [i ].arg2 >> 24 ) & 0xFF ;
656
- trans_rx_enc_msg [8 ] = (all_cmds [i ].arg2 >> 16 ) & 0xFF ;
657
- trans_rx_enc_msg [9 ] = (all_cmds [i ].arg2 >> 8 ) & 0xFF ;
658
- trans_rx_enc_msg [10 ] = all_cmds [i ].arg2 & 0xFF ;
659
-
660
- trans_rx_enc_msg_len = 11 ;
651
+ trans_rx_enc_msg [1 ] = 9 * 2 ;
652
+ trans_rx_enc_msg [2 ] = hex_to_char ((msg_type >> 4 ) & 0x0F );
653
+ trans_rx_enc_msg [3 ] = hex_to_char ((msg_type >> 0 ) & 0x0F );
654
+ trans_rx_enc_msg [4 ] = hex_to_char ((arg1 >> 28 ) & 0x0F );
655
+ trans_rx_enc_msg [5 ] = hex_to_char ((arg1 >> 24 ) & 0x0F );
656
+ trans_rx_enc_msg [6 ] = hex_to_char ((arg1 >> 20 ) & 0x0F );
657
+ trans_rx_enc_msg [7 ] = hex_to_char ((arg1 >> 16 ) & 0x0F );
658
+ trans_rx_enc_msg [8 ] = hex_to_char ((arg1 >> 12 ) & 0x0F );
659
+ trans_rx_enc_msg [9 ] = hex_to_char ((arg1 >> 8 ) & 0x0F );
660
+ trans_rx_enc_msg [10 ] = hex_to_char ((arg1 >> 4 ) & 0x0F );
661
+ trans_rx_enc_msg [11 ] = hex_to_char ((arg1 >> 0 ) & 0x0F );
662
+ trans_rx_enc_msg [12 ] = hex_to_char ((arg2 >> 28 ) & 0x0F );
663
+ trans_rx_enc_msg [13 ] = hex_to_char ((arg2 >> 24 ) & 0x0F );
664
+ trans_rx_enc_msg [14 ] = hex_to_char ((arg2 >> 20 ) & 0x0F );
665
+ trans_rx_enc_msg [15 ] = hex_to_char ((arg2 >> 16 ) & 0x0F );
666
+ trans_rx_enc_msg [16 ] = hex_to_char ((arg2 >> 12 ) & 0x0F );
667
+ trans_rx_enc_msg [17 ] = hex_to_char ((arg2 >> 8 ) & 0x0F );
668
+ trans_rx_enc_msg [18 ] = hex_to_char ((arg2 >> 4 ) & 0x0F );
669
+ trans_rx_enc_msg [19 ] = hex_to_char ((arg2 >> 0 ) & 0x0F );
670
+
671
+ trans_rx_enc_msg_len = 20 ;
661
672
trans_rx_enc_msg_avail = true;
662
673
}
663
674
}
@@ -683,7 +694,7 @@ int main(void){
683
694
sim_eps = true;
684
695
sim_pay = true;
685
696
sim_trans = true;
686
- sim_trans_uart = false ;
697
+ sim_trans_uart = true ;
687
698
print_can_msgs = true;
688
699
print_cmds = true;
689
700
print_trans_msgs = true;
0 commit comments