From 3927fb3107dc0fd5e9b30c34d3f8f80973716559 Mon Sep 17 00:00:00 2001 From: Michael du Breuil Date: Wed, 25 Apr 2018 15:40:54 -0700 Subject: [PATCH] Sub: Remove the usage of RC_Channels::set_overrides() --- ArduSub/joystick.cpp | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/ArduSub/joystick.cpp b/ArduSub/joystick.cpp index b12febb206..6d2026a9f4 100644 --- a/ArduSub/joystick.cpp +++ b/ArduSub/joystick.cpp @@ -53,8 +53,6 @@ void Sub::init_joystick() void Sub::transform_manual_control_to_rc_override(int16_t x, int16_t y, int16_t z, int16_t r, uint16_t buttons) { - int16_t channels[11]; - float rpyScale = 0.4*gain; // Scale -1000-1000 to -400-400 with gain float throttleScale = 0.8*gain*g.throttle_gain; // Scale 0-1000 to 0-800 times gain int16_t rpyCenter = 1500; @@ -93,35 +91,33 @@ void Sub::transform_manual_control_to_rc_override(int16_t x, int16_t y, int16_t rollTrim = y * rpyScale; } - channels[0] = constrain_int16(pitchTrim + rpyCenter,1100,1900); // pitch - channels[1] = constrain_int16(rollTrim + rpyCenter,1100,1900); // roll + RC_Channels::set_override(0, constrain_int16(pitchTrim + rpyCenter,1100,1900)); // pitch + RC_Channels::set_override(1, constrain_int16(rollTrim + rpyCenter,1100,1900)); // roll - channels[2] = constrain_int16((z+zTrim)*throttleScale+throttleBase,1100,1900); // throttle - channels[3] = constrain_int16(r*rpyScale+rpyCenter,1100,1900); // yaw + RC_Channels::set_override(2, constrain_int16((z+zTrim)*throttleScale+throttleBase,1100,1900)); // throttle + RC_Channels::set_override(3, constrain_int16(r*rpyScale+rpyCenter,1100,1900)); // yaw // maneuver mode: if (roll_pitch_flag == 0) { // adjust forward and lateral with joystick input instead of roll and pitch - channels[4] = constrain_int16((x+xTrim)*rpyScale+rpyCenter,1100,1900); // forward for ROV - channels[5] = constrain_int16((y+yTrim)*rpyScale+rpyCenter,1100,1900); // lateral for ROV + RC_Channels::set_override(4, constrain_int16((x+xTrim)*rpyScale+rpyCenter,1100,1900)); // forward for ROV + RC_Channels::set_override(5, constrain_int16((y+yTrim)*rpyScale+rpyCenter,1100,1900)); // lateral for ROV } else { // neutralize forward and lateral input while we are adjusting roll and pitch - channels[4] = constrain_int16(xTrim*rpyScale+rpyCenter,1100,1900); // forward for ROV - channels[5] = constrain_int16(yTrim*rpyScale+rpyCenter,1100,1900); // lateral for ROV + RC_Channels::set_override(4, constrain_int16(xTrim*rpyScale+rpyCenter,1100,1900)); // forward for ROV + RC_Channels::set_override(5, constrain_int16(yTrim*rpyScale+rpyCenter,1100,1900)); // lateral for ROV } - channels[6] = cam_pan; // camera pan - channels[7] = cam_tilt; // camera tilt - channels[8] = lights1; // lights 1 - channels[9] = lights2; // lights 2 - channels[10] = video_switch; // video switch + RC_Channels::set_override(6, cam_pan); // camera pan + RC_Channels::set_override(7, cam_tilt); // camera tilt + RC_Channels::set_override(8, lights1); // lights 1 + RC_Channels::set_override(9, lights2); // lights 2 + RC_Channels::set_override(10, video_switch); // video switch // Store old x, y, z values for use in input hold logic x_last = x; y_last = y; z_last = z; - - RC_Channels::set_overrides(channels, 11); } void Sub::handle_jsbutton_press(uint8_t button, bool shift, bool held) @@ -682,18 +678,15 @@ void Sub::default_js_buttons() void Sub::set_neutral_controls() { - int16_t channels[11]; for (uint8_t i = 0; i < 6; i++) { - channels[i] = 1500; + RC_Channels::set_override(i, 1500); } for (uint8_t i = 6; i < 11; i++) { - channels[i] = 0xffff; + RC_Channels::set_override(i, 0xffff); } - RC_Channels::set_overrides(channels, 10); - // Clear pitch/roll trim settings pitchTrim = 0; rollTrim = 0;