]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/arducontrol.h
Provide some telemetry values from ArduControl
[r2c2.git] / source / libr2c2 / arducontrol.h
index 292700d5c452d8daee03e2815542e34b7297404e..a48f6f0990aa59997b9c45bdde7778cd3506c17c 100644 (file)
@@ -220,6 +220,7 @@ private:
        public:
                void push(const T &);
                bool pop(T &);
+               unsigned size() const;
                bool empty() const;
        };
 
@@ -256,6 +257,7 @@ private:
                virtual bool get_work(PendingCommand &);
 
                void push(const PendingCommand &);
+               unsigned size() const { return queue.size(); }
                bool empty() const { return queue.empty(); }
        };
 
@@ -289,6 +291,8 @@ private:
                ArduControl &control;
                unsigned n_octets;
                unsigned octets_remaining;
+               Msp::Time::TimeStamp last_poll;
+               Msp::Time::TimeDelta latency;
 
        public:
                S88Task(ArduControl &);
@@ -298,6 +302,8 @@ private:
 
                void set_n_octets(unsigned);
                void grow_n_octets(unsigned);
+
+               const Msp::Time::TimeDelta &get_latency() const { return latency; }
        };
 
        class MfxAnnounceTask: public Task
@@ -409,6 +415,7 @@ private:
        ControlThread thread;
 
        static ProtocolInfo protocol_info[2];
+       static TelemetryInfo telemetry_info[4];
 
 public:
        ArduControl(const Options &);
@@ -458,7 +465,7 @@ public:
        virtual void set_sensor(unsigned, bool) { }
        virtual bool get_sensor(unsigned) const;
 
-       virtual const TelemetryInfo *enumerate_telemetry(unsigned) const { return 0; }
+       virtual const TelemetryInfo *enumerate_telemetry(unsigned) const;
        virtual float get_telemetry_value(const std::string &) const;
 
        virtual void tick();