1

Как получить список транспорта и других справочников

Topic: Как получить список транспорта и других справочников

Как с помощью Wialon API  можно получить список транспортных средств, если выполнен вход в систему.

Например имеет запрос

https://hst-api.wialon.com/wialon/ajax. … ord:12345}

Приходит ответ
{"host":"77.233.5.213","eid":"9fbf53da61ec9413df140b34ead24237","au":"12345","tm":1404469974,"user":{"nm":"Gennady","cls":1,"id":11932338,"prp":{"fpnl":"devices","hbacit":"{\"horizontalbar_menu_item_monitoring\":{\"layer\":true},\"horizontalbar_menu_item_routes\":{\"layer\":true},\"horizontalbar_menu_item_messages\":{\"layer\":true},\"horizontalbar_menu_item_reports_ctl\":{\"layer\":true},\"horizontalbar_menu_item_pois\":{\"layer\":true},\"horizontalbar_menu_item_geozones\":{\"layer\":true},\"horizontalbar_menu_item_drivers\":{\"layer\":true},\"horizontalbar_menu_item_jobs\":{},\"horizontalbar_menu_item_notifications\":{},\"horizontalbar_menu_item_users\":{},\"horizontalbar_menu_item_devices\":{},\"horizontalbar_menu_item_units_groups\":{},\"horizontalbar_menu_item_tools\":{},\"horizontalbar_menu_item_apps\":{}}","hpnl":"horizontalbar_menu_item_devices","mont":"1","monu":"[\"704063\",\"704064\",\"704065\",\"704067\",\"704068\",\"5186820\"]","monuv":"[]","msc":"1","mu_fast_track_ival":"0"},"crt":211222,"bact":11932339,"mu":0,"fl":4,"hm":"","uacl":2146947},"classes":{"avl_hw":4,"avl_resource":3,"avl_retranslator":7,"avl_route":6,"avl_unit":2,"avl_unit_group":5,"user":1}}

Как я могу получить список моделей ТС или список ТС по этим данным
Спасибо

2

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Запрос core/login содержит уникальный идентификатор сессии eid. Его значение надо передавать параметром sid в каждом запросе.
В вашем примере:

{...,"eid":"9fbf53da61ec9413df140b34ead24237",...}

Для поиска элементов используется запрос core/search_items
Пример поиска всех объектов, подробнее codesamples/search

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&
params={
  "spec":{
    "itemsType":"avl_unit",
    "propName":"sys_name",
    "propValueMask":"*",
    "sortType":"sys_name"
  },
  "force":1,
  "flags":1,
  "from":0,
  "to":0
}&sid=<your_sid>

Замените <your_sid>  на значение eid

3

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Спасибо за понятный ответ.

Пока не нашел тип для itemstype, для:

Клиентов
Пользователей
Моделей
Датчиков - может это тип unit_sensors
Настроек расчетов

Спасибо

4

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Здравствуйте
Получил список транспорта запросом

https://hst-api.wialon.com/wialon/ajax. … e815490287

Меня интересует свойства ТС, например:
{"nm":"Рў 362 РћРњ","cls":2,"id":5186820,"mu":0,"uacl":880265936895}

Запрос с флагом 0x00000002 - Произвольные свойства

https://hst-api.wialon.com/wialon/ajax. … e815490287

возвращает код ошибки  4

Что делаю не так ?

5

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

...params={"id":704065,"flags"0x00000002}&sid=...

Не хватает двоеточия после "flags".
В "params" необходимо передавать валидный Json. В случае {"error":4} проверяйте, например, здесь http://json.parser.online.fr/

6

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Спасибо.
Получил ответ
{"item":{"nm":"Рў 362 РћРњ","cls":2,"id":5186820,"mu":0,"pos":{"t":1404738356,"y":48.6310577393,"x":42.854057312,"z":89,"s":75,"c":65,"sc":10},"lmsg":{"t":1404738356,"f":7,"tp":"ud","pos":{"y":48.6310577393,"x":42.854057312,"z":89,"s":75,"c":65,"sc":10},"i":130,"o":0,"p":{"vib":0,"vib_count":0,"adc1":0,"adc2":28.9,"adc3":0,"adc4":0,"adc5":0,"adc6":0,"count1":41045023,"count2":0,"fuel1":221,"fuel2":3976,"fuel3":3848,"temp1":43,"temp2":0,"temp3":0,"acc":0,"pwr_int":0,"pwr_ext":14.21,"hdop":0.1,"sats_glonass":0,"sats_gps":10}},"uacl":880265936895},"flags":1025}

Но это нге то, что нужно.
Пожалуйста скажите, как получить свойства ТС по его ID

Спасибо

7

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Какие именно свойства вы хотите получить?
Все возможные можете получить подав флаг 0xffffffff, но вряд ли вам это нужно.
В зависимости от того, что вы хотите получить в ответе указывайте нужные флаги в запросе. Судя по вашему последнему ответу вы подавали флаги последнего местоположения.

Development Department
Gurtam
8

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Спасибо, снова ничего непонятно, извините.

Итак на запрос

https://hst-api.wialon.com/wialon/ajax. … 63d4c43c13

Получен ответ
{"item":{"nm":"Рў 362 РћРњ","cls":2,"id":5186820,"mu":0,"uacl":880265936895},"flags":1}
Что это означает

Непонятно-флаг : 0x00000001 - мне напрямую указывать в запросе или по-другому?
Где найти описание полученного ответа -
Основные свойства

Флаг - 0x00000001

{
    "nm":<text>,    /* название */
    "cls":<uint>,    /* ID базового класса "avl_unit" */
    "id":<uint>,    /* ID объекта */
    "uacl":<uint>    /* уровень доступа к объекту у текущего пользователя */
} - насколько я понимаю это формат ответа? Или запроса ? Где можно посмотреть пример ?
Спасибо

9

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

podpletenny wrote:

Флаг - 0x00000001
{
    "nm":<text>,    /* название */
    "cls":<uint>,    /* ID базового класса "avl_unit" */
    "id":<uint>,    /* ID объекта */
    "uacl":<uint>    /* уровень доступа к объекту у текущего пользователя */
} - насколько я понимаю это формат ответа? Или запроса ? Где можно посмотреть пример ?

Это формат ответа. В зависимости от поданных флагов в возвращаемый JSON добавляются поля. И как вы могли заметить, мы не соврали ни разу, вы подали флаг 0х1 - вы и получили только основные свойства объекта.
Не могу понять что вам нужно объяснить. Вы все сделали правильно.
Еще момент, возможно не очевидный, флаги можно комбинировать, например вам нужны основные свойства и счетчики, это сумма двух флагов 0x1 и 0x2000, в итоге нужно подать 0x2001.

А пример, как бы парадоксально это не звучало, можно посмотреть в документации.

Development Department
Gurtam
10

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Здравствуйте.
Возможно я непонятно выражаюсь.
Вопрос.

Как получить список моделей транспорта ? (т.е. простой справочник)
Где можно посмотреть пример ?

11

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

podpletenny wrote:

Как получить список моделей транспорта ?

В терминологии Wialon понятие "модель транспорта" не используется (как и понятие "справочник"), мы с вами разговариваем на разных языках.
Ознакомьтесь, пожалуйста, с документацией и уточните свой вопрос.

12

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

На данной странице
http://docs.gurtam.com/ru/hosting/cms/units/units
Мы видим Grid с ТС. Там есть поле "Тип устройства", где показаны некоторые типы.
Вопрос
КАК получить список ВСЕХ доступных устройств

13

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

http://sdk.wialon.com/wiki/ru/sidebar/r … t_hw_types

Development Department
Gurtam
14

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Непонятно с флагами в запросе search_item
http://sdk.wialon.com/wiki/ru/sidebar/r … les/search

Как их можно комбинировать вместе

15

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Как получит список типов датчиков

http://docs.gurtam.com/ru/hosting/cms/u … sors/props

16

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Флаги можно складывать оператором "|".

podpletenny wrote:

Как получит список типов датчиков

http://sdk.wialon.com/wiki/ru/sidebar/r … ate_sensor

Development Department
Gurtam
17

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Здравствуйте
есть ли отличие между пользователем и клиентом вашей системы

Как можно получить список водителей

18

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

http://sdk.wialon.com/wiki/ru/sidebar/r … ate_sensor - это создание самого датчика

Т.е. ТИПЫ датчиков захоркодены

19

Как получить список транспорта и других справочников

(edited by zuve 11/07/2014 14:57:18)

Re: Как получить список транспорта и других справочников

podpletenny wrote:

Как можно получить список водителей

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

podpletenny wrote:

Т.е. ТИПЫ датчиков захоркодены

да

Development Department
Gurtam
20

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Спасибо

Запрос к ресурсам с флагом 0x00000100

https://hst-api.wialon.com/wialon/ajax. … 9a9dd1c5b1

Выдал нормальный ответ

{"searchSpec":{"itemsType":"avl_resource","propName":"sys_name","propValueMask":"*","sortType":"sys_name","propType":""},"dataFlags":1,"totalItemsCount":2,"indexFrom":0,"indexTo":0,"items":[{"nm":"Gennady","cls":3,"id":11932339,"mu":0,"uacl":-1},{"nm":"GStest","cls":3,"id":213691,"mu":0,"uacl":1108445158719487}]}

------------------------------------

Запрос к ресурсам с флагом 0x00000100

ttps://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={ "spec":{ "itemsType":"avl_resource", "propName":"sys_name", "propValueMask":"*", "sortType":"sys_name" }, "force":1, "flags":0x00000100, "from":0, "to":0 }&sid=d19c06ffceb729913274aaf42a75f51f

Вывел некорректный ответ
{"searchSpec":{"itemsType":"avl_resource","propName":"sys_name","propValueMask":"*","sortType":"sys_name","propType":""},"dataFlags":256,"totalItemsCount":2,"indexFrom":0,"indexTo":0,"items":[{"drvrs":{},"drvrsmax":-1},{"drvrs":{},"drvrsmax":-1}]}


Где у меня ошибка ?

Спасибо

21

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

ответ абсолютно верный: 2 ресурса и ни в одном нет водителей.
маленький совет: всегда добавляйте к флагам поиска базовый флаг иначе будет трудно идентифицировать элемент, в данном случае ресурс.

Development Department
Gurtam
22

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

podpletenny wrote:

Вывел некорректный ответ
{"searchSpec":{"itemsType":"avl_resource","propName":"sys_name","propValueMask":"*","sortType":"sys_name","propType":""},"dataFlags":256,"totalItemsCount":2,"indexFrom":0,"indexTo":0,"items":[{"drvrs":{},"drvrsmax":-1},{"drvrs":{},"drvrsmax":-1}]}

Ответ корректен и полностью совпадает с описанным форматом format/resource для флага 0x100

Каждый указанный флаг добавляет свою информацию в ответ сервера:

  • укажите флаг 0x1 - получите "Основные свойства"
    {
        "nm":<text>,    /* название */
        "cls":<uint>,    /* ID базового класса "avl_resource" */
        "id":<uint>,    /* ID ресурса */
        "uacl":<uint>    /* уровень доступа к ресурсу у текущего пользователя */

    }
  • укажите флаг 0x100 - получите "Водителей"
    {
        "drvrs":{
            <text>:{    /* порядковый номер водителя */
                "id":<long>,    /* ID */
                "n":<text>,    /* имя */
                "c":<text>,    /* код */
                "jp": {            /* произвольные поля */
                    <text>:<text>,        /* название: значение */
                    ...
                },
                "ds":<text>,    /* описание */
                "p":<text>,    /* телефонный номер */
                "r":<double>,    /* соотношение сторон изображения */
                "ck":<ushort>    /* контрольная сумма (CRC16) */
                "bu":<long>,    /* назначенный объект */
                "pu":<long>,    /* предыдущий назначенный объект */
                "bt":<uint>,    /* время последнего назначения/снятия */
                "pos":{        /* местоположение */
                    "y":<double>,    /* широта */
                    "x":<double>    /* долгота */
                }
            },
            ...
        },
        "drvrsmax":<long>    /* максимальное количество водителей, разрешенное тарифным планом (-1 - не ограничено) */
    }
  • укажите флаг 0x101 - получите "Основные свойства" + "Водители"
    {
        "nm":<text>,    /* название */
        "cls":<uint>,    /* ID базового класса "avl_resource" */
        "id":<uint>,    /* ID ресурса */
        "uacl":<uint>,    /* уровень доступа к ресурсу у текущего пользователя */

        "drvrs":{
            <text>:{    /* порядковый номер водителя */
                "id":<long>,    /* ID */
                "n":<text>,    /* имя */
                "c":<text>,    /* код */
                "jp": {            /* произвольные поля */
                    <text>:<text>,        /* название: значение */
                    ...
                },
                "ds":<text>,    /* описание */
                "p":<text>,    /* телефонный номер */
                "r":<double>,    /* соотношение сторон изображения */
                "ck":<ushort>    /* контрольная сумма (CRC16) */
                "bu":<long>,    /* назначенный объект */
                "pu":<long>,    /* предыдущий назначенный объект */
                "bt":<uint>,    /* время последнего назначения/снятия */
                "pos":{        /* местоположение */
                    "y":<double>,    /* широта */
                    "x":<double>    /* долгота */
                }
            },
            ...
        },
        "drvrsmax":<long>    /* максимальное количество водителей, разрешенное тарифным планом (-1 - не ограничено) */
    }
23

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

Спасибо
т.е нужно произвести побитовое сложение флагов? Или объединение их?
немного запутался. И почему в документации указан формат 0x00000001, а  у вас в примере 0х01(не силет в такой арифметике)

24

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

podpletenny wrote:

Спасибо
т.е нужно произвести побитовое сложение флагов? Или объединение их?
немного запутался. И почему в документации указан формат 0x00000001, а  у вас в примере 0х01(не силет в такой арифметике)

1. Правильнее использовать объединение, сложение совпадает с ним в частных случаях (объединение 0x1 | 0x1 = 0x1, сложение 0x1 + 0x1 = 0x2)
2. Флаги указаны в шестнадцатиричной системе, их можно складывать как и десятичные (0x1 + 0x100 = 0x101, но будьте внимательны 0x1 + 0x9 = 0xA).
3. Незначащие нули можно пропускать (0x1 == 0x01 == 1)

25

Как получить список транспорта и других справочников

Re: Как получить список транспорта и других справочников

У объекта drvrs -
поле text - это тоже некий объект?

  "drvrs":{
        <text>:{    /* порядковый номер водителя */
            "id":<long>,    /* ID */
            "n":<text>,    /* имя */
            "c":<text>,    /* код */
            "jp": {            /* произвольные поля */
                <text>:<text>,        /* название: значение */
                ...