2011-08-07 35 views
4

我想用erlang與我的調制解調器通話。它被掛載爲/ dev/ttyUSB並完美理解AT命令。Erlang serial IO

  • 我可以使用標準文件模塊讀取和寫入設備嗎?

  • baudrate,bytesize,parity,RTS/CTS,DSR/DTR等等如何?

  • 你有任何使用tonyg-erlang-serial-1.0的經驗嗎? (我不太相信這個軟件包,因爲它在自述文件中說:「這是一個用於串行通信的erlang驅動程序的端口程序, 最初由Johan Bevemyr於1996年編寫,零星地由012從Tony Garnock-Jones從2007年開始維護 。 「

  • 什麼是Erlang的串行I/O常見的做法?

+0

我試過'erlang-serial'(以及'gen_serial' http://blog.spearce.org/2004/02/genserial-01-released.html) ,但無法讓它爲我工作。 –

+0

https://github.com/systra/erlang-serial(含螺紋鋼支撐) –

回答

-1

所以顯然沒有erlang的串行通信庫。我現在必須再次挖掘python,使用pyserial,從erlang生成python線程並通過stdin進行通信。

如果有人知道更好,請證明我錯了。我很想擁有erlang本地串行I/O。

+0

讓我知道使用端口執行用其他語言編寫的代碼有什麼不同? – Arunmu

+0

如果你想一起使用Erlang和Python,你可以看看http://erlport.org – hdima

0

如果你問寫入設備文件,那麼你就不能使用Erlang中可用的文件模塊做到這一點。

您將不得不打開一個端口並執行你的c/C++代碼。

檢查 this是否有幫助。

+0

@DownVoter:關心評論!! – Arunmu

+0

我認爲這是一個好主意。爲什麼要低調? –

4

從github.com/systra/erlang-serial獲取鋼筋支持的erlang-serial。這裏有一個簡單的用法示例:

Serial = serial:start([{speed,38400},{open,"/dev/ttya"}]), 
Serial ! {send, <<"test">>}, 
receive 
    {data,FromOtherSide} -> 
     doStuff(FromOtherSide); 
    Other -> 
     Other 
end. 
+0

看起來很有前途,但我有一個安裝錯誤:https://github.com/tonyg/erlang-serial/issues/14按照說明操作 – quantumpotato