Skip to content

Commit da05841

Browse files
Merge pull request #175 from CWRUbotix/fix-servo-msg-spam
Stop unecessary servo messages
2 parents 59c1c87 + 2833d3a commit da05841

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

src/surface/flight_control/flight_control/mavlink_control_node.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ def send_mavlink_control(self, joy_state: JoystickState) -> None:
254254
)
255255

256256
# Control servo
257+
last_servo_pwm = self.servo_pwm
258+
257259
if SERVO_USE_PRESETS:
258260
if buttons[self.profile.servo_up]:
259261
self.servo_pwm = SERVO_PRESET_UP
@@ -266,19 +268,21 @@ def send_mavlink_control(self, joy_state: JoystickState) -> None:
266268
/ JOYSTICK_POLL_RATE
267269
)
268270
self.servo_pwm = max(min(self.servo_pwm, SERVO_MAX), SERVO_MIN)
269-
self.mavlink.mav.command_long_send(
270-
self.mavlink.target_system,
271-
self.mavlink.target_component,
272-
mavutil.mavlink.MAV_CMD_DO_SET_SERVO,
273-
0,
274-
SERVO_OUTPUT_PIN,
275-
self.servo_pwm,
276-
0,
277-
0,
278-
0,
279-
0,
280-
0,
281-
)
271+
272+
if self.servo_pwm != last_servo_pwm:
273+
self.mavlink.mav.command_long_send(
274+
self.mavlink.target_system,
275+
self.mavlink.target_component,
276+
mavutil.mavlink.MAV_CMD_DO_SET_SERVO,
277+
0,
278+
SERVO_OUTPUT_PIN,
279+
self.servo_pwm,
280+
0,
281+
0,
282+
0,
283+
0,
284+
0,
285+
)
282286

283287
def manip_callback(self, joy_state: JoystickState) -> None:
284288
"""Process a joystick state and send a ros message to open or close a manipulator if

0 commit comments

Comments
 (0)