Driver to Joystick Shield V1.a board whith RF24 radio conected.
Public declarations:
// Button's pins #define BT_A_PIN 2 #define BT_B_PIN 3 #define BT_C_PIN 4 #define BT_D_PIN 5 #define BT_E_PIN 6 #define BT_F_PIN 7 #define BT_Z_PIN 8 // Button's IDs #define BT_A_ID 0 #define BT_B_ID 1 #define BT_C_ID 2 #define BT_D_ID 3 #define BT_E_ID 4 #define BT_F_ID 5 #define BT_Z_ID 6 #define JS_BUTTONS 7 // JoyStick pins #define X_AXIS_PIN A0 #define Y_AXIS_PIN A1 typedef struct { byte msgID; int param; } TJsPacket; // msgID #define msg_JS_BUTTON_PRESSED 1 #define msg_JS_BUTTON_RELEASED 2 #define msg_JS_X_AXIS_CHANGE 3 #define msg_JS_Y_AXIS_CHANGE 4 #define msg_JS_LAST_JS_MSG_ID msg_JS_Y_AXIS_CHANGE class JoyStickRadio: public RadioMessage { public: JoyStickRadio(int cePin, int csPin): RadioMessage(cePin, csPin){} void run(); TJsPacket* makeJsPacket(TJsPacket *pack, byte msgID, int param); int sendJsPacket(TJsPacket *pack); int readJsPacket(TJsPacket *pack); protected: virtual void onJsPacketSent(TJsPacket *pack){}; virtual void onJsPacketRead(TJsPacket *pack){}; }; class JsRadioMaster: public JoyStickRadio, public JoyStickShield{ public: JsRadioMaster(): JoyStickShield(), JoyStickRadio(RADIO_CE_PIN, RADIO_CS_PIN){} void begin(uint8_t* pipeIn, uint8_t* pipeOut, TDatarate rate, boolean autoSendEvents= false); void run(); protected: virtual void jsButtonPressed(byte btID){} virtual void jsButtonReleased(byte btID){} virtual void jsXAxisChange(int xVal){} virtual void jsYAxisChange(int yVal){} };
Wiki: Home
Wiki: JoyStick
Wiki: JoyStickShield
Wiki: PushButton
Wiki: PushButtonArray
Wiki: RadioMessage