SensorView

(Различия между версиями)
Перейти к: навигация, поиск
(Цвет виджета)
(Инвертирование кнопок)
Строка 26: Строка 26:
  
 
Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора.
 
Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора.
 +
Примечание2: Теперь эти данные используются также для инверсии дискретных входов.
 +
 
=== Калибровка ===
 
=== Калибровка ===
 
Для задания граничных и отображаемых величин можно использовать два способа.  
 
Для задания граничных и отображаемых величин можно использовать два способа.  

Версия 14:06, 6 октября 2014

Содержание

Назначение

Программа может быть установлена на бытовой 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 физ. входов.

Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора. Примечание2: Теперь эти данные используются также для инверсии дискретных входов.

Калибровка

Для задания граничных и отображаемых величин можно использовать два способа.

Во-первых, использовать файл калибровки 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"

Формат:

  • COLORS COLOR (задать один цвет для сенсора, который не будет менятся)
  • COLORS COLOR1 COLOR2 (Сенсор в высоком положении имеет цвет COLOR2 а в нижнем - COLOR3. В прочих случаях - градиент.)
  • COLORS COLOR1 COLOR2 COLOR3 (Сенсор в высоком положении имеет цвет COLOR3, COLOR2 - в среднем и COLOR3 - в нижнем.)

где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA} или выражение вида RGB(число,число,число), где число лежит в границах [0,255] и записывается в десятичной системе счисления

Например:


COLORS RED - Сенсор во всех положениях имеет красный цвет

COLORS GREEN RED - Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый

COLORS GREEN YELLOW RED - Сенсор в высоком положении имеет красный цвет, желтый - в среднем и зеленый - в нижнем.

Если описание цветов отсутствует, то сенсор во всех положениях имеет синий цвет.

Пример файла SETTINGS.INI

; Файл настройки Locarus Sensor Monitor
;
; Раздел SYSTEM
; PORT   - возможные порты через запятую. 
; LOG    - имя лог-файла. если нету или пуста - лог не пишет
; CALIBR - имя файла данных калибровки
; REBOOT - интервал в минутах для принудительной перезагрузки приложения
; TIMEOUT - интервал опроса прибора в миллисекундах. по умолчанию 1000 - 1 секунда.
; INVERSION_BUTTON - кнопки (физические входы, статус), которые нужно инвертировать
;	Например, INVERSION_BUTTON = 4,5,7 - инвертировать статус кнопок с 4,5 и 7 физ. входов.
;	Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора.
;   Примечание2: Теперь эти данные используются также для инверсии дискретных входов.
;
; SCREEN_HEIGHT - Принудительное задание высоты экрана.
;
; SCREEN_WIDTH  - Принудительное задание ширины экрана.
;
; Раздел VALUE
; Настройки датчика скорости. Если отсутствует, то не отображается. Настроек не имеет.
;
; Раздел SENSORn
; Последовательное описание сенсоров
;
; INPUT - номер контролируемого параметрического выхода. 
;         нумерация с 1
;         ИЛИ
;         выражение EVAL - любое математическое выражение. 
;         можно использовать + - * / и скобки, в выражении
;         можно использовать значение любого датчика, указав 
;         переменную - #n, где n - номер логического датчика (нумерация с 1) или
;         переменную - Ln, где n - номер логического датчика (нумерация с 1).
;         переменную - Fn, где n - номер физического датчика (нумерация с 1).
;		Физический датчик имеет 3 поля:
;			Fn.COUNTER   - Счетчик. При чтении сбрасывается. 
;						(F13.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 - цвета сенсора
;	Формат1: COLORS COLOR
;	Формат2: COLORS COLOR
;	Формат3: COLORS COLOR COLOR COLOR
;	где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA}
;	или выражение вида RGB(число,число,число)
;		где число лежит в границах [0,255] и записывается в десятичной системе счисления
;
;	Например:
;		COLORS GREEN
;	Сенсор имеет зеленый цвет во всех положениях
;		COLORS GREEN RED
;	Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый
;		COLORS GREEN YELLOW RED
;	Сенсор в высоком положении имеет красный цвет, желтый - в среднем и зеленый - в нижнем.
;		COLORS RGB(0,255,255) RGB(0,0,255) 
;	Сенсор в высоком положении имеет красный цвет а в нижнем - аква (RGB(0,255,255) или AQUA)
;	Если описание цветов отсутствует, то сенсор во всех положениях имеет синий цвет.
;
;	RESET - вход для сброса. Используется статус дискретного логического входа.
;			Сброс осуществляется по фронту (переднему(0->1) и заднему(1->0))
;		Например, RESET = D4.FRONT - сброс по событию перехода 0->1
;				  RESET = D4.BACK - сброс по событию перехода 1->0
;		Примечание: Может использоваться инверсия кнопок.
;
; TITLE - заголовок сенсора
;
; UNITS - единицы измерения
;
; RANGE - принудительная калибровка
; Примечание: данные из файла CALIBR применяются до получения значений с датчиков.
;
; Например: с датчика приходит 250. С помощью файла калибровки получается 180.
;           Уже после этого начинает действовоть EVAL и RANGE.
;
;         Возможные форматы: 
;             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 = D4.FRONT
TITLE=Объем заправки
UNITS=кол-во
CHART=DISABLE
[SENSOR2]
INPUT = L2
TITLE=Остаток
UNITS=Литров
CHART=ENABLE
COLORS=RED GREEN
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты