  #define MAX_IR_POWER 0.5f
  #define MIN_IR_POWER 0.0f
  #define CUTOFF_IL 400
  #define SATURATE_IL 1000
  #define NIBBLE_TO_HEX(n) ((n) < 10 ? (n) + '0' : ((n) - 10) + 'a')
  using namespace std::chrono_literals;
  
  std::atomic<bool> ignition(false);
  
  ExitHandler do_exit;
 
</s> remove     // Disable ir_pwr on front frame timeout
    uint64_t cur_t = nanos_since_boot();
    if (cur_t - last_front_frame_t > 1e9) {
 </s> add     // Disable IR on input timeout
    if (nanos_since_boot() - last_driver_camera_t > 1e9) { </s> remove     //Dont send if older than 1 second
 </s> add     // Don't send if older than 1 second </s> remove   // can = 8006
 </s> add  </s> remove   // run at 100hz
 </s> add   // run at 100Hz
  #define MAX_IR_POWER 0.5f
  #define MIN_IR_POWER 0.0f
  #define CUTOFF_IL 400
  #define SATURATE_IL 1000

  using namespace std::chrono_literals;
  
  std::atomic<bool> ignition(false);
  
  ExitHandler do_exit;
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