《TS-BUS家居控制软件KNX通讯协议模块详细设计说明书V1.00.docx》由会员分享,可在线阅读,更多相关《TS-BUS家居控制软件KNX通讯协议模块详细设计说明书V1.00.docx(19页珍藏版)》请在优知文库上搜索。
1、TIANSUTS-BUS家居控制软件KNX通讯协议模块详细设计说明书评审记录对S-BUS家居控制软件KNX通讯协议模块详细设计说明书YL00的评审意见:上述问题修改验证后,由验证后,本文件即可发布。评审人员签字:问题修改验证结果:验证人签字:时间:年月一日变更日志编号版本修改内容修改人修改日期123451引言11.1 编写目的11.2 背景113定义11.4 参考资料12 系统设计总体说明22.1 系统结构23 模块详细设计33.1 外部接口模块33.1.1 功能描述33.1.2 性能要求33.1.3 接口定义33.1.4 类设计说明43.1.5 程序流程63.1.6 测试要点63.2 UDP
2、通讯模块63.2.1 功能描述63.2.2 性能要求63.2.3 接口定义63.2.4 类设计说明63.2.5 程序流程83.2.6 测试要点83.3 KNX核心处理模块83.3.1 功能描述83.3.2 性能要求93.3.3 接口定义93.3.4 类设计说明93.3.5 程序流程103.3.6 测试要点113.4 数据类型处理模块123.4.1 功能描述123.4.2 性能要求123.4.3 接口定义123.4.4 类设计说明123.4.5 程序流程123.4.6 测试要点123.5 异常类模块123.5.1 功能描述123.5.2 性能要求133.5.3 接口定义133.5.4 类设计说明
3、133.5.5 程序流程143.5.6 测试要点141引言1.l编写目的本文档是对TS-BUS家居控制软件通讯协议模块(以下称为TS-BUS通讯协议模块)的要求进行详细分析和讨论后得出的详细设计说明书,旨在明确软件对TS-BUS通讯协议模块的需求,并对模块的具体实施进行详细的计划、安排和设计。通过本详细设计说明书,可以了解到TS-BUS通讯协议模块的总体设计、各模块以及模块之间内部接口的详细设计。借助该文档,可指导TS-BUS通讯协议模块的开发人员开始软件的编码工作。本文档面向的读者是:TS-BUS家居控制软件项目开发负责人、评审人员。1.2 背景模块名称:TS-BUS家居控制软件通讯协议模块
4、根据TS-BUS家居控制软件(简称为TS-BUS软件)的开发需求,TS-BUS通讯协议模块主要用于实现TS-BUS软件与EIB/IP网关之间的通讯,数据的请求和接收处理,数据类型的转换等功能。该模块主要为TS-BUS的Ul模块提供操作接口,以满足Ul模块所需要实现的数据通讯和处理需求。该模块功能的实现,使用户能方便的对ElB总线上的设备进行相应的读、写等相关操作,实现总线设备的自动化控制,从而达到家居智能化控制的目的。1.3 定义下表列出本报告中专门术语的定义、英文缩写词的原词组和意义、项目组内达成一致意见的专用词汇,同时继承全部的先前过程中定义过的词汇。词汇名称词汇含义备注1.4 参考资料编
5、号资料名称说明1TS-BUS家居控制软件项目立项书2TS-BUS家居控制软件项目计划书3TS-BUS家居控制软件需求规格说明书4TS-BUS家居控制软件通讯协议模块概要设计说明书2系统设计总体说明2.1系统结构根据对TS-BUS通讯协议模块功能的分析,该模块划分为以下几个子功能模块,其类图如图21所示:1 .外部接口模块:主要包括向模块外部提供的接口,以及需要外部调用模块实现的回调方法。2 .UDP通讯模块:主要实现UDP报文收发逻辑处理。3 .KNX核心处理模块:主要实现KNX帧的处理,达到对EIB总线设备数据的读写操作。4 .数据类型处理模块:主要实现各种不同的KNX数据类型与字节数组之间
6、的相互转换。图2-1TS-BUS通讯协议模块类图3模块详细设计3.1 外部接口模块3.1.1 功能描述主要包括向模块外部提供的接口,以及需要外部调用模块实现的回调方法。该模块主要为Ul模块提供通讯接口服务,以致UI模块可以很方便的操作EIB总线设备。3.1.2 性能要求无。3.1.3 接口定义本模块定义的回调方法,分别完成本模块对逻辑组数据类型的请求、调用模块(即UI模块)逻辑组数据的读/写响应等,这些方法均由TS-BUS通讯协议模块的调用者一Ul模块来实现,它们分别是:typedefint(CALLBACK*GetDPT)(intnMainAddr,intnMidAddr,intnGrpAd
7、drtypedefvoid(CALLBACK*OnReadResponse)(GroupDatagrpData.intnStatus);typedefvoid(CALLBACK*OnWriteResponse)(intnMainAddr,intIiMidAddr,intnGrpAddr,intnResult);typedefvoid(CALLBACK*OnSearchResponse)(char*serverip,intservcrPort,intnStatus);typedefvoid(CALLBACK*OnDisconnect)();在TS-BUS通讯协议模块内部,为其调用者提供了以下接口
8、,分别是设置回调方法指针、初始化UDP参数、处理逻辑组数据的读/写请求等,分别是:voidSetCallBacks(GetDPT*pGetDPT,OnReadResponse*pReadResponse,OnWriteResponse*pWriteResponse,OnSearchRcsponse*pSearchRcsponse,OnDisconncct*pDisconnect);intUDPSocketInit(char*serverip,intserverPort);intReadGrpVal(intnMainAddr,intnMidAddr,intnGrpAddr);intWriteGr
9、pVal(GroupDatagrpData);UI模块与KNX协议模块接口的时序图如图3-1所示。3.1.4 类设计说明类名ICKNXKemel主要属性说明GetDPTvoid SetCallBacks(GetDPT *pGetDPT, OnReadResponse *pRcadResponse, OnWriteResponsepWriteResponse, OnSearchResponse *pSearchResponse, OnDisconnect *pDisconnect);设置回调函数指针int UDPSocketInit(char * serverip, int serverPort
10、);初始化 UDP socketint ReadGrpVal (int nMainAddr, int nMidAddr, int nGrpAddr);读逻辑组值int WriteGrpVal (GroupData grpData);写逻辑组值m_PGetDPT;/回调方法的指针(获取逻辑组数据类型)OnReadResponse*m_pReadResponse;/回调方法的指针(逻辑组数据读响应处理)OnWriteResponse*m_pWriteResponse;/回调方法的指针(逻辑组数据写响应处理)OnSearchResponse*m_pSearchResponse;/回调方法的指针(自发
11、现响应处理)OnDisconnect*m_pDisconnect;/回调方法的指针(断开连接的响应处理)主要方法说明建组播,自发现接收组播报文分析报文,结束组播初始化UDP模块KNX通道连接接收返回报文启动心跳监测发送读逻辑组UDP报文接收消息发送读逻辑组UDp报文接收消息接收到通道断开消息停止心跳监测UDPClose3.1.5 程序流程略。3.1.6 测试要点本模块为接口模块,其测试要点主要是检查与外部模块之间的接口方法是否能正常的相互调用。3.2 UDP通讯模块3.2.1 功能描述实现TS-BUS通讯协议模块与IP网关之间的UDP通讯,以UDP携带KNX帧的方式实现KNX请求与响应等相关功
12、能帧的收发。其实现的功能包括组播和无连接点对点的通讯,它们各自的SoCke3接收线程的建立,以及线程的结束和SOCkel的关闭。UDP重发考虑:考虑不同KNX服务需要不同的重发机制,为减小UDP模块与KNX核心处理模块的藕合度,重发机制主要由KNX核心处理模块考虑,UDP模块仅实现循环3次重发而不做额外的延时。3.2.2 性能要求无。3.2.3 接口定义UDP通讯模块与KNX核心处理模块之间的接口类如下所示:classCKNXUdpIface(public:virtualintExecRecvMsgAction(BYTE*pRecvBuf)=0;);KNX协议模块与UDP通讯模块接口的操作时序
13、如图3-2所示。3.2.4 类设计说明类名CUDPManager主要属性说明CKNXUdpIface*m_pKnxPtr;charm-serverlp32;intm_serverPort;主要方法说明intUDPInit(char*serverip,intserverPort);voidSelKnxPtr(CKNXUdpIface*pInterClassPtr);intUDPSend(BYTE*pSendBuf);intUDPRecv(BYTE*pRecvBuf);intUDPClose();/UDP通讯初始化设置接口类对象指针发送UDP报文接收UDP报文关闭UDP通讯建组播启动组播接收线程发
14、送UDP报文接收组播报文结束组播控制端点、数据端点SOCket初始化建立控制端点接收线程发送TUnnel连接请求控制端点接收报文建立数据端点接收线程发送UDP报文接收返回报文停止接收报文关闭SoCkeI3.2.5 程序流程UDP通讯模块主要包括UDP报文的收发逻辑,其中,发送报文功能由UDPSend()方法实现,由KNXKemel模块调用触发;接收报文功能由UDPReCV()方法实现,通讯初始化完成时启动一循环逻辑不断调用该方法接收UDP报文,接收到UDP报文后调用相应的CKNXUdPIfaCe接口类方法,做出相应的处理。1.UDP通讯模块是否能与KNX核心处理模块实现正确的相互调用;2 .发送正确格式的UDP报文,是否能正常发出并接收到来自IP网关的回复:3 .是否能被动接收到来自IP网关的主动UDP报文。3.3KNX核心处理模块3.3.1 功能描述主要功能是对K