SensorView
Содержание |
Назначение
Программа может быть установлена на бытовой GPS навигатор работающий под операционной системой Windows CE. Прибор подключается к навигатору специальным USB кабелем, и превращается в бортовой монитор, позволяющий контролировать состояние датчиков, скорость, получать и просматривать СМС сообщения с использованием GSM транспорта прибора.
На экране навигатора отображается точная скорость, вычисляемая по данным GPS и до десяти виджетов (значений датчиков либо вычисляемых величин). Чем больше виджетов тем меньше места на экране для каждого из них.
Установка
Если навигатор содержит носитель ResidentFlash то программа может быть установлена с помощью стандартного CAB файла установщика, с последующим копированием в каталог установки конфигурационных файлов.
В противном случае саму программу и файлы конфигурации можно просто скопировать на носитель, и запустить ее средствами операционной системы навигатора. В этом случае автозапуск программы нужно настроить вручную.
Способ запуска установщика или программы зависит от пользовательского интерфейса навигатора, и определяется индивидуально для каждой модели.
Настройка
Датчики, калибровка, граничные значения, цвета и отображаемые названия задаются файлом конфигурации SETTINGS.INI.
Инвертирование кнопок
В зависимости от способа подключения, кнопка в нажатом состоянии может иметь как "0" так и "1". Для инвертирования состояния есть опция INVERSION_BUTTON.
Например, INVERSION_BUTTON = 4,5,7 - инвертировать статус кнопок с 4,5 и 7 физ. входов.
Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора.
Калибровка
Для задания граничных и отображаемых величин можно использовать два способа.
Во-первых, использовать файл калибровки Locarus Informer. Этот файл нужно скопировать в каталог установки программы, а его имя указать в SETTINGS.INI параметром CALIBR. Программа будет искать в нем соответствие с номером отображаемого датчика, и использовать величины из этого файла.
Во-вторых, в случае линейного либо вычисляемого способа отображения, для каждого датчика можно задать индивидуально верхнюю, нижнюю границу возможных значений, и коэффициент, по которому будут вычислены отображаемые значения по данным, получаемым с прибора.
Второй способ имеет приоритет.
Значения виджета
Ключевое слово - "INPUT".
В качестве значения виджета можно использовать:
- Значение датчика.
- Вычисляемое значение.
Значение датчика может браться (n - номер входа):
- С логического входа (Ln или просто число).
- Счетчик с физического входа (Fn.COUNTER или просто Fn)
- Частота с физического входа (Fn.FREQUENCY)
- Статус с физического входа (Fn.STATE)
Например, значение с датчика: "INPUT = 1","INPUT = L2","INPUT = F3","INPUT = F3.STATE".
Примечание:Не следует использовать Fn.COUNTER совместно с лог. счетчиком по входу n.
Чтобы использовать вычисляемое значение нужно использовать ключевое слово EVAL. Например, вычисляемое значение: "INPUT = EVAL #2 + #3","INPUT = EVAL L2 + F3","INPUT = EVAL F2.STATE + F3.FREQUENCY".
В выражении могут быть использованы:
- Функция суммирования (SUM). Формат SUM(expr), где expr - выражение. Функция с момента включения суммирует значения expr и возвращает сумму.
- Функция среднего (MEAN). Формат MEAN(expr), где expr - выражение. Функция с момента включения суммирует значения expr и возвращает среднее.
- Арифметические операции и скобки.
- Переменные лог. датчиков (В формате "#<номер датчика>"), которые в момент вычисления будут заменены на их реальные значения.
- Переменные лог. датчиков (В формате "L<номер датчика>"), которые в момент вычисления будут заменены на их реальные значения.
- Переменные физ. датчиков (В формате "F<номер датчика>.<поле>"), которые в момент вычисления будут заменены на их реальные значения.
Значение виджета, имеющего счетчик, можно сбросить кликнув на значение виджета. После клика появится диалог, в котором нужно нажать на кнопку "Yes", если вы действительно хотите сбросить счетчик. Иначе нужно кликнуть на кнопку "No".
Если виджет имеет значение датчика (например "INPUT = 1") или не имеет счетчика (например "INPUT = EVAL #2 + #3"), то диалог не появится так как сбрасывать нечего.
Если виджет имеет более одного счетчика (например "INPUT = EVAL MEAN(SUM(#2) + SUM(#3))+SUM(#1)"), то будут сброшены ВСЕ счетчики этого виджета.
Также для сброса можно использовать кнопку с физического входа (см. ниже).
Сброс по фронту
Для сброса счетчика (SUM(expr)) можно использовать как клик по виджету, так и опцию "RESET". Опция указывает дискретный логический вход и фронт (передний или задний), по которому нужно осуществлять сброс.
Фронт:
- Передний (0->1) (FRONT)
- Задний (1->0) (BACK)
Например: "RESET = D4.FRONT", "RESET = D4.BACK".
В качестве значения кнопки берется STATE, на который может влиять инвертирование, описанное выше.
Цвет виджета
Ключевое слово - "COLORS"
Для каждого виджета(SENSOR) можно задать цвета для высокого и низкого значения результата (с датчика или после вычисления). В зависимости от значения, виджет будет менять цвет.
Формат:
- COLORS COLOR COLOR (цвет определяется по значению между заданными цветами)
- COLORS COLOR (задать один цвет для сенсора, который не будет менятся)
где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA} или выражение вида RGB(число,число,число), где число лежит в границах [0,255] и записывается в десятичной системе счисления
Например:
COLORS RED GREEN - Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый
COLORS RED - Сенсор во всех положениях имеет красный цвет
Если описание цветов отсутствует, то сенсор во всех положениях имеет синий цвет.
Пример файла SETTINGS.INI
; Файл настройки Locarus Sensor Monitor ; ; Раздел SYSTEM ; PORT - возможные порты через запятую. ; LOG - имя лог-файла. если нету или пуста - лог не пишет ; CALIBR - имя файла данных калибровки ; REBOOT - интервал в минутах для принудительной перезагрузки приложения ; TIMEOUT - интервал опроса прибора в миллисекундах. по умолчанию 1000 - 1 секунда. ; INVERSION_BUTTON - кнопки (физические входы, статус), которые нужно инвертировать ; Например, INVERSION_BUTTON = 4,5,7 - инвертировать статус кнопок с 4,5 и 7 физ. входов. ; Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора. ; ; Раздел VALUE ; Настройки датчика скорости. Если отсутствует, то не отображается. Настроек не имеет. ; ; Раздел SENSORn ; Последовательное описание сенсоров ; ; INPUT - номер контролируемого параметрического выхода. ; нумерация с 1 ; ИЛИ ; выражение EVAL - любое математическое выражение. ; можно использовать + - * / и скобки, в выражении ; можно использовать значение любого датчика, указав ; переменную - #n, где n - номер логического датчика (нумерация с 1) или ; переменную - Ln, где n - номер логического датчика (нумерация с 1). ; переменную - Fn, где n - номер физического датчика (нумерация с 1). ; Физический датчик имеет 3 поля: ; Fn.COUNTER - Счетчик. При чтении сбрасывается. ; (Не следует использовать совместно с лог. счетчиком по этому входу) ; Fn.FREQUENCY - Частота нажатий. ; Fn.STATE - Статус кнопки. (Нажата/Нет). Можно инвертировать параметром выше. ; Примечание: Если поле не указано, но берется Fn.COUNTER. ; Также можно использовать функции: ; SUM(Выражение) - накапливает сумму ; MEAN(Выражение) - возвращает среднее значение выражения. ; (В функциях используется не более 1 млн. значений. В случае превышения порога происходит сброс.) ; ; Например: ; INPUT = EVAL (#2 + #3) / 2 ; вычисляется среднее значение по двум датчикам, N2 и N3. ; INPUT = EVAL SUM(#3) ; вычисляется сумма значений датчика N3 ; INPUT = EVAL MEAN(#2+#3) ; вычисляется среднее значений суммы значений датчиков N2 и N3 ; INPUT = EVAL MEAN(SUM(F2.FREQUENCY)+SUM(L3)) ; вычисляется среднее значений суммы сумм частот F2 и лог. датчика L3 ; INPUT = EVAL MEAN(SUM(F2)+SUM(L3)) ; вычисляется среднее значений суммы сумм значений датчиков F2(физический) и L3(логический) ; ; На полученное значение распространяется формат вывода RANGE ; заданный двумя величинами - MIN и MAX ; COLORS - цвета сенсора в низком и высоком положениях ; Формат: COLORS COLOR COLOR ; где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA} ; или выражение вида RGB(число,число,число) ; где число лежит в границах [0,255] и записывается в десятичной системе счисления ; ; Например: ; COLORS GREEN RED ; Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый ; COLORS RGB(0,255,255) RGB(0,0,255) ; Сенсор в высоком положении имеет красный цвет а в нижнем - аква (RGB(0,255,255) или AQUA) ; Если описание цветов отсутствует, то сенсор во всех положениях имеет синий цвет. ; ; RESET - вход для сброса. Используется статус физ. кнопки. ; Сброс осуществляется по фронту (переднему(0->1) и заднему(1->0)) ; Например, RESET = F4.FRONT - сброс по событию перехода 0->1 ; RESET = F4.BACK - сброс по событию перехода 1->0 ; Примечание: Может использоваться инверсия кнопок. ; ; TITLE - заголовок сенсора ; ; UNITS - единицы измерения ; ; RANGE - принудительная калибровка ; если присутствует, то данные из файла CALIBR игнорируются ; ; Возможные форматы: ; RANGE=MAX ; RANGE=MIN,MAX ; RANGE=MIN,MAX,KOEF ; ; MIN,MAX - минимальное и максимальное значение сенсора ; если присутствует KOEF то в отображаемых единицах, ; если нет - в физически получаемых с датчиков значениях ; KOEF - коэффициент для физических значений в отображаемые ; ; Отображаемое значение = Физическое*KOEF ; ; CHART - Стиль диаграммы виджета. ; Возможные значения: ENABLE(рисовать, по умолчанию),DISABLE(не рисовать) ; Например, CHART = ENABLE - рисовать диаграмму. ; [SYSTEM] PORT=COM5:,COM6:,COM8: LOG=locarus.log CALIBR=CARSLIST.INI TIMEOUT=5000 INVERSION_BUTTON = 4 ;[VALUE] [SENSOR1] INPUT = EVAL SUM(F2) RESET = F4.FRONT TITLE=Объем заправки UNITS=кол-во CHART=DISABLE RESET_INPUT=4 [SENSOR2] INPUT = L2 TITLE=Остаток UNITS=Литров CHART=ENABLE COLORS=RED GREEN [SENSOR3] INPUT = 3 TITLE=сенсор3 UNITS=кол-во RANGE=0,10 COLORS=RGB(255,0,255) RGB(0,255,255) [SENSOR4] INPUT = EVAL SUM(#3) TITLE=сенсор4 UNITS=кол-во RANGE=0,50 COLORS=BLUE RGB(255,255,255) [SENSOR5] INPUT = EVAL (SUM(#2)) TITLE=сенсор5 UNITS=кол-во RANGE=0,1000,0.1 [SENSOR6] INPUT = EVAL MEAN(#2*2-1) TITLE=сенсор6 UNITS=кол-во RANGE=0,100,0.1 COLORS=BLUE MAGENTA