diff options
author | Anton Babushkin <anton.babushkin@me.com> | 2014-02-26 21:28:35 +0400 |
---|---|---|
committer | Anton Babushkin <anton.babushkin@me.com> | 2014-02-26 21:28:35 +0400 |
commit | 7310fd608500be69153c5d033f74b056f1bb986e (patch) | |
tree | 47792aa5bfba108ee53a580573ab6b1e3a3b928f /src/modules/mavlink/mavlink_stream.h | |
parent | 769a2af1f8925a2d47fd47a2d25f8d7baac150ec (diff) | |
download | px4-firmware-7310fd608500be69153c5d033f74b056f1bb986e.tar.gz px4-firmware-7310fd608500be69153c5d033f74b056f1bb986e.tar.bz2 px4-firmware-7310fd608500be69153c5d033f74b056f1bb986e.zip |
mavlink: use inherited classes instead of callbacks for mavlink messages formatting, fixes and cleanup
Diffstat (limited to 'src/modules/mavlink/mavlink_stream.h')
-rw-r--r-- | src/modules/mavlink/mavlink_stream.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/modules/mavlink/mavlink_stream.h b/src/modules/mavlink/mavlink_stream.h index c3e60917e..9f175adbe 100644 --- a/src/modules/mavlink/mavlink_stream.h +++ b/src/modules/mavlink/mavlink_stream.h @@ -15,22 +15,27 @@ class MavlinkStream; #include "mavlink_main.h" -class MavlinkOrbSubscription; - class MavlinkStream { +private: + hrt_abstime _last_sent; + +protected: + mavlink_channel_t _channel; + unsigned int _interval; + + virtual void send(const hrt_abstime t) = 0; + public: - void (*callback)(const MavlinkStream *); - uintptr_t arg; - unsigned int subscriptions_n; - MavlinkOrbSubscription **subscriptions; - hrt_abstime last_sent; - unsigned int interval; MavlinkStream *next; - Mavlink *mavlink; - MavlinkStream(Mavlink *mavlink, void (*callback)(const MavlinkStream *), const unsigned int subs_n, const struct orb_metadata **topics, const size_t *sizes, const uintptr_t arg, const unsigned int interval); + MavlinkStream(); ~MavlinkStream(); + void set_interval(const unsigned int interval); + void set_channel(mavlink_channel_t channel); int update(const hrt_abstime t); + virtual MavlinkStream *new_instance() = 0; + virtual void subscribe(Mavlink *mavlink) = 0; + virtual const char *get_name() = 0; }; |