From fa095de6cc8ec5a5b5c14091f2b3179ad7071876 Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Mon, 16 Mar 2026 16:19:49 +0100 Subject: EV_ events with Q_GADGET status types, mock periodic emission, tabbed demo UI --- src/Xpl2JcStatus.h | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/Xpl2JcStatus.h (limited to 'src/Xpl2JcStatus.h') 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 +#include + +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); +}; -- cgit v1.2.3