4

Is there any way to detect an RS232 BREAK condition in Pyserial? I can see options to send a break, but none to receive.

thanks

4

1 回答 1

0

我不知道一种简单的方法,尤其是在 python 中,中断是一个事件,它应该用于重置通信。

AFAIK pySerial 支持发送中断,但不接收。

可以用WaitCommEvent()但是没那么容易MSDN WaitCommEvent

来自 MSDN:

WaitCommEvent 函数等待指定通信设备发生事件。此函数监视的事件集包含在与设备句柄关联的事件掩码中。

BOOL WaitCommEvent(
    HANDLE  hCommDev,       // handle of communications device
    LPDWORD  lpfdwEvtMask,  // address of variable for event that occurred  
    LPOVERLAPPED  lpo,      // address of overlapped structure );

hCommDev 标识通信设备。CreateFile 函数返回此句柄。

lpfdwEvtMask 指向一个 32 位变量,该变量接收一个指示发生的事件类型的掩码。如果发生错误,则该值为零;否则,它是以下值之一:

你需要这个事件:

EV_BREAK输入时检测到中断。

你在这里有一个c++ 的例子

于 2013-11-14T07:54:39.040 回答