SensorView

(Различия между версиями)
Перейти к: навигация, поиск
(Значения виджета)
(Пример файла SETTINGS.INI)
Строка 82: Строка 82:
 
; REBOOT - интервал в минутах для принудительной перезагрузки приложения
 
; REBOOT - интервал в минутах для принудительной перезагрузки приложения
 
; TIMEOUT - интервал опроса прибора в миллисекундах. по умолчанию 1000 - 1 секунда.
 
; TIMEOUT - интервал опроса прибора в миллисекундах. по умолчанию 1000 - 1 секунда.
 +
; INVERSION_BUTTON - кнопки (физические входы, статус), которые нужно инвертировать
 +
; Например, INVERSION_BUTTON = 4,5,7 - инвертировать статус кнопок с 4,5 и 7 физ. входов.
 +
; Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора.
 
;
 
;
 
; Раздел VALUE
 
; Раздел VALUE
; Настройки датчика скорости. В текущей версии просто должен
+
; Настройки датчика скорости. Если отсутствует, то не отображается. Настроек не имеет.
; присутствовать пустой раздел
+
 
;
 
;
 
; Раздел SENSORn
 
; Раздел SENSORn
Строка 95: Строка 97:
 
;        выражение EVAL - любое математическое выражение.  
 
;        выражение EVAL - любое математическое выражение.  
 
;        можно использовать + - * / и скобки, в выражении
 
;        можно использовать + - * / и скобки, в выражении
;        можно использовать значение любогог датчика, указав  
+
;        можно использовать значение любого датчика, указав  
;        переменную - #n, где n - номер датчика (нумерация с 1).
+
;        переменную - #n, где n - номер логического датчика (нумерация с 1) или
 +
;        переменную - Ln, где n - номер логического датчика (нумерация с 1).
 +
;        переменную - Fn, где n - номер физического датчика (нумерация с 1).
 +
; Физический датчик имеет 3 поля:
 +
; Fn.COUNTER  - Счетчик. При чтении сбрасывается.
 +
; (Не следует использовать совместно с лог. счетчиком по этому входу)
 +
; Fn.FREQUENCY - Частота нажатий.
 +
; Fn.STATE    - Статус кнопки. (Нажата/Нет). Можно инвертировать параметром выше.
 +
; Примечание: Если поле не указано, но берется Fn.COUNTER.
 
;   Также можно использовать функции:
 
;   Также можно использовать функции:
 
; SUM(Выражение) - накапливает сумму  
 
; SUM(Выражение) - накапливает сумму  
Строка 109: Строка 119:
 
;       INPUT = EVAL MEAN(#2+#3)
 
;       INPUT = EVAL MEAN(#2+#3)
 
;   вычисляется среднее значений суммы значений датчиков N2 и N3
 
;   вычисляется среднее значений суммы значений датчиков N2 и N3
;       INPUT = EVAL MEAN(SUM(#2)+SUM(#3))
+
;       INPUT = EVAL MEAN(SUM(F2.FREQUENCY)+SUM(L3))
;   вычисляется среднее значений суммы сумм значений датчиков N2 и N3
+
;   вычисляется среднее значений суммы сумм частот F2 и лог. датчика L3
 +
;       INPUT = EVAL MEAN(SUM(F2)+SUM(L3))
 +
;   вычисляется среднее значений суммы сумм значений датчиков F2(физический) и L3(логический)
 
;         
 
;         
;        На полученное значение распростаняется формат вывода RANGE
+
;        На полученное значение распространяется формат вывода RANGE
 
;        заданный двумя величинами - MIN и MAX
 
;        заданный двумя величинами - MIN и MAX
 
; COLORS - цвета сенсора в низком и высоком положениях
 
; COLORS - цвета сенсора в низком и высоком положениях
; Формат: COLORS COLOR COLOR (цвет определяется по значению между заданными цветами)
+
; Формат: COLORS COLOR COLOR
; или COLORS COLOR (задать один цвет для сенсора, который не будет менятся)
+
 
; где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA}
 
; где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA}
 
; или выражение вида RGB(число,число,число)
 
; или выражение вида RGB(число,число,число)
Строка 122: Строка 133:
 
;
 
;
 
; Например:
 
; Например:
; COLORS RED GREEN
+
; COLORS GREEN RED
 
; Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый
 
; Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый
; COLORS 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 - заголовок сенсора
 
; TITLE - заголовок сенсора
Строка 141: Строка 158:
 
;
 
;
 
;        MIN,MAX - минимальное и максимальное значение сенсора
 
;        MIN,MAX - минимальное и максимальное значение сенсора
;                  если присутствуеи KOEF то в отображаемых единицах,
+
;                  если присутствует KOEF то в отображаемых единицах,
 
;                  если нет - в физически получаемых с датчиков значениях
 
;                  если нет - в физически получаемых с датчиков значениях
 
;        KOEF - коэффициент для физических значений в отображаемые
 
;        KOEF - коэффициент для физических значений в отображаемые
 
;
 
;
 
;        Отображаемое значение = Физическое*KOEF
 
;        Отображаемое значение = Физическое*KOEF
 +
;
 +
; CHART - Стиль диаграммы виджета.
 +
; Возможные значения: ENABLE(рисовать, по умолчанию),DISABLE(не рисовать)
 +
; Например, CHART = ENABLE - рисовать диаграмму.
 
;
 
;
 
[SYSTEM]
 
[SYSTEM]
 
PORT=COM5:,COM6:,COM8:
 
PORT=COM5:,COM6:,COM8:
;LOG=locarus.log
+
LOG=locarus.log
 
CALIBR=CARSLIST.INI
 
CALIBR=CARSLIST.INI
 
TIMEOUT=5000
 
TIMEOUT=5000
[VALUE]
+
INVERSION_BUTTON = 4
 +
;[VALUE]
 
[SENSOR1]
 
[SENSOR1]
INPUT = 1
+
INPUT = EVAL SUM(F2)
TITLE=Топливо\nбак #1
+
RESET = F4.FRONT
UNITS=литров
+
TITLE=Объем заправки
RANGE=0,300,0.1
+
UNITS=кол-во
COLORS= RED GREEN
+
CHART=DISABLE
 +
RESET_INPUT=4
 
[SENSOR2]
 
[SENSOR2]
INPUT = 2
+
INPUT = L2
TITLE=Топливо\nбак #2
+
TITLE=Остаток
UNITS=литров
+
UNITS=Литров
RANGE=0,100,0.1
+
CHART=ENABLE
COLORS=RGB(255,0,0) RGB(0,255,0)
+
COLORS=RED GREEN
 
[SENSOR3]
 
[SENSOR3]
 
INPUT = 3
 
INPUT = 3

Версия 06:28, 18 декабря 2013

Содержание

Назначение

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

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

SensorView screen.png

Установка

Если навигатор содержит носитель ResidentFlash то программа может быть установлена с помощью стандартного CAB файла установщика, с последующим копированием в каталог установки конфигурационных файлов.

В противном случае саму программу и файлы конфигурации можно просто скопировать на носитель, и запустить ее средствами операционной системы навигатора. В этом случае автозапуск программы нужно настроить вручную.

Способ запуска установщика или программы зависит от пользовательского интерфейса навигатора, и определяется индивидуально для каждой модели.

Настройка

Датчики, калибровка, граничные значения, цвета и отображаемые названия задаются файлом конфигурации SETTINGS.INI.

Калибровка

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

Во-первых, использовать файл калибровки Locarus Informer. Этот файл нужно скопировать в каталог установки программы, а его имя указать в SETTINGS.INI параметром CALIBR. Программа будет искать в нем соответствие с номером отображаемого датчика, и использовать величины из этого файла.

Во-вторых, в случае линейного либо вычисляемого способа отображения, для каждого датчика можно задать индивидуально верхнюю, нижнюю границу возможных значений, и коэффициент, по которому будут вычислены отображаемые значения по данным, получаемым с прибора.

Второй способ имеет приоритет.

Значения виджета

Ключевое слово - "INPUT".

В качестве значения виджета можно использовать:

  • Значение датчика.
  • Вычисляемое значение.

Чтобы использовать вычисляемое значение нужно использовать номер датчика. Например "INPUT = 1".

Чтобы использовать вычисляемое значение нужно использовать ключевое слово EVAL. Например "INPUT = EVAL #2 + #3".

В выражении могут быть использованы:

  • Функция суммирования (SUM). Формат SUM(expr), где expr - выражение. Функция с момента включения суммирует значения expr и возвращает сумму.
  • Функция среднего (MEAN). Формат MEAN(expr), где expr - выражение. Функция с момента включения суммирует значения expr и возвращает среднее.
  • Арифметические операции и скобки.
  • Переменные датчиков (В формате "#<номер датчика>"), которые в момент вычисления будут заменены на их реальные значения.

Значение виджета, имеющего счетчик, можно сбросить кликнув на значение виджета. После клика появится диалог, в котором нужно нажать на кнопку "Yes", если вы действительно хотите сбросить счетчик. Иначе нужно кликнуть на кнопку "No".

Если виджет имеет значение датчика (например "INPUT = 1") или не имеет счетчика (например "INPUT = EVAL #2 + #3"), то диалог не появится так как сбрасывать нечего.

Если виджет имеет более одного счетчика (например "INPUT = EVAL MEAN(SUM(#2) + SUM(#3))+SUM(#1)"), то будут сброшены ВСЕ счетчики этого виджета.

Цвет виджета

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