From 688ec090e811ffa5df0a704767f5eb70c635913e Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Thu, 14 Mar 2013 22:43:45 +0100 Subject: [PATCH] Moved trim for fixed wing to standard trim values, can now be calibrated via RC --- apps/controllib/block/BlockParam.cpp | 6 ++++-- apps/controllib/block/BlockParam.hpp | 11 ++++++++--- apps/controllib/fixedwing.cpp | 8 ++++---- 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 b3f49f7db4..fd12e365dc 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 7f86d17178..58a9bfc0d9 100644 --- a/apps/controllib/block/BlockParam.hpp +++ b/apps/controllib/block/BlockParam.hpp @@ -53,7 +53,12 @@ namespace control class __EXPORT BlockParamBase : public ListNode { 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 __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 b84a54fee5..1189be51aa 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 8cefc298f6..83e01e63c8 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)