- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
多线程串口通信技术在GPS导航中的应用
编程步骤如下:
(1)建立程序
建立一个基于单文档的MFC应用程序CSerial-PortTest,其他步骤保持缺省状态。
(2)添加类文件
将SerialPort.h和SerialPort.cpp两个类文件复制到工程文件夹中,用Project-Add to Project-Files命令将上述两个文件加入工程,并在任何要调用这个类的模块中加上#include SerialPort.h文件。
在视类头文件中定义串口类的对象:CSerialPortm_Port。
(3)人工增加串口消息响应函数OnCommunica-tion(WPARAM ch,LPARAM port)
首先在CSerialPortTestView.h中添加串口字符接收消息WM_COMM_RXCHAR(串口接收缓冲区内有一个字符)的响应函数声明,即:
在主线程初始化串口后创建CommThread函数进入死循环,线程一直监视串口事件,当读串口事件发生,读取串口接收到的数据,向主线程发自定义消息WM_COMM RXCHAR,通知主线程在相应的消息响应函数中进行数据处理,当收到主线程的写串口命令时,将缓存中的数据写到串口。
(5)在OnCommunication()函数中进行数据处理每当串口接收缓冲区内有一个字符时,就产生一个WM COMM RXCHAR消息,触发OnCommunica—tion函数。这时就可以在函数中进行相应数据处理,提取出时间、经纬度、速度等定位的关键数据,然后将这些数据保存到数据库。
4 结 语
串行通讯在通讯领域被广泛应用。利用基于多线程的第三方串VI通信类CSerialPort很好地解决了由于串口长时间占用CPU而引起的线程堵塞等问题,编程简单、方便、可移植性强,对于其他类型的串口通信问题均可采用。该程序由Microsoft Visual C++6.0编译,在Windows XP下运行通过。
上一篇:海事卫星在应急救援中的应用发展建议
下一篇:数字集群移动通信系统介绍