Commit Graph

20 Commits

Author SHA1 Message Date
Thomas Watson e9e7eba799 AP_DroneCAN: properly convert timeout to deadline for aux frames
The timeout specified for auxiliary driver frames was passed to the
driver where a deadline was expected. The transmission was then started
after its "deadline", thereby causing it to be canceled and the data
lost if the frame could not be sent immediately.

Fix by converting the timeout to a deadline before passing to the
driver. The conversion is done in the Canard interface code as it
already does other conversions from timeouts to deadlines.
2024-10-08 10:35:41 +11:00
Andrew Tridgell ed8926361f AP_DroneCAN: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10: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
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
Andrew Tridgell 232509ad7a AP_DroneCAN: removed native_millis/micros 2023-08-24 13:06:40 +10:00
bugobliterator a0e541893c AP_DroneCAN: add support for sending CAN and Protocol Stats 2023-07-10 12:56:37 +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
Andrew Tridgell dc8366c31e AP_DroneCAN: fixed queue ordering bug in sending DroneCAN frames
this caused RTK RTCM data to be corrupted on send
2023-06-08 10:15:50 +10:00
Andrew Tridgell f0a0a4cfa9 AP_DroneCAN: move tx frame to loop context
prevent contents from previous frame being used
2023-06-08 10:15:50 +10:00
Andrew Tridgell e1dd452b66 AP_DroneCAN: fixed C++ type narrowing warnings 2023-06-08 10:15:50 +10:00
bugobliterator 3dca277488 AP_DroneCAN: use canard cleanup 2023-06-08 10:15:50 +10:00
bugobliterator efe5fb7e69 AP_DroneCAN: push ESC data out immediately and ensure high priority 2023-05-31 17:31:09 +10:00
bugobliterator 0c728972ff AP_DroneCAN: move to using CanardTxTransfer for sending data 2023-04-26 14:08:45 +10:00
bugobliterator b1c4cf9923 AP_DroneCAN: fix DroneCAN run for SITL 2023-04-19 17:26:57 +10:00
Andrew Tridgell 9261f89e39 AP_DroneCAN: rename more variables, types and defines 2023-04-11 10:31:31 +10:00
Andrew Tridgell 53390f3a6f AP_DroneCAN: rename from AP_UAVCAN 2023-04-08 07:11:23 +10:00