2012-04-25 87 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