blob: de0ed9e479aef11eed770c0274cd405ce52825fc [file] [log] [blame]
Brian Silvermanba3de7e2013-05-08 16:18:15 -07001#ifndef AOS_ATOM_CODE_INPUT_JOYSTICKS_INPUT_H_
2#define AOS_ATOM_CODE_INPUT_JOYSTICKS_INPUT_H_
3
4#include "aos/common/input/driver_station_data.h"
5
6namespace aos {
7namespace input {
8
Brian Silvermanc25bc892013-05-09 19:09:34 -07009// A class for handling joystick packet values.
10// It will call RunIteration each time a new packet is received.
11//
12// This class automatically handles updating ::aos::robot_state and logging (at
13// INFO) button edges.
Brian Silvermanba3de7e2013-05-08 16:18:15 -070014class JoystickInput {
15 public:
16 void Run();
17
18 private:
Brian Silvermanc25bc892013-05-09 19:09:34 -070019 // Subclasses should do whatever they want with data here.
Brian Silvermanba3de7e2013-05-08 16:18:15 -070020 virtual void RunIteration(const driver_station::Data &data) = 0;
21};
22
23} // namespace input
24} // namespace aos
25
26#endif // AOS_ATOM_CODE_INPUT_JOYSTICKS_INPUT_H_