Получение данных по протоколу WebSocket#
Для получения информации о событиях и инцидентах по протоколу веб-сокет можно воспользоваться встроенным в LUNA CARS Analytics инструментом — Swagger REST-API CARS.Analytics
Для входа в веб-интерфейс Swagger необходимо открыть в браузере следующий адрес (Рисунок 5).
http://IP_ADDRESS:ANALYTICS_FRONTEND_PORT/api/v1-cars/doc#/
- IP_ADDRESS — IP адрес целевого сервера, где установлен продукт LUNA CARS;
- ANALYTICS_FRONTEND_PORT — порт для подключения к frontend компоненту CARS Analytics (значение по умолчанию — 8080, подробнее см. в документации LUNA CARS Installation Manual, Приложение 2. Описание переменных «.env»).
В разделе WebSocket
доступно две секции для получения данных с помощью GET запросов (Рисунок 6)
1․ "/ws/cars/1/0/events" - получение данных о сценариях с типом События; 2․ "/ws/cars/1/0/incidents" - получение данных о сценариях с типом Инцидент.
Получение данных о сценариях с типом События (Рисунок 7):
1․ Разверните пункт "/ws/cars/1/0/events" и перейдите к блоку Parameters
;
2․ Нажмите на кнопку Try it out
;
3․ Введите в поля необходимые значения camId
и scenarioId
;
4․ Нажмите кнопку Execute
.
В блоке Responses
вы получите Curl запрос для получения данных о выбранных сценариях.
В пункте Server response
вы получите ответ по данному запросу в формате json
. Пример ответа сервера:
{
"data": [
{
"id": "2a245cad-29ad-403e-b84d-c372880be4bf",
"cam": {
"id": "9ccf654b-55fc-4862-9f69-cc58e2998733",
"name": "Варшавка",
"watchUri": "http://carstream:port/api/1/streams/preview/a1fef9db-6efc-4af2-9eb8-453bd4829bfb",
"status": 1
},
"scenarioId": "74d3218d-a5c5-4a4d-a083-76371ada25c2",
"indicatorTypeId": "22d3218d-a5c5-4a4d-a083-76371ada25c2",
"registeredAt": "2017-07-21T17:32:28Z",
"vehicleTypeId": "74d3218d-a5c5-4a4d-a083-76371ada65c2",
"vehicleBrandId": "e0abe8da-e354-4f6a-9645-5f581aeacc3f",
"vehicleModelId": "2a245cad-29ad-403e-b84d-c372880be4bf",
"vehicleColorId": "e30df9a6-3505-4787-8e64-93af73708f43",
"countryId": "9db92e75-52d3-4ed6-ab32-7cfb28671ac0",
"vehicleEmergencyTypeId": "e30df9a6-3505-4787-8e64-93af71238f43",
"vehicleLicensePlate": "е777кх77",
"vehicleTypeAccuracy": 0.75,
"vehicleBrandAccuracy": 0.75,
"vehicleModelAccuracy": 0.75,
"vehicleColorAccuracy": 0.75,
"countryAccuracy": 0.75,
"vehicleEmergencyTypeAccuracy": 0.75,
"vehicleLicensePlateAccuracy": 0.75,
"licensePlateSymbolsAccuracy": [
0.9,
0.75,
1,
0.01
],
"licensePlateFeatures": [
{
"type": "rus_spec_type",
"title": "police",
"score": 0.5
}
],
"vehicleBestshot": "/images/bestshotId",
"vehicleLicensePlateBestshot": "/images/bestshotId",
"vehicleTrackId": "156",
"frameId": "5002",
"fragmentGroups": [
{
"id": "track_frames",
"label": "Фреймы трека",
"fragments": [
{
"image": "/images/bestshotId",
"frameId": "4001",
"ts": "2017-07-21T17:30:00Z",
"label": "Фрейм начала трека",
"type": "track_begin_frame",
"detections": [
{
"x": 20,
"y": 10,
"width": 500,
"height": 400
}
]
}
]
}
],
"specialTransportTypeId": "e30df9a6-3505-4787-8e64-93af71238f43",
"publicTransportTypeId": "e30df9a6-3505-4787-8e64-93af71238f43",
"specialTransportTypeAccuracy": 0.75,
"publicTransportTypeAccuracy": 0.75,
"vehicleAxlesAmount": 2,
"vehicleAxlesAccuracy": 0.75,
"trackEnd": false,
"detections": [
{
"x": 20,
"y": 10,
"width": 500,
"height": 400
}
],
"numberOfObjects": 1,
"speeds": [
{
"created": "2023-09-28T11:58:14.307487+03:00",
"speed": 19,
"title": "traffic lane 1"
}
],
"userNotes": "Ещё одна заметка пользователя"
}
],
"meta": [
{
"operation": "create"
}
]
}
Получение данных о сценариях с типом Инцидент (Рисунок 8):
1․ Разверните пункт "/ws/cars/1/0/incidents" и перейдите к блоку Parameters
;
2․ Нажмите на кнопку Try it out
;
3․ Введите в поля необходимые значения camId
и scenarioId
;
4․ Нажмите кнопку Execute
.
В блоке Responses
вы получите Curl запрос для получения данных о выбранных сценариях.
В пункте Server response
вы получите ответ по данному запросу в формате json
. Пример ответа сервера:
{
"data": [
{
"id": "2a245cad-29ad-403e-b84d-c372880be4bf",
"cam": {
"id": "9ccf654b-55fc-4862-9f69-cc58e2998733",
"name": "Варшавка",
"watchUri": "http://carstream:port/api/1/streams/preview/a1fef9db-6efc-4af2-9eb8-453bd4829bfb",
"status": 1
},
"scenarioId": "74d3218d-a5c5-4a4d-a083-76371ada25c2",
"indicatorTypeId": "22d3218d-a5c5-4a4d-a083-76371ada25c2",
"registeredAt": "2017-07-21T17:32:28Z",
"vehicleTypeId": "74d3218d-a5c5-4a4d-a083-76371ada65c2",
"vehicleBrandId": "e0abe8da-e354-4f6a-9645-5f581aeacc3f",
"vehicleModelId": "2a245cad-29ad-403e-b84d-c372880be4bf",
"vehicleColorId": "e30df9a6-3505-4787-8e64-93af73708f43",
"countryId": "9db92e75-52d3-4ed6-ab32-7cfb28671ac0",
"vehicleEmergencyTypeId": "e30df9a6-3505-4787-8e64-93af71238f43",
"vehicleLicensePlate": "е777кх77",
"vehicleTypeAccuracy": 0.75,
"vehicleBrandAccuracy": 0.75,
"vehicleModelAccuracy": 0.75,
"vehicleColorAccuracy": 0.75,
"countryAccuracy": 0.75,
"vehicleEmergencyTypeAccuracy": 0.75,
"vehicleLicensePlateAccuracy": 0.75,
"licensePlateSymbolsAccuracy": [
0.9,
0.75,
1,
0.01
],
"licensePlateFeatures": [
{
"type": "rus_spec_type",
"title": "police",
"score": 0.5
}
],
"vehicleBestshot": "/images/bestshotId",
"vehicleLicensePlateBestshot": "/images/bestshotId",
"vehicleTrackId": "156",
"frameId": "5002",
"fragmentGroups": [
{
"id": "track_frames",
"label": "Фреймы трека",
"fragments": [
{
"image": "/images/bestshotId",
"frameId": "4001",
"ts": "2017-07-21T17:30:00Z",
"label": "Фрейм начала трека",
"type": "track_begin_frame",
"detections": [
{
"x": 20,
"y": 10,
"width": 500,
"height": 400
}
]
}
]
}
],
"specialTransportTypeId": "e30df9a6-3505-4787-8e64-93af71238f43",
"publicTransportTypeId": "e30df9a6-3505-4787-8e64-93af71238f43",
"specialTransportTypeAccuracy": 0.75,
"publicTransportTypeAccuracy": 0.75,
"vehicleAxlesAmount": 2,
"vehicleAxlesAccuracy": 0.75,
"trackEnd": false,
"detections": [
{
"x": 20,
"y": 10,
"width": 500,
"height": 400
}
],
"numberOfObjects": 1,
"speeds": [
{
"created": "2023-09-28T11:58:14.307487+03:00",
"speed": 19,
"title": "traffic lane 1"
}
],
"userNotes": "Ещё одна заметка пользователя",
"isUnread": true
}
],
"meta": [
{
"operation": "create",
"unreadCount": 5
}
]
}