40 const std::array<float, 4>
color_grey {0.5, 0.5, 0.5, 1.0};
41 const std::array<float, 4>
color_green {0.18, 0.79, 0.21, 1.0};
43 const std::array<float, 4>
color_red {0.8, 0.2, 0.2, 1.0};
56 time_t ts =
static_cast<time_t
>(unixSecond);
59 timeinfo = gmtime(&ts);
64 timeinfo->tm_hour = 0;
65 timeinfo->tm_mday = 1;
68 return timegm(timeinfo);
89 float probability = 0;
91 switch (encoded_probability)
154 std::array<float, 4> color;
158 case MovementPhaseState::UNAVAILABLE:
162 case MovementPhaseState::DARK:
165 case MovementPhaseState::STOP_THEN_PROCEED:
168 case MovementPhaseState::STOP_AND_REMAIN:
171 case MovementPhaseState::PRE_MOVEMENT:
174 case MovementPhaseState::PERMISSIVE_MOVEMENT_ALLOWED:
177 case MovementPhaseState::PROTECTED_MOVEMENT_ALLOWED:
180 case MovementPhaseState::PERMISSIVE_CLEARANCE:
183 case MovementPhaseState::PROTECTED_CLEARANCE:
186 case MovementPhaseState::CAUTION_CONFLICTING_TRAFFIC:
209 }
else if (time == 36000) {
212 }
else if (time >= 35991 && time <= 35999) {
232 float abs_time_hour = ((int)(seconds)) % 3600 + (
float)nanosec * 1e-9;
233 float rel_time_until_change = (float)time * 0.1
f - abs_time_hour;
235 return rel_time_until_change;
250 std::string text_content;
254 text_content =
"undefined";
257 text_content =
">36000s";
260 text_content =
"leap second";
266 std::stringstream ss;
267 ss << std::fixed << std::setprecision(1) << rel_time_until_change <<
"s";
268 text_content = ss.str();