Brian Silverman | da45b6c | 2014-12-28 11:36:50 -0800 | [diff] [blame] | 1 | #ifndef FRC971_WPILIB_JOYSTICK_SENDER_H_ |
| 2 | #define FRC971_WPILIB_JOYSTICK_SENDER_H_ |
| 3 | |
| 4 | #include <atomic> |
| 5 | |
Austin Schuh | df6cbb1 | 2019-02-02 13:46:52 -0800 | [diff] [blame] | 6 | #include "aos/events/event-loop.h" |
| 7 | #include "aos/robot_state/robot_state.q.h" |
| 8 | |
Brian Silverman | da45b6c | 2014-12-28 11:36:50 -0800 | [diff] [blame] | 9 | namespace frc971 { |
| 10 | namespace wpilib { |
| 11 | |
| 12 | class JoystickSender { |
| 13 | public: |
Austin Schuh | df6cbb1 | 2019-02-02 13:46:52 -0800 | [diff] [blame] | 14 | JoystickSender(::aos::EventLoop *event_loop) |
| 15 | : event_loop_(event_loop), |
| 16 | joystick_state_sender_(event_loop_->MakeSender<::aos::JoystickState>( |
| 17 | ".aos.joystick_state")) {} |
Brian Silverman | da45b6c | 2014-12-28 11:36:50 -0800 | [diff] [blame] | 18 | void operator()(); |
| 19 | |
| 20 | void Quit() { run_ = false; } |
| 21 | |
| 22 | private: |
Austin Schuh | df6cbb1 | 2019-02-02 13:46:52 -0800 | [diff] [blame] | 23 | ::aos::EventLoop *event_loop_; |
| 24 | ::aos::Sender<::aos::JoystickState> joystick_state_sender_; |
Brian Silverman | da45b6c | 2014-12-28 11:36:50 -0800 | [diff] [blame] | 25 | ::std::atomic<bool> run_{true}; |
| 26 | }; |
| 27 | |
| 28 | } // namespace wpilib |
| 29 | } // namespace frc971 |
| 30 | |
| 31 | #endif // FRC971_WPILIB_JOYSTICK_SENDER_H_ |