董国法,李文庆,宋苗苗,苗斌,王文彦
(山东省科学院海洋仪器仪表研究所,山东青岛,266001)
Qt是一个跨平台的C++图形用户界面应用程序框架,它为应用程序开发者提供建立艺术级图形用户界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程,优势包括优良的跨平台特性、面向对象、丰富的API、国际化等[1]。
传统工具包使用一种被称作回调的通讯方式,首先它们不是类型安全的,不能确定处理函数使用了正确的参数来回调,因此容易造成进程崩溃。另外一个问题是,回调这种方式紧紧地绑定了图形用户接口的功能元素,因而很难把开发进行独立的分类。Qt提供了信号与槽机制,它是一种类型安全的高级接口,应用于对象之间的通信。

图1 通讯过程示意图
串口和网络通信又是开发的主要内容之一,本文基于win7 64 + Qt Creator5.5 + MinGW4.9.2开发环境,采用面向对象编程(object oriented programming,OOP)思想,对如何开发TCP网络程序和串口通信进行了研究,监视协议交互数据,一方面是数据内容,另一方面是协议交互。
TCP协议能够为应用程序提供可靠的通信连接,使发出的字节流无差错地送达网络上的计算机。Qt QNetwork模块提供的类允许编写TCP/IP Clients和Servers以及FTP和HTTP协 议,而QTcpSocket和QTcpServer类则是实现TCP客户端和服务器用的,网络通讯流程如图2所示。

图2 服务端和客户端的交互时序
采用两套socket套接字,一套连接基于GPRS数据通信网络的DTU无线数据终端,发送到服务端;另一套连接到服务端,将回执发送回DTU无线数据终端,可以根据实际需求控制回执信息是否转发[8]。……