与 voltOTG usb 电压表通信的软件包
项目描述
电压OTG
与名为 voltOTG 的 USB 电压表接口的 Python 类
背景
在网上冲浪时,我发现了一个来自中国的名为“voltOTG”的15 美元电压表,它连接到智能手机,我觉得它听起来很有趣并订购了它。
当我拿到它时,我开始在 android 应用程序中使用它,并看到了一些潜力,例如用于记录电压的树莓派。所以我对usb通信进行了逆向工程并将它们写成一个python类
如何使用
基本的
自动连接到 voltOTG 阅读器
import voltotg
reader = voltotg.voltOTG()
reader.autoConnect()
手动连接
import voltotg
reader = voltotg.voltOTG()
reader.connectDevice("/dev/tt...")
每 10 秒读取和打印一次电压
import voltotg
from time import sleep
reader = voltotg.voltOTG()
reader.autoConnect()
while True:
volts = reader.reatVolt()
print(volts)
sleep(10)
执行串口命令(基本)
import voltotg
reader = voltotg.voltOTG()
reader.autoConnect()
command = "ReadVersion"
reply = reader.bcom(command)
print(reply)
执行串行命令(空回复故障安全*)
import voltotg
reader = voltotg.voltOTG()
reader.autoConnect()
command = "ReadVersion"
reply = reader.scom(command)
print(reply)
voltOTG 中可用的命令
| voltOTG 命令 | 串行命令 | 解释 |
|---|---|---|
| scom(命令) | 不适用 | 执行串行命令,返回回复,即使为空 |
| bcom(命令) | 不适用 | 执行串行命令,如果回复为空,则重试。返回回复或错误 |
| 连接设备(设备路径) | 不适用 | 尝试连接到指定设备 |
| 查找设备() | 不适用 | 通过匹配 VID:PID 来查找 voltOTG 设备 |
| 自动连接() | 不适用 | 运行 findDevice() 并使用对 connectDevice() 的回复 |
| getVersion(无,列表,版本,名称)(1) | 读版本 | 返回设备版本,默认只返回版本 |
| readVolt(无,列表,电压,信息,原始)(2) | 读取电压 | 默认只返回设备读取的电压 |
| readScale(none,list,scale,calib,raw) (3) | 读取刻度 | 默认只返回比例值 |
| setScale(浮点数,整数) | SetScale:int,float> | 设置比例值,无论是什么 |
| 读Pga() | 读Pga | 返回 PGA,并不是说我知道它的作用 |
| setPga(1,2,4,9) | SetPga:int>" | 设置 PGA,它会做一些我认为的事情 |
| 读取模式() | 读取模式 | 返回模式版本 |
| 设置模式(0,1) | 设置模式:int> | 设置模式,如果我知道模式是什么的话 |
(1): getVersion() 将返回版本号,getVersion(list=True) 将提供版本和名称,getVersion(name=True) 将仅返回名称,getVersion(version=True) 将与提供相同没有争论
(2):readVolt() 将返回以 mV 为单位的电压读数,readVolt(list=True) 将提供来自命令的更多信息,readVolt(raw=True) 将返回来自设备的原始回复,readVolt(info=True)返回一个奇怪的一次性内部代码文档, readVolt("voltage=True") 与没有参数一样,
(3) readScale() 将返回刻度值,readScale(list=True) 将返回刻度和校准列表,readScale(raw=True) 将返回设备的原始回复,readScale(calib=True) 将返回calib 值 readScale(scale=True) 与不提供参数相同
不在 voltOTG 中的设备上的命令
由于我不知道如何处理一致的数据流,前两个命令没有在包中实现,最后一个命令被简单地省略了,因为我认为实现自动归零功能是个坏主意,不确定是否我同意这一点了,虽然........
| 命令 | 解释 |
|---|---|
| 设置自动发送:1> | 激活一个命令,该命令导致设备每秒发送大约 1 伏读数,直到被告知停止 |
| 设置自动发送:0> | 停用设备的自动发送功能 |
| 置零 | 使设备获取当前读数并将其设置为将来读取的零点。"reader.bcom("SetZero") 将运行此命令 |