diff options
Diffstat (limited to 'src/modules/mavlink/mavlink_stream.h')
-rw-r--r-- | src/modules/mavlink/mavlink_stream.h | 60 |
1 files changed, 45 insertions, 15 deletions
diff --git a/src/modules/mavlink/mavlink_stream.h b/src/modules/mavlink/mavlink_stream.h index def40d9ad..ef22dc443 100644 --- a/src/modules/mavlink/mavlink_stream.h +++ b/src/modules/mavlink/mavlink_stream.h @@ -46,30 +46,60 @@ class Mavlink; class MavlinkStream; -#include "mavlink_main.h" - class MavlinkStream { -private: - hrt_abstime _last_sent; + +public: + MavlinkStream *next; + + MavlinkStream(Mavlink *mavlink); + virtual ~MavlinkStream(); + + /** + * Get the interval + * + * @param interval the inveral in microseconds (us) between messages + */ + void set_interval(const unsigned int interval); + + /** + * Get the interval + * + * @return the inveral in microseconds (us) between messages + */ + unsigned get_interval() { return _interval; } + + /** + * @return 0 if updated / sent, -1 if unchanged + */ + int update(const hrt_abstime t); + static MavlinkStream *new_instance(const Mavlink *mavlink); + static const char *get_name_static(); + virtual const char *get_name() const = 0; + virtual uint8_t get_id() = 0; + + /** + * @return true if steam rate shouldn't be adjusted + */ + virtual bool const_rate() { return false; } + + /** + * Get maximal total messages size on update + */ + virtual unsigned get_size() = 0; protected: - mavlink_channel_t _channel; + Mavlink * _mavlink; unsigned int _interval; virtual void send(const hrt_abstime t) = 0; -public: - MavlinkStream *next; +private: + hrt_abstime _last_sent; - 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; + /* do not allow top copying this class */ + MavlinkStream(const MavlinkStream&); + MavlinkStream& operator=(const MavlinkStream&); }; |