ser2net
및 의 조합을 사용할 수 있습니다 socat
. 예를 들어, 직렬 포트를 통해 라즈베리 파이에 로봇이 연결되어 있습니다. 라즈베리 파이가 로컬 네트워크 (2 차 PC와 동일)에 연결되어 있습니다. 그리고 랩탑은 동일한 로컬 네트워크 (첫 번째 PC와 동일)에 연결되어 있습니다. 그런 다음 ser2net을 사용하여 두 번째 PC에서 TCP를 통해 직렬 포트를 전달 socat
하고 첫 번째 PC에서 프록시 직렬 장치 파일을 만듭니다 .
이 설정은 당신에게도 효과가 있습니다. 제안 된 해법:
1 단계 : 두 번째 PC에 ser2net 패키지 설치 (다이어그램에 따라)
sudo apt-get install ser2net
ser2net은 TCP 포트를 수신하고 TCP 포트를 통해 직렬 포트와 데이터를주고받을 수 있습니다. 구성 파일을 통해 "프록시"를 만들려는 직렬 포트를 설정할 수 있습니다 /etc/ser2net.conf
.
2 단계 : 두 번째 PC에서 ser2net 구성
예를 들어, /dev/ttyACM0
전송 속도로 연결된 장치가 있고 115200
로컬 호스트 포트 3333 에서 장치 를 제공하려는 경우 다음 행을/etc/ser2net.conf
3333:raw:0:/dev/ttyACM0:115200,remctl
구성 파일을 작성한 후 두 번째 PC에서 실행하여 ser2net을 시작하십시오.
ser2net
또는 (이미 실행중인 경우 아래처럼 다시 시작하십시오)
/etc/init.d/ser2net restart
여기서 중요한 것은 remctl 옵션입니다. 클라이언트 쪽 (다이어그램에서 첫 번째 PC)이 장치에 연결하고 직렬 연결 옵션을 자유롭게 선택할 수 있습니다. 이 방법으로 직렬 통신은 데이터 수집 작업 공간 관점에서 완전히 투명하다고 생각합니다. 자세한 내용은 여기를 참조하십시오 .
3 단계 : 데이터 수집 워크 스테이션 (1 차 PC)에서 프록시 직렬 장치 파일 설정
(socat이 없으면 sudo apt-get install socat
)
마지막으로 첫 번째 PC의 터미널에서 socat
tcp 포트에서 수신 대기하는 프록시 직렬 포트를 만듭니다.
socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive
이 예에서 ip=<2nd-PC-IP-address>
그리고 port=3333
(또는 /etc/ser2net.conf
두 번째 PC에서 설정할 때 선택한 것 ).
4 단계 : MyProxySerialPort에 연결
이제 $HOME/MyProxySerialPort
첫 번째 PC에있는 장치에 대한 직렬 연결을 정상적으로 열 수 있어야합니다 .
이 블로그 게시물에는이 설정에 대한 추가 정보가 있습니다. http://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-tcpip/