  
    pm->send("peripheralState", msg);
  }
  
  void panda_state_thread(PubMaster *pm, std::vector<Panda *> pandas, bool spoofing_started) {
    util::set_thread_name("boardd_panda_state");
  
    Params params;
    SubMaster sm({"controlsState"});
  
 
</s> remove void send_empty_peripheral_state(PubMaster *pm) {
  MessageBuilder msg;
  auto peripheralState  = msg.initEvent().initPeripheralState();
  peripheralState.setPandaType(cereal::PandaState::PandaType::UNKNOWN);
  pm->send("peripheralState", msg);
}

void send_empty_panda_state(PubMaster *pm) {
  MessageBuilder msg;
  auto pandaStates = msg.initEvent().initPandaStates(1);
  pandaStates[0].setPandaType(cereal::PandaState::PandaType::UNKNOWN);
  pm->send("pandaStates", msg);
}

 </s> add  </s> remove       // send empty pandaState & peripheralState and try again
      send_empty_panda_state(&pm);
      send_empty_peripheral_state(&pm);
      util::sleep_for(500);
 </s> add       util::sleep_for(100); </s> remove   // can = 8006
 </s> add  </s> remove   #ifndef __x86_64__
 </s> add 
void panda_state_thread(std::vector<Panda *> pandas, bool spoofing_started) {
  
    pm->send("peripheralState", msg);
  }
  
void panda_state_thread(std::vector<Panda *> pandas, bool spoofing_started) {
    util::set_thread_name("boardd_panda_state");
  
    Params params;
    SubMaster sm({"controlsState"});
  
keep keep keep keep replace keep keep keep keep keep
 boardd: misc cleanup (#28969)

* boardd cleanup

* no more front frame

* faster connect loop

* fix that on mac 
selfdrive/boardd/boardd.cc