HxNvr
Go to file
2024-04-17 15:31:43 +08:00
HxConfigWindow 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00
HxIVA 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00
HxNvr 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00
HxRtspBase 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00
HxServer 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00
HxVideoCaptor 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00
resources 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00
.gitignore 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00
ReadMe.md 阿联酋-雷达样车版本 2024-04-17 15:31:43 +08:00

通讯协议

协议结构

参数名称 类型 描述
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 服务启动脚本

  • HxIVA.service
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
  • run.sh
#! /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 服务启动脚本

  • HxServer.service
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