通讯协议
协议结构
参数名称 |
类型 |
描述 |
action_type |
int |
操作类型 |
msgInfo |
object |
每个接口特有的参数,详见每个接口定义 |
数据格式
心跳
参数名称 |
类型 |
描述 |
action_type |
int |
0 |
msgInfo |
object |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
name |
string |
程序名称 |
version |
string |
版本信息 |
参数名称 |
类型 |
描述 |
action_type |
int |
0 |
msgInfo |
DateTime |
时间 |
查询软件参数信息
参数名称 |
类型 |
描述 |
action_type |
int |
1 |
参数名称 |
类型 |
描述 |
action_type |
int |
1 |
msgInfo |
Dictionary < string, string > |
设置信息 |
修改软件参数信息
参数名称 |
类型 |
描述 |
action_type |
int |
2 |
msgInfo |
Dictionary < string, string > |
设置信息 |
参数名称 |
类型 |
描述 |
action_type |
int |
2 |
msgInfo |
object |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
status |
bool |
true: 成功; false: 失败; |
message |
string |
异常信息 |
查询日志
参数名称 |
类型 |
描述 |
action_type |
int |
3 |
msgInfo |
object |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
type |
int |
0: 系统事件; 1: 用户操作; 2: 视频通道; |
date |
string |
日期 |
index |
int |
通道号(仅视频通道日志有效) |
month |
bool |
true: 检索全月; false: 不检索全月 |
参数名称 |
类型 |
描述 |
action_type |
int |
3 |
msgInfo |
object[] |
|
**msgInfo ** 参数如下
参数名称 |
类型 |
描述 |
timestamp |
DateTime |
事件事件 |
type |
int |
事件类型 |
index |
int |
视频通道日志类型时为通道号,其他为空 |
message |
string |
消息 |
data |
string |
详细信息 |
添加日志
参数名称 |
类型 |
描述 |
action_type |
int |
4 |
msgInfo |
object |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
timestamp |
DateTime |
事件事件 |
type |
int |
事件类型 |
index |
int |
视频通道日志类型时为通道号,其他为空 |
message |
string |
消息 |
data |
string |
详细信息 |
查询录像
参数名称 |
类型 |
描述 |
action_type |
int |
5 |
msgInfo |
object |
|
msgInfo 参数为空,查询最早的一条录像数据
msgInfo 参数如下, 按通道、开始日期、结束日期参数查询录像数据
参数名称 |
类型 |
描述 |
channel |
int |
通道号 |
start_date |
DateTime |
开始日期 |
end_date |
DateTime |
结束日期 |
msgInfo 参数如下, 按日期查询录像数据
参数名称 |
类型 |
描述 |
date |
DateTime |
日期 |
参数名称 |
类型 |
描述 |
action_type |
int |
5 |
msgInfo |
object[] |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
channel |
int |
通道号 |
start_date |
DateTime |
开始日期 |
end_date |
DateTime |
结束日期 |
duration |
int |
录像时长 |
name |
string |
文件名称 |
path |
string |
文件路径 |
更新录像数据
参数名称 |
类型 |
描述 |
action_type |
int |
6 |
msgInfo |
object |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
channel |
int |
通道号 |
start_date |
DateTime |
开始日期 |
end_date |
DateTime |
结束日期 |
duration |
int |
录像时长 |
name |
string |
文件名称 |
path |
string |
文件路径 |
删除录像数据
参数名称 |
类型 |
描述 |
action_type |
int |
7 |
msgInfo |
object |
|
msgInfo 参数如下, 按文件路径删除录像
参数名称 |
类型 |
描述 |
path |
string |
文件路径 |
msgInfo 参数如下, 按录像日期删除录像
参数名称 |
类型 |
描述 |
date |
DateTime |
日期 |
创建报警视频
参数名称 |
类型 |
描述 |
action_type |
int |
10 |
msgInfo |
object |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
channel |
int |
通道 |
timestamp |
string |
报警时间 |
车辆状态
参数名称 |
类型 |
描述 |
action_type |
int |
100 |
msgInfo |
object |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
speed |
float |
车速 |
brake |
int |
刹车 1: 刹车 0: 未刹车 |
reversing |
int |
倒车 1: 倒车 0: 未倒车 |
left |
int |
左转向 1: 转向 0: 未转向 |
right |
int |
右转向 1: 转向 0: 未转向 |
智能分析数据
参数名称 |
类型 |
描述 |
action_type |
int |
101 |
msgInfo |
object |
|
msgInfo 参数如下
参数名称 |
类型 |
描述 |
timestamp |
DateTime |
报警事件 |
channel |
int |
通道 |
level |
int |
报警级别 1表示最高危险报警,2表示次高危险报警,3表示第三高危险报警 |
event_type |
int |
事件类型 |
object_infos |
object[] |
目标信息 |
face_land_marks |
object[] |
人脸关键点 |
left_line_type |
int |
左车道线类型 |
right_line_type |
int |
右车道线类型 |
object_infos 参数如下
参数名称 |
类型 |
描述 |
detect_type |
int |
目标类型 |
left |
int |
目标位置左 |
top |
int |
目标位置上 |
right |
int |
目标位置右 |
bottom |
int |
目标位置下 |
distance |
float |
距离 [0, 250] |
speed |
float |
相对运动目标的相对速度 (m/s) |
ttc |
float |
ttc 时间 (s) |
target_post_x |
int |
落脚点横坐标 (BSD用) |
target_post_y |
int |
落脚点纵坐标 (BSD用) |
face_land_marks 参数如下
参数名称 |
类型 |
描述 |
x |
int |
x坐标 |
y |
int |
y坐标 |
event_type 定义如下
参数 |
描述 |
0 |
向左车道偏离报警 |
1 |
向右车道偏离报警 |
2 |
前车碰撞报警 |
3 |
行人碰撞报警 |
4 |
车距监测报警 |
5 |
人行横道检测报警 |
6 |
盲区报警 |
7 |
抽烟 |
8 |
打电话 |
9 |
打哈欠 |
10 |
未对准(偏离座位) |
11 |
摄像头遮挡 |
12 |
身份异常(不是原来的驾驶员) |
13 |
异常驾驶(检测不到脸) |
14 |
阻断型墨镜 |
15 |
嘴部遮挡 |
16 |
闭眼 |
17 |
分神驾驶(东张) |
18 |
分神驾驶(西望) |
19 |
分神驾驶(仰望) |
20 |
分神驾驶(低头) |
21 |
身份正常 |
22 |
未系安全带 |
23 |
手脱离方向盘 |
24 |
玩手机 |
25 |
超员 |
相关脚本
升级脚本
#!/bin/bash
# 参数个数 echo $#
if [ $# != 4 ]; then
echo "参数错误"
exit 1
fi
# 升级类型: 文件(file) or 服务(server)
echo "type: $1"
# 应用程序名称
echo "name: $2"
# 应用程序目录
echo "app_path: $3"
# 升级包url地址
echo "app_new_url: $4"
cd /opt/
echo "开始下载"
command=`wget -O "$2.zip" "$4" 2>&1`
result=`echo $command | grep "100%"`
if [[ "$result" == "" ]]; then
echo "升级失败(文件下载失败)"
exit 1
fi
echo "下载完成"
echo "开始解压"
unzip -o -d $2 "$2.zip"
echo "解压完成"
if [ $1 = "server" ]; then
systemctl stop $2.service
echo "停止服务"
else
pkill $2
echo "结束进程"
fi
echo "开始执行升级操作"
echo "$2 -> $3"
#如果文件夹不存在,创建文件夹
if [ ! -d $3 ]; then
mkdir $3
fi
chmod 777 $2/*
cp -r $2/* $3/
echo "清理"
rm -rf $2
rm -rf *.log
rm -rf *.zip
echo "升级结束"
if [ $1 = "server" ];
then
systemctl start $2.service
echo "启动服务"
fi
HxIVA 服务启动脚本
vim /etc/systemd/system/HxIVA.service
[Unit]
Description=HxIVA app server
[Service]
Type=simple
ExecStart=/opt/run.sh
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
#! /bin/bash
# 清空日志
echo "" > /var/log/syslog
echo "" > /var/log/kern.log
# 文件存在, 需要进行升级
if [ -f /opt/pretreatment.sh ]; then
sed -i 's/\r$//' /opt/pretreatment.sh
/opt/pretreatment.sh
rm /opt/pretreatment.sh
fi
HxIVA b 192.168.10.12 5001
HxServer 服务启动脚本
vim /etc/systemd/system/HxServer.service
[Unit]
Description=HxServer service
[Service]
WorkingDirectory=/root/app
ExecStart=dotnet /root/app/HxServer.dll
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
systemctl enable HxServer.service
systemctl start HxServer.service