|
|
|
@ -41,21 +41,9 @@ void AP_Airspeed_UAVCAN::subscribe_msgs(AP_UAVCAN* ap_uavcan)
@@ -41,21 +41,9 @@ void AP_Airspeed_UAVCAN::subscribe_msgs(AP_UAVCAN* ap_uavcan)
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool AP_Airspeed_UAVCAN::take_registry() |
|
|
|
|
{ |
|
|
|
|
return _sem_registry.take(HAL_SEMAPHORE_BLOCK_FOREVER); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void AP_Airspeed_UAVCAN::give_registry() |
|
|
|
|
{ |
|
|
|
|
_sem_registry.give(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
AP_Airspeed_Backend* AP_Airspeed_UAVCAN::probe(AP_Airspeed &_frontend, uint8_t _instance) |
|
|
|
|
{ |
|
|
|
|
if (!take_registry()) { |
|
|
|
|
return nullptr; |
|
|
|
|
} |
|
|
|
|
WITH_SEMAPHORE(_sem_registry); |
|
|
|
|
|
|
|
|
|
AP_Airspeed_UAVCAN* backend = nullptr; |
|
|
|
|
|
|
|
|
@ -80,8 +68,6 @@ AP_Airspeed_Backend* AP_Airspeed_UAVCAN::probe(AP_Airspeed &_frontend, uint8_t _
@@ -80,8 +68,6 @@ AP_Airspeed_Backend* AP_Airspeed_UAVCAN::probe(AP_Airspeed &_frontend, uint8_t _
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
give_registry(); |
|
|
|
|
|
|
|
|
|
return backend; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -123,7 +109,8 @@ AP_Airspeed_UAVCAN* AP_Airspeed_UAVCAN::get_uavcan_backend(AP_UAVCAN* ap_uavcan,
@@ -123,7 +109,8 @@ AP_Airspeed_UAVCAN* AP_Airspeed_UAVCAN::get_uavcan_backend(AP_UAVCAN* ap_uavcan,
|
|
|
|
|
|
|
|
|
|
void AP_Airspeed_UAVCAN::handle_airspeed(AP_UAVCAN* ap_uavcan, uint8_t node_id, const AirspeedCb &cb) |
|
|
|
|
{ |
|
|
|
|
if (take_registry()) { |
|
|
|
|
WITH_SEMAPHORE(_sem_registry); |
|
|
|
|
|
|
|
|
|
AP_Airspeed_UAVCAN* driver = get_uavcan_backend(ap_uavcan, node_id); |
|
|
|
|
|
|
|
|
|
if (driver != nullptr) { |
|
|
|
@ -132,9 +119,6 @@ void AP_Airspeed_UAVCAN::handle_airspeed(AP_UAVCAN* ap_uavcan, uint8_t node_id,
@@ -132,9 +119,6 @@ void AP_Airspeed_UAVCAN::handle_airspeed(AP_UAVCAN* ap_uavcan, uint8_t node_id,
|
|
|
|
|
driver->_temperature = cb.msg->static_air_temperature - C_TO_KELVIN; |
|
|
|
|
driver->_last_sample_time_ms = AP_HAL::millis(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
give_registry(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool AP_Airspeed_UAVCAN::init() |
|
|
|
|