深圳市中捷智安科技有限公司
Banner
深圳市中捷智安科技有限公司总部

业务咨询
固话:0755-28766866
手机:133-1682-8857
传真:0755-28766066
邮件:2851268699@qq.com
网址: http://www.szzjza.com
地址:深圳市龙华新区观澜街道大水坑金奥工业科技园c栋3楼

售后支持
固话:0755-28767922
手机:133-1682-8987
投诉与建议:133-1682-9176
新闻详情
首页 > 中捷资讯 > 内容

防撞摆闸的串口通讯模块设计

编辑:深圳市中捷智安科技有限公司时间:2020-12-10

防撞摆闸的串口通讯模块设计

根据防撞摆闸系统功能需求,闸机控制系统需要与多个部件的串口通讯,这都需要由串口通讯模块提供的基本串口通讯功能来实现,因此需要串口通讯模块能够实现基本的串口通讯功能。如:串口端口打开、关闭、通讯参数设置、数据读写等操作,提过函数接口供设备操作模块调用。由于需要同时进行与多个串口的通讯,这就需要有效的方法来实现多个串口操作时的数据安全和稳定,因此下面就来谈谈基于QT的防撞摆闸串口通讯模块设计。

防撞摆闸.png

一是基本串口通讯类的选择。由于QT中没有特定的串口操作控制类,因此通常采用第三方类来实现串口通讯,防撞摆闸控制系统串口通讯模块的实现是采用QextSerialBase、Win_QextSerialPort、Win_QextSerialPort三个类,QextSerialBase 从 QIODevice类继承而来,对串口操作所必需的函数和变量都由它来提供,Win_QextSerialPort类和 Posix_QextSerialPort类都由QextSerialBase类继承而来,Win_QextSerialPort类实现对串口的一些基本操作,如:串口打开、关闭,以及波特率、数据位、停止位、超时等基本串口参数的设定,防撞摆闸控制系统有了这些类就可以实现基本的串口通讯。

二是串口管理功能。防撞摆闸控制系统串口管理功能模块类ManageSerialPort首先实现对Win_QextSerialPort 的封装,包括对串口的基本操作,同时创建由QThread类派生的数据发送和接收线程,实现数据的实时发送和接收,当外部调用模块设置并打开一个串口时,串口管理模块调用相应的串口底层操作函数实现串口数据的初始化,同时启动串口数据启动串口的发送和接收线程,便实现了串口通讯的准备工作,要实现多个串口的通讯只需要调用同一个接口,传递不同的端口初始化参数,接口为每一个需要创建通讯的端口执行参数的设置并创建对应的收发线程。这样防撞摆闸控制系统就可以实现与多个串口的通讯。

摆闸.png