В этой части статьи я продолжу описание языка сценариев ViaLatM. Будут рассмотрены функции, позволяющие осуществлять доступ к атрибутам других объектов, функция условного присваивания и другие. Первая часть описания в публикации GPS сервис ViaLatM — язык сценариев, обновленное описание языка доступно на сайте в разделе Язык сценариев ViaLatM.



Установка переменных и определение сценария работы делаются в панели «Настройка переменных и сценария» в контекстном меню для каждого устройства.

Операторы разделяются ";".

Комментарии


Если строка начинается с символа "#", то она не обрабатывается (комментарий). Если символ "#" встречается внутри строки, то содержимое начиная с этого символа и до конца строки игнорируется.

Примеры:
  • # Блок обработки пробега трекера
  • Дистанция: DIST = DISTANCE(L,UNIT.L); # пробег в послед. сообщении

Константы


Если какое-то значение используется в нескольких операторах, его разумно выделить отдельно и определить как константу. Как правило, константы определяются в начале сценария. Идентификатору константы предшествует ключевое слово «CONST».

Примеры:
  • CONST RATE_PER_100KM = 8.5;
  • CONST MAX_DELAY = 3600;

Локальные переменные


Локальные переменные доступны только во время выполнения сценария после их определения. В отличии от глобальных переменных они не могут быть отображены в интерфейсе приложения и не сохраняются в постоянных атрибутах объектов. У локальной переменной нет названия, то есть префикса «Название :».

Примеры:
  • DIST = DISTANCE(L,UNIT.L); # локальная переменная
  • Пробег: ODOM = VARDEF(UNIT.ODOM,0)+ DIST;
  • Средняя скорость: DIST / (DT-UNIT.DT); # м/сек

Функция возврата значения по условию


Синтаксис: IFSET(condit,value1,value2);

Функция проверяет выполнение условия, заданного в перовом аргументе. Если оно справедливо, возвращает значение заданное вторым аргументом. В противном случае возвращается значение третьего аргумента. формат первого аргумента: val1 relational val2. Где в качестве relational может выступать одно из отношений: "==", "<=", ">=", "!=","<", ">".

Примеры:
  • MaxSpeed: MAX_SPEED = IFSET(V>= UNIT(OWNER,"5678").V,V,UNIT(OWNER,"5678").V);
  • Нагрузка на высоте: ALT_FACTOR = IFSET(H<500,2.3,5.7);

Доступ к параметрам-атрибутам других трекеров


Для выбора атрибутов другого трекера предназначена функция UNIT. В качестве параметра ей передается IMEI трекера: UNIT("01234567890").attr. После закрывающей скобки, через точку указывается имя атрибута, который следует выбрать (этот атрибут-параметр должен существовать у этого трекера). Выбираемый трекер должен находиться в той же группе(роль групп в сервисе выполняют папки), что и трекер, для которого выполняется сценарий. В противном случае функция возвращает «ERROR». Используя дополнительный параметр «OWNER» можно осуществлять доступ к трекерам, которые расположены в другой группе, но при этом они должны быть созданы пользователем, которому принадлежит текущий трекер: UNIT(OWNER,"01234567890").H.

Примеры:
  • # Информация о контрольном объекте
  • Скорость контрольного объекта: ROOT_SPEED = UNIT("V357504054043955").V;
  • Расстояние до контрольного объекта: ROOT_DIST = DISTANCE(L,UNIT("V357504054043955").L);
  • # Информация о заказчике
  • Расстояние до заказчика: CUSTOM_DIST = DISTANCE(L,UNIT(OWNER,"V12345123451234").L);


В следующих частях статьи будут рассмотрены операторы языка: FOR (OBJ IN SET) — итерация объектов в заданном множестве; IF… THEN… ELSE; SWITCH; CALL — вызов процедур.

Комментарии (0)