串列埠程序從 tty 寫入文件/讀取文件?
我正在尋找一些命令行程序,可用於向/從串列埠發送和接收數據。我想自動化我的測試過程 - 啟動測試腳本,它將文件發送到
ttyPC
,接收output
到文件,然後比較結果。首先我嘗試cat
了兩個過程:# output echo "Output" cat /dev/ttyPC > ./out/out${fileNumber}.txt & outputPID=$! #input echo "Input" cat ./in/in${fileNumber}.txt > /dev/ttyPC
但這並不穩定。有時它會不斷發送數據或出現“文件先前打開”或第二個 tty 打開先關閉的問題
cat
。然後我嘗試使用 minicom(script.txt 正在發送數據)
minicom -D /dev/ttyPC -b 115200 -8 -C log1.txt -S script.txt
,但我無法從命令行設置奇偶校驗。有更好的嗎?
我編寫了 python 腳本來解決我的問題。該腳本將串口設備、輸入文件和輸出文件作為參數,然後將輸入文件內容髮送到串口並同時讀取(字節數等於輸入文件大小)到輸出文件。如果所有內容都已讀取或 5s 沒有數據發生,則腳本將關閉埠並退出。
https://github.com/folkien/pyIoCat
usage: serialCat [-h] -i INPUTFILE -o OUTPUTFILE -d DEVICE [-B BAUDRATE] [-P PARITY] optional arguments: -h, --help show this help message and exit -i INPUTFILE, --inputFile INPUTFILE input file -o OUTPUTFILE, --outputFile OUTPUTFILE output file -d DEVICE, --device DEVICE tty Device -B BAUDRATE, --baudrate BAUDRATE -P PARITY, --parity PARITY
minicom
主要從配置文件中獲取其設置。預設設置為/etc/minicom/minirc.dfl
,但您可以將其他配置保存為/etc/minicom/minirc.<configuration name>
,或在您的主目錄中保存為~/.minirc.<configuration name>
.您可以根據需要設置一個或多個準備好的配置文件
/dev/ttyPC
作為預設埠以及速度和奇偶校驗設置。例如,minicom -s ttyPC
以 root 身份執行,進入Serial port setup
菜單,調整內容(包括奇偶校驗)以滿足您的需要,然後選擇Save setup as ttyPC
並退出 Minicom。現在你應該有一個/etc/minicom/minirc.ttyPC
文件。即使是非 root 使用者,您也可以通過啟動 Minicom 來使用它的設置,例如minicom ttyPC
. 如果您需要多組配置設置,請根據需要使用不同的配置名稱重複。任何命令行選項都可用於覆蓋配置文件中的設置。因此,您可以簡單地擁有具有所有可能奇偶校驗設置的多個配置文件,並使用命令行選項覆蓋其餘配置文件。
配置
minicom
文件只是文本:如果您需要完全自動化測試環境的設置,您的腳本可以包含配置文件的內容並在開始使用之前編寫配置文件minicom
。