SensorView

Материал из ЛОКАРУС
Перейти к: навигация, поиск

Содержание

Назначение

Программа может быть установлена на бытовой GPS навигатор работающий под операционной системой Windows CE. Прибор подключается к навигатору специальным USB кабелем, и превращается в бортовой монитор, позволяющий контролировать состояние датчиков, скорость, получать и просматривать СМС сообщения с использованием GSM транспорта прибора.

На экране навигатора отображается точная скорость, вычисляемая по данным GPS и до десяти виджетов (значений датчиков либо вычисляемых величин). Чем больше виджетов тем меньше места на экране для каждого из них.

SensorView screen.png

Установка

Если навигатор содержит носитель 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
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты