去年我们对EasyGBS等平台新增了告警录像的功能,当EasyGBS的底层数据收集上来后,在对原始数据解析后增加了告警计算后,将告警信息持久化,当监测有异常情况时,系统就会自动截取快照并记录时间。同时,当设备触发告警信息时,系统还支持录制一段对应时间的视频。
有用户反馈,在EasyGBS的告警录像列表中,在右侧边栏点击单个设备通道,查询不到该设备告警录像列表,如下所示:
获取所有的告警列表,显示正常:
查询单个设备返回空:
于是我们进一步排查,查看sql语句:
Sql : select t_alarm.* from t_alarm where 1=1 and t_alarm.device_id = 34020000001320000091 and t_alarm.channel_id = 34020000001320000001
查找原因后发现,其中channel_id、device_id两个参数需要用单引号,于是修改后的sql语句:
Sql : select t_alarm.* from t_alarm where 1=1 and t_alarm.device_id = '34020000001320000091' and t_alarm.channel_id = '3402
0000001320000001'
效果如下图:
代码逻辑:
此外,国标GB28181协议EasyGBS平台还拓展了告警上报功能,当前端设备包含报警布防功能时,用户可以定义设置好设备的报警信息,EasyGBS平台则可以获取到设备的报警信息,同时,还可以同步抓取到所有设备记录的报警状态,并将设备的报警级别、报警方式、报警类型、报警时间进行统一展示。
平台端也会根据设备的报警信息,进行视频截取,获取到报警时刻的视频截图,有利于监管人员及时了解监控现场的违规操作、区域入侵等状况。