收藏 分销(赏)

应用软件设计和功能实现说明文档.docx

上传人:精*** 文档编号:10205939 上传时间:2025-04-27 格式:DOCX 页数:16 大小:199.44KB
下载 相关 举报
应用软件设计和功能实现说明文档.docx_第1页
第1页 / 共16页
应用软件设计和功能实现说明文档.docx_第2页
第2页 / 共16页
点击查看更多>>
资源描述
1车载监控系统概述 整套监控系统将包括车载设备、网络服务器、客户端三大组成部分。客户端通过服务器的中转与车载设备间接通信,以实现从车载设备接收监控信息和向车载设备发送控制指令等。所预计的主要功能将包括视频音频监控,酒精检测,传感器报警,语音对讲,远程云台控制等。车载设备通过3G无线数据模块无线接入网络,以实现车载移动监控。 车载处理设备 流媒体采集数据存储监测报警流媒体播 处理模块模块模块放模块 远程视频模块模块 监控模块语音对讲 远程控制 百 流媒体接 收模块 数据库管 理模块 指令转发 模块 语音流转 用户管理 模块 发模块 流媒体转指令转发 发模块模块 语音流接 收模块 uD 流媒体接 收模块 远程控制 模块 语音对讲 模块 流媒体播放模块 首频米集 处理模块 -』 系统部署图 整个系统部署结构如图,其中: 车载设备连接模拟摄像机,并通过3G数据模块拨号连接网络。实现视频音频采集,可以把实时音频视频发送至服务器。并且可以挂接硬盘存储设备,把采集的视频和音频存储至硬盘。存储的视频可通过网络点播,并可以通过模拟输出端直接把存储的视频音频输出到电视机进行播放,播放时有图形操作界面。 车载设备的通过带酒精度传感器的外接设备进行酒精检测。酒精检测后将检测数值传到服务器,并发送提醒短信到用户手机。在本地对酒精值进行分析和声音播报。 车载设备的报警传感器安装在需要的位置,检测到非法入侵时,可通过3G模块以发送手机短信的方法通知用户。 车载设备可从服务器接收音频数据并且进行播放。 服务器可将车载设备的视频音频数据转发至客户端,可以把来自客户端的指令信息和音频数据转发至车载设备。 客户端可接收视频音频数据并进行播放,可以控制车载设备的摄像机云台,可以通过话筒向车载设备讲话。 客户端与网络服务器逻辑分开,服务器可以同时连接多个车载设备和多个客户端。并把每个客户端与该客户的若干设备对应。根据实际需要,PC客户端也 可以并入服务器系统。 1.1系统功能流程 1 .服务器监听连接请求,服务器分别通过针对双方的TCP制端监听来自监控前端和来自 客户端的TCR1接。 2 .前端设备注册,当有监控前端连接到服务器后,监控前端会发送注册指令信息到服务器, 指令信息中的数据区包含设备号信息。并连接到语音流转发TCP端。服务器将该设备注册为在线设备。 3 .客户端登陆,当客户端连接到服务器后,客户端会发送指令信息到服务器,指令信息中 的数据区包含用户名和密码。服务器需对登陆请求进行处理,发送应答信息,接受或者 1・2数据流程图 灰色底纹字体表示的数据服务器不做处理,只转发数据。 监控前端 设备1D 发送注册信息 接收控制指令 接收语音流 输出 视频流 首频流 TCP TCP TCP 服务器 前端交互 监控前端注册 转发控制指令 转发语音流 接收视 频流首 频流 客户端交互 客户端 用户校验登陆 用户管理 发送设备列表 接收控制指令 TCP TCP 转发视频流首领流 接收,UDP 语音流 数据库 用户信息: 用户ID 登陆密码 所有权限 车载视频监控系统的数据流程图 登陆服务器 发送用户指令 接收设备列表 发送控制指令 接收视频流首 发送语音流 2车载前端方案概述 车载设备配备视音频处理芯片,可以连接最多4路摄像机,可连接GPS设备和报警传感器等设备,在Linux系统上运行车载监控端的应用程序,实现各功能模块。通过3G无线数据模块联网,与服务器进行连接。并通过服务器把与客户端进行数据交互,包括音视频流的发送,指令消息的收发,音频数据的接收。车载设备在客户端请求任一路或多路实时视频音频时,将视频音频编码后进行封装,通过服务器转发给客户端;也可应客户端请求查找并调用本地存储的视频音频数据,发送至客户端。客户端可接收来自客户端的音频数据并解码播放。设备启动时或接受到客 户端指令时,会进行车载监控前端系统架构 应用软件层 视频采集处理模块 菁频采集处理模块 数据存储模块 酒精检测。 洒精检测模块 网络通信模块 网络指令处理模块 :台控制模块 TCP协议 UDP协议 Linux内核 系统软 件层 BSP (包括硬件驱动程序) 硬件平台 硬件层 视频音频处理芯片传感器 模拟摄像机 3G数据传输设备 车载设备系统架构图 3前端软件功能模块 1 .视频处理模块,实现多路实时视频数据采集、图像处理、基于H.264技术的编解码压缩 与数据存储;可进行存储数据的查找和调用。可通过模拟视频输出端对存储的视频进行播放。车载设备从摄像机采集视频音频数据,并将每一个摄像机获取的视频数据缩放为2种分辨率视频流,一路高清视频数据压缩后的数据保存在本地硬盘,另外一路较低分辨率的可压缩后通过网络传输到服务器。 2 .音频处理模块,实现多路实时音频数据采集,基于G.711-U技术的编解码压缩,编码后 的数据进行本地存储,也可通过网络传输;存储数据的查找和调用。可通过模拟音频输出端对存储的音频进行播放。 3 .网络通信模块,设备启动时通过3G数据模块使用ppp协议拨号接入网络,与网络服务 器进行连接。把数据进行封装,通过服务器与客户端间接通信,进行数据交互。并可通过AT指令发送手机短信。 4 .网络指令处理模块,系统启动后采用TCP协议向服务器连接,建立TCP指令通道,通道 建立后先向服务器发送注册信息。之后进行监听,从服务器接收转发自客户端的指令,并进行处理。 5 .云台控制模块,接受到云台控制指令后,进行处理。采用RS485通信接通信控制云台, 实现云台控制。 6 .酒精检测模块,在设备启动后或接到客户端的指令后,进行酒精检测。酒精检测后将检 测数值传到服务器,并发送提醒短信到用户手机。并在本地对酒精值进行分析和声音播报。 7・自动报警模块,红外传感器被触发后,系统可检测到并经由3G模块发送报警手机短信。 8 .语音对讲模块,可接收来自客户端的语音流,采用G.711-U算法解码并实现 播放。 4.软件结构与功能实现说明 PC客户端功能概述 应用软件采用多线程实现,Xxx_tsk.中包含每个独立线程 1. intxxx_tskCreate(CAPTURE_CreatePrm*prm) 创建线程结构,为线程分配内存。 OSA_cmemAlloc()申请内存空间。 OSA_cmemAllocCached()申请内存空间(缓存模式)。 OSA_cmemGetPhysAddr()映射物理地址。 2. intxxx_tskDelete() 消除线程占用的内存。 OSA_cmemFree()释放内存区。 3. intxxx_tskRun() 线程处理入函数 Intxxx_tskMain() 线程的主函数 OSA_msgGetPrm()读取指令存储队列 OSA_tskWaitMsg()监听线程控制指令 OSA_tskAckOrFreeMsg(清空指令存储区当前指令 4. Intxxx_sendCmd() 发送线程控制指令 OSA_mbxSendMsg()发送指令到指令存储区 5. intxxx_create(xxx_CreatePrm*prm) 创建线程 OSA_tskCreate创建线程,运行处理主函数 OSA_mbxCreate()创建线程指令存储队列 6. intxxx_delete() 删除线程 OSA_tskDelete 删除线程 OSA.mbxDelete ()删除线程指令存储区 视频采集 编码线轻孰• 、 行 将队列头部的N >帧传给编码器 进行编矶 图像数据入队 歹u 编码后的图"像 数据队列 ..打数器数住• •是否为N 向处理线程发 送消息 视频处理的实现涉及3个线程。视频采集线程、视频编码线程和存储处理线程 图4T视频处理模块流程图 Capture-tsk. 是视频采集线程的实现,包括视频数据采集和缩放。 1 .通过视频采集获得tBuf (),MCVIP_getBufInfW0h函数获取经tvp5158芯片采集得到的yuv422 T 一帧图像 图像数据。实现VIDIOC-DQBUF,出队列以取得已采集数据的帧缓冲,取得原始采集数据。 2 .再通过MCVIP.putBuf 采集的^像IDIOC-QBUF ,将缓冲重新入队列J尾,这样可以循环采集。 *数据队列 3 . CAPTURE-tskProcessFram^做的是视频图像的缩放。通过 ENCODE_getEmptyBuf ()申请视 对队列头部的 一帧数据进行 存储等处理 频编码缓冲队列中的空buffe<输出buffer^置为编码压缩的输入区。 '计数票数值+1编码后的图像 ENCODE_putFullBuf爵存储有处理后数据入队列buffer^视频编码队列。 4 .支持2路输出缩放,可做双码流输出。 5 . CAPTURE_tskCalcReszClkDi#(k参数。 6 . DRV.reszRun 行缩放。缩放后的数据在ENCODE.getEmptyBuf ()申请的buffer中等待压 计数器清零,并向编码线程 发送消息 缩。 视频压缩 Encode_tsk.中为视频压缩线程的实现。Encode_tsk.中采集缩放后通过 Encode_sendCmd(发送ENCODE_CMD_RUN指令,控制压缩函数的执行压缩多帧图像。 1 .设置压缩分辨率 vidEncCreatePrm,width= vidEncCreatePrm,height= vidEncCreatePrm,offsetH= vidEncCreatePrm,offsetV= 2 .设置压缩比特率,即编码码率 pChInfo->newBitrate= 3 .通过OSA_bufGetFull和OSA_bufGetBufInfo申请视频编码缓冲队列内的一个buffer出队 列,作为编码器输入buffer编码后OSA_bufPutEmpty (将缓冲区入编码缓冲队列。 4・WRITER_getEmptyBuf (申请存储缓冲队列中的空buffer将输出buffer设置为存储的输入区。WRITER_putFullBuf将存储有处理后数据的buffer^存储队列。 5.ALG_vidEncRun进行压缩。压缩后的数据在WRITER_getEmptyBuf()申请的 buffer中等待存储和网传。 音频采集压缩 ftW术集编 线程执© 编码后的图 像数据队列 对队列头部的 一帔数据进行 存储等处理 存储绶程快• 、 行 r 等待消息 接收到消息 图4-2音频处理流程图 音频采用G. 711昉式编码。在Audio_tsk.中为音频采集编码线程。 1. gAUDIO.ctrl. pCreatePrnpO MCVIP_CreatePrm()类型的结构体,其中包含了声音参数设置。 2. AUDIO_Record ()调用 MCVIP_audioRecord (获取音频数据。 3. Aud 1 oWR I TER _ g e t Emp t y Buf (申请音频存储缓冲队列中的空buffed输出buffer^置为存储的输入区。AudioWRITER-putFullBuf#存储有处理后数据的buffer^音频存储队列。 4. AUDIO_audioEncode (M缩音频数据。编码后的数据在 AudioWRITER-getEmptyBuf 请的buff er中等待压缩。 流媒体存储 Writer_tsk.中为视频和音频的存储线程的实现。Encode.tsk.膺1编码结束后通过 WRITER,sendCmd ()发送 WRITER_CMD_RUN 和 AUDWRITER_CMD_RUN指令控制流媒体存储线程中存储函数的执行。 1, 每一帧视频编码后WRITER_putFul旧uf (调用WRITER_sendCmd()发送指令 WRITER_CMD_RUN 到指令队列。WRITER_tskRun (中通过 OSA_bufGetFull 和 OSA_bufGetBufInfo申请视频存储缓冲队列内的一个buffer出队列,存储后调用OSA_bufPutEmpty()将存储缓冲区入视频存储队歹 2, 每一帧视频编码后 AudioWRITER_putFullBuf调用 WRITER_sendCmd()发送指令 AUDWRITER_CMD_RUN至时旨令队歹上 AudWRITER_tskRun()中通过 OSA_bufGetFull和 OSA_bufGetBufInfo申请音频存储缓冲队列内的一个buffer出队列,存储后调用OSA_bufPutEmpty()将存储缓冲区入音频存储队列。 3. WRITER_fileSaveRun进)行流媒体存储。在存储的同时,调用函数videostreamFun(进行网 络视频传输,audiostreamFun(进行网络音频传输。 网络通信 澎程执行】 涕菖通唐冰 一、、程执行.. 向服务器指定 端连接 4 X.器 * .宗通诲. 向服务器发送 注册信息 侍指令 指 链接异常断开 阻塞接收服务 器的指令 指令处理 接到如今 * 向服务器指定 端连接. “逐接到服湾、 、器, 是 .I 音视频处理线程 通过此socket发 送数据 接.令 向服务器指定 * 接收音频数据f 并解码播放 3C^冏 图5-4指令通信处理流程图 Rawsockio.呼是网络通信的实现oLSOCK为指令通信通道oCS0CK为语音接收通道oDS0CK为流媒体发送通道。 1. MainSocketConnect 创建了 3个TCP套接字。设置3个套接字的参数。 connect_to_ served实现了本地向服务器的连接。 2. ReadSocketData^/建立连接后对数据接收处理的实现。LS0CK对接收的数据进行处理, 通过*msgfunc[cmd]函数指针调用指令处理函数。CS0CK调用AUDIO,tskTalkBack^语音 流数据进行循环接收,解码播放。DS0CK不做 接受,建立后等待通过该通道发送流媒体数据。 指令处理 Msghandler, c中定义了网络指令与指令处理入函数的映射表。通过*msgfunc [cmd]调用 指令对应的指令处理函数。Process.由是各指令处理函数的实现。 流媒体传输 1. Vstream.cX件中 videostreamFunc为视频网络传输的实现。SystemInfo,StreamEnab为视频网络传输的标识开关。当接受到视频网络传输的指令并建立传输通道,变开启视频传输。 2. Astream.cX件中 audiostreamFunc 为音频网络传输的实现。SystemInfo,aStreamEnableA音频网络传输的标识开关。当接受到音频网络传输的指令并建立传输通道,便开启音频传输。 3. 数据包格式 数据包头为3字节: typedefstruct_TEST_PACK_HEAD ( unsignedcharFrameType〃帧格式视频I帧、P帧、音频帧unsignedshortPackLoadLength载荷数据长度 }TEST_PACK_HEAD; 载荷数据长度最大为1024字节。载荷数据超过1021字节的话进行帧切割操 酒精检测 酒精检测线 '程执行k1 Lsock 务器发送报告 消息 工1 EI r-Arn 短信报告 <等待指令:1 图5-5酒精检测流程图 Wine_tsk.c中是酒精检测线程的实现。"/dev/ttyS建RS485设备文件,通过RS485接收读取酒精检测设备的数值。n/dev/dm365_gpios是GPIO设备文件,用于读取10 数值。 1 . set_speed 0 set_parit商数用于设置 RS485 参数。 2 .通过设置10 值控制RS485读取,然后读取RS485接收的酒精参数。格式为®WB精值+ 饮酒程度”。 3 .接收数值后进行分析。然后通过AUDIO_audioDecode ()和AudioPlayback解码并播放声音 提示文件。 4 .通过TCP指令通信通道向客户端发送测试报告指令,并调用sendMessageO 发送短信报警 红外检测 红外检测4 -彷感器触发 通过Lsock同服 务器发送报告|I 消息 :收到拾字 数值分析 语音播报 短信报告 图5-6红外检测流程图 Gpio_tsk.中是网络通信的实现。 1 系统运行后线程开始执行,GPIO设备 fdser=open("/dev/dm365_gpios",O_RDWR) 2 进行循环读取IO 数据 count=read(fd1,buf,6读取 IO 数据 接收数值后进行分析。然后可通过AUDIO_audioDecode()和 AudioPlayback解码并播放声 音提示文件。 通过TCP指令通信通道向客户端发送报警指令,并调用sendMessage设送短信报警。 3 短信发送通过3G网卡进行 fd=open("/dev/ttyUSB2",O_RDWR|O_NOCTTY);/打开 3G 数据设备 通过AT指令发送短信,使用pdu方式发送中文短信。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服