Wialon ActiveX для системы ГЛОНАСС и GPS мониторинга транспорта Wialon

С сегодняшнего дня в прайс-листы системы ГЛОНАСС и GPS мониторинга транспорта Wialon вошел новый модуль — Wialon ActiveX, который позволяет системным интеграторам и программистам предприятия своими силами использовать телематические данные от системы мониторинга — например для построения собственных отчетов либо выписки и контроля исполнения путевых листов.

Модуль выполнен в виде ActiveX COM компонента и может быть использован из любой среды разработки или COM-контейнера — например Excel, Word, 1С-предприятие и пр.

Wialon ActiveX работает через обыкновенное HTTP/HTTPS соединение в том числе и черех прокси сервер, что гарантирует успешное функционирование в сложных сетях крупных предприятий.

Подключение к COM-серверу Wialon ActiveX осуществляется через конструирование объекта «WialonActiveX.WialonConnection» реализующего интерфейс IWialonConnection. Пример кода с комментариями (но без проверок на ошибки Err) на Visual Basic:

' Главный компонент системы, обеспечивающий подключение к Wialon
Dim Wialon As Object
' Коллекция доступных объектов
Dim Units As Object
' Отдельный объект
Dim Unit As Object
' Строка ошибки Wialon
Dim ErrStr As String
' Коллекция сообщений от объекта
Dim Msgs As Object
' Счётчик
Dim i As Long
' Количество объектов в коллекции
Dim CountOfUnits As Long

' Создание объекта для подключения к Wialon
Wialon = CreateObject("WialonActiveX.WialonConnection")
' Проверка подключения
If Wialon Is Nothing Then
 ' Если ошибка, то вывод сообщения
 MsgBox("No Object")
 Return
End If
' Получение всех доступных объектов пользователю b3test с паролем test, от сервера activex.gurtam.com на 443 порту (SSL)
Units = Wialon.Login("https://activex.gurtam.com", 443, "b3test", "test")
' Проверка доступности объектов
If Units Is Nothing Then
 ' Если объекты недоступны, то получаем ошибку элемента ActiveX и также ошибку от Wialon
 MsgBox("Error = " + Err.Number.ToString())
 ErrStr = Wialon.GetLastError()
 MsgBox(ErrStr)
 Return
End If

' Получение количества досутпных объектов
CountOfUnits = Units.Count
' Вывод сообщения на экран о количестве доступных объектов
MsgBox(CountOfUnits.ToString())

' Запуск цикла для перебора всех объектов
For i = 1 To CountOfUnits
 ' Получение объекта из коллекции
 Unit = Units.Item(i)
 ' Проверка получен ли объект
 If Unit Is Nothing Then
 ' Если объект не получен, скорее всего произошла ошибка - выход
 MsgBox("Not unit")
 Return
 End If
 ' Получение сообщений от объекта за период (время в UNIX формате с 1 января 1070 г.)
 Msgs = Unit.GetMessages(1255112326, 1256312326)
 ' Проверка получены ли сообщения
 If Msgs Is Nothing Then
 ' Вывод сообщения, что сообщения не получены
 MsgBox("No messages for unit: " + Unit.Name)
 Else
 ' Вывод количества сообщений полученных от объекта
 MsgBox("Messages = " + Msgs.Count.ToString())
 ' Релиз объекта с сообщениями
 Msgs = Nothing
 End If
 ' Релиз объекта с объектом :)
 Unit = Nothing
Next i
' Всё, конец программы, больше не будем работать с этим объектом, делаем релиз
Wialon = Nothing
' Конец
MsgBox("End")

Модуль системы ГЛОНАСС и GPS мониторинга транспорта Wialon уже доступен для использования в серверном центре Wialon.

6 Комментарии “Wialon ActiveX для системы ГЛОНАСС и GPS мониторинга транспорта Wialon

  1. А можно ещё добавить функцию в «Отчёты», чтобы при нажатии на определённую поезку отображались не только начальная и конечная точки, но и весь маршрут? допустим если мне надо проверить маршруты машины за месяц. Это же не реально вбивать начало и конец каждой поезки, чтобы посмотреть движение детально.

  2. А когда?
    Просто новый клиент раньше работал на B2 и там был удобный отчёт «Отчёт по интервалу движения». С ним удобно было работать при просмотре передвижения за месяц или даже за день. Все движения разбивались по дням и каждый маршрут прорисовывался отдельно.

  3. Дмитрий, в ближайших планах такой функциональности нет. Более того здесь совершенно другая система отображения на карте (в том числе и треков) и выделение конкретного трека задача нетривиальная.

  4. Как из ActiveX достать «уникальный ID» конкретного Unitа? Мы разрабатываем систему мониторинга карьерного транспорта на основе Wialon. Объекты нашей системы возможно «привязать» к объектам в Wialon только по этому полю.

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

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