perl Win32 :: SerialPort:读取和输入方法之间的区别

时间:2012-05-22 06:21:36

标签: perl winapi serial-port at-command

我一直在尝试使用Win32::SerialPort中的模块perl 5.10(也许它与5.14有一些问题)。我必须向串口发出命令并获取它们的输出。我已经发现写作会为我做早期的部分。对于输出部分,我看到了类似的实现:

$port_obj->write("ATE");  #assuming we give the AT command Echo
$res = $port_obj->input;

如果这给出了命令的输出,为什么我们不能像下面那样更直观(即使$res将返回写入的位数)$res捕获写输出。

$res = $port_obj->write("ATE");

此外,我还看到了$port_obj->read()的一些实现,但我不确定read和输入方法之间有什么区别。

请帮忙。

1 个答案:

答案 0 :(得分:0)

1。)由于设备已连接,直接从写入中返回接收的数据将不适用于所有(大多数?)情况。如果它没有回复,或者没有立即回复怎么办?那里有无数的串行设备,你永远不会知道会发生什么。

2。)$PortObj->read是一个阻塞调用,即等待直到收到请求的字节数。 $PortObj->input是非阻塞的,即它会立即返回,告诉您收到了多少字节(如果有)。关于这一点,文档有点模糊。

干杯。