Commit Graph

79 Commits

Author SHA1 Message Date
Pradeep CK c7216c05b8 AP_DroneCAN: addition of ESC extended status message
- Conditional compilation definition : AP_EXTENDED_ESC_TELEM_ENABLE
 - ESCX log structure
 - Update functionalities for ESCX status message
 - ESCX DroneCAN callback
2024-08-06 10:57:36 +10:00
Thomas Watson 60a9f1722c AP_DroneCAN: DNA_Server: unify bitmask handling
Put documentation with each bitmask and use the object directly. Node ID
range checks can be removed as the bitmask itself checks and we don't
expect to trip them.

Substantially cleans up the code.
2024-07-30 09:49:43 +10:00
Thomas Watson 56593574a9 AP_DroneCAN: DNA_Server: miscellaneous cleanup 2024-07-30 09:49:43 +10:00
Thomas Watson 5e0bb99dbb AP_DroneCAN: DNA_Server: fix handling of empty entry
Replaces the check for a CRC of 0 with a check that the hwid is 0.
Substantially reduces 1/256 chance that a particular node ID couldn't be
stored.
2024-07-30 09:49:43 +10:00
Thomas Watson 9aeab7b424 AP_DroneCAN: DNA_Server: use 0 as unknown ID
Slightly reduces flash usage and probably is clearer.
2024-07-30 09:49:43 +10:00
Thomas Watson 8d57533f1c AP_DroneCAN: DNA_Server: fix cases involving use of invalid node IDs 2024-07-30 09:49:43 +10:00
Thomas Watson a9317b1a07 AP_DroneCAN: correct and validate allowed NODE range
Node IDs >= 128 don't exist, and IDs 126 and 127 are "reserved for
network maintenance tools" according to the spec.
2024-07-30 09:49:43 +10:00
Thomas Watson 485a9387b1 AP_DroneCAN: DNA_Server: clean up storage failure handling
The StorageManager read_block/write_block methods only return failure if
an out of bounds access is performed. Assert statically that this does
not happen.

Also remove the now-impossible failed to add node state.
2024-07-30 09:49:43 +10:00
Thomas Watson cd8519321b AP_DroneCAN: DNA_Server: search for valid nodes after magic check
Ensures the occupation mask doesn't get populated with junk if the magic
is not valid.
2024-07-30 09:49:43 +10:00
Thomas Watson c1f59186fa AP_DroneCAN: DNA_Server: make reset method private 2024-07-30 09:49:43 +10:00
Andrew Tridgell 35a8f6c7b2 AP_DroneCAN: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell ed8926361f AP_DroneCAN: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Iampete1 3f6ce2dc09 AP_DroneCAN: Serial: map baudrates so param works as expected 2024-05-28 10:27:20 +10:00
Iampete1 982cc3a00f AP_DroneCAN: call RPM subscribe 2024-05-02 20:25:38 +10:00
Peter Barker 75bbff01c1 AP_DroneCAN: move Arming, Beacon and RC_Mapper into ardupilotwaf.py
these were built for all vehicles, so put them in the common list
2024-04-17 18:11:46 +10:00
Patrick José Pereira 3c095706ca DroneCAN_sniffer: Use new default for reboot
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2024-03-12 21:13:41 +11:00
Andrew Tridgell ed27e30f9e AP_DroneCAN: map DroneCAN debug levels to MAV_SEVERITY levels 2024-02-22 15:03:01 +11:00
Iampete1 ff00d562fe AP_DroneCAN: DNA_Server: log driver index in CAND 2024-02-16 21:55:07 +11:00
Iampete1 5fd3be1b75 AP_DroneCAN: add subscribe msgs for TemperatureSensor 2024-01-30 10:13:35 +11:00
Peter Barker dd4d017717 AP_DroneCAN: allow compilation with HAL_LOGGING_ENABLED false 2024-01-17 18:25:55 +11:00
Iampete1 c8a63a1de4 AP_DroneCAN: remove duplicate rgb_led set_timeout_ms and set_priority 2024-01-10 18:29:24 +11:00
Iampete1 69e076605e AP_DroneCAN: support streaming relay hardpoint command 2024-01-10 18:29:24 +11:00
Andrew Tridgell 77fbe1dcfb AP_DroneCAN: don't hold semaphore during CAN send
this mirrors the changes in the networking code, and ensures we don't
hold a semaphore that may be held by the main thread when we are doing
CAN sends
2024-01-10 18:07:29 +11:00
Andrew Tridgell 036ae93cbb AP_DroneCAN: reimplement with BinarySemaphore 2024-01-03 07:37:05 +11:00
Andrew Tridgell ad59f6db01 AP_DroneCAN: support an aux 11 bit protocol with DroneCAN 2023-11-28 11:38:16 +11:00
Thomas Watson 008c0baf5f AP_DroneCAN_sniffer: use get_HAL_mutable() to install new CAN interface
Avoids dubious const_casting.
2023-11-28 08:24:25 +11:00
Andrew Tridgell a725d8b90c AP_DroneCAN: support CAN serial ports
this allows any serial protocol to be mapped to a remote DroneCAN node
2023-11-22 17:19:12 +11:00
Andrew Tridgell 713745ed28 AP_DroneCAN: don't update hobbywing ESC table while armed
some hobbywing ESCs have a bug where requesting the ID table can cause
the ESC to stutter
2023-11-17 16:21:58 +11:00
Andrew Tridgell 4cb2562ee5 AP_DroneCAN: cope with null stats (for SLCAN interface)
this caused a crash on CubeOrange on boot if SLCAN is enabled
2023-11-15 23:52:49 -08:00
bugobliterator fb26bbfc4c AP_DroneCAN: add support for detecting downed link 2023-11-02 15:55:21 +11:00
Mykhailo Kuznietsov e3d9ce3fd0 AP_DroneCAN: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Andrew Tridgell 3ba12d16db AP_DroneCAN: fixed sim on hw build
tested using:

Tools/scripts/sitl-on-hardware/sitl-on-hw.py --board Pixhawk6C --vehicle plane --simclass Plane --frame plane
2023-10-12 18:29:32 +11:00
Randy Mackay 1f11d5f3fc AP_DroneCAN: support string parameters 2023-09-19 10:58:52 +10:00
Andrew Tridgell b33cf11bfb AP_DroneCAN: make himark servo support optional 2023-09-07 08:44:54 +10:00
Peter Barker e7def98195 AP_DroneCAN: use correct define for DroneCAN GPS drivers 2023-09-03 08:43:03 +10:00
Andrew Tridgell 232509ad7a AP_DroneCAN: removed native_millis/micros 2023-08-24 13:06:40 +10:00
Fred Kummer 7c6551af9b AP_DroneCAN: allow sending negative RawCommands to ESCs 2023-08-19 20:27:58 +10:00
Peter Barker 1e8d256bc2 AP_DroneCAN: add support for DroneCAN RCInput packets 2023-08-19 20:27:24 +10:00
Randy Mackay ee07d6bec8 AP_DroneCAN: get/set param timeout after 0.1 sec 2023-08-09 18:10:35 +10:00
Randy Mackay 6fe31396d9 AP_DroneCAN: improve get/set param comments 2023-08-09 18:10:35 +10:00
bugobliterator 34494bb7d1 AP_DroneCAN: pass all the variables to AP_DroneCAN_DNA_Server by value
we were using the values by the AP_DroneCAN object, but the members might
not have been initialised if they are out of order
2023-07-29 08:27:27 +09:00
bugobliterator a0e541893c AP_DroneCAN: add support for sending CAN and Protocol Stats 2023-07-10 12:56:37 +10:00
Tom Pittenger 461671eaf3 AP_DroneCAN: add NotifyState.landing & taking off 2023-07-03 22:44:00 -07:00
Andrew Tridgell 9a68b78973 AP_DroneCAN: allow BRD_SAFETY_MASK to work on CAN ESCs and servos
this allows for testing of a fwd motor or control surfaces while not
allowing for VTOL ESCs to run. This makes CAN actuators behave the
same as direct PWM actuators
2023-07-04 10:40:45 +10:00
Randy Mackay 3bada154e6 AP_DroneCAN: remove unused semaphore 2023-06-27 21:12:20 +10:00
Randy Mackay b975310fda AP_DroneCAN: add xacti gimbal support 2023-06-27 21:12:20 +10:00
Andrew Tridgell 93c1674e1f AP_DroneCAN: set priority and timeout for RGB LEDs 2023-06-24 20:48:08 +10:00
bugobliterator 5a967fd597 AP_DroneCAN: add support for semaphore around allocate/free blocks in libcanard 2023-06-08 10:15:50 +10:00
Andrew Tridgell f99fa6a703 AP_DroneCAN: use separate tx and rx semaphores
this prevents a deadlock on callback for DroneCAN receiver
2023-06-08 10:15:50 +10:00
Andrew Tridgell 3034aef570 AP_DroneCAN: add a delay after an event on process
ensure MCU gives up some time
2023-06-08 10:15:50 +10:00