dataq di-2008的面向对象api
di2008的Python项目详细描述
目的
从任何python环境中为DATAQ DI-2008提供一个易于使用、面向对象的工具接口。
这个项目的目的不是提供一个在100%的用例中有用的api,而是针对90%的用例。根据我的经验,我们中的大多数人都需要非常基本的功能,并且在使用这种工具时只需要适度的时间要求。因此,api将试图抽象出最低级别的功能,这可能导致隐藏或丢失硬件中可用的功能实现。如果这种情况发生在你身上,请随意使用这里暴露的螺母和螺栓来通知你自己的发展,或者,更好的是,给我们一个拉的请求!
可以在readthedocs找到更完整的文档。
安装
必须先安装硬件驱动程序,然后才能使用此软件包。可以从manufacturer's product page下载硬件驱动程序。
安装驱动程序后:
$> pip install di2008
项目现状和未来
所提供的对象经过测试和演示,功能良好,但仍有一些功能尚未实现。
已完成标记的项。该列表是按优先级顺序排列的,标记出的项目已经完成。
执行模拟扫描列表完成读取热电偶完成读取模拟输入完成读取速率输入完成- 读取事件输入
- 读取计数器输入
读取数字输入完成写入数字输出完成- 更好的硬件定时控制示例
- 硬件同步
用法
关于使用的细节,用户阅读设备文档可能非常有帮助,以便更准确地解释本文中包含的一些概念。具体来说,“扫描列表”的概念对产品来说有些独特,很难抽象。随着项目的成熟,更多的硬件特性预计将暴露给用户。
硬件设置
将设备置于“COM”模式:
- 从USB断开连接
- 等待5秒
- 连接到USB并快速按下侧面的按钮,直到LED变亮
设备设置是永久性的,不需要再次更改。当设备处于适当模式时,您应该在设备管理器中看到标签为DATAQ DI-2008
的COM端口。
软件设置
要读取一些模拟输入,设备设置相对简单。
- 定义端口
- 创建
Di2008
实例 - 添加扫描列表
- 开始扫描过程
- 在任何需要的时间读取输入,因为输入将被“实时”更新
一些示例代码可能更具启发性。设置扫描列表和每秒打印值的简单脚本:
from time import sleep
from di2008 import AnalogPort, RatePort, Di2008
# create each of the inputs that need to be sampled
an0 = AnalogPort(1, analog_range=10.0, filter='average')
an1 = AnalogPort(2, thermocouple_type='j')
an2 = AnalogPort(3, thermocouple_type='j')
rate = RatePort(5000)
daq = Di2008()
daq.create_scan_list(
[an0, an1, an2, rate]
)
daq.start()
while True:
print(f'{an0.value:.02f}')
print(f'{an1.value:.02f}')
print(f'{an2.value:.02f}')
print(f'{rate.value:.02f}')
print()
sleep(1.0)
贡献
项目可能需要一些工作,特别是在文档中。