Обратные вызовы в C++ | страница 93
>namespace sensor
>{
> class ISensorControl
> {
> public:
> virtual ~ ISensorControl () = default;
> virtual void initialize() = 0; // (1)
> virtual void shutDown() = 0; // (2)
> virtual void assignDriver(DriverPointer driver) = 0; // (3)
> virtual DriverPointer getAssignedDriver() = 0; // (4)
> virtual DriverPointer getSensorDriver(SensorNumber number) = 0; // (5)
> virtual void addSensor(SensorType type, SensorNumber number) = 0; // (6)
> virtual void deleteSensor(SensorNumber number) = 0; // (7)
> virtual bool isSensorExist(SensorNumber number) = 0; // (8)
> virtual bool isSensorOperable(SensorNumber number) = 0; // (9)
> virtual SensorValue getSensorValue(SensorNumber number) = 0; // (10)
> virtual void querySensorValue(SensorNumber number, SensorValueCallback callback) = 0; // (11)
> virtual void readSensorValues(SensorValueCallback callback) = 0; // (12)
> virtual SensorValue getMinValue(SensorNumber first, SensorNumber last) = 0; // (13)
> virtual SensorValue getMaxValue(SensorNumber first, SensorNumber last) = 0; // (14)
> virtual void setAlert(SensorNumber number, SensorAlertCallback callback, SensorValue alertValue, AlertRule alertRule, CheckAlertTimeout checkTimeoutSeс = 1) = 0; // (15)
> virtual void resetAlert(SensorNumber number) = 0; // (16)
> static ISensorControl* createControl(); // (17)
> };
>};
В строке 1 и 2 объявлены методы для запуска и останова. В строках 3 и 4 объявлены методы для назначения и получения драйвера. Этот драйвер должен быть создан и назначен в самом начале работы, поскольку он будет передаваться новым создаваемым датчикам. Узнать назначенный драйвер для соответствующего датчика можно в методе 5.
В строках 6 и 7 объявлены методы для добавления и удаления датчика. В методе 8 можно проверить, существует ли датчик с переданным номером, в методе 9 можно проверить, является ли датчик работоспособным.
В строке 10 объявлен метод для чтения текущего показания датчика. В методе 11 осуществляется асинхронный запрос показания датчика, значение будет возвращаться через передаваемый обратный вызов. В строке 12 осуществляется опрос показаний всех работоспособных датчиков, значения также возвращаются через обратный вызов. С помощью методов, объявленных в строках 13 и 14, можно получить минимальное и максимальное значение для набора датчиков с номерами из указанного диапазона.