WaveForms™ SDK 参考手册(翻译笔记与总结)

概述

        WaveForms 提供了一个接口,允许用户与 Digilent Analog Design 硬件进行交互,例如 Analog DiscoveryTM、Analog Discovery 2TM、Analog Discovery ProTM、Digital DiscoveryTM、Discovery Power SupplyTM 和 Electronics ExplorerTM。虽然 WaveForms 应用程序提供优化的图形界面,但 WaveForms SDK 提供对公共应用程序编程接口 (API) 的访问,使用户能够创建自定义 PC 应用程序。

        本 WaveForms SDK 手册描述了 WaveForms 系统的主要组件和架构,并详细介绍了 WaveForms API 中包含的每个功能。SDK 软件包还提供了演示如何识别、连接和控制模拟硬件设备的示例。

1 系统

        WaveForms 系统由多个组件组成。最明显的组件是 WaveForms 应用程序;一套图形仪表板,可完全访问连接硬件中的模拟和数字仪器。WaveForms 应用程序使用 WaveForms Runtime 与设备进行通信。

        对于自定义应用程序,仅访问 WaveForms Runtime就足够了,但目标计算机上需要这两个运行时才能运行应用程序。

        WaveForms Runtime 由 DWF 动态库和多个配置文件组成。该库位于:

        • 系统目录中的 Windows:C: \Windows\System32\dwf.dll

        • Linux:/usr/lib/libdwf.so.x.x。

        静态库位于 Windows 中,通过安装路径:

        • Windows 32 位:C:\Program Files (x86)\Digilent\WaveFormsSDK\lib\x86

        • Windows 64 位:C:\Program Files (x86)\Digilent\WaveFormsSDK\lib\x64

        • Windows ARM64:C:\Program Files (x86)\Digilent\WaveFormsSDK\lib\arm64

        • Windows ARM64EC:C:\Program Files (x86)\Digilent\WaveFormsSDK\lib\arm64ec

        C 头文件位于:

        • Windows 32 位:C:\Program Files\Digilent\WaveFormsSDK\inc

        • Windows 64 位:C:\Program Files (x86)\Digilent\WaveFormsSDK\inc

        • Linux:/usr/include/digilent/waveforms

        SDK 提供了工作代码示例,以演示每个 API 函数集的基本用法。您可以在安装目录中找到示例,这些目录位于以下位置:

         • Windows 32 位:C:\Program Files\Digilent\WaveFormsSDK\samples

        • Windows 64 位:C:\Program Files (x86)\Digilent\WaveFormsSDK\samples

        • Linux:/usr/share/digilent/waveforms/samples

        • OS X:/Applications/WaveForms.app/Contents/Resources/SDK/

        DWF 库使用 Digilent Adept Runtime,它提供与目标硬件仪器(即 Analog Discovery 和 Electronics Explorer)的基本通信。尽管 Adept Runtime 是 WaveForms 系统不可或缺的一部分,但编写自定义应用程序并不需要了解其结构。

        在 Mac OS X 上,WaveForms Runtime(包括 Adept Runtime)安装到:

        • /Library/Frameworks/dwf.framework

        示例路径包含以下目录:

        • py:几个 Python 脚本示例

        • C:一些 C 代码示例

        • cs:C# 包装器,用于 API 函数的 dwf 类

        • vb:VisualBasic 包装器,用于 API 函数的 dwf 模块

        • dwfcmd:复杂的 C 示例应用程序

1.1 API

        编写自定义应用程序所需的一切都包含在 WaveForms SDK 中,它提供了访问 DWF 库 API 的头/库文件和文档。自定义应用程序必须正确链接到这些文件才能进行适当的 API 函数调用。WaveForms 公共 API 中的每个函数都在 dwf.h 头文件中声明

        WaveForms API 的基本用法可以分解为以下步骤:

        1. 调用枚举函数enumeration functions以发现连接的硬件设备。

        2. 调用 FDwfDeviceOpen 函数以建立与特定硬件设备的连接

        3. 调用功能在硬件设备内启用仪器。

        4. 调用函数来配置仪器和采集/生成信号。

        5. 调用功能禁用仪器。

        6. 调用 FDwfDeviceClose 函数以断开与设备的连接。

        API 函数主要有 9 组,每组都以不同的前缀命名

API 函数的主要组
 
仪器功能
 
前缀
设备枚举Device Enumeration控制已连接设备和支持设备的枚举。DwfEnum
设备控制Device Control控制打开和关闭特定设备。DwfDevice
AnalogIn(示波器)同步从每个启用的通道采集样本。DwfAnalogIn
AnalogOut(任意波形发生器)独立驱动来自每个通道的信号。DwfAnalogOut
模拟IO采集和驱动各种模拟信号DwfAnalogIO
DigitalIn(逻辑分析仪Logic Analyzer从数字 I/O 引脚采集样本。DwfDigitalIn
DigitalOut(模式发生器)驱动数字 I/O 信号。DwfDigitalOut
数字IO采集和驱动数字 I/O 信号。DwfDigitalIO
系统获取独立于仪器和设备的基本系统信息DwfGet

 每

        每台仪器都使用 API 中的三种类型的功能直接控制

API 函数仪器功能
复位功能此函数将所有仪器参数重置为默认值。

FDwfAnalogInReset

FDwfAnalogOutReset

FDwfDigitalIOReset

配置功能此功能配置和/或启动仪器。

FDwfAnalogInConfigure

FDwfAnalogOutConfigure   FDwfDigitalIOConfigure

状态功能此函数轮询并读取仪器中的所有信息。

FDwfAnalogInStatus

FDwfAnalogOutStatus

FDwfDigitalIOStatus

        注意:尽管每种仪器都有多个“状态”功能,但这些功能是唯一实际从设备读取数据的功能。

        dwf.h include 文件中有多个类型定义和相应的常量。它们中的大多数用作参数。打开硬件设备时,将返回一个句柄 (HDWF),该句柄用于访问并最终关闭所有仪器 API 函数。

        以下示例以 Python 和 C++ 语言提供。

文件
Device_Enumeration列出支持和连接的设备。
AnalogIO_AnalogDiscovery_SystemMonitor读取系统监控信息
DigitalIO驱动和读取数字 IO 引脚
DigitalOut_Pins在数字输出引脚上生成脉冲、随机和自定义信号。
DigitalOut_BinaryCounter生成二进制计数器
DigitalIn_Acquisition在数字输出时生成信号,在数字输入时进行采集。
DigitalIn_Record对样品中的大量数字进行记录

        要编译 c/cpp 应用程序并将其链接到 dwf 库,请使用:

        窗口:gcc device_enumeration.cpp -L../../lib/x86 -ldwf

        Linux:gcc device_enumeration.cpp -ldwf

        MacOS:gcc device_enumeration.cpp -F /Library/Frameworks -framework dwf

        iinstall_name_tool -add_rpath /Library/Frameworks a.out

        或add dwf.framework to your app bundle/Frameworks

1.2 调用 API 函数

        API 函数是 C 样式,返回一个整数值:如果调用成功,则返回 1,如果不成功,则返回 0。可以使用 FDwfGetLastError 和 FDwfGetLastErrorMsg 函数获取有关失败的详细信息。通常,API 函数包含以下参数的变体:

参数函数
*Info返回有关仪器参数支持的详细信息(即最小值/最大值、支持的模式等)
*Set设置仪器参数。启用自动配置(默认情况下)后,仪器将重新配置并停止。
*Get获取实际的仪器参数。使用此函数获取实际设置值。例如,设置任意电压失调,Get 返回实际 DAC 输出值。
*Status从设备返回参数值。

        当参数指针为 NULL 或设置 (*Set) 参数值超出限制时,API 函数不会失败。若要验证实际设置值,请使用 *Get API 返回实际值。

        函数参数中使用的索引从零开始。支持的离散参数以位字段值检索。

        若要对设备的功能进行解码,请使用 IsBitSet 宏

int fsfilter;
FDwfAnalogInChannelFilterInfo(h, &fsfilter)
if(IsBitSet(fsfilter, filterAverage)){
 FDwfAnalogInChannelFilterSet(hdwf, 0, filterAverage)
}

        为了获得更好的性能,建议在打开设备后禁用自动配置。这将阻止每个 FDwf*Set 调用与设备通信,这可能需要相当长的时间。

        FDwfDeviceAutoConfigureSet(hdwf, 0)

        有关最终错误的详细信息可以如下所示:

bool myFunction(){
 if(!FDwf…(…)) return false
 if(!FDwf…(…)) return false
 …
 return true
}
if(!myFunction()){
 char szError[512]
 FDwfGetLastErrorMsg(szError)
 print(szError)
}

2 系统

2.1 FDwfGetLastError

        FDwfGetLastError(DWFERC *pdwferc)

2.1.1 说明

        检索调用过程中的最后一个错误代码。调用其他 API 函数时会清除错误代码,并且仅在 API 函数在执行过程中失败时设置错误代码。错误代码在 dwf.h 中声明:

        参数:

        - pdwferc – 接收错误 cod 的变量

2.2 FDwfGetLastErrorMsg

        FDwfGetLastErrorMsg(char szError[512])

        说明:检索最后一条错误消息。这可能由一串消息组成,这些消息由换行符分隔,用于描述导致故障的事件。

        参数:

        - szError – 指向缓冲区的指针以接收错误字符串。

2.3 FDwfGetVersion

        FDwfGetVersion(char szVersion[32])

        说明:检索版本字符串。版本字符串由主要版本号、次要版本号和内部版本号(即“2.0.19”)组成。

        参数:

        - szVersion – 指向缓冲区的指针以接收版本字符串。

2.4 FDwfParamSet

        FDwfParamSet(DwfParam param, int value)

        描述:配置将应用于新打开的设备的各种全局参数

        参数:

        - param – 指向缓冲区的指针以接收版本字符串。

        - value – 要设置的值。

2.5 FDwfParamGet

        FDwfParamGet(DwfParam param, int *pValue)

        描述:检索参数值。

        参数:

        - param – 参数。

        - pValue – 指向值的指针。

3 设备枚举

        FDwfEnum 函数用于发现所有连接的兼容设备。

        请参阅示例:Device_Enumeration.py、Device_Info.py、Device_InfoEx.py。

3.1 FDwfEnum

        FDwfEnum(ENUMFILTER enumfilter, int *pnDevice)

3.1.1 说明

        生成按 enumfilter 参数筛选的检测到的设备的内部列表。在使用其他 FDwfEnum 函数之前,必须调用它,因为它们从设备索引标识的此列表中获取有关枚举设备的信息。

# device ID
devidEExplorer   = c_int(1)
devidDiscovery   = c_int(2)
devidDiscovery2  = c_int(3)
devidDDiscovery  = c_int(4)
devidADP3X50     = c_int(6)
devidADP5250     = c_int(8)
devidDPS3340     = c_int(9)
ENUMFILTER枚举过滤器int
enumfilterAll0枚举所有受支持的设备
DEVIDdevid使用 devid 过滤特定设备
enumfilterType0x8000000与以下过滤器结合使用
enumfilterUSB0x0000001USB 设备
enumfilterNetwork0x0000002网络设备
enumfilterAXI0x0000004嵌入式设备
enumfilterRemote0x1000000远程表设备
enumfilterAudio0x2000000声卡设备
enumfilterDemo0x4000000演示设备
# device enumeration filters
enumfilterAll        = c_int(0)

enumfilterType     = c_int(0x8000000)
enumfilterUSB      = c_int(0x0000001)
enumfilterNetwork  = c_int(0x0000002)
enumfilterAXI      = c_int(0x0000004)
enumfilterRemote   = c_int(0x1000000)
enumfilterAudio    = c_int(0x2000000)
enumfilterDemo     = c_int(0x4000000)

3.1.2 参数

        - enumfilter – 用于设备枚举的筛选器值。使用 enumfilterAll 常量发现所有兼容设备或“enumfilterType|enumfilterUSB“

        - pnDevice – 整数指针,用于按引用返回找到的设备的计数。

3.1.3 示例

        - FDwfEnum(enumfilterAll, &nDev) # 列出所有设备

        - FDwfEnum(devidDiscovery3, &nDev) # 列出 Analog Discovery 3 设备

        - FDwfEnum(enumfilterType|enumfilterUSB|enumfilterAXI, &nDev) # 列出 USB 和 AXI 设备

3.2 FDwfEnumStart

        FDwfEnumStart(ENUMFILTER enumfilter)

        说明:开始枚举设备。FDwfEnum 的非阻塞替代方案。

        参数: - enumfilter – 用于设备枚举的筛选器值。使用 enumfilterAll 常量可发现所有兼容设备。

3.3 FDwfEnumStop

        FDwfEnumStop(int *pnDevice)

        说明:停止枚举并转动检测到的设备数。在 FDwfEnumStart 之后调用此函数。

        参数:

        - pnDevice – 整数指针,用于按引用返回找到的设备的计数

3.4 FDwfEnumDeviceType

        FDwfEnumDeviceType(int idxDevice, DEVID *pDeviceId, DEVVER *pDeviceRevision)

        说明:返回设备 ID 和版本 ID。

        参数:

        - idxDevice – 要返回其类型和修订版本的枚举设备的从零开始的索引。

        - pDeviceId – 返回设备 ID 的变量。

        - pDeviceRevision – 指向 DEVVER 实例的指针,用于通过引用返回设备修订。

3.5 FDwfEnumDeviceIsOpened

        FDwfEnumDeviceIsOpened(int idxDevice, int *pfIsUsed)

        说明:检索一个布尔值,该布尔值指定设备是否已由此进程或任何其他进程打开。

        参数: - idxDevice – 枚举设备的索引。- pfIsUsed – 指向变量的指针,用于接收指示设备是否正在使用的布尔值。

3.6 FDwfEnumUserName

        FDwfEnumUserName(int idxDevice, char szUserName[32]) 说明:检索枚举设备的用户名。

3.6.1 参数

        - idxDevice – 枚举设备的索引。

        - szUserName – 指向字符数组的指针,以通过引用返回用户名字符串。

3.7 FDwfEnumDeviceName

        FDwfEnumDeviceName(int idxDevice, char szDeviceName[32])

3.7.1 说明

        检索枚举设备的设备名称。

3.7.2 参数

        - idxDevice – 枚举设备的索引。

        - szDeviceName – 指向字符数组的指针,以通过引用返回设备名称。

3.8 FDwfEnumSN

        FDwfEnumSN(int idxDevice, char szSN[32])

3.8.1 说明

        检索枚举设备的 12 位唯一序列号。

3.8.2 参数

         - idxDevice – 枚举设备的索引。- szSN – 指向字符数组的指针,用于通过引用返回序列号

3.9 FDwfEnumConfig

        FDwfEnumConfig(int idxDevice, int *pcConfig)

3.9.1 说明

        为所选设备生成检测到的配置的内部列表。在使用其他 FDwfEnumConfigInfo 函数之前,必须调用上述函数,因为这会从配置索引标识的此列表中获取有关配置的信息。

3.9.2 参数

        - idxDevice – 枚举设备的索引。

        - pcConfig – 整数指针,用于按引用返回找到的配置的计数.

3.10 FDwfEnumConfigInfo

        FDwfEnumConfigInfo(int idxConfig, DwfEnumConfigInfo info, int *pValue)

        说明:返回有关配置的信息。这些用于在打开设备之前提供初步信息。有关各种 FDwf#Info 函数的更多信息。

        参数: - idxConfig – 要返回信息的配置索引。- info – 信息类型。- pValue – 整数指针,用于按引用返回所选信息类型。

4 设备控制

        请参阅Device_Synchronization.py示例。

4.1 FDwfDeviceOpen

        FDwfDeviceOpen(int idxDevice, HDWF *phdwf)

        说明:

        打开枚举索引标识的设备并检索句柄。若要自动枚举所有连接的设备并打开第一个发现的设备,请使用索引 -1。

        参数:

                idxDevice – 枚举设备的从零开始的索引。

                phdwf – 指向 HDWF 变量的指针,用于通过引用接收打开的接口句柄.

4.2 FDwfDeviceConfigOpen

        FDwfDeviceConfigOpen(int idxDevice, int idxCfg, HDWF *phdwf)

        说明:使用所选配置打开由枚举索引标识的设备,并检索句柄。

        参数:

                idxDevice – 枚举设备的索引。

                idxCfg – 设备配置的索引。

                phdwf – 指向 HDWF 变量的指针,用于通过引用接收打开的接口句柄.

4.3 FDwfDeviceOpenEx

        FDwfDeviceOpenEx (const char *szOpt, HDWF *phdwf)

        说明:打开设备并检索句柄。

        参数: - szOpt – 用换行符分隔的选项,如“index:0nconfig:1”。- phdwf – 指向 HDWF 变量的指针,用于通过引用接收打开的接口句柄.

4.4 FDwfDeviceClose

        FDwfDeviceClose (HDWF hdwf)

        说明:当不再需要访问设备时关闭接口句柄。返回上述功能后,无法再使用指定的接口句柄访问设备。

        参数: - hdwf – 要关闭的接口句柄。

4.5 FDwfDeviceCloseAll

        FDwfDeviceCloseAll()

        说明:通过调用过程关闭所有打开的设备。它不会关闭所有进程中的所有设备。

        参数:无。

4.6 FDwfDeviceEnableSet

        FDwfDeviceEnableSet (HDWF hdwf, int fEnable)

        说明:启用(默认)或禁用设备输出。

        参数: - hdwf – 要关闭的接口句柄。- fEnable – 将 TRUE 设置为启用,将 FALSE 设置为禁用。

4.7 FDwfDeviceAutoConfigureSet

        FDwfDeviceAutoConfigureSet (HDWF hdwf, int fAutoConfigure) 说明:启用或禁用特定设备的自动配置设置。启用此设置后,每次设置仪器参数时都会自动配置设备。例如,启用 AutoConfigure 后,不需要在 FDwfAnalogOutRunSet 之后调用 FDwfAnalogOutConfigure。这会增加每个 Set 函数的延迟;延迟与之后直接调用相应的 Configure 函数一样多。当值为 3 时,模拟输出配置将动态应用,而无需停止仪器。

参数: 

        - hdwf – 接口句柄。

        - fAutoConfigure– 此选项的值:0 禁用、1 启用、3 动态

4.8 FDwfDeviceAutoConfigureGet

        FDwfDeviceAutoConfigureGet (HDWF hdwf, int *pfAutoConfigure)

        说明:返回设备中的自动配置设置。有关此设置的详细信息,请参阅 FDwfDeviceAutoConfigureSet 的函数说明。参数: - hdwf – 接口句柄。- pfAutoConfigure – 指向变量的指针以接收此选项的当前值。

4.9 FDwfDeviceReset

        FDwfDeviceReset(HDWF hdwf) 说明:重置所有设备和仪器参数并将其配置(默认情况下,启用自动配置)为默认值。参数: - hdwf – 接口句柄

4.10 FDwfDeviceParamSet

        FDwfDeviceParamSet (HDWF hdwf, DwfParam param, int value) 描述:为相应设备配置各种参数。参数: - param – 指向缓冲区的指针以接收版本字符串。- value – 要设置的值

4.11 FDwfDeviceParamGet

        FDwfDeviceParamGet (HDWF hdwf, DwfParam param, int *pValue) 说明:检索参数值。参数: - param – 参数。- pValue – 指向值的指针。

全局触发总线允许多个仪器相互触发。这些触发源选项包括:

TRIGSRCBYTE

5.2 配置

5.2.1 FDwfAnalogInFrequencyInfo

        FDwfAnalogInFrequencyInfo (HDWF hdwf, double *phzMin, double *phzMax)

        描述: 检索最小和最大(ADC 频率)可设置的采样频率。

        参数: - hdwf – 接口句柄。- phzMin – 返回最小允许频率的指针.- phzMax – 返回最大允许频率的指针.

5.2.2 FDwfAnalogInFrequencySet

        FDwfAnalogInFrequencySet(HDWF hdwf, double hzFrequency)

        描述: 设置仪器的采样频率。

        参数: - hdwf – 接口句柄。- hzFrequency – 要设置的采集频率。

5.2.3 FDwfAnalogInFrequencyGet

        FDwfAnalogInFrequencyGet (HDWF hdwf, double *phzFrequency)

        说明:读取配置的采样频率。AnalogIn ADC始终以最大频率运行,但可以使用FDwfAnalogInChannelFilterSet功能为每个通道单独配置存储样本的方法。

        参数: - hdwf – 接口句柄。- phzFrequency – 接收采集频率的变量

5.2.4 FDwfAnalogInBitsInfo

        FDwfAnalogInBitsInfo(HDWF hdwf, int *pnBits)

        描述:检索AnalogIn ADC使用的位数。

        参数: - hdwf – 接口句柄。- pnBits – 用于接收ADC位数的变量。

5.2.5 FDwfAnalogInBufferSizeInfo

        FDwfAnalogInBufferSizeInfo(HDWF hdwf, int *pnSizeMin, int *pnSizeMax)

        说明:返回仪器的最小和最大允许缓冲区大小。

        参数: - hdwf – 接口句柄。- pnMin – 返回最小缓冲区大小的指针.- pnMax – 返回最大缓冲区大小的指针.

5.2.6 FDwfAnalogInBufferSizeSet

        FDwfAnalogInBufferSizeSet (HDWF hdwf, int nSize)

        说明: 调整 AnalogIn 仪器缓冲区大小。

        参数: - hdwf – 接口句柄。- nSize – 要设置的缓冲区大小。

FDwfAnalogInBufferSizeGet (HDWF hdwf, int *pnSize) 说明:返回使用的 AnalogIn 仪器缓冲区大小。参数: - hdwf – 接口句柄。- pnSize – 用于接收当前缓冲区大小的变量。

5.2.11 FDwfAnalogInAcquisitionModeInfo

        FDwfAnalogInAcquisitionModeInfo(HDWF hdwf, int *pfsacqmode)

        描述:返回支持的 AnalogIn 采集模式。它们作为位字段返回(通过引用)。可以使用 IsBitSet 宏分析此位字段。使用 dwf.h 中的 ACQMODE 常量定义各个位。采集模式选择以下模式之一,即 ACQMODE:

ACQMODE模式int恒定的能力
acqmodeSingle0执行单个缓冲区采集,并在使用 FDwfAnalogInStatus 或 FDwfDigitalInStatus 函数将数据提取到主机后重新武装仪器以进行下一次捕获。这是默认设置。
acqmodeScanShift1以 FIFO 样式执行连续采集。触发器设置将被忽略。最后一个示例位于缓冲区的末尾。
The FDwfAnalog|DigitalInStatusSamplesValid 函数用于显示采集的样本数,该样本数将一直增长,直到达到 BufferSize。
然后,每个新样本的波形“图片”都会发生偏移。
acqmodeScanScreen2执行连续采集,循环将样品写入缓冲液。触发器设置将被忽略。IndexWrite 显示缓冲区写入位置。这类似于心脏监护仪显示器。
acqmodeRecord3通过将数据流式传输到主机来执行记录采集。
acqmodeOvers4对于ADP3000器件系列,相对于其他乐器(模拟输出、数字输入/输出),连续捕获在四个阶段中移动,或者它与 acqmoeSingle 相同。
acqmodeSingle15在不重新武装仪器的情况下执行单个缓冲液采集。

        参数:

        - hdwf – 接口句柄。

        - pfsacqmode – 返回支持的采集模式的指针.

6.3 状态

        请参阅 FDwfDeviceTriggerInfo 的说明。

6.3.1 FDwfAnalogOutTriggerSourceSet

FDwfAnalogOutTriggerSourceSet(HDWF hdwf, int idxChannel, TRIGSRC trigsrc)

        描述:设置仪器上通道的触发源。

        参数: - hdwf – 设备上的开放接口句柄。- idxChannel – 通道索引。- trigsrc – 要设置的触发源。

6.3.2 FDwfAnalogOutTriggerSourceGet

FDwfAnalogOutTriggerSourceGet (HDWF hdwf, int idxChannel, TRIGSRC *ptrigsrc)

        说明:获取仪器上通道的当前触发源设置。

        参数: - hdwf – 设备上的开放接口句柄。- idxChannel – 通道索引。- ptrigsrc – 指向变量的指针以接收触发源.

        FDwfAnalogOutTriggerSlopeSet( HDWF hdwf, int idxChannel, DwfTriggerSlope slope)

        说明:设置仪器上通道的触发斜率。参数: - hdwf – 设备上的开放接口句柄。- idxChannel – 通道索引。- slope – 触发要设置的斜率。

9 Digital In(逻辑分析仪)

        Digital In 仪器状态:

        状态在 dwf.h DwfState 类型中定义

   """
    // instrument states:
    typedef unsigned char DwfState;
    const DwfState DwfStateReady        = 0;
    const DwfState DwfStateConfig       = 4;
    const DwfState DwfStatePrefill      = 5;
    const DwfState DwfStateArmed        = 1;
    const DwfState DwfStateWait         = 7;
    const DwfState DwfStateTriggered    = 3;
    const DwfState DwfStateRunning      = 3;
    const DwfState DwfStateDone         = 2;
    const DwfState DwfStateNotDone      = 6;
    """

        - 仪器配置或设置

        - 就绪Ready初始状态。FDwfDigitalInConfigure 或任何 FDwfDigitalIn*Set 函数调用进入此状态后。使用 FDwfDigitalInConfigure,重新配置将进入“配置”状态。

        - 配置:数字输入自动触发被重置。

        - 预填充:在触发之前用所需的样品预填充缓冲液。

        - 武装:等待触发。

        - 运行中:对于single acquisition单次采集模式,保持此状态,以便在 FDwfDigitalInTriggerPositionSet 设置触发后采集样本。扫描屏幕和移位模式一直保持,直到配置或设置本仪器的任何功能。

        - 完成Done:最终状态。

        请参阅以下示例:DigitalIn_Acquisition/Record.py。

9.1 控制

9.1.1 FDwfDigitalInReset

        FDwfDigitalInReset(HDWF hdwf)

        说明:将所有 DigitalIn 仪器参数重置并配置(默认情况下,启用自动配置)为默认值。

        参数:

                hdwf – 接口句柄。

9.1.2 FDwfDigitalInConfigure

        FDwfDigitalInConfigure(HDWF hdwf, int fReconfigure, int fStart)

        描述:配置仪器并启动或停止采集。要重置自动触发超时,请将 fReconfigure 设置为 "true"

        参数:

                hdwf - 接口句柄。

                fReconfigure - 配置设备。

                fStart - 开始采集。

9.1.3 FDwfDigitalInStatus

        FDwfDigitalInStatus(HDWF hdwf, int fReadData, DwfState *psts)

        描述:检查仪器的状态。要从设备读取数据,将 fReadData 设为 TRUE。对于单次采集模式,只有在采集完成后才会读取数据。

        参数:

                hdwf - 接口句柄。

                fReadData - 如果要读取数据,则设置为 TRUE。

                psts - 用于接收采集状态的变量。

9.1.4 FDwfDigitalInStatusSamplesLeft

        FDwfDigitalInStatusSamplesLeft(HDWF hdwf, int *pcSamplesLeft)

        描述:读取采集过程中剩余的样本数

        参数:

                hdwf - 接口句柄。

                pcSamplesLeft - 用于接收剩余采集样本的变量。

9.1.5 FDwfDigitalInStatusSamplesValid

        FDwfDigitalInStatusSamplesValid(HDWF hdwf, int *pcSamplesValid)

        描述: 读取有效/已获取数据采样的数量。

        参数:

                hdwf - 接口句柄。

                pcSamplesValid - 接收有效采样数量的变量。

9.1.6 FDwfDigitalInStatusIndexWrite

        FDwfDigitalInStatusIndexWrite(HDWF hdwf, int *pidxWrite)

        描述: 读取缓冲区写指针。在 ScanScreen 采集模式下需要使用该指针来显示扫描条。

        参数:

                hdwf - 接口句柄。
                pidxWrite - 用于接收采集位置的变量。

9.1.7 FDwfDigitalInStatusAutoTriggered

        FDwfDigitalInStatusAutoTriggered(HDWF hdwf, int *pfAuto)

        描述:验证采集是否自动触发。        

        参数:

                hdwf - 接口句柄。

                pfAuto - 如果采集是自动触发的,则返回 "true"。

9.1.8 FDwfDigitalInStatusTime

        FDwfDigitalInStatusTime(HDWF hdwf, unsigned int * psecUtc, unsigned int * ptick, unsigned int * pticksPerSecond)

        描述: 检索仪器触发时间信息。With ADP3000 返回高精度设备计数值。这在器件之间无法精确同步,但可用于测量系统频率(如100或125MHz)的触发距离,分辨率为10或8ns。使用其他设备返回主机时间。

参数:

         - hdwf – 接口句柄。

        - psecUtc –自当地时区 Epoch 1970-01-01T00:00:00Z 以来经过的秒数。

        - pTick – 自第二次计数以来的其他刻度,例如 0 到 999,999,999 或 124,999,999 - pticksPerSecond – 秒内的刻度数,如 100M 或 125M。

9.1.9 FDwfDigitalInStatusData

        FDwfDigitalInStatusData(HDWF hdwf, void *rgData, int countOfDataBytes)

        描述:从仪器获取数据样本。它将数据采样复制到提供的缓冲区中。采样格式由FDwfDigitalInSampleFormatSet 函数指定。

        参数:hdwf - 接口句柄。

                   rgData - 分配用于复制采集数据的缓冲区指针。

                  countOfDataBytes - 要复制的字节数。

9.1.10 FDwfDigitalInStatusData2

        FDwfDigitalInStatusData2(HDWF hdwf, void *rgData, int idxSample, int countOfDataBytes)

        说明:它将数据样本复制到提供的缓冲区。示例格式由 FDwfDigitalInSampleFormatSet 函数指定。

        参数:

                hdwf – 接口句柄。

                rgData – 指向分配的缓冲区的指针,用于复制采集数据.

                idxSample – 要复制的第一个示例索引。

                countOfDataBytes – 要复制的字节数。

9.1.11 FDwfDigitalInStatusNoise2

        FDwfDigitalInStatusNoise2 (HDWF hdwf, void *rgData, int idxSample, int countOfDataBytes)

        描述:它将噪声样本复制到提供的缓冲区。可以使用 DwfDigitalInSampleModeNoise 启用噪声捕获。

        参数:

                hdwf – 接口句柄。

                rgData – 指向分配的缓冲区的指针,用于复制采集数据.

                idxSample – 要复制的第一个示例索引。

                countOfDataBytes – 要复制的字节数

9.1.12 FDwfDigitalInStatusRecord

        FDwfDigitalInStatusRecord 函数是一个用于检索有关录制过程信息的函数。这个函数主要用于在数字信号录制过程中捕捉和分析数据损失和数据损坏的情况。

        数据损失:当设备的数据采集速度超过了数据传输到电脑的速度时,会发生数据损失。这种情况通常是因为设备的录制缓冲区被填满,导致新的数据样本覆盖了旧的数据样本。

        数据损坏:如果在上一次读取过程中,数据采集过程覆盖了数据样本,那么这些样本就会被标记为损坏。这表明数据样本在被读取之前已经被新的采集数据覆盖

        FDwfDigitalInStatusRecord(HDWF hdwf, int *pcdDataAvailable, int *pcdDataLost, int *pcdDataCorrupt)

        描述:读取有关记录过程的信息。当设备采集速度快于向 PC 的读取速度时,就会发生数据丢失。在这种情况下,设备记录缓冲区被填满,数据样本被覆盖。损坏的样本表明样本已在上次读取过程中被采集过程覆盖。在这种情况下,可尝试优化循环过程以加快执行速度,或降低采集频率或记录长度,使其小于或等于设备缓冲区大小(记录长度 ⇐ 缓冲区大小/频率)。

        参数:

                hdwf - 接口句柄。

                pcdDataAvailable - 用于接收可用采样数的变量指针。

                pcdDataLost - 变量指针,用于接收上次检查后丢失的采样。

                pcdDataCorrupt - 变量指针,用于接收可能损坏的采样数目。
 

函数的参数说明如下:

- `hdwf`:接口句柄,用于标识与设备的连接。

- `pcdDataAvailable`:指向整数的指针,该整数用于接收可用的样本数量。

- `pcdDataLost`:指向整数的指针,该整数用于接收自上次检查后丢失的样本数量。

- `pcdDataCorrupt`:指向整数的指针,该整数用于接收可能已损坏的样本数量。

        通过调用此函数,可以有效地监控和调整数字输入设备的数据录制过程,以确保数据的完整性和准确性。

        为了减少数据损失和损坏的情况,可以尝试以下几种优化方法:

        1. 优化循环处理过程,使其执行更快。

        2. 减少数据采集的频率。

        3. 将记录长度设置为不大于设备缓冲区大小的限制(记录长度应小于等于缓冲区大小除以频率)。

9.2 配置

9.2.1 FDwfDigitalInInternalClockInfo

        FDwfDigitalInInternalClockInfo(HDWF hdwf, double *phzFreq)

9.2.1.1 描述

        检索内部时钟频率。

9.2.1.2 参数

        hdwf – 接口句柄。

        phzFreq – 返回内部时钟频率的指针.

9.2.2 FDwfDigitalInClockSourceInfo

        FDwfDigitalInClockSourceInfo(HDWF hdwf, int *pfsDwfDigitalInClockSource)

9.2.2.1 说明

        返回数字输入仪器支持的时钟源。它们作为位字段返回(通过引用)。可以使用 IsBitSet 宏分析此位字段。使用 dwf.h 中的 DwfDigitalInClockSource 常量定义各个位: • DwfDigitalInClockSourceInternal:内部时钟。• DwfDigitalInClockSourceExternal:外部时钟源。

9.2.2.2 参数

                hdwf – 设备上的开放接口句柄。

                pfsDwfDigitalInClockSource– 指向变量的指针以返回可用的时钟源选项。

9.2.3 FDwfDigitalInClockSourceSet

        FDwfDigitalInClockSourceSet(HDWF hdwf, DwfDigitalInClockSource v)

9.2.3.1 描述

        设置仪器的时钟源。

9.2.3.2 参数

                hdwf – 设备上的开放接口句柄。

                v – 时钟源。

9.2.4 FDwfDigitalInClockSourceGet

        FDwfDigitalInClockSourceGet(HDWF hdwf, DwfDigitalInClockSource *pv)

        说明:获取仪器的时钟源。

        参数:

        hdwf – 设备上的开放接口句柄。

        pv – 指向变量的指针以返回配置的值

9.2.5 FDwfDigitalInDividerInfo

        FDwfDigitalInDividerInfo(HDWF hdwf, unsigned int *pdivMax)

        说明:返回支持的最大时钟分频器值。这指定采样率。

        参数:

        hdwf –接口句柄。

        pdivMax – 指向变量的指针以返回可用的最大除法值.

9.2.6 FDwfDigitalInDividerSet(HDWF hdwf, unsigned int div)

        说明:设置时钟分频器值。

        参数:

        hdwf – 接口句柄。

        div – 分隔线值。

9.2.7 FDwfDigitalInDividerGet

        FDwfDigitalInDividerGet (HDWF hdwf, unsigned int *pdiv)

        说明:获取配置的时钟分频器值。

        参数:

        hdwf – 接口句柄。

        pdiv – 返回配置值的指针。

9.2.8 FDwfDigitalInBitsInfo

        FDwfDigitalInBitsInfo(HDWF hdwf, int *pnBits)

        说明:返回数字输入位数。

        参数:

        hdwf – 接口句柄。

        pnBits – 指向变量的指针以返回位数.

9.2.9 FDwfDigitalInInputOrderSet

        FDwfDigitalInInputOrderSet (HDWF hdwf, int fDioFirst)

        说明:配置采样数组中存储的值的顺序。如果 fDIOFirst = true DIO24..39 放在数组的开头,后跟 DIN0。23. 使用 fDIOFirst = false DIN0..23 放在开头,然后是 DIO24。31. 仅对数字检索设备有效。

        参数:

        hdwf – 接口句柄。

        fDioFirst – DIO 或 DIN 线从索引零开始

9.2.10 FDwfDigitalInSampleFormatSet

        FDwfDigitalInSampleFormatSet(HDWF hdwf, int nBits)

        说明:设置采样格式,从最低有效位开始的位数。有效选项为 8、16 和 32。

9.2.10.2 参数

        hdwf – 接口句柄。

        nBits – 示例格式。

9.2.11 FDwfDigitalInSampleFormatGet

        FDwfDigitalInSampleFormatGet (HDWF hdwf, int *pnBits)

9.2.11.1 说明

        返回配置的示例格式。

9.2.11.2 参数

        - hdwf – 接口句柄。

        - pnBits – 返回配置值的指针.

9.2.12 FDwfDigitalInBufferSizeInfo

        FDwfDigitalInBufferSizeInfo (HDWF hdwf, int *pnSizeMax)

        说明:返回 Digital In 最大缓冲区大小。

        参数:

                hdwf – 接口句柄。

                pnSizeMax – 指向变量的指针以返回最大缓冲区大小

9.2.13 FDwfDigitalInBufferSizeSet

        FDwfDigitalInBufferSizeSet (HDWF hdwf, int nSize)

9.2.13.1 说明

        设置缓冲区大小。

9.2.13.2 参数

        - hdwf – 接口句柄。

        - nSize – 缓冲区大小。

9.2.14 FDwfDigitalInBufferSizeGet

        FDwfDigitalInBufferSizeGet (HDWF hdwf, int *pnSize)

        说明:返回配置的缓冲区大小。

        参数:

                hdwf – 接口句柄。

                nSize – 返回配置值的指针

9.2.15 FDwfDigitalInSampleModeInfo

        FDwfDigitalInSampleModeInfo(HDWF hdwf, int *pfsDwfDigitalInSampleMode)

9.2.15.1 说明

        返回支持的采样模式。它们作为位字段返回(通过引用)。可以使用 IsBitSet 宏分析此位字段。使用 dwf.h 中的 DwfDigitalInSampleMode 常量定义单个位:         DwfDigitalInSampleModeSimple:在每个分频器时钟脉冲上存储一个样本。 

        DwfDigitalInSampleModeNoise:存储交替的噪声和采样值,其中噪声是两个采样之间的多个转换。这可能表示出现故障或振铃。当采样率小于最大时钟频率,分频器大于 1 时可用。

9.2.15.2 参数

        hdwf – 接口句柄。

        pfsDwfDigitalInSampleMode – 返回支持的采样模式的指针.

9.2.16 FDwfDigitalInSampleModeSet

        FDwfDigitalInSampleModeSet(HDWF hdwf, DwfDigitalInSampleMode v)

9.2.16.1 说明

        设置采样模式。

9.2.16.2 参数

        - hdwf – 设备上的开放接口句柄。

        - v – 采样模式。

9.2.17 FDwfDigitalInSampleModeGet

        FDwfDigitalInSampleModeGet (HDWF hdwf, DwfDigitalInSampleMode *pv)

        描述: 返回配置的采样模式。

        参数: -

                hdwf – 设备上的开放接口句柄。- pv – 返回配置值的指针。

9.2.18 FDwfDigitalInAcquisitionModeInfo

        FDwfDigitalInAcquisitionModeInfo(HDWF hdwf, int *pfsacqmode)

        说明:返回支持的 DigitalIn 采集模式。它们作为位字段返回(通过引用)。可以使用 IsBitSet 宏分析此位字段。使用 DWF.h 中的 ACQMODE 常量定义各个位。采集模式选择以下模式之一,即 ACQMODE:

        参数:

        - hdwf – 接口句柄。

9.2.19 FDwfDigitalInAcquisitionModeSet

        FDwfDigitalInAcquisitionModeSet(HDWF hdwf, ACQMODE acqmode)

9.2.19.1 描述

        设置采集模式。

9.2.19.2 参数

        - hdwf – 接口句柄。

        - acqmode – 要设置的采集模式。

9.2.20 FDwfDigitalInAcquisitionModeGet

        FDwfDigitalInAcquisitionModeGet (HDWF hdwf, ACQMODE *pacqmode)

9.2.20.1 说明

        检索采集模式。

9.2.20.2 参数

        - hdwf – 接口句柄。

        - pacqmode – 用于接收当前采集模式的变量。

9.2.21 FDwfDigitalInSampleSensibleSet

        FDwfDigitalInSampleSensibleSet (HDWF hdwf, unsigned int fs)

9.2.21.1 说明

        在记录采集模式下选择用于数据压缩的信号。

        参数: - hdwf – 接口句柄。- fs – 用于查找压缩的信号的位场集。

9.2.22 FDwfDigitalInSampleSensibleGet

        FDwfDigitalInSampleSensibleGet (HDWF hdwf, unsigned int *pfs)

        说明:在记录采集模式下检索用于数据压缩的信号。

        参数: - hdwf – 接口句柄。- pfs – 指向变量的指针以接收配置的值

9.2.23 FDwfDigitalInBuffersInfo

FDwfDigitalInBuffersInfo(HDWF hdwf, int *pMax)

        说明:返回 acqmodeSingle 支持的最大设备缓冲区(内存分段),用于低延迟顺序捕获的过采样。参数: - hdwf – 接口句柄。- pnMax – 返回最大缓冲区的指针.

9.2.24 FDwfDigitalInBuffersSet

FDwfDigitalInBuffersSet (HDWF hdwf, int n)

        说明:设置所需的缓冲区数。参数: - hdwf – 接口句柄。- n – 设备缓冲区的数量,0 和 1 禁用设备缓冲,-1 设置最大值

9.2.25 FDwfDigitalInBuffersGet

FDwfDigitalInBuffersGet (HDWF hdwf, int *pn)

        说明:返回设备缓冲区的数量。

        参数: - hdwf – 接口句柄。- pn – 用于接收当前设备缓冲区数量的变量。

9.2.24 FDwfDigitalInBuffersStatus

FDwfDigitalInBuffersStatus(HDWF hdwf, int *pn)

        说明:返回已填充的设备缓冲区数。

        参数: - hdwf – 接口句柄。- pn – 用于接收当前填充设备缓冲区数量的变量

9.3 触发器

        请参阅 FDwfDeviceTriggerInfo 的说明。

9.3.1 FDwfDigitalInTriggerSourceSet

        FDwfDigitalInTriggerSourceSet(HDWF hdwf, TRIGSRC trigsrc)

9.3.1.1 说明

        设置仪器的触发源。

9.3.1.2 参数

        hdwf – 接口句柄。

        trigsrc – 要设置的触发源。

9.3.1.3 触发源
# trigger source
trigsrcNone                 = c_ubyte(0)
trigsrcPC                   = c_ubyte(1)
trigsrcDetectorAnalogIn     = c_ubyte(2)
trigsrcDetectorDigitalIn    = c_ubyte(3)
trigsrcAnalogIn             = c_ubyte(4)
trigsrcDigitalIn            = c_ubyte(5)
trigsrcDigitalOut           = c_ubyte(6)
trigsrcAnalogOut1           = c_ubyte(7)
trigsrcAnalogOut2           = c_ubyte(8)
trigsrcAnalogOut3           = c_ubyte(9)
trigsrcAnalogOut4           = c_ubyte(10)
trigsrcExternal1            = c_ubyte(11)
trigsrcExternal2            = c_ubyte(12)
trigsrcExternal3            = c_ubyte(13)
trigsrcExternal4            = c_ubyte(14)
trigsrcHigh                 = c_ubyte(15)
trigsrcLow                  = c_ubyte(16)
trigsrcClock                = c_ubyte(17)

9.3.2 FDwfDigitalInTriggerSourceGet

        FDwfDigitalInTriggerSourceGet (HDWF hdwf, TRIGSRC *ptrigsrc)

        说明:获取仪器的当前触发源设置。

        参数:

                hdwf – 接口句柄。

                ptrigsrc – 指向变量的指针以接收触发源.

9.3.3 DwfDigitalInTriggerSlopeSet

        DwfDigitalInTriggerSlopeSet(HDWF hdwf, DwfTriggerSlope slope)

        描述: 设置仪器的触发斜率。

        参数:

                hdwf – 接口句柄。

                slope – 要设置的触发源。

9.3.4 FDwfDigitalInTriggerSlopeGet

        FDwfDigitalInTriggerSlopeGet (HDWF hdwf, DwfTriggerSlope *pslope)

        说明:获取仪器的当前触发源设置。

        参数:

                hdwf – 接口句柄。

                pslope – 指向变量的指针以接收触发斜率。

9.3.5 FDwfDigitalInTriggerPositionInfo

        FDwfDigitalInTriggerPositionInfo( HDWF hdwf, unsigned int *pnSamplesAfterTriggerMax)

        说明:返回样本中触发器位置的最大值。这可以大于指定的缓冲区大小。

        参数:

                hdwf – 接口句柄。

                pnSamplesAfterTriggerMax – 接收最大触发位置的变量。

9.3.6 FDwfDigitalInTriggerPositionSet

        FDwfDigitalInTriggerPositionSet(HDWF hdwf, unsigned int cSamplesAfterTrigger)

9.3.6.1 描述

        设置触发后要采集的样本数。

9.3.6.2 参数

        - hdwf – 接口句柄。

        - cSamplesAfterTrigger – 触发后的样本。

9.3.7 FDwfDigitalInTriggerPositionGet

        FDwfDigitalInTriggerPositionGet( HDWF hdwf, unsigned int *pcSamplesAfterTrigger)

        说明:获取配置的触发器位置。

        参数:

        - hdwf – 接口句柄。- pcSamplesAfterTrigger – 指向变量的指针以接收配置的值

9.3.8 FDwfDigitalInTriggerPrefillSet

        FDwfDigitalInTriggerPrefillSet(HDWF hdwf, unsigned int cSamplesBeforeTrigger)

9.3.8.1 描述

        设置在记录采集模式下布防前要采集的样本数。预填充用于触发器记录,以确保在布防之前,在寻找触发事件之前,最终收集到所需数量的样本。使用预填充 0,记录过程将仅在触发事件后流式传输数据。当预填充大于零时,录音将流式传输,直到触发发生以及触发位置指定的样本。

9.3.8.2 参数

        hdwf – 接口句柄。

        cSamplesBeforeTrigger – 触发前的样本

9.3.9 FDwfDigitalInTriggerPrefillGet

        FDwfDigitalInTriggerPrefillGet ( HDWF hdwf, unsigned int *pcSamplesBeforeTrigger)

        说明:获取配置的触发器预填充。

        参数: - hdwf – 接口句柄。- pcSamplesBeforeTrigger – 指向变量的指针以接收配置的值

9.3.10 FDwfDigitalInTriggerAutoTimeoutInfo

        FDwfDigitalInTriggerAutoTimeoutInfo( HDWF hdwf, double *psecMin, double *psecMax, double *pnSteps)

9.3.10.1 说明

        返回最小和最大自动触发超时值,以及可调整的步数。

9.3.10.2 参数

        - hdwf – 接口句柄。- psecMin – 接收最小超时的变量。- psecMax – 接收最大超时的变量。- pnSteps – 返回步数的变量。

9.3.11 FDwfDigitalInTriggerAutoTimeoutSet

        FDwfDigitalInTriggerAutoTimeoutSet(HDWF hdwf, double secTimeout)

        描述:

        配置自动触发超时值(以秒为单位)。

        参数: - hdwf – 接口句柄。- secTimeout – 要设置的超时

9.3.12 FDwfDigitalInTriggerAutoTimeoutGet

        FDwfDigitalInTriggerAutoTimeoutGet (HDWF hdwf, double *psecTimeout) 说明:返回配置的自动触发超时值(以秒为单位)。当指定的时间过去时,采集会自动触发。当值为零时,超时将被禁用,执行“正常”采集。参数: - hdwf – 接口句柄。- psecTimeout – 接收当前超时的变量。

9.4 触发检测器

        为了在数字输入引脚上使用触发器,请使用 FDwfDigitalInTriggerSourceSet 将触发源设置为 trigsrcDetectorDigitalIn。

9.4.1 FDwfDigitalInTriggerInfo

FDwfDigitalInTriggerInfo(HDWF hdwf, unsigned int *pfsLevelLow, unsigned int *pfsLevelHigh, unsigned int *pfsEdgeRise, unsigned int *pfsEdgeFall)

        说明:返回触发器中支持的数字。参数的位表示引脚。

        参数: - hdwf – 接口句柄。- pfsLevelLow – 用于接收支持的低状态触发器的变量。- pfsLevelHigh – 用于接收支持的低状态触发器的变量。- pfsEdgeRise – 用于接收支持的上升沿触发器的变量。- pfsEdgeFall – 用于接收支持的下降沿触发器的变量。

9.4.2 FDwfDigitalInTriggerSet

        FDwfDigitalInTriggerSet(HDWF hdwf, unsigned int fsLevelLow, unsigned int fsLevelHigh, unsigned int fsEdgeRise, unsigned int fsEdgeFall)

9.4.2.1 描述

        配置数字输入触发检测器。触发位的逻辑为:低和高以及(上升或下降)。在上升和下降中设置一点将在任何边缘、任何过渡上触发。

        例如,当 DIO-0 为低电平且 DIO-1 为高电平且 DIO-2 上升或 DIO-3 下降时,FDwfDigitalInTriggerInfo(hdwf, 1, 2, 4, 8) 将生成触发器。

9.4.2.2 参数

        - hdwf – 接口句柄。

        - fsLevelLow – 设置低状态条件。

        - fsLevelHigh – 设置高状态条件。

        - fsEdgeRise – 设置上升沿条件。

        - fsEdgeFall – 设置下降沿条件。

9.4.3 FDwfDigitalInTriggerGet

        FDwfDigitalInTriggerGet (HDWF hdwf, unsigned int *pfsLevelLow, unsigned int *pfsLevelHigh, unsigned int *pfsEdgeRise, unsigned int *pfsEdgeFall)

9.4.3.1 说明

        返回配置的数字触发检测器选项。

9.4.3.2 参数

        - hdwf – 接口句柄。

        - pfsLevelLow – 用于接收配置值的变量。

        - pfsLevelHigh – 用于接收配置值的变量。

        - pfsEdgeRise – 用于接收配置值的变量。- pfsEdgeFall – 用于接收配置值的变量。

9.4.4 FDwfDigitalInTriggerResetSet

        FDwfDigitalInTriggerResetSet(HDWF hdwf, unsigned int fsLevelLow, unsigned int fsLevelHigh, unsigned int fsEdgeRise, unsigned int fsEdgeFall)

9.4.4.1 描述

        配置数字触发复位条件。

9.4.4.2 参数

         - hdwf – 接口句柄。

        - fsLevelLow – 设置低状态条件。

        - fsLevelHigh – 设置高状态条件。

        - fsEdgeRise – 设置上升沿条件。

        - fsEdgeFall – 设置下降沿条件。

9.4.5 FDwfDigitalInTriggerCountSet

        FDwfDigitalInTriggerCountSet (HDWF hdwf, int cCount, int fRestart)

9.4.5.1 说明

        配置触发计数器。

9.4.5.2 参数

        - hdwf – 接口句柄。

        - cCount – 设置事件计数。

        - fRestart – 设置为在过期或未过期后重新启动计数器,并等待下一个重置条件

9.4.6 FDwfDigitalInTriggerLengthSet

        FDwfDigitalInTriggerLengthSet (HDWF hdwf, double secMin, double secMax, int idxSync)

9.4.6.1 说明

        配置触发时序。同步模式如下:

        0 – 正常

        1 – 定时:用于 UART、CAN。最小长度指定位长度和最大超时长度。

        2 – PWM:用于1-Wire。最小长度指定采样时间和最大超时长度。

9.4.6.2 参数

        - hdwf – 接口句柄。

        - secMin – 设置最小长度(以秒为单位),最多 20 秒。

        - secMax – 设置最大长度(以秒为单位),最多 20 秒。

        - idxSync – 设置同步模式

10 数字输出(码型发生器)

        DigitalOut 仪器状态:

        在 dwf.h DwfState 类型中定义了这些状态。

        - 仪器配置或设置

        - 就绪:初始状态。在 FDwfDigitalOutConfigure 或任何 FDwfDigitalOut*Set 函数调用进入此状态后。使用数字输出时,configure start 命令进入 Armed 状态

        - Armed:等待触发。

        - 等待:在 FDwfDigitalOutWaitSet 函数指定的时间段内保持此状态。- 正在运行:在 FDwfDigitalOutRunSet 函数指定的时间段内保持此状态。

        - 重复:根据 FDwfDigitalOutRepeatTriggerSet 指定的次数,根据 FDwfDigitalOutRepeatTriggerSet 设置进入 Armed 或 Wait 状态。

        - 完成:最终状态。

        这说明机器控制所有数字输出通道。

        请参阅以下示例:DigitalOut_BinaryCounter/Pins.py

通道配置;

        除法器和计数器的初始值指定进入运行状态时的初始加载值,即初始延迟。分频器指定时钟划分。此速率将是计数器的自定义采样频率和步长。进入 Running 状态时,将加载使用 FDwfDigitalOutDividerInitSet 指定的初始值。当此值过期时,将在每次过期时加载 FDwfDigitalOutDividerSet 指定的值。Counter 初始值由 FDwfDigitalOutCounterInitSet 函数设置。此函数还设置初始级别。此过期后,FDwfDigitalOutCounterSet 指定的级别值将在进一步过期时加载。在计数器到期时,级别被切换,这指导低值或高值加载。如果其中一个为零,则不会切换级别。

        计数器用于:

        - 脉冲生成低状态长度和高状态长度。

        - 随机设置更新速率。

        - 自定义寻址缓冲区。

        示例由 FDwfDigitalOutDataSet 函数配置。这还会根据 countOfBits 参数配置计数器低/高。在 TS 模式下,计数器步长为双精度,为输出提供两个位样本:value 和 enable。

        输出模式 (FDwfDigitalOutModeSet) 在以下两者之间进行选择:PP、OS、OD 和 TS。空闲输出 (FDwfDigitalOutIdleSet) 在未处于“正在运行”状态时选择输出。

        脉冲信号:

        分隔线的每个到期时间都是计数器的一个步骤

        对于脉冲信号,初始电平和初始值使用 FDwfDigitalOutCounterInitSet 函数指定。这些在进入“正在运行”状态时加载。

10.1 控制

10.1.1 FDwfDigitalOutReset

        FDwfDigitalOutReset(HDWF hdwf)

        说明:将所有仪器参数重置并配置(默认情况下,启用自动配置)为默认值。

        参数:

        - hdwf – 接口句柄。

10.1.2 FDwfDigitalOutConfigure

        FDwfDigitalOutConfigure(HDWF hdwf, int fStart)

        说明:启动或停止仪器。

        参数:

        - hdwf – 接口句柄。

        - fStart – 启动仪器。若要停止,请设置为 FALSE。

10.1.3 FDwfDigitalOutStatus

        FDwfDigitalOutStatus(HDWF hdwf, DwfState *psts)

10.1.3.1 描述

        检查仪器的状态。

10.1.3.2 参数

         - hdwf – 接口句柄。

        - psts – 指向变量的指针以返回状态。

10.2 配置

10.2.1 FDwfDigitalOutInternalClockInfo

        FDwfDigitalOutInternalClockInfo(HDWF hdwf, double *phzFreq)

10.2.1.1 说明

        检索内部时钟频率。

        参数: - hdwf – 接口句柄。- phzFreq – 返回内部时钟频率的指针.

        请参阅 FDwfDeviceTriggerInfo 的说明。

10.2.2 FDwfDigitalOutTriggerSourceSet

        FDwfDigitalOutTriggerSourceSet(HDWF hdwf, TRIGSRC trigsrc)

        说明:设置仪器的触发源。默认设置为 trigsrcNone。

        参数: - hdwf – 接口句柄。- trigsrc – 要设置的触发源。

10.2.3 FDwfDigitalOutTriggerSourceGet

        FDwfDigitalOutTriggerSourceGet (HDWF hdwf, TRIGSRC *ptrigsrc)

        描述: 获取仪器的当前触发源设置。

        参数: - hdwf – 接口句柄。- ptrigsrc – 指向变量的指针以接收触发源.

10.2.4 FDwfDigitalOutTriggerSlopeSet

        FDwfDigitalOutTriggerSlopeSet(HDWF hdwf, DwfTriggerSlope slope)

        说明:设置仪器的触发斜率。

        参数: - hdwf – 接口句柄。- slope – 要设置的触发源。

10.2.5  FDwfDigitalOutTriggerSlopeGet

        FDwfDigitalOutTriggerSlopeGet (HDWF hdwf, DwfTriggerSlope *pslope) 说明:获取仪器的当前触发源设置。

        参数: - hdwf – 接口句柄。- pslope – 指向变量的指针以接收触发斜率。

FDwfDigitalOutEnableSet

        FDwfDigitalOutEnableSet(HDWF hdwf, int idxChannel, int fEnable)

        描述: 启用或禁用 idxChannel 指定的通道。

        参数:  

        - hdwf – 接口句柄。

        - idxChannel – 通道索引。

        - fEnable – TRUE 启用,FALSE 禁用

FDwfDigitalOutDividerSet

        FDwfDigitalOutDividerSet(HDWF hdwf, int idxChannel, unsigned int v)

        描述: 设置指定通道的分频器值。

        参数: - hdwf – 接口句柄。

                - idxChannel – 通道索引。

                        - v – 除法值。

        

        FDwfDigitalOutCounterSet( HDWF hdwf, int idxChannel, unsigned int vLow, unsigned int vHigh) 说明: 设置指定通道的计数器低值和高值。

        参数: - hdwf – 接口句柄。- idxChannel – 通道索引。- vLow – 计数器低值。- vHigh – 计数器高值。

13 数字协议

        这些协议使用数字输入/输出设备资源来创建各种通信协议。一次只能使用其中一种协议。Digital-Out 用于生成输出信号,Digital-In 用于捕获接收到的数据。使用 Digital-IO 覆盖协议使用的信号可能会扰乱通信。

        注意:Digital Discovery 的 DIO channe 索引从 0 开始,0 是 DIO-24,1 是 DIO-25...

13.1 UART

        See Digital_Uart.py example.

13.1.1 FDwfDigitalUartReset

        FDwfDigitalUartReset(HDWF hdwf)

13.1.1.1 说明

        将 UART 配置重置为默认值。使用 FDwfDigitalOutReset 重置输出。

13.1.1.2 参数

        - hdwf – 接口句柄。

FDwfDigitalUartRateSet(HDWF hdwf, double hz)

描述:设置数据速率。参数: - hdwf – 接口句柄。- hz – 要设置的数据速率

13.2 SPI

        参见示例:Digital_Spi.py、Digital_Spi_Dual.py、Digital_Spi_Quad.py Digital_Spi_Siso.py

        如果选择信号由 FDwfDigitalSpiSelectSet 配置,并且未使用 FDwfDigitalSpiSelect 激活,则自动控制该信号以进行传输功能,具有相同的 DIO 和活动电平。

13.2.1 FDwfDigitalSpiReset

        FDwfDigitalSpiReset(HDWF hdwf)

        描述:将 SPI 配置重置为默认值。使用 FDwfDigitalOutReset 重置输出。

        参数: - hdwf – 接口句柄

13.2.2 FDwfDigitalSpiFrequencySet

        FDwfDigitalSpiFrequencySet(HDWF hdwf, double hz)

        描述: 设置 SPI 频率。

        参数: - hdwf – 接口句柄。- hz – 要设置的比特率(默认为 1kHz)

13.2.3 FDwfDigitalSpiClockSet

        FDwfDigitalSpiClockSet(HDWF hdwf, int idxChannel)

        说明:指定用于 SPI 时钟的 DIO 通道。

        参数: - hdwf – 接口句柄。- idxChannel – 用于 SPI 时钟的 DIO 通道(默认 DIO1)

13.2.4 FDwfDigitalSpiDataSet

        FDwfDigitalSpiDataSet (HDWF hdwf, int idxDQ, int idxChannel)

        说明:指定用于 SPI 数据的 DIO 通道。

        参数: - hdwf – 接口句柄。

                    - idxDQ – 指定要设置的数据索引,0 = DQ0_MOSI_SISO,1 = DQ1_MISO,2 = DQ2,3 = DQ3

                    - idxChannel – 用于 SPI 数据的 DIO 通道

13.2.5 FDwfDigitalSpiIdleSet

        FDwfDigitalSpiIdleSet(HDWF hdwf, int idxDQ, DwfDigitalOutIdle 空闲)

        描述: 指定 DQ 单次空闲输出状态。DQ2 和 3 可用于其他用途,例如写保护(应驱动低电平)或保持(应处于高阻抗状态)。

        参数:

        - hdwf – 接口句柄。

        - idxDQ – 指定数据索引

        - idle – 通道的空闲状态

13.2.6 FDwfDigitalSpiModeSet

        FDwfDigitalSpiModeSet (HDWF hdwf, int iMode)

        描述: 设置 SPI 模式

        参数:

                hdwf – 接口句柄。

                iMode – 指定 SPI 模式、bit1 CPOL 和 bit0 CPHA。当 bit2=1 时,MISO 将在活动边沿上采样

13.2.7 FDwfDigitalSpiOrderSet

        FDwfDigitalSpiOrderSet (HDWF hdwf, int fMSBLSB)

        说明: 设置 SPI 数据的位顺序。 

        参数:

                hdwf – 接口句柄。- fMSB – 指定位顺序,1 MSB 优先(默认),0 LSB 优先

13.2.8 FDwfDigitalSpiDelaySet

        FDwfDigitalSpiDelaySet (HDWF hdwf, int cStart, int cCmd, int cWord, int cStop)

        说明:设置 FDwfDigitalSpiCmdWrite/Read* 函数使用的延迟。

        参数: - hdwf – 接口句柄。- cStart – 在时钟周期长度中指定启动后的延迟。- cCmd – 在命令后指定延迟。- cWord – 指定单词之间的延迟。- cStop – 指定停止前的延迟。

13.2.9 FDwfDigitalSpiSelectSet

        FDwfDigitalSpiSelectSet(HDWF hdwf, int idxChannel, int fIdle)

        描述: 指定 SPI 芯片选择信号。参数: - hdwf – 接口句柄。- idxChannel – 指定 DIO 通道 - fIdle – 设置空闲级别:0 低,1 高

13.2.10 FDwfDigitalSpiWriteRead

        FDwfDigitalSpiWriteRead(HDWF hdwf, int cDQ, int cBitPerWord, unsigned char *rgTX, int cTX, unsigned char *rgRX, int cRX)

        描述: 执行最多 8 位字的 SPI 传输。此函数适用于标准 MOSI/MISO (cDQ 1) 操作,但只要指定了仅写入 (rgTX/cTX) 或读取 (rgRX/cRX),它就可以用于其他模式。生成的时钟信号数是 cTX 和 cRX 的最大值。

        参数:

        - hdwf – 接口句柄。

        - cDQ – 指定用于传输数据的 DQ 行:

        - cBitPerWord – 指定要为每个字传输的位数。

        - rgTX – 要写入的 8 位值(字节字)数组。

        - cTX – 要写的字数。

        - rgRx – 用于读取单词的缓冲区。

        - cRx – 要阅读的字数。

FDwfDigitalSpiWrite32

        FDwfDigitalSpiWrite32 (HDWF hdwf, int cDQ, int cBitPerWord, unsigned int *rgTX, int cTX)

        描述: 执行最多 32 位字的 SPI 读取。有关详细信息,请参阅 FDwfDigitalSpiWriteRead。

        参数:

        - hdwf – 接口句柄。

        - cDQ – 指定用于传输数据的 DQ 行。

        - cBitPerWord – 指定要为每个字传输的位数。

        - rgTX – 要写入的 32 位值 (int) 数组。

        - cTX – 要写入的字节数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/925211.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python基础学习-12匿名函数lambda和map、filter

目录 1、匿名函数: lambda 2、Lambda的参数类型 3、map、 filter 4、本节总结 1、匿名函数: lambda 1)语法: lambda arg1, arg2, …, argN : expression using arg 2) lambda是一个表达式,而不是一个语…

pyqt5+yolo模型+多线程

界面开发 开发主窗口界面 from PyQt5 import QtWidgets from PyQt5 import QtCore,QtGui import sysclass MainWindow(QtWidgets.QMainWindow):def __init__(self):super().__init__()self.initUI()self.toolbar()# 创建菜单栏def initUI(self):menubar self.menuBar()file_m…

交通流量预测:基于交通流量数据建立模型

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

[Java]微服务配置管理

介绍 代码拆分为微服务后, 每个服务都有自己的配置文件, 而这些配置文件中有很多重复的配置, 并且配置变化后需要重启服务, 才能生效, 这样就会影响开发体验和效率 配置管理服务可以帮助我们集中管理公共的配置, 并且nacos就可以实现配置管理服务 配置共享 我们可以把微服务共…

【C++】入门【三】

本节目标 一、类的6个默认成员函数 二、 构造函数 三、析构函数 四、拷贝构造函数 五、赋值运算符重载 六、const成员函数 七、取地址及const取地址操作符重载 一、类的6个默认成员函数 如果类里一个成员都没有,简称空类空类中真的什么都没有吗?并不不是…

D78【 python 接口自动化学习】- python基础之HTTP

day78 pycharm创建项目并进行接口请求 学习日期:20241124 学习目标:http定义及实战 -- pycharm创建项目并进行接口请求 学习笔记: 安装requests 安装方式:pip/pip3 install requests 官网教程:Requests: HTTP fo…

UE5 实现组合键触发事件的方法

因为工作原因。 需要用大括号{和}来触发事件 但是在蓝图中搜了一下,发现键盘事件里根本就没有{}这两个键。 花费了一下午,终于找到解决的方法了,也就是增强输入的弦操作 首先创建一个项目 纯蓝图或者C都可行 进入到内容浏览器的默认页面 …

rabbitmq原理及命令

目录 一、RabbitMQ原理1、交换机(Exchange)fanoutdirecttopicheaders(很少用到) 2、队列Queue3、Virtual Hosts4、基础对象 二、RabbitMQ的一些基本操作:1、用户管理2、用户角色3、vhost4、开启web管理接口5、批量删除队列 一、Ra…

硬件基础22 反馈放大电路

目录 一、反馈的基本概念与分类 1、什么是反馈 2、直流反馈与交流反馈 3、正反馈与负反馈 4、串联反馈与并联反馈 5、电压反馈与电流反馈 二、负反馈四种组态 1、电压串联负反馈放大电路 2、电压并联负反馈放大电路 3、电流串联负反馈放大电路 4、电流并联负反馈放大…

新型大语言模型的预训练与后训练范式,苹果的AFM基础语言模型

前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内的完整…

网络知识1-TCP/IP模型

从用户端到服务端,tcp/ip模型可分为应用层、传输层、网络层、网络接口层 以下使用寄快递为例进行解释 应用层职责: 只关注与为用户提供应用功能,如HTTP、FTP、telnet、DNS、SMTP等 ,应用层的职责就像我们寄快递时将快递给快递员…

【计算机视觉】图像基本操作

1. 数字图像表示 一幅尺寸为MN的图像可以用矩阵表示,每个矩阵元素代表一个像素,元素的值代表这个位置图像的亮度;其中,彩色图像使用3维矩阵MN3表示;对于图像显示来说,一般使用无符号8位整数来表示图像亮度&…

爬虫与反爬-旋转验证码突破方案(知名短视频、TK海外版 及 某东等等)

概述:文本对旋转验证码进行了突破及讲述了实现原理,代码使用纯算法 OpenCV,使用代价较小同时不用安装一大堆AI训练相关的模组,方便且能够快速上手 当前亲自验证了能够支持的网站:国内知名短视频平台、海外版 以及 某东…

STM32C011开发(1)----开发板测试

STM32C011开发----1.开发板测试 概述硬件准备视频教学样品申请源码下载参考程序生成STM32CUBEMX串口配置LED配置堆栈设置串口重定向主循环演示 概述 STM32C011F4P6-TSSOP20 评估套件可以使用户能够无缝评估 STM32C0 系列TSSOP20 封装的微控制器功能,基于 ARM Corte…

达梦数据库文件故障的恢复方法

目录 1、概述 1.1 概述 1.2 环境介绍 2、使用备份集的恢复方法 2.1 实验准备 2.2 误删除“用户表空间数据文件” 2.3 误删除SYSTEM.DBF 2.4 误删除ROLL.DBF 2.5 REDO日志文件 3、无备份集的恢复方法 3.1 误删除“表空间数据文件” 3.2误删除控制文件 3.3 误删除RO…

JVM:即时编译器,C2 Compiler,堆外内存排查

1,即时编译器 1.1,基本概念 常见的编译型语言如C,通常会把代码直接编译成CPU所能理解的机器码来运行。而Java为了实现“一次编译,处处运行”的特性,把编译的过程分成两部分,首先它会先由javac编译成通用的…

rocylinux9.4安装prometheus监控

一.上传软件包 具体的软件包如下,其中kubernetes-mixin是下载的监控kubernetes的一些监控规则、dashbaordd等。 二.Prometheus配置 1.promethes软件安装 #解压上传后的软件包 [rootlocalhost ] cd /opt [rootlocalhost opt]# tar xf prometheus-2.35.3.linux-amd…

FreeRTOS之链表源码分析

文章目录 前言一、结构体1、链表List_t2、链表项xLIST_ITEM3、头节点xMINI_LIST_ITEM4、链表示意图 二、函数分析1、初始化函数vListInitialise2、初始化链表项vListInitialiseItem3、链表尾部添加节点vListInsertEnd4、按序插入节点vListInsert5、删除节点uxListRemove 总结 前…

预测未来 | MATLAB实现Transformer时间序列预测未来

预测未来 | MATLAB实现Transformer时间序列预测未来 预测效果 基本介绍 1.Matlab实现Transformer时间序列预测未来; 2.运行环境Matlab2023b及以上,data为数据集,单变量时间序列预测; 3.递归预测未来数据,可以控制预…

怎么样才算得上熟悉高并发编程?

提到并发编程很多人就会头疼了;首先就是一些基础概念:并发,并行,同步,异步,临界区,阻塞,非阻塞还有各种锁全都砸你脸上,随之而来的就是要保证程序运行时关键数据在多线程…