Commit Graph

79 Commits

Author SHA1 Message Date
Andrew Tridgell
45d82887b3 AP_IOMCU: fixed a safety reset case for IOMCU reset
if IOMCU resets in flight when user had disabled the safety switch
using the button then the IOCMU force safety code was not called
2021-05-25 12:14:01 +10:00
Andrew Tridgell
9d87645c6e AP_IOMCU: fixed event handling bug in IOMCU code
if a a message send fails to IOMCU then we were discarding all
currently pending non-recurring events. This means that states like
oneshot enable would be lost if the IOMCU reset.

We now re-trigger all events that have not yet been handled
2021-02-24 18:21:08 +11:00
Andrew Tridgell
9126579b77 AP_IOMCU: added memory to debug code 2021-02-24 18:21:08 +11:00
Andrew Tridgell
87528f47c8 AP_IOMCU: prevent internal error on bootloader flash
when we flash the bootloader on boards with an IOMCU we expect a long
delay as the CPU stops during the flash
2021-01-27 09:49:35 +11:00
Jaaaky
4ec1c2ea67 AP_IOMCU: Remove duplicate includes from AP_IOMCU.cpp 2020-12-15 10:01:54 +11:00
Andrew Tridgell
fdff355a8a AP_IOMCU: fixed handling of RC ignore failsafe option
this allows for ignoring SBUS failsafe on boards using an IOMCU
2020-08-25 09:53:26 +10:00
Andrew Tridgell
017f005737 AP_IOMCU: pass supported RC protocols to IOMCU 2020-08-24 16:32:35 +10:00
Peter Barker
f1182637a6 AP_IOMCU: use new UARTDriver discard_input method 2020-05-26 09:20:32 +10:00
Andrew Tridgell
fd32dff45a AP_IOMCU: force safety off on IOMCU reset
if safety was forced off previously and we get an IOMCU reset then
force it off when the reset happens so vehicle can keep flying
2020-05-14 18:28:50 +10:00
Peter Barker
f0b38fa11c AP_IOMCU: create and use INTERNAL_ERROR macro so we get line numbers 2020-04-30 13:21:36 +10:00
Peter Barker
e5b634cdd0 AP_IOMCU: add IOMC log message documentation 2020-04-12 08:36:48 +10:00
Andrew Tridgell
ba779c65ad AP_IOMCU: added a health check based on status read errors
if we have more than 1 in 128 read status requests failing then mark
IOMCU unhealthy
2020-01-18 07:13:11 +11:00
Andrew Tridgell
2d02062bfc AP_IOMCU: reduce uart buffer sizes 2020-01-18 07:13:11 +11:00
Stephen Dade
52f2ec34fa AP_IOMCU: Ensure IOMCU does not log if there is no logger 2019-11-20 11:46:34 +11:00
Mark Whitehorn
5276cb7f2b AP_IOMCU: rename sensor_config_error to config_error 2019-11-08 10:14:34 +11:00
Andrew Tridgell
a11f2b5cfb AP_IOCMU: added singleton in AP namespace 2019-11-02 16:31:04 +11:00
Andrew Tridgell
34f5b40919 AP_IOMCU: use crc32_small() in AP_IOMCU
the slower speed is not noticible and this saves 1k ram
2019-10-28 15:53:16 +11:00
Andrew Tridgell
ef1aaa6db0 AP_IOMCU: fixes for modified AP_ROMFS API
need to use AP_ROMFS::free()
2019-10-24 22:03:43 +11:00
Mirko Denecke
12c9e50aef AP_IOMCU: remove unnecessary tabs and whitespaces 2019-10-21 07:57:44 +11:00
Mark Whitehorn
0a6ae60c89 AP_IOMCU: fix IO fast channel mask 2019-10-01 07:13:33 +10:00
Andrew Tridgell
8ef2046f7b AP_IOMCU: use blocking writes to uart
this avoids the issue of arming failing due to a non-zero protocol count
2019-08-17 17:36:41 +10:00
Andrew Tridgell
454717cf6f AP_IOMCU: cleanup IO protocol and add logging
this cleans up the IOMCU protocol structures now we don't need to be
compatible with the old nuttx based protocol and adds logging of IOMCU
errors
2019-08-17 17:36:41 +10:00
Andrew Tridgell
984542fa53 AP_IOMCU: fixed error handling for short packets
this prevents short packets from the IOMCU being processed. A short
enough read could be processed as a valid status packet, which would
lead to invalid values for safety flag and servo voltage

fixes issue #12030
2019-08-17 17:36:41 +10:00
Andrew Tridgell
ef5f83d0b5 AP_IOMCU: remove 2s delay on boot and skip crc check on watchdog
thanks to @Jaaaky for the suggestion in #11232
2019-05-03 13:44:56 +10:00
Andrew Tridgell
6c50feaead AP_IOMCU: improved handling of IOMCU reset
use IOMCU timestamp to detect reset
2019-04-28 07:45:33 +10:00
Andrew Tridgell
af54e8620e AP_IOMCU: prevent startup sync causing an internal error 2019-04-28 07:45:33 +10:00
Andrew Tridgell
c7be7d7343 AP_IOMCU: cope with IOMCU reset 2019-04-22 16:53:35 +10:00
Andrew Tridgell
a6e989e263 AP_IOMCU: fixed shadowed variable warning 2019-02-26 16:18:26 +11:00
Tom Pittenger
28323147ab AP_IOMCU: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
Andrew Tridgell
41264568ba AP_IOMCU: added brushed motor feature bit in protocol 2018-11-30 13:14:14 +11:00
Andrew Tridgell
5771e0a90e AP_IOMCU: added access to RC protocol name 2018-11-07 07:35:45 +11:00
Andrew Tridgell
fab181345c AP_IOMCU: fixed override on RC loss
use mid-stick positions
2018-11-07 07:35:45 +11:00
Andrew Tridgell
a8d91a24b6 AP_IOMCU: fixed compat with nuttx firmwares
this allows older firmwares to change the IO firmware back to a nuttx
based firmware
2018-11-07 07:35:45 +11:00
Andrew Tridgell
184c05bc70 AP_IOMCU: fixed DSM bind 2018-11-07 07:35:45 +11:00
Eugene Shamaev
4d64b86f87 AP_IOMCU: Add binding procedure for DSMx 2018-11-07 07:35:45 +11:00
Andrew Tridgell
beff16abe6 AP_IOMCU: implement manual_rc_mask 2018-11-07 07:35:45 +11:00
Andrew Tridgell
46fcfe0582 AP_IOMCU: removed rc_channel range check
feedback from @WickedShell
2018-11-07 07:35:45 +11:00
Andrew Tridgell
e70a98fa9a AP_IOMCU: support elevon and vtail mixing in failsafe 2018-11-07 07:35:45 +11:00
Andrew Tridgell
285508d568 AP_IOMCU: added initial mixing support
supports aileron, elevator, throttle and rudder
2018-11-07 07:35:45 +11:00
Andrew Tridgell
ec73a7072b AP_IOMCU: use more bandwidth efficient IO read 2018-11-07 07:35:45 +11:00
Andrew Tridgell
191f72d2e6 AP_IOMCU: added mixing structure to protocol 2018-11-07 07:35:45 +11:00
Andrew Tridgell
cab5199da8 AP_IOMCU: fixed a race in event trigger on startup
this fixes the issue with initial safety option state, and with
initial safety mask
2018-11-05 19:24:44 +11:00
Andrew Tridgell
ed48c24600 AP_IOMCU: added shutdown method
this cleans up the reboot process
2018-10-30 13:00:48 +11:00
Andrew Tridgell
ba87856deb AP_IOMCU: fixed build warning 2018-09-19 12:14:15 +10:00
Andrew Tridgell
2c7e27374f AP_IOMCU: use ioevents for oneshot in iofirmware 2018-09-19 12:14:15 +10:00
Andrew Tridgell
037a455784 AP_IOMCU: moved protocol structures to a common header 2018-09-19 12:14:15 +10:00
Siddharth Purohit
19c002baaf AP_IOMCU: add support for iofirmware update 2018-09-19 12:14:15 +10:00
Andrew Tridgell
f22d5f0d40 AP_IOMCU: implement failsafe PWM 2018-09-13 08:15:02 +10:00
Andrew Tridgell
135e37e1f4 AP_IOMCU: cope with IOMCU reset in flight
this copes with IOMCU reset when we have safety forced off
2018-09-04 15:24:12 +10:00
Lucas De Marchi
668c941717 Global: use new version of ARRAY_SIZE 2018-08-04 15:31:55 +10:00