Go to documentation repository
Previous page Next page
Attention!
A direct gRPC request can be anonymous. If an HTTP request is made to a web server, then it is necessary to use the Basic authorization type, since the anonymous requests to the web server are prohibited.
Request body:
{ "method": "axxonsoft.bl.auth.AuthenticationService.AuthenticateEx", "data": { "user_name" : "root", "password" : "root" } }
Response example:
{ "token_name": "auth_token", "token_value": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIqLioiLCJleHAiOjE2MDUxOTIxMDcsImlhdCI6MTYwNTE3NzcwNywiaXNzIjoiVi1CRUxZQUtPViIsImxnbiI6InJvb3QiLCJybHMiOlsiOTc0NWI5MDItMmEzNi00MDM1LWJkZDYtMDEyZTBkYWU2NmMwIl0sInNpZCI6Ijk3YjA3ZWQ0LTEzOTctNGFiNC1iZjZiLWQwNTUwYmM1YjcwMSIsInN1YiI6IjMyOGUzODc0LTRhMzMtOWRkMS0yOWViLTQ0YzM3YTQ0MTIxYyJ9.nkqap2aosAafD41vPIICJjIaVCWwGnC1nZRFrPWkt8JpgUnQsxAaZMa1UwIdsTicnH9vWeq6laQgmRJagVnWcunjoJ6wHWptwfk-pGT49YE9V1_PMT_1f3wQoc8Hl5a118DXECQc2lcu56U0H74C9PBc2Xmh-8fbvaWws65y0Ly4rDbwEWdMd-0ocnnErpSiFOr-XEnok9PIVXo_mjgWsg1zxBlgijWqA4jVoQdfBvKzGpTFLxXgguDvCDZQyF3LfpxtjB1jNsZgaFHzxPkloLeq2eQ8TY2Y1g4BDDNW2QU-Ee-DhWoKIMrRWWhsbHLDMNC2sNpNVw0MMMEYSjDyng", "expires_at": "20201112T144147", "is_unrestricted": true, "user_id": "328e3874-4a33-9dd1-29eb-44c37a44121c", "roles_ids": [ "9745b902-2a36-4035-bdd6-012e0dae66c0" ], "error_code": "AUTHENTICATE_CODE_OK" }
where
token_value − a Bearer token. The received token should be used in the metadata of the gRPC request. The HTTP requests should be made with the Bearer authorization type using the received token.
expires_at − token expiration date and time in the UTC time zone.
Request body:
{ "method": "axxonsoft.bl.auth.AuthenticationService.RenewSession", "data": { } }
The response will be the same as the response to the receive token request.
Attention!
The token should be active at the time of the request.
Request body:
{ "method": "axxonsoft.bl.auth.AuthenticationService.CloseSession", "data": { } }
Response example:
{ "error_code": "OK" }
Request body:
{ "method":"axxonsoft.bl.tz.TimeZoneManager.SetNTP", "data":{ "ntp": { "ntp_url": "time.windows.com", "sync_ip_devices": true } } }
where
Get list of all cameras
Request body:
{ "method": "axxonsoft.bl.domain.DomainService.ListCameras", "data": { "view" : "VIEW_MODE_FULL" } }
Response example:
--ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 4567 { "items": [ { "access_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "display_name": "Camera", "display_id": "1", "version": "", "ip_address": "0.0.0.0", "camera_access": "CAMERA_ACCESS_FULL", "vendor": "AxxonSoft", "model": "Virtual", "comment": "", "armed": true, "video_streams": [ { "stream_acess_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "decoder_acess_point": "hosts/Server1/VideoDecoder.1/SourceEndpoint.video", "enabled": false, "display_name": "Camera", "display_id": "0", "is_activated": true } ], "microphones": [ { "access_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.audio:0", "display_name": "", "display_id": "0", "microphone_access": "MICROPHONE_ACCESS_FULL", "is_activated": false } ], "ptzs": [], "archive_bindings": [ { "name": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "archive": { "access_point": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "display_name": "", "display_id": "DeviceIpint.1", "is_embedded": true, "archive_access": "ARCHIVE_ACCESS_FULL", "bindings": [], "is_activated": false }, "is_default": false, "sources": [ { "access_point": "hosts/Server1/DeviceIpint.1/Sources/src.0", "storage": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "mimetype": "video/h264", "origin_storage": "", "origin_storage_source": "" } ] }, { "name": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "archive": { "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "display_name": "AliceBlue", "display_id": "MultimediaStorage.AliceBlue", "is_embedded": false, "archive_access": "ARCHIVE_ACCESS_FULL", "bindings": [], "is_activated": true }, "is_default": true, "sources": [ { "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/Sources/src.47A57090-40B8-7604-A7A1-8E9E9D1421D2", "storage": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/AVDetector.13/SourceEndpoint.vmda", "origin": "hosts/Server1/AVDetector.13/SourceEndpoint.vmda", "mimetype": "application/vmda", "origin_storage": "", "origin_storage_source": "" }, { "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/Sources/src.1A00AA71-A796-A96C-80BD-8ADAAD59938E", "storage": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "mimetype": "video/vc-raw", "origin_storage": "", "origin_storage_source": "" }, { "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/Sources/src.875C1A55-D315-4DE1-B7F8-F0CB2F2F6B97", "storage": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.audio:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.audio:0", "mimetype": "application/audio", "origin_storage": "", "origin_storage_source": "" } ] } ], "ray": [], "relay": [], "detectors": [ { "access_point": "hosts/Server1/AVDetector.13/EventSupplier", "display_name": "", "display_id": "13", "parent_detector": "", "scene_descriptions": [ { "access_point": "hosts/Server1/AVDetector.13/SourceEndpoint.vmda" } ], "events": [] } ], "offline_detectors": [], "group_ids": [ "e2f20843-7ce5-d04c-8a4f-826e8b16d39c" ], "is_activated": true, "text_sources": [], "speakers": [] } ], "next_page_token": "" } --ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 41 { "items": [], "next_page_token": "" }
Get info about a particular camera
Request body:
{ "method": "axxonsoft.bl.domain.DomainService.BatchGetCameras", "data": { "items":[{ "access_point":"hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0" }] } }
Response example:
--ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 9038 { "items": [ { "access_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "display_name": "Server1-Auto", "display_id": "1", "version": "", "ip_address": "0.0.0.0", "camera_access": "CAMERA_ACCESS_FULL", "vendor": "AxxonSoft", "model": "Virtual", "comment": "", "armed": true, "video_streams": [ { "stream_acess_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "decoder_acess_point": "hosts/Server1/VideoDecoder.1/SourceEndpoint.video", "enabled": false, "display_name": "Server1-Auto", "display_id": "0", "is_activated": true } ], "microphones": [], "ptzs": [], "archive_bindings": [ { "name": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "archive": { "access_point": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "display_name": "", "display_id": "DeviceIpint.1", "is_embedded": true, "archive_access": "ARCHIVE_ACCESS_FULL", "bindings": [], "is_activated": false }, "is_default": false, "sources": [ { "access_point": "hosts/Server1/DeviceIpint.1/Sources/src.0", "storage": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "mimetype": "video/h264", "origin_storage": "", "origin_storage_source": "" } ] }, { "name": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage": "hosts/Server1/MultimediaStorage.AntiqueWhite/MultimediaStorage", "archive": { "access_point": "hosts/Server1/MultimediaStorage.AntiqueWhite/MultimediaStorage", "display_name": "1", "display_id": "MultimediaStorage.AntiqueWhite", "is_embedded": false, "archive_access": "ARCHIVE_ACCESS_FULL", "bindings": [], "is_activated": true }, "is_default": true, "sources": [ { "access_point": "hosts/Server1/MultimediaStorage.AntiqueWhite/Sources/src.9287FD97-D0FE-4675-B3E4-3E859ABC92B8", "storage": "hosts/Server1/MultimediaStorage.AntiqueWhite/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/AVDetector.14/SourceEndpoint.vmda", "origin": "hosts/Server1/AVDetector.14/SourceEndpoint.vmda", "mimetype": "application/vmda", "origin_storage": "", "origin_storage_source": "" }, { "access_point": "hosts/Server1/MultimediaStorage.AntiqueWhite/Sources/src.19C6698F-5674-7A0A-8C6F-2253D21F86D2", "storage": "hosts/Server1/MultimediaStorage.AntiqueWhite/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/AVDetector.35/SourceEndpoint.vmda", "origin": "hosts/Server1/AVDetector.35/SourceEndpoint.vmda", "mimetype": "application/vmda", "origin_storage": "", "origin_storage_source": "" }, { "access_point": "hosts/Server1/MultimediaStorage.AntiqueWhite/Sources/src.D208E3CC-E717-BC96-DA01-3F420784A1D0", "storage": "hosts/Server1/MultimediaStorage.AntiqueWhite/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "mimetype": "video/vc-raw", "origin_storage": "", "origin_storage_source": "" }, { "access_point": "hosts/Server1/MultimediaStorage.AntiqueWhite/Sources/src.A7CC6732-57F5-0FF0-C48C-7ADA7ECD779D", "storage": "hosts/Server1/MultimediaStorage.AntiqueWhite/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.10/SourceEndpoint.audio:0", "origin": "hosts/Server1/DeviceIpint.10/SourceEndpoint.audio:0", "mimetype": "application/audio", "origin_storage": "", "origin_storage_source": "" } ] }, { "name": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage": "hosts/Server1/MultimediaStorage.Aquamarine/MultimediaStorage", "archive": { "access_point": "hosts/Server1/MultimediaStorage.Aquamarine/MultimediaStorage", "display_name": "Aquamarine", "display_id": "MultimediaStorage.Aquamarine", "is_embedded": false, "archive_access": "ARCHIVE_ACCESS_FULL", "bindings": [], "is_activated": true }, "is_default": false, "sources": [ { "access_point": "hosts/Server1/MultimediaStorage.Aquamarine/Sources/src.9287FD97-D0FE-4675-B3E4-3E859ABC92B8", "storage": "hosts/Server1/MultimediaStorage.Aquamarine/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/AVDetector.14/SourceEndpoint.vmda", "origin": "hosts/Server1/AVDetector.14/SourceEndpoint.vmda", "mimetype": "application/vmda", "origin_storage": "", "origin_storage_source": "" }, { "access_point": "hosts/Server1/MultimediaStorage.Aquamarine/Sources/src.19C6698F-5674-7A0A-8C6F-2253D21F86D2", "storage": "hosts/Server1/MultimediaStorage.Aquamarine/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/AVDetector.35/SourceEndpoint.vmda", "origin": "hosts/Server1/AVDetector.35/SourceEndpoint.vmda", "mimetype": "application/vmda", "origin_storage": "", "origin_storage_source": "" }, { "access_point": "hosts/Server1/MultimediaStorage.Aquamarine/Sources/src.D208E3CC-E717-BC96-DA01-3F420784A1D0", "storage": "hosts/Server1/MultimediaStorage.Aquamarine/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "mimetype": "video/vc-raw", "origin_storage": "", "origin_storage_source": "" } ] } ], "ray": [], "relay": [], "detectors": [ { "access_point": "hosts/Server1/AVDetector.14/EventSupplier", "display_name": "", "display_id": "14", "parent_detector": "", "is_activated": true, "scene_descriptions": [ { "access_point": "hosts/Server1/AVDetector.14/SourceEndpoint.vmda" } ], "events": [ { "id": "TargetList", "name": "", "event_type": "PERIODICAL_EVENT_TYPE" }, { "id": "plateRecognized", "name": "", "event_type": "ONE_PHASE_EVENT_TYPE" } ] }, { "access_point": "hosts/Server1/AVDetector.39/EventSupplier", "display_name": "", "display_id": "39", "parent_detector": "", "is_activated": false, "scene_descriptions": [], "events": [ { "id": "SmokeDetected", "name": "", "event_type": "TWO_PHASE_EVENT_TYPE" }, { "id": "MotionMask", "name": "", "event_type": "ONE_PHASE_EVENT_TYPE" } ] }, { "access_point": "hosts/Server1/AVDetector.40/EventSupplier", "display_name": "", "display_id": "40", "parent_detector": "", "is_activated": false, "scene_descriptions": [], "events": [ { "id": "FireDetected", "name": "", "event_type": "TWO_PHASE_EVENT_TYPE" }, { "id": "MotionMask", "name": "", "event_type": "ONE_PHASE_EVENT_TYPE" } ] }, { "access_point": "hosts/Server1/AVDetector.35/EventSupplier", "display_name": "", "display_id": "35", "parent_detector": "", "is_activated": true, "scene_descriptions": [ { "access_point": "hosts/Server1/AVDetector.35/SourceEndpoint.vmda" } ], "events": [ { "id": "TargetList", "name": "", "event_type": "PERIODICAL_EVENT_TYPE" }, { "id": "faceAppeared", "name": "", "event_type": "ONE_PHASE_EVENT_TYPE" } ] } ], "offline_detectors": [], "group_ids": [ "e2f20843-7ce5-d04c-8a4f-826e8b16d39c" ], "is_activated": true, "text_sources": [], "speakers": [] } ], "not_found_objects": [], "unreachable_objects": [] } --ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 71 { "items": [], "not_found_objects": [], "unreachable_objects": [] } } --ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 71 { "items": [], "not_found_objects": [], "unreachable_objects": [] }
Get list of all cameras of all nodes of this Server
Request body:
{ "method": "axxonsoft.bl.domain.DomainService.ListCameras", "data": { "view": "VIEW_MODE_NO_CHILD_OBJECTS" } }
Get list of all cameras of a particular node
Request body:
{ "method": "axxonsoft.bl.domain.DomainService.ListCameras", "data": { "filter": "hosts/Node1/", "view": "VIEW_MODE_NO_CHILD_OBJECTS" } }
Get information about a video channel
Request body:
{ "method": "axxonsoft.bl.domain.DomainService.ListCameras", "data": { "view": "VIEW_MODE_FULL", "query": { "query": "comment.1", "search_fields": "DECORATED_NAME", "search_type": "SUBSTRING", "decorated_name_template": "{comment}.{display_id}" }, "page_token":"", "page_size":"100" } }
where view specifies how the result will be displayed:
query—allows you to get a subset of results in accordance with the search request.
search_type—an integer or value that specifies which search type to use:
search_fields—a list of integers or values separated by "|" that define which fields to search. If a match is found, subsequent fields will not be searched. Valid values are:
decorated_name_template—a template that determines how the final search string will be constructed. There are keywords that can be replaced with actual device values. Keywords are:
The default template is {display_id}.{display_name}. For example, for a device named "Camera" and with ID "1", the final search string would be "1.Camera".
page_token and page_size—are used for page-by-page display of query results.
Response example:
--ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 5018 { "items": [ { "access_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "incomplete": false, "display_name": "Камера", "display_id": "1", "ip_address": "0.0.0.0", "camera_access": "CAMERA_ACCESS_FULL", "vendor": "AxxonSoft", "model": "Virtual", "firmware": "1.0.0", "comment": "comment", "armed": true, "geo_location_latitude": "0", "geo_location_longitude": "0", "geo_location_azimuth": "0", "breaks_unused_connections": false, "serial_number": "", "video_streams": [ { "stream_acess_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "decoder_acess_point": "hosts/Server1/VideoDecoder.1/SourceEndpoint.video", "enabled": true, "display_name": "Main stream", "display_id": "0", "is_activated": true } ], "microphones": [ { "access_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.audio:0", "display_name": "", "display_id": "0", "microphone_access": "MICROPHONE_ACCESS_FULL", "is_activated": false, "enabled": false } ], "ptzs": [], "archive_bindings": [ { "name": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "archive": { "access_point": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "incomplete": false, "display_name": "Embedded storage", "display_id": "DeviceIpint.1", "is_embedded": true, "archive_access": "ARCHIVE_ACCESS_FULL", "bindings": [], "is_activated": false, "enabled": true }, "is_default": false, "is_replica": false, "is_permanent": false, "sources": [ { "access_point": "hosts/Server1/DeviceIpint.1/Sources/src.0", "storage": "hosts/Server1/DeviceIpint.1/MultimediaStorage.0", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "mimetype": "video/h264", "origin_storage": "", "origin_storage_source": "" } ] }, { "name": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "archive": { "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "incomplete": false, "display_name": "AliceBlue Archive", "display_id": "MultimediaStorage.AliceBlue", "is_embedded": false, "archive_access": "ARCHIVE_ACCESS_FULL", "bindings": [], "is_activated": true, "enabled": true }, "is_default": true, "is_replica": false, "is_permanent": true, "sources": [ { "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/Sources/src.CDF139D0-A77B-90C2-6C16-D2F295C7A5CB", "storage": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "mimetype": "video/vc-raw", "origin_storage": "", "origin_storage_source": "" }, { "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/Sources/src.FF0D2704-017C-3556-B43D-A35405448682", "storage": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "binding": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "media_source": "hosts/Server1/DeviceIpint.1/SourceEndpoint.audio:0", "origin": "hosts/Server1/DeviceIpint.1/SourceEndpoint.audio:0", "mimetype": "application/audio", "origin_storage": "", "origin_storage_source": "" } ] } ], "ray": [], "relay": [], "detectors": [], "offline_detectors": [], "group_ids": [ "e2f20843-7ce5-d04c-8a4f-826e8b16d39c" ], "is_activated": true, "text_sources": [], "speakers": [], "enabled": true, "panomorph": { "enabled": false, "fit_to_frame": false, "camera_position": 0, "view_type": 0, "camera_lens": "FISH_EYE_LENS", "fisheye_circles": { "circle": [ { "center": { "x": 0, "y": 0 }, "radius": 0 } ] } }, "video_buffer_size": 50, "video_buffer_enabled": false, "alternative_view": { "alternative_camera_name": "", "second_alternative_camera_name": "" } } ], "next_page_token": "", "search_meta_data": [ { "score": 0, "matches": [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13" ] } ] } --ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 66 { "items": [], "next_page_token": "", "search_meta_data": [] }
{ "method": "axxonsoft.bl.config.ConfigurationService.ListUnits", "data": { "unit_uids": [ "hosts/Server1/DeviceIpint.10" ] } }
Response example:
{ "units": [ { "uid": "hosts/Server1/DeviceIpint.10", "display_id": "10", "type": "DeviceIpint", "display_name": "", "access_point": "", "properties": [ { "id": "display_name", "name": "Display name", "type": "string", "readonly": false, "value_string": "axis" }, { "id": "driverName", "name": "Driver Name", "type": "string", "readonly": true, "value_string": "Axis" }, { "id": "driverVersion", "name": "Driver Version", "type": "string", "readonly": true, "value_string": "3.0.0" }, { "id": "vendor", "name": "Device Vendor", "type": "string", "readonly": false, "enum_constraint": {}, "value_string": "Axis" }, { "id": "model", "name": "Device Model", "type": "string", "readonly": false, "value_string": "P1343" }, { "id": "firmware", "name": "Firmware version", "type": "string", "readonly": false, "value_string": "5.06" }, { "id": "address", "name": "IP Address of device", "type": "string", "readonly": false, "value_string": "192.168.0.181" }, { "id": "port", "name": "Port number", "type": "int32", "readonly": false, "value_int32": 80 }, { "id": "useDefaultAuthentication", "name": "Use default device credentials", "type": "bool", "readonly": false, "value_bool": false }, { "id": "user", "name": "Login", "type": "string", "readonly": false, "value_string": "root" }, { "id": "password", "name": "Password", "type": "string", "readonly": false, "value_string": "pass" }, { "id": "blockingConfiguration", "name": "Preserve device settings", "type": "bool", "readonly": false, "value_bool": false }, { "id": "geoLocationLatitude", "name": "Geolocation Latitude", "type": "double", "readonly": false, "value_double": 35 }, { "id": "geoLocationLongitude", "name": "Geolocation Longitude", "type": "double", "readonly": false, "value_double": 45 }, { "id": "geoLocationAzimuth", "name": "Geolocation Azimuth", "type": "double", "readonly": false, "value_double": 0 } ], "units": [ { "uid": "hosts/Server1/DeviceIpint.10/VideoChannel.0", "display_id": "0", "type": "VideoChannel", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }, { "uid": "hosts/Server1/DeviceIpint.10/Microphone.0", "display_id": "0", "type": "Microphone", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_INACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }, { "uid": "hosts/Server1/DeviceIpint.10/Telemetry.0", "display_id": "0", "type": "Telemetry", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }, { "uid": "hosts/Server1/DeviceIpint.10/IO.0", "display_id": "0", "type": "IO", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_INACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }, { "uid": "hosts/Server1/DeviceIpint.10/Speaker.0", "display_id": "0", "type": "Speaker", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_INACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] } ], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [ "502f5739-0b18-4852-891a-35aefbd85d7c" ] } ], "unreachable_objects": [], "not_found_objects": [] }
The units field properties contain the following information:
The child objects of the device (video channels, streams, microphones, speakers, telemetry, sensors and relays) will be indicated in child units.
You can get information by access point for archives, detection tools and video cameras.
Example of a request to get information about the archive by access point:
{ "method":"axxonsoft.bl.config.ConfigurationService.ListUnitsByAccessPoints", "data":{ "access_points": ["hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0"] } }
Response example:
{ "units": [ { "uid": "hosts/Server1/DeviceIpint.1/VideoChannel.0", "display_id": "0", "type": "VideoChannel", "display_name": "", "access_point": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "properties": [] } }
where
Example of a request to get information about the detection tool by access point:
{ "method":"axxonsoft.bl.config.ConfigurationService.ListUnitsByAccessPointsStream", "data":{ "access_points": ["hosts/Server1/AVDetector.1/EventSupplier"] } }
Response example:
--ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 24703 { "units": [ { "uid": "hosts/Server1/AVDetector.1", "display_id": "1", "type": "AVDetector", "display_name": "Object tracker", "access_point": "hosts/Server1/AVDetector.1/EventSupplier", "properties": [] } }
Note
ListUnitsByAccessPointsStream may not be suitable for Web-Clients that do not work with streaming services.
Request example for getting information about a video channel:
{ "method":"axxonsoft.bl.config.ConfigurationService.ListUnits", "data":{ "unit_uids":["hosts/Server1/DeviceIpint.10/VideoChannel.0"] } }
Response:
{ "uid": "hosts/Server1/DeviceIpint.10/VideoChannel.0", "display_id": "0", "type": "VideoChannel", "display_name": "", "access_point": "", "properties": [ { "id": "channel_id", "name": "", "type": "int32", "readonly": true, "value_int32": 0 }, { "id": "display_name", "name": "Display name", "type": "string", "readonly": false, "value_string": "axis" }, { "id": "comment", "name": "Comment", "type": "string", "readonly": false, "value_string": "" }, { "id": "enabled", "name": "Enable VideoChannel", "type": "bool", "readonly": false, "value_bool": true }, { "id": "brightness", "name": "", "type": "int32", "readonly": false, "range_constraint": {}, "value_int32": 50 }, { "id": "contrast", "name": "", "type": "int32", "readonly": false, "range_constraint": {}, "value_int32": 50 }, { "id": "digitalPtz", "name": "", "type": "bool", "readonly": false, "value_bool": false }, { "id": "flickerfree", "name": "", "type": "string", "readonly": false, "enum_constraint": {}, "value_string": "auto" }, { "id": "imageFlip", "name": "", "type": "int32", "readonly": false, "enum_constraint": {}, "value_int32": 0 }, { "id": "maxZoom", "name": "", "type": "int32", "readonly": false, "enum_constraint": {}, "value_int32": 250 }, { "id": "saturation", "name": "", "type": "int32", "readonly": false, "range_constraint": {}, "value_int32": 50 }, { "id": "sharpness", "name": "", "type": "int32", "readonly": false, "range_constraint": {}, "value_int32": 50 } ], "units": [ { "uid": "hosts/Server1/DeviceIpint.10/VideoChannel.0/Streaming.0", "display_id": "0", "type": "Streaming", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }, { "uid": "hosts/Server1/DeviceIpint.10/VideoChannel.0/Streaming.1", "display_id": "1", "type": "Streaming", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }, { "uid": "hosts/Server1/DeviceIpint.10/VideoChannel.0/Detector.motion_detection", "display_id": "motion_detection", "type": "Detector", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_INACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }, { "uid": "hosts/Server1/DeviceIpint.10/VideoChannel.0/Detector.tampering_detection", "display_id": "tampering_detection", "type": "Detector", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_INACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }, { "uid": "hosts/Server1/DeviceIpint.10/VideoChannel.0/Detector.audio_detection", "display_id": "audio_detection", "type": "Detector", "display_name": "", "access_point": "", "properties": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_INACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] } ], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [] }
The properties contain the video parameters, the child ones contain streams and detection tools, if created.
Adding a virtual video camera without settings:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/Server1", "units": [ { "type": "DeviceIpint", "units": [], "properties": [ { "id": "vendor", "value_string": "axxonsoft", "properties": [ { "id": "model", "value_string": "Virtual", "properties": [] } ] }, { "id": "display_name", "value_string": "newOrder2", "properties": [] }, { "id": "blockingConfiguration", "value_bool": false, "properties": [] }, { "id": "display_id", "value_string": "199" } ] } ] } ] } }
where uid is the Server where the device is created.
As a result, a camera with a child microphone, an embedded archive and a sensor will be created. All child objects except the video channel will be turned off.
{ "failed": [], "added": ["hosts/Server1/DeviceIpint.199"] }
where 199 is the id of the created device.
Note
In some cases, the id of the created device may not coincide with the specified value of display_id in the request.
{ "method":"axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data":{ "added": { "uid": "hosts/Server1", "units": { "type": "AVDetector", "properties": [ { "id": "display_name", "value_string": "Object tracker" }, { "id": "input", "value_string": "Video", "properties": [ { "id": "camera_ref", "value_string": "hosts/Server1/DeviceIpint.200/SourceEndpoint.video:0:0", "properties": [ { "id": "streaming_id", "value_string": "hosts/Server1/DeviceIpint.200/SourceEndpoint.video:0:0" } ] }, { "id": "detector", "value_string": "SceneDescription" } ] } ] } } } }
{ "method":"axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data":{ "added": { "uid": "hosts/Server1", "units": { "type": "AppDataDetector", "properties": [ { "id": "display_name", "value_string": "AppDataDetectorMoveInZone" }, { "id": "input", "value_string": "TargetList", "properties": [ { "id": "camera_ref", "value_string": "hosts/Server1/DeviceIpint.200/SourceEndpoint.video:0:0", "properties": [ { "id": "streaming_id", "value_string": "hosts/Server1/AVDetector.1/SourceEndpoint.vmda" } ] }, { "id": "detector", "value_string": "MoveInZone" } ] } ] } } } }
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "changed": [ { "uid": "hosts/Server1/DeviceIpint.199/VideoChannel.0/Streaming.0", "type": "Streaming", "properties": [ { "id": "folder", "value_string": "D:/Video" } ], "opaque_params": [] } ] } }
Each unit contains an enabled property.
Enabling the microphone:
{ "method":"axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data":{ "changed":[{ "uid": "hosts/Server1/DeviceIpint.10/Microphone.0", "type": "Microphone", "properties": [ { "id": "enabled", "value_bool": true } ], "units":[] }] } }
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "removed": [ { "uid": "hosts/Server1/DeviceIpint.199" } ] } }
{ "method":"axxonsoft.bl.config.ConfigurationService.ListUnits", "data":{ "unit_uids": ["hosts/Server1/AppDataDetector.1"] } }
where unit_uids is the name of the required detection tool (see gRPC API 메서드를 사용하여 장치 관리 (ConfigurationService)).
Find the units parameter group in the query response:
"units": [ { "uid": "hosts/Server1/AppDataDetector.1/VisualElement.76c7fadf-7f96-4f30-b57a-e3ba585fbc6f", "display_id": "76c7fadf-7f96-4f30-b57a-e3ba585fbc6f", "type": "VisualElement", "display_name": "Polyline", "access_point": "", "properties": [ { "id": "polyline", "name": "Polyline", "description": "Polyline.", "type": "SimplePolygon", "readonly": false, "internal": false, "value_simple_polygon": { "points": [ { "x": 0.01, "y": 0.01 }, { "x": 0.01, "y": 0.99 }, { "x": 0.99, "y": 0.99 }, { "x": 0.99, "y": 0.01 } ] } }
where
To change the points of the mask, it is necessary to run a query using the obtained mask uid:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "changed": [ { "uid": "hosts/Server1/AppDataDetector.1/VisualElement.76c7fadf-7f96-4f30-b57a-e3ba585fbc6f", "type": "VisualElement", "properties": [ { "id": "polyline", "value_simple_polygon": { "points": [ { "x": 0.01, "y": 0.01 }, { "x": 0.01, "y": 0.99 }, { "x": 0.99, "y": 0.99 }, { "x": 0.99, "y": 0.01 } ] } } ] } ] }
You can also add and remove the polygon points of the mask using this query.
Get list of all groups
Request body:
{ "method": "axxonsoft.bl.groups.GroupManager.ListGroups", "data": { "view": "VIEW_MODE_TREE" } }
Get info about certain group
{ "method": "axxonsoft.bl.groups.GroupManager.BatchGetGroups", "data": { "group_ids": ["5229f799-b8d8-9045-90e8-7e0e78bcd719"], "with_sub_groups": true } }
Create a group
{ "method": "axxonsoft.bl.groups.GroupManager.ChangeGroups", "data": { "added_groups": { "group_id":"01e42aac-30f9-3d4b-8bb1-6ef60e215a6d", "name":"Edited group", "description":"postman" } } }
Edit a group
{ "method": "axxonsoft.bl.groups.GroupManager.ChangeGroups", "data": { "changed_groups_info": { "group_id":"01e42aac-30f9-3d4b-8bb1-6ef60e215a7d", "parent":"e2f20843-7ce5-d04c-8a4f-826e8b16d39c" } } }
Delete a group
{ "method": "axxonsoft.bl.groups.GroupManager.ChangeGroups", "data": { "removed_groups":"b7d2fc67-6125-b341-800f-5f1747946788" } }
Add a camera to the group
{ "method": "axxonsoft.bl.groups.GroupManager.SetObjectsMembership", "data": { "added_objects":{ "group_id":"01e42aac-30f9-3d4b-8bb1-6ef60e215a6d", "object":"hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0" } } }
Delete a camera from the group
{ "method": "axxonsoft.bl.groups.GroupManager.SetObjectsMembership", "data": { "removed_objects":{ "group_id":"01e42aac-30f9-3d4b-8bb1-6ef60e215a6d", "object":"hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0" } } }
POST http://IP-address:port/prefix/grpc
Request body:
{ "method":"axxonsoft.bl.logic.LogicService.RaiseAlert", "data": { "camera_ap" : "hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0" } }
The response contains the alert id and the result.
{ "result": true, "alert_id": "ddb5ab56-627e-4761-a1eb-f497ef2f7745" }
{ "method":"axxonsoft.bl.logic.LogicService.BeginAlertReview", "data":{ "camera_ap" : "hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0", "alert_id" : "ddb5ab56-627e-4761-a1eb-f497ef2f7745" } }
{ "method":"axxonsoft.bl.logic.LogicService.CancelAlertReview", "data":{ "camera_ap" : "hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0", "alert_id" : "ddb5ab56-627e-4761-a1eb-f497ef2f7745" } }
{ "method":"axxonsoft.bl.logic.LogicService.ContinueAlertReview", "data":{ "camera_ap" : "hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0", "alert_id" : "ddb5ab56-627e-4761-a1eb-f497ef2f7745" } }
Attention!
To review the alert, it should be in the handling state.
{ "method":"axxonsoft.bl.logic.LogicService.CompleteAlertReview", "data":{ "severity" : "SV_WARNING", "bookmark" : {}, "camera_ap" : "hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0", "alert_id" : "ddb5ab56-627e-4761-a1eb-f497ef2f7745" } }
Note
The severity parameter determines the alert type:
SV_UNCLASSIFIED − missed;
SV_FALSE − false;
SV_WARNING − suspicious;
SV_ALARM − confirmed.
Attention!
To review the alert, it should be in the handling state.
{ "method": "axxonsoft.bl.logic.LogicService.RaiseAlert", "data": { "camera_ap": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0" } } { "method": "axxonsoft.bl.logic.LogicService.BeginAlertReview", "data": { "camera_ap": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "alert_id": "eb683ba7-f30c-44cc-b762-71465f8d7015" } } { "method": "axxonsoft.bl.logic.LogicService.CompleteAlertReview", "data": { "severity": "SV_ALARM", "bookmark": { "guid": "b6ba95f2-b7c9-4bd4-93ef-f26040bc93e4", "timestamp": "20201001T072442.364", "node_info": { "name": "Server1" }, "is_protected": false, "camera": { "access_point":"hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0" }, "archive": { "accessPoint": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" }, "alert_id": "eb683ba7-f30c-44cc-b762-71465f8d7015", "group_id": "", "boundary": { "x": 0.5002633, "y": 0.4734651, "w": 75.50027, "h": 13.47346, "index": 0 }, "user": "root", "range": { "begin_time": "20201001T072442.364", "end_time": "20201001T072442.364" }, "geometry": { "guid": "46486492-34ea-4e48-92ce-2cb43dfd7695", "alpha": 147, "type": "PT_NONE" }, "message": "TEST" }, "camera_ap": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "alert_id": "eb683ba7-f30c-44cc-b762-71465f8d7015" } }
where in the bookmark parameter group:
POST http://IP-address:port/prefix/grpc
Request body:
{ "method":"axxonsoft.bl.logic.LogicService.ListMacros", "data": { "view": "VIEW_MODE_FULL" } }
Note
VIEW_MODE_FULL − complete information;
VIEW_MODE_STRIPPED − only basic information about macros without the launch and operation conditions.
{ "method":"axxonsoft.bl.logic.LogicService.BatchGetMacros", "data":{ "macros_ids" : ["cfd41b18-c983-4a48-aaa1-ca7e666e6e49"] } }
Attention!
Requests for creating and changing a macro should contain its entire structure.
Creating:
{ "method": "axxonsoft.bl.logic.LogicService.ChangeMacros", "data": { "added_macros": { "guid": "3303abb2-181e-4183-8987-8a06c309a741", "name": "TEST_MACRO", "mode": { "enabled": true, "user_role": "", "is_add_to_menu": true, "common": {} }, "conditions": { "0": { "path": "/C:0", "archive_write": { "camera": "hosts/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0", "state": "ON" } }, "1": { "path": "/C:0", "archive_write": { "camera": "hosts/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0", "state": "ON" } } }, "rules": { "0": { "path": "/E:0", "action": { "timeout_ms": 60000, "cancel_conditions": {}, "action": { "raise_alert": { "zone": "", "archive": "", "offset_ms": 0, "mode": "RAM_AlwaysIfNoActiveAlert" } } } }, "1": { "path": "/E:0", "action": { "timeout_ms": 60000, "cancel_conditions": {}, "action": { "raise_alert": { "zone": "", "archive": "", "offset_ms": 0, "mode": "RAM_AlwaysIfNoActiveAlert" } } } } } } } }
Changing (removing conditions and rules):
Note
Leave empty curly brackets { } in the conditions and rules groups.
{ "method": "axxonsoft.bl.logic.LogicService.ChangeMacros", "data": { "modified_macros": { "guid": "3303abb2-181e-4183-8987-8a06c309a741", "mode": { "common": {} }, "conditions": { "0": {} }, "rules": { "1": {} } } } }
Removing:
{ "method":"axxonsoft.bl.logic.LogicService.ChangeMacros", "data":{ "removed_macros" : ["3303abb2-181e-4183-8987-8a06c309a741"] } }
{ "method":"axxonsoft.bl.logic.LogicService.LaunchMacro", "data":{ "macro_id" : "caef76f0-37e9-43b0-aba6-c2a2f32ccd2f" } }
Get information on automatic rule
Response:
{ "items": [ { "guid": "4932bbc7-c702-4a18-b050-2898b1b61738", "name": "534k_1.Camera. Motion detection", "mode": { "enabled": true, "user_role": "", "is_add_to_menu": false, "autorule": { "zone_ap": "hosts/Server1/DeviceIpint.6/SourceEndpoint.video:0:0", "only_if_armed": false, "timezone_id": "00000000-0000-0000-0000-000000000000" } }, "conditions": { "0": { "path": "/C:0", "detector": { "event_type": "MotionDetected", "source_ap": "hosts/Server1/AVDetector.4/EventSupplier", "state": "BEGAN", "details": [] } } }, "rules": { "1": { "path": "/E:1", "action": { "timeout_ms": 0, "cancel_conditions": { "0": { "path": "/E:1/C:0", "detector": { "event_type": "MotionDetected", "source_ap": "hosts/Server1/AVDetector.4/EventSupplier", "state": "ENDED", "details": [] } } }, "action": { "raise_alert": { "zone": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "archive": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "offset_ms": 0, "mode": "RAM_AlwaysIfNoActiveAlert" } } } }, "0": { "path": "/E:0", "action": { "timeout_ms": 0, "cancel_conditions": { "0": { "path": "/E:0/C:0", "detector": { "event_type": "MotionDetected", "source_ap": "hosts/Server1/AVDetector.6/EventSupplier", "state": "BEGAN", "details": [] } } }, "action": { "write_archive": { "camera": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "archive": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "min_prerecord_ms": 0, "post_event_timeout_ms": 0 } } } } } } ] }
Create a macro.
{ "method":"axxonsoft.bl.logic.LogicService.ChangeMacros", "data":{ "added_macros" : { "guid": "b55c118a-f902-43ec-b55a-67ee062640b2", "name": "MacroEmail", "mode": { "enabled": true, "user_role": "", "is_add_to_menu": false, "continuous": { "server": "Server1", "timezone_id": "00000000-0000-0000-0000-000000000000", "heartbeat_ms": 0, "random": true } }, "conditions": {}, "rules": { "0": { "path": "/E:0", "check": { "check": { "camera": "99f72952-d8b8-4590-90e8-7e0e78bcd719", "archive": "", "depth_ms": 5400000, "type": "CT_CHECK_RECORD" }, "success_rules": {}, "failure_rules": { "0": { "path": "/E:0/T:0", "action": { "timeout_ms": 0, "cancel_conditions": {}, "action": { "email_notification": { "notifier": "hosts/Server1/EMailModule.1", "recipients": [ "mail@server.com" ], "subject": "Notification: Attention, automatic rule is triggered.", "msg_text": "On server: {cameraNode} by camera {cameraName} problems with archiving.\nDate: {dateTime}", "atach_video": false, "export_agent": "", "span_ms": 0, "camera": "", "archive": "" } } } } } } } } } } }
Note
"camera": "99f72952-d8b8-4590-90e8-7e0e78bcd719" is the camera group id.
POST http://IP-address:port/prefix/grpc
Request body:
{ "method": "axxonsoft.bl.domain.DomainService.ListArchives", "data": { "filter": "", "view": "VIEW_MODE_FULL", "page_token": "", "page_size": 1000} }
The response will contain a list of archives. Take the value of the access_point parameter for the required archive:
"access_point": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage"
Note
The response will contain the page_token parameter if the number of archives (including the built-in ones) is greater than the value of the page_size parameter.
Get the archive occupation percentage.
POST http://IP-address:port/prefix/grpc
Request body:
{"method": "axxonsoft.bl.statistics.StatisticService.GetStatistics","data": { "keys": { "type": "SPT_ArchiveUsage", "name": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" }}}
where "name" is the value of the access_point parameter from the first request.
Response:
{ "stats": [ { "hint": "", "key": { "type": "SPT_ArchiveUsage", "name": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" }, "labels": [], "value_double": 27.851564407348633 } ], "fails": [] }
value_double is the the archive occupation percentage.
Get information about the archive contents.
POST http://IP-address:port/prefix/grpc
Request body:
{ "method": "axxonsoft.bl.archive.ArchiveService.GetRecordingInfo", "data": { "update_cache": false, "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage"} }
where "access_point" is taken from the first request.
Response:
{ "recording_info": { "system_size": "292", "recording_size": "30134", "recording_rate": "303597", "capacity": "30720", "last_update": "1551865173" } }
where "capacity" is the archive size in megabytes.
POST http://IP-address:port/prefix/grpc
Request body:
{ "method": "axxonsoft.bl.domain.DomainService.ListArchives", "data": { "filter": "", "view": "VIEW_MODE_FULL", "page_token": "", "page_size": 1000} }
The response will contain a list of archives. Take the value of the access_point parameter for the required archive:
"access_point": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage"
Note
The response will contain the page_token parameter if the number of archives (including the built-in ones) is greater than the value of the page_size parameter.
Get the archive occupation percentage.
POST http://IP-address:port/prefix/grpc
Request body:
{"method": "axxonsoft.bl.statistics.StatisticService.GetStatistics","data": { "keys": { "type": "SPT_ArchiveUsage", "name": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" }}}
where "name" is the value of the access_point parameter from the first request.
Response:
{ "stats": [ { "hint": "", "key": { "type": "SPT_ArchiveUsage", "name": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" }, "labels": [], "value_double": 27.851564407348633 } ], "fails": [] }
value_double is the the archive occupation percentage.
Get information about the archive contents.
POST http://IP-address:port/prefix/grpc
Request body:
{ "method": "axxonsoft.bl.archive.ArchiveService.GetRecordingInfo", "data": { "update_cache": false, "access_point": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage"} }
where "access_point" is taken from the first request.
Response:
{ "recording_info": { "system_size": "292", "recording_size": "30134", "recording_rate": "303597", "capacity": "30720", "last_update": "1551865173" } }
where "capacity" is the archive size in megabytes.
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/server", "units": [ { "type": "MultimediaStorage", "properties": [ { "id": "display_name", "properties": [], "value_string": "ArchiveStorage" }, { "id": "color", "properties": [], "value_string": "Gray" }, { "id": "storage_type", "value_string": "object" } ] } ] } ] } }
where
Possible ArchiveVolume parameters in the properties section:
Parameter | Description |
---|---|
format | true if it is necessary to format the created volume. The default is false |
volume_size | Volume size in bytes. Applicable if format = true |
auto_mount | true if it is necessary to mount the created volume. The default is false |
label | Volume label |
Parameters for object archive only (storage_type = object): | |
max_block_size_mb | Maximum block size in MB. The default is 64, the range of valid values is [16; 512] |
optimal_read_size_mb | Optimal size of blocks reading in MB. The default is 4, the range of valid values is [1; max_block_size_mb / 2] |
incoming_buffer_size_mb | The incoming buffer size in MB. The default is 3 * max_block_size_mb. The minimum value should be greater than 2 * max_block_size_mb |
block_flush_period_seconds | Block recording period in seconds. The default is 60, the range of valid values is [30; 300] |
index_snapshot_max_block_distance | The maximum number of blocks between indexing operations. The default is 256, the minimum is 16 |
sequence_flush_period_seconds | Sequences recording period in seconds. The default is 60, the minimum is 32 |
At the ArchiveVolume level, the connection_params property is also added, with the following parameters:
Parameter | Required | Description |
---|---|---|
schema | Yes | Volume type. Possible values: file—local archive on the Server. smb—remote archive with an SMB protocol connection. azure—archive in Microsoft Azure cloud storage. s3_amazon—archive in Amazon S3 cloud storage (aws.amazon.com/s3). s3_wasabi—archive in Wasabi cloud storage (wasabi.com). s3_huawei—archive in Huawei Cloud cloud storage (huaweicloud.com). s3_seagate—archive in Seagate Lyve Cloud cloud storage (seagate.com). s3_minio—universal archive in the cloud storage (min.io.com). It is used when using other types of cloud storage |
Parameters for the file type: | ||
path | Yes | The path to the file/disk with the archive |
Parameters for the smb type: | ||
host | Yes | Name of the Server with remote storage |
smb_share | Yes | Remote storage |
path | Yes | Folder in remote storage, where the archive will be stored |
smb_domain | No | Remote storage domain |
user | No | Username |
password | No | Password |
Parameters for the azure type: | ||
protocol | Yes | Connection protocol: HTTP or HTTPS. This parameter is located in the properties of the created container |
host | Yes | Azure Server address. This parameter is located in the properties of the created container |
access_key | Yes | Access key in base64. This parameter is located in the Access keys section |
container | Yes | Azure container. This parameter is located in the properties of the created container |
user | Yes | User name. This parameter is located in the Access keys section (Storage account name) |
path | No | Do not specify the location of the volume folder in Azure—the parameter should be empty |
port | No | Azure Server port |
Parameters for the s3_amazon type (Amazon storage): | ||
access_key_id | Yes | Access key identifier (create access keys at https://console.aws.amazon.com/iam/home?#/security_credentials$access_key, authorization required) |
secret_access_key | Yes | Access key password (available after creating an access key) |
bucket | Yes | Archive volume in Amazon S3 account (bucket). Different volumes can be located in different regions. On the Amazon S3 Server, the volume name should be unique, and for the Axxon One operation, it should be pre-created by the user according to the rules (see https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) |
region | Yes | The region where the volume is located. To reduce the delay when writing and reading an archive, specify the closest region to the Axxon One Server. For the list of possible regions, see https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints |
path | Yes | Location of the Axxon One volume folder inside the bucket |
protocol | Yes | Connection protocol: HTTP or HTTPS |
host | Yes | Server address: amazonaws.com |
Parameters for the s3_wasabi type (Wasabi storage): | ||
bucket | Yes | Archive volume name (Bucket Name), predefined by the user at https://console.wasabisys.com/#/file_manager |
region | Yes | The region where the corresponding volume is located, as specified at https://console.wasabisys.com/#/file_manager |
access_key_id | Yes | Access key identifier, which should be pre-created at https://console.wasabisys.com/#/access_keys |
secret_access_key | Yes | Access key password (available after creating an access key) |
protocol | Yes | Connection protocol: HTTP or HTTPS |
path | Yes | Location of the folder created inside the bucket (Folder object in Bucket) |
host | Yes | Server address: wasabisys.com |
Parameters for the s3_huawei type (Huawei Cloud storage): | ||
bucket | Yes | Archive volume name (Bucket Name), predefined by the user at the Object Storage Service tab |
region | Yes | The region where the corresponding volume is located, as specified when it was created. Specified in the Endpoint parameter in the Bucket properties |
access_key_id | Yes | Access key identifier, which should be created by clicking on the link "Obtain access keys (AK and SK)" |
secret_access_key | Yes | Access key password (available after creating an access key) |
path | Yes | Location of the folder created inside the bucket |
protocol | Yes | Connection protocol: HTTP or HTTPS |
host | Yes | Server address: myhuaweicloud.com |
Parameters for the s3_seagate type (Seagate Lyve Cloud storage): | ||
bucket | Yes | Archive volume name (Bucket Name), predefined by the user. Corresponds to the Name parameter in the Bucket properties |
region | Yes | The region where the corresponding volume is located, as specified when it was created. Corresponds to the Region parameter in the Bucket properties |
access_key_id | Yes | Access key identifier, which is generated when creating an account in the Create Service Account window |
secret_access_key | Yes | Access key password (available after creating an access key) |
path | Yes | Location of the folder created inside the bucket |
protocol | Yes | Connection protocol: HTTP or HTTPS |
host | Yes | Server address: lyvecloud.seagate.com |
Parameters for the s3_minio type (MinIO storage): | ||
bucket | Yes | Archive volume name (Bucket Name), predefined by the user. Corresponds to the Name parameter in the Bucket properties |
bucket_endpoint | No | Domain name with a port. Attention! The parameter should only be used when using MinIO, if the domain name of the MinIO Server is specified instead of the Server IP address. Example: http://miniopoc1.agis.xh.ar:9000 where,
|
region | Yes | The region where the volume is located |
access_key_id | Yes | Access key identifier |
secret_access_key | Yes | Access key password (available after creating an access key) |
path | No | Location of the Axxon One folder inside the bucket |
protocol | Yes | Connection protocol: HTTP or HTTPS |
host | Yes | Server address |
port | Yes | Server port |
Note
Starting from Аxxon One 2.0, it is possible to create multiple volumes of the cloud archive.
Attention!
When the archive size of one of the cloud archive volumes increases, the archive volumes will be overwritten by the Round-robin algorithm (see General information about the Round-robin algorithm). The depth of the archive storage will gradually increase over the number of days equal to the difference between the original and the new value of the archive storage depth.
Example of creating an archive volume as files on a local disk:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/SERVER/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ {"id": "schema","value_string": "file"}, {"id": "path","value_string": "D:/archives"} ]}}]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": "26843545600"}, {"id": "format","value_bool": true}, { "id": "auto_mount", "value_bool": true } ]}]} ] } }
Example of creating an archive volume on a remote resource:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/SERVER/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ { "id": "schema", "value_string": "smb" }, { "id": "host", "value_string": "computer" }, { "id": "smb_domain", "value_string": "domain" }, { "id": "smb_share", "value_string": "Share" }, { "id": "path", "value_string": "video" }, { "id": "user", "value_string": "Tester" }, { "id": "password", "value_string": "Testing321" } ]}}]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": "12073741824"}, {"id": "format","value_bool": true} ]} ] } ] } }
Example of creating a cloud archive volume in Microsoft Azure:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/SERVER/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ { "id": "schema", "value_string": "azure" }, { "id": "protocol", "value_string": "https" }, { "id": "host", "value_string": "axxonsoft.blob.core.windows.net" }, { "id": "access_key", "value_string": "youraccesskey==" }, { "id": "container", "value_string": "container" }, { "id": "user", "value_string": "axxonsoft" }, { "id": "path", "value_string": "" } ]}}]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": "12073741824"}, {"id": "format","value_bool": true} ]} ] } ] } }
Example of creating a cloud archive volume in Amazon:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/SERVER/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ { "id": "schema", "value_string": "s3_amazon" }, { "id": "bucket", "value_string": "axxonsoft-test" }, { "id": "region", "value_string": "us-west-1" }, { "id": "access_key_id", "value_string": "youraccesskeyid" }, { "id": "secret_access_key", "value_string": "yoursecretaccesskey" }, { "id": "path", "value_string": "path" }, { "id": "protocol", "value_string": "https" }, { "id": "host", "value_string": "amazonaws.com" } ]}}]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": "12073741824"}, {"id": "format","value_bool": true} ]} ] } ] } }
Example of creating a cloud archive volume in Wasabi:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/SERVER/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ { "id": "schema", "value_string": "s3_wasabi" }, { "id": "bucket", "value_string": "axxontest-1" }, { "id": "region", "value_string": "us-central-1" }, { "id": "access_key_id", "value_string": "youraccesskeyid" }, { "id": "secret_access_key", "value_string": "yoursecretaccesskey" }, { "id": "path", "value_string": "path" }, { "id": "protocol", "value_string": "http" }, { "id": "host", "value_string": "wasabisys.com" } ]}} ]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": "209715200"}, {"id": "format","value_bool": true} ] } ] } ] } }
Example of creating a cloud archive volume in Huawei Cloud:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/SERVER/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ { "id": "schema", "value_string": "s3_huawei" }, { "id": "bucket", "value_string": "axxon-test-1" }, { "id": "region", "value_string": "ap-southeast-1" }, { "id": "access_key_id", "value_string": "youraccesskeyid" }, { "id": "secret_access_key", "value_string": "yoursecretaccesskey" }, { "id": "path", "value_string": "path" }, { "id": "protocol", "value_string": "https" }, { "id": "host", "value_string": "myhuaweicloud.com" } ]}}]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": "10073741824"}, {"id": "format","value_bool": true} ] } ] } ] } }
Example of creating a cloud archive volume in Seagate Lyve Cloud:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/SERVER/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ { "id": "schema", "value_string": "s3_seagate" }, { "id": "bucket", "value_string": "axxonsoft-test" }, { "id": "region", "value_string": "us-west-1" }, { "id": "access_key_id", "value_string": "youraccesskeyid" }, { "id": "secret_access_key", "value_string": "yoursecretaccesskey" }, { "id": "path", "value_string": "path" }, { "id": "protocol", "value_string": "https" }, { "id": "host", "value_string": "lyvecloud.seagate.com" } ]}}]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": "1073741824"}, {"id": "format","value_bool": true} ]}]} ] } }
Example of creating a cloud archive volume in MinIO S3:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/ServerName/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ { "id": "schema", "value_string": "s3" }, { "id": "bucket", "value_string": "bucket" }, { "id": "region", "value_string": "us-east-1" }, { "id": "access_key_id", "value_string": "MINIOROOT" }, { "id": "secret_access_key", "value_string": "MINIOPASS" }, { "id": "path", "value_string": "path" }, { "id": "protocol", "value_string": "http" }, { "id": "host", "value_string": "192.168.56.102" }, { "id": "port", "value_string": "9000" } ]}}]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": 1207374182}, {"id": "format","value_bool": true} ]} ] } ] } }
Example of creating a cloud archive volume in MinIO S3 using the domain name:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [ { "uid": "hosts/Server/MultimediaStorage.Gray", "units": [ { "type": "ArchiveVolume", "properties": [ { "id": "volume_type", "value_string": "object", "properties": [ { "id": "connection_params", "value_properties": { "properties": [ { "id": "schema", "value_string": "s3" }, { "id": "bucket", "value_string": "bucket" }, { "id": "region", "value_string": "us-east-1" }, { "id": "access_key_id", "value_string": "MINIOROOT" }, { "id": "secret_access_key", "value_string": "MINIOPASS" }, { "id": "path", "value_string": "" }, { "id": "protocol", "value_string": "http" }, { "id": "host", "value_string": "" }, { "id": "bucket_endpoint", "value_string": "http://miniopoc1.agis.xh.ar:9000" } ]}}]}, {"id": "label","value_string": "test"}, {"id": "volume_size","value_uint64": 1207374182}, {"id": "format","value_bool": true} ]} ] } ] } }
To change the archive volume, the same parameters are used as when creating it.
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "changed": [ { "uid": "hosts/Server/MultimediaStorage.Gray/ArchiveVolume.4508f459-5eeb-4ee3-881b-4a4e149c7802", "properties": [ { "id": "label", "value_string": "NewLabel" }, { "id": "readonly", "value_bool": false }, { "id": "connection_params", "value_properties": { "properties": [ { } ] } } ] } ] } }
{ "method":"axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data":{ "removed":[ { "uid": "hosts/Server1/MultimediaStorage.Aqua", "type": "MultimediaStorage", "properties": [], "units": [], "opaque_params": [] }] } }
{ "method":"axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data":{ "removed" : [ { "uid" : "hosts/Server1/MultimediaStorage.White/ArchiveVolume.IQ5C6RDFOZOCC5DFNVYFYMJOMFTHG", "properties": [ { "id": "remove_file", "value_bool": true }] }, { "uid": "hosts/Server1/MultimediaStorage.White" }] } }
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "added": [], "changed": [], "removed": [ { "uid": "hosts/Node1/MultimediaStorage.AliceBlue/ArchiveVolume.d0305f4a-1a20-4b10-a132-605eff3269d7", "properties": [ { "id": "erase_volume_data", "value_bool": true } ] } ] } }
Note
If you remove an Azure archive volume, the container along with the data will also be removed. To remove only Azure archive volume data, delete files through the Azure web interface: https://azure.microsoft.com/en-us/services/storage/blobs/.
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "removed": [ { "uid": "hosts/Server1/MultimediaStorage.AliceBlue/ArchiveContext.580063c3-71d6-a265-0ae1-4a1fef231f5c", "type": "ArchiveContext", "properties": [], "units": [], "opaque_params": [] } ] } }
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "removed": [ { "uid": "hosts/Server1/MultimediaStorage.Tan/ArchiveVolume.IQ5C6MJOMFTHG" } ] } }
Request body:
"method": "axxonsoft.bl.events.EventHistoryService.FindSimilarObjects", "data": { "session": 0, "is_face": true, "minimal_score": 0.75, "jpeg_image": "", "range": { "begin_time": "20200916T104305.137", "end_time": "20200918T105305.137" }, "origin_ids": [ "hosts/DESKTOP-FQETIKR/DeviceIpint.2/SourceEndpoint.video:0:0" ], "limit": 1000, "offset": 0 } }
where jpeg_image is a picture with a byte-serial face in the format: /9j/4AAQSkZJRgABAQEAYABgAAD/4REGRXhpZgAATU0AKgAA etc.
Response example:
{ "items": [ { "event": { "guid": "f136d184-9101-417d-a24c-edb46aad113f", "timestamp": "20200917T071919.869000", "state": "SPECIFIED", "origin_deprecated": "hosts/DESKTOP-FQETIKR/DeviceIpint.2/SourceEndpoint.video:0:0", "origin_ext": { "access_point": "hosts/DESKTOP-FQETIKR/DeviceIpint.2/SourceEndpoint.video:0:0", "friendly_name": "Camera" }, "offline_analytics_source": "", "detector_deprecated": "hosts/DESKTOP-FQETIKR/AVDetector.2/EventSupplier", "detector_ext": { "access_point": "hosts/DESKTOP-FQETIKR/AVDetector.2/EventSupplier", "friendly_name": "Face detection" }, "node_info": { "name": "DESKTOP-FQETIKR", "friendly_name": "" }, "event_type": "faceAppeared", "multi_phase_id": "", "detectors_group": [ "DG_FACE_DETECTOR", "DG_TEMPERATURE_DETECTOR" ], "details": [ { "rectangle": { "x": 0.2397222222222222, "y": 0.135, "w": 0.12541666666666665, "h": 0.21518518518518515, "index": 3203 } }, { "face_recognition_result": { "begin_time": "1600327157949", "best_quality": 0.618347704410553, "age": 0, "gender": "UNKNOWN", "temperature": { "value": -1000, "unit": "CELSIUS" } } }, { "byte_vector": { "data": "sEYKPSAwkj0iwZu9yl/Tu5kP4L01KsW7Z6KVPUd6zr2SdYy9s91iveWm7jxi3BQ9MWaCPCcnlL1WbKU8z/PEvMO58bxJp5q9TmdNPYn8AL1GGso8j8A4vHdw4zybxvc8HdeUPaF4Yj1AZp69dx8OvEgE3L1aKM89ARirPePB1jrVqQ29ongXvX6lKz5QYyK9uMpVvX+Yeb2E58Q9WciRPV2noL21kaG7zEKavNElXr0T3yK97HV5vYU3kD1p08c9zxMPPXQM8Ty1hE89YXCBPIuhyz23vQM+QuGqvPBjVT0lV9U5m0TKPESvOT1iM8w9ZzebvU4Eiz3ZD/+9HvhCvfkMyryHlKO7dAooO+zbCz2NJiw8OMyxunfPar28Uh2+cqiXPV6I273IQHU8O5GVvfDPbTzWkw6+eYX+vYTAij0kAIy9wXKFPDKGHb3mhnk9CXMCPSdEV7z52ms9vcI1vZrSbTxs0Wm9RyQXvXv8273RKMw8eyxjPOWyIr4MzkE98sjLPXFnEz6CkTg9cyyHvVlwJry7s3E9JOgEPRcYYrreLLw7cYQcvENyJ70+8K88P+iZPGhTUjxOpGW84rJEPbpDmb3zL9W8guGDPGiXiz0Z5IM91zFlPYnRl7yXnTI8oLTfvfCUOz3IJ1C976yNPfCMg7xRczA8kM+4vf5S5L0G3t28ZiEzPFFzmb3OuoG78SMCPblR47zD0SA9WRzJveoSirwH5nm9XRBMPW3G1z2zrH89VvizPP2a2b2BUCC9KAmUvc52cj3XlU08zoJbvfY4fj2vRy092im+PS+FvTyydnc9iCouvXPY4T3i5jm8ynIovNCd0jwiFS69Hs7IPfpBxbxt0SI90CJzPYNpgr0SW7491eQ3vZfuvTyUnM09ZEQ2vZgG1rxbS2E9dnmVPZZXuLwPdN69JBiSvFggoLvnZeG77tyWvVSFVTxVBxo9seqbvbLuXj2CBk89CEpqvTt2M71VjBW9WAHdvHFg8T2myWS9uSAWPWPgM7mv5hK9dUvJvUuWrTx2EK09DYDCu5KVCj5Ekfm7OFAHvR6c07wkKnc8WpXQvXrzrrzPpFG965MJPmlNRbykeN89SzjNPWzS9bu2UoG9p//Tu2UhVT2PpD49zNOHvX9M3LxaC2G9Z/oNvXahjLyTNhg9FQWOvKtXW71VDA69il/5PVlOcr1XDk494iowvbGY9jwXYLO9YhIjPv8Wubth8RO9MUt8PdAOSD1io+e7bwzYPXQsvj02Go06cleBvO+Vyjz21hU7CFOnuzN1+z3tg8i9yN+nO9KgAb70sHg8fik9vSdd/Dzjd/k8pfSbO3poOjwj65Q9rujnu0cY8ztHdmc97YeavQ==", "type": -1, "subtype": "", "version": 0 } } ], "params": [] }, "score": 0.994738 } ], "offset": "1" } --ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 33 { "items": [], "offset": "0" }
Request body:
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadLprEvents", "data": { "range": { "begin_time": "20200916T104305.137", "end_time": "20200918T105305.137" }, "filters": { "filters": [ { "subjects": "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0" } ] }, "limit":2, "offset":0, "search_predicate":"829DT97" } }
Response example:
{ "items": [ { "event_type": "ET_DetectorEvent", "subject": "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0", "body": { "@type": "type.googleapis.com/axxonsoft.bl.events.DetectorEvent", "guid": "825bd3c9-adef-4ec3-ae23-2e8b6a7d2e8e", "timestamp": "20200917T073828.069000", "state": "HAPPENED", "origin_deprecated": "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0", "origin_ext": { "access_point": "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0", "friendly_name": "Camera" }, "offline_analytics_source": "", "detector_deprecated": "hosts/DESKTOP-FQETIKR/AVDetector.1/EventSupplier", "detector_ext": { "access_point": "hosts/DESKTOP-FQETIKR/AVDetector.1/EventSupplier", "friendly_name": "License plate recognition (VT)" }, "node_info": { "name": "DESKTOP-FQETIKR", "friendly_name": "" }, "event_type": "plateRecognized", "multi_phase_id": "", "detectors_group": [ "DG_LPR_DETECTOR" ], "details": [ { "auto_recognition_result": { "direction": 1, "time_begin": "20200917T073827.309000", "time_end": "20200917T073828.349000", "hypotheses": [ { "ocr_quality": 81, "plate_full": "829DT97", "plate_rectangle": { "x": 0.36388888888888887, "y": 0.65625, "w": 0.19722222222222224, "h": 0.04340277777777779, "index": 0 }, "time_best": "20200917T073828.069000", "country": "es" }, { "ocr_quality": 39, "plate_full": "299DD97", "plate_rectangle": { "x": 0.36388888888888887, "y": 0.65625, "w": 0.19722222222222224, "h": 0.04340277777777779, "index": 0 }, "time_best": "20200917T073828.069000", "country": "es" }, { "ocr_quality": 51, "plate_full": "829DT*7*", "plate_rectangle": { "x": 0.36388888888888887, "y": 0.65625, "w": 0.19722222222222224, "h": 0.04340277777777779, "index": 0 }, "time_best": "20200917T073828.069000", "country": "es" } ] } } ], "params": [] }, "subjects": [ "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0", "hosts/DESKTOP-FQETIKR/AVDetector.1/EventSupplier" ], "localization": { "text": "Camera \"Camera\". License plate recognition detection triggered, number \"829DT97\"" } }, { "event_type": "ET_DetectorEvent", "subject": "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0", "body": { "@type": "type.googleapis.com/axxonsoft.bl.events.DetectorEvent", "guid": "adc555c5-850a-44fb-9ee3-26978799f3ab", "timestamp": "20200917T073705.291000", "state": "HAPPENED", "origin_deprecated": "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0", "origin_ext": { "access_point": "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0", "friendly_name": "Camera" }, "offline_analytics_source": "", "detector_deprecated": "hosts/DESKTOP-FQETIKR/AVDetector.1/EventSupplier", "detector_ext": { "access_point": "hosts/DESKTOP-FQETIKR/AVDetector.1/EventSupplier", "friendly_name": "License plate recognition (VT)" }, "node_info": { "name": "DESKTOP-FQETIKR", "friendly_name": "" }, "event_type": "plateRecognized", "multi_phase_id": "", "detectors_group": [ "DG_LPR_DETECTOR" ], "details": [ { "auto_recognition_result": { "direction": 1, "time_begin": "20200917T073704.531000", "time_end": "20200917T073705.571000", "hypotheses": [ { "ocr_quality": 81, "plate_full": "829DT97", "plate_rectangle": { "x": 0.36388888888888887, "y": 0.65625, "w": 0.19722222222222224, "h": 0.04340277777777779, "index": 0 }, "time_best": "20200917T073705.291000", "country": "es" }, { "ocr_quality": 39, "plate_full": "FF299Y97", "plate_rectangle": { "x": 0.36388888888888887, "y": 0.65625, "w": 0.19722222222222224, "h": 0.04340277777777779, "index": 0 }, "time_best": "20200917T073705.291000", "country": "es" }, { "ocr_quality": 51, "plate_full": "829DT*7*", "plate_rectangle": { "x": 0.36388888888888887, "y": 0.65625, "w": 0.19722222222222224, "h": 0.04340277777777779, "index": 0 }, "time_best": "20200917T073705.291000", "country": "es" } ] } } ], "params": [] }, "subjects": [ "hosts/DESKTOP-FQETIKR/DeviceIpint.1/SourceEndpoint.video:0:0", "hosts/DESKTOP-FQETIKR/AVDetector.1/EventSupplier" ], "localization": { "text": "Camera \"Camera\". License plate recognition detection triggered, number \"829DT97\"" } } ], "unreachable_subjects": [] } --ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 46 { "items": [], "unreachable_subjects": [] }
Request body:
{ "method": "axxonsoft.bl.vmda.VMDAService.ExecuteQuery", "data": { "access_point": "hosts/DESKTOP-FQETIKR/VMDA_DB.0/Database", "camera_ID": "AVDetector.1/SourceEndpoint.vmda", "schema_ID": "vmda_schema", "dt_posix_start_time": "20200916T114345.368", "dt_posix_end_time": "20200918T134347.240", "query": "figure fZone=polygon(0.3,0.3,0.7,0.3,0.7,0.7,0.3,0.7); figure fDir=(ellipses(-10000, -10000, 10000, 10000) - ellipses(-0, -0, 0, 0));set r = group[obj=vmda_object] { res = or(fZone((obj.left + obj.right) / 2, obj.bottom)) }; result = r.res;", "language": "EVENT_BASIC" } }
Response example:
--ngpboundary Content-Type: application/json; charset=utf-8 Content-Length: 6271 { "intervals": [ { "limit": { "begin_time": "20200917T065039.101000", "end_time": "20200917T065041.181000" }, "objects": [ { "id": "11", "left": 0.60833333333333328, "top": 0.28125, "right": 0.72777777777777775, "bottom": 0.328125 } ] }, { "limit": { "begin_time": "20200917T065041.181000", "end_time": "20200917T065041.541000" }, "objects": [ { "id": "20", "left": 0.56111111111111112, "top": 0.34722222222222221, "right": 0.67777777777777781, "bottom": 0.38541666666666663 } ] }, { "limit": { "begin_time": "20200917T065047.741000", "end_time": "20200917T065047.821000" }
POST http://IP-address:port/prefix/grpc
Request body:
{ "method": "axxonsoft.bl.layout.LayoutManager.Update", "data": { "created":{ "display_name":"Layout" } } }
The response will contain the id
{ "created_layouts": [ "b0bd2b36-064a-4cc4-9a6f-382de02be7ef" ] }
Get a list of layouts.
POST http://IP-address:port/prefix/grpc
Request body:
{ "method": "axxonsoft.bl.layout.LayoutManager.ListLayouts", "data": { "view": "VIEW_MODE_FULL" } }
Response:
{ "current": "", "items": [ { "meta": { "layout_id": "b0bd2b36-064a-4cc4-9a6f-382de02be7ef", "owned_by_user": true, "shared_with": [], "etag": "63F1DF706EE001985D858352029DB0BDBCF257FC" }, "body": { "id": "b0bd2b36-064a-4cc4-9a6f-382de02be7ef", "display_name": "my", "is_user_defined": false, "is_for_alarm": false, "alarm_mode": false, "map_id": "", "map_view_mode": "MAP_VIEW_MODE_LAYOUT_ONLY", "cells": {} } } ], "special_layouts": { "favorite": { "id": "", "enabled": false }, "alarm": { "id": "", "enabled": false } } }
{ "method":"axxonsoft.bl.security.SecurityService.ListConfig", "data":{ } }
The response will contain:
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "added_roles": [ { "index": "60c60ed4-47e3-4d5e-9737-0f00b684f535", "name": "newRole", "comment": "comment", "timezone_id": "00000000-0000-0000-0000-000000000000", "supervisor": "00000000-0000-0000-0000-000000000000" } ] } }
Attention!
timezone_id − id of the time zone. If 00000000-0000-0000-0000-000000000000, then the time zone is Always.
supervisor − id of the role that will be a supervisor (see Creating and configuring roles). If 00000000-0000-0000-0000-000000000000, then the supervisor is not defined.
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "added_users": [ { "index": "393b06f3-d419-441d-8834-b5d1824c135a", "login": "user", "name": "user", "comment": "comment", "date_created": "", "date_expires": "", "enabled": true, "ldap_link": { "server_id": "", "username": "", "dn": "" }, "restrictions": { "web_count": 0, "mobile_count": 0 }, "email": "", "cloud_id": 160, "extra_fields": { "SocialId": "test", "IpAddress": "160.85.208.94", "CompanyId": "test" }, ], "locked_till": "" } ] } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "added_users_assignments": [ { "user_id": "52537c93-3efc-4465-b553-1c1ccf42faef", "role_id": "75863211-6fe5-4a79-9abf-f8137b1e767c" } ] } }
{ "method":"axxonsoft.bl.security.SecurityService.ChangeConfig", "data":{ "modified_users": [ { "index": "fa00ea14-0ff5-4586-b6c8-ea449391a3a8", "login": "user1", "name": "user1", "comment": "", "enabled": true, "ldap_server_id": "00000000-0000-0000-0000-000000000000", "ldap_domain_name": "", "restrictions": { "web_count": 2147483647, "mobile_count": 2147483647 }, "email": "", "cloud_id": "0", "extra_fields": { "SocialId": "test", "IpAddress": "160.85.208.94", "CompanyId": "test" }, ], "locked_till": "29990101T000000" } ] } }
where the locked_till parameter specifies the date and time in the YYYYMMDDTHHMMSS format until which the user will be blocked.
To unblock a user, set the date and time less than the current one.
{ "method": "axxonsoft.bl.security.SecurityService.CheckLogin", "data": { "login": "user" } }
The response will contain the following information:
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "modified_roles": [ { "index": "21b8907c-bee4-4729-acf1-eeab31354b8b", "name": "57", "comment": "1581664337", "timezone_id": "00000000-0000-0000-0000-000000000000", "cloud_id": 11648, "supervisor": "2b74c26e-eb61-4499-b763-9df13148fb81" } ] } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "modified_users": [ { "index": "26248a39-584f-4efb-8ad6-ccfb026b4c26", "login": "usr", "name": "usr_lab", "comment": "now 1581664730", "date_created": "20200213T114440", "date_expires": "", "enabled": false, "ldap_server_id": "00000000-0000-0000-0000-000000000000", "ldap_domain_name": "", "restrictions": { "web_count": 0, "mobile_count": 500 }, "email": "", "cloud_id": 158, "extra_fields": { "SocialId": "test", "IpAddress": "160.85.208.94", "CompanyId": "test" }, ], "locked_till": "19700101T000000" } ] } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "modified_user_passwords": [ { "user_index": "b7ecfde8-b080-45b9-9cb8-76ad85992666", "password": "BLekX1kJElmI9g", "expire_date": "" } ] } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "removed_users_assignments": [ { "user_id": "26248a39-584f-4efb-8ad6-ccfb026b4c26", "role_id": "2b74c26e-eb61-4499-b763-9df13148fb81" } ] } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "removed_users": ["52537c93-3efc-4465-b553-1c1ccf42faef"] } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "removed_roles": ["75863211-6fe5-4a79-9abf-f8137b1e767c"] } }
{ "method":"axxonsoft.bl.security.SecurityService.ListGlobalPermissions", "data":{ "role_ids":"356e84ea-8b66-4cc7-a330-feaa34fff83d" } }
Response example:
{ "permissions": { "21b8907c-bee4-4729-acf1-eeab31354b8b": { "unrestricted_access": "UNRESTRICTED_ACCESS_NO", "maps_access": "MAP_ACCESS_FULL", "feature_access": [ "FEATURE_ACCESS_SEARCH", "FEATURE_ACCESS_MINMAX_BUTTON_ALLOWED", "FEATURE_ACCESS_ADD_CAMERA_TO_LAYOUT_IN_MONITORING", "FEATURE_ACCESS_ALLOW_SHOW_TITLES", "FEATURE_ACCESS_ARCHIVES_SETUP", "FEATURE_ACCESS_ALLOW_SHOW_PRIVACY_VIDEO_IN_ARCHIVE", "FEATURE_ACCESS_SYSTEM_JOURNAL", "FEATURE_ACCESS_LAYOUTS_TAB", "FEATURE_ACCESS_ALLOW_DELETE_RECORDS", "FEATURE_ACCESS_EXPORT", "FEATURE_ACCESS_EDIT_PTZ_PRESETS", "FEATURE_ACCESS_ALLOW_SHOW_FACES_IN_LIVE", "FEATURE_ACCESS_DEVICES_SETUP", "FEATURE_ACCESS_PROGRAMMING_SETUP", "FEATURE_ACCESS_DOMAIN_MANAGING_OPS", "FEATURE_ACCESS_USERS_RIGHTS_SETUP", "FEATURE_ACCESS_SETTINGS_SETUP", "FEATURE_ACCESS_ALLOW_BUTTON_MENU_CAMERA", "FEATURE_ACCESS_DETECTORS_SETUP", "FEATURE_ACCESS_ALLOW_UNPROTECTED_EXPORT", "FEATURE_ACCESS_WEB_UI_LOGIN", "FEATURE_ACCESS_CHANGING_LAYOUTS" ], "alert_access": "ALERT_ACCESS_FULL", "bookmark_access": "BOOKMARK_ACCESS_CREATE_PROTECT_EDIT_DELETE", "default_camera_access": "CAMERA_ACCESS_FORBID", "default_microphone_access": "MICROPHONE_ACCESS_FORBID", "default_archive_access": "ARCHIVE_ACCESS_FORBID", "default_videowall_access": "VIDEOWALL_ACCESS_FORBID" } } }
{ "method": "axxonsoft.bl.security.SecurityService.SetGlobalPermissions", "data": { "permissions": { "21b8907c-bee4-4729-acf1-eeab31354b8b": { "unrestricted_access": "UNRESTRICTED_ACCESS_NO", "maps_access": "MAP_ACCESS_FULL", "feature_access": [ "FEATURE_ACCESS_EDIT_PTZ_PRESETS", "FEATURE_ACCESS_ALLOW_SHOW_FACES_IN_LIVE", "FEATURE_ACCESS_ALLOW_UNPROTECTED_EXPORT", "FEATURE_ACCESS_WEB_UI_LOGIN", "FEATURE_ACCESS_CHANGING_LAYOUTS" ], "alert_access": "ALERT_ACCESS_VIEW_ONLY" } } } }
Attention!
Only the parameters that are specified in the request will be edited.
{ "method": "axxonsoft.bl.security.SecurityService.ListObjectPermissions", "data": { "role_id": "b9060002-c7fc-48d9-9c5c-a16b9f5c4a82", "camera_ids": [ "hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0" ], "microphone_ids": [ "hosts/Server1/DeviceIpint.10/SourceEndpoint.audio:0" ], "telemetry_ids": [ "hosts/Server1/DeviceIpint.10/TelemetryControl.0" ], "archive_ids": [ "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" ], "videowall_ids": [] } }
{ "method": "axxonsoft.bl.security.SecurityService.SetObjectPermissions", "data": { "role_id": "b9060002-c7fc-48d9-9c5c-a16b9f5c4a82", "permissions": { "camera_access": { "hosts/Server1/DeviceIpint.10/SourceEndpoint.video:0:0": "CAMERA_ACCESS_ARCHIVE" }, "microphone_access": { "hosts/Server1/DeviceIpint.10/SourceEndpoint.audio:0": "MICROPHONE_ACCESS_MONITORING" }, "telemetry_priority": { "hosts/Server1/DeviceIpint.10/TelemetryControl.0": "TELEMETRY_PRIORITY_LOW" }, "archive_access": { "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage": "ARCHIVE_ACCESS_FULL" }, "videowall_access": {} } } }
{ "method": "axxonsoft.bl.security.SecurityService.SetObjectPermissions", "data": { "role_id": "e99602c3-0730-44a0-9f7c-0ef242a6314f", "permissions": { "telemetry_priority": { "hosts/Server1/DeviceIpint.6/TelemetryControl.0": "TELEMETRY_PRIORITY_NO_ACCESS", "hosts/Server1/DeviceIpint.7/TelemetryControl.0": "TELEMETRY_PRIORITY_NO_ACCESS", "hosts/Server1/DeviceIpint.8/TelemetryControl.0": "TELEMETRY_PRIORITY_NO_ACCESS", "hosts/Server1/DeviceIpint.9/TelemetryControl.0": "TELEMETRY_PRIORITY_NO_ACCESS", "hosts/Server1/DeviceIpint.10/TelemetryControl.0": "TELEMETRY_PRIORITY_NO_ACCESS", "hosts/Server1/DeviceIpint.11/TelemetryControl.0": "TELEMETRY_PRIORITY_NO_ACCESS" } } } }
"pwd_policy": [ { "policy_name": "", "guid": "00000000-0000-0000-0000-000000000000", "minimum_password_length": "0", "maximum_password_age_days": "0", "password_history_count": "0", "maximum_failed_logon_attempts": "0", "account_lockout_duration_minutes": "0", "password_must_meet_complexity_requirements": false, "forbid_multiple_user_sessions": false } ],
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "modified_pwd_policy": { "method": "MM_OVERWRITE_DATA", "data": [ { "policy_name": "111", "guid": "48fc6637-2077-4f06-9c43-f214b1735ef8", "minimum_password_length": "1", "maximum_password_age_days": "365", "password_history_count": "10", "maximum_failed_logon_attempts": "0", "account_lockout_duration_minutes": "0", "password_must_meet_complexity_requirements": true, "forbid_multiple_user_sessions": false } ] } } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "modified_pwd_policy": { "method": "MM_OVERWRITE_DATA", "data": [] } } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "modified_trusted_ip_list": { "method": "MM_OVERWRITE_DATA", "data": [ { "guid": "b037d6b8-d826-483d-8893-54cbcad5030e", "ipAddress": "10.0.37.159", "prefix": 24 } ] } } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "modified_trusted_ip_list": { "method": "MM_OVERWRITE_DATA", "data": [] } } }
{ "method":"axxonsoft.bl.security.SecurityService.ListConfig", "data":{ } }
Response example:
"ldap_servers": [ { "index": "6b5769e8-1322-4666-9567-14d129a8548a", "server_name": "qa.test", "friendly_name": "QA.TEST", "port": 389, "base_dn": "ou=LOAD,dc=qa,dc=test", "login": "cn=Tester QA-T. Tester,ou=LOAD,dc=qa,dc=test", "password": "Zz123456", "use_ssl": false, "search_filter": "(objectClass=person)", "login_attribute": "cn", "dn_attribute": "distinguishedname", "roles_assignments_for_new_users": [ "00000000-0000-0000-0000-000000000000" ] }, { "index": "d3231030-b7ce-4435-af85-ded1eb9b4622", "server_name": "192.168.33.80", "friendly_name": "ldap", "port": 389, "base_dn": "ou=Address,dc=axxonsoft,dc=us", "login": "cn=admin,dc=Axxondomain,dc=com", "password": "jwxWWf4f", "use_ssl": false, "search_filter": "(objectClass=person)", "login_attribute": "cn", "dn_attribute": "entrydn", "roles_assignments_for_new_users": [ "00000000-0000-0000-0000-000000000000" ] } ],
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "added_ldap_servers": { "index": "d3231030-b7ce-4435-af85-ded1eb9b4622", "server_name": "192.168.33.80", "friendly_name": "ldap", "port": 389, "base_dn": "ou=Address,dc=axxonsoft,dc=us", "login": "cn=admin,dc=Axxondomain,dc=com", "password": "jwxWWf4f", "use_ssl": false, "search_filter": "(objectClass=person)", "login_attribute": "cn", "dn_attribute": "entrydn", "roles_assignments_for_new_users": [ "00000000-0000-0000-0000-000000000000" ] } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "modified_ldap_servers": [ { "index": "d3231030-b7ce-4435-af85-ded1eb9b4622", "server_name": "192.168.33.80", "friendly_name": "ldap", "port": 636, "base_dn": "ou=Address,dc=axxonsoft,dc=us", "login": "cn=admin,dc=Axxondomain,dc=com", "password": "jwxWWf4f", "use_ssl": true, "search_filter": "(objectClass=person)", "login_attribute": "cn", "dn_attribute": "entrydn", "roles_assignments_for_new_users": [ "d4451805-13f2-4414-b0c5-6ae9f081e3e1" ] } ] } }
{ "method": "axxonsoft.bl.security.SecurityService.ChangeConfig", "data": { "removed_ldap_servers": ["d3231030-b7ce-4435-af85-ded1eb9b4622"] } }
Attention!
LDAP directory must be available.
{ "method": "axxonsoft.bl.security.SecurityService.SearchLDAP", "data": { "ldap_server_id": "6b5769e8-1322-4666-9567-14d129a8548a" } }
Response example:
{ "entries": [ { "login": "User1", "dn": "CN=User1,OU=LOAD,DC=qa,DC=test" }, { "login": "User2", "dn": "CN=User2,OU=LOAD,DC=qa,DC=test" }, { "login": "User3", "dn": "CN=User3,OU=LOAD,DC=qa,DC=test" }, { "login": "User4", "dn": "User4,OU=LOAD,DC=qa,DC=test" }, { "login": "User5", "dn": "User5,OU=LOAD,DC=qa,DC=test" } ] }
Request body:
{ "method":"axxonsoft.bl.heatmap.HeatMapService.BuildHeatmap", "data": { "access_point":"hosts/Server1/HeatMapBuilder.0/HeatMapBuilder", "camera_ID":"hosts/Server1/AVDetector.13/SourceEndpoint.vmda", "dt_posix_start_time":"20190320T200000.001", "dt_posix_end_time":"20190321T200000.001", "mask_size":{"width":320,"height":240}, "image_size":{"width":640,"height":480}, "result_type":"RESULT_TYPE_IMAGE" }, "result_type":"RESULT_TYPE_IMAGE" }
where
Note
To get the coordinates of the objects movement, it is necessary to specify the RESULT_TYPE_DATA value for the result_type parameter in the request body.
Response:
{ "result": true, "heatmap": [], "image_data": "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" }
where image_data is the received image in the base64 format.
Get list of control panels
Request body:
ListControlPanels( ListControlPanelsRequest( view=VIEW_MODE_FULL ) )
Response:
items { access_point: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" display_id: "4" vendor: "Pelco-joystick" model: "KBD5000" properties { axes { key: "jog" value: "supportsContinuousJog" } axes { key: "pan" value: "supportsContinuousPan" } axes { key: "shuttle" value: "supportsContinuousShuttle" } axes { key: "tilt" value: "supportsContinuousTilt" } axes { key: "zoom" value: "supportsContinuousZoom" } buttons { value: "buttonFourPoint" } buttons { key: 1 value: "buttonIris" } buttons { key: 2 value: "buttonVision" } buttons { key: 3 value: "buttonAbout" } buttons { key: 4 value: "buttonInfo" } buttons { key: 5 value: "buttonJoystickButton" } buttons { key: 8 value: "buttonLeftFolder" } buttons { key: 9 value: "buttonRightFolder" } buttons { key: 10 value: "buttonPlayPause" } buttons { key: 11 value: "buttonStop" } buttons { key: 12 value: "buttonDelay" } buttons { key: 13 value: "buttonOnePoint" } buttons { key: 14 value: "buttonTwoPoint" } buttons { key: 15 value: "buttonThreePoint" } buttons { key: 16 value: "buttonNine" } buttons { key: 17 value: "buttonZero" } buttons { key: 18 value: "buttonVideo" } buttons { key: 19 value: "buttonOneWindow" } buttons { key: 20 value: "buttonFourWindow" } buttons { key: 21 value: "buttonNineWindow" } buttons { key: 22 value: "buttonSixteenWindow" } buttons { key: 23 value: "buttonComputer" } buttons { key: 24 value: "buttonOne" } buttons { key: 25 value: "buttonTwo" } buttons { key: 26 value: "buttonThree" } buttons { key: 27 value: "buttonFour" } buttons { key: 28 value: "buttonFive" } buttons { key: 29 value: "buttonSix" } buttons { key: 30 value: "buttonSeven" } buttons { key: 31 value: "buttonEight" } }
Get list of events
Request body:
PullEvents(PullEventsRequest(filters=EventFilters(include=[EventFilter(subject="hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0",event_type=ET_ControlPanelStateEvent)])))
Response:
items { event_type: ET_ControlPanelStateEvent subject: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" body { [type.googleapis.com/axxonsoft.bl.events.ControlPanelStateEvent] { guid: "c95204e2-1e63-47d4-ad43-c12ea7a4e928" object_id: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" axes { name: "pan" value: -0.302052795887 } } } subjects: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" } items { event_type: ET_ControlPanelStateEvent subject: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" body { [type.googleapis.com/axxonsoft.bl.events.ControlPanelStateEvent] { guid: "9a27d338-5280-4ae6-a686-a94181859cb9" object_id: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" axes { name: "pan" value: -0.302052795887 } axes { name: "tilt" value: 0.564027428627 } } } subjects: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" } items { event_type: ET_ControlPanelStateEvent subject: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" body { [type.googleapis.com/axxonsoft.bl.events.ControlPanelStateEvent] { guid: "d8cec48a-99d9-4ee5-a24e-7aa59802760b" object_id: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" axes { name: "pan" value: -0.726295232773 } axes { name: "tilt" value: 0.564027428627 } } } subjects: "hosts/Server1/DeviceIpint.4/EventSupplier.ioDevice:0" }
Request body:
{ "method":"axxonsoft.bl.statistics.StatisticService.GetStatistics", "data":{ "keys": [ { "type":"SPT_WaterLevel", "name":"hosts/SERVER1/AVDetector.93/EventSupplier" } ] } }
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadEvents", "data": { "range": { "begin_time": "20200225T125548.340", "end_time": "20200225T130548.341" }, "limit": 30, "offset": 0, "descending": false } }
where:
The following parameters can be set as a filter:
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadEvents", "data": { "range": { "begin_time": "20200225T152806.572", "end_time": "20200225T153806.572" }, "filters": { "filters": [ { "type": "ET_IpDeviceStateChangedEvent", "subjects": "hosts/Server1/DeviceIpint.10" } ] }, "limit": 300, "offset": 0, "descending": false } }
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadEvents", "data": { "range": { "begin_time": "20200226T074425.274", "end_time": "20200226T075425.274" }, "filters": { "filters": [ { "type": "ET_IpDeviceStateChangedEvent", "values": "IPDS_DISCONNECTED" } ] }, "limit": 300, "offset": 0, "descending": false } }
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadEvents", "data": { "range": { "begin_time": "20211020T120000.000", "end_time": "20211020T200000.000" }, "filters": { "filters": [ { "type": "ET_DetectorEvent", "values": "DG_LPR_DETECTOR" } ] }, "limit": 10000, "descending": true } }
The subject and the text of event are specified in filter.
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadTextEvents", "data": { "range": { "begin_time": "20231030T014305.137", "end_time": "20231030T232305.137" }, "filters": { "filters": [ { "subjects": "hosts/Server/DeviceIpint.7/SourceEndpoint.video:0:0", "filter_containing_text_parts": false, "texts": "FOOD" } ] }, "limit":10, "offset":0, "descending": false } }
where:
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadAlerts", "data": { "range": { "begin_time": "20200225T150142.437", "end_time": "20200225T151142.437" }, "limit":100, "offset":0, "descending": false } }
Note
If an operator’s comment was specified for the alarm, it will be in the response with the frame coordinates.
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadAlerts", "data": { "range": { "begin_time": "20200225T150845.757", "end_time": "20200225T151845.758" }, "filters": { "filters": [ { "subjects": "hosts/Server1/DeviceIpint.7/SourceEndpoint.video:0:0", "values": "BEGAN" } ] }, "limit":100, "offset":0, "descending": false } }
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadLprEvents", "data": { "range": { "begin_time": "20200226T104305.137", "end_time": "20200226T105305.137" }, "filters": { "filters": [ { "subjects": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "values":"Н829МУ777" } ] }, "limit":50, "offset":0, "descending": false } }
{ "method": "axxonsoft.bl.events.EventHistoryService.ReadLprEvents", "data": { "range": { "begin_time": "20200226T104305.137", "end_time": "20200226T105305.137" }, "filters": { "filters": [ { "subjects": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0" } ] }, "limit":50, "offset":0, "search_predicate":"*82*", "descending": false } }
If you subscribe, you will be notified as events occur.
{ "method": "axxonsoft.bl.events.DomainNotifier.PullEvents", "data": { "subscription_id": "a003ed13-3b8f-4cef-a450-0199dc259w37", "filters": { "include": [{ "event_type":"ET_DetectorEvent", "subject":"hosts/Server1/AVDetector.1/EventSupplier" }, { "event_type":"ET_DetectorEvent", "subject":"hosts/Server1/AVDetector.2/EventSupplier" }, { "event_type":"ET_DetectorEvent", "subject":"hosts/Server2/AVDetector.1/EventSupplier" } ] } } }
where:
To receive events using a subscription, do the following:
The request body with the DisconnectEventChannel method:
{ "method": "axxonsoft.bl.events.DomainNotifier.DisconnectEventChannel", "data": { "subscription_id": "a003ed13-3b8f-4cef-a450-0199dc259w37" } }
Note
The value of the subscription_id field should be equal in all requests.
{ "method": "axxonsoft.bl.events.DomainNotifier.PullEvents", "data": { "subscription_id": "a003ed13-3b8f-4cef-a450-0199dc259w37", "filters": { "include": { "event_type": "ET_DetectorEvent", "subject" : "hosts/A-BUDNIKOV/DeviceIpint.1/SourceEndpoint.video:0:0" } } } }
where:
The response will contain an event, and the event fields will contain information about the number of objects:
"details": [ { "lots_objects": { "object_count": 3 } } ],
where:
{ "method": "axxonsoft.bl.events.DomainNotifier.PullEvents", "data": { "subscription_id": "a001ed13-3b8f-4cef-a450-0199dc259w37", "filters": { "include": { "event_type": "ET_ObjectActivatedEvent", "subject": "" } } } }
where:
The response will contain an event, and the event fields will contain information about the state of objects within the entire time since they were added to the system:
{ "event_type": "ET_ObjectActivatedEvent", "subject": "", "body": { "@type": "type.googleapis.com/axxonsoft.bl.events.ObjectActivatedEvent", "guid": "88c930c5-89a7-4382-a004-119a8ea56c78", "is_activated": true, "timestamp": "20221003T065757.170118", "object_id_ext": { "access_point": "hosts/SERVER1/DeviceIpint.1/SourceEndpoint.audio:0", "friendly_name": "Camera" },
where:
{ "method": "axxonsoft.bl.events.DomainNotifier.PullEvents", "data": { "subscription_id": "a003ed13-3b8f-4cef-a450-0199dc259h35", "filters": { "include": [{ "event_type":"ET_TextEvent", "subject":"hosts/Server/DeviceIpint.7/SourceEndpoint.video:0:0" } ] } } }
where:
Templates allow you to apply the same preset parameters to cameras.
Note
If a template has been assigned to the camera but has not yet been applied, then the response to the ListUnits method (see gRPC API 메서드를 사용하여 장치 관리 (ConfigurationService)) will contain the parameter "has_unapplied_templates": true.
{ "method": "axxonsoft.bl.config.ConfigurationService.ListTemplates", "data": { "view": "VIEW_MODE_FULL" } }
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeTemplates", "data": { "created": [ { "id": "8a7a73d7-ca8c-4a09-b7f0-7b45ef9cfe8d", "name": "Hikvision DS-2CD2135FWD-I", "unit": { "uid": "hosts/Server1/DeviceIpint.13", "type": "DeviceIpint", "properties": [ { "id": "vendor", "readonly": false, "value_string": "Hikvision" }, { "id": "model", "readonly": false, "value_string": "DS-2CD2135FWD-I" }, { "id": "user", "readonly": false, "value_string": "admin" }, { "id": "password", "readonly": false, "value_string": "Pe28age33tv" } ], "units": [], "opaque_params": [ { "id": "color", "readonly": false, "properties": [], "value_string": "#e91e63" } ] } } ] } }
Attention!
The opaque_params parameter group is required in order to display the template in the Web Client.
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeTemplates", "data": { "created": [ { "id": "1322d30b-bdd4-4734-8a17-7e8bff92b41c", "name": "Geolocation 35-45", "unit": { "uid": "hosts/Server1/DeviceIpint.14", "type": "DeviceIpint", "properties": [ { "id": "geoLocationLatitude", "readonly": false, "value_double": 35 }, { "id": "geoLocationLongitude", "readonly": false, "value_double": 45 } ], "units": [], "opaque_params": [ { "id": "color", "readonly": false, "properties": [], "value_string": "#00bcd4" } ] } } ] } }
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeTemplates", "data": { "modified": [ { "body": { "id": "1652b728-3292-32b3-bb7f-e0adb8c9048c", "name": "Geolocation", "unit": { "uid": "hosts/Server1/DeviceIpint.22", "type": "DeviceIpint", "properties": [ { "id": "geoLocationLatitude", "readonly": false, "value_double": 38.83424 }, { "id": "geoLocationLongitude", "readonly": false, "value_double": -111.0824 } ], "units": [ { "uid": "hosts/Server1/DeviceIpint.22/VideoChannel.0", "type": "VideoChannel", "properties": [ { "id": "display_name", "readonly": false, "properties": [], "value_string": "camera1" }, { "id": "comment", "readonly": false, "properties": [], "value_string": "" }, { "id": "enabled", "readonly": false, "properties": [], "value_bool": true } ], "units": [], "opaque_params": [] } ], "opaque_params": [ { "id": "color", "readonly": false, "properties": [], "value_string": "#00bcd4" } ] } }, "etag": "1AC1B6FA562B290E0D1080A7D1DA2D3B3596EC95" } ] } }
where etag is the template label that will change after each template edit.
{ "method": "axxonsoft.bl.config.ConfigurationService.SetTemplateAssignments", "data": { "items": [ { "unit_id": "hosts/Server1/DeviceIpint.10", "template_ids": [ "834794f0-1085-4604-a985-7715d88165bc" ] } ] } }
{ "method": "axxonsoft.bl.config.ConfigurationService.BatchGetTemplates", "data": { "items": [ { "id": "e35f6a3f-ab44-4e20-a48c-e7e36f511cc1", "etag": "0501160E0A8513E1E95689A5E6E7CD488C0EE54D" } ] } }
where etag parameter is optional:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeTemplates", "data": { "removed": [ "cd97d7cc-3573-3864-bb6f-2814b6831341", "834794f0-1085-4604-a985-7715d88165bc" ] } }
Request body:
{ "method":"axxonsoft.bl.ptz.TagAndTrackService.ListTrackers", "data": { "access_point":"hosts/Server1/DeviceIpint.1/Observer.0" } }
where access_point is taken from the response to the ListCameras request in the tag_and_track parameter group (see gRPC API 메서드를 사용하여 비디오 카메라 목록과 그 매개변수 가져오기 (DomainService)).
Response example:
{ "mode": "TAG_AND_TRACK_EVENT_TYPE_AUTOMATIC", "trackers": [] }
Request body:
{ "method":"axxonsoft.bl.ptz.TagAndTrackService.SetMode", "data": { "access_point":"hosts/Server1/DeviceIpint.1/Observer.0", "mode":"2" } }
where the mode parameter value defines the PTZ control mode (see Setting PTZ mode for Tag & Track Pro):
0 − disabled (TAG_AND_TRACK_EVENT_TYPE_OFF),
1 − manual (TAG_AND_TRACK_EVENT_TYPE_MANUAL),
2 − automatic (TAG_AND_TRACK_EVENT_TYPE_AUTOMATIC),
3 − user priority (TAG_AND_TRACK_EVENT_TYPE_USER_PRIORITY),
4 − manual PTZ control (TAG_AND_TRACK_EVENT_TYPE_USER_PRIORITY_MANUAL).
To get the list of detection tool parameters, do the following:
Use ListUnits to request the required detection tool.
Request body:
{ "method":"axxonsoft.bl.config.ConfigurationService.ListUnits", "data":{ "unit_uids": ["hosts/D-COMPUTER/AVDetector.2"] } }
Get the response. It will have all parameters of the detection tool.
Response example:
{ "units": [ { "uid": "hosts/D-COMPUTER/AVDetector.2", "display_id": "2", "type": "AVDetector", "display_name": "License plate recognition (VT)", "access_point": "hosts/D-COMPUTER/AVDetector.2/EventSupplier", "properties": [ { "id": "display_name", "name": "Name", "description": "Detector object name.", "category": "", "type": "string", "readonly": false, "internal": false, "value_string": "License plate recognition (VT)" }, { "id": "enabled", "name": "Enabled", "description": "Use selected detection algorithm.", "category": "", "type": "bool", "readonly": false, "internal": false, "value_bool": true }, { "id": "detector", "name": "Type", "description": "Detector type.", "category": "", "type": "string", "readonly": true, "internal": false, "display_value": "License plate recognition (VT)", "value_string": "LprDetector" }, { "id": "streaming_id", "name": "Video stream", "description": "Select video stream for detector.", "category": "&2. Object characteristics", "type": "string", "readonly": false, "internal": false, "enum_constraint": { "items": [ { "name": "", "traits": [], "properties": [], "value_string": "hosts/D-COMPUTER/DeviceIpint.5/SourceEndpoint.video:0:0" }, { "name": "", "traits": [], "properties": [], "value_string": "hosts/D-COMPUTER/DeviceIpint.5/SourceEndpoint.video:0:1" } ] }, "value_string": "hosts/D-COMPUTER/DeviceIpint.5/SourceEndpoint.video:0:1" }, { "id": "EnableRealtimeRecognition", "name": "Real time recognition", "description": "Enable real time recognition.", "category": "&2. Object characteristics", "type": "bool", "readonly": false, "internal": false, "value_bool": false }, { "id": "EnableRecordingObjectsTracking", "name": "Recording objects tracking", "description": "Recording objects tracking into same-name database. Objects tracking is used for smart search in archive.", "category": "&2. Object characteristics", "type": "bool", "readonly": false, "internal": false, "value_bool": true }, { "id": "period", "name": "Period", "description": "Time in ms after which next frame will be processed. With \"0\" each frame is processed.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 65535 }, "value_int32": 0 }, { "id": "onlyKeyFrames", "name": "Only key frames", "description": "Decode only key frames.", "category": "", "type": "bool", "readonly": false, "internal": false, "value_bool": false }, { "id": "Extra angle analyse", "name": "Extra angle license plate recognition algorithm", "description": "Enable extra angle license plate recognition algorithm.", "category": "", "type": "bool", "readonly": false, "internal": false, "value_bool": false }, { "id": "Extra ranges analyse", "name": "Extra ranges license plate search algorithm", "description": "Enable extra ranges license plate search algorithm to find license plates that vary in size significantly.", "category": "", "type": "bool", "readonly": false, "internal": false, "value_bool": false }, { "id": "FrameScale", "name": "Frame scale", "description": "Specify the size to which video image will be scaled before analysis.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 640, "max_int": 10000, "default_int": 1920 }, "value_int32": 1920 }, { "id": "Precise analyse", "name": "Advanced image analysis", "description": "Use advanced image analysis to improve recognition quality in nonstandard conditions (rain, snow, incorrect settings of recognition camera). When using this parameter recognition time increases by 20-30 %.", "category": "", "type": "bool", "readonly": false, "internal": false, "value_bool": false }, { "id": "deviceType", "name": "Operation mode", "description": "Specify detector operation mode.", "category": "", "type": "string", "readonly": false, "internal": false, "enum_constraint": { "items": [ { "name": "CPU", "traits": [], "properties": [], "value_string": "CPU" }, { "name": "Intel GPU", "traits": [], "properties": [], "value_string": "IntelGPU" }, { "name": "Intel NCS", "traits": [], "properties": [], "value_string": "IntelNCS" } ], "default_string": "CPU" }, "value_string": "CPU" }, { "id": "directionDetectionAlg", "name": "Algorithm of vehicle direction detection", "description": "Select from list the algorithm of vehicle direction detection by license plate.", "category": "", "type": "string", "readonly": false, "internal": false, "enum_constraint": { "items": [ { "name": "By license plate coordinates", "traits": [], "properties": [], "value_string": "ByCooridnates" }, { "name": "By license plate scale change", "traits": [], "properties": [], "value_string": "ByScaleChange" } ], "default_string": "ByCooridnates" }, "value_string": "ByCooridnates" }, { "id": "dynamicEnable", "name": "VodiCTL_VPW_DYNAMIC_ENABLE", "description": "VodiCTL_VPW_DYNAMIC_ENABLE", "category": "", "type": "bool", "readonly": false, "internal": false, "value_bool": true }, { "id": "dynamicOutputTimeout", "name": "VodiCTL_VPW_DYNAMIC_OUTPUT_TIMEOUT", "description": "VodiCTL_VPW_DYNAMIC_OUTPUT_TIMEOUT", "category": "", "type": "double", "readonly": false, "internal": false, "range_constraint": { "min_double": 0, "max_double": 3600, "default_double": 1 }, "value_double": 1 }, { "id": "dynamicWithDuplicate", "name": "VodiCTL_VPW_DYNAMIC_WITH_DUPLICATE", "description": "VodiCTL_VPW_DYNAMIC_WITH_DUPLICATE", "category": "", "type": "bool", "readonly": false, "internal": false, "value_bool": true }, { "id": "forceReportTimeout", "name": "Timeout", "description": "Specify timeout in seconds.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 3600, "default_int": 0 }, "value_int32": 0 }, { "id": "imageBlur", "name": "VodiCTL_VPW_IMAGE_BLUR", "description": "VodiCTL_VPW_IMAGE_BLUR", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100000, "default_int": 13 }, "value_int32": 13 }, { "id": "imageThreshold", "name": "Contrast threshold", "description": "Specify contrast threshold.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100, "default_int": 40 }, "value_int32": 40 }, { "id": "licenseType", "name": "Available license type", "description": "Use selected license type if available.", "category": "", "type": "string", "readonly": false, "internal": false, "enum_constraint": { "items": [ { "name": "Archive search", "traits": [], "properties": [], "value_string": "archivesearch" }, { "name": "Standard (25 FPS or 6 FPS)", "traits": [], "properties": [], "value_string": "normal" }, { "name": "High rate (25 FPS)", "traits": [], "properties": [], "value_string": "fast" }, { "name": "Low rate (6 FPS)", "traits": [], "properties": [], "value_string": "slow" } ], "default_string": "archivesearch" }, "value_string": "archivesearch" }, { "id": "logSettings", "name": "VodiCTL_VPW_LOG_SETTINGS", "description": "VodiCTL_VPW_LOG_SETTINGS", "category": "", "type": "bool", "readonly": false, "internal": false, "value_bool": false }, { "id": "maxPlateWidth", "name": "Maximum plate width, in %", "description": "Specify maximum plate width in percent.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100, "default_int": 20 }, "value_int32": 20 }, { "id": "minPlateWidth", "name": "Minimum plate width, in %", "description": "Specify minimum plate width in percent.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100, "default_int": 5 }, "value_int32": 5 }, { "id": "outputFramecount", "name": "Frame count", "description": "Specify frame count sufficient to get recognition result.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 1, "max_int": 20, "default_int": 6 }, "value_int32": 6 }, { "id": "plateCandsMethod", "name": "Analysis mode", "description": "Select from list analysis mode.", "category": "", "type": "string", "readonly": false, "internal": false, "enum_constraint": { "items": [ { "name": "Standard (morphemic)", "traits": [], "properties": [], "value_string": "platecandsByMorph" }, { "name": "Advanced (neural)", "traits": [], "properties": [], "value_string": "platecandsByDNN" } ], "default_string": "platecandsByMorph" }, "value_string": "platecandsByMorph" }, { "id": "plateDisplayQuality", "name": "Plate display quality", "description": "Specify in % plate display quality.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100, "default_int": 0 }, "value_int32": 0 }, { "id": "plateFilterRodropfactor", "name": "VodiCTL_VPW_PLATE_FILTER_RODROPFACTOR", "description": "VodiCTL_VPW_PLATE_FILTER_RODROPFACTOR", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100000, "default_int": 0 }, "value_int32": 0 }, { "id": "plateFilterRofactor", "name": "VodiCTL_VPW_PLATE_FILTER_ROFACTOR", "description": "VodiCTL_VPW_PLATE_FILTER_ROFACTOR", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100000, "default_int": 95 }, "value_int32": 95 }, { "id": "plateFilterSymcount", "name": "VodiCTL_VPW_PLATE_FILTER_SYMCOUNT", "description": "VodiCTL_VPW_PLATE_FILTER_SYMCOUNT", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100000, "default_int": 0 }, "value_int32": 0 }, { "id": "plateProbMin", "name": "Minimal similarity", "description": "Specify in % minimal similarity to template required for recognition.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100, "default_int": 40 }, "value_int32": 40 }, { "id": "camera_ref", "name": "", "description": "", "category": "", "type": "string", "readonly": false, "internal": false, "value_string": "hosts/D-COMPUTER/DeviceIpint.5/SourceEndpoint.video:0:0" } ], "units": [ { "uid": "hosts/D-COMPUTER/AVDetector.2/VisualElement.19aa889c-a00b-470c-9d7f-765fbc49e5c2", "display_id": "19aa889c-a00b-470c-9d7f-765fbc49e5c2", "type": "VisualElement", "display_name": "Detection area (rectangle)", "access_point": "", "properties": [ { "id": "rectangle", "name": "Detection area (rectangle)", "description": "Rectangular area within which detection takes place.", "category": "", "type": "Rectangle", "readonly": false, "internal": false, "value_rectangle": { "x": 0.01, "y": 0.01, "w": 0.98, "h": 0.98, "index": 0 } }, { "id": "element_type", "name": "", "description": "", "category": "", "type": "string", "readonly": true, "internal": false, "value_string": "cropRect" }, { "id": "element_index", "name": "", "description": "", "category": "", "type": "int32", "readonly": true, "internal": false, "value_int32": 0 } ], "traits": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [], "has_unapplied_templates": false } ], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [ { "id": "Guid", "name": "", "description": "", "category": "", "type": "string", "readonly": false, "internal": false, "value_string": "9b9f5bd7-8d31-4ce6-8f78-fb95276f5b0a" } ], "assigned_templates": [], "has_unapplied_templates": false } ], "unreachable_objects": [], "not_found_objects": [], "more_data": false }
The list of the detection tool parameters is received.
To make a request to change the configuration of the detection tool main parameter, do the following:
Select the required main parameter.
For example, “Minimal similarity”.
{ "id": "plateProbMin", "name": "Minimal similarity", "description": "Specify in % the minimal similarity to the template required for recognition.", "category": "", "type": "int32", "readonly": false, "internal": false, "range_constraint": { "min_int": 0, "max_int": 100, "default_int": 40 }, "value_int32": 40 }
value − parameter value.
Note
The value parameter should be used as in the response.
For example, "value_int32": 40.
Note
If the parameter has a range of the available values, you should set the value within the defined range.
Make a request for editing.
Request example:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "changed": [ { "uid": "hosts/D-COMPUTER/AVDetector.2", "type": "AVDetector", "properties": [ { "id": "plateProbMin", "value_int32": 100 } ] } ] } }
Request to change the configuration of the detection tool main parameter is made.
To make a request to change the configuration of an optional detection tool parameter, do the following:
Select the required optional parameter.
For example, "Detection area (rectangle)".
"units": [ { "uid": "hosts/D-COMPUTER/AVDetector.2/VisualElement.19aa889c-a00b-470c-9d7f-765fbc49e5c2", "display_id": "19aa889c-a00b-470c-9d7f-765fbc49e5c2", "type": "VisualElement", "display_name": "Detection area (rectangle)", "access_point": "", "properties": [ { "id": "rectangle", "name": "Detection area (rectangle)", "description": "Rectangular area within which detection takes place.", "category": "", "type": "Rectangle", "readonly": false, "internal": false, "value_rectangle": { "x": 0.01, "y": 0.01, "w": 0.98, "h": 0.98, "index": 0 } }, { "id": "element_type", "name": "", "description": "", "category": "", "type": "string", "readonly": true, "internal": false, "value_string": "cropRect" }, { "id": "element_index", "name": "", "description": "", "category": "", "type": "int32", "readonly": true, "internal": false, "value_int32": 0 } ], "traits": [], "units": [], "factory": [], "destruction_args": [], "discoverable": false, "status": "UNIT_STATUS_ACTIVE", "stripped": false, "opaque_params": [], "assigned_templates": [], "has_unapplied_templates": false } ],
where
value − parameter value.
Note
The value parameter should be used as in the response.
For example, "value_int32": 40.
Note
If the parameter has a range of the available values, you should set the value within the defined range.
Make a request for editing.
Request example:
{ "method": "axxonsoft.bl.config.ConfigurationService.ChangeConfig", "data": { "changed": [ { "uid": "hosts/D-COMPUTER/AVDetector.2/VisualElement.19aa889c-a00b-470c-9d7f-765fbc49e5c2", "type": "VisualElement", "properties": [ { "id": "rectangle", "value_rectangle": { "x": 0.21, "y": 0.41, "w": 0.58, "h": 0.88, "index": 0 } } ] } ] } }
Request to change the configuration of an optional detection tool parameter is made.