diff --git a/developerRobot/build.gradle b/developerRobot/build.gradle index bf711d9667..41ca87289f 100644 --- a/developerRobot/build.gradle +++ b/developerRobot/build.gradle @@ -72,7 +72,7 @@ deploy { maxChannels = 4 locations { mdns(SshDeployLocation) { - address = "limelight.local" + address = "robot.local" user = 'systemcore' password = 'systemcore' ipv6 = false diff --git a/hal/src/generated/main/native/cpp/mrc/protobuf/MrcComm.npb.cpp b/hal/src/generated/main/native/cpp/mrc/protobuf/MrcComm.npb.cpp index 359b64cef6..15452fdaab 100644 --- a/hal/src/generated/main/native/cpp/mrc/protobuf/MrcComm.npb.cpp +++ b/hal/src/generated/main/native/cpp/mrc/protobuf/MrcComm.npb.cpp @@ -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"; diff --git a/hal/src/generated/main/native/cpp/mrc/protobuf/MrcComm.npb.h b/hal/src/generated/main/native/cpp/mrc/protobuf/MrcComm.npb.h index 31ac66e5fe..e64716b31d 100644 --- a/hal/src/generated/main/native/cpp/mrc/protobuf/MrcComm.npb.h +++ b/hal/src/generated/main/native/cpp/mrc/protobuf/MrcComm.npb.h @@ -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 diff --git a/hal/src/main/native/cpp/proto/ControlDataProto.cpp b/hal/src/main/native/cpp/proto/ControlDataProto.cpp index 2a185d0d08..65132a8ba8 100644 --- a/hal/src/main/native/cpp/proto/ControlDataProto.cpp +++ b/hal/src/main/native/cpp/proto/ControlDataProto.cpp @@ -82,7 +82,7 @@ std::optional wpi::Protobuf::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::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 wpi::Protobuf::Unpack( wpi::UnpackCallback 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 wpi::Protobuf::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::Pack(OutputStream& Stream, } mrc_proto_ProtobufJoystickData Msg{ - .ButtonCount = static_cast(Value.Buttons.GetCount()), + .AvailableButtons = Value.Buttons.GetAvailable(), .Buttons = Value.Buttons.Buttons, + .AvailableAxes = Value.Axes.GetAvailable(), .Axes = AxesCb.Callback(), .POVCount = static_cast(Value.Povs.GetCount()), .POVs = PovsStore, diff --git a/hal/src/main/native/cpp/proto/OpModeProto.cpp b/hal/src/main/native/cpp/proto/OpModeProto.cpp index 08ab6763c1..1cb9bf6e0b 100644 --- a/hal/src/main/native/cpp/proto/OpModeProto.cpp +++ b/hal/src/main/native/cpp/proto/OpModeProto.cpp @@ -30,7 +30,7 @@ std::optional wpi::Protobuf::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::Pack(OutputStream& Stream, wpi::PackCallback EventName{&EventNameStr}; mrc_proto_ProtobufOpMode Msg{ - .Hash = Value.Hash, + .Hash = Value.Hash.ToValue(), .Name = EventName.Callback(), }; diff --git a/hal/src/main/native/systemcore/FRCDriverStation.cpp b/hal/src/main/native/systemcore/FRCDriverStation.cpp index 387a9777df..676c6fd666 100644 --- a/hal/src/main/native/systemcore/FRCDriverStation.cpp +++ b/hal/src/main/native/systemcore/FRCDriverStation.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include #include @@ -84,6 +85,7 @@ struct SystemServerDriverStation { nt::ProtobufPublisher> teleopOpModes; nt::ProtobufPublisher> autoOpModes; nt::ProtobufPublisher> testOpModes; + nt::IntegerPublisher traceOpModePublisher; NT_Listener controlDataListener; @@ -155,20 +157,28 @@ struct SystemServerDriverStation { .Publish(); std::vector staticTeleopOpModes; - staticTeleopOpModes.emplace_back(mrc::OpMode{"TeleOp", 2}); + staticTeleopOpModes.emplace_back( + mrc::OpMode{"TeleOp", mrc::OpModeHash::MakeTele(2)}); teleopOpModes.Set(staticTeleopOpModes); std::vector staticAutoOpModes; - staticAutoOpModes.emplace_back(mrc::OpMode{"Auto", 1}); + staticAutoOpModes.emplace_back( + mrc::OpMode{"Auto", mrc::OpModeHash::MakeAuto(1)}); autoOpModes.Set(staticAutoOpModes); std::vector 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; diff --git a/hal/src/mrc/include/mrc/NetComm.h b/hal/src/mrc/include/mrc/NetComm.h index 30ef8bdcc7..abd22dc20c 100644 --- a/hal/src/mrc/include/mrc/NetComm.h +++ b/hal/src/mrc/include/mrc/NetComm.h @@ -7,6 +7,8 @@ #include #include +#include +#include #include #include #include @@ -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 Axes() { return std::span{AxesStore.data(), GetCount()}; } + std::span Axes() { + return std::span{AxesStore.data(), GetMaxAvailableCount()}; + } std::span 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(MRC_MAX_NUM_AXES)); + void SetAvailable(uint16_t Available) { + AvailableAxes = Available & ((1 << MRC_MAX_NUM_AXES) - 1); + Count = static_cast(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(_Count); + } + + size_t GetMaxAvailableCount() const { return Count; } private: - std::array AxesStore; + std::array AxesStore{}; + uint16_t AvailableAxes{0}; uint8_t Count{0}; }; @@ -83,20 +131,34 @@ struct JoystickPovs { size_t GetCount() const { return Count; } private: - std::array PovsStore; + std::array 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(MRC_MAX_NUM_BUTTONS)); + void SetAvailable(uint64_t Available) { + AvailableButtons = Available; + Count = static_cast(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::max)(); + Count = MRC_MAX_NUM_BUTTONS; + return; + } + AvailableButtons = (1ULL << _Count) - 1; + Count = static_cast(_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 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) { diff --git a/hal/src/mrc/include/mrc/NtNetComm.h b/hal/src/mrc/include/mrc/NtNetComm.h index 6ae635cd3b..4806c263ff 100644 --- a/hal/src/mrc/include/mrc/NtNetComm.h +++ b/hal/src/mrc/include/mrc/NtNetComm.h @@ -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 diff --git a/hal/src/mrc/proto/MrcComm.proto b/hal/src/mrc/proto/MrcComm.proto index 04d5279b37..84f423f4a2 100644 --- a/hal/src/mrc/proto/MrcComm.proto +++ b/hal/src/mrc/proto/MrcComm.proto @@ -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 {