25 #define EP_MAXPKTSIZE 64 // max size for data via USB
28 #define EP_INTERRUPT 0x03
31 #define PS3_CONTROL_PIPE 0
32 #define PS3_OUTPUT_PIPE 1
33 #define PS3_INPUT_PIPE 2
36 #define PS3_VID 0x054C // Sony Corporation
37 #define PS3_PID 0x0268 // PS3 Controller DualShock 3
38 #define PS3NAVIGATION_PID 0x042F // Navigation controller
39 #define PS3MOVE_PID 0x03D5 // Motion controller
42 #define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
43 #define bmREQ_HID_IN USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
45 #define HID_REQUEST_GET_REPORT 0x01
46 #define HID_REQUEST_SET_REPORT 0x09
48 #define PS3_MAX_ENDPOINTS 3
67 PS3USB(
USB *
pUsb, uint8_t btadr5 = 0, uint8_t btadr4 = 0, uint8_t btadr3 = 0, uint8_t btadr2 = 0, uint8_t btadr1 = 0, uint8_t btadr0 = 0);
77 virtual uint8_t
Init(uint8_t parent, uint8_t port,
bool lowspeed);
87 virtual uint8_t
Poll();
111 virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid) {
215 void setRumbleOn(uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower);
264 pFuncOnInit = funcOnInit;
290 void (*pFuncOnInit)(void);
296 uint32_t ButtonState;
297 uint32_t OldButtonState;
298 uint32_t ButtonClickState;
300 uint8_t my_bdaddr[6];
308 void PS3_Command(uint8_t *data, uint16_t nbytes);
309 void enable_sixaxis();
310 void Move_Command(uint8_t *data, uint16_t nbytes);
void getBdaddr(uint8_t *bdaddr)
void setLedRaw(uint8_t value)
bool PS3NavigationConnected
void setBdaddr(uint8_t *bdaddr)
virtual uint8_t Release()
bool getButtonPress(ButtonEnum b)
void getMoveBdaddr(uint8_t *bdaddr)
uint8_t getAnalogButton(ButtonEnum a)
uint16_t getSensor(SensorEnum a)
virtual uint8_t GetAddress()
void attachOnInit(void(*funcOnInit)(void))
void setLedToggle(LEDEnum a)
void moveSetBulb(uint8_t r, uint8_t g, uint8_t b)
virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)
uint8_t getAnalogHat(AnalogHatEnum a)
double getAngle(AngleEnum a)
void moveSetRumble(uint8_t rumble)
#define PS3_MAX_ENDPOINTS
EpInfo epInfo[PS3_MAX_ENDPOINTS]
void setRumbleOn(RumbleEnum mode)
virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)
#define PS3NAVIGATION_PID
void setMoveBdaddr(uint8_t *bdaddr)
PS3USB(USB *pUsb, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)
void getMoveCalibration(uint8_t *data)
bool getStatus(StatusEnum c)
bool getButtonClick(ButtonEnum b)