2014-01-15 6 views
1

사용중인 COM 포트에서 올바르게 연결을 끊고 스폰 된 프로세스를 종료 할 수 없습니다. COM 포트에서 연결을 끊고 다시 연결해야합니다.COM 포트에 연결/연결 해제가 필요합니다.

# Read the COM port from the command line 
if { $argc >= 1 } { 

    set file [lindex $::argv 0] 
} else { 

    set file /dev/ttyUSB0 
} 

set fh [open $file RDWR] 

fconfigure $fh -mode "115200,n,8,1" -blocking 0 -buffering none -eofchar {} 
spawn -open $fh -noecho 

답변

0

문제점은 exec를 사용해야 할 때 "소스"를 사용하여 다른 tcl 스크립트를 실행하는 것이 었습니다. 이제 기기를 종료 한 다음 다시 켜고 다시 통신하도록 허용 할 수 있습니다.

0

직렬 포트에서 연결을 끊으려면 채널을 닫아야합니다 (기본 OS 파일 설명자가 닫히기 때문에). 당신이 그것을 spawn_id (spawn의 결과)에 기대했기 때문에 그것을 닫아야 만합니다. 당신이 함께 그 : 만있는 경우

close -i $spawn_id 

비록 한 가지 한 번에 양산, 그냥 할 수 있습니다

close 

당신은 모든 과정을 통과해야합니다 (open, fconfigure 및 선택적으로 spawn -open) 다시 연결하십시오. 프로 시저로 리팩토링하는 것이 좋습니다 ...

+0

이 도구를 사용했지만 다시 연결하는 데 문제가 있습니다. com #을 찾을 수 없다고합니다. 스크립트의 목적은 장치에 연결하고, 통신하고, 장치를 종료하고, COM 포트에서 연결을 해제 한 다음 다시 연결하고 다시 통신 할 수 있도록하기위한 것입니다. – user2471323

+0

무슨 일이 벌어 질지 생각해 봅니다. exec를 사용해야 할 때 장치와 통신하는 스크립트를 "실행"하기 위해 "소스"를 사용했습니다. 문제가 발생한 곳일 수 있습니다. – user2471323