aboutsummaryrefslogtreecommitdiff
path: root/src/platforms
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2015-02-08 14:10:57 +0100
committerThomas Gubler <thomasgubler@gmail.com>2015-02-08 17:53:26 +0100
commitbc8efeb73eaa77c1835823d96ca5d8ca2a76b24d (patch)
tree8319ac3c7cc1d028f5ef90c03e8d79c2b7895dce /src/platforms
parent69f5726d7027ef45ccbb1a568ff33e91bd742654 (diff)
downloadpx4-firmware-bc8efeb73eaa77c1835823d96ca5d8ca2a76b24d.tar.gz
px4-firmware-bc8efeb73eaa77c1835823d96ca5d8ca2a76b24d.tar.bz2
px4-firmware-bc8efeb73eaa77c1835823d96ca5d8ca2a76b24d.zip
add param api also for firmware builds
Diffstat (limited to 'src/platforms')
-rw-r--r--src/platforms/px4_parameter.h40
1 files changed, 37 insertions, 3 deletions
diff --git a/src/platforms/px4_parameter.h b/src/platforms/px4_parameter.h
index 464a84f51..6b5453d77 100644
--- a/src/platforms/px4_parameter.h
+++ b/src/platforms/px4_parameter.h
@@ -43,6 +43,7 @@
#include <string>
#else
/* includes when building for NuttX */
+#include <systemlib/param/param.h>
#endif
namespace px4
@@ -96,7 +97,6 @@ public:
/**
* Update the parameter value
- * Nothing to do for ROS
*/
T update()
{
@@ -113,11 +113,45 @@ public:
}
};
+#else
+template <typename T>
+class Parameter :
+ public ParameterBase<T>
+{
+public:
+ Parameter(const char *name, T value) :
+ ParameterBase<T>(name, value),
+ _handle(param_find(name))
+ {
+ }
+ ~Parameter() {};
-#else
+ /**
+ * Update the parameter value
+ */
+ T update()
+ {
+ if (_handle != PARAM_INVALID) {
+ param_get(_handle, &(this->_value));
+ }
+ return get();
+ }
+
+ /**
+ * Get the current parameter value
+ */
+ T get()
+ {
+ return this->_value;
+ }
+
+protected:
+ param_t _handle;
+
+};
#endif
-typedef Parameter<double> ParameterFloat;
+typedef Parameter<float> ParameterFloat;
typedef Parameter<int> ParameterInt;
}