СПИК. Комментарии к примерам

СПИК - сервис программной интеграции и коммуникации, используется для интеграции с информационными системами.

К этой статье прикреплены примеры реализации работы со СПИК, написанные на языке JavaScript, а также альтернативная документация по СПИК.

Чтобы начать работу с примерами, необходимо указать адрес Сервера приложений ПО «СКАУТ-Платформа». Для этого предназначен файл AddressProvider.js.

В строку return http://login.scout-gps.ru:8081/ нужно вписать адрес и порт сервера приложений, с которого планируется получать данные. Сделать это можно с помощью текстового редактора. В указанном примере фигурируют адрес и порт сервера СКАУТ 365.

ВАЖНО
Для работы со СПИК в сети должен быть разрешены исходящие подключения по порту сервера приложений СКАУТ-Платформы.

Авторизация

Прежде, чем начать работы с примером авторизации, ознакомьтесь с принципами авторизации в СКАУТ-Платформа средствами СПИК.

Откройте файл LoginLogout.html, который находится в папке с примерами в директории \Authorization.В открывшейся форме(рис. 1) следует ввести логин и пароль, соответствующие учётной записи на сервере СКАУТ-Платформы. После этого нажать кнопку Login. В результате сгенерируется Авторизационный токен (поле Authorization Token (Session Id)), он понадобится для дальнейшей работы.Для удобства скопируйте его в буфер обмена.

Для тестовой работы вы можете использовать логин и пароль демонстрационной учётной записи «demo/demo».

Рисунок 1 – Авторизация

Нажатие на кнопке Login производит получение токена, из response.response.SessionId, после вызова loginOnServer, которому в качестве параметра передается специальный запрос SpicAuthorizationRequest.

Запрос списка транспортных средств

Прежде, чем начать работы с примером запроса списка транспортных средств, ознакомьтесь с описанием запроса объектов мониторинга в СПИК.

Примеры, предназначенные для получения списка транспортных средств, находятся в папке\Units.

Полный список доступных транспортных средств

Файл GetAllUnits.html предназначен для запроса списка доступных объектов. При открытии файла появится форма, изображённая на рис. 2.

В поле «Puthereyourauthorizationtoken» нужно ввести Авторизационный токен, который был получен с помощью файла LoginLogout.html. После этого нажать кнопку Updatetable,в результате чего будет отображён список доступных объектов, где

UnitId– идентификатор объекта мониторинга в базе данных;

Name – название объекта мониторинга; 

Description – описание объекта мониторинга.

  • получает часть списка транспортных средств, обращаясь к getUnitsPage.
  • Двойной клик на строчке с транспортным средством получает информацию о конкретном транспортном средстве обращением к getUnit.

 

Cписок доступных групп транспортных средств

Файл UnitGroups.html предназначен для того, чтобы продемонстрировать возможность запроса групп объектов мониторинга через СПИК. При открытии файла появится форма, изображённая на рис. 3.

Вполе «Puthereyourauthorizationtoken» нужно ввести Авторизационный токен, который был получен с помощью файла LoginLogout.html. После этого нажать кнопку Getunitgroupsв результате чего будет отображён список доступных групп, где

Groupid– идентификатор группы объектов мониторинга в базе данных;

Name – название группы объектов мониторинга;

Unitsids – список идентификаторов объектов мониторинга.

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

Рисунок 3 – Запрос групп объектов мониторинга.

Нажатие на кнопке производит обращение к getUnitsGroups и возвращает unitGroups[i].Id, unitGroups[i].GroupName, unitGroups[i].UnitIds.

Прочая информация по объектам мониторинга

Описание возможностей файла Units.html

При открытии файла отображается четыре строки вида (рис. 4):

*** Id<текстовое поле><кнопка «Get **** units»

Эти строки друг с другом не связаны – каждая выполняет отдельную функцию и поле только для нее.

Рисунок 4 – Units.html

Описание элементов файла представлено в Таблице 1.

Таблица 1. Назначение кнопок и полей в файле Units.html

 

Для получения ответа производится обращение к getUnits.

 

КнопкаGet all unit idsполучает Id всехТС.

 

Все кнопки из таблицы и кнопка Getallunitids выводят результат в большое текстовое поле.

 

Кнопка Getunitsbyids запрашивает подробную информацию (Description) о ТС в соответствии с идентификаторами из большого текстового поля.

 

Кнопка Getallunits запрашивает все объекты мониторинга, доступные диспетчеру, и выводит их в таблице.

 

Подробнее о доступных контрактах читайте в статье Контракт сервиса запроса транспортного средства. СПИК.

 

Получение текущих данных

 

Прежде, чем начать работы с примером запроса текущих данных, ознакомьтесь со статьей Запрос онлайн данных в СПИК.

 

Примеры, предназначенные для получения списка транспортных средств, находятся в папке \OnlineData

 

Файл OnlineData.html выдаёт информацию о времени и дате последней точки. Для этого понадобятся Авторизационный токен и идентификатор (или идентификаторы) объекта мониторинга в базе данных.

 

Последовательность действий, как и указано в статье Запрос онлайн данных в СПИК, следующая: ввести токен, ввести идентификаторы объектов, подписаться на получение данных, нажав кнопку Subscribe, получить данные, нажав кнопкуGetonlinedata. Результат представлен на рис. 5.

 

Значения в полях «Eventtypeid» и «Objecttypeid» можно оставить по умолчанию.

 

После того, как в получении online данных отпадает необходимость, следует отписаться от них, нажав кнопку Unsubscribe.

Рисунок 5 – OnlineData.html.

Рассылка отчётов

Прежде, чем начать работы с примером рассылки отчетов, ознакомьтесь со статьей Запрос построения отчета и его отправки на почтовые адреса в СПИК.

Примеры, предназначенные для получения списка транспортных средств, находятся в папке\Reports

Возможность рассылки отчётов демонстрирует файл Report.html. Как и ранее, понадобится авторизационный токен и идентификатор (или идентификаторы) объекта мониторинга в базе данных.

Поля в примере имеют следующие значения:

 

  • Targettype – цель построения отчета (ТС / водитель / компания);
  • Targetcardinality – количество объектов для построения отчета (один / много);
  • Report – выбор отчёта;
  • Template – шаблон отчета. Подгружается при выборе типа отчета;
  • Outputformat – формат отправляемого файла отчёта;
  • From, To – период построения отчёта;
  • E-mails– адреса рассылки отчётов;

  

Внешний вид формы рассылки отчётов представлен на рис. 6.

Рисунок 6 – Report.html.

После нажатия на кнопку Loadreports происходит обращение к getAvailableReports для получения SpicReportInfoCollection– списка доступных пользователю отчетов с перечнем шаблонов. Заполняются списка Report и Template.

При нажатии на Sendreportrequest на основе заполненных данных reportRequest, отправляется запрос на отправку отчета BuildReports.

Получение статистик

Прежде, чем начать работы с примером получения статистик, ознакомьтесь со статьей запрос статистик в СПИК.

Примеры, предназначенные для получения списка транспортных средств, находятся в папке \Statistics.

Получение статистик демонстрирует файл Statistics.html.

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

В настройках фильтрации навигации (Navigationfiltrationsettings) доступны следующие галочки:

Navigation validation filter:

 

  • Excludevalidpoints – исключить валидные точки;
  • Excludeinvalidpoints – исключить невалидные точки;
  • Exclude not validated points – исключить непроверенные точки;

 

Track periods filter:

 

  • Excluderecoilpoints – исключить точки в отскоках;
  • Excludenotmovepoints – исключить точки без движения;
  • Includeparkingpoints – включить точки на стоянках;

 

Далее нужно нажать кнопку Startsession и выбрать в выпадающем меню одну из доступных статистик:

 

  • Trackperiodsmileage – статистика по треку по каждому периоду (для цветового обозначения точек – разрывы, движения, стоянки и т.п.);
  • Trackperiod – статистика по треку (точки для отображения на карте);
  • Navigationfiltration – статистика по фильтрации навигационных данных;
  • Navigationvalidation – статистика по валидации навигационных данных;
  • Motormodes – статистика по режимам работы двигателя;
  • Fuelinganddefueling – статистика по заправкам и сливам;
  • Discretesensor – статистика по дискретным датчикам;
  • Fuelflow – статистика по расходу топлива;
  • Accident– статистика по ДТП;

 

После этого нажать последовательно кнопки Addstatistic и Startbuild.

Результаты запроса выдаются частями, для получения очередной части необходимо последовательно нажать кнопки Getstatistics,Showlastreceiveddatainnewtab и Buildnextchunk. Для получения следующей части необходимо повторить эту операцию. 

Внешний вид формы получения статистик представлен на рис. 7.

Рисунок 7 – Statistics.html.

Пример результата запроса по статистике Motormodes представлен на рис. 8.

Рисунок 8 – Результат запроса по статистике Motormodes.

Варианты получаемых ответов можно найти в статье Контракты статистик данных. СПИК.

Пример с картой

Файл Map.html, расположенный в папке \Map является практическим примером использования СПИК – на вкладке интернет-браузера отобразится карта с объектами мониторинга, которые доступны пользователю.

 

Открыв в текстовом редакторе файл Map.html, найдите следующие строки:

varbaseUrl = (this.getAddress&&typeof(this.getAddress) == 'function') ?

(getAddress() + 'spic/') :

('http://spic.scout-gps.ru:8081/spic/');

Впишите адрес и порт сервера приложений СКАУТ-Платформы, с которого планируется получать данные. В указанном примере фигурируют адрес и порт сервера СКАУТ-365.

После этого найдите строки:

<divid="loginDiv">

<div id="loginWindow">

<div id="addressDiv"></div>

<input id="loginInput" value=""/>

<input type="password" id="passwordInput" value=""/>

<input type="button" value="Войти" id="loginButton" oncl ick="login()"/></div>

</div>

Значения value для "loginInput" и "passwordInput" можно оставить пустыми – тогда логин и пароль нужно будет вводить каждый раз при открытии файла, а можно сразу вписать логин и пароль – при открытии файла соответствующие поля будут уже заполнены. 

При успешном входе отобразится форма, изображённая на рис. 9.

Рисунок 9 – Map.html. 

В таблице отобразится название объекта мониторинга, его скорость и текущий адрес. Если кликнуть по строке какого-либо из объектов, карта центрируется на нём.