我正在寻找一些命令行程序,我可以用它来向串行端口发送和接收数据。我想自动化我的测试过程 - 启动测试脚本,将文件发送到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
但我无法从命令行设置奇偶校验。
还有更好的吗?
答案1
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
。
答案2
我写了 python 脚本来解决我的问题。该脚本以串口设备、输入文件和输出文件作为参数,然后将输入文件内容发送到串口,并同时读取(字节数等于输入文件大小)到输出文件。如果所有内容均已读取或 5 秒内没有发生任何数据,则脚本将关闭端口并退出。
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
答案3
需要通过stty命令设置串口