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;
sigc::signal<void, unsigned, unsigned, bool> signal_loco_speed;
sigc::signal<void, unsigned, unsigned, bool> signal_loco_function;
sigc::signal<void, unsigned, unsigned> signal_turnout;
+ sigc::signal<void, unsigned> signal_turnout_failed;
sigc::signal<void, unsigned, unsigned> signal_signal;
sigc::signal<void, unsigned, bool> signal_sensor;
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;