mirror of https://github.com/ArduPilot/ardupilot
4adb3ddfa2
this allows for an offset in ESC numbering for much more efficient CAN bandwidth usage. For example, on a coaxial OctoQuad quadplane the ESCs are typically setup as outputs 5 to 12. An ideal setup is to split these over 2 CAN buses, with one CAN bus for the top layer and the one bus for the bottom layer (allowing for VTOL flight with one bus failed). Without this offset parameter you would be sending RawCommand messages like this: bus1: [ 0, 0, 0, 0, ESC1, ESC2, ESC3, ESC4 ] bus2: [ 0, 0, 0, 0, 0, 0, 0, 0, ESC1, ESC2, ESC3, ESC4 ] this is very wasteful of bus bandwidth, with bus1 using 3x the bandwidth it should and bus2 using 4x the bandwidth it should (the above will take 3 can frames for bus1, and 4 can frames for bus 2) With this patch you can set: CAN_D1_UC_ESC_OF = 4 CAN_D2_UC_ESC_OF = 8 and you will get this on the bus: bus1: [ ESC1, ESC2, ESC3, ESC4 ] bus2: [ ESC1, ESC2, ESC3, ESC4 ] that takes just 1 can frame per send on each bus |
||
---|---|---|
.. | ||
dsdl | ||
examples/UAVCAN_sniffer | ||
AP_UAVCAN.cpp | ||
AP_UAVCAN.h | ||
AP_UAVCAN_Clock.h | ||
AP_UAVCAN_DNA_Server.cpp | ||
AP_UAVCAN_DNA_Server.h | ||
AP_UAVCAN_IfaceMgr.cpp | ||
AP_UAVCAN_IfaceMgr.h |