数据接收模块方案介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据接收模块方案介绍
1、综述
数据接收模块负责对数据的采集和初步处理,其中具体过程包括两部分:原始数据的接收、原始数据的加工处理。
数据接收模块在整个项目中处于较为底层的位置,也是底层与高层结的核心:
2、模块接口
其底层接口为网络接口,对设备通过GPRS网络,利用GPRS_RTU无线方式上传的数据进行接收。GPRS_RTU采用TCP/IP方式与服务器通讯,服务器端利用RTG-D通信服务器开发包接口进行数据的接收。
通过开发包提供的接口,接收到的为3200字节的原始数据,递交数据处理模块。数据处理模块要按照不同设备的协议对原始数据进行解析、CRC校验、计算、处理。处理完毕后递交给数据库。
数据接收模块的上层为数据库,此处为SQL server数据库,设备的原始信息、配置信息等都通过网站前台进行配置,保存在数据库中,数据接收模块从数据库中读取配置后开始根据配置工作,进行数据的接收和处理。接收到数据并处理成功后,则将结果保存在数据库中,供网站后台进行计算、统计、报表处理。
3、具体实现
数据接收模块在windows环境下用C++语言编写。通过RTG-D通信服务器开发包提供的动态链接库作为底层接口,软件动态加载动态链接库到内存中,找到函数入口后调用函数进行数据的接收、发送,服务的开启、关闭。
考虑到发送数据的设备可能众多,为了保证软件处理数据的实时性,软件会使用多线程技术,保证数据能够被快速处理,防止缓冲区堆满溢出、丢失数据,达到实时处理的要求。
由于跟数据接收模块与硬件相联系,而且处于底层与高层连接的核心位置,所以硬件问题、干扰问题、网络问题、数据传输问题等,都可能导致数据出错。因此软件在容错处理方面应该特别加强。若错误的数据不能够被正确处理,则可能会影响数据的完整性,甚至影响整个服务器的正常运作。
虽然目前终端设备比较少,但是在将来的发展中,终端传感器设备可能数量众多、规模庞大。所以软件设计时要对性能有一定的要求,保证最高效迅速地处理数据,而不给服务器带来过大的压力。
作为服务器端的软件,可能会长时间7*24运行,所以要高效、稳定,杜绝内存泄露等问题。
虽然目前仅有4、5种终端设备,每种设备的协议都不相同。但是要考虑到未来设备的升级、发展,要对不同的协议预留接口,软件成型后可以添加协议、修改协议,并能够进行相应的处理。
4、软件流程
1)软件启动后,根据数据库中的数据对软件进行初始化设置。
2)加载协议,并初始化服务,其中包括协议的握住、CRC校验等。
3)开启主线程,负责对指定的端口进行监听。
4)有消息收到,主线程开启副线程对数据进行处理,主线程继续监听。
5)副线程从主线程收到原始数据,根据协议对数据进行解析、校验等处理。
6)副线程将数据处理完毕后,根据协议,存入数据库,确认后副线程生命结束。
7)期间出现错误,进入容错处理模块。
8)软件收到用户发出的终止命令,处理完毕数据后,终止主线程。
5、流程图