LibMultiSense
LibMultiSense Documentation
StatusResponseMessage.hh
Go to the documentation of this file.
1 
40 #ifndef LibMultiSense_StatusResponseMessage
41 #define LibMultiSense_StatusResponseMessage
42 
43 #include "utility/Portability.hh"
44 
45 namespace crl {
46 namespace multisense {
47 namespace details {
48 namespace wire {
49 
51 public:
54  static float INVALID_TEMPERATURE() { return -99999.0f; };
55 
56  //
57  // Subsytem status
58 
59  static CRL_CONSTEXPR uint32_t STATUS_GENERAL_OK = (1<<0);
60  static CRL_CONSTEXPR uint32_t STATUS_LASER_OK = (1<<1);
61  static CRL_CONSTEXPR uint32_t STATUS_LASER_MOTOR_OK = (1<<2);
62  static CRL_CONSTEXPR uint32_t STATUS_CAMERAS_OK = (1<<3);
63  static CRL_CONSTEXPR uint32_t STATUS_IMU_OK = (1<<4);
64  static CRL_CONSTEXPR uint32_t STATUS_EXTERNAL_LED_OK = (1<<5);
65  static CRL_CONSTEXPR uint32_t STATUS_PIPELINE_OK = (1<<6);
66 
67  //
68  // The reported uptime for the system
69  //
70 
72  uint32_t status;
73  float temperature0; // celsius
74  float temperature1;
75 
76  //
77  // Version 2 additions
78 
79  float temperature2; // celsius
80  float temperature3;
81 
82  float inputVolts; // volts
83  float inputCurrent; // amps
84  float fpgaPower; // watts
85  float logicPower;
86  float imagerPower;
87 
88  //
89  // Constructors
90 
93  status(0),
98  inputVolts(-1.0),
99  inputCurrent(-1.0),
100  fpgaPower(-1.0),
101  logicPower(-1.0),
102  imagerPower(-1.0) {};
103 
104  //
105  // Serialization routine
106 
107  template<class Archive>
108  void serialize(Archive& message,
109  const VersionType version)
110  {
111  message & uptime;
112  message & status;
113  message & temperature0;
114  message & temperature1;
115 
116  if (version >= 2) {
117  message & temperature2;
118  message & temperature3;
119  message & inputVolts;
120  message & inputCurrent;
121  message & fpgaPower;
122  message & logicPower;
123  message & imagerPower;
124  }
125 
126  //
127  // Enable the LED OK and pipeline OK status for older messages
128  if (version < 3) {
131  }
132  }
133 };
134 
135 }}}} // namespaces
136 
137 #endif
crl::multisense::details::wire::StatusResponse::status
uint32_t status
Definition: StatusResponseMessage.hh:72
crl::multisense::details::wire::StatusResponse::STATUS_IMU_OK
static CRL_CONSTEXPR uint32_t STATUS_IMU_OK
Definition: StatusResponseMessage.hh:63
crl::multisense::details::wire::StatusResponse::VERSION
static CRL_CONSTEXPR VersionType VERSION
Definition: StatusResponseMessage.hh:53
crl::multisense::details::wire::StatusResponse::temperature1
float temperature1
Definition: StatusResponseMessage.hh:74
crl::multisense::details::wire::StatusResponse::STATUS_EXTERNAL_LED_OK
static CRL_CONSTEXPR uint32_t STATUS_EXTERNAL_LED_OK
Definition: StatusResponseMessage.hh:64
crl::multisense::details::wire::StatusResponse::uptime
utility::TimeStamp uptime
Definition: StatusResponseMessage.hh:71
crl::multisense::details::wire::StatusResponse::fpgaPower
float fpgaPower
Definition: StatusResponseMessage.hh:84
crl::multisense::details::wire::StatusResponse::ID
static CRL_CONSTEXPR IdType ID
Definition: StatusResponseMessage.hh:52
Portability.hh
crl::multisense::details::wire::StatusResponse
Definition: StatusResponseMessage.hh:50
CRL_CONSTEXPR
#define CRL_CONSTEXPR
Definition: Portability.hh:49
crl::multisense::details::wire::StatusResponse::INVALID_TEMPERATURE
static float INVALID_TEMPERATURE()
Definition: StatusResponseMessage.hh:54
crl
Definition: BufferStream.hh:51
crl::multisense::details::wire::StatusResponse::StatusResponse
StatusResponse()
Definition: StatusResponseMessage.hh:92
crl::multisense::details::wire::StatusResponse::STATUS_PIPELINE_OK
static CRL_CONSTEXPR uint32_t STATUS_PIPELINE_OK
Definition: StatusResponseMessage.hh:65
crl::multisense::details::wire::StatusResponse::temperature2
float temperature2
Definition: StatusResponseMessage.hh:79
crl::multisense::details::wire::StatusResponse::STATUS_GENERAL_OK
static CRL_CONSTEXPR uint32_t STATUS_GENERAL_OK
Definition: StatusResponseMessage.hh:59
crl::multisense::details::utility::TimeStamp
Definition: TimeStamp.hh:69
crl::multisense::details::wire::StatusResponse::STATUS_CAMERAS_OK
static CRL_CONSTEXPR uint32_t STATUS_CAMERAS_OK
Definition: StatusResponseMessage.hh:62
crl::multisense::details::wire::StatusResponse::STATUS_LASER_OK
static CRL_CONSTEXPR uint32_t STATUS_LASER_OK
Definition: StatusResponseMessage.hh:60
crl::multisense::details::wire::VersionType
uint16_t VersionType
Definition: Protocol.hh:137
crl::multisense::details::wire::StatusResponse::temperature0
float temperature0
Definition: StatusResponseMessage.hh:73
crl::multisense::details::wire::ID_DATA_STATUS
static CRL_CONSTEXPR IdType ID_DATA_STATUS
Definition: Protocol.hh:206
crl::multisense::details::wire::StatusResponse::logicPower
float logicPower
Definition: StatusResponseMessage.hh:85
crl::multisense::details::wire::StatusResponse::STATUS_LASER_MOTOR_OK
static CRL_CONSTEXPR uint32_t STATUS_LASER_MOTOR_OK
Definition: StatusResponseMessage.hh:61
crl::multisense::details::utility::BufferStreamReader
Definition: BufferStream.hh:192
multisense
Definition: MultiSenseChannel.hh:44
crl::multisense::details::wire::StatusResponse::temperature3
float temperature3
Definition: StatusResponseMessage.hh:80
crl::multisense::details::wire::StatusResponse::inputVolts
float inputVolts
Definition: StatusResponseMessage.hh:82
crl::multisense::details::wire::StatusResponse::serialize
void serialize(Archive &message, const VersionType version)
Definition: StatusResponseMessage.hh:108
crl::multisense::details::wire::IdType
uint16_t IdType
Definition: Protocol.hh:136
crl::multisense::details::wire::StatusResponse::imagerPower
float imagerPower
Definition: StatusResponseMessage.hh:86
crl::multisense::details::wire::StatusResponse::inputCurrent
float inputCurrent
Definition: StatusResponseMessage.hh:83
crl::multisense::details::wire::StatusResponse::StatusResponse
StatusResponse(utility::BufferStreamReader &r, VersionType v)
Definition: StatusResponseMessage.hh:91