#pragma once class BaseDataSource { public: double get_speed(); // in km/h double get_brake_balance(); // 0.0 - 1.0 double get_hv_voltage(); // in V double get_hv_voltage_ratio(); // 0.0 - 1.0 double get_lv_voltage(); // in V double get_battery_temperature(); // in °C double get_throttle_ratio(); // 0.0 - 1.0 double get_brake_pressure_front_bar(); // in bar double get_brake_pressure_rear_bar(); // in bar bool brake_balance_change_is_recent(); // true if the last change was less // than 1 second ago virtual void poll() = 0; protected: void set_brake_balance(double value); double speed; double brake_balance; double hv_voltage; double hv_voltage_ratio; double lv_voltage; double battery_temperature; double throttle_ratio; double brake_pressure_front_bar; double brake_pressure_rear_bar; int time_of_last_brake_balance_change; };