Содержание

Поиск элементов

Одними из наиболее часто используемых запросов в Wialon являются поисковые запросы. В Wialon возможны два вида поиска:

Поиск элемента по ID

Простейшим поиском, является поиск по идентификатору. Если известен 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
    }]
}