HID-Gamepad-USB/HID-Gamepad-USB.ino

44 lines
980 B
Arduino
Raw Normal View History

2020-09-15 10:25:42 +10:00
#include "HID-Project.h"
#include <EasyTransfer.h>
EasyTransfer ET;
int numberOfButtons = 32;
struct RECEIVE_DATA_STRUCTURE{
//THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
int16_t joyx;
int16_t joyy;
int8_t joyz;
int16_t joyxr;
int16_t joyyr;
int8_t joyzr;
uint32_t buttonState;
};
RECEIVE_DATA_STRUCTURE controllerState;
void setup() {
Gamepad.begin();
Serial1.begin(2000000);
ET.begin(details(controllerState), &Serial1);
Gamepad.releaseAll();
}
void loop() {
if(ET.receiveData()){
Gamepad.xAxis(controllerState.joyx);
Gamepad.yAxis(controllerState.joyy);
Gamepad.zAxis(controllerState.joyz);
Gamepad.rxAxis(controllerState.joyxr);
Gamepad.ryAxis(controllerState.joyyr);
Gamepad.rzAxis(controllerState.joyzr);
for (int i=0; i<numberOfButtons; i++){
if(bitRead(controllerState.buttonState, i)){
Gamepad.press(i+1);
} else {
Gamepad.release(i+1);
}
}
Gamepad.write();
}
}