2012-04-25 91 views
1

我需要與Perl腳本中的串行端口進行通信。我需要發送字符並讀取輸入並搜索字符串。在Perl中寫入串行端口

實現此目的最簡單的方法是什麼?通過使用「expect」或通過在Perl本身打開/ dev/ttys0設備?或者其他一些方法?

我更喜歡使用perl,但我不知道它是否簡單並按預期顯示。

+0

到目前爲止試過的是什麼?顯示你的代碼。 – 2012-04-25 09:16:57

+0

我做了一些實驗,期望Perl的插件,但它似乎笨拙。我打算嘗試通過「askovpen」 – Strudle 2012-04-26 19:25:56

回答

3

您可以嘗試爲Linux Win32::SerialPort爲Win32和Device::SerialPort

5
my $port = new Device::SerialPort("/dev/ttyS0"); 
$port->user_msg(ON); 
$port->baudrate(9600); 
$port->parity("none"); 
$port->databits(8); 
$port->stopbits(1); 
$port->handshake("xoff"); 
$port->write_settings; 

$port->lookclear; 
$port->write("some command to com-port"); 

my $answer = $port->lookfor; 
# or my $answer=$port->read(255); 
+0

非常感謝的建議!在Linux中,我是否需要root權限才能執行上述操作? – Strudle 2012-04-25 10:35:08

+0

@Strudle no。你需要用戶/組,誰可以讀/寫/ dev/ttyS0。 ls -l/dev/ttyS0來查看 – askovpen 2012-04-25 11:00:25