我使用socat來創建幾個虛擬串行端口。一個我用一個簡單的C程序(使用termios)連接,另一個我想用一個名爲Ardupilot Mega Planner的程序連接到(用於RC的東西)。但是,規劃人員不能識別虛擬端口(列在/ dev/pts下),只能識別tty設備和/ dev/serial設備。我是否需要做一些特殊裝載才能工作?或者有沒有可以嘗試的解決方法?我嘗試了「鏈接」現有串行端口(例如ttyS0),但是如果我嘗試任何類型的虛擬端口(真實端口到真實端口,真正端口到真正端口),我會得到一個「不適當的ioctl」錯誤。有任何想法嗎?Socatate虛擬串行端口不被識別
編輯:在查看該程序的源代碼(Mission Planner)之後,它似乎只能「識別」(或添加所有/ dev/ttyS *設備的端口),/ dev/serial/by -id/*設備,/ dev/USB0和/ dev/ACM0。因此,無論我需要編輯源代碼還是找到一種「驗證」ttyS *端口的方法。看起來Mission Mission只是不會連接到S1或S0以外的任何ttyS *設備。有任何想法嗎?我有一種感覺,那是因爲他們沒有正確配置,不知何故。
編輯2:我終於抓住了ArdupilotMega Planner源代碼,並將其更改爲包含/ dev/pts /中的設備。但是,我仍然遇到同樣的問題。規劃人員在打開該端口時會遇到某些問題。是否有一些設置需要檢查/更改從一個程序能夠連接到它的蝙蝠?去研究並試圖更深入地瞭解串口通信...
好的,這是我用於使虛擬端口的命令: '須藤socat -d -d PTY,生,回聲= 0 PTY,鏈接=的/ dev/ttyS10,生,回聲= 0' 然後我嘗試用我的程序連接到它,它會拋出一個I/O異常(有關無效參數的東西)。對不起,作爲一個串口設備的新手,但我需要安裝該端口或任何東西? – 2012-07-25 16:09:16
我擔心SerialPort對象不能與socat虛擬COM端口一起使用(無效的參數異常)。我會將我的代碼切換到文件流並查看是否有效。 – josef 2014-03-24 04:52:42