Linux人工智能开发实例 课件 4.2 安防报警功能开发_第1页
Linux人工智能开发实例 课件 4.2 安防报警功能开发_第2页
Linux人工智能开发实例 课件 4.2 安防报警功能开发_第3页
Linux人工智能开发实例 课件 4.2 安防报警功能开发_第4页
Linux人工智能开发实例 课件 4.2 安防报警功能开发_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章网络视频监控Linux开发案例4.2安防报警功能开发网络视频监控Linux开发案例项目采用Web服务器BOA提供服务,最终软件界面使用WEB框架实现,根据功能需求设计为三个主要的功能界面,分别如下:1)视频监控页面:通过mjpg-streamer实时显示USB摄像头视频流。2)报警设置页面:显示当前传感器报警状态,报警参数设置,显示报警日志。3)报警显示页面:显示报警拍摄的照片。4.2.1软件界面框架分析网络视频监控Linux开发案例系统中有一项比较重要的功能配置信息保存功能,通过数据结构保存到文件,与文件到数据结构的形式实现。源码中的配置信息最终都保存到以下宏定义的文件中:4.2.2 配置信息保存功能设计#defineCONFIG_FILE"/home/zonesion/www/cfg.dat"函数名称函数说明intcreate_default_config(structst_sys*dev);初始化结构体的默认配置信息,并保存到文件intsave_dev(structst_sys*dev);把结构体的数据保存到文件中intload_dev(structst_sys*dev);从文件中读取数据到结构体中(Config文件源码详细请查看文档)网络视频监控Linux开发案例燃气传感器的引脚4接ADIN引脚,连接的是rk3399内部的adc1通道,如图所示。。4.2.3燃气传感器Linux驱动开发(具体命令详细请查看文档)ADC驱动已经被编译到缺省内核中,因此不需要使用insmod方式加载。linux系统已经自带有了ADC通用驱动文件,它是以平台驱动设备模型的架构来编写的,里面是一些比较通用稳定的代码,但是该通用驱动文件并不完善,有些函数是并不存在的。ADC驱动也可以使用混杂(misc)设备驱动来进行编写,ADC的驱动实现方法种类繁多,本节采用内核自带的ADC驱动。网络视频监控Linux开发案例1)设备树文件位于gw3399-linux/kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi2)重要结构体4.2.3燃气传感器Linux驱动开发(具体命令以及pobe源码详细请查看文档)

传感器Linux驱动分析staticconststructiio_inforockchip_saradc_iio_info={ .read_raw=rockchip_saradc_read_raw,//rockchip_saradc_read_raw函数用来读取adc数据 .driver_module=THIS_MODULE,};3)pobe函数probe函数实现了寄存器地址的设置,时钟频率,参考电压等设置网络视频监控Linux开发案例燃气传感器的ADC驱动测试通过sysfs方式进行操作,首先调用open函数打开按键设备文件"/sys/devices/platform/ff100000.saradc/iio:device0",接着在adcReadRaw中调用设备文件的read函数读取ADC接口原始电压数据,读取的数据在adcReadCh0Volage函数转换成有效气体检测数据。4.2.3燃气传感器Linux驱动开发(仅展示部分代码具体源码详细请查看文档)Linux应用程序接口intadcReadRaw(intch){ intret=-1; if(ch>=0&&ch<=5){ charbuf[128]; snprintf(buf,128,DEVDIR"/in_voltage%d_raw",ch); intfd=open(buf,O_RDONLY); if(fd>0){ ret=read(fd,buf,128); if(ret>0){ buf[ret]='\0'; ret=atoi(buf); } close(fd); }网络视频监控Linux开发案例报警主应用程序是系统项目在网关上运行的核心程序,程序运行流程与功能说明:1)初始化共享内存、命令管道2)load_dev(g_dev)加载配置文件数据3)启动mjpg-streamer服务4)读取TVOC传感器数据5)对传感器当前数值与设置的限值进行比较,超限报警拍照并记录6)从命名文件读取用户设置的报警限值7)系统结构体数据复制到共享内存8)数据保存到配置文件9)休眠1秒继续到4)步骤进行循环4.2.4报警管理功能设计

报警主应用程序设计函数名称功能说明void*set_web_shm(void);设置共享内存intinit_fifo(void);初始化命名管道Voidcopy_to_shm(structst_sys*shm_dev);

voiddo_snap(void);系统报警后的拍照功能处理(主应用程序源码详细请查看文档)网络视频监控Linux开发案例本项目中使用到共享内存与命名管道的进程间通信机制,共享内存用于主应用程序与Web应用程序间共享系统主结构体数据,命名管道用于Web应用程序向主应用程序传递用户设置的配置信息,通信结构图如图所示。Linux进程间通信设计4.2.4报警管理功能设计(源码详细请查看文档)网络视频监控Linux开发案例报警设置页面功能由两个程序构成,说明如下:1)alarm.cgi程序,显示传感数据,进行报警参数设置,显示报警记录。2)alarm_post.cgi程序,接收用户设置的报警上限值写入命名管道中。用户通过web页面的表单的get方法把设置的上限值传给后台的CGI程序处理,后台CGI程序通过getenv()读取环境变量获得数值写入命名管道。

报警设置页面设计4.2.4报警管理功能设计(报警设置页面程序源码以及alarm_post.c程序文件源码详细请查看文档)网络视频监控Linux开发案例系统主程序中会定时判断(30秒)当前采集的燃气传感器数据是否超过用户设置的上限值,如果超过会调用do_snap()函数进行处理。处理流程如下:1)执行脚本文件kill_mjpg.sh关闭系统中的mjpg_streamer后台服务进程2)删除照片保存目录下旧照片3)通过mjpg-streamer服务的output_file.so文件输出功能,把视频流保存为jpeg文件4)sleep(5)休眠5秒钟,让mjpg-streamer服务可以保存4张照片文件5)执行脚本文件kill_mjpg.sh关闭系统中的mjpg_streamer后台服务的照片输出进程6)重新启动mjpg-streamer服务的output_http.so网页视频流输出功能7)把照片保存目录下的文件重新命名,方便照片显示网页读取显示

触发拍照功能设计4.2.5报警拍照功能设计网络视频监控Linux开发案例报警图片显示页面是html程序,功能是读取指定目录下的指定文件名图片在页面上显示,如图所示。

报警图片显示页面设计(完整源码详细请查看文档)4.2.5报警拍照功能设计网络视频监控Linux开发案例1、硬件连接与测试本项目中使用到智能网关、高清摄像头。高清摄像头连接网关的USB3.0接口,硬件连接如图所示。4.2.6开发实践:视频安防系统网络视频监控Linux开发案例2、Boa编译与安装1)通过Moba软件复制boa源码到边缘计算网关2)解压源码,运行配置命令./configure(完整命令源码详细请查看文档)4.2.6开发实践:视频安防系统3)修订源码4)boa配置网络视频监控Linux开发案例3、安防管理功能测试在网关的当前用户目录创建www目录。(完整命令源码详细请查看文档)4.2.6开发实践:视频安防系统$sudomkdir/home/zionsion/www修改boa服务器的配置文件,设置web页面与CGI文件目录为/home/zoinsion/www。通过下述命令后台运行boa服务器。$boa&将“WebBoa”目录下的全部文件复制到边缘计算网关的/home/zoinsion/www目录下。通过运行安防应用的后台服务程序来启动mjpg-streamer服务:./main_test网络视频监控Linux开发案例点击页面上的“报警设置”导航按钮可以切换到报警器状态查看与设置界面,如图所示4.2.6开发实践:视频安防系统使用Ping命令测试开发主机(Windows系统或Linux系统)与网关的网络是否连通,如果网络连通在主机开启chrome浏览器,输入网关的IP与服务端口号(70:6080),如图所示:网络视频监控Linux开发案例点击页面上的“报警照片”导航按钮可以切换到系统触发报警后拍照的画面,如图所示4.2.6开发实践:视频安防系统界面上可以查看燃气报警器的当前状态,数值,报警触发的上限。测试时可以输入一个比当前读数小的上限值,进行报警测试,设置成功界面如图所示网络视频监控Linux开发案例4.2.7小结本节学习了网络视频安防系统的软件界面架构,学会分析实现了系统配置信息功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论