From d2b8fce25a0450f9cc8ef5dfca47aafa4c856e14 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Fri, 26 Feb 2021 22:10:00 +0530 Subject: [PATCH] AP_KDECAN: map ESC id to servo channel and passthrough pwm Co-authored-by: Siddharth Purohit --- libraries/AP_KDECAN/AP_KDECAN.cpp | 11 ++--------- libraries/AP_KDECAN/AP_KDECAN.h | 2 +- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/libraries/AP_KDECAN/AP_KDECAN.cpp b/libraries/AP_KDECAN/AP_KDECAN.cpp index 4f6cc6b5a9..047800d7fa 100644 --- a/libraries/AP_KDECAN/AP_KDECAN.cpp +++ b/libraries/AP_KDECAN/AP_KDECAN.cpp @@ -570,17 +570,10 @@ void AP_KDECAN::update() if (_rc_out_sem.take(1)) { for (uint8_t i = 0; i < KDECAN_MAX_NUM_ESCS; i++) { if ((_esc_present_bitmask & (1 << i)) == 0) { - continue; - } - - SRV_Channel::Aux_servo_function_t motor_function = SRV_Channels::get_motor_function(i); - - if (SRV_Channels::function_assigned(motor_function)) { - float norm_output = SRV_Channels::get_output_norm(motor_function); - _scaled_output[i] = uint16_t((norm_output + 1.0f) / 2.0f * 2000.0f); - } else { _scaled_output[i] = 0; + continue; } + _scaled_output[i] = SRV_Channels::srv_channel(i)->get_output_pwm(); } _rc_out_sem.give(); diff --git a/libraries/AP_KDECAN/AP_KDECAN.h b/libraries/AP_KDECAN/AP_KDECAN.h index 4947bc9eb7..ce852137d2 100644 --- a/libraries/AP_KDECAN/AP_KDECAN.h +++ b/libraries/AP_KDECAN/AP_KDECAN.h @@ -104,7 +104,7 @@ private: union frame_id_t { - struct { + struct PACKED { uint8_t object_address; uint8_t destination_id; uint8_t source_id;