Populate health.faults from panda health packet

old-commit-hash: f718ceafd5
commatwo_master
Willem Melching 5 years ago
parent a0ffa0761c
commit bbdce92c16
  1. 2
      cereal
  2. 13
      selfdrive/boardd/boardd.cc

@ -1 +1 @@
Subproject commit 975a633b863ae35263b2171bbcb2c5074a8f28ca Subproject commit c8e5db830d30e5ea0d0abef0479d9c48cfd24504

@ -29,6 +29,7 @@
#include "messaging.hpp" #include "messaging.hpp"
#include <algorithm> #include <algorithm>
#include <bitset>
// double the FIFO size // double the FIFO size
#define RECV_SIZE (0x1000) #define RECV_SIZE (0x1000)
@ -514,6 +515,18 @@ void can_health(PubSocket *publisher) {
healthData.setFaultStatus(cereal::HealthData::FaultStatus(health.fault_status)); healthData.setFaultStatus(cereal::HealthData::FaultStatus(health.fault_status));
healthData.setPowerSaveEnabled((bool)(health.power_save_enabled)); healthData.setPowerSaveEnabled((bool)(health.power_save_enabled));
// Convert faults bitset to capnp list
std::bitset<32> fault_bits(health.faults);
auto faults = healthData.initFaults(fault_bits.count());
size_t i = 0;
for (size_t f = size_t(cereal::HealthData::FaultType::RELAY_MALFUNCTION);
f <= size_t(cereal::HealthData::FaultType::REGISTER_DIVERGENT); f++){
if (fault_bits.test(f)) {
faults.set(i, cereal::HealthData::FaultType(f));
i++;
}
}
// send to health // send to health
auto words = capnp::messageToFlatArray(msg); auto words = capnp::messageToFlatArray(msg);
auto bytes = words.asBytes(); auto bytes = words.asBytes();

Loading…
Cancel
Save