diff --git a/libraries/AP_HAL_SITL/RCInput.cpp b/libraries/AP_HAL_SITL/RCInput.cpp index 84827f581e..443dd60780 100644 --- a/libraries/AP_HAL_SITL/RCInput.cpp +++ b/libraries/AP_HAL_SITL/RCInput.cpp @@ -26,7 +26,10 @@ uint16_t RCInput::read(uint8_t ch) if (ch >= SITL_RC_INPUT_CHANNELS) { return 0; } - return _override[ch]? _override[ch] : _sitlState->pwm_input[ch]; + if (_override[ch]) { + return _override[ch]; + } + return _sitlState->pwm_input[ch]; } uint8_t RCInput::read(uint16_t* periods, uint8_t len) @@ -35,7 +38,7 @@ uint8_t RCInput::read(uint16_t* periods, uint8_t len) len = SITL_RC_INPUT_CHANNELS; } for (uint8_t i=0; ipwm_input[i]; + periods[i] = read(i); } return 8; } diff --git a/libraries/AP_HAL_SITL/SITL_State.cpp b/libraries/AP_HAL_SITL/SITL_State.cpp index 4650a3922a..8594dfd735 100644 --- a/libraries/AP_HAL_SITL/SITL_State.cpp +++ b/libraries/AP_HAL_SITL/SITL_State.cpp @@ -204,6 +204,10 @@ void SITL_State::_fdm_input(void) uint8_t i; for (i=0; istate.rcin_chan_count) { + // we're using rc from simulator + continue; + } if (pwm_pkt.pwm[i] != 0) { pwm_input[i] = pwm_pkt.pwm[i]; } @@ -268,6 +272,10 @@ void SITL_State::_fdm_input_local(void) if (_sitl) { sitl_model->fill_fdm(_sitl->state); _sitl->update_rate_hz = sitl_model->get_rate_hz(); + + for (uint8_t i=0; i< _sitl->state.rcin_chan_count; i++) { + pwm_input[i] = 1000 + _sitl->state.rcin[i]*1000; + } } if (gimbal != NULL) {