Path: blob/master/libraries/AP_Baro/AP_Baro_ExternalAHRS.cpp
9572 views
#include "AP_Baro_ExternalAHRS.h"12#if AP_BARO_EXTERNALAHRS_ENABLED34AP_Baro_ExternalAHRS::AP_Baro_ExternalAHRS(AP_Baro &baro, uint8_t port) :5AP_Baro_Backend(baro)6{7instance = _frontend.register_sensor();8set_bus_id(instance, AP_HAL::Device::make_bus_id(AP_HAL::Device::BUS_TYPE_SERIAL,port,0,0));9}1011// Read the sensor12void AP_Baro_ExternalAHRS::update(void)13{14if (count) {15WITH_SEMAPHORE(_sem);16_copy_to_frontend(instance, sum_pressure/count, sum_temp/count);17sum_pressure = sum_temp = 0;18count = 0;19}20}2122void AP_Baro_ExternalAHRS::handle_external(const AP_ExternalAHRS::baro_data_message_t &pkt)23{24if (pkt.instance != 0) {25// not for us26return;27}28WITH_SEMAPHORE(_sem);29sum_pressure += pkt.pressure_pa;30sum_temp += pkt.temperature;31count++;32}3334#endif // AP_BARO_EXTERNALAHRS_ENABLED353637