VB通信中数据处理的三层结构应用
在数据采集监视系统中,数据如何发送、接收、处理和应用是一个系统的关键部分。在系统实施过程中,由于通信方式、通信协议、系统功能的变化,如何能快速简便进行系统实施,又能在需求发生变化时有更强的适用性,是一个产品能否快速应用的关键。本文总结自己在设计方面的经验,阐述了VB通信中数据处理方式的三层结构模式。
系统设计为通信层、数据处理层、应用层。而每一层使用下层提供的服务,并向其上一层提供服务。三层结构分别对应系统通信方式、通信协议、系统功能,当需求发生变化时只用更改对应的层次,而其他的层次则不用,或者只用进行很少的改变。
通信层提供建立连接、接收、发送、误码重发、错误处理等功能,保证通信的双方的数据是可以信任的,正确的。对应OSI模型的表示层以及下层。
数据处理层提供格式化的表示和转换数据服务,对数据进行解析。对应OSI模型的表示层。
应用层提供网络与用户应用软件之间的接口服务,应用数据处理层的解析出来的数据进行应用,并且和用户界面进行交流。对应OSI模型的应用层。
下面分别就三层的实现进行说明
通信层:
通信中主要应用VB中提供的Winsock、MSComm控件进行通信发送和接收,这两个控件封装了通信中的底层处理,方便易用。
在以太网、ADSL等方面应用Winsock控件,进行连接,数据发送、接收。并进行数据校验,错误重发的处理。当操作失败时有相应的错误提示。
在处理串口通信时应用MSComm控件,主要有端口的打开、关闭,数据发送、接收功能。并进行数据校验,错误重发的处理。当操作失败时有相应的错误提示。
对应的数据为两个相应的二进制数组和部分的状态量。有一个接收缓冲区和一个发送缓冲区。缓冲区内为本次通信的发送和接收的内容。而且有两个量标识发送和接收的长度。
属性值有连接超时时间,发送超时时间,接收超时时间。
当前状态有连接,发送,接收,停止。
对上层提供的服务有出错信息,缓冲区数据,得到当前的状态,停止当前的操作。
数据处理层:
应用通信层的提供的服务进行处理。
根据相关的通信协议对格式化接收缓冲区、发送缓冲区。根据结构和类填充发送缓冲区;根据接收缓冲区填充相应的结构和类;根据接收和发送的信息,向上层发送消息(对应VB中的事件)。
对上层提供的服务有出错信息,结构变量或对象,得到当前的状态,停止当前的操作,相应的消息。
应用层:
应用数据处理层的提供的服务进行处理。
应用层面向用户界面的编程。
在单片机和嵌入式应用的开发,可以应用类似的方法。由于存储空间的紧张,在数据处理层可以应用标号来标识处理后的数据类型,和输入输出缓冲区应用相同的存储空间。用C语言的结构和枚举实现相应的对应。
应用层次模型使各部分模块清晰易懂,各层之间接口明确。每一层的处理关注本层的应用,明确了工作内容和目的,提高了系统的稳定性和可维护性。在分层结构中应当确保各个层次的耦合性最小,而且不能跨层进行操作。层次结构不仅可以应用到通信数据的处理中,也可以应用到其他的处理中,如数据库处理等。在应用中也不一定拘于三层结构,可以在三层模式的基础上定义多层结构。