43 const uint8_t *data, int32_t length) {
44 if (message_id == 0x301) {
45 sensor_data_.set_ranges(0, data[1]);
46 sensor_data_.set_ranges(1, data[2]);
47 sensor_data_.set_ranges(2, data[3]);
48 sensor_data_.set_ranges(3, data[4]);
49 }
else if (message_id == 0x302) {
50 sensor_data_.set_ranges(4, data[1]);
51 sensor_data_.set_ranges(5, data[2]);
52 sensor_data_.set_ranges(6, data[3]);
53 sensor_data_.set_ranges(7, data[4]);
54 }
else if (message_id == 0x303) {
55 sensor_data_.set_ranges(8, data[1]);
56 sensor_data_.set_ranges(9, data[2]);
57 }
else if (message_id == 0x304) {
58 sensor_data_.set_ranges(10, data[1]);
59 sensor_data_.set_ranges(11, data[2]);
60 common::util::FillHeader(
"ultrasonic_radar", &sensor_data_);
61 ultrasonic_radar_writer_->Write(sensor_data_);
64 received_ids_.insert(message_id);
66 const auto it = check_ids_.find(message_id);
67 if (it != check_ids_.end()) {
69 it->second.real_period = time - it->second.last_time;
71 const double period_multiplier = 1.5;
72 if (it->second.real_period >
73 (
static_cast<double>(it->second.period) * period_multiplier)) {
74 it->second.error_count += 1;
76 it->second.error_count = 0;
78 it->second.last_time = time;