[hal] Update to new joystick protobuf definitions (#7991)

This commit is contained in:
Thad House
2025-05-31 10:52:27 -07:00
committed by GitHub
parent a6f601453a
commit 1991af34a5
9 changed files with 479 additions and 377 deletions

View File

@@ -72,7 +72,7 @@ deploy {
maxChannels = 4
locations {
mdns(SshDeployLocation) {
address = "limelight.local"
address = "robot.local"
user = 'systemcore'
password = 'systemcore'
ipv6 = false

View File

@@ -14,316 +14,326 @@
static const uint8_t file_descriptor[] {
0x0a,0x0d,0x4d,0x72,0x63,0x43,0x6f,0x6d,0x6d,0x2e,
0x70,0x72,0x6f,0x74,0x6f,0x12,0x09,0x6d,0x72,0x63,
0x2e,0x70,0x72,0x6f,0x74,0x6f,0x22,0x96,0x01,0x0a,
0x2e,0x70,0x72,0x6f,0x74,0x6f,0x22,0xc6,0x01,0x0a,
0x14,0x50,0x72,0x6f,0x74,0x6f,0x62,0x75,0x66,0x4a,
0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x44,0x61,0x74,
0x61,0x12,0x20,0x0a,0x0b,0x42,0x75,0x74,0x74,0x6f,
0x6e,0x43,0x6f,0x75,0x6e,0x74,0x18,0x01,0x20,0x01,
0x28,0x0d,0x52,0x0b,0x42,0x75,0x74,0x74,0x6f,0x6e,
0x43,0x6f,0x75,0x6e,0x74,0x12,0x18,0x0a,0x07,0x42,
0x61,0x12,0x2a,0x0a,0x10,0x41,0x76,0x61,0x69,0x6c,
0x61,0x62,0x6c,0x65,0x42,0x75,0x74,0x74,0x6f,0x6e,
0x73,0x18,0x01,0x20,0x01,0x28,0x04,0x52,0x10,0x41,
0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x42,0x75,
0x74,0x74,0x6f,0x6e,0x73,0x12,0x18,0x0a,0x07,0x42,
0x75,0x74,0x74,0x6f,0x6e,0x73,0x18,0x02,0x20,0x01,
0x28,0x04,0x52,0x07,0x42,0x75,0x74,0x74,0x6f,0x6e,
0x73,0x12,0x12,0x0a,0x04,0x41,0x78,0x65,0x73,0x18,
0x03,0x20,0x03,0x28,0x11,0x52,0x04,0x41,0x78,0x65,
0x73,0x12,0x1a,0x0a,0x08,0x50,0x4f,0x56,0x43,0x6f,
0x75,0x6e,0x74,0x18,0x04,0x20,0x01,0x28,0x0d,0x52,
0x08,0x50,0x4f,0x56,0x43,0x6f,0x75,0x6e,0x74,0x12,
0x12,0x0a,0x04,0x50,0x4f,0x56,0x73,0x18,0x05,0x20,
0x01,0x28,0x0d,0x52,0x04,0x50,0x4f,0x56,0x73,0x22,
0xba,0x01,0x0a,0x13,0x50,0x72,0x6f,0x74,0x6f,0x62,
0x75,0x66,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x44,
0x61,0x74,0x61,0x12,0x20,0x0a,0x0b,0x43,0x6f,0x6e,
0x74,0x72,0x6f,0x6c,0x57,0x6f,0x72,0x64,0x18,0x01,
0x20,0x01,0x28,0x0d,0x52,0x0b,0x43,0x6f,0x6e,0x74,
0x72,0x6f,0x6c,0x57,0x6f,0x72,0x64,0x12,0x1c,0x0a,
0x09,0x4d,0x61,0x74,0x63,0x68,0x54,0x69,0x6d,0x65,
0x18,0x02,0x20,0x01,0x28,0x05,0x52,0x09,0x4d,0x61,
0x74,0x63,0x68,0x54,0x69,0x6d,0x65,0x12,0x3d,0x0a,
0x09,0x4a,0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x73,
0x18,0x03,0x20,0x03,0x28,0x0b,0x32,0x1f,0x2e,0x6d,
0x72,0x63,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x50,
0x72,0x6f,0x74,0x6f,0x62,0x75,0x66,0x4a,0x6f,0x79,
0x73,0x74,0x69,0x63,0x6b,0x44,0x61,0x74,0x61,0x52,
0x09,0x4a,0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x73,
0x12,0x24,0x0a,0x0d,0x43,0x75,0x72,0x72,0x65,0x6e,
0x74,0x4f,0x70,0x4d,0x6f,0x64,0x65,0x18,0x04,0x20,
0x01,0x28,0x06,0x52,0x0d,0x43,0x75,0x72,0x72,0x65,
0x6e,0x74,0x4f,0x70,0x4d,0x6f,0x64,0x65,0x22,0x80,
0x02,0x0a,0x1a,0x50,0x72,0x6f,0x74,0x6f,0x62,0x75,
0x66,0x4a,0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x44,
0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x12,
0x22,0x0a,0x0c,0x4a,0x6f,0x79,0x73,0x74,0x69,0x63,
0x6b,0x4e,0x61,0x6d,0x65,0x18,0x01,0x20,0x01,0x28,
0x09,0x52,0x0c,0x4a,0x6f,0x79,0x73,0x74,0x69,0x63,
0x6b,0x4e,0x61,0x6d,0x65,0x12,0x1c,0x0a,0x09,0x41,
0x78,0x69,0x73,0x54,0x79,0x70,0x65,0x73,0x18,0x02,
0x20,0x03,0x28,0x05,0x52,0x09,0x41,0x78,0x69,0x73,
0x54,0x79,0x70,0x65,0x73,0x12,0x1c,0x0a,0x09,0x49,
0x73,0x47,0x61,0x6d,0x65,0x70,0x61,0x64,0x18,0x03,
0x20,0x01,0x28,0x08,0x52,0x09,0x49,0x73,0x47,0x61,
0x6d,0x65,0x70,0x61,0x64,0x12,0x22,0x0a,0x0c,0x4a,
0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x54,0x79,0x70,
0x65,0x18,0x04,0x20,0x01,0x28,0x05,0x52,0x0c,0x4a,
0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x54,0x79,0x70,
0x65,0x12,0x20,0x0a,0x0b,0x42,0x75,0x74,0x74,0x6f,
0x6e,0x43,0x6f,0x75,0x6e,0x74,0x18,0x05,0x20,0x01,
0x28,0x05,0x52,0x0b,0x42,0x75,0x74,0x74,0x6f,0x6e,
0x43,0x6f,0x75,0x6e,0x74,0x12,0x1a,0x0a,0x08,0x50,
0x6f,0x76,0x43,0x6f,0x75,0x6e,0x74,0x18,0x06,0x20,
0x01,0x28,0x05,0x52,0x08,0x50,0x6f,0x76,0x43,0x6f,
0x75,0x6e,0x74,0x12,0x20,0x0a,0x0b,0x52,0x75,0x6d,
0x62,0x6c,0x65,0x43,0x6f,0x75,0x6e,0x74,0x18,0x07,
0x20,0x01,0x28,0x05,0x52,0x0b,0x52,0x75,0x6d,0x62,
0x6c,0x65,0x43,0x6f,0x75,0x6e,0x74,0x22,0x32,0x0a,
0x1a,0x50,0x72,0x6f,0x74,0x6f,0x62,0x75,0x66,0x4a,
0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x52,0x75,0x6d,
0x62,0x6c,0x65,0x44,0x61,0x74,0x61,0x12,0x14,0x0a,
0x05,0x56,0x61,0x6c,0x75,0x65,0x18,0x03,0x20,0x03,
0x28,0x0d,0x52,0x05,0x56,0x61,0x6c,0x75,0x65,0x22,
0x95,0x01,0x0a,0x11,0x50,0x72,0x6f,0x74,0x6f,0x62,
0x75,0x66,0x4d,0x61,0x74,0x63,0x68,0x49,0x6e,0x66,
0x6f,0x12,0x1c,0x0a,0x09,0x45,0x76,0x65,0x6e,0x74,
0x4e,0x61,0x6d,0x65,0x18,0x01,0x20,0x01,0x28,0x09,
0x52,0x09,0x45,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,
0x65,0x12,0x20,0x0a,0x0b,0x4d,0x61,0x74,0x63,0x68,
0x4e,0x75,0x6d,0x62,0x65,0x72,0x18,0x02,0x20,0x01,
0x28,0x05,0x52,0x0b,0x4d,0x61,0x74,0x63,0x68,0x4e,
0x75,0x6d,0x62,0x65,0x72,0x12,0x22,0x0a,0x0c,0x52,
0x65,0x70,0x6c,0x61,0x79,0x4e,0x75,0x6d,0x62,0x65,
0x72,0x18,0x03,0x20,0x01,0x28,0x05,0x52,0x0c,0x52,
0x65,0x70,0x6c,0x61,0x79,0x4e,0x75,0x6d,0x62,0x65,
0x72,0x12,0x1c,0x0a,0x09,0x4d,0x61,0x74,0x63,0x68,
0x54,0x79,0x70,0x65,0x18,0x04,0x20,0x01,0x28,0x05,
0x52,0x09,0x4d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,
0x65,0x22,0x9f,0x01,0x0a,0x11,0x50,0x72,0x6f,0x74,
0x6f,0x62,0x75,0x66,0x45,0x72,0x72,0x6f,0x72,0x49,
0x6e,0x66,0x6f,0x12,0x18,0x0a,0x07,0x49,0x73,0x45,
0x72,0x72,0x6f,0x72,0x18,0x01,0x20,0x01,0x28,0x08,
0x52,0x07,0x49,0x73,0x45,0x72,0x72,0x6f,0x72,0x12,
0x1c,0x0a,0x09,0x45,0x72,0x72,0x6f,0x72,0x43,0x6f,
0x64,0x65,0x18,0x02,0x20,0x01,0x28,0x11,0x52,0x09,
0x45,0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x12,
0x18,0x0a,0x07,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,
0x18,0x03,0x20,0x01,0x28,0x09,0x52,0x07,0x44,0x65,
0x74,0x61,0x69,0x6c,0x73,0x12,0x1a,0x0a,0x08,0x4c,
0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x18,0x04,0x20,
0x01,0x28,0x09,0x52,0x08,0x4c,0x6f,0x63,0x61,0x74,
0x69,0x6f,0x6e,0x12,0x1c,0x0a,0x09,0x43,0x61,0x6c,
0x6c,0x53,0x74,0x61,0x63,0x6b,0x18,0x05,0x20,0x01,
0x28,0x09,0x52,0x09,0x43,0x61,0x6c,0x6c,0x53,0x74,
0x61,0x63,0x6b,0x22,0x38,0x0a,0x0e,0x50,0x72,0x6f,
0x74,0x6f,0x62,0x75,0x66,0x4f,0x70,0x4d,0x6f,0x64,
0x65,0x12,0x12,0x0a,0x04,0x48,0x61,0x73,0x68,0x18,
0x01,0x20,0x01,0x28,0x06,0x52,0x04,0x48,0x61,0x73,
0x68,0x12,0x12,0x0a,0x04,0x4e,0x61,0x6d,0x65,0x18,
0x02,0x20,0x01,0x28,0x09,0x52,0x04,0x4e,0x61,0x6d,
0x65,0x22,0x4b,0x0a,0x18,0x50,0x72,0x6f,0x74,0x6f,
0x62,0x75,0x66,0x41,0x76,0x61,0x69,0x6c,0x61,0x62,
0x6c,0x65,0x4f,0x70,0x4d,0x6f,0x64,0x65,0x73,0x12,
0x2f,0x0a,0x05,0x4d,0x6f,0x64,0x65,0x73,0x18,0x01,
0x20,0x03,0x28,0x0b,0x32,0x19,0x2e,0x6d,0x72,0x63,
0x73,0x12,0x24,0x0a,0x0d,0x41,0x76,0x61,0x69,0x6c,
0x61,0x62,0x6c,0x65,0x41,0x78,0x65,0x73,0x18,0x03,
0x20,0x01,0x28,0x0d,0x52,0x0d,0x41,0x76,0x61,0x69,
0x6c,0x61,0x62,0x6c,0x65,0x41,0x78,0x65,0x73,0x12,
0x12,0x0a,0x04,0x41,0x78,0x65,0x73,0x18,0x04,0x20,
0x03,0x28,0x11,0x52,0x04,0x41,0x78,0x65,0x73,0x12,
0x1a,0x0a,0x08,0x50,0x4f,0x56,0x43,0x6f,0x75,0x6e,
0x74,0x18,0x05,0x20,0x01,0x28,0x0d,0x52,0x08,0x50,
0x4f,0x56,0x43,0x6f,0x75,0x6e,0x74,0x12,0x12,0x0a,
0x04,0x50,0x4f,0x56,0x73,0x18,0x06,0x20,0x01,0x28,
0x0d,0x52,0x04,0x50,0x4f,0x56,0x73,0x22,0xba,0x01,
0x0a,0x13,0x50,0x72,0x6f,0x74,0x6f,0x62,0x75,0x66,
0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x44,0x61,0x74,
0x61,0x12,0x20,0x0a,0x0b,0x43,0x6f,0x6e,0x74,0x72,
0x6f,0x6c,0x57,0x6f,0x72,0x64,0x18,0x01,0x20,0x01,
0x28,0x0d,0x52,0x0b,0x43,0x6f,0x6e,0x74,0x72,0x6f,
0x6c,0x57,0x6f,0x72,0x64,0x12,0x1c,0x0a,0x09,0x4d,
0x61,0x74,0x63,0x68,0x54,0x69,0x6d,0x65,0x18,0x02,
0x20,0x01,0x28,0x05,0x52,0x09,0x4d,0x61,0x74,0x63,
0x68,0x54,0x69,0x6d,0x65,0x12,0x3d,0x0a,0x09,0x4a,
0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x73,0x18,0x03,
0x20,0x03,0x28,0x0b,0x32,0x1f,0x2e,0x6d,0x72,0x63,
0x2e,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x50,0x72,0x6f,
0x74,0x6f,0x62,0x75,0x66,0x4f,0x70,0x4d,0x6f,0x64,
0x65,0x52,0x05,0x4d,0x6f,0x64,0x65,0x73,0x42,0x0f,
0x0a,0x0d,0x63,0x6f,0x6d,0x2e,0x6d,0x72,0x63,0x2e,
0x70,0x72,0x6f,0x74,0x6f,0x4a,0xa5,0x0f,0x0a,0x06,
0x12,0x04,0x00,0x00,0x3b,0x01,0x0a,0x08,0x0a,0x01,
0x0c,0x12,0x03,0x00,0x00,0x12,0x0a,0x08,0x0a,0x01,
0x02,0x12,0x03,0x02,0x00,0x12,0x0a,0x08,0x0a,0x01,
0x08,0x12,0x03,0x04,0x00,0x26,0x0a,0x09,0x0a,0x02,
0x08,0x01,0x12,0x03,0x04,0x00,0x26,0x0a,0x0a,0x0a,
0x02,0x04,0x00,0x12,0x04,0x06,0x00,0x0e,0x01,0x0a,
0x0a,0x0a,0x03,0x04,0x00,0x01,0x12,0x03,0x06,0x08,
0x1c,0x0a,0x0b,0x0a,0x04,0x04,0x00,0x02,0x00,0x12,
0x03,0x07,0x04,0x1b,0x0a,0x0c,0x0a,0x05,0x04,0x00,
0x02,0x00,0x05,0x12,0x03,0x07,0x04,0x0a,0x0a,0x0c,
0x0a,0x05,0x04,0x00,0x02,0x00,0x01,0x12,0x03,0x07,
0x0b,0x16,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x00,
0x03,0x12,0x03,0x07,0x19,0x1a,0x0a,0x0b,0x0a,0x04,
0x04,0x00,0x02,0x01,0x12,0x03,0x08,0x04,0x17,0x0a,
0x0c,0x0a,0x05,0x04,0x00,0x02,0x01,0x05,0x12,0x03,
0x08,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,
0x01,0x01,0x12,0x03,0x08,0x0b,0x12,0x0a,0x0c,0x0a,
0x05,0x04,0x00,0x02,0x01,0x03,0x12,0x03,0x08,0x15,
0x16,0x0a,0x0b,0x0a,0x04,0x04,0x00,0x02,0x02,0x12,
0x03,0x09,0x04,0x1d,0x0a,0x0c,0x0a,0x05,0x04,0x00,
0x02,0x02,0x04,0x12,0x03,0x09,0x04,0x0c,0x0a,0x0c,
0x0a,0x05,0x04,0x00,0x02,0x02,0x05,0x12,0x03,0x09,
0x0d,0x13,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x02,
0x01,0x12,0x03,0x09,0x14,0x18,0x0a,0x0c,0x0a,0x05,
0x04,0x00,0x02,0x02,0x03,0x12,0x03,0x09,0x1b,0x1c,
0x0a,0x3e,0x0a,0x04,0x04,0x00,0x02,0x03,0x12,0x03,
0x0c,0x04,0x18,0x1a,0x31,0x20,0x45,0x61,0x63,0x68,
0x20,0x50,0x4f,0x56,0x20,0x74,0x61,0x6b,0x65,0x73,
0x20,0x75,0x70,0x20,0x34,0x20,0x62,0x69,0x74,0x73,
0x0a,0x20,0x57,0x65,0x20,0x63,0x61,0x6e,0x20,0x66,
0x69,0x74,0x20,0x38,0x20,0x69,0x6e,0x20,0x68,0x65,
0x72,0x65,0x2e,0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x00,
0x02,0x03,0x05,0x12,0x03,0x0c,0x04,0x0a,0x0a,0x0c,
0x0a,0x05,0x04,0x00,0x02,0x03,0x01,0x12,0x03,0x0c,
0x0b,0x13,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x03,
0x03,0x12,0x03,0x0c,0x16,0x17,0x0a,0x0b,0x0a,0x04,
0x04,0x00,0x02,0x04,0x12,0x03,0x0d,0x04,0x14,0x0a,
0x0c,0x0a,0x05,0x04,0x00,0x02,0x04,0x05,0x12,0x03,
0x0d,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,
0x04,0x01,0x12,0x03,0x0d,0x0b,0x0f,0x0a,0x0c,0x0a,
0x05,0x04,0x00,0x02,0x04,0x03,0x12,0x03,0x0d,0x12,
0x13,0x0a,0x0a,0x0a,0x02,0x04,0x01,0x12,0x04,0x10,
0x00,0x15,0x01,0x0a,0x0a,0x0a,0x03,0x04,0x01,0x01,
0x12,0x03,0x10,0x08,0x1b,0x0a,0x0b,0x0a,0x04,0x04,
0x01,0x02,0x00,0x12,0x03,0x11,0x04,0x1b,0x0a,0x0c,
0x0a,0x05,0x04,0x01,0x02,0x00,0x05,0x12,0x03,0x11,
0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x00,
0x01,0x12,0x03,0x11,0x0b,0x16,0x0a,0x0c,0x0a,0x05,
0x04,0x01,0x02,0x00,0x03,0x12,0x03,0x11,0x19,0x1a,
0x0a,0x0b,0x0a,0x04,0x04,0x01,0x02,0x01,0x12,0x03,
0x12,0x04,0x18,0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,
0x01,0x05,0x12,0x03,0x12,0x04,0x09,0x0a,0x0c,0x0a,
0x05,0x04,0x01,0x02,0x01,0x01,0x12,0x03,0x12,0x0a,
0x13,0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x01,0x03,
0x12,0x03,0x12,0x16,0x17,0x0a,0x0b,0x0a,0x04,0x04,
0x01,0x02,0x02,0x12,0x03,0x13,0x04,0x30,0x0a,0x0c,
0x0a,0x05,0x04,0x01,0x02,0x02,0x04,0x12,0x03,0x13,
0x04,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x02,
0x06,0x12,0x03,0x13,0x0d,0x21,0x0a,0x0c,0x0a,0x05,
0x04,0x01,0x02,0x02,0x01,0x12,0x03,0x13,0x22,0x2b,
0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x02,0x03,0x12,
0x03,0x13,0x2e,0x2f,0x0a,0x0b,0x0a,0x04,0x04,0x01,
0x02,0x03,0x12,0x03,0x14,0x04,0x1e,0x0a,0x0c,0x0a,
0x05,0x04,0x01,0x02,0x03,0x05,0x12,0x03,0x14,0x04,
0x0b,0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x03,0x01,
0x12,0x03,0x14,0x0c,0x19,0x0a,0x0c,0x0a,0x05,0x04,
0x01,0x02,0x03,0x03,0x12,0x03,0x14,0x1c,0x1d,0x0a,
0x0a,0x0a,0x02,0x04,0x02,0x12,0x04,0x17,0x00,0x1f,
0x01,0x0a,0x0a,0x0a,0x03,0x04,0x02,0x01,0x12,0x03,
0x17,0x08,0x22,0x0a,0x0b,0x0a,0x04,0x04,0x02,0x02,
0x00,0x12,0x03,0x18,0x04,0x1c,0x0a,0x0c,0x0a,0x05,
0x04,0x02,0x02,0x00,0x05,0x12,0x03,0x18,0x04,0x0a,
0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x00,0x01,0x12,
0x03,0x18,0x0b,0x17,0x0a,0x0c,0x0a,0x05,0x04,0x02,
0x02,0x00,0x03,0x12,0x03,0x18,0x1a,0x1b,0x0a,0x0b,
0x0a,0x04,0x04,0x02,0x02,0x01,0x12,0x03,0x19,0x04,
0x21,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x01,0x04,
0x12,0x03,0x19,0x04,0x0c,0x0a,0x0c,0x0a,0x05,0x04,
0x02,0x02,0x01,0x05,0x12,0x03,0x19,0x0d,0x12,0x0a,
0x0c,0x0a,0x05,0x04,0x02,0x02,0x01,0x01,0x12,0x03,
0x19,0x13,0x1c,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,
0x01,0x03,0x12,0x03,0x19,0x1f,0x20,0x0a,0x0b,0x0a,
0x04,0x04,0x02,0x02,0x02,0x12,0x03,0x1a,0x04,0x17,
0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x02,0x05,0x12,
0x03,0x1a,0x04,0x08,0x0a,0x0c,0x0a,0x05,0x04,0x02,
0x02,0x02,0x01,0x12,0x03,0x1a,0x09,0x12,0x0a,0x0c,
0x0a,0x05,0x04,0x02,0x02,0x02,0x03,0x12,0x03,0x1a,
0x15,0x16,0x0a,0x0b,0x0a,0x04,0x04,0x02,0x02,0x03,
0x12,0x03,0x1b,0x04,0x1b,0x0a,0x0c,0x0a,0x05,0x04,
0x02,0x02,0x03,0x05,0x12,0x03,0x1b,0x04,0x09,0x0a,
0x0c,0x0a,0x05,0x04,0x02,0x02,0x03,0x01,0x12,0x03,
0x1b,0x0a,0x16,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,
0x03,0x03,0x12,0x03,0x1b,0x19,0x1a,0x0a,0x0b,0x0a,
0x04,0x04,0x02,0x02,0x04,0x12,0x03,0x1c,0x04,0x1a,
0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x04,0x05,0x12,
0x03,0x1c,0x04,0x09,0x0a,0x0c,0x0a,0x05,0x04,0x02,
0x02,0x04,0x01,0x12,0x03,0x1c,0x0a,0x15,0x0a,0x0c,
0x0a,0x05,0x04,0x02,0x02,0x04,0x03,0x12,0x03,0x1c,
0x18,0x19,0x0a,0x0b,0x0a,0x04,0x04,0x02,0x02,0x05,
0x12,0x03,0x1d,0x04,0x17,0x0a,0x0c,0x0a,0x05,0x04,
0x02,0x02,0x05,0x05,0x12,0x03,0x1d,0x04,0x09,0x0a,
0x0c,0x0a,0x05,0x04,0x02,0x02,0x05,0x01,0x12,0x03,
0x1d,0x0a,0x12,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,
0x05,0x03,0x12,0x03,0x1d,0x15,0x16,0x0a,0x0b,0x0a,
0x04,0x04,0x02,0x02,0x06,0x12,0x03,0x1e,0x04,0x1a,
0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x06,0x05,0x12,
0x03,0x1e,0x04,0x09,0x0a,0x0c,0x0a,0x05,0x04,0x02,
0x02,0x06,0x01,0x12,0x03,0x1e,0x0a,0x15,0x0a,0x0c,
0x0a,0x05,0x04,0x02,0x02,0x06,0x03,0x12,0x03,0x1e,
0x18,0x19,0x0a,0x0a,0x0a,0x02,0x04,0x03,0x12,0x04,
0x21,0x00,0x23,0x01,0x0a,0x0a,0x0a,0x03,0x04,0x03,
0x01,0x12,0x03,0x21,0x08,0x22,0x0a,0x0b,0x0a,0x04,
0x04,0x03,0x02,0x00,0x12,0x03,0x22,0x04,0x1e,0x0a,
0x0c,0x0a,0x05,0x04,0x03,0x02,0x00,0x04,0x12,0x03,
0x22,0x04,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x03,0x02,
0x00,0x05,0x12,0x03,0x22,0x0d,0x13,0x0a,0x0c,0x0a,
0x05,0x04,0x03,0x02,0x00,0x01,0x12,0x03,0x22,0x14,
0x19,0x0a,0x0c,0x0a,0x05,0x04,0x03,0x02,0x00,0x03,
0x12,0x03,0x22,0x1c,0x1d,0x0a,0x0a,0x0a,0x02,0x04,
0x04,0x12,0x04,0x25,0x00,0x2a,0x01,0x0a,0x0a,0x0a,
0x03,0x04,0x04,0x01,0x12,0x03,0x25,0x08,0x19,0x0a,
0x0b,0x0a,0x04,0x04,0x04,0x02,0x00,0x12,0x03,0x26,
0x04,0x19,0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,0x00,
0x05,0x12,0x03,0x26,0x04,0x0a,0x0a,0x0c,0x0a,0x05,
0x04,0x04,0x02,0x00,0x01,0x12,0x03,0x26,0x0b,0x14,
0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,0x00,0x03,0x12,
0x03,0x26,0x17,0x18,0x0a,0x0b,0x0a,0x04,0x04,0x04,
0x02,0x01,0x12,0x03,0x27,0x04,0x1a,0x0a,0x0c,0x0a,
0x05,0x04,0x04,0x02,0x01,0x05,0x12,0x03,0x27,0x04,
0x09,0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,0x01,0x01,
0x12,0x03,0x27,0x0a,0x15,0x0a,0x0c,0x0a,0x05,0x04,
0x04,0x02,0x01,0x03,0x12,0x03,0x27,0x18,0x19,0x0a,
0x0b,0x0a,0x04,0x04,0x04,0x02,0x02,0x12,0x03,0x28,
0x04,0x1b,0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,0x02,
0x05,0x12,0x03,0x28,0x04,0x09,0x0a,0x0c,0x0a,0x05,
0x04,0x04,0x02,0x02,0x01,0x12,0x03,0x28,0x0a,0x16,
0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,0x02,0x03,0x12,
0x03,0x28,0x19,0x1a,0x0a,0x0b,0x0a,0x04,0x04,0x04,
0x02,0x03,0x12,0x03,0x29,0x04,0x18,0x0a,0x0c,0x0a,
0x05,0x04,0x04,0x02,0x03,0x05,0x12,0x03,0x29,0x04,
0x09,0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,0x03,0x01,
0x12,0x03,0x29,0x0a,0x13,0x0a,0x0c,0x0a,0x05,0x04,
0x04,0x02,0x03,0x03,0x12,0x03,0x29,0x16,0x17,0x0a,
0x0a,0x0a,0x02,0x04,0x05,0x12,0x04,0x2c,0x00,0x32,
0x01,0x0a,0x0a,0x0a,0x03,0x04,0x05,0x01,0x12,0x03,
0x2c,0x08,0x19,0x0a,0x0b,0x0a,0x04,0x04,0x05,0x02,
0x00,0x12,0x03,0x2d,0x04,0x15,0x0a,0x0c,0x0a,0x05,
0x04,0x05,0x02,0x00,0x05,0x12,0x03,0x2d,0x04,0x08,
0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,0x00,0x01,0x12,
0x03,0x2d,0x09,0x10,0x0a,0x0c,0x0a,0x05,0x04,0x05,
0x02,0x00,0x03,0x12,0x03,0x2d,0x13,0x14,0x0a,0x0b,
0x0a,0x04,0x04,0x05,0x02,0x01,0x12,0x03,0x2e,0x04,
0x19,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,0x01,0x05,
0x12,0x03,0x2e,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,
0x05,0x02,0x01,0x01,0x12,0x03,0x2e,0x0b,0x14,0x0a,
0x0c,0x0a,0x05,0x04,0x05,0x02,0x01,0x03,0x12,0x03,
0x2e,0x17,0x18,0x0a,0x0b,0x0a,0x04,0x04,0x05,0x02,
0x02,0x12,0x03,0x2f,0x04,0x17,0x0a,0x0c,0x0a,0x05,
0x04,0x05,0x02,0x02,0x05,0x12,0x03,0x2f,0x04,0x0a,
0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,0x02,0x01,0x12,
0x03,0x2f,0x0b,0x12,0x0a,0x0c,0x0a,0x05,0x04,0x05,
0x02,0x02,0x03,0x12,0x03,0x2f,0x15,0x16,0x0a,0x0b,
0x0a,0x04,0x04,0x05,0x02,0x03,0x12,0x03,0x30,0x04,
0x18,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,0x03,0x05,
0x12,0x03,0x30,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,
0x05,0x02,0x03,0x01,0x12,0x03,0x30,0x0b,0x13,0x0a,
0x0c,0x0a,0x05,0x04,0x05,0x02,0x03,0x03,0x12,0x03,
0x30,0x16,0x17,0x0a,0x0b,0x0a,0x04,0x04,0x05,0x02,
0x04,0x12,0x03,0x31,0x04,0x19,0x0a,0x0c,0x0a,0x05,
0x04,0x05,0x02,0x04,0x05,0x12,0x03,0x31,0x04,0x0a,
0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,0x04,0x01,0x12,
0x03,0x31,0x0b,0x14,0x0a,0x0c,0x0a,0x05,0x04,0x05,
0x02,0x04,0x03,0x12,0x03,0x31,0x17,0x18,0x0a,0x0a,
0x0a,0x02,0x04,0x06,0x12,0x04,0x34,0x00,0x37,0x01,
0x0a,0x0a,0x0a,0x03,0x04,0x06,0x01,0x12,0x03,0x34,
0x08,0x16,0x0a,0x0b,0x0a,0x04,0x04,0x06,0x02,0x00,
0x12,0x03,0x35,0x04,0x15,0x0a,0x0c,0x0a,0x05,0x04,
0x06,0x02,0x00,0x05,0x12,0x03,0x35,0x04,0x0b,0x0a,
0x0c,0x0a,0x05,0x04,0x06,0x02,0x00,0x01,0x12,0x03,
0x35,0x0c,0x10,0x0a,0x0c,0x0a,0x05,0x04,0x06,0x02,
0x00,0x03,0x12,0x03,0x35,0x13,0x14,0x0a,0x0b,0x0a,
0x04,0x04,0x06,0x02,0x01,0x12,0x03,0x36,0x04,0x14,
0x0a,0x0c,0x0a,0x05,0x04,0x06,0x02,0x01,0x05,0x12,
0x03,0x36,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x06,
0x02,0x01,0x01,0x12,0x03,0x36,0x0b,0x0f,0x0a,0x0c,
0x0a,0x05,0x04,0x06,0x02,0x01,0x03,0x12,0x03,0x36,
0x12,0x13,0x0a,0x0a,0x0a,0x02,0x04,0x07,0x12,0x04,
0x39,0x00,0x3b,0x01,0x0a,0x0a,0x0a,0x03,0x04,0x07,
0x01,0x12,0x03,0x39,0x08,0x20,0x0a,0x0b,0x0a,0x04,
0x04,0x07,0x02,0x00,0x12,0x03,0x3a,0x04,0x26,0x0a,
0x0c,0x0a,0x05,0x04,0x07,0x02,0x00,0x04,0x12,0x03,
0x3a,0x04,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x07,0x02,
0x00,0x06,0x12,0x03,0x3a,0x0d,0x1b,0x0a,0x0c,0x0a,
0x05,0x04,0x07,0x02,0x00,0x01,0x12,0x03,0x3a,0x1c,
0x21,0x0a,0x0c,0x0a,0x05,0x04,0x07,0x02,0x00,0x03,
0x12,0x03,0x3a,0x24,0x25,0x62,0x06,0x70,0x72,0x6f,
0x74,0x6f,0x33,
0x74,0x6f,0x62,0x75,0x66,0x4a,0x6f,0x79,0x73,0x74,
0x69,0x63,0x6b,0x44,0x61,0x74,0x61,0x52,0x09,0x4a,
0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x73,0x12,0x24,
0x0a,0x0d,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,
0x70,0x4d,0x6f,0x64,0x65,0x18,0x04,0x20,0x01,0x28,
0x06,0x52,0x0d,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,
0x4f,0x70,0x4d,0x6f,0x64,0x65,0x22,0x80,0x02,0x0a,
0x1a,0x50,0x72,0x6f,0x74,0x6f,0x62,0x75,0x66,0x4a,
0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x44,0x65,0x73,
0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x12,0x22,0x0a,
0x0c,0x4a,0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x4e,
0x61,0x6d,0x65,0x18,0x01,0x20,0x01,0x28,0x09,0x52,
0x0c,0x4a,0x6f,0x79,0x73,0x74,0x69,0x63,0x6b,0x4e,
0x61,0x6d,0x65,0x12,0x1c,0x0a,0x09,0x41,0x78,0x69,
0x73,0x54,0x79,0x70,0x65,0x73,0x18,0x02,0x20,0x03,
0x28,0x05,0x52,0x09,0x41,0x78,0x69,0x73,0x54,0x79,
0x70,0x65,0x73,0x12,0x1c,0x0a,0x09,0x49,0x73,0x47,
0x61,0x6d,0x65,0x70,0x61,0x64,0x18,0x03,0x20,0x01,
0x28,0x08,0x52,0x09,0x49,0x73,0x47,0x61,0x6d,0x65,
0x70,0x61,0x64,0x12,0x22,0x0a,0x0c,0x4a,0x6f,0x79,
0x73,0x74,0x69,0x63,0x6b,0x54,0x79,0x70,0x65,0x18,
0x04,0x20,0x01,0x28,0x05,0x52,0x0c,0x4a,0x6f,0x79,
0x73,0x74,0x69,0x63,0x6b,0x54,0x79,0x70,0x65,0x12,
0x20,0x0a,0x0b,0x42,0x75,0x74,0x74,0x6f,0x6e,0x43,
0x6f,0x75,0x6e,0x74,0x18,0x05,0x20,0x01,0x28,0x05,
0x52,0x0b,0x42,0x75,0x74,0x74,0x6f,0x6e,0x43,0x6f,
0x75,0x6e,0x74,0x12,0x1a,0x0a,0x08,0x50,0x6f,0x76,
0x43,0x6f,0x75,0x6e,0x74,0x18,0x06,0x20,0x01,0x28,
0x05,0x52,0x08,0x50,0x6f,0x76,0x43,0x6f,0x75,0x6e,
0x74,0x12,0x20,0x0a,0x0b,0x52,0x75,0x6d,0x62,0x6c,
0x65,0x43,0x6f,0x75,0x6e,0x74,0x18,0x07,0x20,0x01,
0x28,0x05,0x52,0x0b,0x52,0x75,0x6d,0x62,0x6c,0x65,
0x43,0x6f,0x75,0x6e,0x74,0x22,0x32,0x0a,0x1a,0x50,
0x72,0x6f,0x74,0x6f,0x62,0x75,0x66,0x4a,0x6f,0x79,
0x73,0x74,0x69,0x63,0x6b,0x52,0x75,0x6d,0x62,0x6c,
0x65,0x44,0x61,0x74,0x61,0x12,0x14,0x0a,0x05,0x56,
0x61,0x6c,0x75,0x65,0x18,0x03,0x20,0x03,0x28,0x0d,
0x52,0x05,0x56,0x61,0x6c,0x75,0x65,0x22,0x95,0x01,
0x0a,0x11,0x50,0x72,0x6f,0x74,0x6f,0x62,0x75,0x66,
0x4d,0x61,0x74,0x63,0x68,0x49,0x6e,0x66,0x6f,0x12,
0x1c,0x0a,0x09,0x45,0x76,0x65,0x6e,0x74,0x4e,0x61,
0x6d,0x65,0x18,0x01,0x20,0x01,0x28,0x09,0x52,0x09,
0x45,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x12,
0x20,0x0a,0x0b,0x4d,0x61,0x74,0x63,0x68,0x4e,0x75,
0x6d,0x62,0x65,0x72,0x18,0x02,0x20,0x01,0x28,0x05,
0x52,0x0b,0x4d,0x61,0x74,0x63,0x68,0x4e,0x75,0x6d,
0x62,0x65,0x72,0x12,0x22,0x0a,0x0c,0x52,0x65,0x70,
0x6c,0x61,0x79,0x4e,0x75,0x6d,0x62,0x65,0x72,0x18,
0x03,0x20,0x01,0x28,0x05,0x52,0x0c,0x52,0x65,0x70,
0x6c,0x61,0x79,0x4e,0x75,0x6d,0x62,0x65,0x72,0x12,
0x1c,0x0a,0x09,0x4d,0x61,0x74,0x63,0x68,0x54,0x79,
0x70,0x65,0x18,0x04,0x20,0x01,0x28,0x05,0x52,0x09,
0x4d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x22,
0x9f,0x01,0x0a,0x11,0x50,0x72,0x6f,0x74,0x6f,0x62,
0x75,0x66,0x45,0x72,0x72,0x6f,0x72,0x49,0x6e,0x66,
0x6f,0x12,0x18,0x0a,0x07,0x49,0x73,0x45,0x72,0x72,
0x6f,0x72,0x18,0x01,0x20,0x01,0x28,0x08,0x52,0x07,
0x49,0x73,0x45,0x72,0x72,0x6f,0x72,0x12,0x1c,0x0a,
0x09,0x45,0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,
0x18,0x02,0x20,0x01,0x28,0x11,0x52,0x09,0x45,0x72,
0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x12,0x18,0x0a,
0x07,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x18,0x03,
0x20,0x01,0x28,0x09,0x52,0x07,0x44,0x65,0x74,0x61,
0x69,0x6c,0x73,0x12,0x1a,0x0a,0x08,0x4c,0x6f,0x63,
0x61,0x74,0x69,0x6f,0x6e,0x18,0x04,0x20,0x01,0x28,
0x09,0x52,0x08,0x4c,0x6f,0x63,0x61,0x74,0x69,0x6f,
0x6e,0x12,0x1c,0x0a,0x09,0x43,0x61,0x6c,0x6c,0x53,
0x74,0x61,0x63,0x6b,0x18,0x05,0x20,0x01,0x28,0x09,
0x52,0x09,0x43,0x61,0x6c,0x6c,0x53,0x74,0x61,0x63,
0x6b,0x22,0x38,0x0a,0x0e,0x50,0x72,0x6f,0x74,0x6f,
0x62,0x75,0x66,0x4f,0x70,0x4d,0x6f,0x64,0x65,0x12,
0x12,0x0a,0x04,0x48,0x61,0x73,0x68,0x18,0x01,0x20,
0x01,0x28,0x06,0x52,0x04,0x48,0x61,0x73,0x68,0x12,
0x12,0x0a,0x04,0x4e,0x61,0x6d,0x65,0x18,0x02,0x20,
0x01,0x28,0x09,0x52,0x04,0x4e,0x61,0x6d,0x65,0x22,
0x4b,0x0a,0x18,0x50,0x72,0x6f,0x74,0x6f,0x62,0x75,
0x66,0x41,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,
0x4f,0x70,0x4d,0x6f,0x64,0x65,0x73,0x12,0x2f,0x0a,
0x05,0x4d,0x6f,0x64,0x65,0x73,0x18,0x01,0x20,0x03,
0x28,0x0b,0x32,0x19,0x2e,0x6d,0x72,0x63,0x2e,0x70,
0x72,0x6f,0x74,0x6f,0x2e,0x50,0x72,0x6f,0x74,0x6f,
0x62,0x75,0x66,0x4f,0x70,0x4d,0x6f,0x64,0x65,0x52,
0x05,0x4d,0x6f,0x64,0x65,0x73,0x42,0x0f,0x0a,0x0d,
0x63,0x6f,0x6d,0x2e,0x6d,0x72,0x63,0x2e,0x70,0x72,
0x6f,0x74,0x6f,0x4a,0xdc,0x0f,0x0a,0x06,0x12,0x04,
0x00,0x00,0x3c,0x01,0x0a,0x08,0x0a,0x01,0x0c,0x12,
0x03,0x00,0x00,0x12,0x0a,0x08,0x0a,0x01,0x02,0x12,
0x03,0x02,0x00,0x12,0x0a,0x08,0x0a,0x01,0x08,0x12,
0x03,0x04,0x00,0x26,0x0a,0x09,0x0a,0x02,0x08,0x01,
0x12,0x03,0x04,0x00,0x26,0x0a,0x0a,0x0a,0x02,0x04,
0x00,0x12,0x04,0x06,0x00,0x0f,0x01,0x0a,0x0a,0x0a,
0x03,0x04,0x00,0x01,0x12,0x03,0x06,0x08,0x1c,0x0a,
0x0b,0x0a,0x04,0x04,0x00,0x02,0x00,0x12,0x03,0x07,
0x04,0x20,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x00,
0x05,0x12,0x03,0x07,0x04,0x0a,0x0a,0x0c,0x0a,0x05,
0x04,0x00,0x02,0x00,0x01,0x12,0x03,0x07,0x0b,0x1b,
0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x00,0x03,0x12,
0x03,0x07,0x1e,0x1f,0x0a,0x0b,0x0a,0x04,0x04,0x00,
0x02,0x01,0x12,0x03,0x08,0x04,0x17,0x0a,0x0c,0x0a,
0x05,0x04,0x00,0x02,0x01,0x05,0x12,0x03,0x08,0x04,
0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x01,0x01,
0x12,0x03,0x08,0x0b,0x12,0x0a,0x0c,0x0a,0x05,0x04,
0x00,0x02,0x01,0x03,0x12,0x03,0x08,0x15,0x16,0x0a,
0x0b,0x0a,0x04,0x04,0x00,0x02,0x02,0x12,0x03,0x09,
0x04,0x1d,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x02,
0x05,0x12,0x03,0x09,0x04,0x0a,0x0a,0x0c,0x0a,0x05,
0x04,0x00,0x02,0x02,0x01,0x12,0x03,0x09,0x0b,0x18,
0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x02,0x03,0x12,
0x03,0x09,0x1b,0x1c,0x0a,0x0b,0x0a,0x04,0x04,0x00,
0x02,0x03,0x12,0x03,0x0a,0x04,0x1d,0x0a,0x0c,0x0a,
0x05,0x04,0x00,0x02,0x03,0x04,0x12,0x03,0x0a,0x04,
0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x03,0x05,
0x12,0x03,0x0a,0x0d,0x13,0x0a,0x0c,0x0a,0x05,0x04,
0x00,0x02,0x03,0x01,0x12,0x03,0x0a,0x14,0x18,0x0a,
0x0c,0x0a,0x05,0x04,0x00,0x02,0x03,0x03,0x12,0x03,
0x0a,0x1b,0x1c,0x0a,0x3e,0x0a,0x04,0x04,0x00,0x02,
0x04,0x12,0x03,0x0d,0x04,0x18,0x1a,0x31,0x20,0x45,
0x61,0x63,0x68,0x20,0x50,0x4f,0x56,0x20,0x74,0x61,
0x6b,0x65,0x73,0x20,0x75,0x70,0x20,0x34,0x20,0x62,
0x69,0x74,0x73,0x0a,0x20,0x57,0x65,0x20,0x63,0x61,
0x6e,0x20,0x66,0x69,0x74,0x20,0x38,0x20,0x69,0x6e,
0x20,0x68,0x65,0x72,0x65,0x2e,0x0a,0x0a,0x0c,0x0a,
0x05,0x04,0x00,0x02,0x04,0x05,0x12,0x03,0x0d,0x04,
0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x04,0x01,
0x12,0x03,0x0d,0x0b,0x13,0x0a,0x0c,0x0a,0x05,0x04,
0x00,0x02,0x04,0x03,0x12,0x03,0x0d,0x16,0x17,0x0a,
0x0b,0x0a,0x04,0x04,0x00,0x02,0x05,0x12,0x03,0x0e,
0x04,0x14,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x05,
0x05,0x12,0x03,0x0e,0x04,0x0a,0x0a,0x0c,0x0a,0x05,
0x04,0x00,0x02,0x05,0x01,0x12,0x03,0x0e,0x0b,0x0f,
0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02,0x05,0x03,0x12,
0x03,0x0e,0x12,0x13,0x0a,0x0a,0x0a,0x02,0x04,0x01,
0x12,0x04,0x11,0x00,0x16,0x01,0x0a,0x0a,0x0a,0x03,
0x04,0x01,0x01,0x12,0x03,0x11,0x08,0x1b,0x0a,0x0b,
0x0a,0x04,0x04,0x01,0x02,0x00,0x12,0x03,0x12,0x04,
0x1b,0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x00,0x05,
0x12,0x03,0x12,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,
0x01,0x02,0x00,0x01,0x12,0x03,0x12,0x0b,0x16,0x0a,
0x0c,0x0a,0x05,0x04,0x01,0x02,0x00,0x03,0x12,0x03,
0x12,0x19,0x1a,0x0a,0x0b,0x0a,0x04,0x04,0x01,0x02,
0x01,0x12,0x03,0x13,0x04,0x18,0x0a,0x0c,0x0a,0x05,
0x04,0x01,0x02,0x01,0x05,0x12,0x03,0x13,0x04,0x09,
0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x01,0x01,0x12,
0x03,0x13,0x0a,0x13,0x0a,0x0c,0x0a,0x05,0x04,0x01,
0x02,0x01,0x03,0x12,0x03,0x13,0x16,0x17,0x0a,0x0b,
0x0a,0x04,0x04,0x01,0x02,0x02,0x12,0x03,0x14,0x04,
0x30,0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x02,0x04,
0x12,0x03,0x14,0x04,0x0c,0x0a,0x0c,0x0a,0x05,0x04,
0x01,0x02,0x02,0x06,0x12,0x03,0x14,0x0d,0x21,0x0a,
0x0c,0x0a,0x05,0x04,0x01,0x02,0x02,0x01,0x12,0x03,
0x14,0x22,0x2b,0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,
0x02,0x03,0x12,0x03,0x14,0x2e,0x2f,0x0a,0x0b,0x0a,
0x04,0x04,0x01,0x02,0x03,0x12,0x03,0x15,0x04,0x1e,
0x0a,0x0c,0x0a,0x05,0x04,0x01,0x02,0x03,0x05,0x12,
0x03,0x15,0x04,0x0b,0x0a,0x0c,0x0a,0x05,0x04,0x01,
0x02,0x03,0x01,0x12,0x03,0x15,0x0c,0x19,0x0a,0x0c,
0x0a,0x05,0x04,0x01,0x02,0x03,0x03,0x12,0x03,0x15,
0x1c,0x1d,0x0a,0x0a,0x0a,0x02,0x04,0x02,0x12,0x04,
0x18,0x00,0x20,0x01,0x0a,0x0a,0x0a,0x03,0x04,0x02,
0x01,0x12,0x03,0x18,0x08,0x22,0x0a,0x0b,0x0a,0x04,
0x04,0x02,0x02,0x00,0x12,0x03,0x19,0x04,0x1c,0x0a,
0x0c,0x0a,0x05,0x04,0x02,0x02,0x00,0x05,0x12,0x03,
0x19,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,
0x00,0x01,0x12,0x03,0x19,0x0b,0x17,0x0a,0x0c,0x0a,
0x05,0x04,0x02,0x02,0x00,0x03,0x12,0x03,0x19,0x1a,
0x1b,0x0a,0x0b,0x0a,0x04,0x04,0x02,0x02,0x01,0x12,
0x03,0x1a,0x04,0x21,0x0a,0x0c,0x0a,0x05,0x04,0x02,
0x02,0x01,0x04,0x12,0x03,0x1a,0x04,0x0c,0x0a,0x0c,
0x0a,0x05,0x04,0x02,0x02,0x01,0x05,0x12,0x03,0x1a,
0x0d,0x12,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x01,
0x01,0x12,0x03,0x1a,0x13,0x1c,0x0a,0x0c,0x0a,0x05,
0x04,0x02,0x02,0x01,0x03,0x12,0x03,0x1a,0x1f,0x20,
0x0a,0x0b,0x0a,0x04,0x04,0x02,0x02,0x02,0x12,0x03,
0x1b,0x04,0x17,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,
0x02,0x05,0x12,0x03,0x1b,0x04,0x08,0x0a,0x0c,0x0a,
0x05,0x04,0x02,0x02,0x02,0x01,0x12,0x03,0x1b,0x09,
0x12,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x02,0x03,
0x12,0x03,0x1b,0x15,0x16,0x0a,0x0b,0x0a,0x04,0x04,
0x02,0x02,0x03,0x12,0x03,0x1c,0x04,0x1b,0x0a,0x0c,
0x0a,0x05,0x04,0x02,0x02,0x03,0x05,0x12,0x03,0x1c,
0x04,0x09,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x03,
0x01,0x12,0x03,0x1c,0x0a,0x16,0x0a,0x0c,0x0a,0x05,
0x04,0x02,0x02,0x03,0x03,0x12,0x03,0x1c,0x19,0x1a,
0x0a,0x0b,0x0a,0x04,0x04,0x02,0x02,0x04,0x12,0x03,
0x1d,0x04,0x1a,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,
0x04,0x05,0x12,0x03,0x1d,0x04,0x09,0x0a,0x0c,0x0a,
0x05,0x04,0x02,0x02,0x04,0x01,0x12,0x03,0x1d,0x0a,
0x15,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x04,0x03,
0x12,0x03,0x1d,0x18,0x19,0x0a,0x0b,0x0a,0x04,0x04,
0x02,0x02,0x05,0x12,0x03,0x1e,0x04,0x17,0x0a,0x0c,
0x0a,0x05,0x04,0x02,0x02,0x05,0x05,0x12,0x03,0x1e,
0x04,0x09,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x05,
0x01,0x12,0x03,0x1e,0x0a,0x12,0x0a,0x0c,0x0a,0x05,
0x04,0x02,0x02,0x05,0x03,0x12,0x03,0x1e,0x15,0x16,
0x0a,0x0b,0x0a,0x04,0x04,0x02,0x02,0x06,0x12,0x03,
0x1f,0x04,0x1a,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,
0x06,0x05,0x12,0x03,0x1f,0x04,0x09,0x0a,0x0c,0x0a,
0x05,0x04,0x02,0x02,0x06,0x01,0x12,0x03,0x1f,0x0a,
0x15,0x0a,0x0c,0x0a,0x05,0x04,0x02,0x02,0x06,0x03,
0x12,0x03,0x1f,0x18,0x19,0x0a,0x0a,0x0a,0x02,0x04,
0x03,0x12,0x04,0x22,0x00,0x24,0x01,0x0a,0x0a,0x0a,
0x03,0x04,0x03,0x01,0x12,0x03,0x22,0x08,0x22,0x0a,
0x0b,0x0a,0x04,0x04,0x03,0x02,0x00,0x12,0x03,0x23,
0x04,0x1e,0x0a,0x0c,0x0a,0x05,0x04,0x03,0x02,0x00,
0x04,0x12,0x03,0x23,0x04,0x0c,0x0a,0x0c,0x0a,0x05,
0x04,0x03,0x02,0x00,0x05,0x12,0x03,0x23,0x0d,0x13,
0x0a,0x0c,0x0a,0x05,0x04,0x03,0x02,0x00,0x01,0x12,
0x03,0x23,0x14,0x19,0x0a,0x0c,0x0a,0x05,0x04,0x03,
0x02,0x00,0x03,0x12,0x03,0x23,0x1c,0x1d,0x0a,0x0a,
0x0a,0x02,0x04,0x04,0x12,0x04,0x26,0x00,0x2b,0x01,
0x0a,0x0a,0x0a,0x03,0x04,0x04,0x01,0x12,0x03,0x26,
0x08,0x19,0x0a,0x0b,0x0a,0x04,0x04,0x04,0x02,0x00,
0x12,0x03,0x27,0x04,0x19,0x0a,0x0c,0x0a,0x05,0x04,
0x04,0x02,0x00,0x05,0x12,0x03,0x27,0x04,0x0a,0x0a,
0x0c,0x0a,0x05,0x04,0x04,0x02,0x00,0x01,0x12,0x03,
0x27,0x0b,0x14,0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,
0x00,0x03,0x12,0x03,0x27,0x17,0x18,0x0a,0x0b,0x0a,
0x04,0x04,0x04,0x02,0x01,0x12,0x03,0x28,0x04,0x1a,
0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,0x01,0x05,0x12,
0x03,0x28,0x04,0x09,0x0a,0x0c,0x0a,0x05,0x04,0x04,
0x02,0x01,0x01,0x12,0x03,0x28,0x0a,0x15,0x0a,0x0c,
0x0a,0x05,0x04,0x04,0x02,0x01,0x03,0x12,0x03,0x28,
0x18,0x19,0x0a,0x0b,0x0a,0x04,0x04,0x04,0x02,0x02,
0x12,0x03,0x29,0x04,0x1b,0x0a,0x0c,0x0a,0x05,0x04,
0x04,0x02,0x02,0x05,0x12,0x03,0x29,0x04,0x09,0x0a,
0x0c,0x0a,0x05,0x04,0x04,0x02,0x02,0x01,0x12,0x03,
0x29,0x0a,0x16,0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,
0x02,0x03,0x12,0x03,0x29,0x19,0x1a,0x0a,0x0b,0x0a,
0x04,0x04,0x04,0x02,0x03,0x12,0x03,0x2a,0x04,0x18,
0x0a,0x0c,0x0a,0x05,0x04,0x04,0x02,0x03,0x05,0x12,
0x03,0x2a,0x04,0x09,0x0a,0x0c,0x0a,0x05,0x04,0x04,
0x02,0x03,0x01,0x12,0x03,0x2a,0x0a,0x13,0x0a,0x0c,
0x0a,0x05,0x04,0x04,0x02,0x03,0x03,0x12,0x03,0x2a,
0x16,0x17,0x0a,0x0a,0x0a,0x02,0x04,0x05,0x12,0x04,
0x2d,0x00,0x33,0x01,0x0a,0x0a,0x0a,0x03,0x04,0x05,
0x01,0x12,0x03,0x2d,0x08,0x19,0x0a,0x0b,0x0a,0x04,
0x04,0x05,0x02,0x00,0x12,0x03,0x2e,0x04,0x15,0x0a,
0x0c,0x0a,0x05,0x04,0x05,0x02,0x00,0x05,0x12,0x03,
0x2e,0x04,0x08,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,
0x00,0x01,0x12,0x03,0x2e,0x09,0x10,0x0a,0x0c,0x0a,
0x05,0x04,0x05,0x02,0x00,0x03,0x12,0x03,0x2e,0x13,
0x14,0x0a,0x0b,0x0a,0x04,0x04,0x05,0x02,0x01,0x12,
0x03,0x2f,0x04,0x19,0x0a,0x0c,0x0a,0x05,0x04,0x05,
0x02,0x01,0x05,0x12,0x03,0x2f,0x04,0x0a,0x0a,0x0c,
0x0a,0x05,0x04,0x05,0x02,0x01,0x01,0x12,0x03,0x2f,
0x0b,0x14,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,0x01,
0x03,0x12,0x03,0x2f,0x17,0x18,0x0a,0x0b,0x0a,0x04,
0x04,0x05,0x02,0x02,0x12,0x03,0x30,0x04,0x17,0x0a,
0x0c,0x0a,0x05,0x04,0x05,0x02,0x02,0x05,0x12,0x03,
0x30,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,
0x02,0x01,0x12,0x03,0x30,0x0b,0x12,0x0a,0x0c,0x0a,
0x05,0x04,0x05,0x02,0x02,0x03,0x12,0x03,0x30,0x15,
0x16,0x0a,0x0b,0x0a,0x04,0x04,0x05,0x02,0x03,0x12,
0x03,0x31,0x04,0x18,0x0a,0x0c,0x0a,0x05,0x04,0x05,
0x02,0x03,0x05,0x12,0x03,0x31,0x04,0x0a,0x0a,0x0c,
0x0a,0x05,0x04,0x05,0x02,0x03,0x01,0x12,0x03,0x31,
0x0b,0x13,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,0x03,
0x03,0x12,0x03,0x31,0x16,0x17,0x0a,0x0b,0x0a,0x04,
0x04,0x05,0x02,0x04,0x12,0x03,0x32,0x04,0x19,0x0a,
0x0c,0x0a,0x05,0x04,0x05,0x02,0x04,0x05,0x12,0x03,
0x32,0x04,0x0a,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x02,
0x04,0x01,0x12,0x03,0x32,0x0b,0x14,0x0a,0x0c,0x0a,
0x05,0x04,0x05,0x02,0x04,0x03,0x12,0x03,0x32,0x17,
0x18,0x0a,0x0a,0x0a,0x02,0x04,0x06,0x12,0x04,0x35,
0x00,0x38,0x01,0x0a,0x0a,0x0a,0x03,0x04,0x06,0x01,
0x12,0x03,0x35,0x08,0x16,0x0a,0x0b,0x0a,0x04,0x04,
0x06,0x02,0x00,0x12,0x03,0x36,0x04,0x15,0x0a,0x0c,
0x0a,0x05,0x04,0x06,0x02,0x00,0x05,0x12,0x03,0x36,
0x04,0x0b,0x0a,0x0c,0x0a,0x05,0x04,0x06,0x02,0x00,
0x01,0x12,0x03,0x36,0x0c,0x10,0x0a,0x0c,0x0a,0x05,
0x04,0x06,0x02,0x00,0x03,0x12,0x03,0x36,0x13,0x14,
0x0a,0x0b,0x0a,0x04,0x04,0x06,0x02,0x01,0x12,0x03,
0x37,0x04,0x14,0x0a,0x0c,0x0a,0x05,0x04,0x06,0x02,
0x01,0x05,0x12,0x03,0x37,0x04,0x0a,0x0a,0x0c,0x0a,
0x05,0x04,0x06,0x02,0x01,0x01,0x12,0x03,0x37,0x0b,
0x0f,0x0a,0x0c,0x0a,0x05,0x04,0x06,0x02,0x01,0x03,
0x12,0x03,0x37,0x12,0x13,0x0a,0x0a,0x0a,0x02,0x04,
0x07,0x12,0x04,0x3a,0x00,0x3c,0x01,0x0a,0x0a,0x0a,
0x03,0x04,0x07,0x01,0x12,0x03,0x3a,0x08,0x20,0x0a,
0x0b,0x0a,0x04,0x04,0x07,0x02,0x00,0x12,0x03,0x3b,
0x04,0x26,0x0a,0x0c,0x0a,0x05,0x04,0x07,0x02,0x00,
0x04,0x12,0x03,0x3b,0x04,0x0c,0x0a,0x0c,0x0a,0x05,
0x04,0x07,0x02,0x00,0x06,0x12,0x03,0x3b,0x0d,0x1b,
0x0a,0x0c,0x0a,0x05,0x04,0x07,0x02,0x00,0x01,0x12,
0x03,0x3b,0x1c,0x21,0x0a,0x0c,0x0a,0x05,0x04,0x07,
0x02,0x00,0x03,0x12,0x03,0x3b,0x24,0x25,0x62,0x06,
0x70,0x72,0x6f,0x74,0x6f,0x33,
};
static const char file_name[] = "MrcComm.proto";
static const char mrc_proto_ProtobufJoystickData_name[] = "mrc.proto.ProtobufJoystickData";

View File

@@ -20,8 +20,9 @@ typedef struct _mrc_proto_ProtobufJoystickData {
static std::string_view msg_name(void) noexcept;
static pb_filedesc_t file_descriptor(void) noexcept;
uint32_t ButtonCount;
uint64_t AvailableButtons;
uint64_t Buttons;
uint32_t AvailableAxes;
pb_callback_t Axes;
/* Each POV takes up 4 bits
We can fit 8 in here. */
@@ -104,7 +105,7 @@ typedef struct _mrc_proto_ProtobufAvailableOpModes {
/* Initializer values for message structs */
#define mrc_proto_ProtobufJoystickData_init_default {0, 0, {{NULL}, NULL}, 0, 0}
#define mrc_proto_ProtobufJoystickData_init_default {0, 0, 0, {{NULL}, NULL}, 0, 0}
#define mrc_proto_ProtobufControlData_init_default {0, 0, {{NULL}, NULL}, 0}
#define mrc_proto_ProtobufJoystickDescriptor_init_default {{{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0, 0, 0}
#define mrc_proto_ProtobufJoystickRumbleData_init_default {{{NULL}, NULL}}
@@ -112,7 +113,7 @@ typedef struct _mrc_proto_ProtobufAvailableOpModes {
#define mrc_proto_ProtobufErrorInfo_init_default {0, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}}
#define mrc_proto_ProtobufOpMode_init_default {0, {{NULL}, NULL}}
#define mrc_proto_ProtobufAvailableOpModes_init_default {{{NULL}, NULL}}
#define mrc_proto_ProtobufJoystickData_init_zero {0, 0, {{NULL}, NULL}, 0, 0}
#define mrc_proto_ProtobufJoystickData_init_zero {0, 0, 0, {{NULL}, NULL}, 0, 0}
#define mrc_proto_ProtobufControlData_init_zero {0, 0, {{NULL}, NULL}, 0}
#define mrc_proto_ProtobufJoystickDescriptor_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0, 0, 0}
#define mrc_proto_ProtobufJoystickRumbleData_init_zero {{{NULL}, NULL}}
@@ -122,11 +123,12 @@ typedef struct _mrc_proto_ProtobufAvailableOpModes {
#define mrc_proto_ProtobufAvailableOpModes_init_zero {{{NULL}, NULL}}
/* Field tags (for use in manual encoding/decoding) */
#define mrc_proto_ProtobufJoystickData_ButtonCount_tag 1
#define mrc_proto_ProtobufJoystickData_AvailableButtons_tag 1
#define mrc_proto_ProtobufJoystickData_Buttons_tag 2
#define mrc_proto_ProtobufJoystickData_Axes_tag 3
#define mrc_proto_ProtobufJoystickData_POVCount_tag 4
#define mrc_proto_ProtobufJoystickData_POVs_tag 5
#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_ProtobufControlData_ControlWord_tag 1
#define mrc_proto_ProtobufControlData_MatchTime_tag 2
#define mrc_proto_ProtobufControlData_Joysticks_tag 3
@@ -154,11 +156,12 @@ typedef struct _mrc_proto_ProtobufAvailableOpModes {
/* Struct field encoding specification for nanopb */
#define mrc_proto_ProtobufJoystickData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UINT32, ButtonCount, 1) \
X(a, STATIC, SINGULAR, UINT64, AvailableButtons, 1) \
X(a, STATIC, SINGULAR, UINT64, Buttons, 2) \
X(a, CALLBACK, REPEATED, SINT32, Axes, 3) \
X(a, STATIC, SINGULAR, UINT32, POVCount, 4) \
X(a, STATIC, SINGULAR, UINT32, POVs, 5)
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)
#define mrc_proto_ProtobufJoystickData_CALLBACK pb_default_field_callback
#define mrc_proto_ProtobufJoystickData_DEFAULT NULL

View File

@@ -82,7 +82,7 @@ std::optional<mrc::ControlData> wpi::Protobuf<mrc::ControlData>::Unpack(
ControlData.ControlWord = ToControlWord(Msg.ControlWord);
ControlData.MatchTime = Msg.MatchTime;
ControlData.CurrentOpMode = Msg.CurrentOpMode;
ControlData.CurrentOpMode = mrc::OpModeHash::FromValue(Msg.CurrentOpMode);
ControlData.SetJoystickCount(Joysticks.size());
for (size_t i = 0; i < ControlData.GetJoystickCount(); i++) {
@@ -101,7 +101,7 @@ bool wpi::Protobuf<mrc::ControlData>::Pack(OutputStream& Stream,
.ControlWord = FromControlWord(Value.ControlWord),
.MatchTime = Value.MatchTime,
.Joysticks = Joysticks.Callback(),
.CurrentOpMode = Value.CurrentOpMode,
.CurrentOpMode = Value.CurrentOpMode.ToValue(),
};
return Stream.Encode(Msg);
@@ -112,8 +112,9 @@ std::optional<mrc::Joystick> wpi::Protobuf<mrc::Joystick>::Unpack(
wpi::UnpackCallback<int16_t, MRC_MAX_NUM_AXES> AxesCb;
mrc_proto_ProtobufJoystickData Msg{
.ButtonCount = 0,
.AvailableButtons = 0,
.Buttons = 0,
.AvailableAxes = 0,
.Axes = AxesCb.Callback(),
.POVCount = 0,
.POVs = 0,
@@ -126,13 +127,15 @@ std::optional<mrc::Joystick> wpi::Protobuf<mrc::Joystick>::Unpack(
auto Axes = AxesCb.Items();
mrc::Joystick Joystick;
Joystick.Axes.SetCount(Axes.size());
Joystick.Axes.SetAvailable(Msg.AvailableAxes);
auto JoystickAxesCount =
(std::min)(Joystick.Axes.GetMaxAvailableCount(), Axes.size());
for (size_t i = 0; i < Joystick.Axes.GetCount(); i++) {
for (size_t i = 0; i < JoystickAxesCount; i++) {
Joystick.Axes.Axes()[i] = Axes[i];
}
Joystick.Buttons.SetCount(Msg.ButtonCount);
Joystick.Buttons.SetAvailable(Msg.AvailableButtons);
Joystick.Buttons.Buttons = Msg.Buttons;
Joystick.Povs.SetCount(Msg.POVCount);
@@ -157,8 +160,9 @@ bool wpi::Protobuf<mrc::Joystick>::Pack(OutputStream& Stream,
}
mrc_proto_ProtobufJoystickData Msg{
.ButtonCount = static_cast<uint32_t>(Value.Buttons.GetCount()),
.AvailableButtons = Value.Buttons.GetAvailable(),
.Buttons = Value.Buttons.Buttons,
.AvailableAxes = Value.Axes.GetAvailable(),
.Axes = AxesCb.Callback(),
.POVCount = static_cast<uint32_t>(Value.Povs.GetCount()),
.POVs = PovsStore,

View File

@@ -30,7 +30,7 @@ std::optional<mrc::OpMode> wpi::Protobuf<mrc::OpMode>::Unpack(
mrc::OpMode OutputData;
OutputData.MoveName(std::move(Name[0]));
OutputData.Hash = Msg.Hash;
OutputData.Hash = mrc::OpModeHash::FromValue(Msg.Hash);
return OutputData;
}
@@ -41,7 +41,7 @@ bool wpi::Protobuf<mrc::OpMode>::Pack(OutputStream& Stream,
wpi::PackCallback EventName{&EventNameStr};
mrc_proto_ProtobufOpMode Msg{
.Hash = Value.Hash,
.Hash = Value.Hash.ToValue(),
.Name = EventName.Callback(),
};

View File

@@ -15,6 +15,7 @@
#include <fmt/format.h>
#include <networktables/BooleanTopic.h>
#include <networktables/IntegerTopic.h>
#include <networktables/NetworkTableInstance.h>
#include <networktables/ProtobufTopic.h>
#include <networktables/StringArrayTopic.h>
@@ -84,6 +85,7 @@ struct SystemServerDriverStation {
nt::ProtobufPublisher<std::vector<mrc::OpMode>> teleopOpModes;
nt::ProtobufPublisher<std::vector<mrc::OpMode>> autoOpModes;
nt::ProtobufPublisher<std::vector<mrc::OpMode>> testOpModes;
nt::IntegerPublisher traceOpModePublisher;
NT_Listener controlDataListener;
@@ -155,20 +157,28 @@ struct SystemServerDriverStation {
.Publish();
std::vector<mrc::OpMode> staticTeleopOpModes;
staticTeleopOpModes.emplace_back(mrc::OpMode{"TeleOp", 2});
staticTeleopOpModes.emplace_back(
mrc::OpMode{"TeleOp", mrc::OpModeHash::MakeTele(2)});
teleopOpModes.Set(staticTeleopOpModes);
std::vector<mrc::OpMode> staticAutoOpModes;
staticAutoOpModes.emplace_back(mrc::OpMode{"Auto", 1});
staticAutoOpModes.emplace_back(
mrc::OpMode{"Auto", mrc::OpModeHash::MakeAuto(1)});
autoOpModes.Set(staticAutoOpModes);
std::vector<mrc::OpMode> staticTestOpModes;
staticTestOpModes.emplace_back(mrc::OpMode{"Test", 3});
staticTestOpModes.emplace_back(
mrc::OpMode{"Test", mrc::OpModeHash::MakeTest(3)});
testOpModes.Set(staticTestOpModes);
ntInst.AddListener(
controlDataSubscriber, NT_EVENT_VALUE_REMOTE | NT_EVENT_UNPUBLISH,
[this](const nt::Event& event) { HandleListener(event); });
traceOpModePublisher =
ntInst.GetIntegerTopic(ROBOT_CURRENT_OPMODE_TRACE_PATH)
.Publish(options);
traceOpModePublisher.GetTopic().SetCached(false);
}
void HandleListener(const nt::Event& event);
@@ -256,7 +266,7 @@ void JoystickDataCache::Update(const mrc::ControlData& data) {
povs[count].povs[i] = newPovs[i];
}
buttons[count].count = newStick.Buttons.GetCount();
buttons[count].count = newStick.Buttons.GetMaxAvailableCount();
buttons[count].buttons = newStick.Buttons.Buttons;
}
}
@@ -567,13 +577,25 @@ void HAL_ObserveUserProgramStarting(void) {
systemServerDs->hasUserCodeReadyPublisher.Set(true);
}
void HAL_ObserveUserProgramDisabled(void) {}
void HAL_ObserveUserProgramDisabled(void) {
systemServerDs->traceOpModePublisher.Set(
mrc::OpModeHash::MakeTele(1, false).ToValue());
}
void HAL_ObserveUserProgramAutonomous(void) {}
void HAL_ObserveUserProgramAutonomous(void) {
auto tVal = mrc::OpModeHash::MakeAuto(2, true).ToValue();
systemServerDs->traceOpModePublisher.Set(tVal);
}
void HAL_ObserveUserProgramTeleop(void) {}
void HAL_ObserveUserProgramTeleop(void) {
auto tVal = mrc::OpModeHash::MakeTele(1, true).ToValue();
systemServerDs->traceOpModePublisher.Set(tVal);
}
void HAL_ObserveUserProgramTest(void) {}
void HAL_ObserveUserProgramTest(void) {
systemServerDs->traceOpModePublisher.Set(
mrc::OpModeHash::MakeTest(3, true).ToValue());
}
HAL_Bool HAL_RefreshDSData(void) {
mrc::ControlData newestData;

View File

@@ -7,6 +7,8 @@
#include <stdint.h>
#include <array>
#include <bit>
#include <limits>
#include <span>
#include <string>
#include <string_view>
@@ -16,55 +18,101 @@
namespace mrc {
struct OpModeTrace {
uint64_t Hash{0};
bool Enabled{false};
bool NoCurrentOpMpode{false};
struct OpModeHash {
uint64_t Hash : 56 = 0;
uint64_t IsAuto : 1 = 0;
uint64_t IsTest : 1 = 0;
uint64_t IsEnabled : 1 = 0;
uint64_t Reserved : 5 = 0;
static OpModeTrace FromValue(uint64_t Value) {
return OpModeTrace{
.Hash = Value & 0x3FFFFFFFFFFFFFFF,
.Enabled = (Value & 0x8000000000000000) == 0,
.NoCurrentOpMpode = (Value & 0x4000000000000000) != 0,
};
static constexpr uint64_t AutoMask = 0x0100000000000000;
static constexpr uint64_t TestMask = 0x0200000000000000;
static constexpr uint64_t EnabledMask = 0x0400000000000000;
static constexpr uint64_t HashMask = 0x00FFFFFFFFFFFFFF;
constexpr static OpModeHash MakeTest(uint64_t Hash, bool Enabled = false) {
OpModeHash FullHash;
FullHash.Hash = Hash & HashMask;
FullHash.IsTest = 1;
FullHash.IsEnabled = Enabled ? 1 : 0;
return FullHash;
}
uint64_t ToValue() const {
uint64_t RetVal = Hash & 0x3FFFFFFFFFFFFFFF;
RetVal |= Enabled ? 0 : 0x8000000000000000;
RetVal |= NoCurrentOpMpode ? 0x4000000000000000 : 0;
constexpr static OpModeHash MakeTele(uint64_t Hash, bool Enabled = false) {
OpModeHash FullHash;
FullHash.Hash = Hash & HashMask;
FullHash.IsEnabled = Enabled ? 1 : 0;
return FullHash;
}
constexpr static OpModeHash MakeAuto(uint64_t Hash, bool Enabled = false) {
OpModeHash FullHash;
FullHash.Hash = Hash & HashMask;
FullHash.IsAuto = 1;
FullHash.IsEnabled = Enabled ? 1 : 0;
return FullHash;
}
constexpr static OpModeHash FromValue(uint64_t Value) {
OpModeHash RetVal;
RetVal.Hash = Value & HashMask;
RetVal.IsAuto = (Value & AutoMask) != 0;
RetVal.IsTest = (Value & TestMask) != 0;
RetVal.IsEnabled = (Value & EnabledMask) != 0;
return RetVal;
}
constexpr uint64_t ToValue() const {
uint64_t RetVal = Hash & HashMask;
RetVal |= IsAuto ? AutoMask : 0;
RetVal |= IsTest ? TestMask : 0;
RetVal |= IsEnabled ? EnabledMask : 0;
return RetVal;
}
};
struct ControlFlags {
uint32_t Enabled : 1;
uint32_t Auto : 1;
uint32_t Test : 1;
uint32_t EStop : 1;
uint32_t FmsConnected : 1;
uint32_t DsConnected : 1;
uint32_t WatchdogActive : 1;
uint32_t Alliance : 6;
uint32_t Reserved : 19;
uint32_t Enabled : 1 = 0;
uint32_t Auto : 1 = 0;
uint32_t Test : 1 = 0;
uint32_t EStop : 1 = 0;
uint32_t FmsConnected : 1 = 0;
uint32_t DsConnected : 1 = 0;
uint32_t WatchdogActive : 1 = 0;
uint32_t Alliance : 6 = 0;
uint32_t Reserved : 19 = 0;
};
struct JoystickAxes {
public:
std::span<int16_t> Axes() { return std::span{AxesStore.data(), GetCount()}; }
std::span<int16_t> Axes() {
return std::span{AxesStore.data(), GetMaxAvailableCount()};
}
std::span<const int16_t> Axes() const {
return std::span{AxesStore.data(), GetCount()};
return std::span{AxesStore.data(), GetMaxAvailableCount()};
}
void SetCount(uint8_t NewCount) {
Count = (std::min)(NewCount, static_cast<uint8_t>(MRC_MAX_NUM_AXES));
void SetAvailable(uint16_t Available) {
AvailableAxes = Available & ((1 << MRC_MAX_NUM_AXES) - 1);
Count = static_cast<uint8_t>(16 - std::countl_zero(AvailableAxes));
}
size_t GetCount() const { return Count; }
uint16_t GetAvailable() const { return AvailableAxes; }
void SetMaxAvailableCount(size_t _Count) {
if (_Count > MRC_MAX_NUM_AXES) {
_Count = MRC_MAX_NUM_AXES;
}
AvailableAxes = (1 << _Count) - 1;
Count = static_cast<uint8_t>(_Count);
}
size_t GetMaxAvailableCount() const { return Count; }
private:
std::array<int16_t, MRC_MAX_NUM_AXES> AxesStore;
std::array<int16_t, MRC_MAX_NUM_AXES> AxesStore{};
uint16_t AvailableAxes{0};
uint8_t Count{0};
};
@@ -83,20 +131,34 @@ struct JoystickPovs {
size_t GetCount() const { return Count; }
private:
std::array<uint8_t, MRC_MAX_NUM_POVS> PovsStore;
std::array<uint8_t, MRC_MAX_NUM_POVS> PovsStore{};
uint8_t Count{0};
};
struct JoystickButtons {
uint64_t Buttons;
uint64_t Buttons{0};
void SetCount(uint8_t NewCount) {
Count = (std::min)(NewCount, static_cast<uint8_t>(MRC_MAX_NUM_BUTTONS));
void SetAvailable(uint64_t Available) {
AvailableButtons = Available;
Count = static_cast<uint8_t>(64 - std::countl_zero(Available));
}
size_t GetCount() const { return Count; }
uint64_t GetAvailable() const { return AvailableButtons; }
void SetMaxAvailableCount(size_t _Count) {
if (_Count > 63) {
AvailableButtons = (std::numeric_limits<uint64_t>::max)();
Count = MRC_MAX_NUM_BUTTONS;
return;
}
AvailableButtons = (1ULL << _Count) - 1;
Count = static_cast<uint8_t>(_Count);
}
size_t GetMaxAvailableCount() const { return Count; }
private:
uint64_t AvailableButtons{0};
uint8_t Count{0};
};
@@ -108,8 +170,8 @@ struct Joystick {
struct ControlData {
ControlFlags ControlWord;
uint16_t MatchTime;
uint64_t CurrentOpMode;
uint16_t MatchTime{0};
OpModeHash CurrentOpMode;
std::span<Joystick> Joysticks() {
return std::span{JoysticksStore.data(), GetJoystickCount()};
@@ -352,13 +414,13 @@ struct ErrorInfo {
};
struct OpMode {
OpMode(std::string_view _Name, uint64_t _Hash) : Hash{_Hash} {
OpMode(std::string_view _Name, OpModeHash _Hash) : Hash(_Hash) {
SetName(_Name);
}
OpMode() = default;
uint64_t Hash{0};
OpModeHash Hash;
void SetName(std::string_view NewName) {
if (NewName.size() > MRC_MAX_OPMODE_LEN) {

View File

@@ -56,7 +56,7 @@
#define MRC_MAX_NUM_JOYSTICKS 6
#define MRC_MAX_NUM_AXES 12
#define MRC_MAX_NUM_POVS 8
#define MRC_MAX_NUM_BUTTONS 32
#define MRC_MAX_NUM_BUTTONS 64
#define MRC_MAX_NUM_RUMBLE 8
#define MRC_MAX_OPMODE_LEN 128
#define MRC_MAX_GAME_SPECIFIC_MESSAGE_LEN 128

View File

@@ -5,13 +5,14 @@ package mrc.proto;
option java_package = "com.mrc.proto";
message ProtobufJoystickData {
uint32 ButtonCount = 1;
uint64 AvailableButtons = 1;
uint64 Buttons = 2;
repeated sint32 Axes = 3;
uint32 AvailableAxes = 3;
repeated sint32 Axes = 4;
// Each POV takes up 4 bits
// We can fit 8 in here.
uint32 POVCount = 4;
uint32 POVs = 5;
uint32 POVCount = 5;
uint32 POVs = 6;
}
message ProtobufControlData {