aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-03-17 03:03:58 -0700
committerLorenz Meier <lm@inf.ethz.ch>2013-03-17 03:03:58 -0700
commit0ee5293ceb1231704b2a513b02f0d4c8400598c5 (patch)
tree91ceecf39115e8de573d7e7f9fcdb8f1b3f6470d /apps
parentb27667667380ca095e71ab8a0293d55c5f8bdbb9 (diff)
parent494bcddaa4b968e30c763925e6a3cdc95c50d95e (diff)
downloadpx4-firmware-0ee5293ceb1231704b2a513b02f0d4c8400598c5.tar.gz
px4-firmware-0ee5293ceb1231704b2a513b02f0d4c8400598c5.tar.bz2
px4-firmware-0ee5293ceb1231704b2a513b02f0d4c8400598c5.zip
Merge pull request #222 from PX4/trim_calibration
Fixed wing controller uses global trim values
Diffstat (limited to 'apps')
-rw-r--r--apps/controllib/block/BlockParam.cpp6
-rw-r--r--apps/controllib/block/BlockParam.hpp11
-rw-r--r--apps/controllib/fixedwing.cpp8
-rw-r--r--apps/examples/control_demo/params.c4
4 files changed, 16 insertions, 13 deletions
diff --git a/apps/controllib/block/BlockParam.cpp b/apps/controllib/block/BlockParam.cpp
index b3f49f7db..fd12e365d 100644
--- a/apps/controllib/block/BlockParam.cpp
+++ b/apps/controllib/block/BlockParam.cpp
@@ -46,7 +46,7 @@
namespace control
{
-BlockParamBase::BlockParamBase(Block *parent, const char *name) :
+BlockParamBase::BlockParamBase(Block *parent, const char *name, bool parent_prefix) :
_handle(PARAM_INVALID)
{
char fullname[blockNameLengthMax];
@@ -61,8 +61,10 @@ BlockParamBase::BlockParamBase(Block *parent, const char *name) :
if (!strcmp(name, "")) {
strncpy(fullname, parentName, blockNameLengthMax);
- } else {
+ } else if (parent_prefix) {
snprintf(fullname, blockNameLengthMax, "%s_%s", parentName, name);
+ } else {
+ strncpy(fullname, name, blockNameLengthMax);
}
parent->getParams().add(this);
diff --git a/apps/controllib/block/BlockParam.hpp b/apps/controllib/block/BlockParam.hpp
index 7f86d1717..58a9bfc0d 100644
--- a/apps/controllib/block/BlockParam.hpp
+++ b/apps/controllib/block/BlockParam.hpp
@@ -53,7 +53,12 @@ namespace control
class __EXPORT BlockParamBase : public ListNode<BlockParamBase *>
{
public:
- BlockParamBase(Block *parent, const char *name);
+ /**
+ * Instantiate a block param base.
+ *
+ * @param parent_prefix Set to true to include the parent name in the parameter name
+ */
+ BlockParamBase(Block *parent, const char *name, bool parent_prefix=true);
virtual ~BlockParamBase() {};
virtual void update() = 0;
const char *getName() { return param_name(_handle); }
@@ -68,8 +73,8 @@ template<class T>
class __EXPORT BlockParam : public BlockParamBase
{
public:
- BlockParam(Block *block, const char *name) :
- BlockParamBase(block, name),
+ BlockParam(Block *block, const char *name, bool parent_prefix=true) :
+ BlockParamBase(block, name, parent_prefix),
_val() {
update();
}
diff --git a/apps/controllib/fixedwing.cpp b/apps/controllib/fixedwing.cpp
index b84a54fee..1189be51a 100644
--- a/apps/controllib/fixedwing.cpp
+++ b/apps/controllib/fixedwing.cpp
@@ -171,10 +171,10 @@ BlockBacksideAutopilot::BlockBacksideAutopilot(SuperBlock *parent,
_headingHold(this, ""),
_velocityHold(this, ""),
_altitudeHold(this, ""),
- _trimAil(this, "TRIM_AIL"),
- _trimElv(this, "TRIM_ELV"),
- _trimRdr(this, "TRIM_RDR"),
- _trimThr(this, "TRIM_THR")
+ _trimAil(this, "TRIM_ROLL", false), /* general roll trim (full name: TRIM_ROLL) */
+ _trimElv(this, "TRIM_PITCH", false), /* general pitch trim */
+ _trimRdr(this, "TRIM_YAW", false), /* general yaw trim */
+ _trimThr(this, "TRIM_THR", true) /* FWB_ specific throttle trim (full name: FWB_TRIM_THR) */
{
}
diff --git a/apps/examples/control_demo/params.c b/apps/examples/control_demo/params.c
index 8cefc298f..83e01e63c 100644
--- a/apps/examples/control_demo/params.c
+++ b/apps/examples/control_demo/params.c
@@ -56,8 +56,4 @@ PARAM_DEFINE_FLOAT(FWB_V_MIN, 10.0f); // minimum commanded velocity
PARAM_DEFINE_FLOAT(FWB_V_CMD, 12.0f); // commanded velocity
PARAM_DEFINE_FLOAT(FWB_V_MAX, 16.0f); // maximum commanded velocity
-// trim
-PARAM_DEFINE_FLOAT(FWB_TRIM_AIL, 0.0f); // trim aileron, normalized (-1,1)
-PARAM_DEFINE_FLOAT(FWB_TRIM_ELV, 0.005f); // trim elevator (-1,1)
-PARAM_DEFINE_FLOAT(FWB_TRIM_RDR, 0.0f); // trim rudder (-1,1)
PARAM_DEFINE_FLOAT(FWB_TRIM_THR, 0.8f); // trim throttle (0,1)