aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2014-12-02 10:46:29 +0100
committerThomas Gubler <thomasgubler@gmail.com>2014-12-02 10:46:29 +0100
commit4d91c61f8f5aaebd8bcf0add27591fafa9c41dbe (patch)
treee970fa485cd808a7bf7cfa61c7b3bb761bd502b5
parentdfb266565a2f1849ddd67460950b674a44eb6530 (diff)
downloadpx4-firmware-4d91c61f8f5aaebd8bcf0add27591fafa9c41dbe.tar.gz
px4-firmware-4d91c61f8f5aaebd8bcf0add27591fafa9c41dbe.tar.bz2
px4-firmware-4d91c61f8f5aaebd8bcf0add27591fafa9c41dbe.zip
add macros for easy 2d array support, builds on px4 test build
-rw-r--r--src/examples/flow_position_estimator/flow_position_estimator_main.c3
-rw-r--r--src/include/px4.h2
-rw-r--r--src/include/px4_defines.h (renamed from src/platforms/px4_defines.h)7
3 files changed, 9 insertions, 3 deletions
diff --git a/src/examples/flow_position_estimator/flow_position_estimator_main.c b/src/examples/flow_position_estimator/flow_position_estimator_main.c
index 0b8c01f79..8cc9ed686 100644
--- a/src/examples/flow_position_estimator/flow_position_estimator_main.c
+++ b/src/examples/flow_position_estimator/flow_position_estimator_main.c
@@ -67,6 +67,7 @@
#include <systemlib/perf_counter.h>
#include <systemlib/systemlib.h>
#include <poll.h>
+#include <px4_defines.h>
#include "flow_position_estimator_params.h"
@@ -337,7 +338,7 @@ int flow_position_estimator_thread_main(int argc, char *argv[])
{
float sum = 0.0f;
for(uint8_t j = 0; j < 3; j++)
- sum = sum + speed[j] * att.R[i][j];
+ sum = sum + speed[j] * PX4_R(att.R, i, j);
global_speed[i] = sum;
}
diff --git a/src/include/px4.h b/src/include/px4.h
index 22d661b17..45068a6f7 100644
--- a/src/include/px4.h
+++ b/src/include/px4.h
@@ -59,7 +59,7 @@
#endif
-#include "../platforms/px4_defines.h"
+#include <px4_defines.h>
#include "../platforms/px4_middleware.h"
#include "../platforms/px4_nodehandle.h"
#include "../platforms/px4_subscriber.h"
diff --git a/src/platforms/px4_defines.h b/src/include/px4_defines.h
index 84e5c8da0..2dd57940d 100644
--- a/src/platforms/px4_defines.h
+++ b/src/include/px4_defines.h
@@ -51,7 +51,6 @@
#define PX4_TOPIC_T(_name) _name
#define PX4_SUBSCRIBE_CBMETH(_nodehandle, _name, _cbf, _obj, _interval) _nodehandle.subscribe(PX4_TOPIC(_name), &_cbf, &_obj);
#define PX4_SUBSCRIBE_CBFUNC(_nodehandle, _name, _cbf, _interval) _nodehandle.subscribe(PX4_TOPIC(_name), _cbf);
-
#else
/*
* Building for NuttX
@@ -70,3 +69,9 @@
#define PX4_GET_SUBSCRIBE(_1, _2, _3, _4, _5, NAME, ...) NAME
#define PX4_SUBSCRIBE(...) PX4_GET_SUBSCRIBE(__VA_ARGS__, PX4_SUBSCRIBE_CBMETH, PX4_SUBSCRIBE_CBFUNC)(__VA_ARGS__)
#define PX4_ADVERTISE(_nodehandle, _name) _nodehandle.advertise<PX4_TOPIC_T(_name)>(PX4_TOPIC(_name))
+
+/* wrapper for 2d matrices */
+#define PX4_ARRAY2D(_array, _ncols, _x, _y) (_array[_x * _ncols + _y])
+
+/* wrapper for rotation matrices stored in arrays */
+#define PX4_R(_array, _x, _y) PX4_ARRAY2D(_array, 3, _x, _y)