From d67b6efda31c463ac114e45727578237e75465a8 Mon Sep 17 00:00:00 2001 From: Mathieu Bresciani Date: Tue, 7 Mar 2017 14:32:57 +0100 Subject: [PATCH] PixHawk Pro: Update mag IDs to have external higher priority --- src/drivers/lis3mdl/lis3mdl.cpp | 5 +++++ src/modules/uavcan/sensors/mag.cpp | 1 + src/modules/uavcan/sensors/sensor_bridge.cpp | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/drivers/lis3mdl/lis3mdl.cpp b/src/drivers/lis3mdl/lis3mdl.cpp index e7b4fdf5ae..a46721c9d7 100644 --- a/src/drivers/lis3mdl/lis3mdl.cpp +++ b/src/drivers/lis3mdl/lis3mdl.cpp @@ -941,6 +941,11 @@ LIS3MDL::collect() new_report.temperature = report.t; new_report.temperature = 25 + (report.t / (16 * 8.0f)); + // XXX revisit for SPI part, might require a bus type IOCTL + + unsigned dummy; + sensor_is_onboard = !_interface->ioctl(MAGIOCGEXTERNAL, dummy); + /* * RAW outputs * diff --git a/src/modules/uavcan/sensors/mag.cpp b/src/modules/uavcan/sensors/mag.cpp index e58d05b9d5..22e8de1625 100644 --- a/src/modules/uavcan/sensors/mag.cpp +++ b/src/modules/uavcan/sensors/mag.cpp @@ -155,6 +155,7 @@ void UavcanMagnetometerBridge::mag_sub_cb(const uavcan::ReceivedDataStructurenode_id = node_id; channel->class_instance = class_instance; - channel->orb_advert = orb_advertise_multi(_orb_topic, report, &channel->orb_instance, ORB_PRIO_HIGH); + channel->orb_advert = orb_advertise_multi(_orb_topic, report, &channel->orb_instance, ORB_PRIO_VERY_HIGH); if (channel->orb_advert == nullptr) { DEVICE_LOG("ADVERTISE FAILED"); (void)unregister_class_devname(_class_devname, class_instance);