我可以将 xmodem 协议与 PySerial 一起使用吗?

2024-04-04

我通过 PySerial 与串行设备建立了工作连接,但我也想通过 xmodem 协议传输文件作为我的程序的一部分。

哪一种是最平台中立的方式来做到这一点?最坏的情况,我可以close() my serial.SerialPython中的对象及其使用subprocess呼吁/usr/bin/sb,但这似乎不优雅。

我目前使用的是 Ubuntu 9.10,并使用 USB-TTY 适配器。

有任何想法吗?


PyPi 上有 xmodem 模块。它在构造函数中需要两个函数来读取和写入数据,实现它们以与您打开的串行端口一起使用。下面是其用法的简单示例:

import serial
try:
    from cStringIO import StringIO
except:
    from StringIO import StringIO
from xmodem import XMODEM, CRC
from time import sleep

def readUntil(char = None):
    def serialPortReader():
        while True:
            tmp = port.read(1)
            if not tmp or (char and char == tmp):
                break
            yield tmp
    return ''.join(serialPortReader())

def getc(size, timeout=1):
    return port.read(size)

def putc(data, timeout=1):
    port.write(data)
    sleep(0.001) # give device time to send ACK


port = serial.Serial(port='COM5',parity=serial.PARITY_NONE,bytesize=serial.EIGHTBITS,stopbits=serial.STOPBITS_ONE,timeout=0,xonxoff=0,rtscts=0,dsrdtr=0,baudrate=115200)
port.write("command that loads data via xmodem\r\n")
sleep(0.02) # give device time to handle command
readUntil(CRC)
buffer = StringIO('data to send')
XMODEM(getc, putc).send(buffer, quiet = 1)
buffer.close()
readUntil()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将 xmodem 协议与 PySerial 一起使用吗? 的相关文章

  • Python Numpy TypeError:输入类型不支持 ufunc 'isfinite'

    这是我的代码 def topK dataMat sensitivity meanVals np mean dataMat axis 0 meanRemoved dataMat meanVals covMat np cov meanRemov
  • 在Python中解析空选项

    我有一个应用程序 允许您将事件数据发送到自定义脚本 您只需布置命令行参数并指定什么事件数据与什么参数相匹配 问题是这里没有真正的灵活性 您制定的每个选项都将被使用 但并非每个选项都必须有数据 因此 当应用程序构建要发送到脚本的字符串时 某些
  • 在 Windows 上使用 Python 打开设备句柄

    我正在尝试使用 Giveio sys 驱动程序 该驱动程序需要先打开一个 文件 然后才能访问受保护的内存 我正在查看 WinAVR AVRdude 中的 C 示例 它使用以下语法 define DRIVERNAME giveio HANDL
  • 是否可以在 SQLAlchemy 中创建一个可以创建父记录的事件侦听器?

    有两个表 父表和子表 我想创建一个事件监听器 触发器 如果孩子没有父母 它可以创建父母 这就是我试图做的 class parent db Model tablename parent id db Column db Integer prim
  • 为什么我在 Python 中收到“连接被拒绝”错误? (插座)

    我是套接字新手 请原谅我完全缺乏理解 我有一个服务器脚本 server py usr bin python import socket import the socket module s socket socket Create a so
  • PyKCS11 不可哈希列表

    我的 python 脚本旨在获取特定 so 库中插槽 令牌的详细信息 输出如下所示 Library manufacturerID Safenet Inc Available Slots 4 Slot no 0 slotDescription
  • Unpickle 二进制文件为文本[重复]

    这个问题在这里已经有答案了 我需要对基本上如下所示的系统进行一些维护 复杂的遗留Python程序 gt 二进制pickle文件 gt 另一个复杂的遗留Python程序 这需要准确弄清楚中间 pickle 文件中的内容 我怀疑文件格式比生成和
  • Python - 如何将双引号附加到字符串并存储为新字符串?

    我正在使用 Python 2 6 并且想将双引号附加到字符串并将其存储为新的字符串变量 我不想打印它 但稍后在我的 python 脚本中使用它 例如 a apple b some function a gt b would be equal
  • 使用 boto 和 python 从带有参数的布局创建 mTurk HIT

    我正在尝试利用 boto 在 Mechanical Turk 中生成 HIT 目标是使用我的 mTurk 帐户上已生成的通用布局 并向其传递图像 URL 以迭代创建 HIT 问题是 即使正确命名参数 如果图像 url boto 也不成功 我
  • scipy 的 curve_fit 函数的尺寸问题

    我对 python 中的曲线拟合以及一般的 python 都很陌生 目前 我正在尝试使用 scipy 中的 curve fit 模块来拟合 4 个光谱峰 简而言之 我的文本文件中有两列数据 所以我的第一步是将数据导入到两个数组中 一个包含
  • 在用户提交的正则表达式中查找捕获组

    我有一个 python 应用程序 需要处理用户提交的正则表达式 出于性能考虑 我想禁止捕获组和反向引用 我的想法是使用另一个正则表达式来验证用户提交的正则表达式不包含任何命名或未命名的组捕获 如下所示 def validate user r
  • 有没有更快的方法将数字转换为名称?

    以下代码定义了映射到数字的名称序列 它的设计目的是获取一个号码并检索一个特定的名称 该类通过确保名称存在于其缓存中来进行操作 然后通过索引到其缓存中来返回名称 问题在这 如何在不存储缓存的情况下根据数字计算出名称 该名称可以被认为是一个以
  • Python Peeweeexecute_sql() 示例

    我使用 Peewee 模块作为我的项目的 ORM 我看了整个文档 没有明确的 有关如何处理 db execute sql 结果的示例 我跟踪代码 只能发现db execute sql 返回游标 有谁知道如何处理光标 例如迭代它并获取 返回复
  • 插入失败“OperationalError:没有这样的列”

    我尝试使用我尝试修复的姓名和电话创建一个数据库 但它会随时向我重播 File exm0 py line 14 in
  • numpy.polyfit 没有关键字“cov”

    我试图使用 polyfit 来找到一组数据的最佳拟合直线 但我还需要知道参数的不确定性 所以我也想要协方差矩阵 在线文档建议我写 polyfit x y 2 cov True 但这给出了错误 类型错误 polyfit 得到了意外的关键字参数
  • python中不规则点之间的坐标列表

    想象一下 我们为 x 和 y 随机选择两个介于 0 到 100 之间的点 例如 95 7 35 6 现在使用简单的 pygame draw line 函数 我们可以轻松地在这些点之间绘制一条没有任何间隙的线 我的问题是 我们如何找到两点之间
  • 如何通过pygit2获取当前签出的Git分支名称?

    这个问题应该与 如何获取Git中当前的分支名称 https stackoverflow com questions 6245570 how to get current branch name in git 获取 git 当前分支 标签名称
  • Mac OS 上的 pybluez 安装错误

    我尝试安装pybluez使用以下命令 pip install pybluez sudo easy install pybluez 但对于这两个命令我最终都会出错 环境 Mac OSX 10 9 1 Python 2 7 点日志 cc fno
  • 将数值和分类数据混合到具有密集层的 keras 序列模型中

    我在 Pandas 数据框中有一个训练集 我将此数据框传递到model fit with df values 以下是有关 df 的一些信息 df values shape 981 5 df values 0 array 163 0 6 83
  • launchd执行python脚本,但导入失败

    我使用 appscript 编写了一个 python 脚本来跟踪我当前活动的窗口 我通过 launchd 运行它 但是当我这样做时 它无法导入 appscript 我已经在 launchd 的 plist 中设置了 PYTHONPATH 但

随机推荐

  • 对所有当前播放的视频执行一个 AVPlayer 的 AVPlayerItemDidPlayToEndTime 操作

    问题 在有播放器的集合视图单元格中 如果我同时播放两个视频并寻找第一个视频结束然后AVPlayerItemDidPlayToEndTime发射了两次并且两个视频都重新启动 在集合视图单元格中我有 override func awakeFro
  • SQL 到 outfile - 文件存储在哪里? (MySQL、Windows)

    我正在使用 MySQL 并希望将以下查询的结果存储在我的计算机本地的 csv 文件中 SELECT INTO OUTFILE mysqlresults csv FIELDS TERMINATED BY OPTIONALLY ENCLOSED
  • 当给定这个模式与整数值匹配时,为什么 scala 会抱怨?

    Goal 编写一个函数 生成一个排除指定字符 由索引标识 的新字符串 Example takeAllExcept 0 abc 回报bc takeAllExcept 1 abc 回报ac takeAllExcept 2 abc 回报ab 我最
  • Visual Studio 2010 - 推荐的扩展[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 启动时加载 FastAPI 项目中的模型

    所以我目前正在开发一个为多种 NLP 服务提供服务的 FastAPI 项目 为此 我想提供来自 spacy 和 Huggingface 的不同模型 自从那些模型相当大的推理时间为每个发布请求加载模型相当长 我的想法是在 FastAPI 启动
  • 如何更改handleError?

    我有 jquery 脚本 它应该向我的文件发送响应 如果一切顺利 我会成功 但如果错误 我应该得到错误函数 但我得到jQuery handleError is not a function jQuery handleError s xml
  • 为 Python 3 安装 ipdb? [复制]

    这个问题在这里已经有答案了 我安装了ipdb https pypi python org pypi ipdb using pip 但我仍然得到 ImportError No module named ipdb 我还需要做其他事情才能引入这个
  • module.exports 返回未定义

    我目前是新来的Node JS 今天我试图read文件中的数据data json 这是 JSON 文件 username rahul v7 password 9673 username 7vik password 3248 username
  • phpmyadmin - Mysql 没有权限

    我在 Windows 7 上安装了 wamp 2 1 但是 当我打开 phpMyAdmin 时 出现错误 Mysql No Provileges 我卸载了wamp并重新安装了几次 但没有帮助 有谁知道如何解决这个问题 另外 当我尝试从 my
  • 使用 JavaScript 打开和关闭 CKEditor 4 内联编辑

    我需要能够使用按钮打开 关闭内联编辑 请参阅此处的内联编辑示例 http nightly v4 ckeditor com 3559 samples inlineall html http nightly v4 ckeditor com 35
  • 在 C 系列中,在循环中为什么“小于或等于”比“小于”符号更受青睐? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 为什么在 C 系列语言中 当我们对任何循环使用计数器时 最优选的比较是Greater Equal To lt 或者它的倒数 请看一下这三段代码
  • 使用 css 绘制图像内的曲线

    是否可能以及如何在图像顶部和底部内制作一条曲线 请参见图像 我怎样才能用CSS实现这一点 将您的图像设置为 div 上的背景图像并使用此技术 我在示例中使用了纯红色 这里我使用伪元素来创建顶部和底部的曲线 请注意 顶部和底部偏移量是每个伪元
  • Mockito:验证来自内部匿名类的方法调用

    我有一个正在测试的类 其中包含一个具有内部匿名类的方法 匿名类中的方法之一调用被测类中的方法 但 Mockito 似乎没有意识到这一点 public class ClassUnderTest Dependency dependency pu
  • C# 中的 SplitContainer 拆分器?

    i am using a split container For some reason the splitter looks like this 很难看到 就是两条黑线中间那条微弱的两条线 我该如何解决这个问题并在两条线之间添加填充 我使
  • Log4Net 可用于 adoappender 的数据库字段 - 似乎还有更多,即 method_name?

    我最近创建了简单的 log4net 数据库表 用于通过 adonet 附加程序进行日志记录 并且它有效 但后来我注意到另一个网站使用额外的字段 看 哇 我很想知道在哪里可以获得可用字段名称的列表 例如 Method name 真的让我思考
  • 使用相对导入路径时 Aurelia 捆绑失败

    我将 aurelia 与 typescript 一起使用 我想避免使用相对导入路径 例如 import DialogBox from resources elements dialog box 反而 import DialogBox fro
  • 具有unpivot自动抓取列列表(oracle 11g)

    这是一个后续问题将一行转置为多行 Oracle https stackoverflow com questions 2344403 transpose one row into many rows oracle 我希望能够反转任意查询结果
  • ubuntu 12.04 中 android-ndk-r9d-linux-x86 的 ndk-gdb 出现错误

    我在ubuntu 12 04中使用android ndk r9d linux x86的ndk gdb来调试android本机应用程序 hello jni 但它收到此错误 WARNING The shell running this scri
  • 无限滚动抓取网站

    我写了很多抓取工具 但我不太确定如何处理无限滚动条 如今 大多数网站 例如 Facebook Pinterest 都有无限滚动条 您可以使用 selenium 废弃 twitter 或 facebook 等无限滚动网站 步骤 1 使用 pi
  • 我可以将 xmodem 协议与 PySerial 一起使用吗?

    我通过 PySerial 与串行设备建立了工作连接 但我也想通过 xmodem 协议传输文件作为我的程序的一部分 哪一种是最平台中立的方式来做到这一点 最坏的情况 我可以close my serial SerialPython中的对象及其使