Andrew Tridgell
c868ac5fe4
AP_RCProtocol: return true on initial protocol detection
...
we need to tell the IO firmware that a byte was consumed when we first
detect a protocol as otherwise the next bad byte on DSM will lock us
on the DSM port
2023-05-25 11:33:10 +10:00
Andrew Tridgell
518388c9c3
AP_RCProtocol: on IOMCU don't allow protocol to change once detected
...
this prevents a crash where in-flight noise causes an incorrect
protocol detection, such as DSM for a SBUS input
2023-02-11 09:42:55 +09:00
Peter Barker
402d9708a5
AP_RCProtocol: fix examples
2022-08-19 18:33:58 +10:00
Andy Piper
9b8ea8475d
AP_RCProtocol: reset UART on RX failure for CRSF
...
update CRSF timestamps to use microseconds
implement RX liveness protocol and implement for CRSF
2022-06-15 17:20:36 +10:00
Andrew Tridgell
47590a55ff
AP_RCProtocol: allow changes of serial settings between protocols
...
if we are searching for new protocols then allow for baudrate table
changes
2021-12-21 11:07:44 +11:00
Peter Barker
409147a291
AP_RCProtocol: add support for DJI Fast SBUS
...
It's just SBUS... but with increased opportunities for corruption
2021-11-18 17:19:04 +11:00
Peter Barker
411ed0f50e
AP_RCProtocol: use data structure for serial configurations
2021-11-16 22:06:24 +11:00
Peter Barker
c1cdfb448c
AP_RCProtocol: move uart flow control set out of CRSF code
...
11:32 AM] AndrewTridgell: @Peter Barker we should disable flow control when we first add the uart - none of the RC protocols use flow control
[11:32 AM] AndrewTridgell: the blocking writes call isn't needed
[11:32 AM] Peter Barker: Thanks, I'll make a patch.
2021-11-16 22:06:24 +11:00
Peter Barker
7c774d02bb
AP_RCProtocol: remove pointless 100kbaud speed change
...
added.opened is set to false. Next time we check_added_uart, the baud
rate is unconditionally set in each of the phases. Thus this line has
no effect except to confuse the reader
2021-11-10 07:04:47 +11:00
Andrew Tridgell
67fd862a8c
AP_RCProtocol: check for RC protocol switching enable
...
by default don't allow protocol switching after initial protocol is
found
2021-10-15 19:29:23 -04:00
Hwurzburg
c5f53fc0b6
AP_RCProtocol: add Link Quality reporting to RC protocols
2021-07-16 13:27:38 +10:00
Andy Piper
881fd4f37c
AP_HAL_ChibiOS: use buffered writes for CRSF telemetry
2021-02-03 18:28:28 +11:00
Andy Piper
27d7c73c8e
AP_RCProtocol: rc_protocols_mask must be set before bootstrap occurs
2021-01-04 20:04:19 +11:00
Andrew Tridgell
9fcf36bad9
AP_RCProtocol: save memory in IO firmware
...
disable FPort2 to save memory.
Disable SBUS_NI as it is not needed on IOMCU as it has a dedicated
inverter
2020-12-28 08:27:23 +11:00
Andy Piper
e6d0e38129
AP_RCProtocol: allow handshake to initiate RC connection. Support listen-only SRXL2 devices.
...
only bootstrap when SRXL2 is the only configured protocol (RC_PROTOCOLS=256)
remove spurious 0 initializers
2020-12-16 18:06:49 +11:00
Andrew Tridgell
a8770a5a82
AP_RCProtocol: added FPort2 protocol support
2020-10-28 09:00:34 +11:00
Andrew Tridgell
2779b26e6e
AP_RCProtocol: fixed the "3 good frames" test
...
require 3 consecutive good frames, not 3 frames total, to declare the
weak protocols as detected
2020-08-24 16:32:35 +10:00
Andrew Tridgell
e0ec46f06d
AP_RCProtocol: support a mask of enabled RC protocols
2020-08-24 16:32:35 +10:00
Andy Piper
4e88adf86e
AP_RCProtocol: TBS CRSF implementation
...
refactor rc channels decoding into backend
refactor SBUS to use decode_11bit_channels()
only support big-endian
don't include CRSF in iomcu
2020-07-07 18:48:06 +10:00
Andy Piper
167e1d12d7
AP_RCProtocol: disable flow-control and buffered-writes for SRXL2 uart
...
switched spm_srxl.c to C++ compilation
Correctly set budget for half-duplex writes
Tidy PACKED and other externalities
disable SRXL2 on IOMCU and softserial - SRXL2 is a serial half-duplex protocol-only
fixed buffer overrun in SRXL2 parser
fix bugs in decoder sketch and allow output to SITL
2020-05-05 09:23:15 +10:00
Andy Piper
68c6a3b03d
AP_RCProtocol: SRXL2 support
2020-05-05 09:23:15 +10: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
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
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
PraiseSatan
bad5fb418d
AP_RCProtocol: added ibus RX support to recieve channel data from ibus transmitters.
2019-07-07 20:49:18 +10:00
Tom Pittenger
a597c2972c
AP_RCprotocol: unify singleton naming to _singleton and get_singleton()
2019-02-10 19:09:58 -07: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
a8e6a09903
AP_RCProtocol: expose protocol name mapping
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
87cf160875
AP_RCProtocol: switched SBUS to SoftSerial decoder
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
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
56d0d6b9be
AP_RCProtocol: make singleton
...
used by iomcu
2018-11-07 07:35:45 +11: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
47451be875
AP_RCProtocol: add support for non-inverted s-bus
2018-05-25 12:05:50 +10:00
Andrew Tridgell
bccea9c8b9
AP_RCProtocol: support DSM bind
2018-04-10 17:22:21 +10: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