GPS сервис ViaLatM — язык сценариев (часть 2)

от автора

В этой части статьи я продолжу описание языка сценариев 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 — вызов процедур.

ссылка на оригинал статьи http://habrahabr.ru/post/266565/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *