1

Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

Тема: Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

Всем доброго времени суток, в нашу компанию на обслуживание пришел клиент. У которого в том числе есть стороннее программное обеспечение АИС "Автотранспорт". т.к. мы ранее не сталкивались в работе с SDK, в связи отсутствием действующего программиста.

Компания разработчик АИС "Автотранспорт" также ранее не сталкивалась  с SDK, в связи со сжатыми сроками по интеграции и нарастающем негативе со стороны клиента просим вас оказать помощь в проведении интеграции с данным ПО.  Ранее компания разработчик ПО проводила интеграцию по нижеследующему примеру:

В текущем функционале мы получаем данные по GPS по следующему URL:


http://caepco.soft.kz/api/v1/units/6452 … detector=1

где 6452 - номер gps устройства

1557231600 unix время начала периода
1557549000 unix время конца периода для получения километража.

Ответ:
{"mileage":198761.696397,"msgs_count":6196,"max_speed":59}

Где mileage сколько машина проехала в метрах.

Можете ли вы помочь адаптировать данный код под текущий функционал SDK ?

2

Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

(24/08/2019 05:57:55 отредактировано RedRock)

Re: Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

Через API виалона нет возможности создать запрос по которому придет ответ с отфильтрованный по поездкам пробегом, если нужен пробег по всем сообщением то есть запрос:
https://sdk.wialon.com/wiki/ru/sidebar/ … ages_layer
где в ответе присутствует:
"count":<uint>,        /* количество сообщений */
"mileage":<double>,    /* пробег за интервал(метров) */
"max_speed":<unit>    /* максимальная скорость за интервал */
если включите детектор поездок, то в ответ придет множество пробегов по поездкам.
Если вам нужен конкретный ответ, то необходимо писать свою прослойку в виде веб-сервиса с очень простой логикой:

  • Запрос к серверу содержит tokin, itemId, timeFrom, timeTo.

    • Tokin можете вшить в программу, если нет необходимости в реализации такого решения для более чем одного пользователя
    • Вместо itemId можно использовать Имя объекта или любую другую уникальную характеристику вам только будит необходимо произвести поиск при помощи запроса:
      https://sdk.wialon.com/wiki/ru/sidebar/ … arch_items

  • Формирование ответа.
FFA0-0BBB-8911-15BB

https://www.reg.ru
3

Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

Re: Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

RedRock пишет:

Через API виалона нет возможности создать запрос по которому придет ответ с отфильтрованный по поездкам пробегом, если нужен пробег по всем сообщением то есть запрос:
https://sdk.wialon.com/wiki/ru/sidebar/ … ages_layer
где в ответе присутствует:
"count":<uint>,        /* количество сообщений */
"mileage":<double>,    /* пробег за интервал(метров) */
"max_speed":<unit>    /* максимальная скорость за интервал */
если включите детектор поездок, то в ответ придет множество пробегов по поездкам.
Если вам нужен конкретный ответ, то необходимо писать свою прослойку в виде веб-сервиса с очень простой логикой:

  • Запрос к серверу содержит tokin, itemId, timeFrom, timeTo.

    • Tokin можете вшить в программу, если нет необходимости в реализации такого решения для более чем одного пользователя
    • Вместо itemId можно использовать Имя объекта или любую другую уникальную характеристику вам только будит необходимо произвести поиск при помощи запроса:
      https://sdk.wialon.com/wiki/ru/sidebar/ … arch_items

  • Формирование ответа.

Насколько я знаю клиенту нужны только цифровые данные по пробегу с привязкой к тому или иному ТС и.т.д. поэтому в графической оболочке необходимости нет

4

Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

Re: Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

RedRock пишет:

Через API виалона нет возможности создать запрос по которому придет ответ с отфильтрованный по поездкам пробегом

Есть события (events/load, events/get). Ими можно получить поездки за определённый интервал времени, узнать дистанцию/время каждой поездки, суммарную дистанцию/время/кол-во сообщений.

Например, поездки за последние два часа у моего тестового объекта:

remote.remoteCall("events/load", {
  itemId: 12,
  ivalType: 1,
  timeFrom: session.getServerTime() - 2 * 60 * 60,
  timeTo: sdk.s.getServerTime(),
  detectors: [{ type: 'trips', filter1: 0 }],
  selector: {
    expr: 'trips',
    timeFrom: session.getServerTime() - 2 * 60 * 60,
    timeTo: session.getServerTime(),
    detalization: 1 + 2 + 0x80
  }
});

Ответ:

+ открыть спойлер
{
  "events": { "trips": { "0": 2 } },
  "selector": {
    "trips": {
      "0": [
        {
          "from": { "t": 1566817881, "y": 55.762298584, "x": 37.657409668 },
          "to": { "t": 1566818241, "y": 55.7735900879, "x": 37.6271286011 },
          "m": 1566818481,
          "f": 0,
          "state": 1,
          "max_speed": 43,
          "curr_speed": 0,
          "avg_speed": 24,
          "distance": 2410,
          "odometer": 41919837,
          "course": 285,
          "altitude": 0
        },
        {
          "from": { "t": 1566818541, "y": 55.7735900879, "x": 37.6271286011 },
          "to": { "t": 1566822082, "y": 55.762298584, "x": 37.657409668 },
          "m": 1566822322,
          "f": 0,
          "state": 1,
          "max_speed": 132,
          "curr_speed": 0,
          "avg_speed": 29,
          "distance": 28842,
          "odometer": 41922247,
          "course": 340,
          "altitude": 0
        }
      ]
    },
    "summary": {
      "trips": {
        "0": {
          "countIvals": 2,
          "sumSeconds": 3901,
          "countMessages": 64,
          "sumDistance": 31252,
          "avgSpeed": 53,
          "maxSpeed": 132,
          "minSpeed": 0
        }
      }
    }
  }
}
5

Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

Re: Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

kutsevalexandr пишет:
RedRock пишет:

Через API виалона нет возможности создать запрос по которому придет ответ с отфильтрованный по поездкам пробегом, если нужен пробег по всем сообщением то есть запрос:
https://sdk.wialon.com/wiki/ru/sidebar/ … ages_layer
где в ответе присутствует:
"count":<uint>,        /* количество сообщений */
"mileage":<double>,    /* пробег за интервал(метров) */
"max_speed":<unit>    /* максимальная скорость за интервал */
если включите детектор поездок, то в ответ придет множество пробегов по поездкам.
Если вам нужен конкретный ответ, то необходимо писать свою прослойку в виде веб-сервиса с очень простой логикой:

  • Запрос к серверу содержит tokin, itemId, timeFrom, timeTo.

    • Tokin можете вшить в программу, если нет необходимости в реализации такого решения для более чем одного пользователя
    • Вместо itemId можно использовать Имя объекта или любую другую уникальную характеристику вам только будит необходимо произвести поиск при помощи запроса:
      https://sdk.wialon.com/wiki/ru/sidebar/ … arch_items

  • Формирование ответа.

Насколько я знаю клиенту нужны только цифровые данные по пробегу с привязкой к тому или иному ТС и.т.д. поэтому в графической оболочке необходимости нет

Причем тут графическая оболочка, вы отправляете запрос на свой вебсервис(без графической оболочки) и получаете ответ в том виде в котором вам надо!
rual, спасибо за еще один вариант.

FFA0-0BBB-8911-15BB

https://www.reg.ru
6

Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

(28/08/2019 06:50:48 отредактировано kutsevalexandr)

Re: Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

rual пишет:
rual пишет:

'

Здравствуйте, спасибо большое за пример, значения distance приходит в метрах?

"distance": 2410,

"distance": 28842,

7

Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

Re: Интеграция Wialon Hosting со сторонним ПО "АИС" Автотранспорт SDK

kutsevalexandr пишет:

Здравствуйте, спасибо за пример, большое за пример, значения distance приходит в метрах?

Да, в метрах.

Ещё важно понимать, что эти метры считаются по GPS (расстояния между координатами сообщений), поэтому с какой-то погрешностью будут отличаться от реальных.