Содержание

Отчеты

Существует определенная специфика работы с отчетами. Все команды из раздела Отчеты кроме report/update_report могут быть выполнены только если сессия содержит результат выполнения отчета. Одновременно в сессии может быть выполнен только один отчет, поэтому если в ней содержатся результаты выполнения предыдущего отчета, перед выполнением следующего их следует удалить командой report/cleanup_result.

Выполнение отчета

Для выполнения отчета используется запрос exec_report:

<your_wialon_pro_address>/ajax.html?svc=report/exec_report&
	params={
		"reportResourceId":163266,
		"reportTemplateId":10,
		"reportObjectId":34868,
		"reportObjectSecId":0,
		"interval":{
			"from":1356984000,
			"to":1358711999,
			"flags":0
		},
		"tzOffset":134228528,
		"lang":"ru"
	}&ssid=<your_sid>

Результат выполнения:

{
    "reportResult": {
        "msgsRendered": 1,
        "stats": [
            ["Время в движении", "7:09:23"],
            ["Кол-во поездок", "120"],
            ["Количество остановок", "0"],
            ["Продолжительность стоянок", "19 дней 16:34:20"],
            ["Количество стоянок", "121"]
        ],
        "tables": [{
            "nm": "unit_trips",
            "text": "Поездки без остановок",
            "f": 4497,
            "r": 16,
            "c": 16,
            "h": ["№", "Дата", "Начало", "Нач. положение", "Конец", "Конеч. положение", "Водитель", "Длительность", "Моточасы", "Пробег", "Пробег (скорректированный)", "Ср. скорость", "Макс. скорость", "Кол-во поездок", "Нач. уровень", "Конеч. уровень"],
            "t": ["", "", "2013-01-01 17:36:58", "", "2013-01-20 18:26:50", "", "", "7:09:23", "0:00:00", "0.00 км", "0.00 км", "0 км\/ч", "118 км\/ч", "120", "0 л", "0 л"]
        }, {
            "nm": "unit_stays",
            "text": "Стоянки",
            "f": 272,
            "r": 74,
            "c": 5,
            "h": ["Начало", "Конец", "Длительность", "Положение", "Кол-во"],
            "t": ["2013-01-01 00:07:56", "2013-01-20 23:51:39", "19 дней 13:50:40", "", "74"]
        }],
        "attachments": [{
            "n": "График скорости и пробега",
            "t": "chart"
        }]
    },
    "reportLayer": {
        "name": "report unit_msgs",
        "bounds": [53.8326976, 27.2796096, 53.9644416, 27.6123168],
        "units": [{
            "id": 34868,
            "msgs": {
                "count": 6585,
                "first": {
                    "time": 1356984476,
                    "lat": 53.9077377319,
                    "lon": 27.5011463165
                },
                "last": {
                    "time": 1358711499,
                    "lat": 53.839679718,
                    "lon": 27.5609111786
                }
            },
            "mileage": 770003.067396,
            "max_speed": 118
        }]
    },
    "layerCount": 2
}

Выводы, которые можно сделать на основании полученного ответа:

Получение данных из таблиц

Получить значения из таблиц отчета можно используя запрос report/get_result_rows, который возвращает строки только верхнего уровня указанной таблицы. Если отчет многоуровневый, то строки более низкого уровня можно получить используя дополнительный запрос report/get_result_subrows.

Получим первую строку таблицы, которая идет под индексом 0 в массиве «tables».

<your_wialon_pro_address>/ajax.html?svc=report/get_result_rows&
	params={
		"tableIndex":0,
		"indexFrom":0,
		"indexTo":0
	}&ssid=<your_sid>

Результат выполнения:

[{
    "n": 0,
    "i1": 108,
    "i2": 214,
    "t1": 1357047418,
    "t2": 1357056357,
    "d": 3,
    "c": ["1", "2013-01-01", {
        "t": "17:36:58",
        "y": 53.9097984,
        "x": 27.4998528
    }, {
        "t": "Берута ул., Минск",
        "y": 53.9097984,
        "x": 27.4998528
    }, {
        "t": "20:05:57",
        "y": 53.8847872,
        "x": 27.5675072
    }, {
        "t": "Маяковского ул., Минск",
        "y": 53.8847872,
        "x": 27.5675072
    }, "", "0:11:15", "0:00:00", "0.00 км", "0.00 км", "0 км\/ч", {
        "t": "72 км\/ч",
        "y": 53.9070656,
        "x": 27.5216608
    }, "3", "0 л", "0 л"]
}]

Параметр «d» равен 3, что говорит о том, что данная строка содержит три подстроки. Чтобы их получить нужно выполнить запрос вида:

<your_wialon_pro_address>/ajax.html?svc=report/get_result_subrows&
	params={
		"tableIndex":0,
		"rowIndex":0
	}&ssid=<your_sid>

Результат выполнения:

[{
    "i1": 108,
    "i2": 118,
    "t1": 1357047418,
    "t2": 1357047581,
    "c": ["1.1", "", {
        "t": "17:36:58",
        "y": 53.9097984,
        "x": 27.4998528
    }, {
        "t": "Берута ул., Минск",
        "y": 53.9097984,
        "x": 27.4998528
    }, {
        "t": "17:39:41",
        "y": 53.9152448,
        "x": 27.4865568
    }, {
        "t": "Матусевича ул., Минск",
        "y": 53.9152448,
        "x": 27.4865568
    }, "", "0:02:43", "0:00:00", "0.00 км", "0.00 км", "0 км\/ч", {
        "t": "34 км\/ч",
        "y": 53.910112,
        "x": 27.495648
    }, "1", "0 л", "0 л"]
}, {
    "i1": 151,
    "i2": 169,
    "t1": 1357053985,
    "t2": 1357054222,
    "c": ["1.2", "", {
        "t": "19:26:25",
        "y": 53.9205888,
        "x": 27.492064
    }, {
        "t": "Данилы Сердича ул., 68, Минск",
        "y": 53.9205888,
        "x": 27.492064
    }, {
        "t": "19:30:22",
        "y": 53.9094592,
        "x": 27.4950912
    }, {
        "t": "ул. Притыцкого, Ратомка",
        "y": 53.9094592,
        "x": 27.4950912
    }, "", "0:03:57", "0:00:00", "0.00 км", "0.00 км", "0 км\/ч", {
        "t": "41 км\/ч",
        "y": 53.9177472,
        "x": 27.4873152
    }, "1", "0 л", "0 л"]
}, {
    "i1": 200,
    "i2": 214,
    "t1": 1357056082,
    "t2": 1357056357,
    "c": ["1.3", "", {
        "t": "20:01:22",
        "y": 53.8974912,
        "x": 27.5369984
    }, {
        "t": "Клары Цеткин ул., Минск",
        "y": 53.8974912,
        "x": 27.5369984
    }, {
        "t": "20:05:57",
        "y": 53.8847872,
        "x": 27.5675072
    }, {
        "t": "Маяковского ул., Минск",
        "y": 53.8847872,
        "x": 27.5675072
    }, "", "0:04:35", "0:00:00", "0.00 км", "0.00 км", "0 км\/ч", {
        "t": "62 км\/ч",
        "y": 53.8868928,
        "x": 27.5656
    }, "1", "0 л", "0 л"]
}]

Получение графических данных

При выполнении отчета был сгенерирован слой, отражающий поездки и остановки объекта. Изображение, в котором будет отображен данный слой наложенный на карту, можно получить запросом get_result_map:

<your_wialon_pro_address>/ajax.html?svc=report/get_result_map&
	params={
		"width":600,
		"height":600
	}&ssid=<your_sid>

Результат выполнения:

Также данный отчет содержит график скорости и пробега. Его можно получить используя запрос get_result_chart. Для того, чтобы заголовок был над графиком мы указываем флаг 0×01, а легенда была под графиком - 0x200.

<your_wialon_pro_address>/ajax.html?svc=report/get_result_chart&
	params={
		"attachmentIndex":0,
		"action":0,
		"width":600,
		"height":300,
		"autoScaleY":0,
		"pixelFrom":0,
		"pixelTo":300,
		"flags":513
	}&ssid=<your_sid>

Результат выполнения: