controllib add BlockParamBool (int32 wrapper)

This commit is contained in:
Daniel Agar 2017-12-20 15:46:30 -05:00 committed by Beat Küng
parent a02cd869c3
commit a9bbbdce82
2 changed files with 29 additions and 1 deletions

View File

@ -81,6 +81,30 @@ BlockParamBase::BlockParamBase(Block *parent, const char *name, bool parent_pref
}
};
template <>
BlockParam<bool>::BlockParam(Block *block, const char *name, bool parent_prefix) :
BlockParamBase(block, name, parent_prefix),
_val()
{
update();
}
template <>
bool BlockParam<bool>::update()
{
int32_t tmp = 0;
int ret = param_get(_handle, &tmp);
if (tmp == 1) {
_val = true;
} else {
_val = false;
}
return (ret == PX4_OK);
}
template <>
BlockParam<int32_t>::BlockParam(Block *block, const char *name, bool parent_prefix) :
BlockParamBase(block, name, parent_prefix),

View File

@ -63,7 +63,7 @@ public:
virtual ~BlockParamBase() = default;
virtual bool update() = 0;
const char *getName() { return param_name(_handle); }
const char *getName() const { return param_name(_handle); }
protected:
param_t _handle{PARAM_INVALID};
@ -101,8 +101,12 @@ protected:
T _val;
};
template <>
bool BlockParam<bool>::update();
typedef BlockParam<float> BlockParamFloat;
typedef BlockParam<int32_t> BlockParamInt;
typedef BlockParam<bool> BlockParamBool;
typedef BlockParam<float &> BlockParamExtFloat;
typedef BlockParam<int32_t &> BlockParamExtInt;