aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2013-06-27 09:23:11 +0200
committerJulian Oes <julian@oes.ch>2013-06-27 09:23:11 +0200
commitf052442c2b9dac56ead301e9208a392d7f2fe43d (patch)
tree0112e0227436998d3aa7c95909ae12ba80c2427b /src
parent0ecc9c4bf4f2bf9fe1d99b5cbdf398718d2dccdd (diff)
parent8191130bbc8f2cbd53e69a7bcd1a4d4b1b2d68bb (diff)
downloadpx4-firmware-f052442c2b9dac56ead301e9208a392d7f2fe43d.tar.gz
px4-firmware-f052442c2b9dac56ead301e9208a392d7f2fe43d.tar.bz2
px4-firmware-f052442c2b9dac56ead301e9208a392d7f2fe43d.zip
Merge remote-tracking branch 'upstream/master' into new_state_machine
Conflicts: src/modules/sdlog2/sdlog2.c src/modules/sdlog2/sdlog2_messages.h
Diffstat (limited to 'src')
-rw-r--r--src/modules/sdlog2/sdlog2.c10
-rw-r--r--src/modules/sdlog2/sdlog2_messages.h13
-rw-r--r--src/modules/uORB/topics/optical_flow.h4
3 files changed, 17 insertions, 10 deletions
diff --git a/src/modules/sdlog2/sdlog2.c b/src/modules/sdlog2/sdlog2.c
index 33b3c657b..bdb98a24e 100644
--- a/src/modules/sdlog2/sdlog2.c
+++ b/src/modules/sdlog2/sdlog2.c
@@ -695,6 +695,7 @@ int sdlog2_thread_main(int argc, char *argv[])
struct log_OUT0_s log_OUT0;
struct log_AIRS_s log_AIRS;
struct log_ARSP_s log_ARSP;
+ struct log_FLOW_s log_FLOW;
} body;
} log_msg = {
LOG_PACKET_HEADER_INIT(0)
@@ -1131,10 +1132,13 @@ int sdlog2_thread_main(int argc, char *argv[])
if (fds[ifds++].revents & POLLIN) {
orb_copy(ORB_ID(optical_flow), subs.flow_sub, &buf.flow);
log_msg.msg_type = LOG_FLOW_MSG;
- log_msg.body.log_FLOW.flow_comp_x_m = buf.flow.flow_comp_x_m;
- log_msg.body.log_FLOW.flow_comp_y_m = buf.flow.flow_comp_y_m;
- log_msg.body.log_FLOW.ground_distance_m = buf.flow.ground_distance_m;
+ log_msg.body.log_FLOW.flow_raw_x = buf.flow.flow_raw_x;
+ log_msg.body.log_FLOW.flow_raw_y = buf.flow.flow_raw_y;
+ log_msg.body.log_FLOW.flow_comp_x = buf.flow.flow_comp_x_m;
+ log_msg.body.log_FLOW.flow_comp_y = buf.flow.flow_comp_y_m;
+ log_msg.body.log_FLOW.distance = buf.flow.ground_distance_m;
log_msg.body.log_FLOW.quality = buf.flow.quality;
+ log_msg.body.log_FLOW.sensor_id = buf.flow.sensor_id;
LOGBUFFER_WRITE_AND_COUNT(FLOW);
}
diff --git a/src/modules/sdlog2/sdlog2_messages.h b/src/modules/sdlog2/sdlog2_messages.h
index 755d21d55..96c44e7c2 100644
--- a/src/modules/sdlog2/sdlog2_messages.h
+++ b/src/modules/sdlog2/sdlog2_messages.h
@@ -207,13 +207,16 @@ struct log_ARSP_s {
float yaw_rate_sp;
};
-/* --- FLOW - FLOW DATA --- */
+/* --- FLOW - OPTICAL FLOW --- */
#define LOG_FLOW_MSG 16
struct log_FLOW_s {
- float flow_comp_x_m;
- float flow_comp_y_m;
- float ground_distance_m;
+ int16_t flow_raw_x;
+ int16_t flow_raw_y;
+ float flow_comp_x;
+ float flow_comp_y;
+ float distance;
uint8_t quality;
+ uint8_t sensor_id;
};
#pragma pack(pop)
@@ -235,7 +238,7 @@ static const struct log_format_s log_formats[] = {
LOG_FORMAT(OUT0, "ffffffff", "Out0,Out1,Out2,Out3,Out4,Out5,Out6,Out7"),
LOG_FORMAT(AIRS, "ff", "IndSpeed,TrueSpeed"),
LOG_FORMAT(ARSP, "fff", "RollRateSP,PitchRateSP,YawRateSP"),
- LOG_FORMAT(FLOW, "fffB", "FlowX,FlowY,SonAlt,FQual")
+ LOG_FORMAT(FLOW, "hhfffBB", "RawX,RawY,CompX,CompY,Dist,Q,SensID"),
};
static const int log_formats_num = sizeof(log_formats) / sizeof(struct log_format_s);
diff --git a/src/modules/uORB/topics/optical_flow.h b/src/modules/uORB/topics/optical_flow.h
index c854f0079..98f0e3fa2 100644
--- a/src/modules/uORB/topics/optical_flow.h
+++ b/src/modules/uORB/topics/optical_flow.h
@@ -57,8 +57,8 @@ struct optical_flow_s {
uint64_t timestamp; /**< in microseconds since system start */
- uint16_t flow_raw_x; /**< flow in pixels in X direction, not rotation-compensated */
- uint16_t flow_raw_y; /**< flow in pixels in Y direction, not rotation-compensated */
+ int16_t flow_raw_x; /**< flow in pixels in X direction, not rotation-compensated */
+ int16_t flow_raw_y; /**< flow in pixels in Y direction, not rotation-compensated */
float flow_comp_x_m; /**< speed over ground in meters, rotation-compensated */
float flow_comp_y_m; /**< speed over ground in meters, rotation-compensated */
float ground_distance_m; /**< Altitude / distance to ground in meters */