aboutsummaryrefslogtreecommitdiff
path: root/src/modules/navigator/navigator.h
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2014-06-06 18:13:45 +0200
committerJulian Oes <julian@oes.ch>2014-06-06 18:13:45 +0200
commit85d7fdc741a39184d251e2d35d914a6506d6ecd1 (patch)
tree5a2e6d571174846d7a28a8837cf2e85e44aa3045 /src/modules/navigator/navigator.h
parentd78c3a224267f4dbd1fac72e893c81b83b43df9b (diff)
downloadpx4-firmware-85d7fdc741a39184d251e2d35d914a6506d6ecd1.tar.gz
px4-firmware-85d7fdc741a39184d251e2d35d914a6506d6ecd1.tar.bz2
px4-firmware-85d7fdc741a39184d251e2d35d914a6506d6ecd1.zip
navigator: param enhancements
Diffstat (limited to 'src/modules/navigator/navigator.h')
-rw-r--r--src/modules/navigator/navigator.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/modules/navigator/navigator.h b/src/modules/navigator/navigator.h
index 476e9a36c..b22da7117 100644
--- a/src/modules/navigator/navigator.h
+++ b/src/modules/navigator/navigator.h
@@ -42,11 +42,15 @@
#include <systemlib/perf_counter.h>
+#include <controllib/blocks.hpp>
+#include <controllib/block/BlockParam.hpp>
+
#include <uORB/uORB.h>
#include <uORB/topics/mission.h>
#include <uORB/topics/vehicle_control_mode.h>
#include <uORB/topics/position_setpoint_triplet.h>
#include <uORB/topics/vehicle_global_position.h>
+#include <uORB/topics/parameter_update.h>
#include "navigator_mode.h"
#include "mission.h"
@@ -54,7 +58,7 @@
#include "rtl.h"
#include "geofence.h"
-class Navigator
+class Navigator : public control::SuperBlock
{
public:
/**
@@ -105,7 +109,7 @@ public:
Geofence& get_geofence() { return _geofence; }
bool get_is_in_loiter() { return _is_in_loiter; }
- float get_loiter_radius() { return 50.0f; }; /* TODO: make param*/
+ float get_loiter_radius() { return _param_loiter_radius.get(); };
private:
@@ -121,6 +125,7 @@ private:
int _control_mode_sub; /**< vehicle control mode subscription */
int _onboard_mission_sub; /**< onboard mission subscription */
int _offboard_mission_sub; /**< offboard mission subscription */
+ int _param_update_sub; /**< param update subscription */
orb_advert_t _pos_sp_triplet_pub; /**< publish position setpoint triplet */
@@ -150,6 +155,7 @@ private:
bool _is_in_loiter; /**< flags if current position SP can be used to loiter */
bool _update_triplet; /**< flags if position SP triplet needs to be published */
+ control::BlockParamFloat _param_loiter_radius; /**< loiter radius for fixedwing */
/**
* Retrieve global position
*/
@@ -176,6 +182,11 @@ private:
void vehicle_control_mode_update();
/**
+ * Update parameters
+ */
+ void params_update();
+
+ /**
* Shim for calling task_main from task_create.
*/
static void task_main_trampoline(int argc, char *argv[]);