Python 流量控制Pyserial

Python 流量控制Pyserial,python,serial-port,pyserial,flow-control,Python,Serial Port,Pyserial,Flow Control,我试图控制从串行db9 RS232接收的数据流,我使用的是Pyserial。 正常情况下,我应该接收13字节的数据,但当发送器发送的数据超过13字节时,我希望能够控制我的流量。为此,我想知道如何使用流量控制选项,但我对此并不熟悉。 那么,有谁能给我举一些关于使用XonXoff、rtscts和dsrdtr的例子吗? 谢谢你的帮助 串行端口流控制控制缓冲区大小和缓冲区中的数据量,以防止缓冲区溢出,这不是您想要的 它也不能保证精确的大小或时间 您可以选择接受接收到的所有数据,分析其内容并剪切数据块,或

我试图控制从串行db9 RS232接收的数据流,我使用的是Pyserial。 正常情况下,我应该接收13字节的数据,但当发送器发送的数据超过13字节时,我希望能够控制我的流量。为此,我想知道如何使用流量控制选项,但我对此并不熟悉。 那么,有谁能给我举一些关于使用XonXoff、rtscts和dsrdtr的例子吗? 谢谢你的帮助


串行端口流控制控制缓冲区大小和缓冲区中的数据量,以防止缓冲区溢出,这不是您想要的

它也不能保证精确的大小或时间

您可以选择接受接收到的所有数据,分析其内容并剪切数据块,或者以命令/响应或ENQ/ACK/NAK格式与其他设备建立自己的协议,一次只发送一个数据块


此外:

权重值固定后,您可以检查数据是否有效,直到发生某个事件,然后丢弃数据本身。仅仅因为您收到数据并不意味着它必须由主应用程序(POS?)使用


系统崩溃真的发生了吗

难道不是因为你不完全了解情况而产生的恐惧、不确定或怀疑吗

系统不会因为接收大量未使用的数据而崩溃。
您只需要足够的缓冲区来检查格式

还有,数据真的很多吗?例如,如果您每50到100毫秒接收13个字节的数据,那么数据量一点也不大

更有可能的是,在处理它的应用程序的处理过程中存在错误


也就是说,如果你想做些什么,请仔细阅读秤的规格

或者,为问题添加说明或提供到规范文档的链接

如果您的体重秤无法通过流量控制停止发送数据,那么您只是在浪费时间和精力,增加了出现错误的可能性


如果你收到它数千到数百万次,即使它都在不同的区域,也可能最多只有几十兆。
发送和接收视频数据大约需要1分钟。
通常,相同的区域会被重复使用,因此不可能有这样的大小

软件/系统缺陷无处不在,因此它们可能会因某种原因崩溃,但您尝试使用的磅秤可能会有大量用户在运行。
如果体重秤按照当前的规格工作,商店里没有问题,这意味着你不必做任何奇怪和焦虑的事情

如果您仍想尝试,可以使用:


如果要让PySerial模块或系统进行控制,可以将以下选项之一设置为true



但是,缓冲区的大小是固定的,无法设置控制事件发生的大小和时间


如果您想自己控制它,您可以将上述所有规范设置为False,然后自己执行以下操作

软件流控制:
写入XON=0x11,XOFF=0x13。

硬件流控制:

将or设置为True/False。

我已经修改了我的问题,因此您可以看到我代码的输出以及我得到的差异。当我在cmd上进行选择时,我的代码被卡住了,但我的设备仍然通过RS232发送数据,所以这是我的问题。我想告诉设备停止发送数据。我不想关闭et重新打开序列…而且我不能修改设备的设置我知道你的想法,但这只是一个简单的细节。我最初的问题是,我将在很长的时间内运行我的代码,这意味着我可能会收到大量不可用的数据,因此它可能会导致我的系统随时崩溃…直到现在它还没有崩溃,因为我只测试了几秒钟这个错误。现在,在不超过5秒钟的测试中,收到的字节数增加了100。想象一下,运行应用程序几天,这个bug不知从哪里冒出来。。。由于这个原因,我认为我的系统会在某个地方崩溃。顺便说一下,我使用了ser.readline()。是的,我认为你是对的,我可能是在浪费时间,因为在文档中没有提到流控制是可以控制的。因此,我想问一些关于XONXOFF的例子,在不清楚的地方做我的测试好的,非常感谢你的建议!我将尝试自己控制流量,并更新我的问题以获取任何消息