Commit Graph

226 Commits

Author SHA1 Message Date
yaapu
b4bdc76a53 AP_RCProtocol: handle 0x10 and 0x00 frames, check scheduler delay and fix incoming crc
Respond to 0x10 when the rx is controlling bandwidth, else respond only to 0x00
but in this case never exceed a max number of consecutive frames.
Always respond to polling and if necessary send a null frame.
moved delay check after get_telem_data() to account for scheduler time
align incoming to outgoing crc
2020-02-21 09:29:15 +11:00
Andrew Tridgell
8e67c3459a AP_RCProtocol: added multi-channel read() API
and use pulse_input_enable() to disable pulse input when not needed
2020-01-31 11:09:07 +11:00
yaapu
88f0d54574 AP_RCProtocol: fport downlink packet: fixed CRC and added missing PACKED attribute 2020-01-22 06:58:29 +11:00
Peter Barker
4d6f6c09fb AP_RCProtocol: add missing break statement 2020-01-15 13:55:42 +11:00
Andrew Tridgell
74ca9033e2 AP_RCProtocol: fixed support for 22ms multi-frame DSM 2020-01-09 17:38:52 +11:00
Andrew Tridgell
39b738e407 AP_RCProtocol: expand test suite for multi-frame protocols 2020-01-09 17:38:52 +11:00
Andrew Tridgell
5588229f68 AP_RCProtocol: fixed scaling on FPort RSSI
make it match OpenTX
2020-01-09 07:08:11 +11:00
Andrew Tridgell
f8847bf569 AP_RCProtocol: auto-create Frsky_Telem object when needed for FPort 2020-01-02 09:52:57 +11:00
Andrew Tridgell
33182a9f11 AP_RCProtocol: use RC_OPTIONS fport pad option 2020-01-02 09:52:57 +11:00
Andrew Tridgell
fd5ff97b59 AP_RCProtocol: support FPort telemetry data
get SPort data from AP_FrSky_Telem
2020-01-02 09:52:57 +11:00
Andrew Tridgell
a72eaabc96 AP_RCProtocol: support FPort RSSI 2020-01-02 09:52:57 +11:00
Andrew Tridgell
9332c08c46 AP_RCProtocol: added FPort protocol support 2020-01-02 09:52:57 +11:00
Andy Piper
afa232cc7e AP_RCProtocol: fix example compile on macos 2019-12-30 13:02:04 +11:00
Mirko Denecke
fe46dc34d4 AP_RCProtocol: remove duplicated definition from protocol_detected 2019-10-31 08:24:30 +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
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