Austin Schuh | 6b9c415 | 2019-11-29 12:45:24 -0800 | [diff] [blame] | 1 | #include "aos/events/pong_lib.h" |
| 2 | |
Philipp Schrader | 790cb54 | 2023-07-05 21:06:52 -0700 | [diff] [blame^] | 3 | #include "glog/logging.h" |
| 4 | |
Austin Schuh | 6b9c415 | 2019-11-29 12:45:24 -0800 | [diff] [blame] | 5 | #include "aos/events/event_loop.h" |
Austin Schuh | 6b9c415 | 2019-11-29 12:45:24 -0800 | [diff] [blame] | 6 | #include "aos/events/ping_generated.h" |
Austin Schuh | 5d89cf5 | 2019-12-28 16:27:42 -0800 | [diff] [blame] | 7 | #include "aos/events/pong_generated.h" |
Austin Schuh | 6b9c415 | 2019-11-29 12:45:24 -0800 | [diff] [blame] | 8 | |
| 9 | namespace aos { |
| 10 | |
| 11 | Pong::Pong(EventLoop *event_loop) |
| 12 | : event_loop_(event_loop), |
| 13 | sender_(event_loop_->MakeSender<examples::Pong>("/test")) { |
| 14 | event_loop_->MakeWatcher("/test", [this](const examples::Ping &ping) { |
Austin Schuh | 9b1d628 | 2022-06-10 17:03:21 -0700 | [diff] [blame] | 15 | if (last_value_ == ping.value() && (!quiet_ || VLOG_IS_ON(1))) { |
Sarah Newman | 2f98cf0 | 2022-04-01 16:42:00 -0700 | [diff] [blame] | 16 | LOG(WARNING) << "Duplicate ping value at " << last_value_ |
| 17 | << " time difference " << ping.send_time() - last_send_time_; |
| 18 | } |
| 19 | last_value_ = ping.value(); |
| 20 | last_send_time_ = ping.send_time(); |
Austin Schuh | 5d89cf5 | 2019-12-28 16:27:42 -0800 | [diff] [blame] | 21 | aos::Sender<examples::Pong>::Builder builder = sender_.MakeBuilder(); |
| 22 | examples::Pong::Builder pong_builder = |
| 23 | builder.MakeBuilder<examples::Pong>(); |
| 24 | pong_builder.add_value(ping.value()); |
| 25 | pong_builder.add_initial_send_time(ping.send_time()); |
milind | 1f1dca3 | 2021-07-03 13:50:07 -0700 | [diff] [blame] | 26 | builder.CheckOk(builder.Send(pong_builder.Finish())); |
Austin Schuh | 6b9c415 | 2019-11-29 12:45:24 -0800 | [diff] [blame] | 27 | }); |
| 28 | |
| 29 | event_loop_->SetRuntimeRealtimePriority(5); |
| 30 | } |
| 31 | |
| 32 | } // namespace aos |