aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-03-14 22:43:45 +0100
committerLorenz Meier <lm@inf.ethz.ch>2013-03-14 22:43:45 +0100
commit688ec090e811ffa5df0a704767f5eb70c635913e (patch)
treea60bf42c7d731842893c505fff06f6ec65e97a08 /apps
parent1d444f80a3b9b575681e41b7a3a9b26a4b3d606d (diff)
downloadpx4-firmware-688ec090e811ffa5df0a704767f5eb70c635913e.tar.gz
px4-firmware-688ec090e811ffa5df0a704767f5eb70c635913e.tar.bz2
px4-firmware-688ec090e811ffa5df0a704767f5eb70c635913e.zip
Moved trim for fixed wing to standard trim values, can now be calibrated via RC
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)