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 0ee828a250..359b64cef6 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 @@ -22,7 +22,7 @@ static const uint8_t file_descriptor[] { 0x28,0x0d,0x52,0x0b,0x42,0x75,0x74,0x74,0x6f,0x6e, 0x43,0x6f,0x75,0x6e,0x74,0x12,0x18,0x0a,0x07,0x42, 0x75,0x74,0x74,0x6f,0x6e,0x73,0x18,0x02,0x20,0x01, -0x28,0x07,0x52,0x07,0x42,0x75,0x74,0x74,0x6f,0x6e, +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, @@ -140,12 +140,12 @@ static const uint8_t file_descriptor[] { 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,0x18,0x0a, +0x04,0x00,0x02,0x01,0x12,0x03,0x08,0x04,0x17,0x0a, 0x0c,0x0a,0x05,0x04,0x00,0x02,0x01,0x05,0x12,0x03, -0x08,0x04,0x0b,0x0a,0x0c,0x0a,0x05,0x04,0x00,0x02, -0x01,0x01,0x12,0x03,0x08,0x0c,0x13,0x0a,0x0c,0x0a, -0x05,0x04,0x00,0x02,0x01,0x03,0x12,0x03,0x08,0x16, -0x17,0x0a,0x0b,0x0a,0x04,0x04,0x00,0x02,0x02,0x12, +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, 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 e672355a0b..31ac66e5fe 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 @@ -21,7 +21,7 @@ typedef struct _mrc_proto_ProtobufJoystickData { static pb_filedesc_t file_descriptor(void) noexcept; uint32_t ButtonCount; - uint32_t Buttons; + uint64_t Buttons; pb_callback_t Axes; /* Each POV takes up 4 bits We can fit 8 in here. */ @@ -155,7 +155,7 @@ 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, FIXED32, Buttons, 2) \ +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) diff --git a/hal/src/main/native/cpp/proto/ControlDataProto.cpp b/hal/src/main/native/cpp/proto/ControlDataProto.cpp index f073b65bbb..2a185d0d08 100644 --- a/hal/src/main/native/cpp/proto/ControlDataProto.cpp +++ b/hal/src/main/native/cpp/proto/ControlDataProto.cpp @@ -151,7 +151,7 @@ bool wpi::Protobuf::Pack(OutputStream& Stream, wpi::PackCallback AxesCb{Value.Axes.Axes()}; uint32_t PovsStore = 0; - for (size_t i = 0; i < Value.Povs.GetCount(); i++) { + for (int i = static_cast(Value.Povs.GetCount()) - 1; i >= 0; i--) { PovsStore <<= 4; PovsStore |= Value.Povs.Povs()[i] & 0xF; } diff --git a/hal/src/main/native/systemcore/FRCDriverStation.cpp b/hal/src/main/native/systemcore/FRCDriverStation.cpp index f52e0dd671..387a9777df 100644 --- a/hal/src/main/native/systemcore/FRCDriverStation.cpp +++ b/hal/src/main/native/systemcore/FRCDriverStation.cpp @@ -256,8 +256,8 @@ void JoystickDataCache::Update(const mrc::ControlData& data) { povs[count].povs[i] = newPovs[i]; } - buttons->count = newStick.Buttons.GetCount(); - buttons->buttons = newStick.Buttons.Buttons; + buttons[count].count = newStick.Buttons.GetCount(); + buttons[count].buttons = newStick.Buttons.Buttons; } } diff --git a/hal/src/mrc/include/mrc/NetComm.h b/hal/src/mrc/include/mrc/NetComm.h index 44f3c123ae..30ef8bdcc7 100644 --- a/hal/src/mrc/include/mrc/NetComm.h +++ b/hal/src/mrc/include/mrc/NetComm.h @@ -88,7 +88,7 @@ struct JoystickPovs { }; struct JoystickButtons { - uint32_t Buttons; + uint64_t Buttons; void SetCount(uint8_t NewCount) { Count = (std::min)(NewCount, static_cast(MRC_MAX_NUM_BUTTONS)); diff --git a/hal/src/mrc/proto/MrcComm.proto b/hal/src/mrc/proto/MrcComm.proto index b4e9511927..04d5279b37 100644 --- a/hal/src/mrc/proto/MrcComm.proto +++ b/hal/src/mrc/proto/MrcComm.proto @@ -6,7 +6,7 @@ option java_package = "com.mrc.proto"; message ProtobufJoystickData { uint32 ButtonCount = 1; - fixed32 Buttons = 2; + uint64 Buttons = 2; repeated sint32 Axes = 3; // Each POV takes up 4 bits // We can fit 8 in here.