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.

67 lines
3.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace USB2XXX
{
class USB2ADC
{
//定义函数返回错误代码
public const Int32 ADC_SUCCESS = (0); //函数执行成功
public const Int32 ADC_ERR_NOT_SUPPORT = (-1); //适配器不支持该函数
public const Int32 ADC_ERR_USB_WRITE_FAIL = (-2); //USB写数据失败
public const Int32 ADC_ERR_USB_READ_FAIL = (-3); //USB读数据失败
public const Int32 ADC_ERR_CMD_FAIL = (-4); //命令执行失败
public const Int32 ADC_ERR_CH_NO_INIT = (-5); //参数传入错误
//定义连续采集数据模式下的回调函数
public delegate Int32 ADC_GET_DATA_HANDLE(Int32 DevIndex, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)]UInt16[] pData, Int32 DataNum);//接收数据回掉函数
//USB2ADC相关函数定义
/**
* @brief ADC
* @param DevIndex
* @param Channel ADCbit10
* @param SampleRateHz ADC2.5MHzHz
* @retval 0
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 ADC_Init(Int32 DevIndex,Byte Channel,Int32 SampleRateHz);
/**
* @brief ADC
* @param DevIndex
* @param pData
* @param DataNum
* @retval 0
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 ADC_Read(Int32 DevIndex, UInt16[] pData, Int32 DataNum);
/**
* @brief ADC
* @param DevIndex
* @param Channel ADCbit10
* @param SampleRateHz ADC2.5MHzHz
* @param FrameSize SampleRateHz*1000/FrameSize20
* @retval 0
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 ADC_StartContinueRead(Int32 DevIndex,Byte Channel,Int32 SampleRateHz,Int32 FrameSize,ADC_GET_DATA_HANDLE pGetDataHandle);
/**
* @brief ADC
* @param DevIndex
* @retval 0
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 ADC_StopContinueRead(Int32 DevIndex);
/**
* @brief ADC
* @param DevIndex
* @param pDataBuffer
* @param BufferSize 10240
* @retval
*/
[DllImport("USB2XXX.dll")]
public static extern Int32 ADC_GetData(Int32 DevIndex,UInt16[] pDataBuffer,Int32 BufferSize);
}
}