Commit Graph

48 Commits

Author SHA1 Message Date
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
Andrew Tridgell 301884f7a6 AP_RCProtocol: fixed coverity error in SUMD
CID308356
2018-08-07 13:22:08 +10:00
Michael du Breuil 4aff747b28 AP_RCProtocol: Fix out of bounds write, CID 308323 and 308333 2018-08-07 12:11:49 +10:00
Andrew Tridgell 1dcac14b1e AP_RCProtocol: cleanup code style
using Tools/CodeStyle/ardupilot-astyle.sh
2018-07-20 15:47:18 +10:00
Siddharth Purohit baff7291ce AP_RCProtocol: add support for srxl and st24 protocol 2018-07-20 15:47:18 +10:00
Siddharth Purohit f99bd32b51 RC_Protocol: add detection of sumd protocol over sigread 2018-07-20 15:47:18 +10:00
Alexander Malishev 14db344c12 AP_RCProtocol: improve s-bus parsing
This relax s-bus timing requirement to allow not so perfect signals.
Fixes s-bus on s-bus pin in matekf405-wing
Also fixed comment a bit
2018-06-27 09:10:11 +10:00
Alexander Malishev 9e4ec33277 AP_RCProtocol: add error check for ppm input 2018-06-06 08:23:51 +10:00
Alexander Malishev 47451be875 AP_RCProtocol: add support for non-inverted s-bus 2018-05-25 12:05:50 +10:00
Patrick José Pereira c755d341f4 AP_RCProtocol: Remove unused variable
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2018-05-11 10:47:11 +10:00
Andrew Tridgell bccea9c8b9 AP_RCProtocol: support DSM bind 2018-04-10 17:22:21 +10:00
Andrew Tridgell d6b9ab7756 AP_RCProtocol: tidy up frontend/backend split 2018-01-20 17:40:07 +11:00
Andrew Tridgell ff5e00da32 AP_RCProtocol: fixed DSM decoding 2018-01-20 17:40:07 +11:00
Andrew Tridgell f87668c15c AP_RCProtocol: lock onto a single protocol to reduce CPU cost 2018-01-20 17:40:07 +11:00
Andrew Tridgell 8be59c73c7 AP_RCProtocol: fixed return value when no input 2018-01-20 17:40:07 +11:00
bugobliterator bad9f2b4c9 AP_RCProtocol: add library to process RC signals 2018-01-20 17:40:07 +11:00