2013-03-29 176 views
0

我試圖讓掃描儀將圖像文件傳輸到我的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的一些基本功能。

+0

發佈的評論,因爲它最有可能不是問題:嘗試使用'回聲-n'或'printf'打印您的字符串沒有額外的換行符是'echo'單獨將產生。 – chepner

+0

好的,所以經過一些更多的搞亂之後,我可以得到一些工作,但不是使用\ cM \ cJ我發送\ r \ n。我可以得到LED燈等等。現在我只需要能夠可靠地從中獲取數據,我一直在做'cat/dev/tty.usb-etc'這類作品,但似乎有一個時間問題,因爲我只會不時地得到完整的輸出,通常我會得到件和零件。 –

+0

您的終端可能會緩衝輸入/輸出。你的USB設備在'/ dev'中有'cu'變種嗎?就像'/ dev/cu.usb-etc'一樣。這是一個更原始的套接字類型,這可能是你需要的。另外看看'setserial'。更多的技巧在這個相關的職位:http://stackoverflow.com/questions/3918032/bash-serial-io-and-arduino請務必報告適用於您的解決方案,我也想知道: - ) –

回答

0

另一種選擇是試圖通過Mac上的虛擬機安裝Windows讓它下虛擬機(VirtualBox的,融合,Parallels的,等等)工作。

最麻煩的解決方案,因爲你不得不重新啓動所有的時間,雙啓動你的Mac進入Windows。

最後,我在我的iPhone應用程序從簡單地使用相機手機拍攝前和支票背面我的銀行機構,他們會接受這種方式。這可能是一個選項。

+0

不幸的是,這不是一個選項,這是一個非常小的設備,客戶可以直接插入他們的機器讀取支票。我們已經可以支持使用Windows機器的客戶,但目前Mac用戶還沒有選擇。該設備只有一個串行端口,所以這幾乎是任何人都可以從中獲取圖像的唯一方式。 –

+0

查看我編輯的內容,正如您發佈的內容一樣。也許這將起作用。 –

+0

我很感謝你的幫助,但我相當肯定沒有猴子生意在幕後搖晃。我已經能夠使用我的Mac上的「串行工具」實用程序的一些基本命令,我基本上只是試圖在bash shell中重現我的成功。 –

相關問題