Tty

串列埠程序從 tty 寫入文件/讀取文件?

  • October 7, 2019

我正在尋找一些命令行程序,可用於向/從串列埠發送和接收數據。我想自動化我的測試過程 - 啟動測試腳本,它將文件發送到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

引用自:https://unix.stackexchange.com/questions/500342