![]() |
peripherals
1.4.2
RoadNarrows Robotics Hardware Peripherals Package
|
Xbox360 Controller C interface. More...
#include <sys/types.h>#include <sys/stat.h>#include <sys/time.h>#include <sys/ioctl.h>#include <limits.h>#include <fcntl.h>#include <termios.h>#include <unistd.h>#include <stdlib.h>#include <stdarg.h>#include <time.h>#include <stdio.h>#include <string.h>#include <pthread.h>#include <map>#include <string>#include <libusb-1.0/libusb.h>#include "rnr/rnrconfig.h"#include "rnr/usbext.h"#include "rnr/hid/HID.h"Go to the source code of this file.
Classes | |
| class | rnr::HIDXbox360 |
| Xbox360 controller HID input class. More... | |
| struct | rnr::HIDXbox360::UsbPkt_T |
| USB application packet transfer structure. More... | |
Namespaces | |
| rnr | |
| RoadNarrows Robotics standard namespace. | |
Macros | |
| #define | MICROSOFT_VENDOR_ID 0x045e |
| #define | XBOX360_WIRED_PROD_ID 0x028e |
| #define | XBOX360_TETHERED_PROD_ID 0x028f |
| #define | XBOX360_WIRELESS_PROD_ID 0x0719 |
| #define | XBOX360_WIRELESS_WIN_PROD_ID 0x0291 |
| #define | XBOX360_NO_PROD_ID 0x0000 |
| #define | XBOX360_READ_ENDPOINT 0x81 |
| #define | XBOX360_WRITE_ENDPOINT 0x01 |
| #define | XBOX360_NUM_OF_INTERFACES 4 |
| #define | XBOX_LIBUSB_DEBUG_OFF 0 |
| libusb logging off More... | |
| #define | XBOX_LIBUSB_DEBUG_ERROR 1 |
| log libusb errors More... | |
| #define | XBOX_LIBUSB_DEBUG_WARN 2 |
| log libusb warnings and errors More... | |
| #define | XBOX_LIBUSB_DEBUG_INFO 3 |
| log libusb info, warnings and errors More... | |
| #define | XBOX_LIBUSB_DEBUG_DFT XBOX_LIBUSB_DEBUG_OFF |
| default libusb logging More... | |
| #define | XBOX360_MSG_OFFSET_DFT 0 |
| default message start byte offset More... | |
| #define | XBOX360_MSG_OFFSET_W 0 |
| wired message start byte offset More... | |
| #define | XBOX360_MSG_OFFSET_WL 4 |
| wireless message start byte offset More... | |
| #define | XBOX360_WL_PKT_HDR_LEN XBOX360_MSG_OFFSET_WL |
| wireless packet header length More... | |
| #define | XBOX360_WL_LINK_PKT_LEN 2 |
| link status change packet length More... | |
| #define | XBOX360_WL_NORM_PKT_LEN 29 |
| normal packet length More... | |
| #define | XBOX360_WL_PKT_TYPE_POS 0 |
| byte position More... | |
| #define | XBOX360_WL_PKT_TYPE_NORM 0x00 |
| normal link message More... | |
| #define | XBOX360_WL_PKT_TYPE_CHG 0x08 |
| link status changed message More... | |
| #define | XBOX360_WL_PKT_TYPE_20 0x20 |
| ? 20 d7 67 fc 01 88 ff ff 00... More... | |
| #define | XBOX360_WL_PKT_TYPE_40 0x40 |
| ? 40 7c 78 a7 01 88 ff ff 00... More... | |
| #define | XBOX360_WL_PKT_TYPE_60 0x40 |
| ? 60 4e 23 ff 01 88 ff ff 00... More... | |
| #define | XBOX360_WL_PKT_TYPE_80 0x80 |
| #define | XBOX360_WL_PKT_TYPE_C0 0xc0 |
| #define | XBOX360_WL_LINK_STATUS_POS 1 |
| byte position More... | |
| #define | XBOX360_WL_LINK_STATUS_NO_LINK 0x00 |
| no link More... | |
| #define | XBOX360_WL_LINK_STATUS_HEADSET 0x40 |
| linked w/ headset More... | |
| #define | XBOX360_WL_LINK_STATUS_CTLR 0x80 |
| linked w/ controller More... | |
| #define | XBOX360_WL_LINK_STATUS_CTLR_HEADSET 0xc0 |
| linked w/ ctlr & headset More... | |
| #define | XBOX360_WL_ANN_PAT_1 0x0f |
| header pattern at byte 1 More... | |
| #define | XBOX360_WL_ANN_PAT_2 0x00 |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_ANN_PAT_3 0xf0 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_ANN_SN_POS 7 |
| serial number field position More... | |
| #define | XBOX360_WL_ANN_SN_LEN 7 |
| serial number field length More... | |
| #define | XBOX360_WL_ANN_BATT_POS 17 |
| battery status field position More... | |
| #define | XBOX360_WL_ANN_BATT_LEN 1 |
| battery status field length More... | |
| #define | XBOX360_WL_BATT_PAT_1 0x00 |
| header pattern at byte 1 More... | |
| #define | XBOX360_WL_BATT_PAT_2 0x00 |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_BATT_PAT_3 0x13 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_BATT_BATT_POS 4 |
| battery status field position More... | |
| #define | XBOX360_WL_BATT_BATT_LEN 1 |
| battery status field length More... | |
| #define | XBOX360_WL_NULL_PAT_1 0x00 |
| header pattern at byte 1 More... | |
| #define | XBOX360_WL_NULL_PAT_2 0x00 |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_NULL_PAT_3_00 0x00 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_NULL_PAT_3_10 0x10 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_NULL_PAT_3_20 0x20 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_NULL_PAT_3_40 0x40 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_NULL_PAT_3_ACK 0xf0 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_BTTN_PAT_1 0x01 |
| header pattern at byte 1 More... | |
| #define | XBOX360_WL_BTTN_PAT_2 0x00 |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_BTTN_PAT_3 0xf0 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_RUMBLE_PAT_1 0x01 |
| header pattern at byte 1 More... | |
| #define | XBOX360_WL_RUMBLE_PAT_2 0x0f |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_RUMBLE_PAT_3 0xc0 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_LED_PAT_1 0x00 |
| header pattern at byte 1 More... | |
| #define | XBOX360_WL_LED_PAT_2 0x08 |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_LED_PAT_3 0x40 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_F8_PAT_1 0xf8 |
| header pattern at byte 1 More... | |
| #define | XBOX360_WL_F8_PAT_2_1 0x01 |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_F8_PAT_2_2 0x02 |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_F8_PAT_2_3 0x03 |
| header pattern at byte 2 More... | |
| #define | XBOX360_WL_F8_PAT_3 0x00 |
| header pattern at byte 3 More... | |
| #define | XBOX360_WL_32_PAT_1 0x32 |
| header pattern at byte 1 More... | |
| #define | XBOX360_WL_32_PAT_2 0x00 |
| header pattern at byte 2? More... | |
| #define | XBOX360_WL_32_PAT_3 0x00 |
| header pattern at byte 3? More... | |
| #define | XBOX360_MSG_TYPE_POS 0 |
| message type byte position More... | |
| #define | XBOX360_MSG_LEN_POS 1 |
| message length byte position More... | |
| #define | XBOX360_BTTN_MSG_TYPE 0x00 |
| button update msg type More... | |
| #define | XBOX360_BTTN_MSG_LEN 20 |
| wired button msg length More... | |
| #define | XBOX360_WL_BTTN_MSG_LEN 19 |
| wireless button msg len More... | |
| #define | XBOX360_BTTN_MSG_MIN_LEN XBOX360_WL_BTTN_MSG_LEN |
| #define | XBOX360_BTTN_PAD_UP_POS 2 |
| byte position More... | |
| #define | XBOX360_BTTN_PAD_UP_MASK 0x01 |
| bit mask More... | |
| #define | XBOX360_BTTN_PAD_DOWN_POS 2 |
| byte position More... | |
| #define | XBOX360_BTTN_PAD_DOWN_MASK 0x02 |
| bit mask More... | |
| #define | XBOX360_BTTN_PAD_LEFT_POS 2 |
| byte position More... | |
| #define | XBOX360_BTTN_PAD_LEFT_MASK 0x04 |
| bit mask More... | |
| #define | XBOX360_BTTN_PAD_RIGHT_POS 2 |
| byte position More... | |
| #define | XBOX360_BTTN_PAD_RIGHT_MASK 0x08 |
| bit mask More... | |
| #define | XBOX360_BTTN_START_POS 2 |
| byte position More... | |
| #define | XBOX360_BTTN_START_MASK 0x10 |
| bit mask More... | |
| #define | XBOX360_BTTN_BACK_POS 2 |
| byte position More... | |
| #define | XBOX360_BTTN_BACK_MASK 0x20 |
| bit mask More... | |
| #define | XBOX360_BTTN_LEFT_STICK_CLICK_POS 2 |
| byte position More... | |
| #define | XBOX360_BTTN_LEFT_STICK_CLICK_MASK 0x40 |
| bit mask More... | |
| #define | XBOX360_BTTN_RIGHT_STICK_CLICK_POS 2 |
| byte position More... | |
| #define | XBOX360_BTTN_RIGHT_STICK_CLICK_MASK 0x80 |
| bit mask More... | |
| #define | XBOX360_BTTN_LEFT_BUMP_POS 3 |
| byte position More... | |
| #define | XBOX360_BTTN_LEFT_BUMP_MASK 0x01 |
| bit mask More... | |
| #define | XBOX360_BTTN_RIGHT_BUMP_POS 3 |
| byte position More... | |
| #define | XBOX360_BTTN_RIGHT_BUMP_MASK 0x02 |
| bit mask More... | |
| #define | XBOX360_BTTN_CENTER_X_POS 3 |
| byte position More... | |
| #define | XBOX360_BTTN_CENTER_X_MASK 0x04 |
| bit mask More... | |
| #define | XBOX360_BTTN_A_BUTTON_POS 3 |
| byte position More... | |
| #define | XBOX360_BTTN_A_BUTTON_MASK 0x10 |
| bit mask More... | |
| #define | XBOX360_BTTN_B_BUTTON_POS 3 |
| byte position More... | |
| #define | XBOX360_BTTN_B_BUTTON_MASK 0x20 |
| bit mask More... | |
| #define | XBOX360_BTTN_X_BUTTON_POS 3 |
| byte position More... | |
| #define | XBOX360_BTTN_X_BUTTON_MASK 0x40 |
| bit mask More... | |
| #define | XBOX360_BTTN_Y_BUTTON_POS 3 |
| byte position More... | |
| #define | XBOX360_BTTN_Y_BUTTON_MASK 0x80 |
| bit mask More... | |
| #define | XBOX360_BTTN_LEFT_TRIGGER_POS 4 |
| byte position More... | |
| #define | XBOX360_BTTN_LEFT_TRIGGER_MASK 0xff |
| bit mask More... | |
| #define | XBOX360_BTTN_RIGHT_TRIGGER_POS 5 |
| byte position More... | |
| #define | XBOX360_BTTN_RIGHT_TRIGGER_MASK 0xff |
| bit mask More... | |
| #define | XBOX360_TRIGGER_MIN 0 |
| minimum trigger value More... | |
| #define | XBOX360_TRIGGER_MAX 255 |
| maximum trigger value More... | |
| #define | XBOX360_BTTN_LEFT_X_POS_L 6 |
| byte position More... | |
| #define | XBOX360_BTTN_LEFT_X_POS_H 7 |
| byte position More... | |
| #define | XBOX360_BTTN_LEFT_X_MASK 0xffff |
| bit mask More... | |
| #define | XBOX360_BTTN_LEFT_Y_POS_L 8 |
| byte position More... | |
| #define | XBOX360_BTTN_LEFT_Y_POS_H 9 |
| byte position More... | |
| #define | XBOX360_BTTN_LEFT_Y_MASK 0xffff |
| bit mask More... | |
| #define | XBOX360_BTTN_RIGHT_X_POS_L 10 |
| byte position More... | |
| #define | XBOX360_BTTN_RIGHT_X_POS_H 11 |
| byte position More... | |
| #define | XBOX360_BTTN_RIGHT_X_MASK 0xffff |
| bit mask More... | |
| #define | XBOX360_BTTN_RIGHT_Y_POS_L 12 |
| byte position More... | |
| #define | XBOX360_BTTN_RIGHT_Y_POS_H 13 |
| byte position More... | |
| #define | XBOX360_BTTN_RIGHT_Y_MASK 0xffff |
| bit mask More... | |
| #define | XBOX360_JOY_MIN -32767 |
| minimum joystick value More... | |
| #define | XBOX360_JOY_MAX 32767 |
| maximum joystick value More... | |
| #define | XBOX360_RUMBLE_MSG_TYPE 0x00 |
| rumble message type More... | |
| #define | XBOX360_RUMBLE_MSG_LEN 8 |
| rumble read/write message length More... | |
| #define | XBOX360_RUMBLE_ZERO_2 2 |
| byte position with 0 value More... | |
| #define | XBOX360_RUMBLE_LEFT_POS 3 |
| byte position More... | |
| #define | XBOX360_RUMBLE_LEFT_MASK 0xff |
| bit mask More... | |
| #define | XBOX360_RUMBLE_LEFT_MAX 255 |
| left rumble motor maximum More... | |
| #define | XBOX360_RUMBLE_RIGHT_POS 4 |
| byte position More... | |
| #define | XBOX360_RUMBLE_RIGHT_MASK 0xff |
| bit mask More... | |
| #define | XBOX360_RUMBLE_RIGHT_MAX 255 |
| right rumble motor maximum More... | |
| #define | XBOX360_RUMBLE_ZERO_5 5 |
| byte position with 0 value More... | |
| #define | XBOX360_RUMBLE_ZERO_6 6 |
| byte position with 0 value More... | |
| #define | XBOX360_RUMBLE_ZERO_7 7 |
| byte position with 0 value More... | |
| #define | XBOX360_LED_MSG_TYPE 0x01 |
| LED message type. More... | |
| #define | XBOX360_LED_MSG_LEN 3 |
| LED message length. More... | |
| #define | XBOX360_LED_PAT_POS 2 |
| LED messge byte position. More... | |
| #define | XBOX360_WL_LED_MSG_TYPE 0x00 |
| LED message type. More... | |
| #define | XBOX360_WL_LED_MSG_LEN 8 |
| LED message length. More... | |
| #define | XBOX360_WL_LED_PAT_POS 3 |
| LED position is in PACKET header. More... | |
| #define | XBOX360_LED_PAT_MASK 0x0f |
| bit mask More... | |
| #define | XBOX360_LED_PAT_ALL_OFF 0 |
| all 4 LEDs off More... | |
| #define | XBOX360_LED_PAT_ALL_BLINK_ON_1 1 |
| all 4 LEDs blink, then #1 on More... | |
| #define | XBOX360_LED_PAT_1_BLINK_ON 2 |
| #1 LED blinks, then #1 on More... | |
| #define | XBOX360_LED_PAT_2_BLINK_ON 3 |
| #2 LED blinks, then #2 on More... | |
| #define | XBOX360_LED_PAT_3_BLINK_ON 4 |
| #3 LED blinks, then #3 on More... | |
| #define | XBOX360_LED_PAT_4_BLINK_ON 5 |
| #4 LED blinks, then #4 on More... | |
| #define | XBOX360_LED_PAT_1_ON 6 |
| #1 LED on More... | |
| #define | XBOX360_LED_PAT_2_ON 7 |
| #2 LED on More... | |
| #define | XBOX360_LED_PAT_3_ON 8 |
| #3 LED on More... | |
| #define | XBOX360_LED_PAT_4_ON 9 |
| #4 LED on More... | |
| #define | XBOX360_LED_PAT_ALL_SPIN 10 |
| spinnig LEDs one at a time More... | |
| #define | XBOX360_LED_PAT_4_BLINK_ON_L 11 |
| #4 LED blinks long, then #4 on More... | |
| #define | XBOX360_LED_PAT_4_BLINK 12 |
| #4 LED blinks slowly More... | |
| #define | XBOX360_LED_PAT_ALL_SPIN_2 13 |
| auto-transitions to previous More... | |
| #define | XBOX360_LED_PAT_ALL_BLINK 14 |
| all 4 LEDs blink continuously More... | |
| #define | XBOX360_LED_PAT_NUMOF 15 |
| number of patterns More... | |
| #define | XBOX360_LEFT_DEAD_ZONE ((int)(0.25 * XBOX360_JOY_MAX)) |
| #define | XBOX360_RIGHT_DEAD_ZONE ((int)(0.25 * XBOX360_JOY_MAX)) |
Xbox360 Controller C interface.
Definition in file HIDXbox360.h.