私は socat を使用して、いくつかの仮想シリアル ポートを作成しています。1 つは単純な C プログラム (termios を使用) で接続し、もう 1 つは Ardupilot Mega Planner (RC 用) というプログラムを使用して接続したいと考えています。ただし、Planner は仮想ポート (/dev/pts の下にリストされている) を認識せず、tty デバイスと /dev/serial デバイスのみを認識します。これを機能させるには、ある種の特別なマウントを行う必要がありますか? または、私が試すことができる回避策はありますか?既存のシリアルポート (ttyS0 など) を「リンク」しようとしましたが、そのようなもの (仮想ポートから実ポート、実ポートから実ポート) を試みると、「不適切な ioctl」エラーが発生します。何か案は?
編集: プログラム (Mission Planner) のソース コードを表示すると、すべての /dev/ttyS* デバイス、/dev/serial/by-id/* デバイスのみを「認識」(またはポートを追加) しているようです。デバイス、/dev/USB0、および /dev/ACM0。そのため、ソース コードを編集するか、ttyS* ポートを「検証」する方法を見つける必要があります。Mission Planner は、S1 または S0 以外の ttyS* デバイスには接続しないようです。何か案は?どういうわけか、それらが正しく構成されていないためだと感じています。
編集 2: ようやく ArdupilotMega Planner のソース コードを入手し、/dev/pts/ のデバイスが含まれるように変更しました。しかし、私はまだ同じ問題を抱えています。Planner がポートを開くと、何らかの問題が発生します。プログラムが接続できるようにするために、すぐに確認/変更する必要がある設定はありますか? 研究に行き、シリアルポート通信をより完全に理解しようとしています...