Skip to content

Commit e19ca9c

Browse files
committed
save
1 parent 45671ee commit e19ca9c

File tree

5 files changed

+82
-36
lines changed

5 files changed

+82
-36
lines changed

Telemetry-Main/BT817Q/layouts.cpp

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -37,28 +37,29 @@ void Layouts::drawTestLayout(int var) {
3737
endFrame(); // automatically waits for cmd queue to clear out
3838
}
3939

40-
void Layouts::drawStandardLayout(Faults faults, const uint8_t speed, const uint8_t soc,
41-
uint8_t acc_temp, uint8_t ctrl_tmp,
42-
uint8_t mtr_tmp, float mtr_volt, float glv,
43-
float brake_balance, float throttle_demand,
44-
float brake_demand,
45-
std::chrono::milliseconds time,
46-
double delta_time_seconds) {
40+
void Layouts::drawStandardLayout(
41+
Faults faults, const uint8_t speed, const uint8_t soc, uint8_t acc_temp,
42+
uint8_t ctrl_tmp, uint8_t mtr_tmp, float mtr_volt, float glv,
43+
float steering_angle, float brake_balance, float brake_f, float brake_r,
44+
float throttle_demand, float brake_demand, std::chrono::milliseconds time,
45+
double delta_time_seconds) {
4746
if (failure == startFrame()) {
4847
return;
4948
}
5049
loadFonts();
5150
// printf("Drew!\n");
5251
clear(255, 255, 255); // black background for frame
5352
setMainColor(black);
54-
drawProgressBar(Point{220, 10}, 340, 35, speed, 110, mid_gray, orange); // mph progress bar
53+
drawProgressBar(Point{220, 10}, 340, 35, speed, 110, mid_gray,
54+
orange); // mph progress bar
5555
for (int i = 0; i < 16; i++) { // to section off the progress bar
5656
uint16_t base_x = 220 + (20 * (i + 1));
5757
drawLine(Point{base_x, 0}, Point{base_x, 50}, white, 16 * 5);
5858
}
5959
drawRect(Point{200, 10}, Point{220, 45}, white);
6060
drawRect(Point{560, 10}, Point{580, 45}, white);
61-
drawProgressBar(Point{220, 180}, 340, 30, soc, 100, mid_gray, Color{0, 200, 36}); // soc progress bar
61+
drawProgressBar(Point{220, 180}, 340, 30, soc, 100, mid_gray,
62+
Color{0, 200, 36}); // soc progress bar
6263
drawRect(Point{200, 180}, Point{220, 210}, white);
6364
drawRect(Point{560, 180}, Point{580, 210}, white);
6465
for (int i = 0; i < 16; i++) { // to section off the progress bar
@@ -86,18 +87,25 @@ void Layouts::drawStandardLayout(Faults faults, const uint8_t speed, const uint8
8687
const auto time_ms = time - duration_cast<milliseconds>(time_s);
8788
const auto time_min = duration_cast<minutes>(time_s);
8889
time_s -= duration_cast<seconds>(time_min);
89-
drawFormattedText(100, 100, "%02d:%02d:%02d", 24, OPT_CENTER, time_min.count(), time_s.count(), time_ms.count()); // lap time formatted in mm:ss::ms
90+
drawFormattedText(100, 100, "%02d:%02d:%02d", 24, OPT_CENTER,
91+
time_min.count(), time_s.count(),
92+
time_ms.count()); // lap time formatted in mm:ss::ms
9093
const char sign_char = (delta_time_seconds > 0) ? '+' : ' ';
9194
const Color delta_color = (delta_time_seconds > 0) ? red : green;
92-
drawFormattedText(100, 150, "%c %00.2f s ", delta_color, 24, OPT_CENTER, sign_char, delta_time_seconds); // delta time formatted in ± s.ms
93-
//TODO! fix large font on boot up
94-
drawFormattedText(400, 110, "%d MPH", 1, OPT_CENTER, speed); // speed display text
95+
drawFormattedText(100, 150, "%c %00.2f s ", delta_color, 24, OPT_CENTER,
96+
sign_char,
97+
delta_time_seconds); // delta time formatted in ± s.ms
98+
// TODO! fix large font on boot up
99+
drawFormattedText(400, 110, "%d MPH", 1, OPT_CENTER,
100+
speed); // speed display text
95101
drawFormattedText(400, 160, "SOC: %d", 24, OPT_CENTER, soc);
96-
drawFormattedText(100, 260, "BB: %02.1f %% ", 24, OPT_CENTER, brake_balance * 100.0f); // brake balance display
102+
drawFormattedText(100, 260, "BB: %02.1f %% ", 24, OPT_CENTER,
103+
brake_balance * 100.0f); // brake balance display
97104
drawFormattedText(680, 80, "ACC: %03d C", 24, OPT_CENTER, acc_temp); // temps
98105
drawFormattedText(680, 115, "CTRL: %03d C", 24, OPT_CENTER, ctrl_tmp);
99106
drawFormattedText(680, 150, "MTR: %03d C", 24, OPT_CENTER, mtr_tmp);
100-
drawFormattedText(680, 205, "MC: %03.1f V ", 24, OPT_CENTER, mtr_volt); // voltages
107+
drawFormattedText(680, 205, "MC: %03.1f V ", 24, OPT_CENTER,
108+
mtr_volt); // voltages
101109
drawFormattedText(680, 235, "GLV: %03.1f V ", 24, OPT_CENTER, glv);
102110

103111
// drawProgressBar(Point{700, 300},
@@ -123,22 +131,19 @@ void Layouts::drawStandardLayout(Faults faults, const uint8_t speed, const uint8
123131
endFrame();
124132
}
125133

126-
void Layouts::drawStandardLayout2(Faults faults, uint8_t speed, uint8_t soc,
127-
uint8_t acc_temp, uint8_t ctrl_tmp,
128-
uint8_t mtr_tmp, float mtr_volt, float glv,
129-
float brake_balance, float throttle_demand,
130-
float brake_demand,
131-
std::chrono::milliseconds time,
132-
double delta_time_seconds, bool rtds,
133-
uint16_t rpm) {
134+
void Layouts::drawStandardLayout2(
135+
Faults faults, uint8_t speed, uint8_t soc, uint8_t acc_temp,
136+
uint8_t ctrl_tmp, uint8_t mtr_tmp, float mtr_volt, float glv,
137+
float steering_angle, float brake_balance, float brake_f, float brake_r,
138+
float throttle_demand, float brake_demand, std::chrono::milliseconds time,
139+
double delta_time_seconds, bool rtds, uint16_t rpm) {
134140
if (failure == startFrame()) {
135141
return;
136142
}
137143
clear(255, 255, 255); // black background for frame
138144
loadFonts();
139145
setMainColor(black);
140146

141-
142147
drawFormattedText(400, 100, "%03d", 1, OPT_CENTER, speed);
143148

144149
drawText(185, 235, "TACH", 21);
@@ -160,7 +165,7 @@ void Layouts::drawStandardLayout2(Faults faults, uint8_t speed, uint8_t soc,
160165
// segmented soc
161166
uint16_t segTopLeftY = 490 - j * 19;
162167
uint16_t segBotRightY = segTopLeftY - 10;
163-
if (soc < j*4 && !pastPoint) {
168+
if (soc < j * 4 && !pastPoint) {
164169
setMainColor(mid_gray);
165170
pastPoint = true;
166171
}
@@ -197,6 +202,9 @@ void Layouts::drawStandardLayout2(Faults faults, uint8_t speed, uint8_t soc,
197202
drawFormattedText(70, 300, "MC %03.1fV ", 24, OPT_CENTER,
198203
mtr_volt); // voltages
199204
drawFormattedText(70, 330, "GLV %03.1fV ", 24, OPT_CENTER, glv);
205+
drawFormattedText(70, 390, "BRF %03.2f ", 24, OPT_CENTER, brake_f);
206+
drawFormattedText(70, 420, "BRR %03.2f ", 24, OPT_CENTER, brake_r);
207+
drawFormattedText(70, 450, "STEER %03.2f ", 24, OPT_CENTER, steering_angle);
200208

201209
drawRect(Point{614, 127}, Point{637, 310}, mid_gray);
202210
uint16_t throttle_bar_h = (310 - floor(183 * throttle_demand));
@@ -205,6 +213,7 @@ void Layouts::drawStandardLayout2(Faults faults, uint8_t speed, uint8_t soc,
205213
drawRect(Point{643, 127}, Point{666, 310}, mid_gray);
206214
uint16_t brake_bar_h = (310 - floor(183 * brake_demand));
207215
drawRect(Point{643, brake_bar_h}, Point{666, 310}, red);
208-
// drawRect(Point{643, static_cast<uint16_t>(brake_demand)}, Point{666, 310}, red);
216+
// drawRect(Point{643, static_cast<uint16_t>(brake_demand)}, Point{666, 310},
217+
// red);
209218
endFrame();
210219
}

Telemetry-Main/BT817Q/layouts.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ class Layouts : public BT817Q {
3232
uint8_t mtr_tmp;
3333
float mtr_volt;
3434
float glv;
35+
float steering_angle;
3536
float brake_balance;
37+
float brake_f;
38+
float brake_r;
3639
float throttle_demand;
3740
float brake_demand;
3841
std::chrono::milliseconds time;
@@ -49,7 +52,10 @@ class Layouts : public BT817Q {
4952
uint8_t mtr_tmp,
5053
float mtr_volt,
5154
float glv,
55+
float steering_angle,
5256
float brake_balance,
57+
float brake_f,
58+
float brake_r,
5359
float throttle_demand,
5460
float brake_demand,
5561
std::chrono::milliseconds time,
@@ -65,7 +71,10 @@ class Layouts : public BT817Q {
6571
params.mtr_tmp,
6672
params.mtr_volt,
6773
params.glv,
74+
params.steering_angle,
6875
params.brake_balance,
76+
params.brake_f,
77+
params.brake_r,
6978
params.throttle_demand,
7079
params.brake_demand,
7180
params.time,
@@ -79,7 +88,10 @@ class Layouts : public BT817Q {
7988
uint8_t mtr_tmp,
8089
float mtr_volt,
8190
float glv,
91+
float steering_angle,
8292
float brake_balance,
93+
float brake_f,
94+
float brake_r,
8395
float throttle_demand,
8496
float brake_demand,
8597
std::chrono::milliseconds time,
@@ -97,7 +109,10 @@ class Layouts : public BT817Q {
97109
params.mtr_tmp,
98110
params.mtr_volt,
99111
params.glv,
112+
params.steering_angle,
100113
params.brake_balance,
114+
params.brake_f,
115+
params.brake_r,
101116
params.throttle_demand,
102117
params.brake_demand,
103118
params.time,

Telemetry-Main/VehicleStateManager.cpp

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <algorithm>
44
#include <chrono>
55
#include <cstring>
6+
#include <numeric>
67
#include "CANInterface.hpp"
78
#include "CANProtocol.hpp"
89
#include "mbed.h"
@@ -26,10 +27,22 @@ void VehicleStateManager::update() {
2627
readSensorValues();
2728
}
2829

30+
vector<float> brake_f_acc{10};
31+
vector<float> brake_r_acc{10};
32+
2933
void VehicleStateManager::readSensorValues() {
30-
_vehicleState.steering_sensor = _steering_sensor.read_u16();
31-
_vehicleState.brake_sensor_f = _brake_sensor_f.read_u16();
32-
_vehicleState.brake_sensor_r = _brake_sensor_r.read_u16();
34+
_vehicleState.steering_sensor = _steering_sensor.read() * 3.3f;
35+
36+
// for (int i = 0; i < 10; i++) {
37+
// brake_f_acc[i] = _brake_sensor_f.read() * 3.3f;
38+
// brake_r_acc[i] = _brake_sensor_r.read() * 3.3f;
39+
// }
40+
//
41+
// _vehicleState.brake_sensor_f = std::accumulate(brake_f_acc.begin(), brake_f_acc.end(), 0.0);
42+
// _vehicleState.brake_sensor_r = std::accumulate(brake_r_acc.begin(), brake_r_acc.end(), 0.0);
43+
44+
_vehicleState.brake_sensor_f =_brake_sensor_f.read() * 3.3f;
45+
_vehicleState.brake_sensor_r =_brake_sensor_r.read() * 3.3f;
3346
}
3447

3548
void VehicleStateManager::processCANMessage() {

Telemetry-Main/VehicleStateManager.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ struct VehicleState {
4949
VDM_YAW_RATE_t vdmYawRate;
5050

5151
// ---- FROM NUCLEO PINS ----
52-
uint16_t steering_sensor;
53-
uint16_t brake_sensor_f;
54-
uint16_t brake_sensor_r;
52+
float steering_sensor;
53+
float brake_sensor_f;
54+
float brake_sensor_r;
5555

5656
};
5757

Telemetry-Main/main.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
#include "SDBlockDevice.h"
1111

1212
#define ENABLE_RADIO false
13-
#define ENABLE_SD true
14-
#define ENABLE_DASH false
13+
#define ENABLE_SD false
14+
#define ENABLE_DASH true
1515

1616
// #define TICKS_PER_SECOND 1000
1717

1818
#define SD_UPDATE_HZ 100ms
19-
#define DASH_UPDATE_HZ 10ms
19+
#define DASH_UPDATE_HZ 100ms
2020
#define RADIO_UPDATE_HZ 1ms
2121

2222
// struct TelemetrySystemState {
@@ -64,7 +64,10 @@ Layouts::StandardLayoutParams params = {
6464
.mtr_tmp = 20,
6565
.mtr_volt = 110,
6666
.glv = 12,
67+
.steering_angle = 11,
6768
.brake_balance = 50,
69+
.brake_f = 0,
70+
.brake_r = 0,
6871
.throttle_demand = 0,
6972
.brake_demand = 0,
7073
.time = chrono::milliseconds(0),
@@ -114,7 +117,10 @@ void update_dash() {
114117
.mtr_tmp = vsm_state.smeTemp.MOTOR_TEMP,
115118
.mtr_volt = static_cast<float>(vsm_state.accPower.PACK_VOLTAGE / 100.0),
116119
.glv = static_cast<float>(vsm_state.pdbPowerA.GLV_VOLTAGE),
117-
.brake_balance = static_cast<float>(vsm_state.brake_sensor_f) / (vsm_state.brake_sensor_f + vsm_state.brake_sensor_r),
120+
.steering_angle = vsm_state.steering_sensor,
121+
.brake_balance = vsm_state.brake_sensor_f / (vsm_state.brake_sensor_f + vsm_state.brake_sensor_r),
122+
.brake_f = vsm_state.brake_sensor_f,
123+
.brake_r = vsm_state.brake_sensor_r,
118124
.throttle_demand = static_cast<float>(vsm_state.smeThrottleDemand.TORQUE_DEMAND/32768.0),
119125
// .throttle_demand = static_cast<float>(vsm_state.etcStatus.PEDAL_TRAVEL),
120126
.brake_demand = static_cast<float>(((vsm_state.etcStatus.BRAKE_SENSE_VOLTAGE / 1000.0) - 0.5) / 4),
@@ -123,6 +129,7 @@ void update_dash() {
123129
.rtds = static_cast<bool>(vsm_state.etcStatus.RTDS),
124130
.rpm = vsm_state.smeTrqSpd.SPEED,
125131
};
132+
printf("%f %f\n", params.brake_f, params.brake_r);
126133
// params.speed++;
127134
eve.drawStandardLayout2(params);
128135
}
@@ -223,6 +230,8 @@ int main() {
223230
if (ENABLE_DASH) {
224231
queue.call_every(DASH_UPDATE_HZ, &update_dash);
225232
}
233+
queue.call_every(1ms, [](){vsm.update();});
234+
queue.dispatch_forever();
226235

227236
while (true) {
228237
// t.reset();

0 commit comments

Comments
 (0)