|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
|
|
|
|
|
|
namespace USB2XXX
|
|
|
|
|
|
{
|
|
|
|
|
|
class USB2ADS1256
|
|
|
|
|
|
{
|
|
|
|
|
|
//定义函数返回错误代码
|
|
|
|
|
|
public const Int32 ADS1256_SUCCESS = (0); //函数执行成功
|
|
|
|
|
|
public const Int32 ADS1256_ERR_NOT_SUPPORT = (-1); //适配器不支持该函数
|
|
|
|
|
|
public const Int32 ADS1256_ERR_USB_WRITE_FAIL = (-2); //USB写数据失败
|
|
|
|
|
|
public const Int32 ADS1256_ERR_USB_READ_FAIL = (-3); //USB读数据失败
|
|
|
|
|
|
public const Int32 ADS1256_ERR_CMD_FAIL = (-4); //命令执行失败
|
|
|
|
|
|
public const Int32 ADS1256_ERR_CH_NO_INIT = (-5); //该通道未初始化
|
|
|
|
|
|
//定义ADS采样率
|
|
|
|
|
|
public const Byte ADS1256_DRATE_30000SPS = 0xF0;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_15000SPS = 0xE0;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_7500SPS = 0xD0;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_3750SPS = 0xC0;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_2000SPS = 0xB0;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_1000SPS = 0xA1;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_500SPS = 0x92;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_100SPS = 0x82;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_60SPS = 0x72;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_50SPS = 0x63;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_30SPS = 0x53;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_25SPS = 0x43;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_15SPS = 0x33;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_10SPS = 0x23;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_5SPS = 0x13;
|
|
|
|
|
|
public const Byte ADS1256_DRATE_2_5SPS = 0x03;
|
|
|
|
|
|
//定义初始化ADS1256的数据类型
|
|
|
|
|
|
public struct ADS1256_CONFIG
|
|
|
|
|
|
{
|
|
|
|
|
|
UInt16 SampleRate; //采样率
|
|
|
|
|
|
Byte PGA; //内部增益,2^n
|
|
|
|
|
|
Byte BufferEn; //1:使能Buffer,0:禁止Buffer
|
|
|
|
|
|
UInt32 SampleMode; //两个bit控制一个通道,00:不使用该通道,01:该通道为单端模式,10:该通道为差分负极,11:该通道为差分正极
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 初始化配置ADS1256
|
|
|
|
|
|
* @param DevHandle 设备句柄
|
|
|
|
|
|
* @param Channel 需要配置的ADS通道号,取值0或者1
|
|
|
|
|
|
* @param pConfig ADS1256配置参数指针
|
|
|
|
|
|
* @retval 函数执行状态,小于0函数执行出错
|
|
|
|
|
|
*/
|
|
|
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
|
|
|
public static extern Int32 ADS1256_Init(Int32 DevHandle,Byte Channel,ref ADS1256_CONFIG pConfig);
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 启动ADS转换,调用该函数后,适配器会自动读取ADS转换数据
|
|
|
|
|
|
* @param DevHandle 设备句柄
|
|
|
|
|
|
* @param Channel 需要启动的ADS通道号,取值0或者1
|
|
|
|
|
|
* @retval 函数执行状态,小于0函数执行出错
|
|
|
|
|
|
*/
|
|
|
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
|
|
|
public static extern Int32 ADS1256_Start(Int32 DevHandle,Byte Channel);
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 启动ADC连续转换模式
|
|
|
|
|
|
* @param DevHandle 设备句柄
|
|
|
|
|
|
* @param Channel 需要读取数据的ADS通道号,取值0或者1
|
|
|
|
|
|
* @param pData 数据存储缓冲区首地址
|
|
|
|
|
|
* @retval 函数执行状态,小于0函数执行出错,大于0为实际采集到的ADC数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
|
|
|
public static extern Int32 ADS1256_Read(Int32 DevHandle,Byte Channel,Int32[] pData);
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 停止ADS转换,调用该函数后,适配器会自动停止ADS转换数据
|
|
|
|
|
|
* @param DevHandle 设备句柄
|
|
|
|
|
|
* @param Channel 需要启动的ADS通道号,取值0或者1
|
|
|
|
|
|
* @retval 函数执行状态,小于0函数执行出错
|
|
|
|
|
|
*/
|
|
|
|
|
|
[DllImport("USB2XXX.dll")]
|
|
|
|
|
|
public static extern Int32 ADS1256_Stop(Int32 DevHandle,Byte Channel);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|