BOLT Dash (C++)
Loading...
Searching...
No Matches
backend.h
1#ifndef BACKEND_H
2#define BACKEND_H
3
4#include "qtmetamacros.h"
5#include <QObject>
6#include <QString>
7#include <qqml.h>
8#include <vector>
9
15class Backend : public QObject {
16 Q_OBJECT
17 QML_ELEMENT
18 Q_PROPERTY(double motorTemp READ motorTemp WRITE setMotorTemp NOTIFY motorTempChanged);
19 Q_PROPERTY(double auxVoltage READ auxVoltage WRITE setAuxVoltage NOTIFY auxVoltageChanged);
20 Q_PROPERTY(double auxPercent READ auxPercent WRITE setAuxPercent NOTIFY auxPercentChanged);
21 Q_PROPERTY(double packSOC READ packSOC WRITE setPackSOC NOTIFY packSOCChanged);
22 Q_PROPERTY(double packVoltage READ packVoltage WRITE setPackVoltage NOTIFY packVoltageChanged);
23 Q_PROPERTY(double highCellTemp READ highCellTemp WRITE setHighCellTemp NOTIFY highCellTempChanged);
24 Q_PROPERTY(double lowCellTemp READ lowCellTemp WRITE setLowCellTemp NOTIFY lowCellTempChanged);
25 Q_PROPERTY(double bmsTemp READ bmsTemp WRITE setBmsTemp NOTIFY bmsTempChanged);
26 Q_PROPERTY(double motorSpeed READ motorSpeed WRITE setMotorSpeed NOTIFY motorSpeedChanged);
27 Q_PROPERTY(double bikeSpeed READ bikeSpeed WRITE setBikeSpeed NOTIFY bikeSpeedChanged);
28 Q_PROPERTY(double mcTemp READ mcTemp WRITE setMcTemp NOTIFY mcTempChanged);
29 Q_PROPERTY(bool bmsFault READ bmsFault WRITE setBmsFault NOTIFY bmsFaultChanged);
30 Q_PROPERTY(bool mcFault READ mcFault WRITE setMcFault NOTIFY mcFaultChanged);
31 Q_PROPERTY(bool motorOn READ motorOn WRITE setMotorOn NOTIFY motorOnChanged);
32 Q_PROPERTY(int bikeStatus READ bikeStatus WRITE setBikeStatus NOTIFY bikeStatusChanged);
33 Q_PROPERTY(double packCurrent READ packCurrent WRITE setPackCurrent NOTIFY packCurrentChanged);
34 Q_PROPERTY(uint32_t bmsErrorCodes READ bmsErrorCodes WRITE setBmsErrorCodes NOTIFY bmsErrorCodesChanged);
35 Q_PROPERTY(bool bmsError READ bmsError WRITE setBmsError NOTIFY bmsErrorChanged);
36 Q_PROPERTY(bool bmsWarning READ bmsWarning WRITE setBmsWarning NOTIFY bmsWarningChanged);
37 Q_PROPERTY(std::vector<QString> bmsErrorCodesString READ bmsErrorCodesString NOTIFY bmsErrorCodesStringChanged);
38 Q_PROPERTY(double lat READ lat WRITE setLat NOTIFY latChanged);
39 Q_PROPERTY(double lon READ lon WRITE setLon NOTIFY lonChanged);
40
41public:
47 explicit Backend(QObject *parent = nullptr);
48
54 double motorTemp() const;
55
61 double auxVoltage() const;
62
68 double auxPercent() const;
69
75 double packSOC() const;
76
82 double packVoltage() const;
83
89 double highCellTemp() const;
90
96 double lowCellTemp() const;
97
103 double bmsTemp() const;
104
110 double motorSpeed() const;
111
117 double bikeSpeed() const;
118
124 double mcTemp() const;
125
132 bool bmsFault() const;
133
140 bool mcFault() const;
141
148 bool motorOn() const;
149
160 int bikeStatus() const;
161
167 double packCurrent() const;
168
175 bool bmsError() const;
176
183 bool bmsWarning() const;
184
190 uint32_t bmsErrorCodes() const;
191
197 std::vector<QString> bmsErrorCodesString() const;
198
204 double lat() const;
205
211 double lon() const;
212
218 void setMotorTemp(const double temp);
219
225 void setAuxVoltage(const double cap);
226
232 void setAuxPercent(const double cap);
233
239 void setPackSOC(const double soc);
240
246 void setPackVoltage(const double voltage);
247
253 void setHighCellTemp(const double temp);
254
260 void setLowCellTemp(const double temp);
261
267 void setBmsTemp(const double temp);
268
274 void setMotorSpeed(const double speed);
275
281 void setBikeSpeed(const double speed);
282
288 void setMcTemp(const double temp);
289
295 void setBmsFault(const bool fault);
296
302 void setMcFault(const bool fault);
303
309 void setMotorOn(const bool on);
310
316 void setBikeStatus(const int status);
317
323 void setPackCurrent(const double current);
324
330 void setBmsError(const bool error);
331
337 void setBmsWarning(const bool warning);
338
344 void setBmsErrorCodes(const uint32_t warnings);
345
351 void setBmsErrorCodesString(const std::vector<QString> warnings);
352
358 void setLat(const double lat);
359
365 void setLon(const double lon);
366
367signals:
368 void motorTempChanged();
369 void auxVoltageChanged();
370 void auxPercentChanged();
371 void packSOCChanged();
372 void packVoltageChanged();
373 void highCellTempChanged();
374 void lowCellTempChanged();
375 void bmsTempChanged();
376 void motorSpeedChanged();
377 void bikeSpeedChanged();
378 void mcTempChanged();
379 void bmsFaultChanged();
380 void mcFaultChanged();
381 void motorOnChanged();
382 void bikeStatusChanged();
383 void packCurrentChanged();
384 void bmsErrorChanged();
385 void bmsWarningChanged();
386 void bmsErrorCodesChanged();
387 void bmsErrorCodesStringChanged();
388 void latChanged();
389 void lonChanged();
390
391private:
392 void updateVars();
393 std::vector<QString> getErrorCodeStrings(uint32_t errorCodes);
394 double m_motorTemp;
395 double m_auxVoltage;
396 double m_auxPercent;
397 double m_packSOC;
398 double m_packVoltage;
399 double m_highCellTemp;
400 double m_lowCellTemp;
401 double m_bmsTemp;
402 double m_motorSpeed;
403 double m_bikeSpeed;
404 double m_mcTemp;
405 bool m_bmsFault;
406 bool m_mcFault;
407 bool m_motorOn;
408 int m_bikeStatus;
409 double m_packCurrent;
410 bool m_bmsError;
411 bool m_bmsWarning;
412 uint32_t m_bmsErrorCodes;
413 std::vector<QString> m_bmsErrorCodesString;
414 double m_lat;
415 double m_lon;
416};
417
418#endif // BACKEND_H
A class to represent the C++ backend of the dash which can be included in QML to give the frontend ac...
Definition backend.h:15
void setMcTemp(const double temp)
Set the MC Temp parameter, will get overwritten internally.
Definition backend.cpp:312
void setAuxPercent(const double cap)
Set the Aux Percent parameter, will get overwritten internally.
Definition backend.cpp:256
void setHighCellTemp(const double temp)
Set the High Cell Temp parameter, will get overwritten internally.
Definition backend.cpp:277
void setBmsWarning(const bool warning)
Set the BMS Warning parameter, will get overwritten internally.
Definition backend.cpp:361
void setLon(const double lon)
Set the Longitude parameter, will get overwritten internally.
Definition backend.cpp:389
void setMotorSpeed(const double speed)
Set the Motor Speed parameter, will get overwritten internally.
Definition backend.cpp:298
void setBikeSpeed(const double speed)
Set the Bike Speed parameter, will get overwritten internally.
Definition backend.cpp:305
void setBmsTemp(const double temp)
Set the BMS Temp parameter, will get overwritten internally.
Definition backend.cpp:291
Backend(QObject *parent=nullptr)
Create Backend class which can be included in QML.
Definition backend.cpp:16
void setPackCurrent(const double current)
Set the Pack Current parameter, will get overwritten internally.
Definition backend.cpp:347
void setBmsError(const bool error)
Set the BMS Error parameter, will get overwritten internally.
Definition backend.cpp:354
void setMotorTemp(const double temp)
Set the Motor Temperature parameter, will get overwritten internally.
Definition backend.cpp:242
void setBikeStatus(const int status)
Set the Bike Status parameter, will get overwritten internally.
Definition backend.cpp:340
void setBmsErrorCodes(const uint32_t warnings)
Set the BMS Error Codes parameter, will get overwritten internally.
Definition backend.cpp:368
void setMotorOn(const bool on)
Set the Motor On parameter, will get overwritten internally.
Definition backend.cpp:333
void setLowCellTemp(const double temp)
Set the Low Cell Temp parameter, will get overwritten internally.
Definition backend.cpp:284
void setMcFault(const bool fault)
Set the MC Fault parameter, will get overwritten internally.
Definition backend.cpp:326
void setBmsFault(const bool fault)
Set the BMS Fault parameter, will get overwritten internally.
Definition backend.cpp:319
void setLat(const double lat)
Set the Latitude parameter, will get overwritten internally.
Definition backend.cpp:382
void setPackVoltage(const double voltage)
Set the Pack Voltage parameter, will get overwritten internally.
Definition backend.cpp:270
void setAuxVoltage(const double cap)
Set the Aux Voltage parameter, will get overwritten internally.
Definition backend.cpp:249
void setPackSOC(const double soc)
Set the Pack SOC parameter, will get overwritten internally.
Definition backend.cpp:263
void setBmsErrorCodesString(const std::vector< QString > warnings)
Set the BMS Error Codes String parameter, will get overwritten internally.
Definition backend.cpp:375