2014-07-22 10 views
1

는 I에는 흐름 제어가없는 직렬 장치를 가지고 있지만, 낮은 및 DTR을 RTS 높은 잡고 RS232 포트로부터 전력을 공급 받는다DTR을 높게 설정하려면 Linux bash를 사용하여 RTS를 낮 춥니 다?

I 간단한 떠들썩한 파티를 사용하여이 장치로부터 판독 기대했다 스크립트를 사용하지만 위의 구성을 허용하기 위해 stty 또는 기타를 사용하여 핸드 쉐이킹 행을 설정하는 방법을 찾을 수 없습니다.

가능하다면 어떤 아이디어가 있습니까?

+0

확실히 가능하지만 장치 드라이버에서 지원이 필요합니다. 어떤 장치 드라이버를 사용하고 있습니까? –

+0

나는 다음 중 하나를 사용하고 있습니다 : http : //www.moxa.com/product/UC-7112_UC-7110.htm 저는이 케이블을 전원 공급 장치에 직접 연결하기 만하면됩니다. 그러나 가능한 한 좋지는 않습니다! – user1447903

+0

MOXA MU860 UART 장치 드라이버 버전 Tty 장치 메이저 넘버 = 30 레지스터 IO 기타 ver1.0 OK. 일반 뜸쑥 RC7000 RTC 드라이버 v1.0 등록 뜸쑥 기타 ver1.0 확인. 이 초기화되었습니다. (nowayout = 0) 이 초기화되었습니다. (dev = 0) (C) 2004-2005 Moxa Inc. 암호 드라이버/dev/mxcrypto 10 직렬 : 8250/16550 드라이버 $ Revision : 1.90 $ 4 포트, IRQ 공유 활성화 입/출력시 ttyS0 0xf9820000 (irq = 31)은 16550A입니다. ttyS1은 I/O 0xf9820020 (irq = 31)은 16550A입니다. – user1447903

답변

0

내 동글에 DTR 핀이 없기 때문에 DTR을 건드리지 않고 RTS를 설정하는 것에 대한 답이 없습니다. 그러나 RTS를 설정하려고 시도하는 것은 이미 매우 까다 롭고 순수한 셸이었습니다.

stty crtscts 및 clocal 플래그를 사용해야 할 수 있습니다.

내가 여기에 상세한 답변을 게시 한

: 여기 https://forums.gentoo.org/viewtopic-p-8132756.html#8132756

짧은 버전 :

#!/bin/bash 
MySerialPort="/dev/ttyUSB0" 
MyLatency="2" 
echo "#include <fcntl.h> 
#include <sys/ioctl.h> 
main() 
{ int fd; fd = open(\"${MySerialPort}\",O_RDWR | O_NOCTTY); 
int RTS_flag; RTS_flag = TIOCM_RTS; 
ioctl(fd,TIOCMBIS,&RTS_flag); 
sleep (${MyLatency}); 
ioctl(fd,TIOCMBIC,&RTS_flag); 
close(fd); } " | tcc -run - 

참고 TX에 데이터를 보내는 것이다 아마 엉망 RTS; 자세한 내용은 Gentoo 포럼을 참조하십시오.