@@ -34,7 +34,7 @@ SPI spi(PA_7, PA_6, PA_5);
34
34
XBeeRadio radio (spi, cs, spi_attn);
35
35
auto mbed_can = CAN(PB_8, PB_9, 500000 );
36
36
auto can = MbedCAN(mbed_can);
37
- auto vsm = VehicleStateManager(&can);
37
+ auto vsm = VehicleStateManager(&can, PC_5, PC_1, PC_0 );
38
38
39
39
// Default DASH parameters
40
40
Layouts::StandardLayoutParams params = {
@@ -69,39 +69,33 @@ void update_sd() {
69
69
// printf("SD!\n");
70
70
}
71
71
void update_dash () {
72
- // printf("DASH!\n");
73
72
const VehicleState vsm_state = vsm.getState ();
74
- int8_t total_temp = 0 ;
73
+ // int8_t total_temp = 0;
75
74
uint8_t max_temp = 0 ;
76
75
for (auto [TEMPS_CELL0, TEMPS_CELL1, TEMPS_CELL2, TEMPS_CELL3, TEMPS_CELL4,TEMPS_CELL5] : vsm_state.accSegTemps ) {
77
- total_temp += (TEMPS_CELL0 + TEMPS_CELL1 + TEMPS_CELL2 + TEMPS_CELL3 + TEMPS_CELL4 + TEMPS_CELL5);
76
+ // total_temp += (TEMPS_CELL0 + TEMPS_CELL1 + TEMPS_CELL2 + TEMPS_CELL3 + TEMPS_CELL4 + TEMPS_CELL5);
78
77
max_temp = max ( TEMPS_CELL0, max (TEMPS_CELL1, max (TEMPS_CELL2, max (TEMPS_CELL3, max (TEMPS_CELL4, TEMPS_CELL5)))));
79
78
}
80
79
params = {
81
80
.faults =
82
81
Faults{false , static_cast <bool >(vsm_state.accStatus .PRECHARGE_DONE ),
83
82
static_cast <bool >(vsm_state.accStatus .SHUTDOWN_STATE )},
84
- // .speed = static_cast<uint8_t>(vsm_state.vdmGpsData.SPEED / 100),
85
- .speed = static_cast <uint8_t >(vsm_state.etcStatus .PEDAL_TRAVEL ),
83
+ .speed = static_cast <uint8_t >(vsm_state.smeThrottleDemand .TORQUE_DEMAND / 327.68 ),
86
84
.soc = vsm_state.accPower .SOC ,
87
85
.acc_temp = max_temp,
88
86
.ctrl_tmp = vsm_state.smeTemp .CONTROLLER_TEMP ,
89
87
.mtr_tmp = vsm_state.smeTemp .MOTOR_TEMP ,
90
88
.mtr_volt = static_cast <float >(vsm_state.accPower .PACK_VOLTAGE / 100.0 ),
91
89
.glv = static_cast <float >(vsm_state.pdbPowerA .GLV_VOLTAGE ),
92
- .brake_balance = 50 ,
93
- // .throttle_demand =
94
- // static_cast<float>(static_cast<float>(vsm_state.smeThrottleDemand.TORQUE_DEMAND)/30000.0),
95
- .throttle_demand = static_cast <float >(vsm_state.etcStatus .PEDAL_TRAVEL ),
96
- .brake_demand = static_cast <float >(
97
- ((static_cast <float >(vsm_state.etcStatus .BRAKE_SENSE_VOLTAGE ) /
98
- 1000.0 ) -
99
- 0.5 ) /
100
- 4 ),
90
+ .brake_balance = static_cast <float >(vsm_state.brake_sensor_f ) / (vsm_state.brake_sensor_f + vsm_state.brake_sensor_r ),
91
+ .throttle_demand = static_cast <float >(vsm_state.smeThrottleDemand .TORQUE_DEMAND /32768.0 ),
92
+ // .throttle_demand = static_cast<float>(vsm_state.etcStatus.PEDAL_TRAVEL),
93
+ .brake_demand = static_cast <float >(((vsm_state.etcStatus .BRAKE_SENSE_VOLTAGE / 1000.0 ) - 0.5 ) / 4 ),
101
94
.time = chrono::milliseconds (0 ),
102
95
.delta_time_seconds = 0.01 ,
103
- .rtds = false ,
104
- .rpm = vsm_state.smeTrqSpd .SPEED };
96
+ .rtds = static_cast <bool >(vsm_state.etcStatus .RTDS ),
97
+ .rpm = vsm_state.smeTrqSpd .SPEED ,
98
+ };
105
99
// params.speed++;
106
100
eve.drawStandardLayout2 (params);
107
101
}
@@ -153,9 +147,6 @@ int main() {
153
147
}
154
148
155
149
x++;
156
- // Remember to read f and r brake pressure
157
-
158
-
159
150
// if (state.radio_event) {
160
151
// state.radio_event = false;
161
152
// if (state.radio_on) {
@@ -175,14 +166,12 @@ int main() {
175
166
// update_dash();
176
167
// state.dash_event = false;
177
168
// }
178
- // printf("Time: %f\n", t.elapsed_time().count()/1.0);
179
- // t.reset();
180
- // update_dash();
181
- // printf("\tDash: %f\n", t.elapsed_time().count()/1.0);
182
- if (x>7000 ) {
183
- // printf("Time: %f\n", t.elapsed_time().count()/1.0);
169
+ if (x>5000 ) {
170
+ printf (" Time: %f\n " , t.elapsed_time ().count ()/1.0 );
184
171
t.reset ();
172
+
185
173
update_dash ();
174
+
186
175
// eve.drawStandardLayout2(p);
187
176
printf (" \t Dash: %.3fms\n " , t.elapsed_time ().count ()/1000.0 );
188
177
0 commit comments