dataq di-2008的面向对象api

di2008的Python项目详细描述


目的

从任何python环境中为DATAQ DI-2008提供一个易于使用、面向对象的工具接口。

这个项目的目的不是提供一个在100%的用例中有用的api,而是针对90%的用例。根据我的经验,我们中的大多数人都需要非常基本的功能,并且在使用这种工具时只需要适度的时间要求。因此,api将试图抽象出最低级别的功能,这可能导致隐藏或丢失硬件中可用的功能实现。如果这种情况发生在你身上,请随意使用这里暴露的螺母和螺栓来通知你自己的发展,或者,更好的是,给我们一个拉的请求!

可以在readthedocs找到更完整的文档。

安装

必须先安装硬件驱动程序,然后才能使用此软件包。可以从manufacturer's product page下载硬件驱动程序。

安装驱动程序后:

$> pip install di2008

项目现状和未来

所提供的对象经过测试和演示,功能良好,但仍有一些功能尚未实现。

已完成标记的项。该列表是按优先级顺序排列的,标记出的项目已经完成。

  • 执行模拟扫描列表完成
  • 读取热电偶完成
  • 读取模拟输入完成
  • 读取速率输入完成
  • 读取事件输入
  • 读取计数器输入
  • 读取数字输入完成
  • 写入数字输出完成
  • 更好的硬件定时控制示例
  • 硬件同步

用法

关于使用的细节,用户阅读设备文档可能非常有帮助,以便更准确地解释本文中包含的一些概念。具体来说,“扫描列表”的概念对产品来说有些独特,很难抽象。随着项目的成熟,更多的硬件特性预计将暴露给用户。

硬件设置

将设备置于“COM”模式:

  1. 从USB断开连接
  2. 等待5秒
  3. 连接到USB并快速按下侧面的按钮,直到LED变亮

设备设置是永久性的,不需要再次更改。当设备处于适当模式时,您应该在设备管理器中看到标签为DATAQ DI-2008的COM端口。

软件设置

要读取一些模拟输入,设备设置相对简单。

  1. 定义端口
  2. 创建Di2008实例
  3. 添加扫描列表
  4. 开始扫描过程
  5. 在任何需要的时间读取输入,因为输入将被“实时”更新

一些示例代码可能更具启发性。设置扫描列表和每秒打印值的简单脚本:

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)

贡献

项目可能需要一些工作,特别是在文档中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Android中维护应用程序状态   javajavacc:如何指定在特定上下文中需要哪些令牌?   java为什么改型会在重新加载数据时设置以前的响应?   java如何将键转换为字符串,反之亦然   java JDOM解析器插入#固定手动属性   java按元素对XML数据排序?   java Android中有哪些哈希算法?   java为什么使用可选返回类型进行单元测试失败?   Gson和argonauts使用Gson将javascript数组转换为json字符串并转换为javapojo时遇到的问题。试图让我的结构正确   java中的空格   java SQLite高分,草率IndexOutofBounds Android   使用Spring OAUTH2的java Make客户端   netbeans如何在java中创建一个JPopupMenu,其中包含一个要复制文本的项