From 1cfb38b4eedfba16a92fea79352f80bf9ec32216 Mon Sep 17 00:00:00 2001 From: Francisco Ferreira Date: Wed, 18 Jul 2018 05:22:47 +0100 Subject: [PATCH] AP_BoardConfig_CAN: adapt to new CANProtocol interface --- .../AP_BoardConfig/AP_BoardConfig_CAN.cpp | 21 ++----------------- libraries/AP_BoardConfig/AP_BoardConfig_CAN.h | 2 ++ 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/libraries/AP_BoardConfig/AP_BoardConfig_CAN.cpp b/libraries/AP_BoardConfig/AP_BoardConfig_CAN.cpp index 1b361fbd8f..3d0b3d5561 100644 --- a/libraries/AP_BoardConfig/AP_BoardConfig_CAN.cpp +++ b/libraries/AP_BoardConfig/AP_BoardConfig_CAN.cpp @@ -125,8 +125,6 @@ void AP_BoardConfig_CAN::setup_canbus(void) } } - bool any_uavcan_present = false; - if (initret) { for (uint8_t i = 0; i < MAX_NUMBER_OF_CAN_DRIVERS; i++) { if (hal.can_mgr[i] == nullptr) { @@ -142,27 +140,12 @@ void AP_BoardConfig_CAN::setup_canbus(void) AP_HAL::panic("Failed to allocate uavcan %d\n\r", i + 1); continue; } - + AP_Param::load_object_from_eeprom(_var_info_can_protocol[i]._uavcan, AP_UAVCAN::var_info); - hal.can_mgr[i]->set_UAVCAN(_var_info_can_protocol[i]._uavcan); - _var_info_can_protocol[i]._uavcan->set_parent_can_mgr(hal.can_mgr[i]); - - if (_var_info_can_protocol[i]._uavcan->try_init() == true) { - any_uavcan_present = true; - } else { - printf("Failed to initialize uavcan interface %d\n\r", i + 1); - } + _var_info_can_protocol[i]._uavcan->init(i); } } - - if (any_uavcan_present) { - // start UAVCAN working thread - hal.scheduler->create_uavcan_thread(); - - // Delay for magnetometer and barometer discovery - hal.scheduler->delay(5000); - } } } #endif diff --git a/libraries/AP_BoardConfig/AP_BoardConfig_CAN.h b/libraries/AP_BoardConfig/AP_BoardConfig_CAN.h index bb382616ba..d1c3dd910a 100644 --- a/libraries/AP_BoardConfig/AP_BoardConfig_CAN.h +++ b/libraries/AP_BoardConfig/AP_BoardConfig_CAN.h @@ -10,6 +10,8 @@ #if HAL_WITH_UAVCAN #define UAVCAN_PROTOCOL_ENABLE 1 +class AP_UAVCAN; + class AP_BoardConfig_CAN { public: AP_BoardConfig_CAN() {