Ir al contenido principal

Entradas

Mostrando las entradas de agosto, 2017

Usando DualShock 4 en C/C++

Hace unas semanas empecé a trabajar en un proyecto con un coche de radio control y se me ocurrió la manera de manejarlo con el control del PS4, el DualShock 4 (DS4). ¿Por qué C/C++? Existen varias bibliotecas para manejar el DS4 por ejemplo, el ds4drv 1 pero dado que el proyecto en el que estoy trabajando está escrito en C/C++ necesito desarrollar la biblioteca. ¿Cómo funciona el DS4? El DS4 es un dispositivo HID 2 este se puede conectar por medio de USB o Bluetooth (ver compatibilidad 3 ) Para establecer la conexión con el DS4 se tiene que enviar el VendorId y ProductId, una vez establecida la conexión este envía "reportes" los cuales son tramas de 64 bytes que contienen información del estado de los botones y del DS4. La tabla 1 muestra la descripción del reporte que consta de 64 bytes. byte index bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 [0] Report ID (USB) [1] X axis (0 = left) [2] Y axis (0 = up) [3] Right Stick axis X [