Python监控串口(RS-232)握手信号

2023-11-25

我需要监控串口信号(RI、DSR、CD、CTS)的状态。 使用“串行”库进行循环和轮询(例如使用函数 getRI)的 CPU 强度太大,并且响应时间不可接受。

有没有用python的解决方案?


在 Linux 上,可以通过阻塞系统调用 TIOCMIWAIT 使用基于中断的通知来监视 RS-232 端口信号引脚的状态变化:

from serial import Serial
from fcntl import  ioctl
from termios import (
    TIOCMIWAIT,
    TIOCM_RNG,
    TIOCM_DSR,
    TIOCM_CD,
    TIOCM_CTS
)

ser = Serial('/dev/ttyUSB0')

wait_signals = (TIOCM_RNG |
                TIOCM_DSR |
                TIOCM_CD  |
                TIOCM_CTS)

if __name__ == '__main__':
    while True:
        ioctl(ser.fd, TIOCMIWAIT, wait_signals)
        print 'RI=%-5s - DSR=%-5s - CD=%-5s - CTS=%-5s' % (
            ser.getRI(),
            ser.getDSR(),
            ser.getCD(),
            ser.getCTS(),
        )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python监控串口(RS-232)握手信号 的相关文章

  • xlrd.biffh.XLRDError:Excel xlsx 文件;不支持[重复]

    这个问题在这里已经有答案了 我正在尝试使用读取启用宏的 Excel 工作表pandas read excel与 xlrd 库 它在本地运行良好 但是当我尝试将其推送到 PCF 时 我收到此错误 2020 12 11T21 09 53 441
  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • 即使页面未完全加载,我们也可以使用 Selenium 获取页面源吗(TimeoutException: Message: timeout)?

    即使遇到 TimeoutException Message timeout 也能获取页面源码吗 当我调用 driver page source 时 有时无法加载整页 但我只需要它的部分信息 尚未确定 所以我只想在任何情况下保存页面 是否可以
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 更新 Sqlalchemy 中的多个列

    我有一个在 Flask 上运行的应用程序 并使用 sqlalchemy 与数据库交互 我想用用户指定的值更新表的列 我正在使用的查询是 def update table value1 value2 value3 query update T
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • Python Pandas 根据另一列的总计从另一个数据帧中选择值

    我下面有一个 DataFrame 但我需要根据取消和订单列从每个代码中选择行 假设代码 xxx 的阶数为 6 1 5 1 阶数为 11 我需要一种算法 可以选择满足总共 11 行的行 阶数为 6 5 如果没有行匹配 则选择最接近的 id 并
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 与 while 循环一样,如何跳过 for 循环中的步骤?

    我尝试像 while 循环一样跳过 for 循环中的几个步骤 在 while 循环中 步骤根据特定条件进行调整 如下面的代码所示 i 0 while i lt 10 if i 3 i 5 else print i i i 1 result
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • Python 惰性迭代器

    我试图了解迭代器表达式如何以及何时被求值 以下似乎是一个懒惰的表达 g i for i in range 1000 if i 3 i 2 然而 这个在构造上失败了 g line strip for line in open xxx r if
  • Python]将两个文本文件合并为一个(逐行)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是蟒蛇新手 我想做的是将文件 a 和文件 b 逐行合并到一个文件中 例如 text file a a n b n c text fi
  • 对数据帧的每 2 小时数据进行 Groupby

    我有一个数据框 Time T201FN1ST2010 T201FN1VT2010 1791 2017 12 26 00 00 00 854 69 0 87 1792 2017 12 26 00 20 00 855 76 0 87 1793
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm

随机推荐

  • 在 C/C++ 源代码中包含 Git 提交哈希和/或分支名称

    我想知道如何将 Git 提交哈希和 或其他信息获取到已编译二进制文件中 C 变量的内容中 而不使其成为 Git 跟踪的源代码的一部分 我需要跟踪在嵌入式处理器上运行的已编译可执行文件中的固件版本信息 在这种封闭环境 即没有文件系统 中 无法
  • 添加登录名并使用 SQL Server 身份验证连接到 SQL

    我想在 SQL Server 2008 中添加一个用户 这样我就可以使用 SQL Server 身份验证而不是 Windows 身份验证来连接到 SQL 并尝试使用以下代码创建一个具有登录名的用户 CREATE login newLog w
  • SQL Server 2008 中唯一的日期范围字段

    我有一个表 其中包含两个名为 StartTime 和 EndTime 的字段 两者都是 TIME 字段 我想添加一个约束 防止插入与预先存在的时间范围重叠的任何记录 例如 如果已存在 StartTime 5 00 EndTime 10 00
  • 如何使用本地phpMyAdmin客户端访问远程服务器?

    假设有一个远程服务器 并且我在我的计算机上本地安装了 phpMyAdmin 客户端 如何通过 phpMyAdmin 客户端访问该服务器并对其进行管理 那可能吗 只需将以下行添加到您的 etc phpmyadmin config inc ph
  • Microsoft.CSharp.Core.targets 丢失

    我正在使用构建工具 2017 在 TFS 2017 Update 3 上构建 Web 服务项目 出现以下错误 C Program Files x86 Microsoft Visual Studio 2017 Enterprise MSBui
  • 如何将依赖项注入动态加载的程序集

    我有一个管理器类 它通过反射加载单独程序集中包含的各种插件模块 该模块用于与外界通信 WebAPI 各种其他网络协议 public class Manager public ILogger Logger Modules need to ac
  • 服务器端仅接受 FileField 中的某种文件类型

    我该如何限制FileField服务器端以一种优雅的方式只接受某种类型的文件 视频 音频 pdf 等 一种非常简单的方法是使用自定义验证器 在您的应用程序中validators py def validate file extension v
  • 通过Android Studio更改应用程序包名称

    我知道这个问题在 SO 中被问过好几次 我已经检查了下面发布的答案 但对我不起作用 解决方案1 解决方案2 目前 我的应用程序的包名称是 com example test 我想把它改成 com example test test1 所以 我
  • 基于内容的水平居中 UICollectionView

    我有一个水平 UICollectionView 工作正常 但我想在不需要滚动时将单元格居中 IE if所有单元格都能够适合视图宽度并且用户不需要滚动then将单元格居中 if所有单元格都无法适合视图宽度并且用户需要滚动then不要将单元格居
  • 语句前的感叹号 (!) 有何作用? [复制]

    这个问题在这里已经有答案了 我试图通过在笔记本中输入以下内容来在 Jupyter 笔记本中安装深色主题 pip install jupyterthemes jt t chesterish 第一个命令有效 但第二个命令出现一些错误 然后我写了
  • Bash for 带有空格的循环

    我想做这样的事情 COMMANDS ls df du hs Devel for i in COMMANDS do echo i done 结果将是 ls df du hs Devel 但我找不到空格的正确语法 COMMANDS ls df
  • EclipseLink/Maven 存储库去了哪里? (再次)

    是的 我知道 主题之前被问过 但存储库又移动了 有人看过吗 我将非常感激 A 快速搜索显示一长串镜像 其中大多数返回 404 但它们的缓存条目仍然可见 目前 因此 这些文件似乎确实已从源头删除 而且是最近才删除的 以下是一些仍具有文件的镜像
  • iOS:是否可以同时从多个麦克风录音

    所有最新的 iPhone 都有 2 个以上麦克风 是否可以同时从所有麦克风进行录音 如果可能的话 最好的 iOS 音频库是什么 AudioKit EzAudio AudioUnits CoreAudio AudioKit 和 EzAudio
  • eclipse ini 配置

    实际上我和我的朋友正在尝试学习和使用 eclipse 3 4 我们在工作时遇到一些堆内存问题 我的朋友建议增加 eclipse ide 的内存分配 因为他有 4GB RAM 并且他想分配足够的堆 分配合适的烫发大小 并启用并行垃圾收集到这个
  • 是否可以向 ELB 后面的所有实例发送广播消息?

    我想将更新发送到 ELB 后面的所有实例 我更喜欢发送更新而不是从实例端轮询 是否可以向 ELB 发送一条消息 该消息将广播到所有实例 不直接 不 一种编程解决方法是查询 ELB API 以发现运行状况良好的实例的身份 然后查询 EC2 A
  • SpVoice 和 SpeechSynthesizer 之间有什么区别

    在 C 中使用语音 API 或的这两种方法有什么区别SAPI using SpeechLib SpVoice speech new SpVoice speech Speak text SpeechVoiceSpeakFlags SVSFla
  • Mysql查询中的除法

    我有 2 个不同的查询将返回值 1502 00 和 6 SELECT replace CURRENT VALUE curVal FROM form attributes values WHERE TEST ID 2 AND ATTRIBUT
  • 获取数据:image/png;base64,{{image}} net::ERR_INVALID_URL

    我想使用 Angular js 转换从服务器获取的图像数据 用于 ionic framework 我使用了以下代码 http post link token token reservationCode reservationCode suc
  • 每当在 wpf 中滚动任何一个 ScrollViewer 时,两个 ScrollViewer 就会同步滚动

    我已经浏览过该线程 将两个垂直滚动条相互绑定 它几乎帮助实现了目标 但仍然缺少一些东西 左右或上下移动滚动条可以在我的两个滚动查看器中提供预期的滚动行为 但是当我们尝试使用 单击滚动查看器中这些滚动条末端的箭头按钮进行滚动时 只有一个滚动查
  • Python监控串口(RS-232)握手信号

    我需要监控串口信号 RI DSR CD CTS 的状态 使用 串行 库进行循环和轮询 例如使用函数 getRI 的 CPU 强度太大 并且响应时间不可接受 有没有用python的解决方案 在 Linux 上 可以通过阻塞系统调用 TIOCM