API - Получение данных для события — различия между версиями

Материал из WebHMI Wiki
Перейти к: навигация, поиск
Строка 15: Строка 15:
 
----
 
----
  
Рассмотрим пример из двух событий. Событие номер 1 является родительским. Оно начинается на 5-й секунде каждой минуты и заканчивается на 40-й секунде каждой минуте. В лог записываются данные один раз за все событие. В лог записывается время начала события и последнее значение интервального регистра I60. Скриншоты иллюстрируют настройку этого события.
+
Рассмотрим пример из двух событий. Событие номер 1 является родительским. Оно начинается на 5-й секунде каждой минуты и заканчивается на 40-й секунде каждой минуты. В лог записываются данные один раз за все событие. В лог записывается время начала события и последнее значение интервального регистра I60. Скриншоты иллюстрируют настройку этого события.
 
<br>
 
<br>
 
[[Файл:Event-data-1.png|700px]]<br>
 
[[Файл:Event-data-1.png|700px]]<br>
 
[[Файл:Event-data-2.png|700px]]
 
[[Файл:Event-data-2.png|700px]]
  
Второе событие является дочерним событием для первого. Поэтому оно может выполнятся только когда выполняется первое событие. Помимо этого условием оно ограничено так что начинает выполнятся на 25-й секунде каждой минуты и заканчивается на 40-й. Данные для него записываются в лог каждые 2 секунды. В лог пишется текущее значение регистра I60. Скриншоты иллюстрируют настройку этого события.
+
Второе событие является дочерним событием для первого. Поэтому оно может выполнятся только когда выполняется первое событие. Помимо этого условием оно ограничено так что начинает выполнятся на 25-й секунде каждой минуты и заканчивается на 35-й. Данные для него записываются в лог каждые 2 секунды. В лог пишется текущее значение регистра I60. Скриншоты иллюстрируют настройку этого события.
 
<br>
 
<br>
[[Файл:Event-data-3.png|700px]]<br>
+
[[Файл:Event-data-5.png|700px]]<br>
 
[[Файл:Event-data-4.png|700px]]
 
[[Файл:Event-data-4.png|700px]]
  
Строка 145: Строка 145:
 
----
 
----
  
 +
Атрибуты данных события:
  
Пример запроса информации о графике номер 2:
+
<table>
 +
<tr><td>'''rowid'''</td><td>int</td><td>Уникальный идентификатор строки в базе данных</td></tr>
 +
<tr><td>'''event_id'''</td><td>int</td><td>ID события</td></tr>
 +
<tr><td>'''start_time'''</td><td>int</td><td>Время начала события</td></tr>
 +
<tr><td>'''end_time'''</td><td>int</td><td>Время окончания события. Если событие еще не окончилось то end_time = 0</td></tr>
 +
<tr><td>'''xtra_regs'''</td><td>object</td><td>Объект с данными о дополнительных регистрах которые сохраняются в логе событий. Ключ-значение.</td></tr>
 +
</table>
 +
 
 +
Формат имени дополнительных регистров:<br>
 +
"E" + ID события + "." + порядковый номер регистра в событии начиная с нуля
 +
 
 +
----
 +
 
 +
 
 +
Пример запроса данных для события номер 2:
  
'''URL''': http://192.168.1.1/api/graphs/2<br>
+
'''URL''': http://192.168.1.1/api/event-data/2<br>
 
'''Method''': GET
 
'''Method''': GET
  
Строка 161: Строка 176:
 
Пример ответа:
 
Пример ответа:
 
<pre>
 
<pre>
{
+
[
   "id": "2",
+
  {
   "regsid": "8",
+
    "rowid": "3098",
   "title": "Температура в печи",
+
    "event_id": "2",
   "height": "350",
+
    "start_time": "1422799285",
   "min_val": "0",
+
    "end_time": "1422799300",
   "max_val": "200"
+
    "xtra_regs": [
}
+
      {
 +
        "E2.0": 26
 +
      }
 +
    ]
 +
   },
 +
  {
 +
    "rowid": "3098",
 +
    "event_id": "2",
 +
    "start_time": "1422799285",
 +
    "end_time": "1422799300",
 +
    "xtra_regs": [
 +
      {
 +
        "E2.0": 28
 +
      }
 +
    ]
 +
   },
 +
  {
 +
    "rowid": "3098",
 +
    "event_id": "2",
 +
    "start_time": "1422799285",
 +
    "end_time": "1422799300",
 +
    "xtra_regs": [
 +
      {
 +
        "E2.0": 30
 +
      }
 +
    ]
 +
   },
 +
  {
 +
    "rowid": "3098",
 +
    "event_id": "2",
 +
    "start_time": "1422799285",
 +
    "end_time": "1422799300",
 +
    "xtra_regs": [
 +
      {
 +
        "E3.0": 32
 +
      }
 +
    ]
 +
   },
 +
  {
 +
    "rowid": "3098",
 +
    "event_id": "2",
 +
    "start_time": "1422799285",
 +
    "end_time": "1422799300",
 +
    "xtra_regs": [
 +
      {
 +
        "E2.0": 34
 +
      }
 +
    ]
 +
   },
 +
  {
 +
    "rowid": "3098",
 +
    "event_id": "2",
 +
    "start_time": "1422799285",
 +
    "end_time": "1422799300",
 +
    "xtra_regs": [
 +
      {
 +
        "E2.0": 36
 +
      }
 +
    ]
 +
  },
 +
   {
 +
    "rowid": "3098",
 +
    "event_id": "2",
 +
    "start_time": "1422799285",
 +
    "end_time": "1422799300",
 +
    "xtra_regs": [
 +
      {
 +
        "E2.0": 38
 +
      }
 +
    ]
 +
  },
 +
  {
 +
    "rowid": "3098",
 +
    "event_id": "2",
 +
    "start_time": "1422799285",
 +
    "end_time": "1422799300",
 +
    "xtra_regs": [
 +
      {
 +
        "E2.0": 39
 +
      }
 +
    ]
 +
  },
 +
]
 
</pre>
 
</pre>
 
----
 
----
 
 
Атрибуты графика:
 
 
<table>
 
<tr><td>'''id'''</td><td>int</td><td>Уникальный идентификатор графика</td></tr>
 
<tr><td>'''title'''</td><td>string</td><td>Название графика</td></tr>
 
<tr><td>'''regsid'''</td><td>string</td><td>Список идентификаторов регистров которые необходимо отображать на графике. Регистры разделены запятыми.</td></tr>
 
<tr><td>'''height'''</td><td>int</td><td>Высота графика в пикселях</td></tr>
 
<tr><td>'''min_val'''</td><td>double</td><td>Минимальное значение оси Y</td></tr>
 
<tr><td>'''max_val'''</td><td>double</td><td>Максимальное значение оси Y</td></tr>
 
</table>
 

Версия 14:11, 1 февраля 2015

Для получения данных из лога событий необходимо выполнить GET-запрос на URL вида http://192.168.1.1/api/event-data/2. Здесь 2 - это ID нужного события.

В заголовках запроса необходимо передать API key и границы интересуещего временного интервала. X-WH-START и X-WH-END передаются в формате UnixTime. Например:

X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
X-WH-START: 1422797440
X-WH-END: 1422997405

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

Accept: application/json
Content-Type: application/json

Рассмотрим пример из двух событий. Событие номер 1 является родительским. Оно начинается на 5-й секунде каждой минуты и заканчивается на 40-й секунде каждой минуты. В лог записываются данные один раз за все событие. В лог записывается время начала события и последнее значение интервального регистра I60. Скриншоты иллюстрируют настройку этого события.
Event-data-1.png
Event-data-2.png

Второе событие является дочерним событием для первого. Поэтому оно может выполнятся только когда выполняется первое событие. Помимо этого условием оно ограничено так что начинает выполнятся на 25-й секунде каждой минуты и заканчивается на 35-й. Данные для него записываются в лог каждые 2 секунды. В лог пишется текущее значение регистра I60. Скриншоты иллюстрируют настройку этого события.
Event-data-5.png
Event-data-4.png

Пример запроса данных о событии номер 1:

URL: http://192.168.1.1/api/event-data/1
Method: GET

Заголовки:

Accept: application/json
Content-Type: application/json
Accept-Encoding: gzip, deflate, sdch
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
X-WH-START: 1422797440
X-WH-END: 1422997405

Пример ответа:

[
  {
    "rowid": "3050",
    "event_id": "1",
    "start_time": "1422797405",
    "end_time": "1422797440",
    "xtra_regs": [
      {
        "E1.0": 1422797405
      },
      {
        "E1.1": 39
      }
    ]
  },
  {
    "rowid": "3052",
    "event_id": "1",
    "start_time": "1422797465",
    "end_time": "1422797500",
    "xtra_regs": [
      {
        "E1.0": 1422797465
      },
      {
        "E1.1": 39
      }
    ]
  },
  {
    "rowid": "3054",
    "event_id": "1",
    "start_time": "1422797525",
    "end_time": "1422797560",
    "xtra_regs": [
      {
        "E1.0": 1422797525
      },
      {
        "E1.1": 39
      }
    ]
  },
  {
    "rowid": "3056",
    "event_id": "1",
    "start_time": "1422797585",
    "end_time": "1422797680",
    "xtra_regs": [
      {
        "E1.0": 1422797585
      },
      {
        "E1.1": 39
      }
    ]
  },
  {
    "rowid": "3058",
    "event_id": "1",
    "start_time": "1422797705",
    "end_time": "1422797740",
    "xtra_regs": [
      {
        "E1.0": 1422797705
      },
      {
        "E1.1": 39
      }
    ]
  },
  {
    "rowid": "3060",
    "event_id": "1",
    "start_time": "1422797765",
    "end_time": "1422797800",
    "xtra_regs": [
      {
        "E1.0": 1422797765
      },
      {
        "E1.1": 39
      }
    ]
  },
  {
    "rowid": "3062",
    "event_id": "1",
    "start_time": "1422797825",
    "end_time": "0",
    "xtra_regs": [
      {
        "E1.0": 1422797825
      },
      {
        "E1.1": 39
      }
    ]
  }
]

Атрибуты данных события:

rowidintУникальный идентификатор строки в базе данных
event_idintID события
start_timeintВремя начала события
end_timeintВремя окончания события. Если событие еще не окончилось то end_time = 0
xtra_regsobjectОбъект с данными о дополнительных регистрах которые сохраняются в логе событий. Ключ-значение.

Формат имени дополнительных регистров:
"E" + ID события + "." + порядковый номер регистра в событии начиная с нуля



Пример запроса данных для события номер 2:

URL: http://192.168.1.1/api/event-data/2
Method: GET

Заголовки:

Accept: application/json
Content-Type: application/json
Accept-Encoding: gzip, deflate, sdch
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7

Пример ответа:

[
  {
    "rowid": "3098",
    "event_id": "2",
    "start_time": "1422799285",
    "end_time": "1422799300",
    "xtra_regs": [
      {
        "E2.0": 26
      }
    ]
  },
  {
    "rowid": "3098",
    "event_id": "2",
    "start_time": "1422799285",
    "end_time": "1422799300",
    "xtra_regs": [
      {
        "E2.0": 28
      }
    ]
  },
  {
    "rowid": "3098",
    "event_id": "2",
    "start_time": "1422799285",
    "end_time": "1422799300",
    "xtra_regs": [
      {
        "E2.0": 30
      }
    ]
  },
  {
    "rowid": "3098",
    "event_id": "2",
    "start_time": "1422799285",
    "end_time": "1422799300",
    "xtra_regs": [
      {
        "E3.0": 32
      }
    ]
  },
  {
    "rowid": "3098",
    "event_id": "2",
    "start_time": "1422799285",
    "end_time": "1422799300",
    "xtra_regs": [
      {
        "E2.0": 34
      }
    ]
  },
  {
    "rowid": "3098",
    "event_id": "2",
    "start_time": "1422799285",
    "end_time": "1422799300",
    "xtra_regs": [
      {
        "E2.0": 36
      }
    ]
  },
  {
    "rowid": "3098",
    "event_id": "2",
    "start_time": "1422799285",
    "end_time": "1422799300",
    "xtra_regs": [
      {
        "E2.0": 38
      }
    ]
  },
  {
    "rowid": "3098",
    "event_id": "2",
    "start_time": "1422799285",
    "end_time": "1422799300",
    "xtra_regs": [
      {
        "E2.0": 39
      }
    ]
  },
]