WEB服务器CGI接口说明
配置相机参数
接口路径:http://{ip}/cgi-bin/cameraConfigure3rd
http方法: POST
(1)请求内容(JSON,UTF-8)
(2)回复内容(JSON,UTF-8)
HTTP协议示例:
——————————————————————
请求:
POST /cgi-bin/cameraControl HTTP/1.1
Host: 172.19.2.60
Content-Type: application/json
Content-Length: 468
{“cmd”:”protocolConfig”,”content”:{“operateType”:”set”,”protocolType”:”1″,”MQTTConfig”:{“autoRegisterFlag”:”0″,”registerAddr”:””,”registerAppKey”:””,”registerAppSecret”:””,”reportSerial0Data”:”1″,”reportSerial1Data”:”1″,”serverAddr”:”172.19.16.203″,”serverPort”:”1883″,”username”:”test”,”password”:”123456″,”heartbeatTime”:”60″,”uploadImageType”:”2″,”uploadImageAddr”:”http://test1.172.19.16.203:9090/camera”,”uriStyle”:”0″,”accessKeyId”:”12345″,”secretKey”:”67890″}}}
——————————————————————
回复:
HTTP/1.0 200 OK
Content-Length: 78
Content-Type: application/json
{{“cmd”:”protocolConfig”,”code”:”0″,”msg”:””,”content”:{“operateType”:”set”}}}
服务器通讯协议参数
设置服务器通讯协议参数
请求:
字段名 | 数据类型 | 必有字段 | 说明 | ||
cmd | string | 是 | 命令码,固定为 “protocolConfig” | ||
cmdId | string | 否 | 此次命令的唯一标识,与请求指令中的cmdId一致 | ||
cmdTs | int | 否 | 此次命令的UTC时间戳,单位秒 | ||
content | object | 是 | |||
operateType | string | 是 | 操作类型,固定为”set” | ||
protocolType | int | 是 | 协议类型,0:SDK协议,1:MQTT协议,2:纯脱机(2024-04-15) | ||
SDKConfig | object | 是 | SDK协议参数 | ||
mode | int | 是 | SDK通讯方式 0:主动模式,1:被动模式 被动模式还未使用 | ||
serverAddr | string | 是 | SDK服务器地址 | ||
serverPort | int | 是 | SDK服务器端口 | ||
MQTTConfig | object | 是 | MQTT协议参数 | ||
serverAddr | string | 是 | MQTT服务器地址 | ||
serverPort | int | 是 | MQTT服务器端口 | ||
username | string | 是 | MQTT登录用户名 | ||
password | string | 是 | MQTT登录密码 | ||
heartbeatTime | int | 是 | 自定义心跳的周期时间,单位秒 | ||
reportSerial0Data | int | 是 | 上报串口1数据 0:关闭,1:开启 | ||
reportSerial1Data | int | 是 | 上报串口2数据,0:关闭,1:开启 | ||
uploadImageType | int | 是 | 上传图片协议类型,0:MQTT,1:HTTP,2:对象存储S3 | ||
uploadImageAddr | string | 是 | 上传图片的地址,协议类型为HTTP和对象存储时有效 格式请参考文档”车牌识别相机MQTT协议” – 3.2 上传图片地址格式说明 | ||
uriStyle | int | 否 | 对象存储URI风格(访问对象存储服务器时使用),协议类型为对象存储时有效 0:自动 1:路径风格(path-style) 2:虚拟主机风格(virtual-hosted-style) 2024-01-10新增 | ||
accessKeyId | string | 是 | 对象存储ak,协议类型为对象存储时有效 | ||
secretKey | string | 是 | 对象存储sk,协议类型为对象存储时有效 | ||
autoRegisterFlag | int | 否 | 自动注册,0:关闭,1:开启 2023-12-19新增 | ||
registerAddr | string | 否 | 自动注册地址 长度限制99字节 2023-12-19新增 | ||
registerAppKey | string | 否 | 自动注册appKey 长度限制63字节 2023-12-19新增 | ||
registerAppSecret | string | 否 | 自动注册appSecret 长度限制127字节 2023-12-19新增 | ||
回复:
字段名 | 数据类型 | 必有字段 | 说明 | ||||
cmd | string | 是 | 命令码,固定为 “protocolConfig” | ||||
cmdId | string | 否 | 此次命令的唯一标识,与请求指令中的cmdId一致 | ||||
cmdTs | int | 否 | 此次命令的UTC时间戳,单位秒 | ||||
code | int | 是 | 响应结果,0:成功,1:失败 | ||||
msg | string | 是 | 响应结果描述 | ||||
content | object | 是 | |||||
operateType | string | 是 | 操作类型,固定为”set” | ||||
示例:
请求:
{
“cmd”: “protocolConfig”,
“content”: {
“operateType”: “set”,
“protocolType”: “1”,
“MQTTConfig”: {
“autoRegisterFlag”: “0”,
“registerAddr”: “”,
“registerAppKey”: “”,
“registerAppSecret”: “”,
“reportSerial0Data”: “1”,
“reportSerial1Data”: “1”,
“serverAddr”: “172.19.16.203”,
“serverPort”: “1883”,
“username”: “test”,
“password”: “123456”,
“heartbeatTime”: “60”,
“uploadImageType”: “2”,
“uploadImageAddr”: “http://test1.172.19.16.203:9090/camera”,
“uriStyle”: “0”,
“accessKeyId”: “12345”,
“secretKey”: “67890”
}
}
}
回复:
{
“cmd”: “protocolConfig”,
“code”: “0”,
“msg”: “”,
“content”: {
“operateType”: “set”
}
}
获取服务器通讯协议参数
请求:
字段名 | 数据类型 | 必有字段 | 说明 | |
cmd | string | 是 | 命令码,固定为 “protocolConfig” | |
cmdId | string | 否 | 此次命令的唯一标识,与请求指令中的cmdId一致 | |
cmdTs | int | 否 | 此次命令的UTC时间戳,单位秒 | |
content | object | 是 | ||
operateType | string | 是 | 操作类型,固定为”get” | |
回复:
字段名 | 数据类型 | 必有字段 | 说明 | |||||
cmd | string | 是 | 命令码,固定为 “protocolConfig” | |||||
cmdId | string | 否 | 此次命令的唯一标识,与请求指令中的cmdId一致 | |||||
cmdTs | int | 否 | 此次命令的UTC时间戳,单位秒 | |||||
code | int | 是 | 响应结果,0:成功,1:失败 | |||||
msg | string | 是 | 响应结果描述 | |||||
content | object | 是 | ||||||
operateType | string | 是 | 操作类型,固定为”get” | |||||
protocolType | int | 是 | 协议类型,0:SDK协议,1:MQTT协议,2:纯脱机(2024-04-15) | |||||
SDKConfig | object | 是 | SDK协议参数 | |||||
mode | int | 是 | SDK通讯方式 0:主动模式,1:被动模式 被动模式还未使用 | |||||
serverAddr | string | 是 | SDK服务器地址 | |||||
serverPort | int | 是 | SDK服务器端口 | |||||
MQTTConfig | object | 是 | MQTT协议参数 | |||||
serverAddr | string | 是 | MQTT服务器地址 长度限制99字节 | |||||
serverPort | int | 是 | MQTT服务器端口 | |||||
username | string | 是 | MQTT登录用户名 | |||||
password | string | 是 | MQTT登录密码 | |||||
heartbeatTime | int | 是 | 自定义心跳的周期时间,单位秒 | |||||
reportSerial0Data | int | 是 | 上报串口1数据 0:关闭,1:开启 | |||||
reportSerial1Data | int | 是 | 上报串口2数据,0:关闭,1:开启 | |||||
uploadImageType | int | 否 | 上传图片协议类型,0:MQTT,1:HTTP,2:对象存储S3 | |||||
uploadImageAddr | string | 否 | 上传图片的地址,协议类型为HTTP时有效 长度限制255字节 格式请参考文档”车牌识别相机MQTT协议” – 3.2 上传图片地址格式说明 | |||||
uriStyle | int | 否 | 对象存储URI风格(访问对象存储服务器时使用),协议类型为对象存储时有效 0:自动 1:路径风格(path-style) 2:虚拟主机风格(virtual-hosted-style) 2024-01-10新增 | |||||
accessKeyId | string | 否 | 对象存储ak,协议类型为对象存储时有效 长度限制63字节 | |||||
secretKey | string | 否 | 对象存储sk,协议类型为对象存储时有效 长度限制127字节 | |||||
autoRegisterFlag | int | 否 | 自动注册,0:关闭,1:开启 2023-12-19新增 | |||||
registerAddr | string | 否 | 自动注册地址 长度限制99字节 2023-12-19新增 | |||||
registerAppKey | string | 否 | 自动注册appKey 长度限制63字节 2023-12-19新增 | |||||
registerAppSecret | string | 否 | 自动注册appSecret 长度限制127字节 2023-12-19新增 | |||||
示例:
请求:
{
“cmd”: “protocolConfig”,
“content”: {
“operateType”: “get”
}
}
回复:
{
“cmd”: “protocolConfig”,
“code”: “0”,
“msg”: “”,
“content”: {
“operateType”: “get”,
“protocolType”: “1”,
“SDKConfig”: {
“mode”: “0”,
“serverAddr”: “172.19.8.203”,
“serverPort”: “6001”
},
“MQTTConfig”: {
“serverAddr”: “172.19.16.203”,
“serverPort”: “1883”,
“username”: “test”,
“password”: “123456”,
“heartbeatTime”: “60”,
“reportSerial0Data”: “1”,
“reportSerial1Data”: “1”,
“uploadImageType”: “2”,
“uploadImageAddr”: “http://test1.172.19.16.203:9090/camera”,
“uriStyle”: “0”,
“accessKeyId”: “12345”,
“secretKey”: “67890”,
“autoRegisterFlag”: “0”,
“registerAddr”: “”,
“registerAppKey”: “”,
“registerAppSecret”: “”
}
}
}
查找相机(UDP广播)
广播地址和端口:255.255.255.255:8301
二次封包格式:包类型(1字节,固定0x04)+包长度(2字节)+JSON数据(N字节)
二次封包示例:04 00 0E 7B 22 63 6D 64 22 3A 22 74 65 73 74 22 7D
{ ” c m d ” : ” t e s t ” }
请求:
字段名 | 数据类型 | 必有字段 | 说明 | ||
cmd | string | 是 | 命令码,固定为 “ipcamSearchBC” | ||
cmdId | string | 否 | 此次命令的唯一标识,与请求指令中的cmdId一致 | ||
cmdTs | int | 否 | 此次命令的UTC时间戳,单位秒 | ||
content | object | 是 | |||
assistID | string | 是 | 调试助手ID,相机回复时将此ID附加在回复指令中 用户自定义 | ||
cameraList | array (object) | 是 | 相机ID列表,无此字段时所有相机都回复,存在此字段时只有数组中对应相机ID才回复 | ||
cameraID | string | 相机ID | |||
回复:
字段名 | 数据类型 | 必有字段 | 说明 | ||||
cmd | string | 是 | 命令码,固定为 “ipcamSearchBC” | ||||
cmdId | string | 否 | 此次命令的唯一标识,与请求指令中的cmdId一致 | ||||
cmdTs | int | 否 | 此次命令的UTC时间戳,单位秒 | ||||
code | int | 是 | 响应结果,0:成功,1:失败 | ||||
msg | string | 是 | 响应结果描述 | ||||
content | object | 是 | |||||
deviceType | int | 是 | deviceType:设备类型,固定为”10” | ||||
assistID | string | 是 | 调试助手ID | ||||
cameraID | string | 是 | 相机ID | ||||
nodeName | string | 是 | 通道名称 | ||||
cameraVersion | string | 是 | 相机版本号 | ||||
type | int | 否 | 相机本地IP类型,0:静态IP,1:DHCP | ||||
localIP | string | 是 | 相机本地IP | ||||
netmask | string | 是 | 相机子网掩码 | ||||
gatway | string | 是 | 相机网关 | ||||
dnsType | int | 否 | 相机DNS类型,0:静态IP,1:DHCP | ||||
dns | string | 是 | 相机DNS | ||||
mac | string | 是 | 相机MAC地址 | ||||
online | int | 是 | 和服务器的连接状态,0-离线,1-在线 | ||||
MAType | string | 是 | 设备类型,0:主机,1:辅机 | ||||
buddyIP | string | 是 | 主机/辅机对应的辅机/主机IP | ||||
示例:
请求:
{
“cmd”: “ipcamSearchBC”,
“content”: {
“assistID”: “c4528b90-4c14-474f-a0f8-49aff38aa0dc”
}
}
回复:
{
“cmd”: “ipcamSearchBC”,
“code”: “0”,
“msg”: “”,
“content”: {
“deviceType”: “10”,
“assistID”: “c4528b90-4c14-474f-a0f8-49aff38aa0dc”,
“cameraID”: “CHE230000000000001”,
“cameraVersion”: “SJSJ1.086.S30.B.1.2Z”,
“nodeName”: “通道1”,
“online”: “0”,
“MAType”: “0”,
“buddyIP”: “172.19.2.62”,
“type”: “0”,
“dnsType”: “0”,
“localIP”: “172.19.2.60”,
“netmask”: “255.255.0.0”,
“gatway”: “172.19.16.203”,
“dns”: “114.114.114.114”,
“mac”: “00:00:ac:13:02:3c”
}
}
实际请求的十六进制数据内容:
04 00 6C 7B 0D 0A 20 20 22 63 6D 64 22 3A 20 22 69 70 63 61 6D 53 65 61 72 63 68 42 43 22 2C 0D 0A 20 20 22 63 6F 6E 74 65 6E 74 22 3A 20 7B 0D 0A 20 20 20 20 22 61 73 73 69 73 74 49 44 22 3A 20 22 63 34 35 32 38 62 39 30 2D 34 63 31 34 2D 34 37 34 66 2D 61 30 66 38 2D 34 39 61 66 66 33 38 61 61 30 64 63 22 0D 0A 20 20 7D 0D 0A 7D
实际回复的十六进制数据内容:
04 02 20 7B 0D 0A 20 20 22 63 6D 64 22 3A 20 22 69 70 63 61 6D 53 65 61 72 63 68 42 43 22 2C 0D 0A 20 20 22 63 6F 64 65 22 3A 20 22 30 22 2C 0D 0A 20 20 22 6D 73 67 22 3A 20 22 22 2C 0D 0A 20 20 22 63 6F 6E 74 65 6E 74 22 3A 20 7B 0D 0A 20 20 20 20 22 64 65 76 69 63 65 54 79 70 65 22 3A 20 22 31 30 22 2C 0D 0A 20 20 20 20 22 61 73 73 69 73 74 49 44 22 3A 20 22 63 34 35 32 38 62 39 30 2D 34 63 31 34 2D 34 37 34 66 2D 61 30 66 38 2D 34 39 61 66 66 33 38 61 61 30 64 63 22 2C 0D 0A 20 20 20 20 22 63 61 6D 65 72 61 49 44 22 3A 20 22 43 48 45 32 33 30 30 30 30 30 30 30 30 30 30 30 30 31 22 2C 0D 0A 20 20 20 20 22 63 61 6D 65 72 61 56 65 72 73 69 6F 6E 22 3A 20 22 53 4A 53 4A 31 2E 30 38 36 2E 53 33 30 2E 42 2E 31 2E 32 5A 22 2C 0D 0A 20 20 20 20 22 6E 6F 64 65 4E 61 6D 65 22 3A 20 22 CD A8 B5 C0 31 22 2C 0D 0A 20 20 20 20 22 6F 6E 6C 69 6E 65 22 3A 20 22 30 22 2C 0D 0A 20 20 20 20 22 4D 41 54 79 70 65 22 3A 20 22 30 22 2C 0D 0A 20 20 20 20 22 62 75 64 64 79 49 50 22 3A 20 22 31 37 32 2E 31 39 2E 32 2E 36 32 22 2C 0D 0A 20 20 20 20 22 74 79 70 65 22 3A 20 22 30 22 2C 0D 0A 20 20 20 20 22 64 6E 73 54 79 70 65 22 3A 20 22 30 22 2C 0D 0A 20 20 20 20 22 6C 6F 63 61 6C 49 50 22 3A 20 22 31 37 32 2E 31 39 2E 32 2E 36 30 22 2C 0D 0A 20 20 20 20 22 6E 65 74 6D 61 73 6B 22 3A 20 22 32 35 35 2E 32 35 35 2E 30 2E 30 22 2C 0D 0A 20 20 20 20 22 67 61 74 77 61 79 22 3A 20 22 31 37 32 2E 31 39 2E 31 36 2E 32 30 33 22 2C 0D 0A 20 20 20 20 22 64 6E 73 22 3A 20 22 31 31 34 2E 31 31 34 2E 31 31 34 2E 31 31 34 22 2C 0D 0A 20 20 20 20 22 6D 61 63 22 3A 20 22 30 30 3A 30 30 3A 61 63 3A 31 33 3A 30 32 3A 33 63 22 0D 0A 20 20 20 20 7D 0D 0A 7D
修改相机IP(UDP广播)
广播地址和端口:255.255.255.255:8301
二次封包格式:包类型(1字节,固定0x04)+包长度(2字节)+JSON数据(N字节)
二次封包示例:04 00 0E 7B 22 63 6D 64 22 3A 22 74 65 73 74 22 7D
{ ” c m d ” : ” t e s t ” }
请求:
字段名 | 数据类型 | 必有字段 | 说明 | |
cmd | string | 是 | 命令码,固定为 “networkConfigBC” | |
cmdId | string | 否 | 此次命令的唯一标识,与请求指令中的cmdId一致 | |
cmdTs | int | 否 | 此次命令的UTC时间戳,单位秒 | |
content | object | 是 | ||
assistID | string | 是 | 调试助手ID,相机回复时将此ID附加在回复指令中 用户自定义 | |
cameraID | string | 是 | 相机ID | |
type | int | 否 | 相机本地IP类型,0:静态IP,1:DHCP | |
localIP | string | 是 | 相机本地IP | |
netmask | string | 是 | 相机子网掩码 | |
gatway | string | 是 | 相机网关 | |
dnsType | int | 否 | 相机DNS类型,0:静态IP,1:DHCP 当type为0时,dnsType必须为0 | |
dns | string | 是 | 相机DNS | |
nodeName | string | 是 | 通道名称 | |
MAType | string | 是 | 设备类型,0:主机,1:辅机 | |
buddyIP | string | 是 | 主机/辅机对应的辅机/主机IP | |
回复:
字段名 | 数据类型 | 必有字段 | 说明 | ||||
cmd | string | 是 | 命令码,固定为 “networkConfigBC” | ||||
cmdId | string | 否 | 此次命令的唯一标识,与请求指令中的cmdId一致 | ||||
cmdTs | int | 否 | 此次命令的UTC时间戳,单位秒 | ||||
code | int | 是 | 响应结果,0:成功,1:失败 | ||||
msg | string | 是 | 响应结果描述 | ||||
content | object | 是 | |||||
assistID | string | 是 | 调试助手ID | ||||
cameraID | string | 是 | 相机ID | ||||
示例:
请求:
{
“cmd”: “networkConfigBC”,
“content”: {
“assistID”: “c4528b90-4c14-474f-a0f8-49aff38aa0dc”,
“cameraID”: “CHE230000000000001”,
“type”: “0”,
“localIP”: “172.19.2.60”,
“netmask”: “255.255.0.0”,
“gatway”: “172.19.16.203”,
“dnsType”: “0”,
“dns”: “114.114.14.114”
}
}
回复:
{
“cmd”: “networkConfigBC”,
“code”: “0”,
“msg”: “”,
“content”: {
“assistID”: “c4528b90-4c14-474f-a0f8-49aff38aa0dc”,
“cameraID”: “CHE230000000000001”
}
}
实际请求的十六进制数据内容:
04 01 38 7B 0D 0A 20 20 22 63 6D 64 22 3A 20 22 6E 65 74 77 6F 72 6B 43 6F 6E 66 69 67 42 43 22 2C 0D 0A 20 20 22 63 6F 6E 74 65 6E 74 22 3A 20 7B 0D 0A 20 20 20 20 22 61 73 73 69 73 74 49 44 22 3A 20 22 63 34 35 32 38 62 39 30 2D 34 63 31 34 2D 34 37 34 66 2D 61 30 66 38 2D 34 39 61 66 66 33 38 61 61 30 64 63 22 2C 0D 0A 20 20 20 20 22 63 61 6D 65 72 61 49 44 22 3A 20 22 43 48 45 32 33 30 30 30 30 30 30 30 30 30 30 30 30 31 22 2C 0D 0A 20 20 20 20 22 74 79 70 65 22 3A 20 22 30 22 2C 0D 0A 20 20 20 20 22 6C 6F 63 61 6C 49 50 22 3A 20 22 31 37 32 2E 31 39 2E 32 2E 36 30 22 2C 0D 0A 20 20 20 20 22 6E 65 74 6D 61 73 6B 22 3A 20 22 32 35 35 2E 32 35 35 2E 30 2E 30 22 2C 0D 0A 20 20 20 20 22 67 61 74 77 61 79 22 3A 20 22 31 37 32 2E 31 39 2E 31 36 2E 32 30 33 22 2C 0D 0A 20 20 20 20 22 64 6E 73 54 79 70 65 22 3A 20 22 30 22 2C 0D 0A 20 20 20 20 22 64 6E 73 22 3A 20 22 31 31 34 2E 31 31 34 2E 31 34 2E 31 31 34 22 0D 0A 20 20 7D 0D 0A 7D
实际回复的十六进制数据内容:
04 00 B5 7B 0D 0A 20 20 22 63 6D 64 22 3A 20 22 6E 65 74 77 6F 72 6B 43 6F 6E 66 69 67 42 43 22 2C 0D 0A 20 20 22 63 6F 64 65 22 3A 20 22 30 22 2C 0D 0A 20 20 22 6D 73 67 22 3A 20 22 22 2C 0D 0A 20 20 22 63 6F 6E 74 65 6E 74 22 3A 20 7B 0D 0A 20 20 20 20 22 61 73 73 69 73 74 49 44 22 3A 20 22 63 34 35 32 38 62 39 30 2D 34 63 31 34 2D 34 37 34 66 2D 61 30 66 38 2D 34 39 61 66 66 33 38 61 61 30 64 63 22 2C 0D 0A 20 20 20 20 22 63 61 6D 65 72 61 49 44 22 3A 20 22 43 48 45 32 33 30 30 30 30 30 30 30 30 30 30 30 30 31 22 0D 0A 20 20 20 20 7D 0D 0A 7D











暂无评论内容