직렬 포트로 데이터를 보내고 받는 데 사용할 수 있는 명령줄 프로그램을 찾고 있습니다. 테스트 프로세스를 자동화하고 싶습니다. 테스트 스크립트를 시작하고, 에 파일을 보내고 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
루트로 실행하고 Serial port setup
메뉴로 이동하여 필요에 맞게 항목(패리티 포함)을 조정한 다음 Save setup as ttyPC
Minicom을 선택하고 종료합니다. 이제 파일이 있어야 합니다 /etc/minicom/minirc.ttyPC
. 루트가 아닌 사용자라도 minicom ttyPC
여러 구성 설정 세트가 필요한 경우 필요에 따라 다른 구성 이름을 사용하여 Minicom을 시작할 수 있습니다.
모든 명령줄 옵션을 사용하여 구성 파일의 설정을 재정의할 수 있습니다. 따라서 가능한 모든 패리티 설정을 포함하는 여러 구성 파일을 갖고 명령줄 옵션을 사용하여 나머지를 무시할 수 있습니다.
구성 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 명령을 통해 직렬 포트를 설정해야 합니다.