Commit Graph

188 Commits

Author SHA1 Message Date
bugobliterator 27b202e984 AP_Periph: make can broadcast threadsafe, like can_printf call from lua thread 2024-09-16 19:45:24 +10:00
Thomas Watson dcd34dd39e AP_Periph: clean up node ID parameter handling
Properly document the range and behavior.

Rename storage variable as it doesn't connect to the DNA preferred ID
feature.
2024-09-10 12:36:34 +10:00
Thomas Watson ebcb753acc AP_Periph: reject allocation of broadcast node ID
It is technically legal to receive an "allocation" of the broadcast node
ID. Fortunately, this was already ignored by `canardSetLocalNodeID`,
though it would trigger an assertion failure if those were enabled.

Fix by rejecting that ID. There is effectively no change in behavior
(except possibly fixes using moving baseline GPSes) but the code now
correctly ignores that ID and retries the allocation as it did before.
2024-09-10 12:31:19 +10:00
Iampete1 0b551ed7bc AP_Periph: add support for sending extended ESC status 2024-08-20 09:14:11 +10:00
Thomas Watson f2f1ac39cf AP_Periph: remove redundant DroneCAN packet buffer initialization
The <msg>_encode method always zeros the buffer up to <msg>_MAX_SIZE
bytes so there is no need to do it before calling the function.

Saves at least 8 bytes per instance.
2024-08-03 19:02:39 +10:00
Andrew Tridgell 94841dd608 Tools: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Iampete1 6dcb0af697 AP_Periph: add support for streaming dedicated RPM message 2024-05-02 20:25:38 +10:00
Michael du Breuil 81d7240bd9 AP_Periph: fix can mirroring 2024-04-05 10:53:38 +11:00
Peter Barker 7e1a3ae4dc Tools: allow forwards/backwards for DroneCAN type autoconfig
ArduPilot configures a connected DroneCAN GPS based on its GPS Type.

Given parameter name changes, ArduPilot must be able to configure both new and old AP_Periphs, and new AP_Periphs have to cope with being configured by old ArduPilots.
2024-03-19 19:50:12 +11:00
Andrew Tridgell 7790b1ec71 AP_Periph: map MAV_SEVERITY to DroneCAN debug levels 2024-02-22 15:03:01 +11:00
Andrew Tridgell 50332ab23f AP_Periph: check decode for DNA message 2024-02-11 16:48:52 +11:00
Gone4Dirt 26bfedb956 AP_Periph: Send generic equipment temperature data 2024-01-30 10:13:35 +11:00
Andrew Tridgell 9bb29aec36 AP_Periph: ensure no external flash in periph
bootloader protocol cannot support it in its current form
2024-01-21 12:30:08 +11:00
Andrew Tridgell b8e14c166f AP_Periph: fixed SITL build 2024-01-21 12:30:08 +11:00
Andrew Tridgell 38d7af450f AP_Periph: prevent wrap of free memory in VSSC 2024-01-21 12:30:08 +11:00
Andrew Tridgell 9904dca558 AP_Periph: added reboot link to web UI 2024-01-21 12:30:08 +11:00
Peter Barker a77df87b01 Tools: rename sim_periph_gps to sim_gps_universal, recreate sim_periph_gps 2024-01-16 12:16:35 +11:00
Iampete1 a5f2076d21 Tools: AP_Periph: add support for relay via incoming hardpoint command 2024-01-10 18:29:24 +11:00
Peter Barker 3bd8f1a3df AP_Periph: rename rx-protocol-stats ins local to avoid conflict with ins singleton 2024-01-03 11:43:43 +11:00
Andrew Tridgell cd72dcb73f AP_Periph: use a 1s deadline for packets
this fixes an issue with early discard of packets on MCUs with small
number of transmit slots and higher packet send count
2023-12-19 18:56:46 +11:00
Andy Piper 8718261f27 AP_Periph: add CAN_TERMINATE for software driven termination 2023-11-23 12:18:29 -08:00
bugobliterator ec2e92de30 AP_Periph: solve a potential case where last_transmit_us can change inside irqs 2023-11-02 15:55:21 +11:00
Michael du Breuil 6897dd08ef Tools: AP_Periph: Add CAN_MIRROR
This allows us to mirror CAN traffic between ports on demand.
2023-09-19 12:17:28 +10:00
Tom Pittenger ea207c4b4a AP_Periph: add AP_PERIPH_SAFTEY_SWITCH_ENABLED 2023-09-19 09:29:26 +10:00
Andrew Tridgell a732f846e6 AP_Periph: moved CAN_APP_NODE_NAME to AP_Periph.h
needed by battery driver
2023-09-05 06:56:51 +10:00
Andrew Tridgell 78faa5c6b0 AP_Periph: implement can inface masking per message
this prevents sending duplicate messages on an interface when a send
fails on a 2nd interface
2023-09-05 06:56:51 +10:00
Andrew Tridgell 5c8a29b47e AP_Periph: detect dead interfaces in CAN transmit logic
when an interface has not managed to send a packet for 2s then no
longer consider a failed send a reason to keep the packet in the
transmit queue
2023-09-05 06:56:51 +10:00
Andrew Tridgell 0c38dada6c AP_Periph: re-structure peripheral code
split into separate cpp files and avoid static functions
2023-09-01 13:04:59 +10:00
Tom Pittenger 4f2344f397 AP_Peirph: fix battery parameters 2023-08-28 09:14:33 -07:00
Andrew Tridgell 5566ed979d AP_Periph: fixed default CAN node name
use org.ardupilot.BOARD_NAME
2023-08-26 21:12:42 +10:00
Andrew Tridgell 698e38e849 AP_Periph: allow SITL periph with more devices 2023-08-24 13:06:40 +10:00
Andrew Tridgell c151d9bc3d Tools: removed native_millis/micros 2023-08-24 13:06:40 +10:00
Peter Barker ee0a49bb7c AP_Periph: add support for DroneCAN RCInput packets 2023-08-19 20:27:24 +10:00
Tom Pittenger 09de840c8e AP_Periph: add support for RawAirData.Pitot_temperature 2023-08-11 13:20:51 -07:00
Andrew Tridgell 1a4d87bc45 AP_Periph: fixed build with cAN term defines and single CAN 2023-08-01 11:38:03 +10:00
Peter Barker 3c46db5261 AP_Periph: rename ins locals to avoid conflict with ins member variable 2023-08-01 11:37:14 +10:00
Andrew Tridgell 946840cc99 AP_Periph: added targetted tunnel message for CAN serial passthru
this allows for remote control of serial devices over DroneCAN
2023-07-12 17:06:02 +10:00
bugobliterator b6605f5877 AP_Periph: add CAN and Protocol statistics send 2023-07-10 12:56:37 +10:00
Peter Barker 30dea46cc5 AP_Periph: make canard_broadcast non-static
so it can be used from other files in AP_Periph
2023-07-05 14:37:51 +10:00
Peter Barker 0f1de63d7c AP_Periph: move ADSB CAN handling into adsb.cpp 2023-07-05 14:37:51 +10:00
Andrew Tridgell a7d51898da AP_Periph: raise CAN priorty of MovingBaseline data
and raise CAN buffer size for lots of movingbaseline data
2023-06-27 10:32:43 +10:00
Peter Barker 5a33f870c0 Tools: use HAL_PROXIMITY_ENABLED in place of HAL_PERIPH_ENABLE_PRX
boolean truth rather than defines, and simplifies code
2023-06-08 11:53:01 +10:00
Michael du Breuil 3fd2865857 Tools: AP_Periph: fix building of hwesc telem
This was broken by the APD support
2023-05-31 15:08:01 +10:00
Michael du Breuil e2d0cc55d0 AP_Periph: Support APD ESC telemetry 2023-05-25 17:35:27 -07:00
Michael du Breuil 584a1f8c49 Tools: AP_Periph: Reduce the priority of outdoing ADS-B messages
We consume these at line rate from the transciever, don't allow this to
cause unnecessary congestion on the bus, as it may be used for flight
critical functions. A more proper solution would be to behave more like
the actual AP_ADSB library, and simple rate limit how often we send any
updates out to the host device, as well as filtering for distance, but
that requires more information then is currently readily available.
2023-05-25 16:59:32 -07:00
Peter Barker ddcfe5e734 Tools: move and rename CAN Driver_Type enumeration 2023-04-20 08:53:46 +10:00
Andrew Tridgell c7231240c8 Tools: rename more variables, types and defines 2023-04-11 10:31:31 +10:00
Andrew Tridgell 7b4e4889c7 AP_Periph: use generated decoder for FW update and actuators 2023-04-10 14:46:54 +10:00
Andrew Tridgell 119b0b15f1 AP_Periph: cope with mixed bxCAN and CANFD packets
this allows for runtime switching of CANFD enable, while supporting
incoming bxCAN packets in CANFD mode
2023-04-10 14:46:54 +10:00
Peter Barker 7995bc5175 Tools: add and use option to compile SLCAN support out of code 2023-03-15 19:08:09 +11:00