如何在 Perl Win32::GUI 程序中连续读取串口?
我想在Windows XP下使用 Win32::SerialPort 模块来读取来自 COM 端口的文本字符串。
串行端口连接有一个秤,可持续发送当前测量的重量。由于我也在使用 Win32::GUI 我需要一种方法来阅读它非阻塞。最好的方法是什么?我应该使用 Lookfor
还是 streamline
?我对文档有点困惑。
原始问题文本:我使用 Modul Win32::SerialPort unter Windows Xp von einem COM-Port ein bestimmten Textstring nur einlesen。 SerialPort ist eine Waage angeschlossen, die permanent das aktuell gemessene Gewicht ausgibt.这是 Win32::GUI 版本/sollte das einlesen nicht blockierend sein。这是什么? sollte ich verwenden Lookfor oder 流线型吗? Ich blicke bei dem Manual nicht so richtig durch。
I would like to use the Win32::SerialPort module under Windows XP to read a text string from a COM port.
There is a scale attached to the serial port which continuously sends the current measured weight. Since I'm also using Win32::GUI I need a way to read that non-blocking. What's the best way to do this? Should I use Lookfor
or streamline
? I'm a little confused by the documentation.
Original question text: Ich möchte mit dem Modul Win32::SerialPort unter Windows Xp von einem COM-Port ein bestimmten Textstring nur einlesen. An dem SerialPort ist eine Waage angeschlossen, die permanent das aktuell gemessene Gewicht ausgibt. Da ich auch Win32::GUI verwende darf/sollte das einlesen nicht blockierend sein. Wie stelle ich das am geschicktesten an? Was sollte ich verwenden Lookfor oder streamline? Ich blicke bei dem Manual nicht so richtig durch.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于设备不断通过串行端口发送信息,因此您可能需要设置一个计时器并在不阻塞主线程的情况下查看连接中发生了什么。
首先,我将向您指出 Win32::GUI ::Tutorial::Part4 其中讨论了计时器。
使用
perl.exe
(而不是wperl.exe
)运行以下示例,因为输出将发送到控制台:输出:
现在,关于 Win32::SerialPort 与 Win32::CommPort 以及哪种方法取决于连接另一端的电子秤规格。
Since the device is continuously sending information through the serial port, you probably want to set up a timer and take a look at what's coming down the connection without blocking the main thread.
First, I am going to point you to Win32::GUI::Tutorial::Part4 where timers are discussed.
Run the following example using
perl.exe
, notwperl.exe
because the output goes to the console:Output:
Now, regarding the choice between Win32::SerialPort versus Win32::CommPort and which methods depends on the specs of the scale on the other end of the connection.