电报前置系统设计与开发.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电报前置系统设计与开发

电报前置系统设计与开发   摘要:当电报在不同的系统之间流转时会出现一些问题,如前一级提供的报文无法直接满足下一级的使用,造成系统间无法协同工作。本文介绍如何使用C#开发一个电报前置系统来解决这一问题,为此类问题提供一种简单可行的解决方案。   关键词:C#;面向对象;报文处理   中图分类号:TP311 文献标识码:A 文章编号:1007-9599 (2012) 16-0000-02   1 引言   自动转报系统是一个功能强大的AFTN/SITA 电报和数据的自动交换通信系统,采用存储/ 转发方式,无须人工干预,完全由计算机处理,自动地将AFTN/SITA 电报及数据转至一个或多个目的地。民航的很多相关部门会通过报文传递一些重要信息。如管制部、气象部门、机场和航空公司。这些报文信息对相关部门的工作至关重要,相关部门的很多设备都会使用到这些报文。当报文在各部门不同系统之间流转时就会出现一些问题,如转报机提供的报文无法直接满足另一套系统使用,或是与另一套系统的需要不符,造成无法对报文进行引接。我们可以通过对转报系统或引接系统进行修改使之满足要求,但对现有系统进行修改有巨大的时间和费用开销,往往无法进行。通过一个第三方的前置系统做进行预处理不失为一个有效可行的方法,它具有费用低,可靠性好,可扩展性强,完成周期短等特点。本文就技术保障部网络室为机场引接报文时开发的一个前置系统进行具体介绍。   2 系统简介   系统运行于.net平台上,采用C#语言开发。对硬件要求软低,日常用PC机即可满足需求。根据民航工作的特点和相关从业人员的工作习惯,我们设计时本着简单易用、稳定可靠、易于维护、便于扩展的原则。并采用面向对象的设计思想,对软件进行模块化设计。系统由三个模块组成:(1)报文接收;报文通过串口方式接收,支持2号码和5号码两种码制。(2)报文处理;根据需要对报文进行预处理使之满足下一级系统的需求,这里主要完成的报文的筛选功能;(3)报文发送;将处理后的报文通过串口发送出去,支持2号码和5号码两种码制,并完成相关信息的统计。系统界面如图(1)所示,分三个工作区域,顶部为工作信息和控制按钮。左边为接收相关区域,上半部分为接收通讯参数设置区域,包括端口号、速率、码制、数据位、停止位、报头、报尾,下半部分为接收数据实时监控区。右边为发送相关区域,内容与左边对称。图(2)为过滤器界面,可以多选需要进行发送的电报类型。   3 系统实现   系统的实现分为三个部分:   (1)报文接收;报文接收通过三个级别的处理完成。第一级程序实时监控预先设置的数据接收串口,收到数据后,根据串口协议解析数据存放入接收第一级缓冲区,并通知第二级处理程序。   串口协议是一种字符协议,按位(bit)发送和接收字节,它包括波特率、数据位、停止位、奇偶校验位这几个重要参数。我们可以通过C#类库提供的SerialPort类对窜口进行访问,该类封装了串口通讯的常用方法和参数。现将下面用到的参数、方法和事件做简要介绍。PortName:获取或设置通信端口,包括但不限于所有可用的 COM 端口;BaudRate:获取或设置串行波特率;Parity:获取或设置奇偶校验检查协议;StopBits:获取或设置每个字节的标准停止位数;DataBit:获取或设置每个字节的标准数据位长度;BytesToRead:获取接收缓冲区中数据的字节数;BytesToWrite:获取发送缓冲区中数据的字节数;Encoding:获取或设置传输前后文本转换的字节编码;Handshake:获取或设置串行端口数据传输的握手协议;Close():该方法关闭端口连接,将 IsOpen 属性设置为False,并释放内部 Stream 对象;Open():该方法打开一个新的串行端口连接。Read():该方法从 SerialPort 输入缓冲区中读取数据;Write:该方法将数据写入串行端口输出缓冲区;DataReceived:注册该事件后,当SerialPort 接收到数据后会执行已注册的事件。   程序首先根据用户参数实列化缓冲区和_receiveSerialPort类,并注册 DataReceived事件,然后打开端口,开始数据监听。_receiveSerialPort类在接收到数据后调用先前注册的事件完成原始数据的接收,并把数据放入接收第一级缓冲区。   第二级处理程序接到通知后从第一级缓冲区读取数据,根据用户设置的码制进行解码,本软件支持2号码和5号码两种常用的串口通讯编码。2号码使用查表的方式进行解码,5号码使用C#类库提供的Encoding类直接解码,得到的数据放入接收第二级缓冲区,并通知第三级处理程序。   第三级程序接到通知后,根据用户设置的报头报尾信息对电报进行逐份提取,并将提取到的完整报文放

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档