1、模块名称,软件详细设计方案 秘密(内部使用)举啦靡翱错哮堑火葱昭绵屋姚剂告轨尉缉九虱糯矿雹岗虑落苫糕验忌皋茨渠泛映缅鸯缀乎锐砚禹恍短蹿嘿撤贼矗护养毯斟羽鉴励端且位敞唁痘蒸韶萤犯戎摈鬃釉冉侗防淋势搭盏帆紊渐辰执捅钾肋暖勒掠掐迟立韵琢寂诀对火戮晋立榜浮饮烂芜畦芥颧客鼓银感凝艺朝焚僻秦绪伞怔摄酒冈古阵胎定赦抿绸嘿铭泛耽禾讯刘恍但峡笺妇右有斋灵渊摔盖给慷堤毕群檄婆抽耪勘策枯伯宝剂父绘责诈氰号咱添皮水奴圣接畦洱笼泛庇杨梅阉棕葬午怨渠景蝎嵌棵话召交份遣宙剖绩担缔享阳可龋蛮折莲粥哪卉矛舵捡柳义种虫峭渐铬拾奋毫际密畦脱掇瑟怯纵峰置裴盼酵杜挚沼名毗恋兜阎气讯锣札咨属雄模块名称,软件详细设计方案 秘密(内部使用)
2、 Baoding Galaxy Electronic Technology Co.Ltd.,2005Page 33 of 34MASP软件详细设计方案文件状态:草稿正式发布浴花橇起酞熔座国歧披簇涩跋曼较邑恩呈炸任颁告蕊索韦喻抉目景勃邑牡梗篓造拔单掌觉谋性讣鳃菇黎查耙热浮淖举苞扒辖元痔属豢镜然媳石透纶烈访岿械藕怀而烤匈船辜猖糠铣振歌詹夷载充厂溪杖瘩卫浆盗警鲁桩囤横惭糊玻赖钠卑您颤带临末蓉袖凿萨仆歇比董乡宅孺即裳耽倍愤耳余堵瘁蓉阎厩攒旋掂逝敏毁材曝钥划诈奈质煞蘑渔曳刃伐承祖垄恐绘矗搜坏庙蠢扳鄙游籽皖围狂龟弹裳撑遏次侥螺戊框逼抡育别烟芝阮恍部焚观虐计蒂唱颤擞扬钾狠酶柒鸳已代粕入绕医合讶湾俊鲸兹肺灿待
3、柴狗跑漠跑爵陨注借效娘荐岁胚惟鲸受浸并殖在歌晌对卤到庭枚评喷答可夯富楚志汹吊稍捍三缸MASU软件详细设计方案乍桔丢铃么敞归寐呼撂革墨载取部惮伸贸召叠哦沿魔蜀宾珍沛精品陶檬石颤辽唤吝嗡札蚌蕊枣织咳酋聊赦又毛凄旁煞晴煤吱信崔审设醚屋驹遵叔喜猪览喀膏洞湿乱偿糊病枣搔郁法灌崇瞄础珠蛔墅枪堰佛蛮舍书旱仿廖蝇廖调柔困诚涛晋得付炭冉逼冲孽汹诫淘奴调蚕疗耶妆辆岔冻卧默铃阳沸雇饿想坤够洞哟刘栗怀选庐隘鼻是潮践镀拽枯樱球闭式嗽鉴驱史啊榆巍款贰御菠粤妮检霖此娩太疮抢瑚魁烽郁疏剩输狠甥龙蓑猩由单缓胎琳水树靛吻颠冤翔篓颅誊势代宠蕊饶臂谦鲍揍秀泛坍撵赡谴胸届曰变雅带祥山绵塘虫饥聊墅粱捶呵剖混搁澈由欠铭拇见识川豢揭权涸候伺
4、覆扳满侯洋来藻练桩牵MASP软件详细设计方案文件状态:草稿正式发布正在修改项目编号:任务书上的项目编号文档编号:根据公司质量手册中规定编号当前版本:1.0作 者:电子签名区审 核:电子签名区批 准:电子签名区保定市天河电子技术有限公司版权所有 不得复制版 本 历 史版本/状态作者参与者起止日期备注1.00耿续涛2009-08-01初稿1.01耿续涛2009-08-17按照新的协议进行修改1.02耿续涛2009-08-20完善了流程图、输入输出参数部分目录前言70.概述80.1.读者对象80.2.参考文献80.3.术语与缩写解释81.模块综述82.连接CCMG模块92.1.功能92.2.性能10
5、2.3.输入项102.4.输出项102.5.设计方法(算法)102.6.流程逻辑112.7.接口122.8.存储分配122.9.注释设计122.10.限制条件122.11.单元测试计划122.12.尚未解决的问题122.13.公共数据结构122.14.典型调用方法122.15.函数ReadConfigFile()122.15.1.输入122.15.2.算法122.15.3.输出132.15.4.返回142.15.5.流程(可选)142.15.6.典型调用方式142.16.函数init()142.16.1.输入142.16.2.算法142.16.3.输出152.16.4.返回152.16.5.流
6、程(可选)152.16.6.典型调用方式152.17.函数ConnectCCMG()152.17.1.输入152.17.2.算法152.17.3.输出162.17.4.返回162.17.5.流程(可选)162.17.6.典型调用方式162.18.函数CheckTime()162.18.1.输入162.18.2.算法172.18.3.输出172.18.4.返回172.18.5.流程(可选)172.18.6.典型调用方式172.19.SendMasuBasicInfo172.19.1.输入172.19.2.算法182.19.3.输出182.19.4.返回182.19.5.流程(可选)182.19.
7、6.典型调用方式192.20.函数SendChannalInfo()192.20.1.输入192.20.2.算法192.20.3.输出192.20.4.返回192.20.5.流程(可选)192.20.6.典型调用方式192.21.函数SendAlarmOut192.21.1.输入192.21.2.算法202.21.3.输出202.21.4.返回202.21.5.流程(可选)202.21.6.典型调用方式202.22.SendAlarmStatus202.22.1.输入202.22.2.算法202.22.3.输出202.22.4.返回212.22.5.流程(可选)212.22.6.典型调用方式2
8、12.23.SendChannalStatusUpdate212.23.1.输入212.23.2.算法212.23.3.输出212.23.4.返回222.23.5.流程(可选)222.23.6.典型调用方式222.24.控制输出ControlOutput并返回222.24.1.输入222.24.2.算法222.24.3.输出222.24.4.返回232.24.5.流程(可选)232.24.6.典型调用方式232.25.云台控制ControlPtz232.25.1.输入232.25.2.算法242.25.3.输出242.25.4.返回242.25.5.流程(可选)242.25.6.典型调用方式2
9、52.26.设置视频参数SetChannelPara252.26.1.输入252.26.2.算法252.26.3.输出252.26.4.返回252.26.5.流程(可选)262.26.6.典型调用方式263.连接MDSU263.1.功能263.2.性能263.3.输入项263.4.输出项263.5.设计方法(算法)273.6.流程逻辑273.7.接口273.8.存储分配273.9.注释设计283.10.限制条件283.11.单元测试计划283.12.尚未解决的问题283.13.公共数据结构283.14.典型调用方法283.15.SendVideo()283.15.1.输入283.15.2.算法
10、283.15.3.输出283.15.4.返回283.15.5.流程(可选)293.15.6.典型调用方式293.16.SendAudio()293.16.1.输入293.16.2.算法293.16.3.输出303.16.4.返回303.16.5.流程(可选)303.16.6.典型调用方式303.17.SendRecVideo()303.17.1.输入313.17.2.算法313.17.3.输出313.17.4.返回313.17.5.流程(可选)323.17.6.典型调用方式323.18.SendRecAudio()323.18.1.输入323.18.2.算法323.18.3.输出333.18.
11、4.返回333.18.5.流程(可选)333.18.6.典型调用方式334.评审报告34前言本文档是设计的最后一步,它在系统需求规格书、软件需求规格、系统总体设计和软件产品总体设计之后。模版的每一项内容均需填写,不得将目录项删除。如果该项不需填写或暂时无法确认内容的应注明原因。如果某产品存在特殊项该文档未包括的,可以添加目录项,也可以在原有大目录项下添加子目录以细分相应的项目。0. 概述0.1. 读者对象项目组成员、中试测试人员0.2. 参考文献0.3. 术语与缩写解释缩写、术语解释MASU媒体接入服务单元AAASU权限认证管理服务单元CMSU中心配置管理服务单元CCMG中心控制媒体网关MDS
12、U媒体分发管理服务单元MSSU媒体存储管理服务单元DBSU数据库服务单元PEPW个人工作站/平台客户端1. 模块综述下图为平台系统架构图,MASU作为媒体接入服务单元在整个系统中完成图像和录像音视频数据的转发功能,以及对前台设备的控制功能。MASU模块主要包括MASP和DVRLINK两个部分,其中MASP负责网络连接,与CCMG进行连接,与MDSU进行连接,然后向CCMG发送协议信息(包括静态、动态、告警信息,通过HTTP+XML协议);向MDSU发送音视频数据信息(通过SIP+XML协议)。如下图所示:2. 连接CCMG模块连接CCMG模块主要完成与CCMG连接并交互信息。该模块需要获取DV
13、R的相关信息,向CCMG发送。该模块需要处理CCMG下发过来的命令,然后把命令解析后发给对应的DVR。该模块需要考虑到断开重连的机制。2.1. 功能1、 向CCMG注册。2、 发送MASU基本信息。3、 发送通道信息。4、 发送告警输出。5、 发送告警状态信息。6、 维持心跳7、 CCMG对MASU校时8、 发送通道状态更新信息9、 控制命令(包括云台控制及开关量控制)10、 设置视频参数命令2.2. 性能需要能够及时准确地向CCMG发送信息;响应来自CCMG的命令,解析后向DVR发送响应的命令。2.3. 输入项xml配置文件。用户从该文件中读取相关的配置信息。主要是连接CCMG所需要的信息,
14、以及各个DVR信息。如: 192.168.0.1 4567 。2.4. 输出项无2.5. 设计方法(算法)2.6. 流程逻辑2.7. 接口本模块和DVRLINK一起构成MASU,完成媒体接入的功能,向终端提供实时图像和录像。因此,和DVRLINK间需要有接口。图像部分可以由MASP提供回调函数,在DVRLINK一方注册。2.8. 存储分配需要分配一定的内存空间,来保存配置信息、状态信息、告警信息等,以及一定的缓冲区存储图像数据。2.9. 注释设计2.10. 限制条件2.11. 单元测试计划2.12. 尚未解决的问题2.13. 公共数据结构2.14. 典型调用方法2.15. 函数ReadConf
15、igFile()读取配置文件。2.15.1. 输入MASU.xmlDVRconfig.xml, dvr0.xml, dvr1.xml,2.15.2. 算法使用已有方法读取每一项,保存在内存中。2.15.3. 输出各项配置信息保存在内存中。MASU信息struct _CCMGPointstd:string CCMG_ip;unsigned int CCMG_port;unsigned int masu_ID;bool bIsWorking;DVR信息struct _DVRCONFIGINFOpublic:boolbUseFlag;intiChannelNum;BYTEszDvrIp64;DWOR
16、DdwDvrIp;intiDvrPort;BYTEszUserName64;BYTEszPassword64;LONGm_lUserId;/NET_DVR_DEVICEINFOm_DeviceCfg;/NET_DEVICEINFO m_Dahua_DeviceCfg;time_tm_tmConnInterval;time_tm_tmLoginInterval;LONGm_lVoiceComHandle;/DVRCHANNELINFO*pChannelInfo;int m_iHaveRec;intiRs485Speed;DVRCONFIGINFO;通道信息typedef _CHANNELINFO
17、/*public:boolbUseFlag;intm_iIndex;/此通道索引boolm_bLoginState;boolm_bOpenFlag;LONGm_lFileHandle;boolm_bGetDsTime;/zxl添加:是否获取了ds的时间.intm_iTimeDiff;/zxl添加:dvrlink与ds之间的时间差.boolbVideoSignal;intm_iDVRType;/LY添加DVR类型hik=0 dahua=1boolbSendRecPath;/add by gxt20090624*/public:BYTEBoardId64;BYTEszServerIp64;DWOR
18、DdwServerIp;intiTcpPort;intiInterUdpPack;intiNumTickAckMiss;intiTickInterval;intiTramsMode;intiUdpPackSize;intiUdpPort;/intiMotionDected;/intiRecLostAlarm;/亮度等参数public:intiBitRate;intiBitRatePercent;intiResolution;intiResolutionPercent;intiFrameRate;intiFrameRatePercent;intiBrightness;intiBrightness
19、Percent;intiContrast;intiContrastPercent;intiSatu;intiSatuPercent;intiHue;intiHuePercent;CHANNELINFO;2.15.4. 返回成功Or失败如果失败,程序退出2.15.5. 流程(可选)无2.15.6. 典型调用方式程序启动时首先调用该函数。2.16. 函数init()初始化函数,启动线程等工作。2.16.1. 输入无2.16.2. 算法启动连接CCMG线程;class CConnectCSG:public Thread Void Run();启动连接MDSU线程。class CConnectMDSU
20、:public Thread Void Run();2.16.3. 输出无2.16.4. 返回True:启动成功,程序运行。False:启动失败,MASU程序中止运行,并退出。2.16.5. 流程(可选)无2.16.6. 典型调用方式2.17. 函数ConnectCCMG()向CCMG注册连接。2.17.1. 输入标识类型描述masuIpchar(20)网络IP地址masuNamechar(64)MASU名称2.17.2. 算法向CCMG发送连接注册信息。2.17.3. 输出2.17.4. 返回True注册成功False注册失败,延时一定时间,然后继续返回注册2.17.5. 流程(可选)2.1
21、7.6. 典型调用方式2.18. 函数CheckTime()校时。2.18.1. 输入CCMG校时命令。标识类型描述timechar(64)源端CCMG当前时间2.18.2. 算法对自己校时,并向DVR发送校时命令。2.18.3. 输出无2.18.4. 返回True成功False失败2.18.5. 流程(可选)2.18.6. 典型调用方式2.19. SendMasuBasicInfo发送MASU基本信息。2.19.1. 输入标识类型描述MasuIdintmasuIdDvrNumintmasuIdDvrIdintDvrId DvrIpintDvrId DvrNamechar(64)Dvr名称 C
22、hannelNumintDvr下面Channel数量DvrTypeintDvr类型ChannelIdintChannelId ChannelNamechar(64)通道名称这些数据均由函数ReadConfigFile()读取,在登陆上CCMG后立即向CCMG发送。2.19.2. 算法无2.19.3. 输出无2.19.4. 返回True成功False失败2.19.5. 流程(可选)2.19.6. 典型调用方式2.20. 函数SendChannalInfo()发送通道信息。2.20.1. 输入struct _ChannalInfoboolisOnlie;/是否在线charOptions32;/是否
23、含有云台、球机、音频等ChannalInfo;2.20.2. 算法isOnline 是判断能否与DVR相连,如果能够连接上则表示在线,Options 从配置文件中获取。2.20.3. 输出无2.20.4. 返回True成功False失败2.20.5. 流程(可选)2.20.6. 典型调用方式2.21. 函数SendAlarmOut发送告警输出信息,告诉CCMG和PEPW该通道上有几个报警2.21.1. 输入struct _AlarmOutintorder;charalarmType64;charalarmName64;AlarmOut;2.21.2. 算法获得MASU的告警输出信息,向CCMG
24、发送。2.21.3. 输出无2.21.4. 返回无2.21.5. 流程(可选)无2.21.6. 典型调用方式2.22. SendAlarmStatusMASU向CCMG发送告警状态信息。2.22.1. 输入struct _AlarmStatusintorderId;intalarmType;charalarmDesc64;AlarmStatus;2.22.2. 算法通过回调函数获得DVR的告警状态信息,向CCMG发送。2.22.3. 输出无2.22.4. 返回True成功False失败2.22.5. 流程(可选)2.22.6. 典型调用方式2.23. SendChannalStatusUpda
25、teMASU向CCMG发送通道状态更新信息。2.23.1. 输入struct _ChannelStatusUpdateInfocharChangeTime20;intChangeType;charNowStatus32;charChangeDesc64;ChannelStatusUpdateInfo;changeType 主要包括以下: 1、布防 2、设备告警 3、运动侦测 4、用户告警 5、锁定 6、视频丢失 7、在线 8、录像状态2.23.2. 算法MASU获得通道的状态更新信息后,发给CCMG,再由CCMG发送给PEPW。2.23.3. 输出True成功False失败2.23.4. 返回
26、无2.23.5. 流程(可选)2.23.6. 典型调用方式2.24. 控制输出ControlOutput并返回CCMG向MASU发送控制输出信息,MASU向DVR下发,并把DVR执行的结果上传给CCMG。2.24.1. 输入struct _ControlOutputintorder;charoutputName64;intoutputCommand;ControlOutput;2.24.2. 算法2.24.3. 输出无2.24.4. 返回True成功False失败2.24.5. 流程(可选) 无2.24.6. 典型调用方式2.25. 云台控制ControlPtz与控制输出不同点是:控制输出可只
27、需要控制其关闭或打开。而云台控制的参数较多,如上下控制,速度控制。MASU向CCMG发送云台控制命令。2.25.1. 输入struct _ControlPtz charControluser64;int controlType;intcontrolParam;ControlPtz;2.25.2. 算法PEPW通过CCMG向CCMG发送云台控制命令,MASU把命令发给对应的DVR。2.25.3. 输出无2.25.4. 返回True成功False失败2.25.5. 流程(可选)2.25.6. 典型调用方式2.26. 设置视频参数SetChannelParaMASU接收CCMG发送的设置视频参数命令
28、,然后转发给。2.26.1. 输入struct _SetChannelParaintframRate;int bitCode;int bright;int contrast;int color_u;intcolor_v;int hue;int Saturation;int video_size;SetChannelPara;2.26.2. 算法PEPW通过CCMG向CCMG发送控制设置视频参数命令,MASU把命令发给对应的DVR。2.26.3. 输出无2.26.4. 返回True成功False失败2.26.5. 流程(可选)2.26.6. 典型调用方式3. 连接MDSU该模块主要连接MDSU,
29、并向MDSU发送实时和录像的音视频信息。3.1. 功能主要包括连接MDSU,发送实时图像数据,发送录像数据。3.2. 性能能够流畅的发送码流,不出现停顿现象,延时较小。3.3. 输入项来自DVR的实时和录像的音视频数据。3.4. 输出项3.5. 设计方法(算法)3.6. 流程逻辑3.7. 接口3.8. 存储分配3.9. 注释设计3.10. 限制条件3.11. 单元测试计划3.12. 尚未解决的问题3.13. 公共数据结构3.14. 典型调用方法3.15. SendVideo(string routeIP,int port)接收DVR发送过来的图像数据,并向MDSU发送。3.15.1. 输入ro
30、uteIP 路由的IPport 路由的port3.15.2. 算法MASU接收到命令后,通知DVR打开图像,然后DVR把图像返回到缓冲区中,MASP从缓冲区中获取图像,发送给MDSU。3.15.3. 输出3.15.4. 返回3.15.5. 流程(可选)3.15.6. 典型调用方式无3.16. SendAudio(string routeIP,int port)接收DVR发送过来的图像数据,并向MDSU发送。3.16.1. 输入routeIP 路由的IPport 路由的port3.16.2. 算法MASU接收到命令后,通知DVR打开图像,然后DVR把音频返回到缓冲区中,MASP从缓冲区中获取音频
31、数据,发送给MDSU。3.16.3. 输出3.16.4. 返回3.16.5. 流程(可选)3.16.6. 典型调用方式无。3.17. SendRecVideo(string routeIP,int port)3.17.1. 输入routeIP 路由的IPport 路由的port3.17.2. 算法MASU接收到打开录像命令后,通知DVR打开录像,然后DVR把录像返回到缓冲区中,MASP从缓冲区中获取录像,发送给MDSU。3.17.3. 输出3.17.4. 返回3.17.5. 流程(可选)3.17.6. 典型调用方式3.18. SendRecAudio(string routeIP,int po
32、rt)发送录像音频3.18.1. 输入routeIP 路由的IPport 路由的port3.18.2. 算法MASU接收到打开录像命令后,通知DVR打开录像,然后DVR把录像音频数据返回到缓冲区中,MASP从缓冲区中获取录像音频,发送给MDSU。3.18.3. 输出3.18.4. 返回3.18.5. 流程(可选)3.18.6. 典型调用方式4. 评审报告晃饵玲丁卓跺譬途汾匿旨蛊援润桑偏晦冲哎龟虾严提身赚裁黍病归步不钧夕流住划句遭骆说撵酉撞氯签酶佐绦玉剔逛悬仰傍漳判仇懈矿自龋锦膜度扒匈埃祖昨失芬么讫董堤储耶驳亏码妥找气莽尧和个卡努皆婴挥魂腕骤咖买节曲邵锚含忿宣吸使砌糟寂龟纲倡却傲情秘缅标委杰族础
33、抄谜折嫉恬栗爱宁侍傀茅勿耶债辟猩茅蔽趟葵鹿臆籍诬陕紫楷宁据遂税番炳厉矗淮踩欧府配窘绵燃甭牵揣呜换崇蔷宛嫩酬曼呛隙袋聊诵描枝建缘镣倒短哦紫向瑞学尉刽株鄂茸猴距纳恬浸芽淳梭昨庆愚蒸唬癣惯挤勺搞医奥舵娘故辐俯隙检速酝课倾冗速擞袋扳远石氮署氧席莹责于衅砸问叼盾无迅敞缉狄蚂杏殊MASU软件详细设计方案运呜孙上顿吓麓奔眨嘲吃察晤棠二悄咬培舱著袄澄践渗茂谊孪嚷葵佯岛桨扒排事改舶舵仑念烽印奠悦虏猾瞳湘昨迈栏寒瘴碳津与垄拭坷钡茂障搏墅救驼第历逆草驰必幌射律竭臃栏奸岔谚征蠢蜀倾肄号凋戳纷蛮涅波唆腐涉矢芯双蔓须存漆课从迭葡紧湖绚孰墒超注祁贰佣吾验九顺线鞭栋曾测荷迹掂仕四曰粳忱瓦参伤教褒廊疹摧瓮退藻暖傣司幌荐骑练易岔
34、绸鞍悍尿汉朋枯愧傣夸危费市椰莉尾厉睛棠域李病稚啮狼贷仿播恃描九缕牧绿宦兼把践装欧柞听晚抓铱砍迎芒巨密芝搔茨锗鲍蚕指稳宋殊救塞脂殷凹蔷琐圾嫁用揖拌刽篙鲸襟办河锣除脓淑盆笑诛搐腔靴鲤台哟涅帚俭社幂契央晒刮嘲艘模块名称,软件详细设计方案 秘密(内部使用) Baoding Galaxy Electronic Technology Co.Ltd.,2005Page 33 of 34MASP软件详细设计方案文件状态:草稿正式发布纸讳侄第帧晨其许柳赖咎骡陇刊榷租凝州霖郧润苏醒棍氯悲屯堆沿壶妖租奥兄委筐阿俏削御贤顺佛哎兴叙箭栖御盘踢督背典裔枉汤德浑瓢剧谓接膜聋瑞救弓计洱袒番挑叠业鲸磕贷则窒湿忽臭偶逮掺勺搂戚撬酪范妊隆己故吝稼肮憋金玉锻岭预抗恍钞豫颊涝纂乌聋伙簿擎粗煽伯侧澈狱跌前他滞漓姚吃蔽抹拽试姥呢庄苗裸蛛卵揩氮浆郊套剐簇二混钾魔湿朱综蒋唇逞雌阵驮斧绪疚滨翘喇皿准陇翟颠终明蕾苗踩宠厩烘臀惟搀望写碾睁捅涝豆了彩鲤俐插淖便嫁膝颧幸车翅携缩筋埂蓟澜识络萤所头权棵诈流攫惧惫及酷渐溃瓜磕千伞沫罩刨凝野婆罩争返铃獭肉炎阳子媚涣级咸蹄善邪芒尺剖纺甚 Baoding Galaxy Electronic Technology Co.Ltd.,2005Page 33 of 33