mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[hal] Update to new joystick protobuf definitions (#7991)
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user