arduino stuffs
Diffstat (limited to 'steer/buttons.cpp')
| -rw-r--r-- | steer/buttons.cpp | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/steer/buttons.cpp b/steer/buttons.cpp deleted file mode 100644 index 17c9651..0000000 --- a/steer/buttons.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include "buttons.h" -#include "Joystick.h" -#include "Streaming.h" - -#define INVERT == HIGH ? LOW : HIGH -#define TEXT == HIGH ? "high" : "low" - -namespace Controller { -/// pins -#define STEER_X A0 -#define ACCEL 10 -#define ANY 7 // used for A in gamepad mode, and x in button mode (a accel)```` -#define BRAKE 8 - -#ifdef GAMEPAD_USE_BUTTONS -#define PAD_B 1 -#define PAD_X 2 -#endif - -#ifdef MODE_STEERING_WHEEL -Joystick_ Gamepad(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 16, 1, false, false, true, false, false, - true, false, false, true, true, true); -#elif defined(MODE_GAMEPAD) -#define PAD_A 0 -Joystick_ Gamepad(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_GAMEPAD, 10, 0, true, true, true, true, true, true, - false, false, false, false, false); -#endif - -void begin() { - pinMode(STEER_X, INPUT); - pinMode(ACCEL, INPUT_PULLUP); - pinMode(BRAKE, INPUT_PULLUP); - pinMode(ANY, INPUT_PULLUP); - Gamepad.begin(); -#ifdef MODE_STEERING_WHEEL - Gamepad.setBrakeRange(0, 1); - Gamepad.setSteering(1023 / 2); - Gamepad.setSteeringRange(0, 1); -#elif defined(MODE_GAMEPAD) - Gamepad.setRzAxisRange(0, 1); - Gamepad.setXAxis(1023 / 2); - Gamepad.setYAxis(1023 / 2); -#ifdef GAMEPAD_USE_TRIGGERS - Gamepad.setZAxisRange(0, 1); -#endif -#endif -} - -void any() { - static uint8_t last_any = LOW; - uint8_t new_any = digitalRead(ANY) INVERT; - if (new_any != last_any) { - Serial << "ANY set to " << (new_any TEXT) << endl; - last_any = new_any; -#ifdef GAMEPAD_USE_BUTTONS - Gamepad.setButton(PAD_X, new_any); -#else - Gamepad.setButton(PAD_A, new_any); -#endif - } -} - -void accel() { - static uint8_t last_accel_value = LOW; // my pot broke so were back to digital - uint8_t new_accel = digitalRead(ACCEL) INVERT; - if (new_accel != last_accel_value) { - Serial << "ACCEL set to " << (new_accel TEXT) << endl; - last_accel_value = new_accel; -#ifdef MODE_GAMEPAD -#ifdef GAMEPAD_USE_BUTTONS - Gamepad.setButton(PAD_A, new_accel); -#elif defined(GAMEPAD_USE_TRIGGERS) - Gamepad.setRzAxis(new_accel); -#endif -#elif defined(MODE_STEERING_WHEEL) - Gamepad.setAccelerator(new_accel); -#endif - } -} - -/// @brief still a button -void brake() { - static uint8_t last_brake_value = LOW; // still digital - uint8_t new_brake = digitalRead(BRAKE) INVERT; - if (new_brake != last_brake_value) { - Serial << "BRAKE set to " << (new_brake TEXT) << endl; - last_brake_value = new_brake; -#ifdef MODE_GAMEPAD -#ifdef GAMEPAD_USE_BUTTONS - Gamepad.setButton(PAD_B, new_brake); -#elif defined(GAMEPAD_USE_TRIGGERS) - Gamepad.setZAxis(new_brake); // if this becomes pot, remember to change this -#endif -#elif defined(MODE_STEERING_WHEEL) - Gamepad.setBrake(new_brake); -#endif - } -} - -void x() { - static uint16_t last_x_value = 1023 / 2; - uint16_t new_x = analogRead(STEER_X); - if (new_x != last_x_value) { - // Serial << "X set to " << new_x << endl; - last_x_value = new_x; -#ifdef MODE_GAMEPAD - Gamepad.setXAxis(new_x); -#elif defined(MODE_STEERING_WHEEL) - Gamepad.setSteering(new_x); -#endif - } -} - -void send() { - x(); - any(); - accel(); - brake(); -} - -} // namespace Controller |