/dev/ttyACM0
同時に、2つの異なるプロセスを介してポートを読み取る必要があります。プロセスがこのポートにアクセスする方法でこのポートを共有したり、他の2つのポートに分割したりできますか?このような:
___/dev/ttyPort1
/dev/ttyACM0 --/
\___/dev/ttyPort2
socatをインストールして試しましたsocat /dev/ttyPort1 /dev/ttyACM0
。これは部分的に働いた。 socatを使用して新しいポートをttyACM0のミラーとして持っています。このポートを同時に読み取ろうとすると、受信した情報はttyACM0またはttyPort1にのみ表示され、両方が表示されず、2つが必要です。同じ情報が同時に処理されます。
答え1
プログラムがttyの代わりにfifoで読むことを意図していて、読み取るだけで書いていない場合は、tee
2つのfifoを使用できます。
mkfifo fifo1 fifo2
tee </dev/ttyS0 fifo1 >fifo2 &
これで、それぞれで同じデータを開いて読み取るfifo1
ことができます。fifo2
ttyが本当に必要な場合は、1つを追加してsocat
各fifoを読み取り、それをptyにリンクできます。
socat -u GOPEN:fifo1 pty,link=$HOME/ttyPort1,raw,echo=0 &
socat -u GOPEN:fifo2 pty,link=$HOME/ttyPort2,raw,echo=0 &
読んで$HOME/ttyPort1
。$HOME/ttyPort2