/** * @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); };