私のシリアルポートにはすべてが正常です。 FTDIコンバータをコンピュータに接続し、COMポートを設定しました...
ln -s /dev/ttyUSB0 ~/wine/dosdevices/COM1
しかし、今このポートを「複製」したいと思います。
u-center GPSビジュアライゼーションツールを実行するためにワインを使用していて、Ubuntuを実行しているLinuxコンピュータがあります。
誰でも助けることができますか?
答え1
以前の回答では共有できないと言っていましたが、その部分が間違っています。
Linux TTYポートは別のアプリケーションで開くことができますが(ロックを使用しないか確認しない場合)、バッファは1つしかないため、データを最初に読み取るアプリケーションで消費するため、データは使用できません。両方のプロセス。場合によってはこれは大丈夫で、場合によってはそうではありません。しかし、一般的に人々はこれを望んでいません。
TTYはユーザースペースで作成できるため、誰でもユーザースペースアプリケーションを作成して2つの仮想/偽のシリアルポートを作成し、それらを1つの物理シリアルポートに接続するのを防ぐことはできません。
ターミナルバス実行方法は次のとおりです(readmeにあります)。
Use case 1: Multiplexing serial input only or output only device attached to /dev/ttyS0, for use with multiple applications.
- step 1: create a new tty bus called /tmp/ttyS0mux:
tty_bus -s /tmp/ttyS0mux &
sleep 1
- step 2: connect the real device to the bus using tty_attach:
tty_attach -s /tmp/ttyS0mux /dev/ttyS0 &
sleep 1
- step 3: create 2 fake ttyS0 devices, attached to the bus:
tty_fake -s /tmp/ttyS0mux /dev/ttyS0fake0 &
tty_fake -s /tmp/ttyS0mux /dev/ttyS0fake1 &
sleep 1
- step 4: start your application and force it to use the new serial device for input or output
/bin/foo /dev/ttyS0fake0 &
/bin/bar /dev/ttyS0fake1 &
&
注:バイナリがブロックされており、バイナリが互いに干渉するのを防ぐためにいくつかの省電力モードが必要だったため、killコマンドを使用してすべてのtty_ *バイナリをバックグラウンドでフォークする必要がありました。
頑張ってください!
答え2
シリアルポート通信は常に2つのデバイス間で行われます。共有できません。一度に1つのアプリケーションだけがデバイスを受け入れることができます。ただし、通信をスヌーピングすることは可能です(たとえば、データ転送の監視)。