blob: 17fdbbea4eb0167e261a56d1f8ed2bc3c97ca5ad [file] [log] [blame]
Brian Silverman14fd0fb2014-01-14 21:42:01 -08001#ifndef AOS_LINUX_CODE_INPUT_JOYSTICKS_INPUT_H_
2#define AOS_LINUX_CODE_INPUT_JOYSTICKS_INPUT_H_
Brian Silvermanba3de7e2013-05-08 16:18:15 -07003
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
Brian Silverman14fd0fb2014-01-14 21:42:01 -080026#endif // AOS_LINUX_CODE_INPUT_JOYSTICKS_INPUT_H_