边缘计算AI盒子视频分析智能识别算法协议对接文档
第一章 概要说明
智慧工地-智能AI算法的实现机制,https://www.besovideo.com/detail?t=1&i=129
边缘计算AI盒子、执法记录仪、一体化布控球等目前支持的AI智能算法、视频智能分析算法有哪些,
https://www.besovideo.com/detail?t=1&i=297
AI盒子使用手册,https://www.besovideo.com/detail?t=1&i=340
一.1. 框架简介
本应用框架向上以MQTT为通讯协议对接服务平台,向服务平台提供心跳上报的信息更新。同时接受服务平台向下的各种配置命令。通过一系列的控制命令使得边缘计算设备拥有对视频媒体通道、识别计算任务、系统配置、任务计划、告警记录的管理。来完成对边缘计算设备的配置,完成特定的识别任务。向下可根据适配的不同的硬件接口层,实现同一套框架完成对多种边缘计算设备的接入。
一.2. 拓扑说明
一.2.1. 对接系统拓扑
一.1.1. 对接数据流程
第二章 通讯协议说明
一.1. 上报接口
一.1.1. 视频上传接口
盒子发生告警时,如果开启视频录制功能则会同步录制视频。视频录制阶段,同一个多个通道的多个告警将关联同一个视频文件。因此服务端需要提供一个视频上传接口并配置在盒子后台(参数配置-ServiceUpload),通过HTTP(FORM-DATA)接口上报文件。并返回唯一标识,在上报告警报文时会携带该标识已关联视频文件。
Ø 上传参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
TaskSession |
必选 |
String |
所属任务标识 |
|
1 |
GBDeviceId |
必选 |
String |
盒子国标设备号 |
不存在则是空字符串 0.0.48+ |
1 |
GBTaskChnId |
必选 |
String |
所属任务国标通道号 |
不存在则是空字符串 0.0.48+ |
1 |
Video |
必选 |
File |
视频文件 |
|
Ø 返回参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
接口状态错误码 |
|
2 |
Desc |
必选 |
String |
错误码描述 |
|
1 |
VideoId |
必选 |
String |
视频标识 |
|
Ø 示例
{
"Result":{
"Code":0,
"Desc":""
},
"VideoId":"xxxxxxxxxxxx"
}
一.1.1. 自带告警上报接口
盒子的某一路视频检测到某个新增的违规事件时触发告警。触发告警后会在持续5秒内继续收集告警信息,并录制视频。告警上报时先上传视频,再上传告警报文。告警报文采用JSON格式提交。JSON 报文中部分字段根据配置参数以及不同算法上报,参数值或参数名略有不同,因此建议手动解析JSON参数而不是使用框架的功能自动转实体对象。
告警类别参见网页中"其他配置-告警类别"
Ø 关于上传告警失败的返回
0.0.37及以上版本可以通过给上报接口响应来告诉识别盒子上报是否成功。格式如下:
{
"Result":{
"Code":0,
"Desc":""
}
}
仅当返回正确的JSON 并且 Code 字段非0,认为失败。否则只要HTTP Status Code 200 都认为成功。
Ø 上传参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Addition |
可选 |
Json |
透传字段 |
|
1 |
AlarmId |
必选 |
String |
报警标识 |
|
1 |
ImageData |
必选 |
String |
原图数据 |
无标注告警图JPEG的Base64编码 默认无此字段 通过参数配置-上报图类型切换:原图,标注图或则二者都传 默认640X360 通过参数配置-告警图尺寸可切换为相机原始分辨率大小 |
1 |
ImageDataLabeled |
必选 |
String |
标注图数据 |
有标注告警图JPEG的Base64编码 默认640X360 通过参数配置-告警图尺寸可切换为相机原始分辨率大小 |
1 |
Media |
必选 |
Json |
配置的媒体通道 |
包含通道名、描述、流地址等 |
1 |
Summary |
必选 |
String |
违规描述 |
NoHelmet等,其类型见附件【内置算法能力】 等同于Result.Type字段 |
1 |
LocalRawPath |
必选 |
String |
无标注告警图在盒子中的相对路径 |
一般作为内置网页显示使用 |
1 |
LocalLabeledPath |
必选 |
String |
有标注告警图在盒子中的相对路径 |
一般作为内置网页显示使用 |
|
|
|
|
|
|
1 |
TaskSession |
必选 |
String |
任务编号 |
创建时定义 |
1 |
GBDeviceId |
必选 |
String |
|
国标设备编号,不存在则为空字符串 |
1 |
GBTaskChnId |
必选 |
String |
|
任务对应的国标通道编号,不存在则为空字符串 |
1 |
TaskDesc |
必选 |
String |
任务描述 |
创建时定义 |
1 |
Time |
必选 |
Long |
告警时间戳 |
毫秒 |
1 |
VideoFile |
必选 |
String |
关联的视频标识 |
视频上传接口返回 |
1 |
GPS |
必选 |
Json |
当前位置信息 |
部分硬件设备支持 |
2 |
available |
必选 |
Boolean |
是否有GPS功能 |
|
2 |
kSpeed |
必选 |
Double |
对地速度 |
单位KM/h |
2 |
nSpeed |
必选 |
Double |
对地速率 |
单位 节 |
2 |
latitude |
必选 |
Double |
纬度 |
|
2 |
longitude |
必选 |
Double |
经度 |
|
1 |
Result |
必选 |
Json |
违规情况 |
|
2 |
Type |
必选 |
String |
违规类型 |
NoHelmet等,其类型见附件【内置算法能力】 |
2 |
RelativeBox |
可选 |
Array |
矩形目标位置 |
【X,Y,Width,Height】百分比坐标 |
2 |
RelativeRegion |
可选 |
Array |
多边形目标未知 |
支持检测目标是多边形,百分比XY |
2 |
Properties |
可选 |
Array |
|
0.0.34新增,用于存放一些特殊算法的上报信息,上报信息包含property的标识、描述、值、详细信息。如违章停车中, {"property":"ParkingSec", "value":30.0, "desc":"已停靠时间", "display":"30.00秒"} |
3 |
property |
可选 |
String |
|
属性标识 |
3 |
desc |
可选 |
String |
|
属性描述 |
3 |
value |
可选 |
-/- |
String/Int/Float |
属性值 |
3 |
display |
可选 |
String |
|
属性详细信息 |
1 |
Addition |
可选 |
Json |
透传字段 |
|
Ø 上报信息中关于国标信息特别说明:
n GBTaskChnId:当前任务配置的国标通道编号
n GBDeviceId: 当前盒子配置的国标设备编号
n Media.SubId: 当前任务使用的 视频通道配置的国标通道编号
Ø 上传报文示例-区域入侵
{
"Addition": null,
"AlarmId": "1DFEF6F0-D11D-447E-8BF0-2B647D2AA934",
"BoardId": "RJ-BMOX-63CB19338C2B781761FC32991BD6F2C5",
"BoardIp": "192.168.0.84",
"DataId": 0,
"GBDeviceId": "",
"GBTaskChnId": "",
"GPS": {
"angleCourse": 0.0,
"available": false,
"kSpeed": 0.0,
"latitude": 0.0,
"longitude": 0.0,
"nSpeed": 0.0
},
"Id": 0,
"ImageData": "/9j/2wBDAAU***", //无标注告警图的Base64数据,默认640X360,通过参数配置-告警图尺寸可切换为相机原始分辨率大小
"ImageDataLaebled":"/***",//
"LocalLabeledPath": "",
"LocalRawPath": "Images/DAY_20231108/IMAGBF4427599C_raw.jpg",
"Media": {
"GBTransport": false,
"MediaDesc": "",
"MediaHeight": 720,
"MediaName": "1",
"MediaUrl": "rtsp://192.168.0.8:8556/smoking",
"MediaWidth": 1280,
"Params": null,
"RtspTransport": false
},
"Result": {
"Cropped": false,
"Description": "人员闯入",
"Intrude": true,
"Properties": [{
"desc": "区域中人数",
"display": "区域中人数:2",
"property": "PeopleInForbiddenArea",
"type": "integer",
"value": 2
}, {
"desc": "闯入区域标识",
"display": "闯入区域标识:1",
"property": "IntrudeRegionId",
"type": "string",
"value": "1"
}],
"RegType": "Rectangle",
"RelativeBox": [0.78125, 0.861111104, 0.07968749888, 0.1361111128],
"Type": "Intrude"
},
"Summary": "Intrude",
"TaskDesc": "",
"TaskSession": "1",
"Time": "2023-11-08 14:58:18",
"TimeStamp": 1699426698084625,
"Type": 0,
"UniqueId": "ALARM_6E2218F2-434F-4DCA-A739-5517FAB4263A",
"VideoFile": ""
}
Ø 上传报文示例-人员越线
{
"Addition": null,
"AlarmId": "C728BD48-13DE-4717-BDBF-A83506C779CD",
"BoardId": "RJ-BMOX-63CB19338C2B781761FC32991BD6F2C5",
"BoardIp": "192.168.0.84",
"DataId": 0,
"GBDeviceId": "",
"GBTaskChnId": "",
"GPS": {
"angleCourse": 0.0,
"available": false,
"kSpeed": 0.0,
"latitude": 0.0,
"longitude": 0.0,
"nSpeed": 0.0
},
"Id": 0,
"ImageData": "/9j/2wBDAA***",
"LocalLabeledPath": "",
"LocalRawPath": "Images/DAY_20231108/IMAGE_05E9A6D1-94C1-42E2-9D03-BC1E44C6D097_raw.jpg",
"Media": {
"GBTransport": false,
"MediaDesc": "",
"MediaHeight": 720,
"MediaName": "1",
"MediaUrl": "rtsp://192.168.0.8:8556/smoking",
"MediaWidth": 1280,
"Params": null,
"RtspTransport": false
},
"Result": {
"Cropped": false,
"Description": "\u4eba\u5458\u8d8a\u7ebf",
"PeopleCross": true,
"Properties": [],
"RegType": "Rectangle",
"RelativeBox": [0.32187500, 0.394444435, 0.089062, 0.4388888],
"Type": "PeopleCross"
},
"Summary": "PeopleCross",
"TaskDesc": "",
"TaskSession": "1",
"Time": "2023-11-08 14:54:20",
"TimeStamp": 1699426460444245,
"Type": 0,
"UniqueId": "ALARM_64385101-07DD-4599-A154-52AE830504BD",
"VideoFile": ""
}
Ø 上传报文示例-未佩戴口罩
{
"Addition" : null,
"AlarmId" : "2875E782-0D8D-42FE-AAFF-815D57FC7C6E",
"BoardId" : "RJ-BMOX-63CB19338C2B781761FC32991BD6F2C5",
"BoardIp" : "192.168.0.84",
"GPS" :
{
"angleCourse" : 0.0,
"available" : false,
"kSpeed" : 0.0,
"latitude" : 0.0,
"longitude" : 0.0,
"nSpeed" : 0.0
},
"ImageDataLabeled" : "***********jpeg base64***********",
"ImageData" : "***********jpeg base64***********",
"Media" :
{
"GBTransport" : false,
"MediaDesc" : "",
"MediaHeight" : 1080,
"MediaName" : "te",
"MediaUrl" : "rtsp://192.168.0.8:8556/street1",
"MediaWidth" : 1920,
"Params" : null,
"RtspTransport" : false
},
"Result" :
{
"Cropped" : false,
"Description" : "未佩戴口罩",
"NoMask" : true,
"Properties" : [],
"RegType" : "Rectangle",
"RelativeBox" :
[
0.46562498807907104,
0.12777778506278992,
0.012500000186264515,
0.025925925001502037
],
"Type" : "NoMask"
},
"Summary" : "NoMask",
"TaskDesc" : "",
"TaskSession" : "te",
"Time" : "2023-06-17 15:20:48",
"TimeStamp" : 1686986448561973,
"Type" : 0,
"UniqueId" : "ALARM_1EADD779-AE9A-46AD-923A-4D9545F20F8E",
"VideoFile" : "*****"
}
Ø 上传报文示例-人脸抓拍
{
"Addition" : null,
"AlarmId" : "176B2ECC-FA6E-4B41-A40E-AE5625B56AF9",
"BoardId" : "RJ-BMOX-63CB19338C2B781761FC32991BD6F2C5",
"BoardIp" : "192.168.0.84",
"GPS" :
{
"angleCourse" : 0.0,
"available" : false,
"kSpeed" : 0.0,
"latitude" : 0.0,
"longitude" : 0.0,
"nSpeed" : 0.0
},
"ImageDataLabeled" : "***********jpeg base64***********",
"ImageData" : "***********jpeg base64***********",
"Media" :
{
"GBTransport" : false,
"MediaDesc" : "",
"MediaHeight" : 1080,
"MediaName" : "te",
"MediaUrl" : "rtsp://192.168.0.8:8556/street1",
"MediaWidth" : 1920,
"Params" : null,
"RtspTransport" : false
},
"Result" :
{
"CaptureFace" : true,
"Cropped" : true,
"Description" : "抓拍到人脸",
"Properties" :
[
{
"desc" : "人脸置信度",
"display" : "94%",
"property" : "FrontFaceScore",
"type" : "float",
"value" : 0.94267600774765015
},
{
"desc" : "抓拍图",
"display" : "抓拍图",
"property" : "cropped_face_image",
"type" : "image",
"value" : "***********jpeg base64***********"
}
],
"RegType" : "Rectangle",
"RelativeBox" :
[
0.46625000238418579,
0.34962961077690125,
0.054999999701976776,
0.087259262800216675
],
"Type" : "CaptureFace"
},
"Summary" : "CaptureFace",
"TaskDesc" : "",
"TaskSession" : "te",
"Time" : "2023-06-17 15:20:55",
"TimeStamp" : 1686986455081019,
"Type" : 0,
"UniqueId" : "ALARM_04A1B7DA-DA63-447B-A9C1-2583E55C254D",
"VideoFile" : "*******"
}
Ø 上报报文实例-客流计数
{
"Addition": null,
"AlarmId": "057D5AFA-1CEE-4F11-AFCD-2968C26BF863",
"BoardId": "RJ-BMOX-63CB19338C2B781761FC32991BD6F2C5", //设备标识
"BoardIp": "192.168.0.84", //设备IP
"DataId": 71580,
"GBDeviceId": "", //设备的国标设备ID,不存在则为空
"GBTaskChnId": "", //告警所属任务配置的国标通道ID,不存在则为空
"GPS": { //设备位置信息,不支持则available为false
"angleCourse": 0.0,
"available": false,
"kSpeed": 0.0,
"latitude": 0.0,
"longitude": 0.0,
"nSpeed": 0.0
},
"Id": 71580,
"ImageData": "/9j/2wBDAAUDBAQEAwUEBAQ", //上报时的截图,不设置则为空
"LocalLabeledPath": "",
"LocalRawPath": "Images/DAY_20231016/RAWA8741.jpg", //上报图本地路径,不设置则为空
"Media": { //告警所属任务使用的视频通道信息
"GBTransport": false, //通道是否接入GB28181
"MediaDesc": "", //通道配置的描述信息
"MediaHeight": 1080, //通道视频的高度
"MediaName": "1", //通道标识
"MediaUrl": "rtsp://admin:ruijing123@192.168.0.67", //通道的视频地址
"MediaWidth": 1920, //通道视频的宽度
"Params": null, //预留其他参数
"RtspTransport": false //是否开启RTSP转发
},
"Result": {
"Count": [0, 1], //计数信息,第一、二个数字分别表示时间段内进、出的数量(目前可能是0,1或1,0)
"Cropped": false,
"Description": "出",
"HeadCount": true,
"Properties": [{
"desc": "计数时间段",
"display": "2023-10-16 09:40:22 ~ 2023-10-16 09:40:22",
"property": "TimeRange",
"type": "json",
"value": [1697420422336720, 1697420422336720]
}, {
"desc": "统计数量",
"display": "1",
"property": "Count",
"type": "json",
"value": [0, 1]
}, {
"desc": "客流方向",
"display": "出",
"property": "Direction",
"type": "integer",
"value": 2
}],
"RegType": "Line", //上报的点集类型
"RelativeRegion": [{ //点集,这里表示统计到人员进出时的轨迹
"X": 0.5411666035652161,
"Y": 0.5921277403831482
}, {
"X": 0.5411666035652161,
"Y": 0.5957587361335754
}, {
"X": 0.5411666035652161,
"Y": 0.5961535573005676
}, {
"X": 0.5411666035652161,
"Y": 0.5961535573005676
}, {
"X": 0.5411666035652161,
"Y": 0.5957587361335754
}, {
"X": 0.5389134287834167,
"Y": 0.5925225615501404
}, {
"X": 0.5369532108306885,
"Y": 0.5890265703201294
}, {
"X": 0.5345761775970459,
"Y": 0.5853485465049744
}, {
"X": 0.5296907424926758,
"Y": 0.582474946975708
}, {
"X": 0.5221085548400879,
"Y": 0.5685375928878784
}, {
"X": 0.49287739396095276,
"Y": 0.5488307476043701
}, {
"X": 0.46239492297172546,
"Y": 0.5153772830963135
}, {
"X": 0.429618239402771,
"Y": 0.5408515930175781
}],
"Tags": ["出"], //标识
"TimeRange": [1697420422336720, 1697420422336720],//统计时间段
"Type": "HeadCount"//客流统计的告警标识
},
"Summary": "HeadCount", //客流统计的告警标识
"TaskDesc": "", //任务描述
"TaskSession": "3", //任务标识
"Time": "2023-10-16 09:40:22", //告警产生的时间
"TimeStamp": 1697420422345521,//告警产生的时间戳 微秒
"Type": 0, //预留字段
"UniqueId": "ALARM_5AF9BCA8-C968-4AAB-8103-ED4F9B6DEECA",
"VideoFile": ""//录像小视频,未开启则为空
}
Ø 上传报文实例-区域车辆禁停
{
"Addition" : null,
"AlarmId" : "1F3704C9-E5F7-47FA-B7C9-E733EAC2A61E",
"BoardId" : "RJ-BMOX-63CB19338C2B781761FC32991BD6F2C5",
"BoardIp" : "192.168.0.84",
"GPS" :
{
"angleCourse" : 0.0,
"available" : false,
"kSpeed" : 0.0,
"latitude" : 0.0,
"longitude" : 0.0,
"nSpeed" : 0.0
},
"ImageDataLabeled" : "",
"ImageData" : "***********jpeg base64******************",
"Media" :
{
"GBTransport" : false,
"MediaDesc" : "",
"MediaHeight" : 1080,
"MediaName" : "1",
"MediaUrl" : "rtsp://192.168.0.8:8556/plate",
"MediaWidth" : 1920,
"Params" : null,
"RtspTransport" : false
},
"Result" :
{
"Cropped" : false,
"Description" : "车辆长时间停泊",
"NoParking" : true,
"Properties" :
[
{
"desc" : "已停靠时间",
"display" : "60.19秒",
"property" : "ParkingSec",
"type" : "float",
"value" : 60.193077087402344
},
{
"desc" : "车牌",
"display" : "苏D83555",
"property" : "ParkingPlate",
"type" : "string",
"value" : "苏D83555"
}
],
"RegType" : "Rectangle",
"RelativeBox" :
[
0.0,
0.067061461508274078,
0.28854167461395264,
0.50555557012557983
],
"Type" : "NoParking"
},
"Summary" : "NoParking",
"TaskDesc" : "",
"TaskSession" : "123",
"Time" : "2023-06-17 15:22:52",
"TimeStamp" : 1686986572791520,
"Type" : 0,
"UniqueId" : "ALARM_E5B1795C-B693-4ECE-9CDF-AF7ABF53739F",
"VideoFile" : "××××"
}
Ø 特定算法字段[Properties]说明
算法 |
KEY |
类型 |
含义 |
拥挤度 |
CrowdPeopleNUmber |
INTEGER |
人员估算数量 |
非机动车停靠 |
ParkingSec |
FLOAT |
停靠时间(秒) |
非机动车停靠 |
ParkingPlate |
String |
当开启车牌识别时,如果识别到违停车辆的车牌将通过此属性上报 |
人脸抓拍 |
FrontFaceScore |
FLOAT |
人脸置信度 |
人脸抓拍 |
cropped_face_image |
JPEG_BASE64 |
抓拍人脸图 |
人员入侵 |
PeopleInForbiddenArea |
Integer |
区域中人数 |
人员入侵 |
IntrudeRegionId |
STRING |
闯入的区域标识 |
车牌号 |
CarPlateInfo |
STRING |
车牌识别算法上报识别到的车牌嘻嘻你 |
禁止检测 |
StationarySec |
FLOAT |
禁止时长 |
人员徘徊 |
PeopleInWanderArea |
INT |
徘徊区域中人数 |
人员徘徊 |
WanderRegionId |
STRING |
徘徊区域标识 |
人数监控 |
people_number |
INT |
人员数量 |
人员聚集 |
people_gather_num |
INT |
聚集人数 |
人员聚集 |
people_gather_points |
JSON ARRAY |
聚集人员 |
按钮指示灯 |
light_id |
STRING |
指示灯标定区域标识 |
按钮指示灯 |
light_color |
STRING |
指示灯颜色 |
按钮指示灯 |
last_light_status |
STRING |
变化前亮灭状态 |
按钮指示灯 |
current_light_status |
STRING |
当前亮灭状态 |
乙炔瓶放置 |
angle_of_acetylene |
FLOAT |
乙炔瓶倾斜角度 |
电梯占用 |
elevator_occupy_sec |
FLOAT |
电梯占用时长 |
通道占用 |
OccupySec |
FLOAT |
通道占用时长 |
拥挤度 |
CrowdPeopleNUmber |
INT |
人员估算数量 |
|
|
|
|
一.1.1. 显示上报失败的自查办法
Ø 点击告警记录中的“查看”或鼠标放在 “等待重试”上将显示失败原因
Ø 上传失败需要检查
n 如果开启了视频录制是否设置视频上报地址(“参数配置”->“ServiceUpload”)
n 如果开启了视频录制视频上报接口是否按照协议正确返回
n 检查网关及DNS的设置确认盒子中是否可以正常访问设置的“视频上传地址”和“告警上报地址”
n 其他情况可下载日志分析查看 http://xx.xx.xx.xx/Content/app.log
一.1.2. 特殊客户二次开发上报接口说明[0.0.37+]
当自带告警上报不满足某些客户的需求时,二次开发上报接口允许客户按照规定格式实现动态库(规定名称为: libAlarmReport.so), 上报时优先检测动态库的有效性并使用动态库提供之函数进行上传.这样对于特殊客户的私有协议、私有数据格式可以有更好的拓展性。
动态库中需要包含名为: api_result do_alarm_report(const std::string,const std::string);的函数实现.
简要示例:
#include <iostream>
struct api_result {
int code;
char desc[256];
};
extern "C" {
api_result do_alarm_report(const std::string &url, const std::string &body) {
api_result resp;
printf("%s\n", address.c_str());
printf("%s\n", body.c_str());
resp.code = 1;
resp.desc = "未实现上传";
return resp;
}
};
其中:
(1) 入参 address 是的当前告警所属任务的上报地址(创建任务时填写)
(2) 入参 body 是当前告警的所有数据,其格式为JSON字符串.
(3) 返回值 api_result 返回上报是否成功以及失败的描述
body 示例同自带告警上报的JSON类似,开发者可以解析后按照私有格式或私有协议进行上报:
{
"Addition" : null,
"AlarmId" : "18B3EE6D-77C4-4494-900A-B8114F715C6C",
"BoardId" : "RJ-BOX3-6570DE7B8E6500883C203262C575981D",
"BoardIp" : "192.168.0.110",
"GPS" :
{
"available" : false,
"kSpeed" : 0.0,
"latitude" : 0.0,
"longitude" : 0.0,
"nSpeed" : 0.0
},
"LocalLabeledPath" : "Images/DAY_20230130/LABELED_IMAGE_EFE8A76A-C835-4049-B6A4-37B46073745E1.jpg",
"LocalRawPath" : "",
"Media" :
{
"GBTransport" : false,
"MediaDesc" : "",
"MediaHeight" : 1080,
"MediaName" : "1",
"MediaUrl" : "rtsp://192.168.0.8:8556/office",
"MediaWidth" : 1920,
"Params" : null,
"RtspTransport" : false
},
"Result" :
{
"NoHelmet" : true,
"Display" : "无安全帽",
"Properties" : [],
"RegType" : "Rectangle",
"RelativeBox" :
[
0.066559880971908569,
0.27217996120452881,
0.02604166604578495,
0.066666670143604279
],
"Type" : "NoHelmet"
},
"Summary" : "NoHelmet",
"TaskDesc" : "",
"TaskSession" : "1",
"Time" : "2023-01-30 11:51:18",
"TimeStamp" : 1675050678606426,
"Type" : 0,
"VideoFile" : ""
}
一.1. MQTT版本交互控制协议
使用MQTT协议实现对系统内所有功能的信息查询、修改、配置功能。需要注意的是:MQTT目前实现了基于TCP和WebSocket的规范。需要根据实际情况选择及配置(参数配置——RemoteBrokerUrl)。如:当需要在前端使用MQTT则可能需要使用基于WebSocket的MQTT协议,其连接字符串如:ws://192.168.0.1:1883。否则如:tcp://192.168.0.1:1883。支持通过tcp://account:passwd@192.168.9.1:1883的格式传入用户名密码。
所有约定的下行交互控制报文,必须在JSON根节点携带“BoardId”字段来指定操作设备。并且均会通过 {$topic}_reply主题进行响应。
Ø 公共参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
业务编码 |
|
一.1.1. 日志上报
在MQTT接入时,系统设置中开上报选项。将向特定主题上报产生的关键日志。
Ø 监听主题
/edge_app_notify
Ø 上报参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
EventType |
必选 |
String |
业务标识 |
/app_error_log |
1 |
Content |
必选 |
String |
日志信息 |
|
一.1.2. 主动心跳上报
在MQTT接入时,按照设定的上报间隔时间(默认5秒)对系统主要参数及状态信息进行数据上报。服务端可订阅心跳报文,对于过期未收到心跳的设备作为异常事件进行人工干预。
Ø 监听主题
/board_ping
Ø 上报参数
{
"BoardId" : "RJ-BMOX-63CB1933*******761FC", //当前盒子唯一表示
"BoardIp" : "192.168.0.84",
"BoardPlatform" : "BM-BOX", //当前设备硬件类型
"BoardTemp" : "44 (C)", //当前设备芯片温度
"BoardType" : "WAN", //当前设备接入方式 WAN/4G
"GBClientId" : "", //GB28181 设备号配置后透传
"GrantCode" : 101,
"GrantDesc" : "已授权",
"HostDisk" : //当前设备硬盘情况kB
{
"Available" : 11588396, //可用
"Total" : 15913876, //总量
"Used" : 3633824 //已用
},
"HostMemory" : //当前设备内存使用情况
[
1300.578125, //已使用
0.63504791259765625 //总利用率
],
"Key" : "运行中",
"Latitude" : 0.0, //GPS 信息 部分设备支持
"Longitude" : 0.0, //GPS 信息 部分设备支持
"Malloc" : 103480, // 当前应用VmRSS信息
"Medias" : //当前设备添加的通道信息(0.0.46+引入)
[
{
"MediaName" : "1", //通道名称
"MediaStatus" : //通道状态描述
{
"label" : "正常",
"type" : 4
},
"MediaUrl" : "rtsp://192.168.0.8:8556/led", //通道视频流地址
"SubId" : "" //通道关联GB28181通道号,配置后透传
}
],
"Pid" : 1942, //本次应用PID
"Se6ip" : "192.168.0.124", //特定设备时透传主控端IP(0.0.46+引入)
"Status" : "在线",
"System" : "BM1684-16 2.7.0", //当前设备系统版本
"Tasks" : //当前设备配置的任务信息(0.0.46+引入)
[
{
"AlgItem" : //该任务的算法配置信息
[
{
"lineDesc" : "",
"lineRequired" : false,
"majorId" : 211,
"majorOnly" : false,
"minorId" : 210,
"name" : "LED读数", //算法名称
"zoneDesc" : "标定每个LED显示区域识别其示数",
"zoneRequired" : true
}
],
"AlgTaskSession" : "1", //任务号
"AlgTaskStatus" : //任务状态描述
{
"label" : "运行中",
"type" : 4
}
}
],
"Time" : 1690943852071, //当前时间戳豪妙
"Tpu" : //当前设备的算力资源使用情况(0.0.46+引入)
[
{
"mem_total" : 7983, // 内存总量
"mem_usage" : 376, // 内存使用情况
"tpu_usage" : 6 // TPU
}
],
"Version" : "0.0.45", //软件版本
"angleCourse" : 0.0, //GPS 信息 部分设备支持
"kSpeed" : 0.0,//GPS 信息 部分设备支持
"nSpeed" : 0.0//GPS 信息 部分设备支持
}
Ø HTTP上报心跳(版本0.0.43+)
在参数配置-RemoteInfo中配置HTTP心跳接收地址(HTTP+POST JSON),设备将按照默认频率5秒上报当前设备信息。上报信息内容同MQTT上报一致。示例如下:
{
"Info": {
此部分内容同上述MQTT心跳
},
"MsgType": "Keepalive"
}
一.1.3. 软件升级
通过给特定盒子发送指定报文,控制盒子执行相应的操作完成软件升级。升级内容可包括:应用程序部分、模型部分、网页部分。升级过程中所有准备工装结束后会自动重启来完。成最终的升级。一次升级命令下发,可能会有多个回复报文来通知升级情况。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
固定: /app_upgrade_cmd |
1 |
Upgrade |
必选 |
Json |
升级信息 |
|
2 |
file_url |
必选 |
String |
下载地址 |
升级包HTTP下载地址 |
2 |
file_name |
必选 |
String |
保存文件名 |
|
2 |
md5 |
必选 |
String |
文件MD5校验值 |
32字节MD5值 |
2 |
version |
必选 |
String |
版本号 |
|
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_upgrade_cmd |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
注:
本文在如下参数参数列表中当标识层级为1时表示该字段再Json中位于顶层。层级标识为2时则是标识该字段是上一个层级为1的子元素。如果存在层级为3的则是上一个层级为2的子元素。以此类推。
例如当前接口中发送参数Json形式如下,其中所有层级为2的时Upload节点内的元素。
{"BoardId":"","Event":"/app_upgrade_cmd","Upgrade":{"file_url":"http://10.0.0.1/0.0.1.tar.gz","file_name":"0.0.1.tar.gz","md5":"****","version":"0.0.1"}}
一.1.4. 新增计划模板
计划模板是一组用来标识任务工作时间区间的配置,将创建的模板编号设置到任务配置中即可实现任务工作时间的控制。默认系统提供模板编号为-1的“默认模板”,默认模板的工作时间是7*24小时。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_schedule_create |
1 |
name |
必选 |
String |
模板名称 |
|
1 |
summary |
必选 |
String |
模板描述 |
|
1 |
value |
必选 |
String |
工作时间配置 |
按照周为单位循环,将一周七天分为7*48个单位,每个单位代表半个小时。也就是使用336个0或1代表指定半小时的工作使能。如 10110……00,代表周一的凌晨0点0分-0点30分,1点0分到2点0分处于工作时间段。 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
ScheduleId |
必选 |
Long |
创建的模板计划标识 |
可用于删除计划 |
1 |
Event |
必选 |
String |
功能标识 |
/alg_schedule_create |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","Event":"/alg_schedule_create","name":"mqtt_create","summary":"周一00:00-00:30","value":"100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_schedule_create","Result":{"Code":0,"Desc":"保存成功"}}
一.1.1. 查询模板计划
计划模板是一组用来标识任务工作时间区间的配置,将创建的模板编号设置到任务配置中即可实现任务工作时间的控制。默认系统提供模板编号为-1的“默认模板”,默认模板的工作时间是7*24小时。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_schedule_fetch |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_schedule_fetch |
1 |
Result |
必选 |
Object |
|
|
2 |
Code |
必选 |
Integer |
错误码 |
0成功/其他失败 |
2 |
Desc |
必选 |
String |
错误码描述 |
|
2 |
Content |
必选 |
Array |
模板数组 |
|
3 |
Id |
必选 |
Integer |
模板编号 |
|
3 |
Name |
必选 |
String |
模板名称 |
|
3 |
Value |
必选 |
String |
模板时间配置 |
|
3 |
Summary |
必选 |
String |
模板描述 |
|
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","Event":"/alg_schedule_fetch"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_schedule_fetch","Result":{"Code":0,"Content":[{"Id":-1,"Name":"默认模板","Summary":"全部日期","Value":""},{"Id":2,"Name":"mqtt_create","Summary":"周一","Value":"100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},{"Id":1,"Name":"测试","Summary":"[\"星期一 00:00~00:30\"]","Value":"100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}],"Desc":"成功"}}
一.1.2. 算法能力获取
算法能力是指盒子提供的识别算法。在系统中一个完整的算法可分为 “主算法” “子算法”两个部分组成。如小动物检测中只需要识别到动物这种场景下可能仅需要一个“主算法”就能完成识别功能。再比如人员分析,首先需要一个主算法来定位人员未知,然后再对改目标进行分析。获取更详细的判别,如 安全帽佩戴状态、口罩佩戴状态、有无抽烟打电话等违规行为。这就可能需要一个“主算法”+多个“子算法协同完成”。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
固定: /alg_ability_fetch |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Ability |
必选 |
Array |
算法列表 |
|
2 |
attribute |
必选 |
Json |
|
|
3 |
lineRequired |
必选 |
Boolean |
是否必须配置辅助线 |
该算法是否必须配置辅助线 |
3 |
lineDesc |
必选 |
String |
|
配置辅助线的描述文字 |
3 |
zoneRequired |
必选 |
Boolean |
是否必须配置算法专用区域 |
该算法是否必须配置算法专用区域 |
3 |
zoneDesc |
必选 |
String |
|
配置算法专用区域的描述文字 |
2 |
parameters |
必选 |
Array |
|
该算法可设置的配置项 |
3 |
class |
必选 |
String |
设置项数据真实类型描述 |
FLOAT/BOOLEAN/SELECTOR/INTEGER |
3 |
type |
必选 |
Int |
设置项数据真实类型 |
FLOAT=> 2 BOOLEAN=>4 SELECTOR=>5 INTEGER=>0 |
3 |
max |
可选 |
ANY |
可设置最大值 |
FLOAT/INTEGER 时存在 |
3 |
min |
可选 |
ANY |
可设置最小值 |
FLOAT/INTEGER 时存在 |
3 |
default |
必选 |
ANY |
设置项默认值 |
其类型跟随 class |
3 |
key |
必选 |
String |
设置项标识 |
|
3 |
name |
必选 |
String |
设置项名称 |
|
3 |
required |
必选 |
Boolean |
是否必填 |
|
3 |
value |
必选 |
ANY |
设置值 |
其类型跟随 class |
3 |
options |
可选 |
Array |
SELECTOR待选列表 |
SLECTOR时使用,描述了当前有那些待选选项 |
4 |
enable |
必选 |
Boolean |
当前选项是否可选 |
|
4 |
key |
必选 |
String |
选项标识 |
|
4 |
value |
必选 |
Int |
选项序号 |
|
4 |
name |
必选 |
String |
选项名称 |
|
2 |
permitted |
必选 |
Boolean |
算法是否已授权 |
|
2 |
code |
必选 |
Integer |
主算法编号 |
|
2 |
sub |
必选 |
Boolean |
是否是子算法 |
|
2 |
name |
必选 |
String |
算法名称 |
|
2 |
desc |
必选 |
String |
算法描述 |
|
2 |
item |
必选 |
Integer |
子算法编号 |
|
2 |
policy |
必选 |
Array |
报警规则 |
当前算法可能输出的告警类型 |
3 |
property |
必选 |
String |
违规的属性名 |
告警类型 |
3 |
name |
必选 |
String |
属性名描述 |
告警类型的中文描述 |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 示例
{
"Ability": [
{
"attribute": {
"lineDesc": "",
"lineRequired": false,
"zoneDesc": "标定违停区域,车辆在该区域超过设定时间触发告警",
"zoneRequired": true
},
"code": 62,
"desc": "区域车辆禁停",
"item": 48,
"name": "区域车辆禁停",
"parameters": [{
"class": "FLOAT",
"default": 5,
"key": "parking_minute",
"max": 0,
"min": 0,
"name": "停靠时长(分)",
"required": true,
"type": 2,
"value": 5
}],
"permitted": true,
"policy": [{
"name": "车辆长时间停泊",
"property": "NoParking"
}],
"sub": true
},{
"attribute": {
"lineDesc": "",
"lineRequired": false,
"zoneDesc": "标定工作区,区域内人数超过设定值处罚告警",
"zoneRequired": true
},
"code": 1,
"desc": "人数超员检测",
"item": 57,
"name": "人数超员检测",
"parameters": [{
"class": "INTEGER",
"default": 5,
"key": "limit_number",
"max": 0,
"min": 0,
"name": "人数上限",
"required": true,
"type": 0,
"value": 5
}],
"permitted": true,
"policy": [{
"name": "工作区人员超限",
"property": "ZoneOverload"
}],
"sub": true
},{
"attribute": {
"lineDesc": "",
"lineRequired": false,
"zoneDesc": "",
"zoneRequired": false
},
"code": 1,
"desc": "人数监控",
"item": 230,
"name": "人数监控",
"parameters": [{
"class": "BOOLEAN",
"default": true,
"key": "upload_on_people_num_changed",
"name": "仅人数变化时上报",
"required": false,
"type": 4,
"value": true
}],
"permitted": true,
"policy": [{
"name": "画面人数上报",
"property": "CurrentPeopleNum"
}],
"sub": true
},
{
"attribute" :
{
"lineDesc" : "",
"lineRequired" : false,
"zoneDesc" : "",
"zoneRequired" : false
},
"code" : 52,
"desc" : "人脸识别",
"item" : 207,
"name" : "人脸识别",
"parameters" :
[
{
"class" : "FLOAT",
"default" : 0.40000000596046448,
"key" : "face_reg_similarity",
"max" : 1.0,
"min" : 0.34999999403953552,
"name" : "相似度阈值",
"required" : true,
"type" : 2,
"value" : 0.40000000596046448
},
{
"class" : "BOOLEAN",
"default" : false,
"key" : "face_reg_enable_gat1400",
"name" : "启用 GA/T-1400",
"required" : false,
"type" : 4,
"value" : false
},
{
"class" : "FLOAT",
"default" : 0.30000001192092896,
"key" : "face_low_similarity",
"max" : 0.60000002384185791,
"min" : 0.0,
"name" : "陌生人阈值",
"required" : true,
"type" : 2,
"value" : 0.30000001192092896
},
{
"class" : "SELECTOR",
"default" : 1,
"key" : "face_repositories",
"name" : "选择人脸库",
"options" :
[
{
"enable" : true,
"key" : "FaceRepo001",
"name" : "FaceRepo001 [1]",
"value" : 1
}
],
"required" : true,
"type" : 5,
"value" : 1
}
],
"permitted" : true,
"policy" :
[
{
"name" : "识别到在册人脸",
"property" : "FaceId"
},
{
"name" : "识别到陌生人",
"property" : "Stranger"
}
],
"sub" : true
}],
"BoardId": "RJ-BMOX-63CB19338C2B781761FC32991BD6F2C5",
"BoardIp": "192.168.0.84",
"Event": "/alg_ability_fetch",
"Result": {
"Code": 0,
"Desc": "成功"
}
}
一.1.1. 媒体通道配置
媒体通道即一个个需要识别接入的视频流。目前仅支持RTSP协议。编码格式要求:标准版H264/H265。视频分辨率要求:720P/1080P。根据接入硬件不同可支持9\16路媒体通道设置。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_media_config |
1 |
MediaName |
增删改时必选 |
String |
标识 |
|
1 |
MediaUrl |
增改时必选 |
String |
流地址 |
|
1 |
MediaDesc |
增改时可选 |
String |
通道别名 |
|
1 |
RtspTransport |
增改时可选 |
Boolean |
是否开启RTSP代理 |
开启后将原视频流代理到盒子上 |
1 |
GBTransport |
增改时可选 |
Boolean |
是否开启国标代理 |
开启后将原视频流转发到国标服务器 |
1 |
SubId |
增改时可选 |
String |
国标通道号 |
开启国标代理后必填的通道号 |
1 |
Params |
增改时可选 |
Array |
自定义配置 |
SDK二次开发定义 |
2 |
Value |
自定义参数值 |
String |
|
|
2 |
Type |
自定义参数类型 |
String |
|
RADIOBOX,INPUT,CHECKBOX |
2 |
Key |
自定义参数标识 |
String |
|
|
2 |
Name |
自定义参数名 |
String |
|
|
Ø 自定义参数说明
1) RADIOBOX
当SDK定义为RADIOBOX时,前端页面表现为单选框并根据设置的键值对渲染前端页面,此时保存提交的Value字段为选中的键值对的Value。
2) INPUT
当SDK定义参数为INPUT时,前端页面表现为输入框,此时保存提交的Value字段为输入内容
3) CHECKBOX
当SDK定义参数为CHECKBOX时,前端表现为多选框并根据设置的键值对渲染前端页面,此时保存提交的Value字段为选中的键值对的Value对应的JSONArray字符串形式如:["apple","banana"]
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_media_delete |
1 |
MediaName |
必选 |
String |
媒体名称 |
|
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_media_config","MediaName":"67","MediaUrl":"rtsp://192.168.0.250:8556/smoking","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_media_config","MediaName":"67","Result":{"Code":0,"Desc":"已保存"}}
一.1.1. 删除媒体通道
删除已创建的媒体通道,如果有任务正在使用该通道则无法删除。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_media_delete |
1 |
MediaName |
必选 |
String |
标识 |
|
Ø 响应示例
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_media_delete |
1 |
MediaName |
必选 |
String |
媒体名称 |
|
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_media_delete","MediaName":"SMOKING","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_media_delete","MediaName":"SMOKING","Result":{"Code":0,"Desc":"已删除"}}
一.1.1. 查询媒体通道
查询已存在的所有通道并返回状态
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_media_fetch |
Ø 响应示例
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Content |
必选 |
Array |
通道列表 |
|
2 |
MediaName |
必选 |
String |
通道标识 |
通道唯一标识 |
2 |
MediaDesc |
必选 |
String |
通道别名 |
描述文字 |
2 |
MediaUrl |
必选 |
String |
RTSP地址 |
通道流地址如 tsp://admin:123@10.0.0.1 |
2 |
RtspTransport |
可选 |
Boolean |
是否以RTSP转发 |
转发地址rtsp://ip/channel/[MediaName] |
2 |
GBTransport |
可选 |
Boolean |
是否对接国标平台 |
|
2 |
SubId |
可选 |
String |
国标平台通道ID |
GBTransport True时必填 |
2 |
MediaStatus |
必选 |
Json |
通道状态 |
|
3 |
type |
必选 |
Intger |
状态级别标识 |
0\1\2\3\4 |
3 |
style |
必选 |
String |
状态级别 |
info\normal\warning\danger\success |
3 |
label |
必选 |
String |
状态描述 |
取流中、正常、取流异常 |
1 |
Result |
必选 |
String |
盒子芯片温度 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_media_fetch","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Content":[{"GBTransport":false,"MediaDesc":"","MediaName":"smoking","MediaStatus":{"label":"正常","style":"success","type":4},"MediaUrl":"rtsp://192.168.0.250:8556/smoking","RtspTransport":false,"SubId":""}],"Event":"/alg_media_fetch","Result":{"Code":0,"Desc":"Success"}}
一.1.2. 算法任务配置
通过给指定媒体通并道添加算法作为算法任务,提供任务停止、启动、删除控制命令。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
版本 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_task_config |
|
1 |
AlgTaskSession |
增删改时必选 |
String |
任务标识 |
|
|
1 |
TaskDesc |
增改时可选 |
String |
任务描述 |
|
|
1 |
AlgInfo |
增改时可选 |
Array |
运行的主算法列表 |
|
|
1 |
MediaName |
增改时可选 |
String |
使用的媒体通道号 |
|
|
1 |
MetadataUrl |
增改时可选 |
String |
接受告警的目标地址 |
告警报文上报主地址 |
|
1 |
ScheduleId |
可选 |
Integer |
计划模板编号 |
默认-1,全天执行 |
0.0.15 |
1 |
UserData |
增改时必选 |
Json |
可存放用户数据 |
|
|
2 |
MethodConfig |
增改时必选 |
Array |
子算法配置 |
|
|
1 |
RuleProperty |
增改时可选 |
Array |
配置的辅助区域 |
可以是辅助区域、辅助线 |
|
2 |
RuleId |
父节点存在必选 |
String |
辅助形状标识 |
|
|
2 |
RuleType |
父节点存在必选 |
Integer |
辅助形状类型 |
0兴趣区域 1禁入区域 2 辅助线段 4 岗位区域 ********************* |
|
2 |
Algo |
可选 |
Json |
设定该区域适用算法 |
算法可能由2个阶段组成 |
0.0.38+ |
3 |
majorId |
必选 |
Integer |
一阶段算法ID |
|
|
3 |
minorId |
可选 |
Integer |
二阶段算法ID |
可不填默认0 |
|
2 |
Points |
父节点存在必选 |
Array |
辅助形状点列表 |
区域时最低3个点, 辅助线时2个点 |
|
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Result |
必选 |
Json |
接口状态返回 |
|
1 |
AlgTaskSession |
必选 |
String |
任务标识 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 示例
{
"AlgTaskSession": "222",
"MediaName": "2",
"MetadataUrl": "",
"TaskDesc": "",
"ScheduleId": -1,
"GB28181Channel": "",
"AlgInfo": [1, 45],
"AlarmProtocol": 0,
"AlarmBody": 0,
"Restart": true,
"RuleProperty": [{
"Algo": {
"majorId": 1,
"minorId": 7,
},
"Points": [{
"X": 0.7713989287007458,
"Y": 0.6094874310656
}, {
"X": 0.872651605946793,
"Y": 0.7208305813018033
}, {
"X": 0.9154491293188338,
"Y": 0.3533981855223322
}],
"RuleId": "2",
"RuleType": 4,
"RuleTypeName": "专用算法区域"
}],
"UserData": {
"MethodConfig": [7, 194],
"staff_sec": 8,
"staff_number": 1,
"staff_repeat_alarm_sec": 8,
"hand_up_angle_threshold": 8,
"hand_up_double_raise": true
}
}
Ø 其他业务参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
staff_sec |
可选 |
Integer |
离岗算法设置时间 |
离岗算法使用。单位秒,默认180 |
1 |
staff_number |
可选 |
Integer |
离岗设置在岗数量 |
离岗算法使用。默认1 |
一.1.3. 算法任务控制
默认任务创建后自动运行,可通过此接口对以有任务进行停止、启动的命令控制。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_task_control |
1 |
ControlCommand |
必选 |
Integer |
启停标识 |
0停止 1 启动 |
1 |
AlgTaskSession |
必选 |
String |
任务标识 |
|
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
AlgTaskSession |
必选 |
String |
任务标识 |
|
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_task_control","ControlCommand":0,"AlgTaskSession":"A","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_task_control","AlgTaskSession":"A","Result":{"Code":0,"Desc":"已停止"}}
一.1.4. 算法任务删除
用来删除已停止的任务
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_task_control |
1 |
AlgTaskSession |
必选 |
String |
任务标识 |
|
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_task_control |
1 |
AlgTaskSession |
必选 |
String |
任务标识 |
|
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_task_delete","AlgTaskSession":"AA","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
一.1.5. 算法任务查询
查询当前已配置的任务详情
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_task_fetch |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_task_fetch |
1 |
BaseAlgItem |
必选 |
Array |
任务识别内容 |
|
1 |
AlgTaskStatus |
必选 |
Object |
任务运行状态 |
|
2 |
type |
必选 |
Intger |
状态级别标识 |
1\2\3\4 |
2 |
style |
必选 |
String |
状态级别 |
normal\warning\danger\success |
2 |
label |
必选 |
String |
状态描述 |
1 默认状态一般是:未运行 2 启动过程中的状态:连接失败、取图超时(一般可恢复的状态) 3 错误状态:取图异常、密码错误等(一般不会自动恢复) 4 正常 |
其他参数同设置接口 |
Ø 示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_task_fetch","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 返回示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Content":[{"AlarmBody":0,"AlarmProtocol":0,"AlgInfo":[1],"AlgTaskSession":"A","AlgTaskStatus":{"label":"正常","style":"success","type":4},"MediaName":"smoking","MetadataUrl":["http://192.168.0.1/receive"],"TaskDesc":"","UserData":{"MethodConfig":[2]}}],"Event":"/alg_task_fetch","Result":{"Code":0,"Desc":"Success"}}
一.1.1. 获取任务预览图
获取指定任务当前预览图,一般用于前端给任务配置区域时用来参考标注的底图。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_task_snap |
1 |
AlgTaskSession |
必选 |
String |
任务标识 |
|
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_task_snap |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
1 |
AlgTaskSession |
必选 |
String |
任务标识 |
|
1 |
Base64 |
必选 |
String |
截图的JPEG数据 |
分辨率640X360 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_task_snap","AlgTaskSession":"A","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 响应示例
{"Base64":"/9j/*****","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","AlgTaskSession":"A","Event":"/alg_task_snap","Result":{"Code":0,"Desc":"成功"}}
一.1.1. 查询盒子网络配置
通过命令查询指定盒子的网络配置情况
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_network_query |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
1 |
Event |
必选 |
String |
功能标识 |
/app_network_query |
1 |
ipaddr |
必选 |
String |
网络地址 |
|
1 |
mask |
必选 |
String |
子网掩码 |
|
1 |
gateway |
必选 |
String |
网关地址 |
|
1 |
mac |
必选 |
String |
网卡物理地址 |
只读 |
1 |
name |
必选 |
String |
网卡名称 |
只读 |
1 |
dns |
必选 |
String |
域名解析服务器 |
|
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/app_network_query","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/app_network_query","Network":[{"dns":"114.114.114.114","gateway":"192.168.0.1","ipaddr":"192.168.0.11","mac":"00:1b:0f:f1:86:fd","mask":"255.255.255.0","name":"eth0"}],"Result":{"Code":0,"Desc":"成功"}}
一.1.1. 通用系统命令
给盒子发送系统命令,可实现一些拓展功能,如设备重启、对时等。在收到命令后延时一秒后执行。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_system_cmd |
1 |
cmd |
必选 |
String |
网络地址 |
如 reboot |
1 |
reboot |
可选 |
Boolen |
执行后是否重启 |
默认否 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_system_cmd |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{ "BoardId" : "RJ-BOX3-2228B91DEDF8C625E874088D282555AC", "Event":"/app_system_cmd","reboot":false,"cmd":"echo '123'>123" }'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/app_network_apply","Result":{"Code":0,"Desc":"命令已提交"}}
一.1.1. 增改参数配置
修改系统内置的配置变量、新增用户参数。系统的内置配置参数是用来在系统工作运行中,暴露给用户使用的设置项,见附录2.3。当设置的参数标识已存在时则修改该参数,不存在时则新建。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_config_save |
1 |
key |
必选 |
String |
参数标识 |
|
1 |
desc |
可选 |
String |
参数说明 |
|
1 |
value |
必选 |
String |
参数值 |
|
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m'{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","Event":"/alg_config_save","key":"HourKeepAlarmInfo","value":"23"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_config_save","Result":{"Code":0,"Desc":"已保存"}}
一.1.1. 导入参数配置
批量通过JSON数据导入预制的配置清单
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_config_import |
1 |
Config |
必选 |
Array |
配置数组 |
|
2 |
key |
必选 |
String |
参数标识 |
|
2 |
desc |
必选 |
String |
参数说明 |
|
2 |
value |
必选 |
String |
参数值 |
|
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m'{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","Event":"/alg_config_import","Config":[{"key":"k1","value":"1","desc":"测试1"},{"key":"k2","value":"2","desc":"测试2"}]}
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_config_import","Result":{"Code":0,"Desc":"导入成功:2"}}
一.1.1. 删除用户参数
用户可以通过接口删除用户参数,系统参数被限制无法删除。用户参数目前在整个系统中将在告警上报和心跳报文中携带。在用户自定义开发中,可以自行使用。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_config_delete |
1 |
key |
必选 |
String |
参数标识 |
|
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m'{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","Event":"/alg_config_delete","key":"k1"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_config_delete","Result":{"Code":0,"Desc":"删除成功"}}
一.1.2. 查询参数配置
查询当前所有配置
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_config_fetch |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_config_fetch |
1 |
Content |
必选 |
Array |
配置列表 |
|
2 |
key |
必选 |
String |
参数标识 |
|
2 |
value |
必选 |
String |
参数值 |
|
2 |
desc |
必选 |
String |
参数说明 |
|
2 |
type |
必选 |
Integer |
类型 |
0 系统参数; 1 用户参数 |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m'{"BoardId" : "RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF", "Event":"/alg_config_fetch"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Content":[{"desc":"是否开启视频录制功能(默认否)","key":"EnableVideoRecord","type":0,"value":"0"},{"desc":"国标服务端接入编号(默认空,不开启)","key":"GB28181ServerId","type":0,"value":"34020000002000000001"},{"desc":"国标服务器IP地址(默认空,不开启)","key":"GB28181ServerIp","type":0,"value":"192.168.0.112"},{"desc":"国标服务器接入端口(默认0,不开启)","key":"GB28181ServerPort","type":0,"value":"15060"},{"desc":"国标服务器接入密码(默认空,不开启)","key":"GB28181ServerPwd","type":0,"value":"12345"},{"desc":"国标客户端接入编号(默认空,不开启)","key":"GB2818ClientId","type":0,"value":"34020000009000000100"},{"desc":"告警记录保存时间(小时,默认24)","key":"HourKeepAlarmInfo","type":0,"value":"24"},{"desc":"上传失败后重传的间隔时间(小时,默认1)","key":"HourReUploadAlarmInfo","type":0,"value":"1"},{"desc":"国标服务端接入编号(默认空,不开启)","key":"IdGB28181Server","type":0,"value":""},{"desc":"国标客户端接入编号(默认空,不开启)","key":"IdGB2818Client","type":0,"value":""},{"desc":"国标服务器IP地址(默认空,不开启)","key":"IpGB28181Server","type":0,"value":""},{"desc":"解码跳帧策略,大于0时每N帧跳一帧,小于0时每N帧取一帧(默认-3)","key":"PolicyAbandon","type":0,"value":"3"},{"desc":"某个任务同一种报警的上报间隔(秒,默认10)","key":"SecAlarmInterval","type":0,"value":"10"},{"desc":"Http上传连接超时时间","key":"SecHttpConnectTimeOut","type":0,"value":"1"},{"desc":"Http上传传输超时时间","key":"SecHttpReceiveTimeOut","type":0,"value":"10"},{"desc":"某个目标同一种报警的上报间隔(秒,默认10)","key":"SecObjectAlarmInterval","type":0,"value":"10"},{"desc":"心跳上报间隔(秒,默认5)","key":"SecPingInterval","type":0,"value":"5"},{"desc":"文件服务器HTTP地址,告警视频上传使用","key":"ServiceUpload","type":0,"value":"http://192.168.0.250:9999/mp4"},{"desc":"磁盘可用空间低于该设定值时开始清理空间(MB,默认100)","key":"SizeKeepDiskAvailable","type":0,"value":"100"}],"Event":"/alg_config_fetch","Result":{"Code":0,"Desc":"已读取"}}
一.1.1. 查询调试日志
盒子提供按照分页查询运行时调试日志查询功能。关键字过滤的优先级高于页码优先级,即程序会优先收集关键字相关条目再分页。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_log_fetch |
1 |
page |
必选 |
Integer |
日志分页索引 |
1开始,每页50条 |
1 |
filter |
必选 |
String |
过滤关键字 |
支持StringArray多关键字 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_network_apply |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Log |
必选 |
Json |
日志节点 |
|
3 |
Content |
必选 |
Array |
日志条目 |
|
3 |
Total |
必选 |
Integer |
总记录数 |
按照关键字过滤后的记录数 |
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","Event":"/app_log_query","page":0,"filter":"DEBUG"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/app_log_query","Result":{"Code":0,"Desc":"\u67e5\u8be2\u6210\u529f","Log":{"Content":["[DEBUG][2022/06/01 15:07:52.818] (on_success:36) - Subscribe Successfully!","[DEBUG][2022/06/01 15:07:50.706] (launch:189) - TaskChannels Loaded","[DEBUG][2022/06/01 15:07:50.698] (taskArchiveApply:157) - Task[11] Region:roi","[DEBUG][2022/06/01 15:07:50.695] (archiveUpdated:80) - Add Slot:ddd","[DEBUG][2022/06/01 15:07:50.685] (TaskChannel:17) - Task Building:11","[DEBUG][2022/06/01 15:07:50.683] (onTaskArrived:214) - Ready to build:11","[DEBUG][2022/06/01 15:07:50.683] (require_chn:111) - Required Task Chn 0","[DEBUG][2022/06/01 15:07:50.682] (launch:185) - TaskChannels fetched","[DEBUG][2022/06/01 15:07:50.674] (launch:182) - MediaChannels Loaded","[DEBUG][2022/06/01 15:07:50.193] (systemCreate:152) - MQTTService Loaded","[DEBUG][2022/06/01 15:07:50.192] (systemCreate:133) - BoardType:WAN","[DEBUG][2022/06/01 15:07:50.189] (MessageQueue:56) - Connect tcp://81.68.188.223:6001 With Password Client:RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","[DEBUG][2022/06/01 15:00:26.127] (shared_ptr<EdgeSystem>&):2442) - #################### Release EdgeSystem Successfully ####################"],"Total":418}}}
一.1.1. 新建工装组
在使用工装识别算法时需要先建立待比对的工装档案信息,考虑到光线、角度、色彩变化,一种工装可建立一个工装组,该组内可上传多种光线、角度、色变下的模板图。来降低外部因素导致的对比误差。组内工装模板过多可能会降低检测效率
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_create |
1 |
name |
可选 |
Integer |
持续发送时间秒 |
工装标识 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_create |
1 |
SuitId |
必选 |
Integer |
组标识 |
|
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_suit_create","name":"Blue","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_suit_create","Result":{"Code":0,"Desc":"成功"}}
一.1.1. 删除工装组
删除指定工装组及组内所有工装模板
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_group_remove |
1 |
sid |
必选 |
Integer |
工装组编号 |
查询时获得的组编号 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_group_remove |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
一.1.2. 上传工装模板
工装组创建完成后,即可对工装组上传工装模板图。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_append |
1 |
sid |
必选 |
Integer |
工装组编号 |
查询时获得的组编号 |
1 |
jpeg |
必选 |
String |
模板图 |
模板JPEG图片的Base64 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_append |
1 |
SuitId |
必选 |
Integer |
组标识 |
|
1 |
FeatureId |
必选 |
Integer |
特征标识 |
|
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_suit_append","sid":0,"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","jpeg":"/9j/*****"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_suit_append","Result":{"Code":0,"Desc":"成功"}}
一.1.1. 删除一个工装模板
根据工装组编号以及模板编号,删除已存在的模板。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
Ø
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_remove |
1 |
sid |
必选 |
Integer |
工装组编号 |
查询时获得的组编号 |
1 |
fid |
必选 |
Integer |
模板编号 |
查询时获得的模板编号 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_remove |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_suit_remove","sid":0,"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","fid":0}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_suit_remove","Result":{"Code":0,"Desc":"成功"}}
一.1.1. 获取当前配置的模板信息
获取当前配置的模板信息
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_fetch |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/alg_suit_fetch |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
2 |
Content |
必选 |
Array |
|
|
3 |
id |
必选 |
Integer |
工装组编号 |
|
3 |
name |
必选 |
String |
工装组名称 |
|
3 |
features |
必选 |
Array |
模板列表 |
|
4 |
feature |
必选 |
String |
模板特征 |
|
4 |
fid |
必选 |
Integer |
模板编号 |
|
4 |
jpeg |
必选 |
String |
模板图JPEG |
Base64数据 |
4 |
size |
必选 |
Integer |
特征大小 |
|
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/alg_suit_remove","sid":0,"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","fid":0}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/alg_suit_remove","Result":{"Code":0,"Desc":"成功",Content:[ { "features": [ { "feature": "AA×××", "fid": 0, "jpeg": "/9j/4A***", "size": 2048 } ], "id": 0, "name": "Blue" } ]}}
一.1.1. 人脸识别统一管理接口
https://kdocs.cn/l/cnqHdoaeo83T
一.1.2. 设置盒子网络参数(老版本接口)
给盒子配置网络参数:网络地址、子网掩码、网关、域名解析服务器
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_network_apply |
1 |
ipaddr |
必选 |
String |
网络地址 |
如 192.168.0.168 |
1 |
mask |
必选 |
String |
子网掩码 |
如 255.255.255.0 |
1 |
gateway |
必选 |
String |
网关地址 |
如 192.168.0.1 |
1 |
dns |
可选 |
String |
域名解析服务器 |
如 114.114.114.114 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_network_apply |
1 |
Result |
必选 |
Json |
接口状态返回 |
|
2 |
Code |
必选 |
Integer |
错误标识 |
0正常 其他错误 |
2 |
Desc |
必选 |
String |
描述信息 |
错误描述信息 |
Ø 发送示例
mosquitto_pub -h 192.168.0.100 -p 6001 -t /edge_app_controller -m '{"Event":"/app_network_apply","ipaddr":"192.168.0.11","mask":"255.255.255.0","gateway":"192.168.0.1","dns":"8.8.8.8","BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF"}'
Ø 响应示例
{"BoardId":"RJ-BOX3-4E11AC085A5F699A4EAFBDDDD25E21AF","BoardIp":"192.168.0.11","Event":"/app_network_apply","Result":{"Code":0,"Desc":"已提交,即将重启"}}
一.1.3. 获取设备网络配置
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_network_query_v2 |
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/api_list_face |
1 |
Network |
必选 |
Json |
人脸列表 |
|
2 |
adapter |
必选 |
Array |
人脸标识 |
|
3 |
address |
必选 |
String |
人脸底库图 |
base64 |
3 |
device |
必选 |
Sring |
网卡名称 |
|
3 |
name |
必选 |
String |
网络名称 |
|
3 |
dhcp_allow |
必选 |
Bool |
是否支持DHCP |
|
3 |
dhcp_enable |
必选 |
Integer |
是否为DHCP模式 |
|
3 |
gateway |
必选 |
String |
网关地址 |
|
3 |
wired |
必选 |
Bool |
是否已连接 |
|
3 |
mac |
必选 |
String |
网卡物理地址 |
|
3 |
type |
必选 |
String |
网络类型 |
ethernet/wwan0 |
3 |
mask |
必选 |
String |
子网掩码 |
|
3 |
readonly |
必选 |
Bool |
是否可手动修改IP |
|
3 |
dns |
必选 |
Array |
域名服务器列表 |
|
Ø 返回示例
{
"BoardId" : "RJ-BOX3-89F8EF18348AB4FFC2CB542B8421F2F7",
"BoardIp" : "192.168.0.10",
"Event" : "/app_network_query_v2",
"Network" :
{
"adapter" :
[
{
"address" : "192.168.0.10",
"device" : "eth0",
"dhcp_allow" : false,
"dhcp_enable" : false,
"dns" :
[
"114.114.114.114"
],
"gateway" : "",
"mac" : "00:d1:9c:86:79:39",
"mask" : "255.255.255.0",
"name" : "eth0",
"readonly" : false,
"type" : "ethernet",
"wired" : true
},
{
"address" : "10.162.173.3",
"device" : "wwan0",
"dhcp_allow" : true,
"dhcp_enable" : true,
"dns" :
[
"114.114.114.114"
],
"gateway" : "10.162.173.4",
"mac" : "b2:58:78:b1:7c:1a",
"mask" : "255.255.255.248",
"name" : "wwan0",
"readonly" : true,
"type" : "wwan",
"wired" : true
}
],
"dns" : []
},
"Result" :
{
"Code" : 0,
"Desc" : "Success"
}
}
一.1.1. 设置网络配置
需要根据返回的对应网卡参数中的readonly/dhcp_allow 进行控制。
Ø 相关主题
发送:/edge_app_controller 响应:/edge_app_controller_reply
Ø 发送参数
层级 |
参数 |
选项 |
类型 |
描述 |
取值范围 |
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Event |
必选 |
String |
功能标识 |
/app_network_apply_v2 |
1 |
name |
必选 |
String |
网卡名称 |
|
1 |
address |
必选 |
String |
网络地址 |
|
1 |
geteway |
必选 |
String |
网关地址 |
|
1 |
mask |
必选 |
String |
子网掩码 |
|
1 |
dns |
必选 |
Array |
域名解析服务器 |
|
Ø 响应参数
层级 |
参数 |
选项 |
类型 |
描述 |
示例 |
1 |
BoardIp |
必选 |
String |
盒子网络地址 |
|
1 |
BoardId |
必选 |
String |
盒子唯一标识 |
|
1 |
Result |
必选 |
String |
|
|
Ø 请求示例
{
"name": "eth0",
"address": "192.168.0.133",
"gateway": "192.168.0.161",
"mask": "255.255.255.0",
"dns": ["114.114.114.114", "223.5.5.5", "8.8.8.8"]
}
一.1. HTTP版本交互控制协议
HTTP协议同MQTT协议参数一致,需要改动的是将Event字段作为HTTP path使用。如 在MQTT中 Event 为 /alg_media_config ,则在HTTP请求时地址则是 http://ip:10002/alg_media_config 或 http://ip/api/alg_media_config
第一章 附件
一.1. 内置算法能力
AlgInfo是指算法能力中第一层的识别模型,如下1表示人检测。MethodConfig表示再第一层检测后的基础上对目标进行的第二层模型计算。如2安全帽。
列表中表示已移植的可用算法,默认部署可能缺少部分算法,则需要更新至最新版本并申请使用该算法。
由于不同盒子的内置算法可能不同。可以使用接口 alg_ability_fetch 接口(2.2.6 章节)获取,下方是其中几个算法能力的例子。
明烟明火 |
|||
主算法 |
8 |
子算法 |
46 |
辅助线 |
否 |
|
|
算法专用区域 |
否 |
|
|
可选告警标识 |
标识 |
描述 |
|
Smoke |
检测到明烟 |
||
Fire |
检测到明火 |
||
可设置参数 |
无 |
人脸识别 |
||||
主算法 |
52 |
子算法 |
207 |
|
辅助线 |
否 |
|
||
算法专用区域 |
否 |
|
||
可选告警标识 |
标识 |
描述 |
||
FaceId |
识别到在册人脸 |
|||
Stranger |
识别到陌生人 |
|||
可设置参数 |
标识 |
描述 |
类型 |
默认值 |
face_reg_similarity |
相似度阈值 |
FLOAT |
0.4 |
|
face_reg_enable_gat1400 |
启用 GA/T-1400 |
BOOLEAN |
false |
|
face_low_similarity |
陌生人阈值 |
FLOAT |
0.3 |
|
face_repositories |
选择人脸库 |
SELECTOR |
|
指针表计检测 |
|||
主算法 |
244 |
子算法 |
243 |
辅助线 |
否 |
|
|
算法专用区域 |
是 |
标识表计,在此区域内识别到标记将携带当前区域的标识 |
|
可选告警标识 |
标识 |
描述 |
|
MeterPointer |
检测指针表计 |
||
可设置参数 |
|
一.1. 内置系统参数说明
黄色标记为常用参数,可着重关注
参数标识 |
描述 |
版本 |
DimOfAlarmImage |
告警图片尺寸类型(0 宽高640x360,1原始相机尺寸,默认0) |
|
EnableAlarmNotification |
是否告警时向网页发出通知(默认0,不开启),影响WEB语音、弹窗 |
|
EnableAlarmVoice |
是否开启设备语音输出(默认0不开启),影响设备音频口输出告警语音 |
|
EnableLogUploader |
是否通过MQTT上报日志(0否,1是 默认0) |
|
|
|
|
EnableVideoRecord |
是否开启视频录制功能(0[不录制] 1[录制],默认0) |
|
EncodeBitrate |
编码输出码率,影响GB28181/RTSP 输出的画面质量 |
|
GAT1400AuthAccount |
GAT1400链接参数,二次开发透传配置 |
|
GAT1400AuthPasswd |
GAT1400链接参数,二次开发透传配置 |
|
GAT1400DeviceId |
GAT1400链接参数,二次开发透传配置 |
|
GAT1400KeepAliveSec |
GAT1400链接参数,二次开发透传配置 |
|
GAT1400ServerHost |
GAT1400链接参数,二次开发透传配置 |
|
GAT1400ServerId |
GAT1400链接参数,二次开发透传配置 |
|
GAT1400ServerPort |
GAT1400链接参数,二次开发透传配置 |
|
GB28181GroupChn1 |
接入到GB28181平台时 “合流通道一”使用的国标通道编号 |
|
GB28181GroupChn2 |
接入到GB28181平台时 “合流通道二”使用的国标通道编号 |
|
GB28181ServerId |
接入GB28181的SIP服务器ID |
|
GB28181ServerIp |
接入GB28181的SIP服务器IP |
|
GB28181ServerPort |
接入GB28181的SIP服务器端口 |
|
GB28181ServerPwd |
接入GB28181的SIP服务器接入密码 |
|
GB2818ClientId |
接入GB28181的SIP服务器使用的设备ID |
|
HourReUploadAlarmInfo |
告警重传的间隔时间(默认1h,也可以是分钟如:2m,或者秒如:2s) |
|
LogLevel |
MQTT 上报日志等级日志输出级别(默认1,1:调试;2:异常信息) |
|
MQIdPattern |
自定义MQTT 客户端编号规则(默认空,非空时必须包含$ID,$ID表示设备编码,如'zzz$IDzz' 对应 zzzRJ-BMOX-63CB19338C2B781761FC32991BD6F2C5zz) |
|
MQRootTopic |
给MQTT使用的所有主题加上父级主题 |
|
MQUniqueSubscribe |
监听MQTT订阅消息时,监听主题上加入设备号,如 原先监听/edge_controller,启用后为/RJ-BMOX-63CB19338C2B781761FC32991BD6F2C5/edge_controller |
|
PolicyAbandon |
跳帧策略,大于0每N帧跳一帧,小于0每N帧取一帧(默认2) |
|
QualityOfPreview |
输出视频画面质量,影响WEB端输出的画面质量 |
|
RecordKeepAlarmInfo |
告警记录保存数(默认1000条) |
|
RemoteBrokerUrl |
MQTT服务器信息([ws/tcp]://[account:pass@]10.0.0.0[:port],默认空) |
0.0.24 |
SecAlarmFilterInterval |
最小上报告警间隔(单位秒,默认0不开启),开启后任何告警都按照此间隔控制 |
|
SecAlarmInterval |
某个任务同一种报警的上报间隔(秒,默认0) |
|
SecHttpConnectTimeOut |
Http上传连接超时时间(秒,默认1) |
|
SecHttpReceiveTimeOut |
Http上传传输超时时间(秒,默认10) |
|
SecObjectAlarmInterval |
某个目标同一种报警的上报间隔(秒,默认10) |
|
SecPingInterval |
接入MQTT时,通过MQTT上报设备状态(秒,默认5) |
|
ServiceUpload |
告警视频文件上传的HTTP接口地址,开启视频录制后必填否则告警无法上报 |
|
SizeKeepDiskAvailable |
磁盘可用空间低于该设定值时开始清理空间(MB,默认100),自动清理日志、告警等 |
|
TimesReUploadAlarmInfo |
告警上报重试次数(次,默认3) |
|
TypeAlarmImage |
上报图片类型(0[原图] 1[标注图] 2[原图+标注图],默认0) |
|
VideoRecordPrefix |
录制视频回溯比例(默认0.5,如时长10秒设置0.4则告警前4秒后6秒) |
|
VideoRecordSec |
视频录制时长(5~30,默认10) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
端口 |
功能 |
类型 |
必选 |
模块 |
80 |
WEB及数据服务 |
TCP |
是 |
通用 |
554 |
视频输出 |
TCP |
否 |
RTSP输出 |
5060 |
SIP服务 |
UDP |
否 |
GB28181 |
随机 |
RTP服务 |
TCP |
否 |
GB28181 |
订阅报警信息,持续主动上报
告警上报在每个任务创建时填写 可以填http://ip:port/path的 或tcp://user:pwd@ip:port/topic (其中/topic包含/ 是订阅主题)