Commit Graph

150 Commits

Author SHA1 Message Date
Andrew Tridgell 988028f765 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-08 10:08:23 +11:00
Peter Barker 2a263972b2 AP_RCProtocol: iterate over array size rather than to last entry
This can move us towards not instantiating backends (having an _num_backends) at some stage.

More typical of what we do throughout the code, and makes the derefernces on the subsequent lines a lot more comfortable to casual browsing.
2023-01-25 09:14:16 +11:00
Peter Barker c139f7c730 AP_RCProtocol: add and use AP_VIDEOTX_ENABLED 2023-01-24 11:03:27 +11:00
Andy Piper 425f2b946e AP_RCProtocol: check for 3 good frames for CRSF
Move get_link_rate() and get_protocol_string() to CRSF protocol
allow ELRS at 420kbaud to be configured
allow CRSF to bootstrap at ELRS desired baudrate
2022-12-22 18:38:31 +00:00
Peter Barker 64193542ed AP_RCProtocol: allow FRSky to be compiled out 2022-11-15 18:44:45 +11:00
Andy Piper c815f04e97 AP_RCProtocol: add has_uart() 2022-10-18 11:20:25 +11: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
Andy Piper fe29324828 AP_RCProtocol: check for bad frames in CRSF decoding. 2022-06-08 17:35:03 +10:00
Andy Piper 89ea5dc12c AP_RCProtocol: flush CRSF telemety writes 2022-04-20 17:38:08 +10:00
Andrew Tridgell 5df38d0298 AP_RCProtocol: added using_uart() method 2022-03-28 17:09:26 +11:00
Andrew Tridgell 522173328c AP_RCProtocol: added failsafe_active() API 2022-03-22 10:30:35 +11:00
Andrew Tridgell 7716754c61 Revert "AP_RCProtocol: change default SBUS frame gap to 4ms"
This reverts commit af9e96c619.

revert as this causes a problem on some receivers such as the Frsky R9

fixes #19899
2022-02-11 08:10:25 +11:00
Andrew Tridgell af9e96c619 AP_RCProtocol: change default SBUS frame gap to 4ms
this is to cope with some newer receivers such as the skydroid H16
which produces SBUS frames with gaps over 2ms

without this change we get can RC failsafes constantly
2022-01-29 15:09:29 +11:00
yaapu 55bfa41d13 AP_RC_Protocol: added ExpressLRS support 2021-12-22 18:48:49 +11:00
yaapu 76bd10bf02 AP_RCProtocol: added custom telemetry frame types and subtypes to debug trace 2021-12-22 18:48:49 +11: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
Jaaaky 91e3441c6d AP_RCProtocol: Fix multi #include's 2021-12-21 10:38:46 +11:00
Hwurzburg eaa557106a AP_RCProtocol: add RC option to report CRSF LQ as RSSI
Co-author: Jules Gilson <julesgilson@yahoo.co.uk>
2021-12-21 10:04:33 +11:00
Andy Piper 5224468ec6 AP_RCProtocol: process CRSF crc per-byte 2021-12-01 19:04:19 +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 5e18f98b8e AP_RCProtocol: number all of the RC Protocols supported
Needed this as soon as we got the RC_PROTOCOL bitmask
2021-11-12 09:00:45 +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
Peter Barker 63f87a863c AP_RCProtocol: use switch statement for 3-frame check
Forces new protocol implementer to consider whether a 3-frame check is
required
2021-11-09 09:06:45 +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
Andrew Tridgell d8c0d82857 AP_RCProtocol: allow DSM bind using uart RX pin directly 2021-10-12 15:47:51 +11:00
Andy Piper 8035b92e6e AP_RCProtocol: increase CRSF frame timeout to account for scheduling delays 2021-08-31 08:18:32 +10:00
Andrew Tridgell 0bdbdcec21 AP_RCProtocol: mark logger Write() calls as streaming where appropriate 2021-08-18 10:20:03 +10:00
Andrew Tridgell 36dcc0d16d AP_RCProtocol: make SBUS frame gap configurable 2021-08-10 10:08:05 +10:00
Andy Piper 293bb7704e AP_RCProtocol: implementation of CRSF v3
add CRSF command frame types
allow CRSF baud rate changes
record CRSF version being processed
2021-08-04 17:26:18 +10:00
Hwurzburg c5f53fc0b6 AP_RCProtocol: add Link Quality reporting to RC protocols 2021-07-16 13:27:38 +10:00
Andy Piper dd310fd12f AP_RCProtocol: move AP_VideoTX to AP_VideoTX 2021-02-23 11:43:32 +11:00
Patrick José Pereira 8f96580e9d AP_RCProtocol: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Andy Piper 881fd4f37c AP_HAL_ChibiOS: use buffered writes for CRSF telemetry 2021-02-03 18:28:28 +11:00
Andy Piper f6a2d20579 AP_RCProtocol: add tracer 250Hz mode 2021-01-20 18:06:24 +11:00
yaapu 5ef20aec27 AP_RCProtocol: added support for passthrough telemetry over crossfire 2021-01-20 18:06:24 +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
yaapu c530df7e31 AP_RCProtocol: added fport2 24ch test 2020-12-01 15:05:02 +11:00
yaapu 7e9458b53a AP_RCProtocol: fport2 fixes
Fixed 16ch fport2 telemetry and enabled bidir support.
Fixed 24ch fport2, had to disable telemetry on 24ch for timing is too tight and telemetry would be unreliable.
2020-12-01 15:05:02 +11:00
Andy Piper 7f3f135dc5 AP_RCProtocol: add debug for further CRSF messages
add better frame debug info to CRSF
2020-11-11 18:13:11 +11:00
Andrew Tridgell 2dd58c8ed1 AP_RCProtocol: send null pkts for FPort2
when we have no data to send, we should send an empty packet to ensure
the receiver schedules us for data as often as possible
2020-10-28 19:51:45 +11:00
Andrew Tridgell 20c4f1950b AP_RCProtocol: added FPort protocol test 2020-10-28 09:00:34 +11:00
Andrew Tridgell df5105e20b AP_RCProtocol: added FPort2 protocol test 2020-10-28 09:00:34 +11:00
Andrew Tridgell a8770a5a82 AP_RCProtocol: added FPort2 protocol support 2020-10-28 09:00:34 +11:00
yaapu 4dec72a230 AP_RCProtocol: added support for frsky fport bidirectional telemetry 2020-10-27 10:17:53 +11:00
yaapu f33d197b16 AP_RCProtocol: fix fport rssi 2020-09-29 09:04:38 +10:00