diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_BLPing.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_BLPing.cpp index ea3ea3b25a..39a9968b51 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_BLPing.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_BLPing.cpp @@ -53,10 +53,10 @@ */ AP_RangeFinder_BLPing::AP_RangeFinder_BLPing(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance) : AP_RangeFinder_Backend(_state, _params) { + const AP_SerialManager &serial_manager = AP::serialmanager(); uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); if (uart != nullptr) { uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance)); @@ -64,9 +64,9 @@ AP_RangeFinder_BLPing::AP_RangeFinder_BLPing(RangeFinder::RangeFinder_State &_st } // detect if a serial port has been setup to accept rangefinder input -bool AP_RangeFinder_BLPing::detect(AP_SerialManager &serial_manager, uint8_t serial_instance) +bool AP_RangeFinder_BLPing::detect(uint8_t serial_instance) { - return serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; + return AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; } /* diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_BLPing.h b/libraries/AP_RangeFinder/AP_RangeFinder_BLPing.h index 892836cb53..a038122cb9 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_BLPing.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_BLPing.h @@ -11,11 +11,10 @@ public: // constructor AP_RangeFinder_BLPing(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance); // static detection function - static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance); + static bool detect(uint8_t serial_instance); // update state void update(void) override; diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_Benewake.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_Benewake.cpp index cc79085e69..5fefd8c0b9 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_Benewake.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_Benewake.cpp @@ -50,12 +50,12 @@ extern const AP_HAL::HAL& hal; */ AP_RangeFinder_Benewake::AP_RangeFinder_Benewake(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance, benewake_model_type model) : AP_RangeFinder_Backend(_state, _params), model_type(model) { + const AP_SerialManager &serial_manager = AP::serialmanager(); uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); if (uart != nullptr) { uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance)); @@ -67,9 +67,9 @@ AP_RangeFinder_Benewake::AP_RangeFinder_Benewake(RangeFinder::RangeFinder_State trying to take a reading on Serial. If we get a result the sensor is there. */ -bool AP_RangeFinder_Benewake::detect(AP_SerialManager &serial_manager, uint8_t serial_instance) +bool AP_RangeFinder_Benewake::detect(uint8_t serial_instance) { - return serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; + return AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; } // distance returned in reading_cm, signal_ok is set to true if sensor reports a strong signal diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_Benewake.h b/libraries/AP_RangeFinder/AP_RangeFinder_Benewake.h index 30fe23ed95..a59a28450c 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_Benewake.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_Benewake.h @@ -16,12 +16,11 @@ public: // constructor AP_RangeFinder_Benewake(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance, benewake_model_type model); // static detection function - static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance); + static bool detect(uint8_t serial_instance); // update state void update(void) override; diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.cpp index ba96d02904..03ed2ac6d2 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.cpp @@ -27,10 +27,10 @@ extern const AP_HAL::HAL& hal; */ AP_RangeFinder_LeddarOne::AP_RangeFinder_LeddarOne(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance) : AP_RangeFinder_Backend(_state, _params) { + const AP_SerialManager &serial_manager = AP::serialmanager(); uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); if (uart != nullptr) { uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance)); @@ -42,9 +42,9 @@ AP_RangeFinder_LeddarOne::AP_RangeFinder_LeddarOne(RangeFinder::RangeFinder_Stat trying to take a reading on Serial. If we get a result the sensor is there. */ -bool AP_RangeFinder_LeddarOne::detect(AP_SerialManager &serial_manager, uint8_t serial_instance) +bool AP_RangeFinder_LeddarOne::detect(uint8_t serial_instance) { - return serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; + return AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; } // read - return last value measured by sensor diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.h b/libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.h index 8818f7882f..3acfd8777e 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.h @@ -44,11 +44,10 @@ public: // constructor AP_RangeFinder_LeddarOne(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance); // static detection function - static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance); + static bool detect(uint8_t serial_instance); // update state void update(void) override; diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.cpp index 695a8d744d..ece4d08a05 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.cpp @@ -27,10 +27,10 @@ extern const AP_HAL::HAL& hal; */ AP_RangeFinder_LightWareSerial::AP_RangeFinder_LightWareSerial(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance) : AP_RangeFinder_Backend(_state, _params) { + const AP_SerialManager &serial_manager = AP::serialmanager(); uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); if (uart != nullptr) { uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance)); @@ -42,9 +42,9 @@ AP_RangeFinder_LightWareSerial::AP_RangeFinder_LightWareSerial(RangeFinder::Rang trying to take a reading on Serial. If we get a result the sensor is there. */ -bool AP_RangeFinder_LightWareSerial::detect(AP_SerialManager &serial_manager, uint8_t serial_instance) +bool AP_RangeFinder_LightWareSerial::detect(uint8_t serial_instance) { - return serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; + return AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; } // read - return last value measured by sensor diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.h b/libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.h index c67bcf5e15..a9857c1077 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.h @@ -10,11 +10,10 @@ public: // constructor AP_RangeFinder_LightWareSerial(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance); // static detection function - static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance); + static bool detect(uint8_t serial_instance); // update state void update(void) override; diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.cpp index 1b934847dc..2a13702d4b 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.cpp @@ -31,10 +31,10 @@ extern const AP_HAL::HAL& hal; */ AP_RangeFinder_MaxsonarSerialLV::AP_RangeFinder_MaxsonarSerialLV(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance) : AP_RangeFinder_Backend(_state, _params) { + const AP_SerialManager &serial_manager = AP::serialmanager(); uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); if (uart != nullptr) { uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance)); @@ -46,9 +46,9 @@ AP_RangeFinder_MaxsonarSerialLV::AP_RangeFinder_MaxsonarSerialLV(RangeFinder::Ra trying to take a reading on Serial. If we get a result the sensor is there. */ -bool AP_RangeFinder_MaxsonarSerialLV::detect(AP_SerialManager &serial_manager, uint8_t serial_instance) +bool AP_RangeFinder_MaxsonarSerialLV::detect(uint8_t serial_instance) { - return serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; + return AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; } // read - return last value measured by sensor diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.h b/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.h index f1665883de..287a360f3e 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.h @@ -10,11 +10,10 @@ public: // constructor AP_RangeFinder_MaxsonarSerialLV(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance); // static detection function - static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance); + static bool detect(uint8_t serial_instance); // update state void update(void) override; diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_NMEA.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_NMEA.cpp index 2bf783d3ef..6347e357fd 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_NMEA.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_NMEA.cpp @@ -26,11 +26,11 @@ extern const AP_HAL::HAL& hal; // already know that we should setup the rangefinder AP_RangeFinder_NMEA::AP_RangeFinder_NMEA(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance) : AP_RangeFinder_Backend(_state, _params), _distance_m(-1.0f) { + const AP_SerialManager &serial_manager = AP::serialmanager(); uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); if (uart != nullptr) { uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance)); @@ -38,9 +38,9 @@ AP_RangeFinder_NMEA::AP_RangeFinder_NMEA(RangeFinder::RangeFinder_State &_state, } // detect if a NMEA rangefinder by looking to see if the user has configured it -bool AP_RangeFinder_NMEA::detect(AP_SerialManager &serial_manager, uint8_t serial_instance) +bool AP_RangeFinder_NMEA::detect(uint8_t serial_instance) { - return serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; + return AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; } // update the state of the sensor diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_NMEA.h b/libraries/AP_RangeFinder/AP_RangeFinder_NMEA.h index 9390e5ff06..bf180d3fe5 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_NMEA.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_NMEA.h @@ -25,11 +25,10 @@ public: // constructor AP_RangeFinder_NMEA(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance); // static detection function - static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance); + static bool detect(uint8_t serial_instance); // update state void update(void) override; diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_Wasp.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_Wasp.cpp index ff60b276e0..1fe85af94b 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_Wasp.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_Wasp.cpp @@ -68,11 +68,11 @@ const AP_Param::GroupInfo AP_RangeFinder_Wasp::var_info[] = { AP_RangeFinder_Wasp::AP_RangeFinder_Wasp(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance) : AP_RangeFinder_Backend(_state, _params) { AP_Param::setup_object_defaults(this, var_info); + const AP_SerialManager &serial_manager = AP::serialmanager(); uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); if (uart != nullptr) { uart->begin(115200); @@ -85,8 +85,8 @@ AP_RangeFinder_Wasp::AP_RangeFinder_Wasp(RangeFinder::RangeFinder_State &_state, } // detection is considered as locating a serial port -bool AP_RangeFinder_Wasp::detect(AP_SerialManager &serial_manager, uint8_t serial_instance) { - return serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; +bool AP_RangeFinder_Wasp::detect(uint8_t serial_instance) { + return AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; } // read - return last value measured by sensor diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_Wasp.h b/libraries/AP_RangeFinder/AP_RangeFinder_Wasp.h index a38c015b96..509804b40f 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_Wasp.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_Wasp.h @@ -11,10 +11,9 @@ class AP_RangeFinder_Wasp : public AP_RangeFinder_Backend { public: AP_RangeFinder_Wasp(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance); - static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance); + static bool detect(uint8_t serial_instance); void update(void) override; diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_uLanding.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_uLanding.cpp index 72920168e7..4635303fcd 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_uLanding.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_uLanding.cpp @@ -34,11 +34,10 @@ extern const AP_HAL::HAL& hal; */ AP_RangeFinder_uLanding::AP_RangeFinder_uLanding(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance) : AP_RangeFinder_Backend(_state, _params) { - uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); + uart = AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance); if (uart != nullptr) { uart->begin(ULANDING_BAUD, ULANDING_BUFSIZE_RX, ULANDING_BUFSIZE_TX); } @@ -49,9 +48,9 @@ AP_RangeFinder_uLanding::AP_RangeFinder_uLanding(RangeFinder::RangeFinder_State trying to take a reading on Serial. If we get a result the sensor is there. */ -bool AP_RangeFinder_uLanding::detect(AP_SerialManager &serial_manager, uint8_t serial_instance) +bool AP_RangeFinder_uLanding::detect(uint8_t serial_instance) { - return serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; + return AP::serialmanager().find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance) != nullptr; } /* diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_uLanding.h b/libraries/AP_RangeFinder/AP_RangeFinder_uLanding.h index 1cea280720..c76410aab3 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_uLanding.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_uLanding.h @@ -10,11 +10,10 @@ public: // constructor AP_RangeFinder_uLanding(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params, - AP_SerialManager &serial_manager, uint8_t serial_instance); // static detection function - static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance); + static bool detect(uint8_t serial_instance); // update state void update(void) override; diff --git a/libraries/AP_RangeFinder/RangeFinder.cpp b/libraries/AP_RangeFinder/RangeFinder.cpp index 62832816cf..ffc0efd428 100644 --- a/libraries/AP_RangeFinder/RangeFinder.cpp +++ b/libraries/AP_RangeFinder/RangeFinder.cpp @@ -39,10 +39,11 @@ #include "AP_RangeFinder_PWM.h" #include "AP_RangeFinder_BLPing.h" #include "AP_RangeFinder_UAVCAN.h" -#include -#include +#include #include +#include +#include extern const AP_HAL::HAL &hal; @@ -152,8 +153,7 @@ const AP_Param::GroupInfo RangeFinder::var_info[] = { const AP_Param::GroupInfo *RangeFinder::backend_var_info[RANGEFINDER_MAX_INSTANCES]; -RangeFinder::RangeFinder(AP_SerialManager &_serial_manager) : - serial_manager(_serial_manager) +RangeFinder::RangeFinder() { AP_Param::setup_object_defaults(this, var_info); @@ -440,18 +440,18 @@ void RangeFinder::detect_instance(uint8_t instance, uint8_t& serial_instance) break; #endif case RangeFinder_TYPE_LWSER: - if (AP_RangeFinder_LightWareSerial::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_LightWareSerial(state[instance], params[instance], serial_manager, serial_instance++); + if (AP_RangeFinder_LightWareSerial::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_LightWareSerial(state[instance], params[instance], serial_instance++); } break; case RangeFinder_TYPE_LEDDARONE: - if (AP_RangeFinder_LeddarOne::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_LeddarOne(state[instance], params[instance], serial_manager, serial_instance++); + if (AP_RangeFinder_LeddarOne::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_LeddarOne(state[instance], params[instance], serial_instance++); } break; case RangeFinder_TYPE_ULANDING: - if (AP_RangeFinder_uLanding::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_uLanding(state[instance], params[instance], serial_manager, serial_instance++); + if (AP_RangeFinder_uLanding::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_uLanding(state[instance], params[instance], serial_instance++); } break; #if (CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BEBOP || \ @@ -468,8 +468,8 @@ void RangeFinder::detect_instance(uint8_t instance, uint8_t& serial_instance) } break; case RangeFinder_TYPE_MBSER: - if (AP_RangeFinder_MaxsonarSerialLV::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_MaxsonarSerialLV(state[instance], params[instance], serial_manager, serial_instance++); + if (AP_RangeFinder_MaxsonarSerialLV::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_MaxsonarSerialLV(state[instance], params[instance], serial_instance++); } break; case RangeFinder_TYPE_ANALOG: @@ -479,23 +479,23 @@ void RangeFinder::detect_instance(uint8_t instance, uint8_t& serial_instance) } break; case RangeFinder_TYPE_NMEA: - if (AP_RangeFinder_NMEA::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_NMEA(state[instance], params[instance], serial_manager, serial_instance++); + if (AP_RangeFinder_NMEA::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_NMEA(state[instance], params[instance], serial_instance++); } break; case RangeFinder_TYPE_WASP: - if (AP_RangeFinder_Wasp::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_Wasp(state[instance], params[instance], serial_manager, serial_instance++); + if (AP_RangeFinder_Wasp::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_Wasp(state[instance], params[instance], serial_instance++); } break; case RangeFinder_TYPE_BenewakeTF02: - if (AP_RangeFinder_Benewake::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_Benewake(state[instance], params[instance], serial_manager, serial_instance++, AP_RangeFinder_Benewake::BENEWAKE_TF02); + if (AP_RangeFinder_Benewake::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_Benewake(state[instance], params[instance], serial_instance++, AP_RangeFinder_Benewake::BENEWAKE_TF02); } break; case RangeFinder_TYPE_BenewakeTFmini: - if (AP_RangeFinder_Benewake::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_Benewake(state[instance], params[instance], serial_manager, serial_instance++, AP_RangeFinder_Benewake::BENEWAKE_TFmini); + if (AP_RangeFinder_Benewake::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_Benewake(state[instance], params[instance], serial_instance++, AP_RangeFinder_Benewake::BENEWAKE_TFmini); } break; case RangeFinder_TYPE_PWM: @@ -504,8 +504,8 @@ void RangeFinder::detect_instance(uint8_t instance, uint8_t& serial_instance) } break; case RangeFinder_TYPE_BLPing: - if (AP_RangeFinder_BLPing::detect(serial_manager, serial_instance)) { - drivers[instance] = new AP_RangeFinder_BLPing(state[instance], params[instance], serial_manager, serial_instance++); + if (AP_RangeFinder_BLPing::detect(serial_instance)) { + drivers[instance] = new AP_RangeFinder_BLPing(state[instance], params[instance], serial_instance++); } break; default: diff --git a/libraries/AP_RangeFinder/RangeFinder.h b/libraries/AP_RangeFinder/RangeFinder.h index 2c30dbb8e9..4b8c2cad27 100644 --- a/libraries/AP_RangeFinder/RangeFinder.h +++ b/libraries/AP_RangeFinder/RangeFinder.h @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include "AP_RangeFinder_Params.h" // Maximum number of range finder instances available on this platform @@ -38,7 +38,7 @@ class RangeFinder //UAVCAN drivers are initialised in the Backend, hence list of drivers is needed there. friend class AP_RangeFinder_UAVCAN; public: - RangeFinder(AP_SerialManager &_serial_manager); + RangeFinder(); /* Do not allow copies */ RangeFinder(const RangeFinder &other) = delete; @@ -166,7 +166,6 @@ private: AP_RangeFinder_Backend *drivers[RANGEFINDER_MAX_INSTANCES]; uint8_t num_instances; float estimated_terrain_height; - AP_SerialManager &serial_manager; Vector3f pos_offset_zero; // allows returning position offsets of zero for invalid requests void convert_params(void); diff --git a/libraries/AP_RangeFinder/examples/RFIND_test/RFIND_test.cpp b/libraries/AP_RangeFinder/examples/RFIND_test/RFIND_test.cpp index 3742f81b8c..5880af058f 100644 --- a/libraries/AP_RangeFinder/examples/RFIND_test/RFIND_test.cpp +++ b/libraries/AP_RangeFinder/examples/RFIND_test/RFIND_test.cpp @@ -11,7 +11,7 @@ void loop(); const AP_HAL::HAL& hal = AP_HAL::get_HAL(); static AP_SerialManager serial_manager; -static RangeFinder sonar{serial_manager}; +static RangeFinder sonar; void setup() {