python 串口上位机_如何使用Python开发串口通讯上位机(二)
黑色的dos窗口對于大部分來說,頁面極為不友好,且操作不方便,因此本篇主要講講如何結合QtDesigner創建一個UI并初步與串口Api鏈接。1
QtDesigner進行上位機頁面設計
Python下的軟件頁面設計推薦使用Pyqt5,相關的介紹和環境安裝參見往期內容。
1. 打開QtDesigner軟件,新建窗口,通過拖拖拽拽創建一個最基礎功能的界面。小技巧:用group組件將同一類元素放在同一個組中,即美觀,又方便查找
2. 設置界Group中通過ComboBox創建串口號與波特率的下拉選擇。
3. 調試信息Group則為ListWidget控件,用于展示過程的提示,方便問題定位。
4. 數據的發送與接收Group則加上了hex與否的選擇框,方便查看原始十六進制數據
如上圖,搭建好頁面后,根據往期文章的設置方法,直接在Pycharm中生成UI的py文件。
生成后的Py代碼只是一個頁面相關的類,所以還需要創建一個主程序,import 生成的頁面代碼文件,創建對象并實例化。
這樣我們就能實例化頁面,并讓我們的程序不再是黑框的cmd窗口啦。
2
串口操作事件關聯-自動搜索可用串口
有了頁面以后,接下來我們就要將頁面的各個組件與serial庫的操作API相關聯了。首先來看看如何動態識別電腦可用端口與打開端口。
USB轉串口映射到電腦設備管理器的COM口存在一定的隨機性,有可能到COM30+,如果COM下拉選擇從1-30,則顯得不夠智能而且每次都需要打開設備管理器確認。
所以大部分串口調試助手都有動態自動更新可用串口的功能。所以咱們也得跟上才行。實現方法如下:
- 在serial類中導入serial.tools.list_ports
- 使用serial.tools.list_ports.comports()接口獲取可用端口。不妨先用下述代碼測試一下
- 與頁面綁定,為了不破壞自動生成的代碼結構,我們在UI代碼中創建一個新函數,專門用于自定義的頁面設置與更新。此代碼會在第一次打開上位機時執行。
3
串口操作事件關聯-串口打開與收發
解決了串口自動搜索,接下來該與Open與收發事件相關聯。在選定了串口號以后,通過點擊打開按鈕,將串口打開或者關閉。因此我們需要將按鈕的點擊事件注冊關聯。
- 首先加入初始化函數,創建一個空對象用于后續關聯串口引擎。注:__init__()為python類的關鍵字,在類創建時會自動執行;另外從編碼規范來說,不建議在__init__()之外定義類的成員.
-? 將按鍵的click事件關聯到一個自定義事件函數,函數內容根據操作需求再行細化
操作層面的詳細需求如下:
- 在未打開任何串口之前,允許用戶打開
- 如果當前時刻已經有串口打開了,則該按鈕文本應變換為“關閉”
- 如果打開失敗,還應該有提示信息
代碼如下:
接下來參照前面一期內容,關聯發送與接收事件。
下面動圖為初步效果。
4
總結
本篇主要介紹了上位機UI設計以及如何與serial相關操作進行關聯。
為了展示初學狀態,所以代碼寫的比較隨意凌亂。相信大部分人剛接觸Python時,狀況類似。
下一講中,我會基于此版本程序,講講如何對代碼進行優化以及新增Hex格式的收發顯示。關注公眾號,獲取更多干貨哦。
總結
以上是生活随笔為你收集整理的python 串口上位机_如何使用Python开发串口通讯上位机(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: androidstudio返回之前界面_
- 下一篇: python是动态类型语言、变量不需要显