Pyserial 缓冲区填充速度快于我的读取速度

2023-11-21

我正在通过串口以 921600 的波特率从微控制器读取数据。我正在读取大量 ASCII csv 数据,由于数据输入速度如此之快,缓冲区已被填满,所有其余数据都会在之前丢失我能读懂。我知道我可以手动编辑serialwin32的pyserial源代码以增加缓冲区大小,但我想知道是否还有其他方法?

我只能估计我将收到的数据量,但大约是 200kB 的数据。


您是否考虑过在运行的单独线程中从串行接口读取数据prior发送命令给uC发送数据?

这将消除写入命令和开始读取之后的一些延迟。有其他SO用户那些使用这种方法取得成功的人,假设他们没有缓冲区溢出。

如果不清楚,请告诉我,我可以拼凑一些东西来展示这一点。

EDIT

再想一想,如果您尝试从缓冲区读取并将其写入文件系统,即使独立线程也可能无法拯救您。为了最大限度地减少处理时间,您可以考虑一次读取 100 个字节serial.Read(size=100)并在传输完成后将数据推送到队列中进行处理

伪代码示例

def thread_main_loop(myserialobj, data_queue):
    data_queue.put_no_wait(myserialobj.Read(size=100))

def process_queue_when_done(data_queue):
    while(1):
        if len(data_queue) > 0:
            poped_data = data_queue.get_no_wait()
            # Process the data as needed
        else:
            break;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pyserial 缓冲区填充速度快于我的读取速度 的相关文章

  • 如何屏蔽 PyTorch 权重参数中的权重?

    我正在尝试在 PyTorch 中屏蔽 强制为零 特定权重值 我试图掩盖的权重是这样定义的def init class LSTM MASK nn Module def init self options inp dim super LSTM
  • 为什么我不能导入 geopandas?

    我唯一的代码行是 import geopandas 它给了我错误 OSError Could not find libspatialindex c library file 以前有人遇到过这个吗 我的脚本运行得很好 直到出现此错误 请注意
  • 替换字符串列表中的 \x00 的最佳方法?

    我有一个来自已解析 PE 文件的值列表 其中包括 x00每个部分末尾的空字节 我希望能够删除 x00字符串中的字节而不删除所有字节 x 文件中的 s 我试过做 replace and re sub 但并没有取得太大成功 使用Python 2
  • 如何在 Ubuntu 上安装 Python 模块

    我刚刚用Python写了一个函数 然后 我想将其做成模块并安装在我的 Ubuntu 11 04 上 这就是我所做的 创建 setup py 和 function py 文件 使用 Python2 7 setup py sdist 构建分发文
  • Python 中的六边形自组织映射

    我在寻找六边形 自组织映射 http en wikipedia org wiki Self organizing map在Python上 准备好模块 如果存在的话 绘制六边形单元格的方法 将六边形单元作为数组或其他方式使用的算法 About
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • 反加入熊猫

    我有两个表 我想附加它们 以便仅保留表 A 中的所有数据 并且仅在其键唯一时添加表 B 中的数据 键值在表 A 和 B 中是唯一的 但在某些情况下键将出现在表 A 和 B 中 我认为执行此操作的方法将涉及某种过滤联接 反联接 以获取表 B
  • 使用 genfromtxt 导入 numpy 中缺失值的 csv 数据

    我有一个 csv 文件 看起来像这样 实际文件有更多的列和行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 假设文件的名称是info csv如果我尝试使用导入它 data numpy genfromtxt i
  • 使用Python将图像转换为十六进制格式

    我的下面有一个jpg文件tmp folder upload path tmp resized test jpg 我一直在使用下面的代码 Method 1 with open upload path rb as image file enco
  • 我可以使用 dask 创建 multivariate_normal 矩阵吗?

    有点相关这个帖子 https stackoverflow com questions 52337612 random multivariate normal on a dask array 我正在尝试复制multivariate norma
  • 在 Mac 上安装 Pygame 到 Enthought 构建中

    关于在 Mac 上安装 Pygame 有许多未解答的问题 但我将在这里提出我的具体问题并希望得到答案 我在 Mac 上安装 Pygame 时遇到了难以置信的困难 我使用 Enthought 版本 EPD 7 3 2 32 位 它是我的默认框
  • 字典中列表中仅有的几个索引的总和

    如果我有这种类型的字典 a dictionary dog white 3 5 black 6 7 Brown 23 1 cat gray 5 6 brown 4 9 bird blue 3 5 green 1 2 yellow 4 9 mo
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292
  • FastText - 由于 C++ 扩展未能分配内存,无法加载 model.bin

    我正在尝试使用 FastText Python APIhttps pypi python org pypi fasttext https pypi python org pypi fasttext虽然 据我所知 此 API 无法加载较新的
  • WindowsError:[错误 5] 访问被拒绝

    我一直在尝试终止一个进程 但我的所有选项都给出了 Windows 访问被拒绝错误 我通过以下方式打开进程 一个python脚本 test subprocess Popen sys executable testsc py 我想杀死那个进程
  • Python模块单元测试的最佳文件结构组织?

    遗憾的是 我发现有太多方法可以在 Python 中保存单元测试 而且它们通常没有很好的文档记录 我正在寻找一种 终极 结构 它可以满足以下大部分要求 be discoverable by test frameworks including
  • Scrapy 蜘蛛无法工作

    由于到目前为止没有任何效果 我开始了一个新项目 python scrapy ctl py startproject Nu 我完全按照教程操作 创建了文件夹和一个新的蜘蛛 from scrapy contrib spiders import
  • asyncio - 多次等待协程(周期性任务)

    我正在尝试为异步事件循环创建定期任务 如下所示 但是我收到 RuntimeError 无法重用已等待的协程 异常 显然 asyncio 不允许等待相同的可等待函数 如中讨论的这个错误线程 https bugs python org issu
  • 从 dask 数据框中的日期时间序列获取年份和星期?

    如果我有一个 Pandas 数据框和一个日期时间类型的列 我可以按如下方式获取年份 df year df date dt year 对于 dask 数据框 这是行不通的 如果我先计算 像这样 df year df date compute
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i

随机推荐

  • iOS 如何清除远程推送通知?

    所以我一直在阅读远程通知 并终于让它发挥作用 我们的应用程序正在接收来自我们服务器的通知 现在 如果我们的服务器满足特定条件 例如通知不再有效 我们希望删除或更新未读通知 我知道 静默 通知是唯一的方法 但我仍然对如何做到这一点感到困惑 如
  • 简单的 html 与 Javascript 生成的 html?

    在我的网络应用程序中 我想完全避免使用 html 并仅使用 javascript 来创建网页 dom 树 在 html 中以传统方式编写网页内容更快 div Some text div 或者使用 javascript dom render
  • 是否可以为 App Engine Flex 分配静态外部 IP?

    谷歌有文档为 App Engine Standard 设置外部 IP 但是 我需要为 App Engine Flex 设置外部 IP 我已按照教程操作 成功创建了一个带有连接到外部静态 IP 的 Cloud Router 和 Cloud N
  • 在 Python 调试器中中断成员函数

    这应该是一个微不足道的问题 但到目前为止我的搜索没有结果 我是第一次使用 Python 调试器 pdb 并且很高兴地发现使用 gdb 时熟悉的大多数命令 但是 当我去设置断点时parse 班级成员Jam解析器与声明 Pdb b JamPar
  • Delphi检查字符是否在'A'..'Z'和'0'..'9'范围内

    我需要检查字符串是否仅包含范围内的字符 A Z a z 0 9 所以我写了这个函数 function GetValueTrat aValue string string const number 0 9 const letter a z A
  • 将 ResultSet 传递到 Postgresql 函数中

    是否可以将 postgres 查询的结果作为输入传递到另一个函数中 作为一个非常人为的示例 假设我有一个查询 例如 SELECT id name FROM users LIMIT 50 我想创建一个函数my function它获取第一个查询
  • 从 TensorFlow 中给定的非均匀分布中进行无放回采样

    我正在寻找类似的东西numpy random choice range 3 replacement False size 2 p 0 1 0 2 0 7 在 TensorFlow 中 最近的Op看来是tf multinomial tf lo
  • 如何更新表中的 n 行?

    我需要更新表中满足条件的前 N 行 我知道我可以更新 Top N 但问题是 N 在 variable 中 UPDATE TOP N SET 不起作用 有没有办法做到这一点 我只是想念 这里没有特定的表定义 因为列是什么并不重要 如果我可以为
  • Java中的方法在某个位置创建文件,必要时创建目录?

    我正在尝试使用 java io 编写一个文件 我试图在该位置创建它 some path to somewhere then my file 创建文件时 路径上的任何目录可能存在 也可能不存在 我希望在需要时透明地创建目录 而不是因为没有这样
  • 多个微服务的 swagger 整合

    我有多个微服务 已经为其实现了 swagger 我想将所有 api 置于单个 swagger UI 下 我已按照以下链接执行此操作 但在STS的maven方法中尝试过 Swagger 合并 Github 示例 这是我在项目中的不同文件 Sp
  • jQuery.trigger() 函数后的回调

    我这里有一个小问题 我必须触发一个包含 post 的事件来加载表单并将其分配给 DOM 完成此操作后 我编辑了表单的字段 I tried when function type rank field trigger change calls
  • 以编程方式记录到 Sharepoint ULS

    我想在 Sharepoint Web 部件中记录内容 但我希望将其记录到 ULS 中 我发现的大多数示例都会登录到事件日志或其他文件 但我还没有真正找到用于登录 ULS 的示例 令人烦恼的是 Microsoft SharePoint Dia
  • 有没有办法获取类的变量和函数列表

    有没有办法获取类的变量和函数列表 例如 如果我的课程如下 class Person var age Int var name String func isOlder from person Person gt Bool func hasSa
  • 将 Redux 添加到现有的 React 应用程序

    我一直在开发一个 React 应用程序 并且已经到了需要 Redux 来处理它的某些方面的地步 在阅读了一堆教程之后 我相当困惑于如何使我的 更智能 的组件变得 更笨 并将函数移动到我的动作和减速器中 例如 该应用程序的一方面更像是待办事项
  • WPF 在同一个 ListCollectionView 上使用多个过滤器

    我使用 MVVM 设计模式 将 ListView 绑定到 ViewModel 上的 ListCollectionView 我还有几个用于过滤 ListView 的组合框 当用户从组合框中选择一个项目时 ListView 会过滤所选项目 每当
  • 如何从 pandas 数据帧在 MySQL 数据库中创建新表

    我最近从使用 SQLite 来满足大部分数据存储和管理需求 过渡到使用 MySQL 我想我终于安装了正确的库来使用 Python 3 6 但现在我在从 MySQL 数据库中的数据帧创建新表时遇到了问题 这是我导入的库 import pand
  • Primefaces 文件下载的非英文文件名已损坏

    我正在使用 Primefaces 3 2 我在使用 primefaces fileDownload 时遇到问题 我可以上传文件并将其非英文名称保留在服务器上 在我的情况下 这是俄语 但是 当我使用 p fileDownload 下载上传的文
  • 在 Azure WorkerRole 上运行 PowerShell 命令时出错

    我正在尝试在 Windows Azure 角色上运行启动任务 cmd 脚本 这是命令文件脚本的两行 powershell command set executionpolicy Unrestricted powershell command
  • 使用sklearn在PCA中恢复explained_variance_ratio_的特征名称

    我正在尝试从使用 scikit learn 完成的 PCA 中恢复 which特征被选择为relevant IRIS 数据集的经典示例 import pandas as pd import pylab as pl from sklearn
  • Pyserial 缓冲区填充速度快于我的读取速度

    我正在通过串口以 921600 的波特率从微控制器读取数据 我正在读取大量 ASCII csv 数据 由于数据输入速度如此之快 缓冲区已被填满 所有其余数据都会在之前丢失我能读懂 我知道我可以手动编辑serialwin32的pyserial