




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于AISG2.0的ACSClient软件子系统的设计与实现摘要中山市通宇通讯设备有限公司(简称通宇公司)在AISG1.1规范的基础上开发了RET Controller天线控制系统客户端软件,Argus公司也在此规范的基础上开发了Argus Antenna Remote Control Program,但这两个软件目前都存在一些如控制设备单一、系统不够稳定、界面不够简洁、操作不够便捷等问题。因此通宇公司提出在AISG2.0规范的基础上开发一个全新的天线控制系统的需求。本文主要描述这个天线控制系统的客户端软件子系统(ACSClient,Antenna Control System Client)的设计与实现。ACSClient是一个上位机软件,通信协议遵循AISG2.0规范,通过在PC上运行本系统,用户可对遵循AISG2.0规范的天线设备进行远程控制与监控。ACSClient具有四大类功能,包括设备连接功能、公共控制功能、具体设备控制功能、报警控制功能。其中设备连接功能包括:扫描、赋地址、连接、断开连接。公共控制功能包括:复位软件、获取信息、读用户数据、写用户数据、软件下载、自检、报警预订。具体设备控制功能针对不同类型天线设备可进行诸如校准、读设备数据、写设备数据、设置倾角、获取倾角等控制。报警控制功能可对不同类型天线设备进行清除活动报警、获取报警状态控制。ACSClient界面直观,操作便捷,系统提示信息丰富,可根据天线当前状态引导用户进行下一步操作。ACSClient具有一定的通用性,支持遵循AISG2.0规范的所有天线设备,并可对挂接在总线上的单天线、多天线、TMA等多个不同的天线设备进行交替操作。关键词:AISG2.0规范;天线控制系统;软件工程;客户端软件IThe Design and Implementation of ACSClient Software Subsystem Based- on AISG2.0AbstractZhongshan Tongyu Communication Equipment Corporation has developed RET Controller, which is an antenna control system client software base on AISG1.1 standard, Argus has developed Argus Antenna Remote Control Program base on AISG1.1 standard, too. But they both have some shortages, for example, single device support, inadequate system stability, simple user interface, and complicated operation. So Tongyu has a new demand of developing a whole new antenna control system. This article mainly describes the design and implementation of this antenna control system client software subsystem(ACSClient,Antenna Control System Client). ACSClient is PC software, its communication protocol follow AISG2.0 standard. Running it on computer, user can control and Monitor the antennas which base on AISG2.0 standard. There are four functions in this system, which are device connect function, common control function, specific control function and alarm control function. Device connect function include scan, address assign, connect, disconnect. Common control function include reset software, get information, read user data, write user data, software download, self test, alarm subscribe. Specific control function for different types of antennas, it include a lot of function, such as calibrate, set device data, get device data, set tilt, get tilt, and so on. Alarm control function also for different types of antennas, it include clear active alarms, get alarm status. ACSClient has intuitive interface, convenient operation and abundant of system information, it can guide the user to the next step of operation based on the current state of the antenna device, ACSClient has universal, it supports all of the antenna device which base on AISG2.0 standard, and it can alternating operate different types of antennas, such as single antenna RET, muli antenna RET and TMA, which link to the Bus.Key Words: AISG2.0 standard, Antenna Control System, Software engineering, Client softwareII目 录1绪论11.1.背景11.2.ACSClient的目的、意义11.3.ACSClient的主要研究内容12系统概述22.1.设备连接状态模型22.1.1.无地址状态22.1.2.已赋地址状态32.1.3.已连接状态32.1.4.配置地址32.1.5.链路建立32.1.6.链路断开32.1.7.链路超时32.2.HDLC帧定义42.2.1.HDLC帧格式42.2.2.字段说明42.3.基本过程的概念42.3.1.ReadUserData基本过程格式52.4.I帧62.5.设计约束63需求分析73.1.功能需求73.2.用户界面需求103.3.质量需求104系统体系结构114.1.拓扑结构114.2.软件体系结构114.3.程序框架125系统设计145.1.系统总体设计145.2.设备连接模块设计155.3.公共控制模块设计155.4.单天线控制模块设计155.5.单天线报警模块设计165.6.通信接口模块设计166系统实现186.1.设备扫描186.1.1.XID帧186.1.2.算法196.1.3.流程图226.1.4.ScanDevice的XID帧格式236.2.耗时操作246.3.软件下载257总结27附录I 供应商代码列表28附录II 程序运行实例29参考文献32致谢33IV1 绪论1.1. 背景中山市通宇通讯设备有限公司是一家集移动通信天线之研发、生产、销售和服务于一体的高新技术企业。通宇公司曾在AISG1.1规范的基础上开发了RET Controller天线控制系统客户端软件,Argus公司也在此规范的基础上开发了Argus Antenna Remote Control Program, 但这两个软件目前都存在一些如控制设备单一、系统不够稳定、界面不够简洁、操作不够便捷等问题。因此在通宇公司新开发的基于AISG2.0的天线控制系统中,作为天线控制系统的子系统的客户端软件ACSClient,在设计与实现过程中就有更高的要求,ACSClient要在遵循新的AISG2.0规范的基础上针对前一个版本的两个软件的不足做出改善。1.2. ACSClient的目的、意义ACSClient通过与天线设备进行通信来实现天线设备的远程控制与监控。由于ACSClient遵循天线接口标准组织的AISG2.0规范。因此ACSClient具有一定的通用性,ACSClient可对所有遵循AISG2.0规范的天线设备进行远程控制与监控。虽然ACSClient用户对象是通讯技术领域的专业人员,但其直观的用户界面,及简单便捷的操作,可使非专业人员也能够快速上手。1.3. ACSClient的主要研究内容1、基于人机交互理论研究如何实现系统直观的界面,便捷的操作及丰富的操作反馈信息,根据天线设备当前状态引导用户进行下一步操作。2、通信过程中接收与发送数据时协议帧的封装与解析处理,帧校验处理,透明传输处理,错误帧丢弃处理。3、整个系统运行过程中主设备与从设备之间的维持连接通信处理。4、耗时操作中不同的数据发送线程之间的互斥发送的处理5、软件下载操作中的容错性处理及错误帧重发处理。6、高效扫描算法的设计及快速扫描天线设备的实现。342 系统概述ACSClient全称为天线控制系统客户端,它是天线控制系统的一个子系统,即天线控制系统的客户端,运行在PC机上。目前主要实现对天线设备的远程控制和监控。ACSClient目前主要考虑单天线RET控制部分的实现,多天线RET控制部分和TMA控制部分仅在通信接口部分的实现。2.1. 设备连接状态模型主设备(ACSClient)要与从设备(天线设备)进行设备连接之后,才能对从设备进行远程控制。从设备连接状态模型如图2-1所示。图2-1 设备连接状态模型图从设备连接状态主要包括:无地址状态、已赋地址状态、已连接状态,操作主要包括:配置地址、链路建立、链路断开、链路超时。简要说明如下。2.1.1. 无地址状态从设备在系统复位或系统初始化后进入无地址状态,此时从设备仅对扫描、配置地址操作起作用,但是对那些不需要回应的任何广播消息也起作用。这时候上位机和下位机之间以XID帧进行通信。主设备通过扫描操作所得的从设备仍为无地址状态,但这时已可对扫描所得的从设备进行配置地址操作。2.1.2. 已赋地址状态该状态下从设备仅对建立链路操作起作用,如果对该状态下的从设备进行设备扫描,从设备不对主设备做任何响应。2.1.3. 已连接状态该状态表明连接设备的整个过程已经完成,主设备已可对从设备进行任何远程控制。2.1.4. 配置地址在此通信过程中主设备发送XID帧,从设备回应XID帧,并且从设备回应的XID帧内容与其从主设备收到的XID帧内容相同。当地址配置成功以后,从设备进入已赋地址状态。2.1.5. 链路建立当从设备被赋予一个HDLC地址以后,主设备通过发送SNRM命令帧来初始化链路建立。从设备回应一个UA帧,然后从设备进入已连接状态。2.1.6. 链路断开当从设备处于已连接状态时,主设备通过发送DISC命令帧来进行链路断开。从设备回应一个UA帧,然后从设备又回到无地址状态。2.1.7. 链路超时当主设备超过三分钟以上未对从设备做任何操作(未向从设备发送RR帧),则从设备认为其与主设备已断开连接,此时从设备再次回到无地址状态。2.2. HDLC帧定义2.2.1. HDLC帧格式HDLC帧格式如表2-1所示。主要包括帧定界、HDLC地址、控制、数据域、CRC校验等字段。表2-1 HDLC帧格式Head Flag1字节ADR1字节CTRL1字节INFON字节CRC2字节Tail Flag1字节帧首部标记0x7E从设备地址控制位HDLC帧数据域CRC校验低字节位CRC校验高字节位帧尾部标记0x7E2.2.2. 字段说明上位机与下位机之间所有的通信消息以HDLC帧的形式进行传输的,HDLC帧的首尾标记字段用于标识整个HDLC帧,该帧以0x7E标志开始,同样以0x7E标志结束。HDLC帧中的地址字段用于指明要发往的目的设备地址,可取0到255之间任意值,其中0表示无地址,255表示广播地址。HDLC帧中的控制字段主要取值0x10、0x11、0x53、0x73、0x93、0xBF,当该字段值为0x10时,表示INFO域中封装的数据为I帧,为0xBF时表示INFO域中封装的数据为XID帧。当该字段值为0x11、0x53、0x73、0x93时,则HDLC帧INFO域为空,这几个值分别指明HDLC帧具体类型为RR帧、DISC帧、UA帧、SNRM帧。 HDLC帧的数据域字段用于封装主设备与从设备的通信消息,该字段的长度根据通信消息的不同而不同。HDLC帧中的CRC字段值采用16位循环校验算法获得,在发送过程中该字段值,计算的是从帧首部标记之后到INFO域为止的所有字节。在接收过程中该字段值,计算的是开始标记与结束标记之间(不包括开始标记和结束标记)的所有字节。2.3. 基本过程的概念主设备为控制从设备而与从设备之间进行的一次通信的过程称为基本过程,简称EP(Elementary Procedure)。一个基本过程的所有参数在经过通信接口后会先后进行两次封装,分别为I帧封装、HDLC帧封装。基本过程按照其作用于从设备类型的不同可分为四类:分别为公共基本过程、单天线基本过程、多天线基本过程以及TMAAP基本过程。其中公共基本过程包括Reset Software、Get Alarm Status、Get Information、Clear Active Alarms、Alarm Subscribe、Self Test、Read User Data、Write User Data、Download Application、Download End、Vendor specific procedure。单天线基本过程包括Calibrate、Send Configuration Data、Set Tilt、Get Tilt、Alarm Indication、Set Device Data、Get Device Data。多天线基本过程包括Antenna Calibrate、Antenna Set Tilt、Antenna Get Tilt、Antenna Set Device Data、Antenna Get Device Data、Antenna Alarm Indication、Antenna Clear Active Alarms、Antenna Get Alarm Status、Antenna Get Number Of Antennas、Antenna Send Configuration Data。TMAAP基本过程包括TMA Set Mode、TMA Get Mode、TMA Get Supported Functions、TMA Set Gain、TMA Get Gain、TMA Set Device Data、TMA Get Device Data、TMA Alarm Indication、TMA Clear Active Alarms、TMA Get Alarm Status、TMA Get Number of Subunits。按照从设备有无回应又可分为两类,第一类EP有回应消息,流程大致为:主设备发起从设备接收,从设备回应主设备接收。第二类EP没有回应消息,流程大致为:从设备发起主设备接收。EP的初始化消息和回应消息具有相同的基本格式(即I帧格式),在回应消息中的EP代码和其对应的初始化消息中的EP代码相同。有些EP的初始化消息为空,即I帧的数据域为空。如果主设备发送的初始化消息被执行成功,单天线类型设备的回应消息中会包含返回代码和附加信息(有些回应没有附加信息)。如果是多天线类型设备,则回应消息中包含天线号、返回代码和附加信息(有些回应没有附加信息)。如果执行失败,单天线类型设备的回应消息中会包含返回代码及一连串失败描述代码。多天线类型设备的回应消息中在返回代码之前会多出一个天线号字段。2.3.1. ReadUserData基本过程格式基本过程有很多种,由于篇幅有限这里只列举出公共基本过程的其中一种:ReadUserData基本过程。ReadUserData初始化消息的参数及格式如表2-2所示。表2-2 ReadUserData初始化消息参数及格式序号长度数据类型描述12字节无符号整型从设备内存偏移量21字节无符号整型要读取的字节长度ReadUserData回应消息的参数及格式如表2-3所示。表2-3 ReadUserData回应消息参数及格式序号长度数据类型描述11 字节返回代码返回代码 OK2该长度由ReadUserData的初始化消息的参数2所决定用户定义用户数据ReadUserData在回应消息中可能出现的返回代码如表2-4所示。表2-4 ReadUserData返回代码OKFAIL注释FormatErrorWorkingSoftwareMissingOutOfRange当提供的内存地址范围超出有效地址范围时,则从设备返回代码OutOfRange2.4. I帧按照EP格式封装成的帧即为I帧,I帧是在通信接口的第七层(抽象ALDsAbstract Layer Devices-设备功能接口层)进行封装的,当I帧从第七层传递到第二层(抽象HDLC帧处理接口层)后,第二层将其封装成HDLC帧,原先的I帧填充至HDLC帧的INFO域中。I帧格式如表2-5所示,HDLC帧与I帧的包含关系如表2-6所示。表2-5 I帧格式Procedure ID1字节Data Length2字节DataN字节基本过程ID数据域长度低字节位数据域长度高字节位数据域I帧主要包括基本过程ID、数据域长度、数据域等字段。表2-6 I帧与HDLC帧关系HDLC帧Head FlagADRCTRLINFOCRCTail FlagI帧Procedure IDData LengthData2.5. 设计约束1、 本系统的通信协议遵循AISG2.0规范;2、 ACSClient在Windows平台下实现;3、 本系统的基本数据类型使用C语言封装;4、 本系统的通信部分与界面控制部分分离,通信接口部分使用C+语言封装,界面控制部分采用C+语言与MFC实现;5、 设备扫描相关参数、供应商列表及当前串口号等配置数据采用配置文件实现(ini文件);6、 开发工具使用Microsoft Visual Studio .NET 2003。3 需求分析3.1. 功能需求ACSClent应具有设备连接、公共控制、具体设备控制、报警控制四大类别的功能。各类别中具体功能及描述如表3-1所示。表3-1 功能需求功能类别功能名称描述设备连接功能(DeviceConnect)扫描(Scan)根据用户给定的参数,扫描挂接的指定从设备或所有从设备,以获取从设备相关信息。赋地址(Address Assign)给通过扫描所得的指定天线设备赋地址。连接(Connect)只有与从设备建立连接之后才能对从设备进行远程控制。断开连接(Disconnect)与从设备断开连接,从设备又回到无地址状态。公共控制功能(CommonControl)标准控制(Standard)公共控制功能为单天线RET、多天线RET及TMA三种类型的从设备所共有的控制功能,它包括:复位软件(ResetSoftware)、获取信息(GetInformation)、读用户数据(ReadUserData)、写用户数据(WriteUserData)、软件下载(SoftwareDownload)、自检(SelfTest)、报警预订(AlarmSubscribe)等7个标准控制功能。供应商自定义控制(VendorSpecific)该控制功能仅在ACSClient的供应商版本中才有,在用户版中没有,提供给供应商用于天线出场时相关参数的设置及天线的测试,该部分控制功能可根据供应商往后的需求进行扩充。它包括:设置UniqueID(SetUniqueID)、读取UniqueID(GetUniqueID)、测试(Test)、电机测试(MotorTest)等4个控制功能。表3-1 功能需求(续表)功能类别功能名称描述具体设备控制功能(SpecificControl)单天线控制(SingleAntennaControl)单天线控制功能用于控制设备类型为单天线RET的从设备,它包括:设置设备数据(SetDeviceData)、读取设备数据(GetDeviceData)、校准(Calibrate)、发送配置数据(SendConfigurationData)、设置倾角(SetTilt)、读取倾角(GetTilt)等5个控制功能多天线控制(MultiAntennaControl)多天线控制功能用于控制设备类型为多天线RET的从设备,它包括:天线获取天线数(AntennaGetNumberOfAntennas)、天线设置设备数据(AntennaSetDeviceData)、天线读取设备数据(AntennaGetDeviceData)、天线校准(AntennaCalibrate)、天线发送配置数据(AntennaSendConfigurationData)、天线设置倾角(AntennaSetTilt)、天线读取倾角(AntennaGetTilt)等6个控制功能。目前多天线控制功能仅在通信接口部分实现,在用户控制界面部分中尚未实现。TMA控制(TMAControl)TMA控制功能用于控制设备类型为TMA的从设备,它包括:TMA获取子单元数(TMAGetNumberOfSubunits)、TMA设置模式(TMASetMode)、TMA获取模式(TMAGetMode)、TMA设置增益(TMASetGain)、TMA获取增益(TMAGetGain)、TMA获取支持的功能(TMAGetSupportedFunctions)、TMA设置设备数据(TMASetDeviceData)、TMA获取设备数据(TMAGetDeviceData)、TMA获取支持的非线性增益值(TMAGetSupportedNonLinearGainValues)等9个控制功能。目前TMA控制功能仅在通信接口部分实现,在用户控制界面部分中尚未实现。表3-1 功能需求(续表)功能类别功能名称描述报警控制功能(Alarm)单天线报警(SingleAntennaAlarm)单天线报警包括:清除活动报警(ClearActiveAlarms)、获取报警状态(GetAlarmStatus)两个基本通信过程多天线报警(MultiAntennaAlarm)多天线报警包括:天线清除活动报警(AntennaClearActiveAlarms)、天线获取报警状态(AntennaGetAlarmStatus)两个基本通信过程TMA报警(TMAAlarm)TMA报警包括:TMA清除活动警告(TMAClearActiveAlarms)、TMA获取警告状态(TMAGetAlarmStatus)两个基本通信过程3.2. 用户界面需求ACSClient用户界面应具有界面简洁、操作简单、反馈信息丰富等特点,用户界面需求如表3-2所示。表3-2 用户界面需求需求名称详细要求界面简洁系统界面简单明了,给用户一种一目了然的感觉操作简单系统中所有控制功能布局合理,分类明确,最主要的功能放在最显眼的地方,并且在用户做完一个操作后系统会适当自动引导用户进行下一步操作,所有操作在其前置操作还未完成时,系统会将该操作的当前状态设为禁止,确保用户对天线设备的操作能够有序地进行,减少非法操作的可能性。即使是非专业人员也能快速上手。信息反馈用户每做一个操作,系统都会给用户反馈详细的提示信息,如用户当前在做什么操作,操作成功与否,操作失败的原因等。3.3. 质量需求ACSClient应具有正确性、健壮性、可靠性、安全性、性能、效率、易用性、可扩展性等质量需求、如表3-3所示。表3-3 质量需求主要质量属性详细要求正确性对于用户在界面上做的各种操作,系统应准确地作用于天线设备。健壮性功能具有完备性,能满足供应商及用户的全部需求可靠性系统运行稳定,在与下位机通信的过程中不会造成信息的丢失安全性系统在控制天线设备时,不会对天线设备造成损坏。性能、效率对用户的各种操作,系统要在较短的时间内做出反应并完成操作,特别是设备扫描操作易用性即使是非专业人员,也可通过系统适当的引导,及充分的系统提示信息,在较短的时间内实现远程控制天线设备。可扩展性本系统采用模块化设计,用户界面控制部分与通信部分分离。用户自定义数据类型部分采用C语言封装,并可直接拿到手持控制器(ACSPortable)中使用。需要扩展功能时只需编写满足相应功能的模块于本软件接口对接即可,可扩展性较强4 系统体系结构4.1. 拓扑结构ACSClient通过USB to RS485转换器与ACSServer(同样是天线控制系统的子系统,是ACS的服务端,运行在RCU中)相连接,ACSClient的拓扑结构如图4-1所示,其中虚线表示上位机与下位机的分界线,上位机和下位机之间通过HDLC帧进行通信。采取的是半双工的通信方式。图4-1 系统拓扑结构图4.2. 软件体系结构ACSClient分为抽象传输接口层(类似于第一层:物理层)、抽象HDLC帧处理接口层(类似于第二层:传输层)、抽象ALDs设备功能接口层(类似于第七层:应用层)和应用层四层。实际上,整体就是规范规定的第七层应用层。抽象传输接口层和抽象HDLC帧处理接口层通过HDLC帧进行通信,抽象ALDs设备功能接口层和抽象HDLC帧处理接口层通过HDLC帧的INFO域进行通信,而应用层和抽象ALDs设备功能接口层通过EP(基本通信过程)的消息参数(message parameters)进行通信。应用层就是ACSClient的应用,它包括RETAP(单天线和多天线)和TMAAP的应用。上位机和下位机之间通过HDLC帧进行通信(主要是I帧)。另外,对抽象ALDs设备功能接口层和应用层,提供用户自定义数据类型接口,它用于封装协议用到的自定义的数据类型。ACSClient软件体系结构如图4-2下所示。图4-2 软件体系结构图4.3. 程序框架ACSClient采用单文档视图结构,整个系统的用户控制界面主要由菜单栏、工具条、动态标签页、设备列表视图、可停靠消息框五个部分构成。菜单栏按照系统(System)、设备连接(DeviceConnect)、公共控制(CommonControl)、具体设备控制(SpecificControl)、报警(Alarm)将整个系统的所有功能分成上述五大类,并且在实际操作过程中菜单栏中的菜单项的可选性,会根据用户在设备列表视图中所选择的设备类型的不同而有所不同。工具条中放入了本系统最常用的操作按钮。动态标签页为本系统用户控制界面最为核心的组成部分,它将整个系统的所有功能分类摆放于不同选项卡的同时,也直观地为用户提供了本系统整个操作流程。首先动态标签页会根据用户在设备列表视图中所选择的设备类型,出现仅针对该类型设备操作的选项卡,其次某些选项卡必须在做完指定操作之后才会出现,确保操作流程有序进行。设备列表视图用于列出通过扫描所得的所有设备,通过设备列表视图还可对挂接的多个设备交替做不同的操作。当列表视图中某个设备处于选中状态时,表明该设备为系统当前操作对象。可停靠消息框给用户在操作过程中提供了丰富的提示信息,可停靠消息框可随用户的意愿显示或隐藏,并可浮动于任何位置。ACSClient程序界面如下图4-3所示。图4-3 程序界面图5 系统设计5.1. 系统总体设计ACSClient界面与通信接口相分离,用户控制界面使用通信接口与天线设备进行通信。整个系统可分为设备连接、公共控制、单天线控制、单天线报警、通信接口五大模块。程序总体结构及每个类之间的关系如5-1所示。图5-1 类关系结构图5.2. 设备连接模块设计设备连接模块主要由CDeviceScanDlg和CDeviceConnectDlg两个类构成,他们分别对应设备扫描和设备连接两个对话框。在设备扫描对话框中可进行设备扫描操作。设备扫描对话框通过接收用户输入的厂家代码、序列号、扫描位数等信息,并调用通信接口的DeviceScan函数,来实现设备的扫描操作。在设备连接对话框中可进行赋地址、连接、断开连接、复位所有设备等操作。设备连接对话框通过调用通信接口的AddrAssignment函数来实现赋地址操作,调用通信接口的Connect函数来实现连接操作,调用Disconnect函数实现断开连接操作,调用ResetDevice函数实现复位所有设备操作。5.3. 公共控制模块设计公共控制模块主要由CCommonControlDlg、CCommonGetInformationDlg、CCommonSoftwareDownloadDlg、CCommonTestDlg、CCommonUniqueIDDlg、CCommonUserDataDlg六个类构成。CCommonControlDlg对应公共控制对话框,在该对话框中可进行读用户数据、写用户数据、获取信息、软件下载、自检、复位软件、报警预订、设置唯一性ID、获取唯一性ID、测试等十个操作,其中设置唯一性ID、获取唯一性ID、测试三个操作只有在厂家版本中才有。公共控制对话通过调用通信接口的ReadUserData函数进行读用户数据操作,并将结果显示在CCommonUserDataDlg类对应的对话框中。通过接收CCommonUserDataDlg类对应的对话框中用户输入的数据,并调用通信接口的WriteUserData函数来实现写用户数据操作。通过调用通信接口的GetInformation函数来进行获取信息操作,并将结果显示在CCommonGetInformationDlg类对应的对话框中。接收CCommonSoftwareDownloadDlg类对应的对话框中的下载数据,并调用通信接口的DownloadStart、DownloadApplication、DownloadEnd三个函数来实现软件下载。调用通信接口的SelfTest函数实现自检操作。调用通信接口的ResetSoftware函数实现复位软件操作。调用AlarmSubscribe函数实现预订报警操作。获取CCommonUniqueIDDlg类对应的对话框中用户输入的唯一性ID,并调用通信接口的VendorSpecificSetUniqueID函数来实现设置唯一性ID操作。调用VendorSpecificGetUniqueID函数来进行获取唯一性ID操作,并将结果显示在CCommonUniqueIDDlg类对应的对话框中。同过反复调用通信接口的SetTilt来实现天线来回转动以达到测试天线的目的。5.4. 单天线控制模块设计单天线控制模块主要由CSingleAntennaControlDlg、CSingleAntennaDeviceDataDlg、CSingleAntennaSendConfigData、CSingleAntennaTiltDlg四个类构成。CSingleAntennaControlDlg类对应单天线控制对话框,CSingleAntennaDeviceDataDlg类对应单天线设备数据对话框。在该对话框中可进行设置倾角、获取倾角、设置设备数据、获取设备数据、校准、发送配置数据等六个操作。该对话框获取CSingleAntennaTiltDlg类对应的对话框中用户输入的角度值,并调用通信接口的SetTilt函数来实现设置倾角功能。调用通信接口的GetTilt函数来进行获取倾角操作,并将结果显示在CSingleAntennaTiltDlg类对应的对话框中。调用通信接口的Calibrate函数来实现校准操作。获取CSingleAntennaSendConfigData类对应的对话框中用户提交的配置数据,并调用通信接口的SendConfigurationData函数来实现发送配置数据操作。设置设备数据和获取设备数据具体操作过程是在单天线设备数据对话框中实现的。单天线设备数据对话框获取用户输入的设备数据,并调用通信接口的SetDeviceData函数来实现设置设备数据操作。单天线设备数据对话框通过调用通信接口的GetDeviceData函数来进行获取设备数据操作,并将结果显示出来。5.5. 单天线报警模块设计单天线报警模块由CSingleAntennaAlarmDlg类构成。CSingleAntennaAlarmDlg类对应单天线报警对话框。在该对话框中可进行清除活动报警和获取报警状态两个操作。这两个操作都是该对话框通过调用通信接口的ClearActiveAlarms和GetAlarmStatus连个函数来实现的。5.6. 通信接口模块设计通信接口模块由CAISG20_Layer7_CommInterface、CAISG20_Layer2_CommInterface、CSerial三个类实现。其中CAISG20_Layer7_CommInterface对应抽象ALDs设备功能接口层,CAISG20_Layer2_CommInterface对应抽象HDLC帧处理接口层,CSerial对应抽象传输接口层。CAISG20_Layer7_CommInterface类对象在通行接口发送数据时,负责接收用户控制界面传递的参数并封装成各种帧格式(主要是I帧与XID帧),再将封装好的帧作为参数传递给CAISG20_Layer2_CommInterface类对象的SendFrame方法。在通行接口接收数据时,负责调用CAISG20_Layer2_CommInterface类对象的ReceiveFrame的方法,以获取HDLC帧的数据域部分,并将其解析后传到用户控制界面中去。CAISG20_Layer7_CommInterface类对象以全局变量的形式存在,是整个系统的通信接口,用户控制界面通过调用该对象的方法来与天线设备进行通信。CAISG20_Layer2_CommInterface类对象在通行接口发送数据时,负责接收CAISG20_Layer7_CommInterface类对象传递的各种帧格式数据,并将这些数据加上首尾标识、控制位及CRC校验封装成统一的HDLC帧,将封装好的HDLC帧作为参数传递给CSerial类对象的SendData函数。在通行接口接收数据时,负责调用CSerial类对象的ReadData函数,获取从串口传送过来的数据,通过CRC校验位检验接收数据的正确性,将数据域部分的数据传递给CAISG20_Layer7_CommInterface类对象。CAISG20_Layer2_CommInterface类对象在发送数据之前及接收数据之后还要做透明传输处理,将要发送的HDLC帧中首尾标志之间的内容中的0x7E变成0x7D 0x5E,0x7D变成0x7D 0x5D。将接收的HDLC帧中首位标志之间的内容中的0x7D 0x5E变成7E,0x7D 0x5D变成0x7D。CAISG20_Layer2_CommInterface类对象仅作为一个类成员变量存在于CAISG20_Layer7_CommInterface类对象之中。CSerial类对象主要实现串口通信,即通过串口收发数据。CSerial类对象是CAISG20_Layer2_CommInterface类对象的一个成员变量。6 系统实现系统实现包括的内容很多,如操作引导功能,各种协议帧的封装与解析,透明传输处理,帧检验处理,主从设备之间维持连接通信处理等,以下主要列出设备扫描、耗时操作和软件下载这几个关键部分的实现。6.1. 设备扫描主设备是通过广播XID帧与挂接在总线上的所有处于无地址状态的从设备进行通信的。在扫描的整个过程中主设备要不断地向所有从设备广播XID帧,以获得从设备的回应来确定从设备的存在与否。在扫描过程中主设备发送的扫描信息在(XID参数)在经过通信接口后也会先后进行两次封装,分别为XID帧的封装及HDLC帧的封装。6.1.1. XID帧XID帧是在通信接口的第七层(抽象ALDs设备功能接口层)进行封装的。当XID帧传到通信接口的第二层时,会被封装成HDLC帧,原先的XID帧内容填充至HDLC帧的INFO域。XID帧格式如表6-1所示。表6-1 XID帧格式FIGIGLPIPLPVPIPLPV其中FI表示格式标识,GI表示组标识,GL表示后面所有参数所占的长度,PI表示参数标识,PL表示参数长度,PV表示参数值,PI、PL、PV三个字段构成一个参数整体,一个XID帧可具有多个参数,参数的顺序是没有定义的,因为参数值是通过PI来标识的。XID参数都是从主设备发起的。XID帧与HDLC帧的包含关系如表6-2所示。表6-2 XID帧与HDLC帧关系HDLC帧Head FlagADRCTRLINFOCRCTail FlagXID帧FIGIGLPIPLPVPIPLPVXID帧是广播帧,在封装成为HDLC帧后不需指明目的设备地址(需给HDLC帧的ADR字段赋值0xFF),该帧是在从设备处于无地址状态时进行广播发送的,而I帧在封装成HDLC帧后必须指明要发送的目的设备地址,且I帧要在从设备已赋地址,并与主设备建立连接之后才可向从设备发送。6.1.2. 算法(1) 约定:从设备的唯一性ID(UniqueID)由两部分组成,分别为供应商代码(由两个英文字母构成)和序列号。根据目前供应商代码来看,供应商扫描特征集为A,Y共25个ASCII字符。由于序列号仅用阿拉伯数字构成,所以序列号扫描特征集为0,910个ASCII字符。设最多自右向左扫描从设备的序列号的长度为L,由于从设备唯一性ID的最大长度为19位,去掉供应商代码两个字符,则L取值为(2L17)。设序列号扫描特征集为FS 。设供应商扫描特征集为FV ,设供应商第一位扫描特征集为:FV1 。记供应商第二位扫描特征集为:FV2 。设存放唯一性ID和掩码集的堆栈为S。设扫描从设备的结果集为R,用于存放正确回应的从设备的唯一性ID、类型和供应商代码。设扫描从设备的冲突特征集为C,用于存放扫描L位后,从设备仍然有回应的唯一性ID和掩码。(2) 构造唯一性ID和掩码集的规则:对用户的输入分成2个部分:供应商代码的输入和序列号的输入。根据用户的输入(*表示任意多个字符,?表示任意一个字符) ,供应商代码的输入情形只可能是如下情形之一:供应商代码为任意值的情形NULL,*,?(其中NULL为什么都没输入);只提供供应商代码的第一位字符的情形X,X?;只提供供应商代码的第二位字符的情形?X;供应商代码的两个字符都提供的情形XY。即供应商代码的输入情形为:NULL,*,?, X,X?,?X,XY。由于序列号的输入任意组合的情况非常多,序列号的匹配规则是从最右开始的(即输入的序列号是从设备的序列号的最右子串),因此规定序列号的输入只能是如下情形之一:序列号为任意值情形NULL,*;只提供序列号的最右几位的情形*ABC,ABC。即序列号的输入情形为:NULL,*, *ABC,ABC。(3) 初始化唯一性ID和掩码集:设当前构造的唯一性ID长度为PL。如果供应商代码的输入为NULL,*,?,序列号的输入为NULL,*(即扫描总线上的所有从设备),则PL=0。首先构造具有1位供应商代码特征的唯一性ID和掩码集,即PL=1,唯一性ID为A,YFV1之一(表示交集,下同),掩码为0xFF。如果供应商代码的输入为X,X?(其中X表示A,Y之一,下同),序列号的输入为NULL,* (即扫描总线上的所有供应商代码以X开头的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级信息技术上册 第6课 键盘指法说课稿 辽师大版(三起)
- 智能制造背景下分体筷标准型筷柄的柔性化生产工艺革新挑战
- 2025年温州二年级试卷及答案
- 出血性疾病病人的护理教学设计-2025-2026学年中职专业课-内科护理-医学类-医药卫生大类001
- 无卤素环保材料导致线束阻燃等级降级的矛盾解决
- 2025年中国保鲜奶数据监测研究报告
- 新型金属有机框架负载硝基苯骈噻唑的协同催化机理
- 新型磷氮杂环材料开发中2-氨基嘧啶作为功能单元的构效关系突破
- 数据安全:四核处理器架构下的多路视频流加密防护机制
- 政策驱动下再生纤维配比调整对纸板力学特性的冲击评估
- 2025至2030中国专业图片存档和通信系统(PACS)行业项目调研及市场前景预测评估报告
- 妇产科临床路径培训课件
- 编辑出版校对试题及答案
- 2025一级造价工程师《案例分析(土建、安装)》学霸笔记
- 化工仪表基础知识培训课件
- 2025人教版八年级英语上册课文原文及翻译
- 2025年广东省茂名市《公共基础知识》事业单位招聘考试国考真题(含答案)
- 妇科常见肿瘤科普讲座
- 外科学神经外科
- 《生理学》 课件 -第三章 血液
- 生产提成管理办法
评论
0/150
提交评论