aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/ets_airspeed
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-01-12 11:53:15 +0100
committerLorenz Meier <lm@inf.ethz.ch>2014-01-12 11:53:15 +0100
commitd72c82f66bf6dac8e6d10bf1024641908d3b854c (patch)
tree7aeec3dddbe3e3decf882f5ebd8e9cb6fe6a69f6 /src/drivers/ets_airspeed
parent9bf512cac82815e690774ddfc2fdeda29c22f4a0 (diff)
downloadpx4-firmware-d72c82f66bf6dac8e6d10bf1024641908d3b854c.tar.gz
px4-firmware-d72c82f66bf6dac8e6d10bf1024641908d3b854c.tar.bz2
px4-firmware-d72c82f66bf6dac8e6d10bf1024641908d3b854c.zip
Airspeed does not publish if disabled
Diffstat (limited to 'src/drivers/ets_airspeed')
-rw-r--r--src/drivers/ets_airspeed/ets_airspeed.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/drivers/ets_airspeed/ets_airspeed.cpp b/src/drivers/ets_airspeed/ets_airspeed.cpp
index de371bf32..cdc70ac37 100644
--- a/src/drivers/ets_airspeed/ets_airspeed.cpp
+++ b/src/drivers/ets_airspeed/ets_airspeed.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
*
- * Copyright (C) 2013 PX4 Development Team. All rights reserved.
+ * Copyright (c) 2013, 2014 PX4 Development Team. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -185,7 +185,18 @@ ETSAirspeed::collect()
report.max_differential_pressure_pa = _max_differential_pressure_pa;
/* announce the airspeed if needed, just publish else */
- orb_publish(ORB_ID(differential_pressure), _airspeed_pub, &report);
+ if (_class_instance == CLASS_DEVICE_PRIMARY && !(_pub_blocked)) {
+
+ if (_airspeed_pub > 0) {
+ /* publish it */
+ orb_publish(ORB_ID(differential_pressure), _airspeed_pub, &report);
+ } else {
+ _airspeed_pub = orb_advertise(ORB_ID(differential_pressure), &report);
+
+ if (_airspeed_pub < 0)
+ debug("failed to create differential_pressure publication");
+ }
+ }
new_report(report);