一、应用背景
该上位机作为信息枢纽,同时连接用户、第三方软件、Bartender打印软件、远程服务器、PLC(下位机),需要多个线程辅助完成~
1.1 连接用户
使用QtDesigner设计出UI界面,供用户操作;并且UI界面需要持续刷新,因此UI窗口显示将作为主线程;
1.2 连接第三方软件
由某个信号触发连接程序,在后台完成与第三方软件的Socket连接,并通过socket交互数据
1.3 连接Bartender软件
由于Bartender已经提供了SDK,只需要import 它们的dll包,并创建Bartender的object即可实现连接;随后的操作都是调用该对象的方法去完成的
1.4 连接PLC(下位机)
由某个信号触发连接程序,在后台完成与PLC的串口连接,并进行周期性数据交互
1.5 连接远程服务器
使用的是webAPI,属于触发式交互,不需要保持连接。在python中可以通过requests请求api接口,返回的数据为一串字典,可使用字典的方式进行操作;
二、设计思路
2.1 主程序
if __name__ == '__main__':
try:
app = QApplication(sys.argv) # 实例化一个应用对象,sys.argv是一组命令行参数的列表。Python可以在shell里运行,这是一种通过参数来选择启动脚本的方式。
myshow = MyUi()
myshow.show()
sys.exit(app