Browse Source

controllib add BlockParamBool (int32 wrapper)

sbg
Daniel Agar 7 years ago committed by Beat Küng
parent
commit
a9bbbdce82
  1. 24
      src/lib/controllib/block/BlockParam.cpp
  2. 6
      src/lib/controllib/block/BlockParam.hpp

24
src/lib/controllib/block/BlockParam.cpp

@ -81,6 +81,30 @@ BlockParamBase::BlockParamBase(Block *parent, const char *name, bool parent_pref @@ -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),

6
src/lib/controllib/block/BlockParam.hpp

@ -63,7 +63,7 @@ public: @@ -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: @@ -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;

Loading…
Cancel
Save