From 7e660c2e74d7082b7288aace1a18738280784a1c Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Tue, 10 Jan 2023 00:37:50 +1100 Subject: [PATCH] AP_CANManager: replace libuavcan with libcanard based driver --- libraries/AP_CANManager/AP_CANDriver.cpp | 2 ++ libraries/AP_CANManager/AP_CANManager.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/AP_CANManager/AP_CANDriver.cpp b/libraries/AP_CANManager/AP_CANDriver.cpp index 5e602b1a78..ed5ee7f666 100644 --- a/libraries/AP_CANManager/AP_CANDriver.cpp +++ b/libraries/AP_CANManager/AP_CANDriver.cpp @@ -36,9 +36,11 @@ const AP_Param::GroupInfo AP_CANManager::CANDriver_Params::var_info[] = { // @RebootRequired: True AP_GROUPINFO("PROTOCOL", 1, AP_CANManager::CANDriver_Params, _driver_type, AP_CANManager::Driver_Type_UAVCAN), +#if HAL_ENABLE_LIBUAVCAN_DRIVERS // @Group: UC_ // @Path: ../AP_UAVCAN/AP_UAVCAN.cpp AP_SUBGROUPPTR(_uavcan, "UC_", 2, AP_CANManager::CANDriver_Params, AP_UAVCAN), +#endif #if (APM_BUILD_COPTER_OR_HELI || APM_BUILD_TYPE(APM_BUILD_ArduPlane) || APM_BUILD_TYPE(APM_BUILD_ArduSub)) // @Group: KDE_ diff --git a/libraries/AP_CANManager/AP_CANManager.cpp b/libraries/AP_CANManager/AP_CANManager.cpp index b84a749c05..ab6c437e04 100644 --- a/libraries/AP_CANManager/AP_CANManager.cpp +++ b/libraries/AP_CANManager/AP_CANManager.cpp @@ -202,8 +202,9 @@ void AP_CANManager::init() } // Allocate the set type of Driver +#if HAL_ENABLE_LIBUAVCAN_DRIVERS if (drv_type[drv_num] == Driver_Type_UAVCAN) { - _drivers[drv_num] = _drv_param[drv_num]._uavcan = new AP_UAVCAN; + _drivers[drv_num] = _drv_param[drv_num]._uavcan = new AP_UAVCAN(drv_num); if (_drivers[drv_num] == nullptr) { AP_BoardConfig::allocation_error("uavcan %d", i + 1); @@ -211,7 +212,9 @@ void AP_CANManager::init() } AP_Param::load_object_from_eeprom((AP_UAVCAN*)_drivers[drv_num], AP_UAVCAN::var_info); - } else if (drv_type[drv_num] == Driver_Type_KDECAN) { + } else +#endif + if (drv_type[drv_num] == Driver_Type_KDECAN) { #if (APM_BUILD_COPTER_OR_HELI || APM_BUILD_TYPE(APM_BUILD_ArduPlane) || APM_BUILD_TYPE(APM_BUILD_ArduSub)) // To be replaced with macro saying if KDECAN library is included _drivers[drv_num] = _drv_param[drv_num]._kdecan = new AP_KDECAN;