Commit Graph

65 Commits

Author SHA1 Message Date
Andrew Tridgell a41c846a8c AP_RCProtocol: fixed buffer overflow in st24 parser
found using random data injection in SITL
2020-05-11 18:15:40 +10:00
Andrew Tridgell a5ee318f98 AP_RCProtocol: added multi-channel read() API
and use pulse_input_enable() to disable pulse input when not needed
2020-02-05 10:51:30 +11:00
Andrew Tridgell b95a31ccfc AP_RCProtocol: fixed support for 22ms multi-frame DSM 2020-01-10 18:48:42 +11:00
Andrew Tridgell aa20be4270 AP_RCProtocol: fixed SUMD with 16 channels
with 16 channels it is more than 3ms per frame
2019-09-07 10:02:26 +10:00
Andrew Tridgell c8de2ec9c7 AP_RCProtocol: added update() method for use by SITL 2019-09-06 08:51:45 +10:00
Andrew Tridgell 2b856abdd1 AP_RCProtocol: support an additional uart on RC input
this will allow for any UART to be configured as an additional RC
input source
2019-09-06 08:51:45 +10:00
Mirko Denecke 633eb11bfd AP_RCProtocol: IBUS remove unused field 2019-07-22 09:12:57 +09:00
murata 954e6a0c50 AP_RCProtocol: Match output type and variable type 2019-07-16 10:11:13 +10:00
PraiseSatan bad5fb418d AP_RCProtocol: added ibus RX support to recieve channel data from ibus transmitters. 2019-07-07 20:49:18 +10:00
Andrew Tridgell 0f4c54aaa6 AP_RCProtocol: fixed a overflow in SRXL decoder
thanks to coverity 343308 and Peter for noticing
2019-07-06 08:53:44 +10:00
Peter Barker cbf6d44277 AP_RCProtocol: fix missing-declaration warning in example 2019-06-04 10:25:15 +10:00
murata 987966a6d7 AP_RCProtocol: Change to shared CRC16 method 2019-04-09 12:50:17 +10:00
Peter Barker 807c673b4f AP_RCProtocol: tidy RC option flag handling 2019-04-02 10:16:30 +11:00
Andrew Tridgell 9f1eaf4b37 AP_RCProtocol: fixed RC option check for iofirmware 2019-03-15 14:38:57 +11:00
Andrew Tridgell db9912fd58 AP_RCProtocol: use RC_IGNORE_FAILSAFE 2019-03-15 14:38:57 +11:00
Andrew Tridgell 7b3e8afd4c AP_RCProtocol: added another SUMD test
based on data from Luis from issue #10346
2019-03-04 11:59:04 +11:00
Tom Pittenger a597c2972c AP_RCprotocol: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
Andrew Tridgell 3f25891fea AP_RCProtocol: on DSM sync error don't reset channel count
this fixes the issue noticed by Andreyl in 3.6.5rc1
2019-01-14 12:46:16 +11:00
Andrew Tridgell b7dd255050 AP_RCProtocol: small improvement to SBUS parsing robustness
ensure that if we see a frame gab that we reset input buffer
2018-11-28 10:35:50 +11:00
Andrew Tridgell 5baf4c42ea AP_RCProtocol: fixed decoding of SBUS switch channels
these are not used now, but may be in the future
2018-11-28 10:35:50 +11:00
Andrew Tridgell d4c2945a48 AP_RCProtocol: increased robustness of SBUS parsing
take full advantage of the frame gap to reduce CPU and the chance of a
bad decode
2018-11-27 09:38:18 +11:00
Andrew Tridgell 24b23d6784 AP_RCProtocol: make DSM parsing more robust
this makes DSM parsing much more robust. It fixes an issue with DSM
input for the Solo, where it occasionally saw glitches
2018-11-27 09:38:18 +11:00
Andrew Tridgell 50df8c7e28 AP_RCProtocol: added cmdline RC decoder program 2018-11-27 09:38:18 +11:00
Andrew Tridgell b4c551b56c AP_RCProtocol: expand DSM test to 8 channels 2018-11-15 19:54:36 +11:00
Andrew Tridgell da0301c208 AP_RCProtocol: fixed DSM parser for 8 channels
this ensures we remember channels from the previous frame, avoiding a
bug with more than 7 channels
2018-11-15 19:54:36 +11:00
Andrew Tridgell 137253ac2c AP_RCProtocol: fixed SBUS failsafe
thanks to Nate for spotting this
2018-11-08 20:55:46 +11:00
Andrew Tridgell 8d8853d4b7 AP_RCProtocol: fixed test build on navio 2018-11-07 07:35:45 +11:00
Andrew Tridgell a8e6a09903 AP_RCProtocol: expose protocol name mapping 2018-11-07 07:35:45 +11:00
Andrew Tridgell ae18fd1cef AP_RCProtocol: added SUMD protocol test 2018-11-07 07:35:45 +11:00
Andrew Tridgell 7996259726 AP_RCProtocol: added timeout handling to SUMD 2018-11-07 07:35:45 +11:00
Andrew Tridgell b1e5e0aba9 AP_RCProtocol: convert SUMD and ST24 to SoftSerial 2018-11-07 07:35:45 +11:00
Andrew Tridgell 408db791e3 AP_RCProtocol: added test suite 2018-11-07 07:35:45 +11:00
Andrew Tridgell eb78d4fa26 AP_RCProtocol: added destructor
for use by test suite
2018-11-07 07:35:45 +11:00
Andrew Tridgell 696d4b47a1 AP_RCProtocol: use SoftSerial clock for SRXL 2018-11-07 07:35:45 +11:00
Andrew Tridgell 3bd27ba094 AP_RCProtocol: use SoftSerial for DSM 2018-11-07 07:35:45 +11:00
Andrew Tridgell b93dee7fe6 AP_RCProtocol: switched SRXL to SoftSerial decoder 2018-11-07 07:35:45 +11:00
Andrew Tridgell 87cf160875 AP_RCProtocol: switched SBUS to SoftSerial decoder 2018-11-07 07:35:45 +11:00
Andrew Tridgell b7c4ae8ae9 AP_RCProtocol: added separate soft serial decoder
this will replace the version in each protocol
2018-11-07 07:35:45 +11:00
Andrew Tridgell 7e8b6709ae AP_RCProtocol: improved reliability of DSM vs SRXL detection
base detection on framing, not including failsafe
2018-11-07 07:35:45 +11:00
Andrew Tridgell 53b6f38027 AP_RCProtocol: allow switching between all protocols on IOMCU
this allows searching for uart protocols after losing a pulse based
protocol
2018-11-07 07:35:45 +11:00
Andrew Tridgell eca4fec2aa AP_RCProtocol: use pulses as clock for frame timeout
for SRXL and DSM we should judge a frame timeout from the pulses,
otherwise lag in the DMA capture can cause a false frame drop
2018-11-07 07:35:45 +11:00
Andrew Tridgell faf8f73437 AP_RCProtocol: added process_pulse_list()
this provides more efficient processing of RC pulses
2018-11-07 07:35:45 +11:00
Andrew Tridgell e1385573b1 AP_RCProtocol: return protocol name string 2018-11-07 07:35:45 +11:00
Andrew Tridgell d87bef16a2 AP_RCProtocol: require 3 good frames for weak CRC protocols 2018-11-07 07:35:45 +11:00
Andrew Tridgell 68c9f52b3e AP_RCProtocol: allow selection of protocols for pulse input 2018-11-07 07:35:45 +11:00
Andrew Tridgell 9354aca07d AP_RCProtocol: removed some unnecessary millis calls 2018-11-07 07:35:45 +11:00
Andrew Tridgell baf0be6a56 AP_RCProtocol: added check on baudrate in process_byte()
and support process_byte() in SBUS input
2018-11-07 07:35:45 +11:00
Andrew Tridgell c767828f11 AP_RCProtocol: prevent mixing of byte and pulse input 2018-11-07 07:35:45 +11:00
Andrew Tridgell ae0ccbcea9 AP_RCProtocol: support byte input for DSM 2018-11-07 07:35:45 +11:00
Andrew Tridgell 56d0d6b9be AP_RCProtocol: make singleton
used by iomcu
2018-11-07 07:35:45 +11:00