Шаг 2: Подключение к Wialon
Скрипт wialon.js
Для работы с сервером Wialon необходимо загрузить на страницу , в котором содержится .
... p>Новый Wialon Appp> script src="https://hst-api.wialon.com/wsdk/script/wialon.js">/script> script src="js/script.js">/script> body> html>
добавляет на страницу новое пространство имен с набором классов. Чаще всего мы будем использовать — синглтон, в котором хранится вся информация об активной сессии и реализованы базовые методы авторизации, поиска и создания объектов и др.
После загрузки страницы необходимо инициализировать сессию.
// script.js (function() { // самовызывающаяся анонимная функция alert ('Привет, Wialon!'); // инициализации сессии var session = wialon.core.Session.getInstance(); session.initSession('https://hst-api.wialon.com');})();
Авторизация
В Wialon cуществует несколько методов авторизации. В данном примере мы будем использовать авторизацию по токену — метод на js, который вызывает запрос token/login.
// script.js ... // инициализации сессии var session = wialon.core.Session.getInstance(); session.initSession('https://hst-api.wialon.com'); // отправка запроса авторизации token/login var token = 'авторизационный токен'; session.loginToken(token, function(code) { console.log(code); });})();
Объявим функцию , которая будет вызвана после ответа на запрос авторизации и изменим вызов .
// script.js ... // обработчик ответа авторизации function loginCallback(code) { if (code) { alert('Ошибка авторизации: ' + code); } else { alert('Авторизации прошла успешно'); } } // отправка запроса авторизации token/login var token = 'авторизационный токен'; session.loginToken(token, loginCallback); })();
Получение и отображение информации
После авторизации часть данных уже доступна в , например, текущий пользователь. Другие данные (например, список объектов) необходимо сначала запросить с сервера.
Чтобы вывести имя пользователя на экран, добавим новый элемент , добавим для него CSS стили и выведем имя пользователя.
... body> div id="username" class="username">/div> script src="https://hst-api.wialon.com/wsdk/script/wialon.js">/script> ...
/* style.css */ .username { border1px solid #666;}
// script.js ... // обработчик ответа авторизации function loginCallback(code) { if (code) { alert('Ошибка авторизации: ' + code); } else { alert('Авторизации прошла успешно'); var user = session.getCurrUser(); document.getElementById('username').innerHTML = user.getName(); } }
Для того чтобы вывести список доступных объектов, необходимо выполнить запрос поиска объектов. Для этого объявим новую функцию , которую вызовем после успешной авторизации в функции . Она запросит у сервера список объектов с данными из последнего сообщения и выведет его в виде таблицы.
// script.js ... function printItems() { var searchSpec = { itemsType"avl_unit", // тип искомых элементов системы Wialon propName "sys_name", // имя свойства, по которому будет осуществляться поиск propValueMask "*", // значение свойства — могут быть использованы * | , > sortType "sys_name" // имя свойства, по которому будет осуществляться сортировка ответа }; var dataFlags = wialon.item.Item.dataFlag.base | // флаг базовых свойств wialon.item.Unit.dataFlag.lastMessage; // флаг данных последнего сообщения // запрос поиска объектов session.searchItems(searchSpec, true, dataFlags, , , function(code, data) { if (code) { alert(wialon.core.Errors.getErrorText(code)); return; } // генерация таблицы данных var table = '
Unit | Last message |
;
var pos;
for (var i = ; i data.totalItemsCount; i++){
pos = data.itemsi.getPosition();
table += » + data.itemsi.getName() + ‘
‘;
if (pos) {
table += » + pos.y + ‘
‘ + pos.x + ‘
‘ +
wialon.util.DateTime.formatTime(pos.t);
} else {
table += ‘
‘;
}
table += ‘
‘;
}
table += ‘
‘;
document.querySelector(«#units»).innerHTML = table;
});
}
…
... // script.js function loginCallback(code) { if (code) { alert('Ошибка авторизации: ' + code); } else { alert('Авторизации прошла успешно'); var user = session.getCurrUser(); document.querySelector("#username").innerHTML = user.getName(); printItems(); } } ...
Для вывода таблицы добавим элемент на страницу
... body> div id="username" class="username">/div> div id="units">/div> script src="https://hst-api.wialon.com/wsdk/script/wialon.js">/script>
и немного изменим таблицы стилей.
/* style.css */ .username, td { border1px solid #666; }
Построение слоя треков
Так же Wialon дает возможность не просто загрузить сообщения, но и построить трек по этим сообщениям. Для этого нужно загрузить сообщения в специальный графический слой. Слой треков можно использовать так же как и загрузчик сообщений, единственное отличие между ними — это графическая составляющая.
Создадим слой треков по сообщениям, полученным с 01.01.2013 по 20.01.2013 при помощи запроса render/create_messages_layer:
https://hst-api.wialon.com/wialon/ajax.html?svc=render/create_messages_layer& params={ "layerName":"messages", "itemId":34868, "timeFrom":1357938000, "timeTo":1358715599, "tripDetector":1, "trackColor":cc713cff, "trackWidth":5, "arrows":1, "points":0, "pointColor":0, "annotations":0 }&sid=
Результат выполнения:
{ "name" "messages", "bounds" 53.8326976, 27.2796096, 53.9644416, 27.6123168, "units" { "id" 34868, "msgs" { "count" 5951, "first" { "time" 1356984476, "lat" 53.9077377319, "lon" 27.5011463165 }, "last" { "time" 1358538957, "lat" 53.8397254944, "lon" 27.5608959198 } }, "mileage" 699169.703025, "max_speed" 118 } }
Загруженные сообщения можно просмотреть или удалить, так же можно получить тайлы графического слоя при помощи запроса avl_render:
https://hst-api.wialon.com/adfurl1/avl_render/590_329_7/.png
Результат выполнения:
Мониторинг с любого устройства
Мониторинговая система “Wialon Local” устанавливается на сервере владельца или клиента.
Недавно появилась обновленная версия серверного продукта – “Wialon Local 1904”. Чем порадовала новая ревизия?
1. Количество объектов увеличилось до 20 000.
2. Разработчики добавили звуковое сопровождение.
3. Появился табличный калькулятор.
4. Аналита стала еще удобнее.
5. Уведомления отправляются в Telegram;
Управление выполняется через приложение “Fleetrun”.
Скачать Виалон ГЛОНАСС можно на смартфон или компьютер. Интерфейс интуитивно понятен. В разделах отображается информация о техническом состоянии авто, событиях. Поддерживаются дорожные карты Google Maps и других сервисов.
Использование операторов сравнения в поиске
В поле propValueMask можно использовать операторы сравнения, такие как , =, >=, ⇐.
Если поле для поиска строковое, то система будет искать числа лишь в начале поля (имени, произвольной строки).
Если поле числовое, то будет анализироваться всё число.
Пример 1:
"itemsType""avl_unit","propName""sys_name,sys_name","propValueMask"">=32,
Найдутся все объекты, имя которых начинается с чисел в диапазоне от 32 (включительно) до 33.5 (включительно)
Пример 2:
"itemsType""avl_resource","propName""sys_account_balance,sys_account_balance","propValueMask"">2,
Найдутся все ресурсы и учётные записи, у которых баланс больше 2, но меньше либо равен 23.
Также можно использовать оператор «=» в случае, если значение поля начинается с «>» или «
Пример 3:
"itemsType""avl_unit","propName""sys_name","propValueMask""=>123"
Поиск найдет объект с именем ‘>123’ (если они существуют).
Пример управления получением событий изменения прав доступа на элемент / удаления, создания объекта.
1. Подписка:
/wialon/ajax.html?svc=core/update_data_flags¶ms={"spec":}&sid=
Ответ:
[]
2. Изменения прав доступа пользователя с id:«15444406» на элемент с id:«17090192» («Просмотр элемента и его основных свойств»):
/wialon/ajax.html?svc=user/update_item_access¶ms={"userId":15444406,"itemId":17090192,"accessMask":1}&sid=
Ответ:
{}
3. Получение avl_evts:
/avl_evts?sid=
Ответ:
{"tm":1526397552, /* время */ "events":[{ "i":-5, /* событие изменения прав доступа на элемент */ "d":{ "a":[{ "t":"avl_unit", /* тип элемента - объект */ "ids": /* id элемента */ }] } }]}
4. Создание элемента.
/wialon/ajax.html?svc=core/create_unit¶ms={"creatorId":15444406,"name":"New unit","hwTypeId":"13028700","dataFlags":1}&sid=
Ответ:
{"item":{"nm":"New unit","cls":2,"id":17298228,"mu":0,"uacl":-1},"flags":1}
5. Получение avl_evts.
{"tm":1526402957, "events":[{ "i":15444406, /* id пользователя */ "t":"u", /* тип события - создание объекта */ "d":{"prpu":{ "monu":"", /* id элемента */ "used_hw":"{\"13028700\":1,\"13285316\":0}"} } }]}
6. Удаление элемента.
/wialon/ajax.html?svc=item/delete_item¶ms={"itemId":17298228}&sid=
Ответ:
{}
7. Получение avl_evts.
{"tm":1526403113, /* время */ "events":[{ "i":17298228, /* элемент с id 17298228 */ "t":"d"}] /* тип события - удаление */ }
8. Отписка:
/wialon/ajax.html?svc=core/update_data_flags¶ms={"spec":}&sid=
Ответ:
[]
Уникальные торговые предложения
Разработчики предлагают клиентам отдельную программу расчета топлива. В распоряжении руководителя 20 карт ресурсов, 180 видов графиков и таблиц.
Операторы компании постоянно на связи с клиентом. Диспетчеры дают консультации. Помогают решить проблемы, связанные с работой софта.
С программой “Виалон” владелец просматривает движение транспорта онлайн. Выполняется контроль расхода ГСМ с высокой точностью.
Контроль за поведением водителей улучшает качество вождения. Это исключает штрафы за нарушение правил. Помогает избежать аварий и изнашивания деталей.
Программа строит удобный маршрут. Сокращает расстояние.
В разделе “Свойства отчета” вы увидите доступные характеристики:
• количество поездок;
• средняя скорость;
• обороты двигателя;
• вес груза.
Опция “Видеомониторинг” позволяет просматривать действия водителя за рулем. Следить за передвижением транспорта на нужном участке пути.
Типы сортировок
По-умолчанию сортировка (прямая) работает так:
- любое имя разбивается на составляющие для сортировки (символы, числа);
- вначале сортируются цифры, затем символы;
- символ «-» как дефис идёт раньше чисел и символов (см. специальную сортировку ниже);
- поддерживается сортировка чисел с точкой (3.12), чисел с плавающей точкой (2e10; 5.1E-2).
Прямая (вернет значения, отсортированные по возрастанию):
"sortType"""
Обратная (вернет значения, отсортированные по убыванию):
"sortType""!"
Комбинированная (вернет значения, отсортированные по первому признаку, в случае равенства значений – по второму и т.д.):
"sortType"",!"
Специальная: при этой сортировке символ «-» расценивается как обозначение отрицательного числа (по-умолчанию «-» расценивается системой как «дефис», а не как «минус»; при включении опции числа с символом «-» перед ними будут расцениваться отрицательными числами при сортировке):
"sortType""-"
Добавление элементов в сессию
Отслеживание событий элементов является одной из важнейших функций Wialon. Чтобы получать события от элементов, данные элементы должны быть добавлены в сессию.
Существует 3 способа добавления элементов в сессию: по типу, списком ID и по ID.
Например, нужно добавить в сессию три объекта: Bavarian Tractor, Alabama, Touareg. Поскольку известны ID этих объектов, то добавляем эти объекты, используя значение col для параметра «type»:
https://hst-api.wialon.com/wialon/ajax.html?svc=core/update_data_flags& params={ "spec":, "flags":1, "mode":0 /* замена флагов */ } ] }&sid=
Т.к. был установлен только базовый флаг, то от данных трех объектов будут приходить только события об изменении названия.
Внимание! Значение параметра «mode» установленное в 0 говорит о том, что какие бы флаги не стояли ранее у элемента, они будут заменены полностью на те, что указаны в запросе.
Результат выполнения:
{ "i" 34868, "d" null, "f" 1 }, { "i" 22800, "d" null, "f" 1 }, { "i" 553632, "d" null, "f" 1 }
Далее, предположим, что отслеживать события объекта Touareg нам больше не нужно, следовательно, его можно удалить из сессии. Т.к. нам нужно осуществить действие только над одним объектом, в запросе указывается значение id для параметра «type»:
https://hst-api.wialon.com/wialon/ajax.html?svc=core/update_data_flags& params={ "spec":[{ "type":"id", "data":553632, "flags":1, "mode":2 /* снятие флагов */ }] }&sid=
Внимание! Для полного удаления объекта из сессии в параметре «flags» должна стоять единица, то есть мы перестаем получать какие-либо события от объекта, только если выполняем запрос на удаление базового флага. Если же при добавлении объекта в сессию был указан флаг, например 3, а при удалении 2, то оставшийся флаг у объекта будет равен 1
Следовательно мы отписались от получения событий, за которые отвечает флаг 2, но остались подписаны на события флага 1.
Результат выполнения:
{ "i" 553632, "d" null, "f" }
Результатом того, что объект удален из сессии является значение поля «f» равное 0.
Предположим, что объект добавлен в сессию, например — Bavarian Tractor, но нам теперь нужно обрабатывать не только события изменения имени, но и события изменения счетчиков. Не обязательно удалять объект из сессии и добавлять его с новым флагом, можно просто к текущим флагам объекта добавить новые:
https://hst-api.wialon.com/wialon/ajax.html?svc=core/update_data_flags& params={ "spec":[{ "type":"id", "data":34868, "flags":8192, "mode":1 /* добавление флагов */ }] }&sid=
Результат выполнения:
{ "i" 34868, "d" { "cfl" 1298, "cnm" 45414, "cneh" , "cnkb" 43602 }, "f" 8193 }
Обратите внимание: в запросе добавляется флаг 8192, а в результирующем JSON указано значение «f» равное 8193. Это значит, что к уже имеющемуся значению «f», т.е
единице, добавили новые флаги и ответ вернулся уже с суммой установленных флагов.
Если же нужно отслеживать события всех элементов конкретного типа, то в параметре «type» нужно указать значение type:
https://hst-api.wialon.com/wialon/ajax.html?svc=core/update_data_flags& params={ "spec": }&sid=
Расширенная форма
Форма предназначена для мобильных и иных приложений.
http//{host}/login.html
http//{host}/login.html?client_id=...&access_type=...&activation_time=...&duration=...&lang=...&flags=...&user=...&redirect_uri=...&response_type=...&css_url=...
Все параметры необязательны
Название | Описание | Значение по-умолчанию |
---|---|---|
client_id | название приложения/сайта/клиента, для которого сгенерировать токен |
название сайта (title) |
access_type | 0x100 | |
activation_time | время активации токена (время UTC в секундах: 0 — сейчас) |
|
duration | время жизни токена (в секундах) | 2592000 (30 дней в секундах) |
lang | язык (en, ru, …); | |
flags | флаги: 0x1 — возвращать в ответе имя пользователя |
|
user | имя пользователя (подставится в поле логина) |
|
redirect_uri | URL, на который переадресовать страницу и передать результаты авторизации |
сама форма login.html |
response_type | возвращать в ответе токен (token) или AuthHash (hash) | token |
css_url | URL к CSS-файлу с произвольными стилями для формы |
В результате успешной авторизации по данной форме произойдёт переадресация на redirect_uri и будут переданы следующие GET-параметры:
- access_token — 72-значный токен, который можно сохранить и использовать для авторизации в дальнейшем;
- user_name — имя авторизованного пользователя (если при генерации токена был передан флаг 0x1).
В случае ошибки авторизации произойдёт переадресация на форму логина, выведется соответствующая ошибка и будут переданы следующие GET-параметры:
- svc_error — код ошибки;
- client_id;
- access_type;
- activation_time;
- duration;
- flags.
После успешного получения 72-значного токена его можно использовать в своих приложениях для авторизации:
svc=tokenlogin¶ms={"token""","operateAs"""}
Внимание! Количество токенов для одного пользователя ограничено одной тысячей.
Нишевые решения
Итак, какие решения предлагает разработчик?
1. Приложение «Fleetrun» создано для учета расходов на техническое обслуживание.
2. «Eco Driving» отслеживает стиль вождения. Учитывает скорость торможения и повороты.
3. Утилита “NimBus” контролирует маршрутные такси.
4. Приложение «Hecterra» используется в аграрной сфере. Отслеживает посевов, обработку полей.
5. С программой «Logistics» легко контролировать службы доставки. Исключаются задержки и опоздания.
Приложения работает на смартфонах с Android и iOS.
Существуют также системы, которые обязательны для установки.
Помимо платформы Wialon, существуют и другие, например, система экстренного реагирования при авариях на дороге. ЭРА ГЛОНАСС, что это? Это “тревожная кнопка”, которая передает сигнал о происшествии. Сообщение поступает оператору, затем – спасательным службам.
Поделитесь материалом в соц сетях:
Возвращаемый результат
{ "searchSpec"{ /* условия поиска */ "itemsType":text>, /* тип элементов*/ "propName":text>, /* имя свойства */ "propValueMask":text>, /* значение свойства */ "sortType":text>, /* свойство для сортировки*/ "propType":text> /* тип свойства */ }, "dataFlags":uint>, /* примененные флаги видимости */ "totalItemsCount":uint>, /* количество найденных элементов*/ "indexFrom":uint>, /* начальный индекс */ "indexTo":uint>, /* конечный индекс */ "items"{...} /* найденные элементы */ }
Формат элементов массива «items» зависит от типа элементов, заданного при поиске. Форматы всех типов данных перечислены в разделе Форматы данных.
Шаг 1: Создание пустой страницы
Для начала создадим папку для нашего проекта со следующей структурой и содержанием:
app # корневая папка проекта js script.js # JavaScript-файл, содержащий логику работы приложения css style.css # css-стили index.html # html-разметка
index.html — шаблон простой разметки
html> head> meta charset="utf-8"> title>Новый Wialon Apptitle> link rel="stylesheet" type="text/css" href="css/style.css"> head> body> p>Новый Wialon Appp> script src="js/script.js">/script> body> html>
style.css — стили полноэкранного режима
html, body { margin ; padding ; width 100%; height 100%; color #333; font-familyArial; }
script.js
(function() { alert('Привет, Wialon!'); })();
Для проверки откройте приложение в браузере. Если всё сделано верно, на экране должна отобразиться страница с надписью Новый Wialon App, а также появиться всплывающее сообщение Привет, Wialon!
Описание Приложения
Мобильное приложение Wialon – это доступ к системе GPS/ГЛОНАСС мониторинга транспорта Wialon в любое время в любой точке мира. Используйте базовые и продвинутые возможности веб-версии системы в удобном мобильном интерфейсе:- Управление списком объектов мониторинга. В режиме онлайн получайте необходимую информацию о парамертах движения, зажигания и местонахождении объекта, а также об актуальности данных.- Работа с группами объектов. Посылайте команды группам объектов, а также находите нужную группу по названию.- Режим карты
Получайте доступ к объектам, геозонам, трекам и маркерам событий на карте с возможностью определения собственного местоположения.- Обратите внимание! Объекты можно искать прямо на карте с помощью специального поля поиска.- Режим слежения. Контролируйте местонахождение и показатели отдельных объектов.- Отчеты
Стройте отчеты, выбирая объект мониторинга, шаблон отчета и временной интервал – получайте аналитику, где бы вы ни были. Доступен экспорт отчетов в формате PDF.- Управление уведомлениями. Получайте уведомления, создавайте новые, редактируйте существующие и просматривайте их историю.- Функция Локатора. Делитесь местоположением объектов при помощи ссылок.- Информационные сообщения из CMS
Не пропускайте оповещения системы с важной информацией!Нативное приложение Wialon дает пользователям возможность использовать всю мощь платформы Wialon, оставаясь мобильными. Доступно для смартфонов и планшетов.
Read more
Знакомство с системой Wialon
Платформа Виалон программа ГЛОНАСС предназначена для отслеживания перемещения машин, автобусов, такси, большегрузов, тракторов. Используется спутниковая и сотовая связь. Устройства соединяются по технологии IoT.
Виалон Хостинг – это комплексное ПО, которое закрепляется за сайтом компании. К системе Виалон ГЛОНАСС мониторинг транспорта подключены больше миллиона авто в 130 странах.
Активация выполняется в четыре шага.
1. Скачивание на смартфон программы «WiaTag» из магазина Google Play.
2. Подключение к системе ГЛОНАСС Вайлон. Создание объекта.
3. Отслеживание движение транспорта. Получение уведомлений о состоянии объекта.
4. Последний этап. Создание аналитического отчета.
Вы можете подключить программу бесплатно. Чтобы протестировать ГЛОНАСС Виалон, скачайте демо-версию. Сделать это можно на компании. Для этого сначала пройдите регистрацию. Затем оставьте контакты для обратной связи.
Сервис “Wialon Logistics” используют службы доставки различных групп товаров.