[hal,wpilib] Add Touchpad support (#8401)

This commit is contained in:
Thad House
2025-11-21 13:57:11 -08:00
committed by GitHub
parent 8546d301e3
commit 32fc543dc8
34 changed files with 1319 additions and 437 deletions

View File

@@ -15,6 +15,24 @@
#endif
/* Struct definitions */
typedef struct _mrc_proto_ProtobufFingerData {
static const pb_msgdesc_t* msg_descriptor(void) noexcept;
static std::string_view msg_name(void) noexcept;
static pb_filedesc_t file_descriptor(void) noexcept;
uint32_t X;
uint32_t Y;
bool Down;
} mrc_proto_ProtobufFingerData;
typedef struct _mrc_proto_ProtobufTouchpadData {
static const pb_msgdesc_t* msg_descriptor(void) noexcept;
static std::string_view msg_name(void) noexcept;
static pb_filedesc_t file_descriptor(void) noexcept;
pb_callback_t Fingers;
} mrc_proto_ProtobufTouchpadData;
typedef struct _mrc_proto_ProtobufJoystickData {
static const pb_msgdesc_t* msg_descriptor(void) noexcept;
static std::string_view msg_name(void) noexcept;
@@ -28,6 +46,7 @@ typedef struct _mrc_proto_ProtobufJoystickData {
We can fit 8 in here. */
uint32_t POVCount;
uint32_t POVs;
pb_callback_t Touchpads;
} mrc_proto_ProtobufJoystickData;
typedef struct _mrc_proto_ProtobufControlData {
@@ -141,7 +160,9 @@ typedef struct _mrc_proto_ProtobufConsoleLineTimestamp {
/* Initializer values for message structs */
#define mrc_proto_ProtobufJoystickData_init_default {0, 0, 0, {{NULL}, NULL}, 0, 0}
#define mrc_proto_ProtobufFingerData_init_default {0, 0, 0}
#define mrc_proto_ProtobufTouchpadData_init_default {{{NULL}, NULL}}
#define mrc_proto_ProtobufJoystickData_init_default {0, 0, 0, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}}
#define mrc_proto_ProtobufControlData_init_default {0, 0, {{NULL}, NULL}, 0}
#define mrc_proto_ProtobufJoystickDescriptor_init_default {{{NULL}, NULL}, 0, 0, 0}
#define mrc_proto_ProtobufJoystickDescriptors_init_default {{{NULL}, NULL}}
@@ -153,7 +174,9 @@ typedef struct _mrc_proto_ProtobufConsoleLineTimestamp {
#define mrc_proto_ProtobufAvailableOpModes_init_default {{{NULL}, NULL}}
#define mrc_proto_ProtobufErrorInfoTimestamp_init_default {{{NULL}, NULL}, 0, 0, 0}
#define mrc_proto_ProtobufConsoleLineTimestamp_init_default {{{NULL}, NULL}, 0, 0}
#define mrc_proto_ProtobufJoystickData_init_zero {0, 0, 0, {{NULL}, NULL}, 0, 0}
#define mrc_proto_ProtobufFingerData_init_zero {0, 0, 0}
#define mrc_proto_ProtobufTouchpadData_init_zero {{{NULL}, NULL}}
#define mrc_proto_ProtobufJoystickData_init_zero {0, 0, 0, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}}
#define mrc_proto_ProtobufControlData_init_zero {0, 0, {{NULL}, NULL}, 0}
#define mrc_proto_ProtobufJoystickDescriptor_init_zero {{{NULL}, NULL}, 0, 0, 0}
#define mrc_proto_ProtobufJoystickDescriptors_init_zero {{{NULL}, NULL}}
@@ -167,12 +190,17 @@ typedef struct _mrc_proto_ProtobufConsoleLineTimestamp {
#define mrc_proto_ProtobufConsoleLineTimestamp_init_zero {{{NULL}, NULL}, 0, 0}
/* Field tags (for use in manual encoding/decoding) */
#define mrc_proto_ProtobufFingerData_X_tag 1
#define mrc_proto_ProtobufFingerData_Y_tag 2
#define mrc_proto_ProtobufFingerData_Down_tag 3
#define mrc_proto_ProtobufTouchpadData_Fingers_tag 1
#define mrc_proto_ProtobufJoystickData_AvailableButtons_tag 1
#define mrc_proto_ProtobufJoystickData_Buttons_tag 2
#define mrc_proto_ProtobufJoystickData_AvailableAxes_tag 3
#define mrc_proto_ProtobufJoystickData_Axes_tag 4
#define mrc_proto_ProtobufJoystickData_POVCount_tag 5
#define mrc_proto_ProtobufJoystickData_POVs_tag 6
#define mrc_proto_ProtobufJoystickData_Touchpads_tag 7
#define mrc_proto_ProtobufControlData_ControlWord_tag 1
#define mrc_proto_ProtobufControlData_MatchTime_tag 2
#define mrc_proto_ProtobufControlData_Joysticks_tag 3
@@ -207,15 +235,30 @@ typedef struct _mrc_proto_ProtobufConsoleLineTimestamp {
#define mrc_proto_ProtobufConsoleLineTimestamp_SequenceNumber_tag 3
/* Struct field encoding specification for nanopb */
#define mrc_proto_ProtobufFingerData_FIELDLIST(X_, a) \
X_(a, STATIC, SINGULAR, UINT32, X, 1) \
X_(a, STATIC, SINGULAR, UINT32, Y, 2) \
X_(a, STATIC, SINGULAR, BOOL, Down, 3)
#define mrc_proto_ProtobufFingerData_CALLBACK NULL
#define mrc_proto_ProtobufFingerData_DEFAULT NULL
#define mrc_proto_ProtobufTouchpadData_FIELDLIST(X, a) \
X(a, CALLBACK, REPEATED, MESSAGE, Fingers, 1)
#define mrc_proto_ProtobufTouchpadData_CALLBACK pb_default_field_callback
#define mrc_proto_ProtobufTouchpadData_DEFAULT NULL
#define mrc_proto_ProtobufTouchpadData_Fingers_MSGTYPE mrc_proto_ProtobufFingerData
#define mrc_proto_ProtobufJoystickData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UINT64, AvailableButtons, 1) \
X(a, STATIC, SINGULAR, UINT64, Buttons, 2) \
X(a, STATIC, SINGULAR, UINT32, AvailableAxes, 3) \
X(a, CALLBACK, REPEATED, SINT32, Axes, 4) \
X(a, STATIC, SINGULAR, UINT32, POVCount, 5) \
X(a, STATIC, SINGULAR, UINT32, POVs, 6)
X(a, STATIC, SINGULAR, UINT32, POVs, 6) \
X(a, CALLBACK, REPEATED, MESSAGE, Touchpads, 7)
#define mrc_proto_ProtobufJoystickData_CALLBACK pb_default_field_callback
#define mrc_proto_ProtobufJoystickData_DEFAULT NULL
#define mrc_proto_ProtobufJoystickData_Touchpads_MSGTYPE mrc_proto_ProtobufTouchpadData
#define mrc_proto_ProtobufControlData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UINT32, ControlWord, 1) \
@@ -299,6 +342,7 @@ X(a, STATIC, SINGULAR, INT32, SequenceNumber, 3)
#define mrc_proto_ProtobufConsoleLineTimestamp_DEFAULT NULL
/* Maximum encoded size of messages (where known) */
/* mrc_proto_ProtobufTouchpadData_size depends on runtime parameters */
/* mrc_proto_ProtobufJoystickData_size depends on runtime parameters */
/* mrc_proto_ProtobufControlData_size depends on runtime parameters */
/* mrc_proto_ProtobufJoystickDescriptor_size depends on runtime parameters */
@@ -311,6 +355,7 @@ X(a, STATIC, SINGULAR, INT32, SequenceNumber, 3)
/* mrc_proto_ProtobufErrorInfoTimestamp_size depends on runtime parameters */
/* mrc_proto_ProtobufConsoleLineTimestamp_size depends on runtime parameters */
#define MRC_PROTO_MRCCOMM_NPB_H_MAX_SIZE mrc_proto_ProtobufJoystickOutput_size
#define mrc_proto_ProtobufFingerData_size 14
#define mrc_proto_ProtobufJoystickOutput_size 18