LibMultiSense
LibMultiSense Documentation
Loading...
Searching...
No Matches
status_test.cc
Go to the documentation of this file.
1
37#include <gtest/gtest.h>
38
39#include <details/legacy/status.hh>
40
41using namespace multisense::legacy;
42
44{
45 using namespace crl::multisense::details;
46
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
83TEST(system_ok, not_ok)
84{
85 using namespace crl::multisense::details;
86
88
89 ASSERT_FALSE(system_ok(status));
90}
91
92
93TEST(system_ok, ok)
94{
95 using namespace crl::multisense::details;
96
97 ASSERT_TRUE(system_ok(create_valid_status()));
98}
99
100TEST(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.cpu_temperature, status.temperature0);
110 ASSERT_FLOAT_EQ(temp.fpga_temperature, status.temperature1);
111 ASSERT_FLOAT_EQ(temp.left_imager_temperature, status.temperature2);
112 ASSERT_FLOAT_EQ(temp.right_imager_temperature, status.temperature3);
113}
114
115TEST(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
129TEST(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
142TEST(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 create_valid_status()
crl::multisense::details::wire::PtpStatusResponse create_valid_ptp_status()
TEST(system_ok, not_ok)