Browse Source

AP_RangeFinder: use AP_SerialManager singleton

master
Peter Barker 6 years ago committed by Andrew Tridgell
parent
commit
ac96461c6c
  1. 6
      libraries/AP_RangeFinder/AP_RangeFinder_BLPing.cpp
  2. 3
      libraries/AP_RangeFinder/AP_RangeFinder_BLPing.h
  3. 6
      libraries/AP_RangeFinder/AP_RangeFinder_Benewake.cpp
  4. 3
      libraries/AP_RangeFinder/AP_RangeFinder_Benewake.h
  5. 6
      libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.cpp
  6. 3
      libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.h
  7. 6
      libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.cpp
  8. 3
      libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.h
  9. 6
      libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.cpp
  10. 3
      libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.h
  11. 6
      libraries/AP_RangeFinder/AP_RangeFinder_NMEA.cpp
  12. 3
      libraries/AP_RangeFinder/AP_RangeFinder_NMEA.h
  13. 6
      libraries/AP_RangeFinder/AP_RangeFinder_Wasp.cpp
  14. 3
      libraries/AP_RangeFinder/AP_RangeFinder_Wasp.h
  15. 7
      libraries/AP_RangeFinder/AP_RangeFinder_uLanding.cpp
  16. 3
      libraries/AP_RangeFinder/AP_RangeFinder_uLanding.h
  17. 44
      libraries/AP_RangeFinder/RangeFinder.cpp
  18. 5
      libraries/AP_RangeFinder/RangeFinder.h
  19. 2
      libraries/AP_RangeFinder/examples/RFIND_test/RFIND_test.cpp

6
libraries/AP_RangeFinder/AP_RangeFinder_BLPing.cpp

@ -53,10 +53,10 @@ @@ -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 @@ -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;
}
/*

3
libraries/AP_RangeFinder/AP_RangeFinder_BLPing.h

@ -11,11 +11,10 @@ public: @@ -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;

6
libraries/AP_RangeFinder/AP_RangeFinder_Benewake.cpp

@ -50,12 +50,12 @@ extern const AP_HAL::HAL& hal; @@ -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 @@ -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

3
libraries/AP_RangeFinder/AP_RangeFinder_Benewake.h

@ -16,12 +16,11 @@ public: @@ -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;

6
libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.cpp

@ -27,10 +27,10 @@ extern const AP_HAL::HAL& hal; @@ -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 @@ -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

3
libraries/AP_RangeFinder/AP_RangeFinder_LeddarOne.h

@ -44,11 +44,10 @@ public: @@ -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;

6
libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.cpp

@ -27,10 +27,10 @@ extern const AP_HAL::HAL& hal; @@ -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 @@ -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

3
libraries/AP_RangeFinder/AP_RangeFinder_LightWareSerial.h

@ -10,11 +10,10 @@ public: @@ -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;

6
libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.cpp

@ -31,10 +31,10 @@ extern const AP_HAL::HAL& hal; @@ -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 @@ -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

3
libraries/AP_RangeFinder/AP_RangeFinder_MaxsonarSerialLV.h

@ -10,11 +10,10 @@ public: @@ -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;

6
libraries/AP_RangeFinder/AP_RangeFinder_NMEA.cpp

@ -26,11 +26,11 @@ extern const AP_HAL::HAL& hal; @@ -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, @@ -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

3
libraries/AP_RangeFinder/AP_RangeFinder_NMEA.h

@ -25,11 +25,10 @@ public: @@ -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;

6
libraries/AP_RangeFinder/AP_RangeFinder_Wasp.cpp

@ -68,11 +68,11 @@ const AP_Param::GroupInfo AP_RangeFinder_Wasp::var_info[] = { @@ -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, @@ -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

3
libraries/AP_RangeFinder/AP_RangeFinder_Wasp.h

@ -11,10 +11,9 @@ class AP_RangeFinder_Wasp : public AP_RangeFinder_Backend { @@ -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;

7
libraries/AP_RangeFinder/AP_RangeFinder_uLanding.cpp

@ -34,11 +34,10 @@ extern const AP_HAL::HAL& hal; @@ -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 @@ -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;
}
/*

3
libraries/AP_RangeFinder/AP_RangeFinder_uLanding.h

@ -10,11 +10,10 @@ public: @@ -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;

44
libraries/AP_RangeFinder/RangeFinder.cpp

@ -39,10 +39,11 @@ @@ -39,10 +39,11 @@
#include "AP_RangeFinder_PWM.h"
#include "AP_RangeFinder_BLPing.h"
#include "AP_RangeFinder_UAVCAN.h"
#include <AP_BoardConfig/AP_BoardConfig.h>
#include <AP_Vehicle/AP_Vehicle_Type.h>
#include <AP_BoardConfig/AP_BoardConfig.h>
#include <AP_Logger/AP_Logger.h>
#include <AP_SerialManager/AP_SerialManager.h>
#include <AP_Vehicle/AP_Vehicle_Type.h>
extern const AP_HAL::HAL &hal;
@ -152,8 +153,7 @@ const AP_Param::GroupInfo RangeFinder::var_info[] = { @@ -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) @@ -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) @@ -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) @@ -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) @@ -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:

5
libraries/AP_RangeFinder/RangeFinder.h

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
#include <AP_Common/AP_Common.h>
#include <AP_HAL/AP_HAL.h>
#include <AP_Param/AP_Param.h>
#include <AP_SerialManager/AP_SerialManager.h>
#include <GCS_MAVLink/GCS.h>
#include "AP_RangeFinder_Params.h"
// Maximum number of range finder instances available on this platform
@ -38,7 +38,7 @@ class RangeFinder @@ -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: @@ -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);

2
libraries/AP_RangeFinder/examples/RFIND_test/RFIND_test.cpp

@ -11,7 +11,7 @@ void loop(); @@ -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()
{

Loading…
Cancel
Save