Одними из наиболее часто используемых запросов в Wialon являются поисковые запросы. В Wialon возможны два вида поиска:
Простейшим поиском, является поиск по идентификатору. Если известен ID элемента, то можно получить любую доступную информацию о нем, используя запрос core/search_item. В качестве примера найдем объект по известному ID. Для того, чтобы в ответе содержалось местоположение объекта нужно установить флаг 0x00000400, также установим флаг 0x00000001 для того, чтобы узнать имя объекта. (Подробнее о флагах и форматах данных можно почитать в разделе Форматы данных.)
<your_wialon_pro_address>/ajax.html?svc=core/search_item& params={ "itemId":48, "flags":1025 }&ssid=<your_sid>
Результат выполнения:
{ "nm": "Auto001", "cls": 3, "id": 48, "pos": { "t": 1362551743, "f": 7, "tp": "udp", "l": "", "y": 55.76416, "x": 37.65644, "z": 0, "s": 43, "c": 345, "sc": 255, "y2": 0, "x2": 0, "i": 1, "o": 0, "p": { "adc1": 0.64453125 } }, "lmsg": "dup" }
Из ответа видно что объект с заданным идентификатором называется «Auto001» и последнее известное его местоположение это 37.65644 с.ш. и 55.76416 в.д.
Рассмотренный выше способ удобно применять когда нам нужно узнать подробную информацию об элементе с известным ID. Но зачастую требуется найти несколько элементов, удовлетворяющих критериям поиска, для этих целей используется запрос core/search_items. Например, найти всех пользователей можно следующим запросом:
<your_wialon_pro_address>/ajax.html?svc=core/search_items& params={ "spec":{ "itemsType":"user", "propName":"sys_name", "propValueMask":"*", "sortType":"sys_name" }, "force":1, "flags":1, "from":0, "to":0xffffffff }&ssid=<your_sid>
Звездочка в параметре «propValueMask» означает, что в результирующем массиве будут присутствовать пользователи с любым значением поля «sys_name», а это значит все доступные пользователи. Единица в параметре «flags» означает, что только минимальная информация о пользователе попадет в ответ (подробнее о флагах пользователя в разделе Пользователи). Значения параметров «from» и «to», равные 0 и 0xffffffff соответственно, указывают на то, что вернуть следует всех найденных пользователей.
Результат выполнения:
{ "searchSpec": { "itemsType": "user", "propName": "sys_name", "propValueMask": "*", "sortType": "sys_name" }, "dataFlags": 1, "totalItemsCount": 4, "indexFrom": 0, "indexTo": 3, "items": [{ "nm": "newuser", "cls": 1, "id": 49 }, { "nm": "qwerty", "cls": 1, "id": 30 }, { "nm": "user1", "cls": 1, "id": 39 }, { "nm": "wialon", "cls": 1, "id": 7 }] }
<your_wialon_pro_address>/ajax.html?svc=core/search_items& params={ "spec":{ "itemsType":"avl_unit", "propName":"22sys_user_creator", "propValueMask":"22ac745a8ec8eb54469607d30bfeffb807", /* свойство "gd" создателя */ "sortType":"sys_name" }, "force":1, "flags":1, "from":0, "to":0xffffffff }&ssid=<your_sid>
Результат выполнения:
{ searchSpec: { itemsType: "avl_unit", propName: "sys_user_creator", propValueMask: "ac745a8ec8eb54469607d30bfeffb807", sortType: "sys_name" }, dataFlags: 1, totalItemsCount: 3, indexFrom: 0, indexTo: 2, items: [{ nm: "unit1", cls: 3, id: 554 },{ nm: "unit2", cls: 3, id: 558 },{ nm: "unit3", cls: 3, id: 559 }] }