aboutsummaryrefslogtreecommitdiffstats
path: root/src/Xpl2JcStatus.h
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-03-16 16:19:49 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-03-16 16:19:49 +0100
commitfa095de6cc8ec5a5b5c14091f2b3179ad7071876 (patch)
treeaa094011263a83a4c91eb8722c2095344656c838 /src/Xpl2JcStatus.h
parent7830f0ae98d742467b948ed93c85e122be38fb83 (diff)
downloadQtXpl2-fa095de6cc8ec5a5b5c14091f2b3179ad7071876.tar.gz
QtXpl2-fa095de6cc8ec5a5b5c14091f2b3179ad7071876.zip
EV_ events with Q_GADGET status types, mock periodic emission, tabbed demo UI
Diffstat (limited to 'src/Xpl2JcStatus.h')
-rw-r--r--src/Xpl2JcStatus.h73
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 &params);
+};