首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流控制Pyserial

流控制Pyserial
EN

Stack Overflow用户
提问于 2020-10-30 17:14:34
回答 1查看 293关注 0票数 0

我正在尝试控制从串行db9 RS232接收到的数据流,并且我正在使用Pyserial。通常我应该接收13个字节的数据,但我希望当发送器发送的数据超过13个字节时,我能够控制我的流量。为此,我想知道如何使用流控制选项,但我对此并不熟悉。那么谁能给我举个使用XonXoff、rtscts和dsrdtr的例子?谢谢你的帮忙!

Screenshot of my output

EN

回答 1

Stack Overflow用户

发布于 2020-10-30 20:35:50

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

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

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

额外的

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

系统崩溃真的发生了吗?

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

系统不会仅仅因为接收大量未使用的数据而崩溃。

您只需要足够的缓冲区来检查格式即可。

另外,数据真的很多吗?例如,如果您每50到100毫秒接收13个字节的数据,这根本不是一个很大的数据量。

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

也就是说,如果你想做点什么,请仔细阅读称重器的规格。

或者,向问题添加说明或提供指向规范文档的链接。

如果您的称重计不能停止使用流控制发送数据,那么您只是在浪费时间和精力,从而增加了出现错误的可能性。

如果你收到它几千到几百万次,即使它都在不同的区域,它可能最多也就几十兆字节。

发送和接收视频数据大约需要1分钟。

通常情况下,相同的区域被重用,因此不可能有这样的大小。

软件/系统bug无处不在,因此它们可能会因为某种原因而崩溃,但您尝试使用的称重工具可能会有大量用户在运行。

如果称重与当前的规格兼容,并且商店里没有任何问题,这意味着你不必做任何奇怪和焦虑的事情。

如果你仍然想尝试一下,你可以使用:

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

xonxoff

rtscts

dsrdtr

然而,缓冲器的大小是固定的,并且不能设置控制事件发生的大小和定时。

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

软件流程控制:

写入XON = 0x11,XOFF = 0x13。

Software flow control

硬件流量控制:

rtsdtr设置为True/False。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64605541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档