欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:17670215       资源大小:301.74KB        全文页数:15页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、应用软件设计和功能实现说明文档1 车载监控系统概述整套监控系统将包括车载设备、网络服务器、客户端三大组成部分。客户端通过服务器的中转与车载设备间接通信,以实现从车载设备接收监控信息和向车载设备发送控制指令等。所预计的主要功能将包括视频音频监控,酒精检测,传感器报警,语音对讲,远程云台控制等。车载设备通过3G无线数据模块无线接入网络,以实现车载移动监控。系统部署图 整个系统部署结构如图,其中:车载设备连接模拟摄像机,并通过3G数据模块拨号连接网络。实现视频音频采集,可以把实时音频视频发送至服务器。并且可以挂接硬盘存储设备,把采集的视频和音频存储至硬盘。存储的视频可通过网络点播,并可以通过模拟输出

    2、端口直接把存储的视频音频输出到电视机进行播放,播放时有图形操作界面。车载设备的通过带酒精度传感器的外接设备进行酒精检测。酒精检测后将检测数值传到服务器,并发送提醒短信到用户手机。在本地对酒精值进行分析和声音播报。车载设备的报警传感器安装在需要的位置,检测到非法入侵时,可通过3G模块以发送手机短信的方法通知用户。车载设备可从服务器接收音频数据并且进行播放。服务器可将车载设备的视频音频数据转发至客户端,可以把来自客户端的指令信息和音频数据转发至车载设备。客户端可接收视频音频数据并进行播放,可以控制车载设备的摄像机云台,可以通过话筒向车载设备讲话。 客户端与网络服务器逻辑分开,服务器可以同时连接多个

    3、车载设备和多个客户端。并把每个客户端与该客户的若干设备对应。根据实际需要,PC客户端也可以并入服务器系统。1.1 系统功能流程1.服务器监听连接请求,服务器分别通过针对双方的TCP控制端口监听来自监控前端和来自客户端的TCP连接。2.前端设备注册,当有监控前端连接到服务器后,监控前端会发送注册指令信息到服务器,指令信息中的数据区包含设备号信息。并连接到语音流转发TCP端口。服务器将该设备注册为在线设备。3.客户端登陆,当客户端连接到服务器后,客户端会发送指令信息到服务器,指令信息中的数据区包含用户名和密码。服务器需对登陆请求进行处理,发送应答信息,接受或者拒绝。若拒绝,应答指令中数据区包含错误

    4、信息,用户名密码错误或者设备被占用等。登陆成功后向服务器连接视音频流接收TCP端口,此端口校验成功后连接。并开启一个UDP端口监听来自该客户端的语音流。4.用户设备列表,用户成功登陆后,服务器需对该用户有权限访问的在线设备列表,并将列表发送至客户端。指令信息中的数据区中存放设备列表信息。5.用户指令转发,用户对某个前端发送控制指令时,将指令转发到对应的监控前端。6.视音频传输,当服务器接收到视频请求指令后,服务器开启TCP端口监听来自前端的连接请求。前端设备通过此TCP端口连接服务器,服务器接收到来自监控前端的音频、视频流时,通过视频音频流转发专用TCP端口,将数据转发至对应的客户端。7.用户

    5、指令处理,当从客户端对服务器发送指令时,服务器接收并处理。例如用户修改密码,数据区会包括新的密码,服务器需要进行数据库更新。8.语音对讲,当收到语音对讲指令时,服务器开启一个UDP端口监听来自客户端的数据流,并通过语音流转发专用TCP端口转发至对应的前端。9.断开连接,TCP连接断开后,注销设备,并通过该端口继续监听。1.2 数据流程图 灰色底纹字体表示的数据服务器不做处理,只转发数据。车载视频监控系统的数据流程图2 车载前端方案概述 车载设备配备视音频处理芯片,可以连接最多4路摄像机,可连接GPS设备和报警传感器等设备,在Linux系统上运行车载监控端的应用程序,实现各功能模块。通过3G无线

    6、数据模块联网,与服务器进行连接。并通过服务器把与客户端进行数据交互,包括音视频流的发送,指令消息的收发,音频数据的接收。车载设备在客户端请求任一路或多路实时视频音频时,将视频音频编码后进行封装,通过服务器转发给客户端;也可应客户端请求查找并调用本地存储的视频音频数据,发送至客户端。客户端可接收来自客户端的音频数据并解码播放。设备启动时或接受到客户端指令时,会进行酒精检测。车载设备系统架构图3 前端软件功能模块1.视频处理模块,实现多路实时视频数据采集、图像处理、基于H.264技术的编解码压缩与数据存储;可进行存储数据的查找和调用。可通过模拟视频输出端口对存储的视频进行播放。车载设备从摄像机采集

    7、视频音频数据,并将每一个摄像机获取的视频数据缩放为2种分辨率视频流,一路高清视频数据压缩后的数据保存在本地硬盘,另外一路较低分辨率的可压缩后通过网络传输到服务器。2.音频处理模块,实现多路实时音频数据采集,基于G.711-u技术的编解码压缩,编码后的数据进行本地存储,也可通过网络传输;存储数据的查找和调用。可通过模拟音频输出端口对存储的音频进行播放。3.网络通信模块,设备启动时通过3G数据模块使用ppp协议拨号接入网络,与网络服务器进行连接。把数据进行封装,通过服务器与客户端间接通信,进行数据交互。并可通过AT指令发送手机短信。4.网络指令处理模块,系统启动后采用TCP协议向服务器连接,建立T

    8、CP指令通道,通道建立后先向服务器发送注册信息。之后进行监听,从服务器接收转发自客户端的指令,并进行处理。5.云台控制模块,接受到云台控制指令后,进行处理。采用RS485通信接口通信控制云台,实现云台控制。6.酒精检测模块,在设备启动后或接到客户端的指令后,进行酒精检测。酒精检测后将检测数值传到服务器,并发送提醒短信到用户手机。并在本地对酒精值进行分析和声音播报。7.自动报警模块,红外传感器被触发后,系统可检测到并经由3G模块发送报警手机短信。8.语音对讲模块,可接收来自客户端的语音流,采用G.711-u算法解码并实现播放。5.软件结构与功能实现说明PC客户端功能概述应用软件采用多线程实现,X

    9、xx_tsk.c中包含每个独立线程。1.int xxx_tskCreate( CAPTURE_CreatePrm *prm) 创建线程结构,为线程分配内存。 OSA_cmemAlloc() 申请内存空间。 OSA_cmemAllocCached () 申请内存空间(缓存模式)。 OSA_cmemGetPhysAddr() 映射物理地址。2.int xxx_tskDelete()清除线程占用的内存。 OSA_cmemFree() 释放内存区。3.int xxx_tskRun()线程处理入口函数 Int xxx_tskMain()线程的主函数 OSA_msgGetPrm() 读取指令存储队列OSA

    10、_tskWaitMsg() 监听线程控制指令 OSA_tskAckOrFreeMsg() 清空指令存储区当前指令4.Int xxx_sendCmd()发送线程控制指令 OSA_mbxSendMsg() 发送指令到指令存储区5.int xxx_create(xxx_CreatePrm *prm)创建线程 OSA_tskCreate() 创建线程,运行处理主函数 OSA_mbxCreate() 创建线程指令存储队列6.int xxx_delete()删除线程 OSA_tskDelete() 删除线程 OSA_mbxDelete() 删除线程指令存储区视频采集视频处理的实现涉及3个线程。视频采集线程

    11、、视频编码线程和存储处理线程。图 4-1 视频处理模块流程图Capture_tsk.c中是视频采集线程的实现,包括视频数据采集和缩放。1.通过MCVIP_getBuf(),MCVIP_getBufInfo()两个函数获取经tvp5158芯片采集得到的yuv422图像数据。实现VIDIOC_DQBUF,出队列以取得已采集数据的帧缓冲,取得原始采集数据。2.再通过MCVIP_putBuf()实现VIDIOC_QBUF,将缓冲重新入队列尾,这样可以循环采集。3.CAPTURE_tskProcessFrame()中做的是视频图像的缩放。通过ENCODE_getEmptyBuf()申请视频编码缓冲队列中

    12、的空buffer,将输出buffer设置为编码压缩的输入区。ENCODE_putFullBuf()将存储有处理后数据的buffer入视频编码队列。4.支持2路输出缩放,可做双码流输出。5.CAPTURE_tskCalcReszClkDiv()传入参数。6.DRV_reszRun()进行缩放。缩放后的数据在ENCODE_getEmptyBuf()申请的buffer中等待压缩。视频压缩Encode_tsk.c中为视频压缩线程的实现。Encode_tsk.c中采集缩放后通过Encode_sendCmd()发送ENCODE_CMD_RUN指令,控制压缩函数的执行压缩多帧图像。1.设置压缩分辨率vidE

    13、ncCreatePrm.width = vidEncCreatePrm.height = vidEncCreatePrm.offsetH = vidEncCreatePrm.offsetV = 2.设置压缩比特率,即编码码率pChInfo-newBitrate =3.通过OSA_bufGetFull()和OSA_bufGetBufInfo()申请视频编码缓冲队列内的一个buffer出队列,作为编码器输入buffer。编码后OSA_bufPutEmpty()将缓冲区入编码缓冲队列。4.WRITER_getEmptyBuf()申请存储缓冲队列中的空buffer,将输出buffer设置为存储的输入区

    14、。WRITER_putFullBuf()将存储有处理后数据的buffer入存储队列。5.ALG_vidEncRun()进行压缩。压缩后的数据在WRITER_getEmptyBuf()申请的buffer中等待存储和网传。音频采集压缩图4-2 音频处理流程图音频采用G.711-方式编码。在Audio_tsk.c中为音频采集编码线程。1.gAUDIO_ctrl.pCreatePrm()为 MCVIP_CreatePrm()类型的结构体,其中包含了声音参数设置。2.AUDIO_Record()调用MCVIP_audioRecord()获取音频数据。3.AudioWRITER_getEmptyBuf()

    15、申请音频存储缓冲队列中的空buffer,将输出buffer设置为存储的输入区。AudioWRITER_putFullBuf()将存储有处理后数据的buffer入音频存储队列。4.AUDIO_audioEncode()压缩音频数据。编码后的数据在AudioWRITER _getEmptyBuf()申请的buffer中等待压缩。流媒体存储Writer_tsk.c中为视频和音频的存储线程的实现。Encode_tsk.c中编码结束后通过WRITER_sendCmd()发送WRITER_CMD_RUN和AUDWRITER_CMD_RUN指令控制流媒体存储线程中存储函数的执行。1.每一帧视频编码后WRIT

    16、ER_putFullBuf()调用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_bufGetBu

    17、fInfo()申请音频存储缓冲队列内的一个buffer出队列,存储后调用OSA_bufPutEmpty()将存储缓冲区入音频存储队列。3.WRITER_fileSaveRun()进行流媒体存储。在存储的同时,调用函数videostreamFunc()进行网络视频传输,audiostreamFunc()进行网络音频传输。网络通信图5-4 指令通信处理流程图Rawsockio.c中是网络通信的实现。LSOCK为指令通信通道。CSOCK为语音接收通道。DSOCK为流媒体发送通道。1.MainSocketConnect()中创建了3个TCP套接字。设置3个套接字的参数。connect_to_serve

    18、r()中实现了本地向服务器的连接。2.ReadSocketData()为建立连接后对数据接收处理的实现。LSOCK对接收的数据进行处理,通过*msgfunccmd函数指针调用指令处理函数。CSOCK调用AUDIO_tskTalkBack()对语音流数据进行循环接收,解码播放。DSOCK不做接受,建立后等待通过该通道发送流媒体数据。指令处理Msghandler.c中定义了网络指令与指令处理入口函数的映射表。通过*msgfunccmd调用指令对应的指令处理函数。Process.c中是各指令处理函数的实现。流媒体传输1.Vstream.c文件中videostreamFunc()为视频网络传输的实现。

    19、SystemInfo.StreamEnable为视频网络传输的标识开关。当接受到视频网络传输的指令并建立传输通道口,变开启视频传输。2.Astream.c文件中audiostreamFunc()为音频网络传输的实现。SystemInfo.aStreamEnable为音频网络传输的标识开关。当接受到音频网络传输的指令并建立传输通道口,便开启音频传输。3.数据包格式数据包头为3字节:typedef struct _TEST_PACK_HEAD unsigned char FrameType; /帧格式 视频I帧、P帧、音频帧 unsigned short PackLoadLength; /载荷数据

    20、长度TEST_PACK_HEAD; 载荷数据长度最大为1024字节。载荷数据超过1021字节的话进行帧切割操作。酒精检测图5-5 酒精检测流程图Wine_tsk.c中是酒精检测线程的实现。/dev/ttyS0是RS485设备文件,通过RS485接收读取酒精检测设备的数值。/dev/dm365_gpios是GPIO设备文件,用于读取IO口数值。1.set_speed()和set_parity()函数用于设置RS485参数。2.通过设置IO口值控制RS485读取,然后读取RS485接收的酒精参数。格式为“w+酒精值+饮酒程度”。3.接收数值后进行分析。然后通过AUDIO_audioDecode()

    21、和AudioPlayback()解码并播放声音提示文件。4.通过TCP指令通信通道向客户端发送测试报告指令,并调用sendMessage()发送短信报警。红外检测图5-6 红外检测流程图 Gpio_tsk.c中是网络通信的实现。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方式发送中文短信。


    注意事项

    本文(应用软件设计和功能实现说明文档.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开