VSF Documented
vsf_usb_ds4.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __VSF_USB_DS4_H__
19#define __VSF_USB_DS4_H__
20
21/*============================ INCLUDES ======================================*/
22
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29/*============================ MACROS ========================================*/
30
31#define DS4_ACC_RANGE 4 // +-4 g
32#define DS4_GYRO_RANGE 2000 // +-2000 degrees/second
33
34/*============================ MACROFIED FUNCTIONS ===========================*/
35/*============================ TYPES =========================================*/
36
39 uint8_t id; // data 0
40 uint8_t lx; // data 1
41 uint8_t ly; // data 2
42 uint8_t rx; // data 3
43 uint8_t ry; // data 4
44 uint8_t d_pad:4; // data 5
49 uint8_t l1:1; // data 6
53 uint8_t menu_left:1; // share
54 uint8_t menu_right:1; // options
57 uint8_t menu_main:1; // data 7 ps
60 uint8_t l2; // data 8
61 uint8_t r2; // data 9
62 uint16_t timestamp16; // data 10 - data 11 unit = 5.33us
63 uint8_t unknown1; // data 12
64 int16_t gyro_pitch; // data 13 - data 14 +- 2000 degrees/second
65 int16_t gyro_yaw; // data 15 - data 16
66 int16_t gyro_roll; // data 17 - data 18
67 int16_t acc_x; // data 19 - data 20 1g = 0x2000, +-4g
68 int16_t acc_y; // data 21 - data 22
69 int16_t acc_z; // data 23 - data 24
70 uint8_t unknown2[5]; // data 25 - data 29
71 uint8_t battery:4; // data 30
76 uint8_t unknown3[2]; // data 31 - data 32
77 uint8_t touch[19]; // data 33 - data 51
78 uint8_t unknown4[12]; // data 52 - data 63
80
86
87 uint8_t rumble_r; // 0 - 255
92
93 uint8_t flash_bright; // 255 = 2.5 seconds
94 uint8_t flash_dark; // 255 = 2.5 seconds
95
98
99/*============================ GLOBAL VARIABLES ==============================*/
100/*============================ PROTOTYPES ====================================*/
101
102#ifdef __cplusplus
103}
104#endif
105
106#endif // __VSF_USB_DS4_H__
107
unsigned short uint16_t
Definition stdint.h:7
short int16_t
Definition stdint.h:6
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_usb_ds4.h:38
uint8_t unknown1
Definition vsf_usb_ds4.h:63
uint8_t l2_click
Definition vsf_usb_ds4.h:51
uint8_t l3
Definition vsf_usb_ds4.h:55
uint8_t ry
Definition vsf_usb_ds4.h:43
uint8_t ly
Definition vsf_usb_ds4.h:41
uint8_t unknown4[12]
Definition vsf_usb_ds4.h:78
int16_t gyro_pitch
Definition vsf_usb_ds4.h:64
uint8_t lx
Definition vsf_usb_ds4.h:40
uint8_t circle
Definition vsf_usb_ds4.h:47
int16_t acc_x
Definition vsf_usb_ds4.h:67
uint8_t touch[19]
Definition vsf_usb_ds4.h:77
uint8_t l1
Definition vsf_usb_ds4.h:49
uint8_t plug_audio
Definition vsf_usb_ds4.h:73
uint8_t r1
Definition vsf_usb_ds4.h:50
uint8_t r2_click
Definition vsf_usb_ds4.h:52
uint8_t unknown3[2]
Definition vsf_usb_ds4.h:76
uint8_t menu_right
Definition vsf_usb_ds4.h:54
uint8_t menu_main
Definition vsf_usb_ds4.h:57
uint8_t rx
Definition vsf_usb_ds4.h:42
uint8_t triangle
Definition vsf_usb_ds4.h:48
uint8_t plug_mic
Definition vsf_usb_ds4.h:74
uint8_t l2
Definition vsf_usb_ds4.h:60
uint8_t id
Definition vsf_usb_ds4.h:39
uint8_t plug_usb
Definition vsf_usb_ds4.h:72
uint8_t menu_left
Definition vsf_usb_ds4.h:53
uint8_t r2
Definition vsf_usb_ds4.h:61
uint8_t square
Definition vsf_usb_ds4.h:45
int16_t acc_z
Definition vsf_usb_ds4.h:69
uint8_t battery
Definition vsf_usb_ds4.h:71
int16_t gyro_yaw
Definition vsf_usb_ds4.h:65
uint16_t timestamp16
Definition vsf_usb_ds4.h:62
uint8_t timestamp6
Definition vsf_usb_ds4.h:59
uint8_t cross
Definition vsf_usb_ds4.h:46
uint8_t touch_click
Definition vsf_usb_ds4.h:58
uint8_t unknown2[5]
Definition vsf_usb_ds4.h:70
uint8_t r3
Definition vsf_usb_ds4.h:56
uint8_t d_pad
Definition vsf_usb_ds4.h:44
uint8_t zero
Definition vsf_usb_ds4.h:75
int16_t acc_y
Definition vsf_usb_ds4.h:68
int16_t gyro_roll
Definition vsf_usb_ds4.h:66
Definition vsf_usb_ds4.h:82
uint8_t rumble_l
Definition vsf_usb_ds4.h:88
uint8_t id
Definition vsf_usb_ds4.h:83
uint8_t dummyFF
Definition vsf_usb_ds4.h:84
uint8_t led_g
Definition vsf_usb_ds4.h:90
uint8_t dummy1[2]
Definition vsf_usb_ds4.h:85
uint8_t flash_bright
Definition vsf_usb_ds4.h:93
uint8_t led_r
Definition vsf_usb_ds4.h:89
uint8_t rumble_r
Definition vsf_usb_ds4.h:87
uint8_t flash_dark
Definition vsf_usb_ds4.h:94
uint8_t dummy2[21]
Definition vsf_usb_ds4.h:96
uint8_t led_b
Definition vsf_usb_ds4.h:91
struct vsf_usb_ds4_gamepad_in_report_t VSF_CAL_PACKED