Files
EF3-Interface/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.h
T
2014-07-21 14:50:34 +08:00

62 lines
1.5 KiB
C++

//////////////////////////////////////////////////////////////////////
#ifndef ART_PCI8622_INCLUDED
#define ART_PCI8622_INCLUDED
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "PCI8622.h"
#define MAX_AD_CHANNELS 4
#define SEGMENT_COUNT 32
#define HALF_SIZE_WORDS 4096
enum E_ART_PCI8622_SAMPLE_MODE
{
E_ART_PCI8622_SAMPLE_DMA=0,
E_ART_PCI8622_SAMPLE_DMA_SEQ,
E_ART_PCI8622_SAMPLE_DMA_TRIGCLK,
E_ART_PCI8622_SAMPLE_NPT=10,
E_ART_PCI8622_SAMPLE_NPT_SEQ,
E_ART_PCI8622_SAMPLE_NPT_TRIGCLK,
E_ART_PCI8622_SAMPLE_HALF=20,
E_ART_PCI8622_SAMPLE_HALF_SEQ,
E_ART_PCI8622_SAMPLE_HALF_TRIGCLK,
E_ART_PCI8622_SAMPLE_TOTAL=255
};
//======================================================================================
class CART_PCI8622
{
protected:
HANDLE m_hDevice;
HANDLE m_hDmaEvent;
int m_InputRange;
WORD ADBuffer[SEGMENT_COUNT][HALF_SIZE_WORDS];
ULONG m_SegmentID;
PCI8622_PARA_AD m_ADPara; // Ó²¼þ²ÎÊý
double m_AD_LSB_MAX;
double m_AD_LSB_HALF;
double m_AD_LSB_RANGE;
BOOL m_StopedSample;
BOOL m_EnStartSample;
BOOL m_EnGetData;
int m_iSampleMode;
int m_iReadDataSize;
int m_iFirstChannel;
int m_iLastChannel;
public:
CART_PCI8622();
~CART_PCI8622();
BOOL Init();
BOOL Exit();
BOOL SetSamplePara(int _Mode,int _ReadDataSize);
BOOL SetSampleChannel(int _FirstChannel,int _LastChannel);
BOOL StartSampleData();
BOOL StopSampleData();
BOOL GetData(double (*_Data)[HALF_SIZE_WORDS],int* _DataNumber);
};
#endif