      uint16_t fan_speed_rpm = panda->get_fan_speed();
  
      // build msg
      MessageBuilder msg;
      auto ps = msg.initEvent().initPandaState();
      ps.setUptime(pandaState.uptime);
  
      if (Hardware::TICI()) {
        double read_time = millis_since_boot();
        ps.setVoltage(std::stoi(util::read_file("/sys/class/hwmon/hwmon1/in1_input")));
 
</s> remove   auto canData = msg.initEvent().initCan(num_msg);
 </s> add   auto evt = msg.initEvent();
  evt.setValid(comms_healthy);
    auto evt = msg.initEvent();
    evt.setValid(panda->comms_healthy);

    auto ps = evt.initPandaState();
      uint16_t fan_speed_rpm = panda->get_fan_speed();
  
      // build msg
      MessageBuilder msg;
    auto evt = msg.initEvent();
    evt.setValid(panda->comms_healthy);

    auto ps = evt.initPandaState();
      ps.setUptime(pandaState.uptime);
  
      if (Hardware::TICI()) {
        double read_time = millis_since_boot();
        ps.setVoltage(std::stoi(util::read_file("/sys/class/hwmon/hwmon1/in1_input")));
keep keep keep keep replace keep keep keep keep keep
 boardd: set can and pandaState valid flags (#20899)

* boardd: set can and pandaState valid flags

* add event

* bump cereal

* consistency 
selfdrive/boardd/boardd.cc