Получение и контроль данных

Для работы с данными (датчиками) автомобиля предназначен интерфейс CarApplet.CarGateway. Этот интерфейс возвращает метод CEAgent.Agent.GetCar().

Все доступные диагностические и другие параметры (датчики) автомобиля собраны в коллекции AllSensors интерфейса CarGateway. Данные датчиков обновляются асинхронно и автоматически, по мере доступности новых данных. Частота обновления зависит прежде от блока управления двигателем, от того обновление каких данных необходимо и от многих других факторов. Для того, чтобы значение какого либо элемента коллекции AllSensors гарантированно обновлялся, у этого элемента нужно установить свойство Essential в true. По умолчанию у всех элементов коллекции AllSensors свойство Essential установлено в false.

Для того, чтобы посмотреть, какие параметры (датчики) содержаться в коллекции AllSensors можно использовать аплет SensorsBrowser, инсталлятор которого ключен в пакет CarApplet SDK и размещается в каталоге samples\VC#\SensorsBrowser\MSIInstall (инсталлятор для Windows XP/Vista) и в каталоге samples\VC#\SensorsBrowser\CABInstall (инсталлятор для Windows CE/Mobile).

Важно!
Так как обновление данных происходит асинхронно, рекомендуется отслеживать изменения и обрабатывать данные по таймеру. В то же время не рекомендуется использовать для ожидания изменения данных бесконечные циклы со Sleep() (а тем более без Sleep), так как при обработке данных может требоваться исполнение каких либо методов в основном потоке программы, и тот же основной поток используется для различных целей непосредственно соединением с автомобилем, что может привести и остановке (замыканию, оверлокингу) работы одного из методов, обслуживающих передачу данных.