Qt步进电机上位机控制程序
功能介绍
基于Qt库,采用C/C++语言编写的跨平台步进电机上位机控制程序。支持串口、TCP网口、UDP网络三种端口类型,带有调试显示窗口,接收数据可实时显示。具备配置自动保存功能,用户的配置数据会自动存储,并带有超时提醒功能,如果不回复则弹框提示。其中三个端口采用了类的继承与派生方式编写,对外统一接口,实现多态功能,具备较强的移植性。
环境说明
开发环境是Qt5.10.1,使用Qt自带的QSerialPort,使用网络的Socket编程。源代码中包含详细注释,使用说明,设计文档等。
子功能模块
- 步进电机的地址设置、速度设置、正转反转等控制功能;
- 网络TcpUdp串口三种通信接口通过继承派生合三为一;
- 带有接收显示窗口,方便产品调试;
- 带有超时提醒功能,以防掉线;
- 带有独立的调试窗口,大大方便调试;
- 可刷新本机所支持的串口;
核心设计
通信模块
作者用C++的继承体系把三种通信方式整合成了统一接口。基类PortBase定义了虚函数sendData()和connectDevice()。
class PortBase : public QObject {
Q_OBJECT
public:
explicit PortBase(QObject *parent = nullptr);
virtual bool connectDevice(const QString ¶m) = 0;
virtual void sendData(const QByteArray &data) = 0;
signals:
void dataReceived(QByteArray);
};
派生类比如SerialPort的实现里,重点处理了串口特有的配置项。超时检测用QTimer实现:
void TcpClientPort::checkTimeout() {
if(!m_heartbeatReply) {
QMessageBox::warning(nullptr, "掉线警告", );
;
}
m_heartbeatTimer->();
}


