📄 drivce.h
字号:
/***************************************************************************
Module Name: DRIVER.H
Purpose: the declaration of functions, data structures, status codes,
constants, and messages
Version: 3.01
Date: 04/16/1998
Copyright (c) 1996 Advantech Corp. Ltd.
All rights reserved.
****************************************************************************/
#ifndef _INC_DRIVER
#define _INC_DRIVER
#include "OS.H"
#ifdef _WIN31
#define FLOAT float
#define CHAR char
#define USHORT unsigned short
#define SHORT short
#define ULONG unsigned long
#endif
#ifdef __cplusplus
extern "C"
{
#endif
#define PUBLIC extern
#define PRIVATE static
/****************************************************************************
Constant Definition
***************************************************************************/
#define MaxDev 255 // max. # of devices
#define MaxDevNameLen 64 // max lenght of device name
#define MaxGroup 6
#define MaxPort 3
#define MaxErrMsgLen 80
#define MAX_DEVICE_NAME_LEN 64
#define MAX_DRIVER_NAME_LEN 16
#define MAX_DAUGHTER_NUM 16 // Leon.jin mod 8 to 16
#define MAX_DIO_PORT 48
#define MAX_AO_RANGE 16 // leon.jin mod 8 to 16
#define LOCAL 0
#define REMOTE 1
#define REMOTE1 REMOTE+1 // For PCL-818L JP7 = 5V
#define REMOTE2 REMOTE1+1 // For PCL-818L JP7 = 10V
#define NONPROG LOCAL
#define PROG REMOTE
#define INTERNAL 0
#define EXTERNAL 1
#define SINGLEENDED 0
#define DIFFERENTIAL 1
#define BIPOLAR 0
#define UNIPOLAR 1
#define PORTA 0
#define PORTB 1
#define PORTC 2
#define INPORT 0
#define OUTPORT 1
/***************************************************************************
Define board vendor ID
**************************************************************************/
#define AAC 0x0000 //Advantech
#define MB 0x1000 //Keithley/MetraByte
#define BB 0x2000 //Burr Brown
#define GRAYHILL 0x3000 //Grayhill
#define KGS 0x4000
/****************************************************************************
Define DAS I/O Board ID.
****************************************************************************/
#define NONE 0x00 // not available
//Advantech board ID
#define BD_DEMO (AAC | 0x00) // demo board
#define BD_PCL711 (AAC | 0x01) // PCL-711 board
#define BD_PCL812 (AAC | 0x02) // PCL-812 board
#define BD_PCL812PG (AAC | 0x03) // PCL-812PG board
#define BD_PCL718 (AAC | 0x04) // PCL-718 board
#define BD_PCL818 (AAC | 0x05) // PCL-818 board
#define BD_PCL814 (AAC | 0x06) // PCL-814 board
#define BD_PCL720 (AAC | 0x07) // PCL-722 board
#define BD_PCL722 (AAC | 0x08) // PCL-720 board
#define BD_PCL724 (AAC | 0x09) // PCL-724 board
#define BD_AD4011 (AAC | 0x0a) // ADAM 4011 Module
#define BD_AD4012 (AAC | 0x0b) // ADAM 4012 Module
#define BD_AD4013 (AAC | 0x0c) // ADAM 4013 Module
#define BD_AD4021 (AAC | 0x0d) // ADAM 4021 Module
#define BD_AD4050 (AAC | 0x0e) // ADAM 4050 Module
#define BD_AD4060 (AAC | 0x0f) // ADAM 4060 Module
#define BD_PCL711B (AAC | 0x10) // PCL-711B
#define BD_PCL818H (AAC | 0x11) // PCL-818H
#define BD_PCL814B (AAC | 0x12) // PCL-814B
#define BD_PCL816 (AAC | 0x13) // PCL-816
#define BD_814_DIO_1 (AAC | 0x14) // PCL-816/814B 8255 DIO module
#define BD_814_DA_1 (AAC | 0x15) // PCL-816/814B 12 bit D/A module
#define BD_816_DA_1 (AAC | 0x16) // PCL-816/814B 16 bit D/A module
#define BD_PCL830 (AAC | 0x17) // PCL-830 9513A Counter Card
#define BD_PCL726 (AAC | 0x18) // PCL-726 D/A card
#define BD_PCL727 (AAC | 0x19) // PCL-727 D/A card
#define BD_PCL728 (AAC | 0x1a) // PCL-728 D/A card
#define BD_AD4052 (AAC | 0x1b) // ADAM 4052 Module
#define BD_AD4014D (AAC | 0x1c) // ADAM 4014D Module
#define BD_AD4017 (AAC | 0x1d) // ADAM 4017 Module
#define BD_AD4080D (AAC | 0x1e) // ADAM 4080D Module
#define BD_PCL721 (AAC | 0x1f) // PCL-721 32-bit Digital in
#define BD_PCL723 (AAC | 0x20) // PCL-723 24-bit Digital in
#define BD_PCL818L (AAC | 0x21) // PCL-818L
#define BD_PCL818HG (AAC | 0x22) // PCL-818HG
#define BD_PCL1800 (AAC | 0x23) // PCL-1800
#define BD_PAD71A (AAC | 0x24) // PCIA-71A
#define BD_PAD71B (AAC | 0x25) // PCIA-71B
#define BD_PCR420 (AAC | 0x26) // PCR-420
#define BD_PCL731 (AAC | 0x27) // PCL-731 48-bit Digital I/O card
#define BD_PCL730 (AAC | 0x28) // PCL-730 board
#define BD_PCL813 (AAC | 0x29) // PCL-813 32-channel A/D card
#define BD_PCL813B (AAC | 0x2a) // PCL-813B 32-channel A/D card
#define BD_PCL818HD (AAC | 0x2b) // PCL-818HD
#define BD_PCL725 (AAC | 0x2c) // PCL-725 digital I/O card
#define BD_PCL732 (AAC | 0x2d) // PCL-732 high speed DIO card
#define BD_AD4018 (AAC | 0x2e) // ADAM 4018 Module
#define BD_814_TC_1 (AAC | 0x2f) // PCL-816/814B 16 bit TC module
#define BD_PAD71C (AAC | 0x30) // PCIA-71C
#define BD_AD4024 (AAC | 0x31) // ADAM 4024
#define BD_AD5017 (AAC | 0x32) // ADAM 5017
#define BD_AD5018 (AAC | 0x33) // ADAM 5018
#define BD_AD5024 (AAC | 0x34) // ADAM 5024
#define BD_AD5051 (AAC | 0x35) // ADAM 5051
#define BD_AD5060 (AAC | 0x36) // ADAM 5060
#define BD_PCM3718 (AAC | 0x37) // PCM-3718
#define BD_PCM3724 (AAC | 0x38) // PCM-3724
#define BD_MIC2718 (AAC | 0x39) // MIC-2718
#define BD_MIC2728 (AAC | 0x3a) // MIC-2728
#define BD_MIC2730 (AAC | 0x3b) // MIC-2730
#define BD_MIC2732 (AAC | 0x3c) // MIC-2732
#define BD_MIC2750 (AAC | 0x3d) // MIC-2750
#define BD_MIC2752 (AAC | 0x3e) // MIC-2752
#define BD_PCL733 (AAC | 0x3f) // PCL-733
#define BD_PCL734 (AAC | 0x40) // PCL-734
#define BD_PCL735 (AAC | 0x41) // PCL-735
#define BD_AD4018M (AAC | 0x42) // ADAM 4018M Module
#define BD_AD4080 (AAC | 0x43) // ADAM 4080 Module
#define BD_PCL833 (AAC | 0x44) // PCL-833
#define BD_PCA6157 (AAC | 0x45) // PCA-6157
#define BD_PCA6149 (AAC | 0x46) // PCA-6149
#define BD_PCA6147 (AAC | 0x47) // PCA-6147
#define BD_PCA6137 (AAC | 0x48) // PCA-6137
#define BD_PCA6145 (AAC | 0x49) // PCA-6145
#define BD_PCA6144 (AAC | 0x4a) // PCA-6144
#define BD_PCA6143 (AAC | 0x4b) // PCA-6143
#define BD_PCA6134 (AAC | 0x4c) // PCA-6134
#define BD_AD5056 (AAC | 0x4d) // ADAM 5056 for Device Net
#define BD_DN5017 (AAC | 0x4e) // ADAM 5017 for Device Net
#define BD_DN5018 (AAC | 0x4f) // ADAM 5018 for Device Net
#define BD_DN5024 (AAC | 0x50) // ADAM 5024 for Device Net
#define BD_DN5051 (AAC | 0x51) // ADAM 5051 for Device Net
#define BD_DN5056 (AAC | 0x52) // ADAM 5056 for Device Net
#define BD_DN5060 (AAC | 0x53) // ADAM 5060 for Device Net
#define BD_PCL836 (AAC | 0x54) // PCL-836
#define BD_PCL841 (AAC | 0x55) // PCL-841
#define BD_DN5050 (AAC | 0x56) // ADAM 5050 for DeviceNet
#define BD_DN5052 (AAC | 0x57) // ADAM 5052 for DeviceNet
#define BD_AD5050 (AAC | 0x58) // ADAM 5050 for RS-485
#define BD_AD5052 (AAC | 0x59) // ADAM 5052 for RS-485
#define BD_PCM3730 (AAC | 0x5a) // PCM-3730
#define BD_AD4011D (AAC | 0x5b) // ADAM 4011D
#define BD_AD4016 (AAC | 0x5c) // ADAM 4016
#define BD_AD4053 (AAC | 0x5d) // ADAM 4053
#define BD_PCI1750 (AAC | 0x5e) // PCI-1750
#define BD_PCI1751 (AAC | 0x5f) // PCI-1751
#define BD_PCI1710 (AAC | 0x60) // PCI-1710
#define BD_PCI1712 (AAC | 0x61) // PCI-1712
#define BD_AD5068 (AAC | 0x62) // ADAM 5068
#define BD_AD5013 (AAC | 0x63) // ADAM 5013
#define BD_AD5017H (AAC | 0x64) // ADAM 5017H
#define BD_AD5080 (AAC | 0x65) // ADAM 5080
#define BD_MIC2760 (AAC | 0x66) // MIC-2760
#define BD_PCI1710HG (AAC | 0x67) // PCI-1710HG
#define BD_PCI1713 (AAC | 0x68) // PCI-1713
#define BD_PCI1753 (AAC | 0x69) // PCI-1753
#define BD_PCI1760 (AAC | 0x6a) // PCI-1760
#define BD_PCI1720 (AAC | 0x6b) // PCI-1720
#define BD_PCL752 (AAC | 0x6c) // PCL-772
#define BD_PCM3718H (AAC | 0x6d) // PCM-3718H
#define BD_PCM3718HG (AAC | 0x6e) // PCM-3718HG
#define BD_DN5068 (AAC | 0x6f) // ADAM 5068 for Device Net
#define BD_DN5013 (AAC | 0x70) // ADAM 5013 for Device Net
#define BD_DN5017H (AAC | 0x71) // ADAM 5017H for Device Net
#define BD_DN5080 (AAC | 0x72) // ADAM 5080 for Device Net (unavailable)
#define BD_PCI1711 (AAC | 0x73) // PCI-1711
#define BD_PCI1711L (AAC | 0x75) // PCI-1711
#define BD_PCI1716 (AAC | 0x74) // PCI-1716
#define BD_PCI1731 (AAC | 0x75) // PCI-1731
#define BD_AD5051D (AAC | 0x76) // ADAM 5051D
#define BD_AD5056D (AAC | 0x77) // ADAM 5056D
#define BD_DN5051D (AAC | 0x78) // ADAM 5051D for Device Net
#define BD_DN5056D (AAC | 0x79) // ADAM 5056D for Device Net
#define BD_SIMULATE (AAC | 0x7a) // Simulate IO
#define BD_PCI1754 (AAC | 0x7b) // PCI-1754
#define BD_PCI1752 (AAC | 0x7c) // PCI-1752
#define BD_PCI1756 (AAC | 0x7d) // PCI-1756
#define BD_PCL839 (AAC | 0x7e) // PCL-839
#define BD_PCM3725 (AAC | 0x7f) // PCM-3725
#define BD_PCI1762 (AAC | 0x80) // PCI-1762
#define BD_PCI1721 (AAC | 0x81) // PCI-1721
#define BD_PCI1761 (AAC | 0x82) // PCI-1761
#define BD_PCI1723 (AAC | 0x83) // PCI-1723
#define BD_AD4019 (AAC | 0X84) // ADAM 4019 Module
#define BD_AD5055 (AAC | 0X85) // ADAM 5055 Module
#define BD_AD4015 (AAC | 0X86) // ADAM 4015 Module
#define BD_PCI1730 (AAC | 0x87) // PCI-1730
#define BD_PCI1733 (AAC | 0x88) // PCI-1733
#define BD_PCI1734 (AAC | 0x89) // PCI-1734
#define BD_MIC2750A (AAC | 0x8A) // MIC-2750A
#define BD_MIC2718A (AAC | 0x8B) // MIC-2718A
#define BD_AD4017P (AAC | 0X8c) // ADAM 4017P Module
#define BD_AD4051 (AAC | 0X8d) // ADAM 4051 Module
#define BD_AD4055 (AAC | 0X8e) // ADAM 4055 Module
#define BD_AD4018P (AAC | 0x8f) // ADAM 4018P Module
#define BD_PCI1710L (AAC | 0x90) // PCI-1710L
#define BD_PCI1710HGL (AAC | 0x91) // PCI-1710HGL
#define BD_MICRODAC (GRAYHILL | 0x1) // Grayhill MicroDAC Board ID
#define BD_GIA10 (KGS | 0x01) // KGS GIA-10 module Board ID
/*****************************************************************************
Define Expansion Board ID.
*****************************************************************************/
#define AAC_EXP (AAC | 0x00000100) //Advantech expansion bits
//define Advantech expansion board ID.
#define BD_PCLD780 0x00000000 // PCLD-780
#define BD_PCLD789 (AAC_EXP | 0x0) // PCLD-789
#define BD_PCLD779 (AAC_EXP | 0x1) // PCLD-779
#define BD_PCLD787 (AAC_EXP | 0x2) // PCLD-787
#define BD_PCLD8115 (AAC_EXP | 0x3) // PCLD-8115
#define BD_PCLD770 (AAC_EXP | 0x4) // PCLD-770
#define BD_PCLD788 (AAC_EXP | 0x5) // PCLD-788
#define BD_PCLD8710 (AAC_EXP | 0x6) // PCLD-8710
#define BD_PCLD8712 (AAC_EXP | 0x7) // PCLD-8712
/****************************************************************************
Define subsection identifier
****************************************************************************/
#define DAS_AISECTION 0x1 // A/D subsection
#define DAS_AOSECTION 0x2 // D/A sbusection
#define DAS_DISECTION 0x3 // Digital input subsection
#define DAS_DOSECTION 0x4 // Digital output sbusection
#define DAS_TEMPSECTION 0x5 // thermocouple section
#define DAS_ECSECTION 0x6 // Event count subsection
#define DAS_FMSECTION 0x7 // frequency measurement section
#define DAS_POSECTION 0x8 // pulse output section
#define DAS_ALSECTION 0x9 // alarm section
#define MT_AISECTION 0x0a // monitoring A/D subsection
#define MT_DISECTION 0x0b // monitoring D/I subsection
/***************************************************************************
Define Transfer Mode
****************************************************************************/
#define POLLED_MODE 0x0 // software transfer
#define DMA_MODE 0x1 // DMA transfer
#define INTERRUPT_MODE 0x2 // Interrupt transfer
/***************************************************************************
Define Acquisition Mode
****************************************************************************/
#define FREE_RUN 0
#define PRE_TRIG 1
#define POST_TRIG 2
#define POSITION_TRIG 3
/***************************************************************************
Define Comparator's Condition
****************************************************************************/
#define NOCONDITION 0
#define LESS 1
#define BETWEEN 2
#define GREATER 3
#define OUTSIDE 4
/***************************************************************************
Define Channel
****************************************************************************/
#define ADV_CHANNEL0 0x01
#define ADV_CHANNEL1 0x02
#define ADV_CHANNEL2 0x04
#define ADV_CHANNEL3 0x08
#define ADV_CHANNEL4 0x10
#define ADV_CHANNEL5 0x20
#define ADV_CHANNEL6 0x40
#define ADV_CHANNEL7 0x80
/**************************************************************************
Define Status Code
***************************************************************************/
#define SUCCESS 0
#define DrvErrorCode 1
#define KeErrorCode 100
#define DnetErrorCode 200
#define GeniDrvErrorCode 300
#define OPCErrorCode 1000
#define MemoryAllocateFailed (DrvErrorCode + 0)
#define ConfigDataLost (DrvErrorCode + 1)
#define InvalidDeviceHandle (DrvErrorCode + 2)
#define AIConversionFailed (DrvErrorCode + 3)
#define AIScaleFailed (DrvErrorCode + 4)
#define SectionNotSupported (DrvErrorCode + 5)
#define InvalidChannel (DrvErrorCode + 6)
#define InvalidGain (DrvErrorCode + 7)
#define DataNotReady (DrvErrorCode + 8)
#define InvalidInputParam (DrvErrorCode + 9)
#define NoExpansionBoardConfig (DrvErrorCode + 10)
#define InvalidAnalogOutValue (DrvErrorCode + 11)
#define ConfigIoPortFailed (DrvErrorCode + 12)
#define CommOpenFailed (DrvErrorCode + 13)
#define CommTransmitFailed (DrvErrorCode + 14)
#define CommReadFailed (DrvErrorCode + 15)
#define CommReceiveFailed (DrvErrorCode + 16)
#define CommConfigFailed (DrvErrorCode + 17)
#define CommChecksumError (DrvErrorCode + 18)
#define InitError (DrvErrorCode + 19)
#define DMABufAllocFailed (DrvErrorCode + 20)
#define IllegalSpeed (DrvErrorCode + 21)
#define ChanConflict (DrvErrorCode + 22)
#define BoardIDNotSupported (DrvErrorCode + 23)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -