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;