diff --git a/src/lib/drivers/magnetometer/PX4Magnetometer.cpp b/src/lib/drivers/magnetometer/PX4Magnetometer.cpp index db679721ba..f8cd38f2d9 100644 --- a/src/lib/drivers/magnetometer/PX4Magnetometer.cpp +++ b/src/lib/drivers/magnetometer/PX4Magnetometer.cpp @@ -45,6 +45,7 @@ PX4Magnetometer::PX4Magnetometer(uint32_t device_id, uint8_t priority, enum Rota _sensor_mag_pub.get().device_id = device_id; _sensor_mag_pub.get().scaling = 1.0f; + _sensor_mag_pub.get().temperature = NAN; } PX4Magnetometer::~PX4Magnetometer() @@ -82,6 +83,9 @@ int PX4Magnetometer::ioctl(cdev::file_t *filp, int cmd, unsigned long arg) return 0; + case MAGIOCGEXTERNAL: + return _sensor_mag_pub.get().is_external; + case DEVIOCGDEVICEID: return _sensor_mag_pub.get().device_id; diff --git a/src/lib/drivers/magnetometer/PX4Magnetometer.hpp b/src/lib/drivers/magnetometer/PX4Magnetometer.hpp index 213774f641..946315c6c5 100644 --- a/src/lib/drivers/magnetometer/PX4Magnetometer.hpp +++ b/src/lib/drivers/magnetometer/PX4Magnetometer.hpp @@ -50,6 +50,8 @@ public: int ioctl(cdev::file_t *filp, int cmd, unsigned long arg) override; + bool external() { return _sensor_mag_pub.get().is_external; } + void set_device_type(uint8_t devtype); void set_error_count(uint64_t error_count) { _sensor_mag_pub.get().error_count = error_count; } void increase_error_count() { _sensor_mag_pub.get().error_count++; }