|
|
|
@ -3,6 +3,7 @@
@@ -3,6 +3,7 @@
|
|
|
|
|
|
|
|
|
|
#include "RCInput.h" |
|
|
|
|
#include <SITL/SITL.h> |
|
|
|
|
#include <AP_RCProtocol/AP_RCProtocol.h> |
|
|
|
|
|
|
|
|
|
using namespace HALSITL; |
|
|
|
|
|
|
|
|
@ -10,10 +11,19 @@ extern const AP_HAL::HAL& hal;
@@ -10,10 +11,19 @@ extern const AP_HAL::HAL& hal;
|
|
|
|
|
|
|
|
|
|
void RCInput::init() |
|
|
|
|
{ |
|
|
|
|
AP::RC().init(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool RCInput::new_input() |
|
|
|
|
{ |
|
|
|
|
if (!using_rc_protocol) { |
|
|
|
|
if (AP::RC().new_input()) { |
|
|
|
|
using_rc_protocol = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (using_rc_protocol) { |
|
|
|
|
return AP::RC().new_input(); |
|
|
|
|
} |
|
|
|
|
if (_sitlState->new_rc_input) { |
|
|
|
|
_sitlState->new_rc_input = false; |
|
|
|
|
return true; |
|
|
|
@ -23,6 +33,9 @@ bool RCInput::new_input()
@@ -23,6 +33,9 @@ bool RCInput::new_input()
|
|
|
|
|
|
|
|
|
|
uint16_t RCInput::read(uint8_t ch) |
|
|
|
|
{ |
|
|
|
|
if (using_rc_protocol) { |
|
|
|
|
return AP::RC().read(ch); |
|
|
|
|
} |
|
|
|
|
if (ch >= num_channels()) { |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
@ -42,6 +55,9 @@ uint8_t RCInput::read(uint16_t* periods, uint8_t len)
@@ -42,6 +55,9 @@ uint8_t RCInput::read(uint16_t* periods, uint8_t len)
|
|
|
|
|
|
|
|
|
|
uint8_t RCInput::num_channels() |
|
|
|
|
{ |
|
|
|
|
if (using_rc_protocol) { |
|
|
|
|
return AP::RC().num_channels(); |
|
|
|
|
} |
|
|
|
|
SITL::SITL *_sitl = AP::sitl(); |
|
|
|
|
if (_sitl) { |
|
|
|
|
return MIN(_sitl->rc_chancount.get(), SITL_RC_INPUT_CHANNELS); |
|
|
|
|