您似乎认为该传感器通信协议的行尾字符是4个不同的字符:表示,在许多编程语言中,它只是用\r表示(尽管它看起来像2个字符,但它只表示一个字符)。在

由于协议是结构化的,通过逐行读取传感器的数据,可以大大简化代码。以下是一些帮助您开始的方法:import time

def parse_info_line(line):

# implement to your own liking

logical_channel, physical_probe, hardware_id, crc = [line[index:index+2] for index in (1, 3, 5, 19)]

serialno = line[7:19]

return physical_probe

def parse_value_line(line):

channel, crc = [line[ind:ind+2] for ind in (1,7)]

encoded_temp = line[3:7]

return twos_comp(int(encoded_temp, 16), 16)/100.

def twos_comp(val, bits):

"""compute the 2's compliment of int value `val`"""

if (val & (1 << (bits - 1))) != 0: # if sign bit is set e.g., 8bit: 128-255

val = val - (1 << bits) # compute negative value

return val # return positive value as is

def listen_on_serial(ser):

ser.readline() # do nothing with the first line: you have no idea when you start listening to the data broadcast from the sensor

while True:

line = ser.readline()

try:

first_char = line[0]

except IndexError: # got no data from sensor

break

else:

if first_char == '@': # begins a new sensor record

in_record = True

elif first_char == '$':

in_record = False

elif first_char == 'I':

parse_info_line(line)

elif first_char == 'V':

print(parse_value_line(line))

else:

print("Unexpected character at the start of the line:\n{}".format(line))

time.sleep(2)

twos_comp函数是written by travc,当你有足够的声誉并且你打算使用他的代码时,鼓励你对他的答案投赞成票(即使你不愿意,这仍然是一个很好的答案,我刚才投了赞成票)。listen_on_serial也可以改进(许多Python程序员将识别开关结构并使用字典而不是if... elif... elif...)来实现它,但这只是为了让您开始。在

作为测试,下面的代码提取模拟传感器发送一些数据(以行分隔,使用回车符作为行尾标记),这些数据是我从您链接到的pdf中复制的(FAQ_terminalfenster_E.pdf)。在

^{pr2}$

请注意,当行尾字符不是\n(linefeed字符)时,recommended by the pyserial docs将使用TextIOWrapper(也就是answered here)。在

python读取usb数据显示_在python中从各种usb设备读取和存储各种数据相关推荐

  1. python打开并读取csv文件_!python3中使用使用read_csv( )读取csv文件,文件路径中含有中文,无法读取怎么处理?...

    python3如何根据csv文件的列的内容,自动建数据库表 你好,csv格式的和excel格式是差不多的, 下面是读取excel的一些函数,希望帮到你: # -*- coding: cp936 -*- ...

  2. 如何用python爬取视频_介绍Python爬取哔哩哔哩视频

    python视频教程栏目介绍如何爬取视频 本篇文章主要给大家讲解下如实使用python 爬取哔哩哔哩中的视频,首先我是一名大数据开发工程师,爬虫只是我的一个业余爱好,喜欢爬虫的小伙伴可以一起交流.好了 ...

  3. python关机usb端口_使用python关闭windows中的特定USB端口

    这是我的第一篇文章,我已经看到了越具体越好,所以我会尽量说得非常清楚,并提前感谢!在 我想要的: 我需要同时扫描2台或更多扫描仪的图像,这些扫描仪来自同一品牌和型号,在这种情况下爱普生完美V600,我 ...

  4. python 打印数组变量_使用Python将数组的元素导出到变量中(unpacking)

    下面就为大家分享一篇使用Python将数组的元素导出到变量中(unpacking),具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 最近工作中遇到一个问题,需要利用Python将数组(list ...

  5. c++读取utf8文件_【Python】File文件对象

    open()方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...

  6. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  7. python批量读取文本行_用Python读取几十万行文本数据

    我在使用python读取几十万行的文件中的数据,并构造字典,列表等数据结构时,再访问字典,列表时,一般都会出现内存不够的问题,然后只能循环读取几百行或者一定数量的行数来循环操作. keyword_li ...

  8. python读取第二行_使用Python操作Excel(二):读取数据表

    上一节我们提到,使用openpyxl可以方便的对数据表进行操作,例如:抽象Excel数据并存入数据库 将数据库数据导出到Excel 给一个已存在的数据表追加信息 我们还介绍了一些Excel的基本术语, ...

  9. python 追加到字典_使用Python读取,写入和解析JSON

    JSON是用于数据交换的轻量级数据格式,可以很容易地被人类读取和写入,也可以由机器轻松解析和生成.它是一种完全独立于语言的文本格式.为了处理JSON数据,Python有一个名为的内置包json. 示例 ...

最新文章

  1. hive中的绣花模型_hive建模方法
  2. java字符串拼接例子_Java详解【String】+【StringBuilder vs StringBuffer】+【字符串拼接】...
  3. LODOP使用问题解决汇总
  4. 布尔运算,二进制和门电路
  5. php首字母 大写 数组去重复
  6. 视觉SLAM十四讲学习笔记——第五讲--相机与图像
  7. System.arrayCopy()和普通数组复制之间的效率差别
  8. [软件更新]CuteFTP 8.3.3.0054
  9. 一招解决网页文字无法复制
  10. php支付宝封装类,android封装支付宝支付
  11. frida 挂钩_您必须知道的预提交挂钩
  12. 学习编程比学开车要简单
  13. RxSwift之深入解析Using操作的应用和原理
  14. 子网划分及NAT技术总结
  15. 自体验谷歌浏览器插件推荐
  16. Extjs新手教程代码
  17. 安卓设置keychain_使用Android KeyChain安全存储对称密钥
  18. 数据库查询_同时选修了两门课的学生姓名、学号
  19. 计算机视觉——SIFT描述子
  20. active password changer v3.0

热门文章

  1. c 语言 合并多个excel,C#操作Excel合并多个Excel文件
  2. 单片机拟真电路图软件_单片机电流检测电路图大全(四款模拟电路设计原理图详解)...
  3. 史上最全最实用的生活小窍门
  4. C 进阶内存四区(3)
  5. UE4 后期材质节点学习
  6. [NFC] 读羊城通卡片信息
  7. 基于Python SimpleHTTPServer.py的修改脚本:HTTP文件服务器,修正中文目录列表,支持视频文件在线播放
  8. Microsoft server2008的sql server身份验证出现18456错误
  9. JS区分中英文字符的两种方法
  10. 这个企业邮箱登陆入口更快捷