diff options
Diffstat (limited to 'src/Xpl2JcStatus.h')
| -rw-r--r-- | src/Xpl2JcStatus.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/Xpl2JcStatus.h b/src/Xpl2JcStatus.h new file mode 100644 index 0000000..00e2a64 --- /dev/null +++ b/src/Xpl2JcStatus.h @@ -0,0 +1,73 @@ +/** + * @file Xpl2JcStatus.h + * @brief Structured JC status message (EV_STATUS_MSG_JC, Appendix A). + */ +#pragma once + +#include <QObject> +#include <QString> + +class Xpl2JcStatus +{ + Q_GADGET + + Q_PROPERTY (int controllerId MEMBER controllerId) + Q_PROPERTY (int statusLevel MEMBER statusLevel) + + /* Level 1 fields (3-9) */ + Q_PROPERTY (float cpuPercentageBusy MEMBER cpuPercentageBusy) + Q_PROPERTY (float rail5V MEMBER rail5V) + Q_PROPERTY (float railCanBus8V MEMBER railCanBus8V) + Q_PROPERTY (float temperature MEMBER temperature) + Q_PROPERTY (float humidity MEMBER humidity) + Q_PROPERTY (float busCurrent MEMBER busCurrent) + Q_PROPERTY (int onTimeSeconds MEMBER onTimeSeconds) + + /* Level 2 fields (10-23) */ + Q_PROPERTY (QString ipAddress MEMBER ipAddress) + Q_PROPERTY (float eFuseVoltage MEMBER eFuseVoltage) + Q_PROPERTY (bool eFuseBusEnabled MEMBER eFuseBusEnabled) + Q_PROPERTY (bool busPowerEnabled MEMBER busPowerEnabled) + Q_PROPERTY (bool busPowerOk MEMBER busPowerOk) + Q_PROPERTY (int switchValue MEMBER switchValue) + Q_PROPERTY (QString firmwareVersion MEMBER firmwareVersion) + Q_PROPERTY (QString hardwareVersion MEMBER hardwareVersion) + Q_PROPERTY (bool indicator0 MEMBER indicator0) + Q_PROPERTY (bool indicator1 MEMBER indicator1) + Q_PROPERTY (bool indicator2 MEMBER indicator2) + Q_PROPERTY (bool indicator3 MEMBER indicator3) + Q_PROPERTY (bool indicator4 MEMBER indicator4) + Q_PROPERTY (bool indicator5 MEMBER indicator5) + +public: + int controllerId = 0; + int statusLevel = 0; + + /* Level 1 */ + float cpuPercentageBusy = 0; + float rail5V = 0; + float railCanBus8V = 0; + float temperature = 0; + float humidity = 0; + float busCurrent = 0; + int onTimeSeconds = 0; + + /* Level 2 */ + QString ipAddress; + float eFuseVoltage = 0; + bool eFuseBusEnabled = false; + bool busPowerEnabled = false; + bool busPowerOk = false; + int switchValue = 0; + QString firmwareVersion; + QString hardwareVersion; + bool indicator0 = false; + bool indicator1 = false; + bool indicator2 = false; + bool indicator3 = false; + bool indicator4 = false; + bool indicator5 = false; + + /** Parse from EV_STATUS_MSG_JC params (after command token). */ + static Xpl2JcStatus fromParams (const QVariantList ¶ms); +}; |
