mirror of https://github.com/ArduPilot/ardupilot
AP_ExternalAHRS: added EAHRS_SENSORS parameter
allow selection of what sensors to enable
This commit is contained in:
parent
6623f1156c
commit
32ee3002eb
|
@ -68,6 +68,13 @@ const AP_Param::GroupInfo AP_ExternalAHRS::var_info[] = {
|
||||||
// @User: Standard
|
// @User: Standard
|
||||||
AP_GROUPINFO("_OPTIONS", 3, AP_ExternalAHRS, options, 0),
|
AP_GROUPINFO("_OPTIONS", 3, AP_ExternalAHRS, options, 0),
|
||||||
|
|
||||||
|
// @Param: _SENSORS
|
||||||
|
// @DisplayName: External AHRS sensors
|
||||||
|
// @Description: External AHRS sensors bitmask
|
||||||
|
// @Bitmask: 0:GPS,1:IMU,2:Baro,3:Compass
|
||||||
|
// @User: Advanced
|
||||||
|
AP_GROUPINFO("_SENSORS", 4, AP_ExternalAHRS, sensors, 0xF),
|
||||||
|
|
||||||
AP_GROUPEND
|
AP_GROUPEND
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -101,9 +108,9 @@ bool AP_ExternalAHRS::enabled() const
|
||||||
}
|
}
|
||||||
|
|
||||||
// get serial port number for the uart, or -1 if not applicable
|
// get serial port number for the uart, or -1 if not applicable
|
||||||
int8_t AP_ExternalAHRS::get_port(void) const
|
int8_t AP_ExternalAHRS::get_port(AvailableSensor sensor) const
|
||||||
{
|
{
|
||||||
if (!backend) {
|
if (!backend || !has_sensor(sensor)) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return backend->get_port();
|
return backend->get_port();
|
||||||
|
|
|
@ -59,8 +59,15 @@ public:
|
||||||
// Get model/type name
|
// Get model/type name
|
||||||
const char* get_name() const;
|
const char* get_name() const;
|
||||||
|
|
||||||
|
enum class AvailableSensor {
|
||||||
|
GPS = (1U<<0),
|
||||||
|
IMU = (1U<<1),
|
||||||
|
BARO = (1U<<2),
|
||||||
|
COMPASS = (1U<<3),
|
||||||
|
};
|
||||||
|
|
||||||
// get serial port number, -1 for not enabled
|
// get serial port number, -1 for not enabled
|
||||||
int8_t get_port(void) const;
|
int8_t get_port(AvailableSensor sensor) const;
|
||||||
|
|
||||||
struct state_t {
|
struct state_t {
|
||||||
HAL_Semaphore sem;
|
HAL_Semaphore sem;
|
||||||
|
@ -147,8 +154,14 @@ private:
|
||||||
AP_Enum<DevType> devtype;
|
AP_Enum<DevType> devtype;
|
||||||
AP_Int16 rate;
|
AP_Int16 rate;
|
||||||
AP_Int16 options;
|
AP_Int16 options;
|
||||||
|
AP_Int16 sensors;
|
||||||
|
|
||||||
static AP_ExternalAHRS *_singleton;
|
static AP_ExternalAHRS *_singleton;
|
||||||
|
|
||||||
|
// check if a sensor type is enabled
|
||||||
|
bool has_sensor(AvailableSensor sensor) const {
|
||||||
|
return (uint16_t(sensors.get()) & uint16_t(sensor)) != 0;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace AP {
|
namespace AP {
|
||||||
|
|
Loading…
Reference in New Issue