痞子衡嵌入式:串列埠除錯工具Jays-PyCOM誕生記(4)- 聯合除錯(vspd, sscom, PyCharm2018.2)

痞子衡發表於2017-05-14

  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是串列埠除錯工具Jays-PyCOM誕生之聯合除錯

  軟體開發離不開除錯,除錯手段分兩種:一是黑盒除錯,即直接從輸入/輸出角度測試軟體功能是否正常,這種方式僅能發現問題,但無法直接定位問題原因所在;二是白盒除錯,即直接拿原始碼線上debug,python雖是一種指令碼語言,但藉助一些Python IDE也可以實現單步除錯,通過單步除錯可以找到問題根本原因。
  前面我們已經初步實現了Jays-PyCOM,下面痞子衡會從黑盒和白盒的角度分別測試Jays-PyCOM功能:

一、黑盒除錯:vspd + sscom

  要測試Jays-PyCOM功能,首先得要有串列埠裝置,當然我們可以使用真實的物理串列埠裝置,比如使用如下這個經典的CH34x串列埠轉USB模組,CH34x晶片官方主頁為 http://www.wch.cn/products/category/1.html

痞子衡嵌入式:串列埠除錯工具Jays-PyCOM誕生記(4)- 聯合除錯(vspd, sscom, PyCharm2018.2)

  安裝好 CH34x模組驅動 並將該模組USB介面端插上PC後便可在裝置管理器的Ports裡看到串列埠裝置,一個物理模組就可以完成測試,只需要將模組的RXD和TXD線直接對接,這樣便可實現迴環測試。
  很多時候手頭並沒有物理串列埠裝置,那麼這時候我們就需要藉助虛擬串列埠軟體,vspd就是一款虛擬串列埠驅動,其官方主頁為 https://www.eltima.com/products/vspdxp/,使用vspd可以在PC上虛擬出串列埠裝置並實現虛擬連線,由於vspd不支援單裝置迴環連線,那麼我們需要虛擬出兩個串列埠裝置並實現連線,痞子衡使用vspd虛擬出了COM10和COM11,並將其進行了連線:

痞子衡嵌入式:串列埠除錯工具Jays-PyCOM誕生記(4)- 聯合除錯(vspd, sscom, PyCharm2018.2)

  痞子衡選用的是vspd虛擬串列埠來測試,最終搭建的黑盒測試環境示意圖如下:

痞子衡嵌入式:串列埠除錯工具Jays-PyCOM誕生記(4)- 聯合除錯(vspd, sscom, PyCharm2018.2)

  聯合sscom測試串列埠資料收發,可知Jays-PyCOM基本串列埠資料收發功能是正常的,最基本的黑盒測試便通過了。

痞子衡嵌入式:串列埠除錯工具Jays-PyCOM誕生記(4)- 聯合除錯(vspd, sscom, PyCharm2018.2)

二、白盒除錯:PyCharm

  如果在黑盒測試過程中發現Jays-PyCOM功能有問題,從程式碼邏輯角度也不能立刻推斷出問題,此時便需要使用Python IDE進行線上debug,痞子衡選用的PyCharm軟體,建立Jays-PyCOM工程後將其放於Jays-PyCOM主目錄,工程會自動新增目錄下所有原始檔,選中main.py檔案後選擇Debug(Shift+F9)便可以進行單步除錯。

痞子衡嵌入式:串列埠除錯工具Jays-PyCOM誕生記(4)- 聯合除錯(vspd, sscom, PyCharm2018.2)

  關於PyCharm除錯技巧可參考下面兩篇文章:

https://confluence.jetbrains.com/display/PYH/Debugger#Debugger-Preparinganexample
https://www.jetbrains.com/help/pycharm/debug-tool-window.html

  至此,串列埠除錯工具Jays-PyCOM誕生之聯合除錯痞子衡便介紹完畢了,掌聲在哪裡~~~

相關文章