aboutsummaryrefslogtreecommitdiff
path: root/src/modules/mavlink/mavlink_messages.cpp
diff options
context:
space:
mode:
authorHelen Oleynikova <helenoleynikova@gmail.com>2014-04-10 09:08:37 +0200
committerJulian Oes <julian@oes.ch>2014-04-18 22:05:47 +0200
commit5c996065e2ddbbfa3776390163435afa52a4b37d (patch)
tree3be7bba1518dbf2b080cbf58df23bfabba895a85 /src/modules/mavlink/mavlink_messages.cpp
parent705b10fcafcb04440edc306cc07c7430e89ad788 (diff)
downloadpx4-firmware-5c996065e2ddbbfa3776390163435afa52a4b37d.tar.gz
px4-firmware-5c996065e2ddbbfa3776390163435afa52a4b37d.tar.bz2
px4-firmware-5c996065e2ddbbfa3776390163435afa52a4b37d.zip
Added vicon stream.
Diffstat (limited to 'src/modules/mavlink/mavlink_messages.cpp')
-rw-r--r--src/modules/mavlink/mavlink_messages.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/modules/mavlink/mavlink_messages.cpp b/src/modules/mavlink/mavlink_messages.cpp
index 47603b390..37929edac 100644
--- a/src/modules/mavlink/mavlink_messages.cpp
+++ b/src/modules/mavlink/mavlink_messages.cpp
@@ -640,6 +640,47 @@ protected:
};
+
+class MavlinkStreamViconPositionEstimate : public MavlinkStream
+{
+public:
+ const char *get_name()
+ {
+ return "VICON_POSITION_ESTIMATE";
+ }
+
+ MavlinkStream *new_instance()
+ {
+ return new MavlinkStreamViconPositionEstimate();
+ }
+
+private:
+ MavlinkOrbSubscription *pos_sub;
+ struct vehicle_vicon_position_s *pos;
+
+protected:
+ void subscribe(Mavlink *mavlink)
+ {
+ pos_sub = mavlink->add_orb_subscription(ORB_ID(vehicle_vicon_position));
+ pos = (struct vehicle_vicon_position_s *)pos_sub->get_data();
+ }
+
+ void send(const hrt_abstime t)
+ {
+ if (pos_sub->update(t)) {
+ mavlink_msg_vicon_position_estimate_send(_channel,
+ pos->timestamp / 1000,
+ pos->x,
+ pos->y,
+ pos->z,
+ pos->roll,
+ pos->pitch,
+ pos->yaw);
+ }
+ }
+};
+
+
class MavlinkStreamGPSGlobalOrigin : public MavlinkStream
{
public:
@@ -1297,5 +1338,6 @@ MavlinkStream *streams_list[] = {
new MavlinkStreamAttitudeControls(),
new MavlinkStreamNamedValueFloat(),
new MavlinkStreamCameraCapture(),
+ new MavlinkStreamViconPositionEstimate(),
nullptr
};