]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/arducontrol.h
Add voltage and current monitoring task to ArduControl
[r2c2.git] / source / libr2c2 / arducontrol.h
index 75b9dc8cb8f4d283e4b0e0aa3b775192fa1357d4..555280985767a7e37ea512607a0337359ac11618 100644 (file)
@@ -317,6 +317,28 @@ private:
                bool pop_info(MfxInfo &);
        };
 
+       class MonitorTask: public Task
+       {
+       private:
+               float voltage;
+               float current;
+               float base_level;
+               float peak_level;
+               Msp::Time::TimeStamp next_poll;
+               unsigned next_type;
+
+       public:
+               MonitorTask();
+
+               virtual bool get_work(PendingCommand &);
+               virtual void process_reply(const char *, unsigned);
+
+               float get_voltage() const { return voltage; }
+               float get_current() const { return current; }
+               void reset_peak();
+               float get_peak() const { return peak_level-base_level; }
+       };
+
        class ControlThread: public Msp::Thread
        {
        private:
@@ -365,6 +387,7 @@ private:
        S88Task s88;
        MfxAnnounceTask mfx_announce;
        MfxSearchTask mfx_search;
+       MonitorTask monitor;
        ControlThread thread;
 
        static ProtocolInfo protocol_info[2];