]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/driver.h
Add telemetry framework for drivers
[r2c2.git] / source / libr2c2 / driver.h
index a0e5cc434405a194e56099bd5e3f63dd7512e8b4..3f5a75ce2a6b959d31071d38436c2d73bbef8f0e 100644 (file)
@@ -45,6 +45,14 @@ public:
                std::string name;
        };
 
+       struct TelemetryInfo
+       {
+               const char *name;
+               const char *label;
+               const char *unit;
+               unsigned precision;
+       };
+
        sigc::signal<void, bool> signal_power;
        sigc::signal<void, bool> signal_halt;
        sigc::signal<void, const DetectedLocomotive &> signal_locomotive_detected;
@@ -91,6 +99,9 @@ public:
        virtual void set_sensor(unsigned, bool) = 0;
        virtual bool get_sensor(unsigned) const = 0;
 
+       virtual const TelemetryInfo *enumerate_telemetry(unsigned) const = 0;
+       virtual float get_telemetry_value(const std::string &) const = 0;
+
        virtual void tick() = 0;
        virtual void flush() = 0;