aboutsummaryrefslogtreecommitdiffstats
path: root/src/Xpl2JcStatus.h
blob: 00e2a64aa72b8b2e34ced8486f79bd72f672d491 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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);
};