diff --git a/common/util.h b/common/util.h index 81db49509a..991701c273 100644 --- a/common/util.h +++ b/common/util.h @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -129,6 +130,7 @@ private: power_failure = (sig == SIGPWR); #endif signal = sig; + std::cout << "!!!!!!!!!!! Caught signal " << sig << " !!!!!!!!!!!" << std::flush; do_exit = true; } inline static std::atomic do_exit = false; diff --git a/selfdrive/pandad/pandad.cc b/selfdrive/pandad/pandad.cc index 97fab9e17d..1d585ed555 100644 --- a/selfdrive/pandad/pandad.cc +++ b/selfdrive/pandad/pandad.cc @@ -99,17 +99,18 @@ void can_send_thread(std::vector pandas, bool fake_send) { capnp::FlatArrayMessageReader cmsg(aligned_buf.align(msg.get())); cereal::Event::Reader event = cmsg.getRoot(); + (void)event; // Don't send if older than 1 second - if ((nanos_since_boot() - event.getLogMonoTime() < 1e9) && !fake_send) { - for (const auto& panda : pandas) { - LOGT("sending sendcan to panda: %s", (panda->hw_serial()).c_str()); - panda->can_send(event.getSendcan()); - LOGT("sendcan sent to panda: %s", (panda->hw_serial()).c_str()); - } - } else { - LOGE("sendcan too old to send: %" PRIu64 ", %" PRIu64, nanos_since_boot(), event.getLogMonoTime()); - } +// if ((nanos_since_boot() - event.getLogMonoTime() < 1e9) && !fake_send) { +// for (const auto& panda : pandas) { +//// LOGT("sending sendcan to panda: %s", (panda->hw_serial()).c_str()); +//// panda->can_send(event.getSendcan()); +//// LOGT("sendcan sent to panda: %s", (panda->hw_serial()).c_str()); +// } +// } else { +// LOGE("sendcan too old to send: %" PRIu64 ", %" PRIu64, nanos_since_boot(), event.getLogMonoTime()); +// } } } @@ -426,6 +427,12 @@ void pandad_run(std::vector &pandas) { // Start the CAN send thread std::thread send_thread(can_send_thread, pandas, fake_send); + while (!do_exit) { + util::sleep_for(100); + } + send_thread.join(); + exit(0); + RateKeeper rk("pandad", 100); SubMaster sm({"selfdriveState"}); PubMaster pm({"can", "pandaStates", "peripheralState"}); @@ -475,10 +482,10 @@ void pandad_main_thread(std::vector serials) { if (serials.size() == 0) { serials = Panda::list(); - if (serials.size() == 0) { - LOGW("no pandas found, exiting"); - return; - } +// if (serials.size() == 0) { +// LOGW("no pandas found, exiting"); +// return; +// } } std::string serials_str;