diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2013-03-17 03:03:58 -0700 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-03-17 03:03:58 -0700 |
commit | 0ee5293ceb1231704b2a513b02f0d4c8400598c5 (patch) | |
tree | 91ceecf39115e8de573d7e7f9fcdb8f1b3f6470d | |
parent | b27667667380ca095e71ab8a0293d55c5f8bdbb9 (diff) | |
parent | 494bcddaa4b968e30c763925e6a3cdc95c50d95e (diff) | |
download | px4-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
-rw-r--r-- | apps/controllib/block/BlockParam.cpp | 6 | ||||
-rw-r--r-- | apps/controllib/block/BlockParam.hpp | 11 | ||||
-rw-r--r-- | apps/controllib/fixedwing.cpp | 8 | ||||
-rw-r--r-- | apps/examples/control_demo/params.c | 4 |
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) |