我試圖讓掃描儀將圖像文件傳輸到我的Mac(該公司只提供Windows驅動程序)。我有技術手冊指定了可以發送到設備的所有命令,我正在嘗試最基本的命令(閃爍LED,打印序列號等)。使用Bash通過串行端口進行通信
我已經能夠成功地使用「串行工具」下的設備進行通信,但我試圖使用bash的輸入/輸出的更多控制,並最終寫入自動運行的腳本。
閱讀一些其他職位,並試圖幾件事後,到目前爲止,我已經試過這樣: 打開與stty命令和各種標誌的端口,例如:
stty -f /dev/tty.usbserial-A5002TeW speed 9600 cs8 cread clocal
stty -f /dev/tty.usbserial-A5002TeW raw speed 9600 -cstopb -parity -echo
試圖發送命令回顯:
echo $'LE 100\cM\cJ' > /dev/tty.usbserial-A5002TeW
- 請注意,串行設備通過USB適配器連接,但在爲我安裝正確的驅動程序後作爲常規串行設備作出響應(至少在串行工具中)。
- 我試圖使用\ cM \ cJ字符,因爲由於該設備是打算供Windows使用的,我想我應該使用它們的控制代碼,我嘗試了多個代碼排列。
問題: 無論發生什麼事,設備都不會響應(沒有閃爍的LED燈,沒有輸出等),我的bash外殼會掛起,直到我停止它(^ C)。我知道我可以使用Python庫,我可能會這樣做,但我想至少看看bash shell的一些基本功能。
發佈的評論,因爲它最有可能不是問題:嘗試使用'回聲-n'或'printf'打印您的字符串沒有額外的換行符是'echo'單獨將產生。 – chepner
好的,所以經過一些更多的搞亂之後,我可以得到一些工作,但不是使用\ cM \ cJ我發送\ r \ n。我可以得到LED燈等等。現在我只需要能夠可靠地從中獲取數據,我一直在做'cat/dev/tty.usb-etc'這類作品,但似乎有一個時間問題,因爲我只會不時地得到完整的輸出,通常我會得到件和零件。 –
您的終端可能會緩衝輸入/輸出。你的USB設備在'/ dev'中有'cu'變種嗎?就像'/ dev/cu.usb-etc'一樣。這是一個更原始的套接字類型,這可能是你需要的。另外看看'setserial'。更多的技巧在這個相關的職位:http://stackoverflow.com/questions/3918032/bash-serial-io-and-arduino請務必報告適用於您的解決方案,我也想知道: - ) –