You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
3.8 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}
}