LibMultiSense
LibMultiSense Documentation
status_test.cc
Go to the documentation of this file.
1 
37 #include <gtest/gtest.h>
38 
39 #include <details/legacy/status.hh>
40 
41 using namespace multisense::legacy;
42 
44 {
45  using namespace crl::multisense::details;
46 
47  wire::StatusResponse status;
48 
49  status.temperature0 = 1.0f;
50  status.temperature1 = 2.0f;
51  status.temperature2 = 3.0f;
52  status.temperature3 = 4.0f;
53 
54  status.inputVolts = 24.0f;
55  status.inputCurrent = 1.0f;
56  status.fpgaPower = 2.0f;
57 
58  status.status |= (wire::StatusResponse::STATUS_GENERAL_OK |
59  wire::StatusResponse::STATUS_CAMERAS_OK |
60  wire::StatusResponse::STATUS_PIPELINE_OK);
61 
62  return status;
63 }
64 
66 {
67  using namespace crl::multisense::details;
68 
70  for (uint8_t i = 0 ; i < 8 ; ++i)
71  {
72  status.gm_id[i] = i;
73  }
74 
75  status.gm_present = 1;
76  status.gm_offset = 10;
77  status.path_delay = 22;
78  status.steps_removed = 2;
79 
80  return status;
81 }
82 
83 TEST(system_ok, not_ok)
84 {
85  using namespace crl::multisense::details;
86 
87  wire::StatusResponse status;
88 
89  ASSERT_FALSE(system_ok(status));
90 }
91 
92 
93 TEST(system_ok, ok)
94 {
95  using namespace crl::multisense::details;
96 
97  ASSERT_TRUE(system_ok(create_valid_status()));
98 }
99 
100 TEST(convert, temperature)
101 {
102  using namespace crl::multisense::details;
103  using namespace multisense;
104 
105  const auto status = create_valid_status();
106 
107  const auto temp = convert<MultiSenseStatus::TemperatureStatus>(status);
108 
109  ASSERT_FLOAT_EQ(temp.fpga_temperature, status.temperature1);
110  ASSERT_FLOAT_EQ(temp.left_imager_temperature, status.temperature2);
111  ASSERT_FLOAT_EQ(temp.right_imager_temperature, status.temperature3);
112  ASSERT_FLOAT_EQ(temp.power_supply_temperature, status.temperature0);
113 }
114 
115 TEST(convert, power)
116 {
117  using namespace crl::multisense::details;
118  using namespace multisense;
119 
120  const auto status = create_valid_status();
121 
122  const auto power = convert<MultiSenseStatus::PowerStatus>(status);
123 
124  ASSERT_FLOAT_EQ(power.input_voltage, status.inputVolts);
125  ASSERT_FLOAT_EQ(power.input_current, status.inputCurrent);
126  ASSERT_FLOAT_EQ(power.fpga_power, status.fpgaPower);
127 }
128 
129 TEST(convert, camera_status)
130 {
131  using namespace crl::multisense::details;
132  using namespace multisense;
133 
134  const auto status = create_valid_status();
135 
136  const auto camera = convert<MultiSenseStatus::CameraStatus>(status);
137 
138  ASSERT_TRUE(camera.cameras_ok);
139  ASSERT_TRUE(camera.processing_pipeline_ok);
140 }
141 
142 TEST(convert, ptp)
143 {
144  using namespace crl::multisense::details;
145  using namespace multisense;
146 
147  const auto status = create_valid_ptp_status();
148 
149  const auto ptp = convert(status);
150 
151  ASSERT_EQ(ptp.grandmaster_present, status.gm_present == 1);
152 
153  for (uint8_t i = 0 ; i < ptp.grandmaster_id.size() ; ++i)
154  {
155  ASSERT_EQ(status.gm_id[i], ptp.grandmaster_id[i]);
156  }
157 
158  ASSERT_EQ(ptp.grandmaster_offset.count(), status.gm_offset);
159  ASSERT_EQ(ptp.path_delay.count(), status.path_delay);
160  ASSERT_EQ(ptp.steps_from_local_to_grandmaster, status.steps_removed);
161 }
crl::multisense::details::wire::StatusResponse::status
uint32_t status
Definition: StatusResponseMessage.hh:72
crl::multisense::details::wire::PtpStatusResponse::path_delay
int64_t path_delay
Definition: PtpStatusResponseMessage.hh:65
crl::multisense::details::wire::PtpStatusResponse::gm_id
uint8_t gm_id[8]
Definition: PtpStatusResponseMessage.hh:75
crl::multisense::details
Definition: BufferStream.hh:53
crl::multisense::details::wire::StatusResponse::temperature1
float temperature1
Definition: StatusResponseMessage.hh:74
crl::multisense::details::wire::PtpStatusResponse::gm_present
uint8_t gm_present
Definition: PtpStatusResponseMessage.hh:59
crl::multisense::details::wire::StatusResponse::fpgaPower
float fpgaPower
Definition: StatusResponseMessage.hh:84
crl::multisense::details::wire::StatusResponse
Definition: StatusResponseMessage.hh:50
create_valid_ptp_status
crl::multisense::details::wire::PtpStatusResponse create_valid_ptp_status()
Definition: status_test.cc:65
crl::multisense::details::wire::PtpStatusResponse
Definition: PtpStatusResponseMessage.hh:51
crl::multisense::details::wire::StatusResponse::temperature2
float temperature2
Definition: StatusResponseMessage.hh:79
crl::multisense::details::wire::StatusResponse::temperature0
float temperature0
Definition: StatusResponseMessage.hh:73
create_valid_status
crl::multisense::details::wire::StatusResponse create_valid_status()
Definition: status_test.cc:43
TEST
TEST(system_ok, not_ok)
Definition: status_test.cc:83
multisense
Definition: MultiSenseChannel.hh:44
crl::multisense::details::wire::PtpStatusResponse::steps_removed
uint16_t steps_removed
Definition: PtpStatusResponseMessage.hh:70
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::PtpStatusResponse::gm_offset
int64_t gm_offset
Definition: PtpStatusResponseMessage.hh:60
crl::multisense::details::wire::StatusResponse::inputCurrent
float inputCurrent
Definition: StatusResponseMessage.hh:83