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程序在minecraft中移动minecraft角色的相机   java输出文本文件中的变量   java LazyLoadingException在我尝试从多通关系获取对象时出现   java json rest API的错误:ClassCastException:org。json。无法将JSONObject强制转换为组织。json。杰索纳雷   java BigInteger。C中的intValue()等价物#   java大写所有字符,但不包括带引号字符串中的字符   java获取特殊字符   javascript为什么Selenium中的所有getX()调用都需要这么长时间?   rabbitmq rabbitmq java客户端并行消费   如何使用selenium Java在popover窗口中提取文本   对象在java中构造一类对象   java Room数据库未实现   json JSONObject可以使用java保存大的格式化双值吗?   有时限的旅行推销员   java HttpsURLConnection openConnection查询   java无法使用Spring@Entity注释创建MySQL表   lambda Java 8仅映射到值类型集合   java提供OSGi服务而不实现接口   java单个对象重写对象数组,不确定原因