/* Copyright : Hottinger Baldwin Messtechnik GmbH
File name : S8_DLL.H
Project : driver for Spider8
Language : Visual C
Operating system : MS Windows 95
DLL's : SPIDER32.DLL INTFAC32.DLL PAPO32.DLL
*** M O D U L E H I S T O R Y ******************************************
970201 Snit 1. implementation
+141105 heha tabsize=8 etc.
*/
#pragma once
/*************************************************************************
Declaration of the constants
*************************************************************************/
#define S8_MaxDevice 8 // max. number of devices
#define S8_MaxChanPerDev 10 // max. number of plug-ins of a device
#define S8_MaxChannels (S8_MaxChanPerDev * S8_MaxDevice)
// max. number of channels of a system
/*************************************************************************
overflow measured value (no IEEE denormal numbers are used)
*************************************************************************/
#define S8_NotANumber -1E+38F
#define S8_HWOverflow -1E+38F
#define S8_NHWOverflow -1E+37F
#define S8_NSWOverflow -1E+36F
#define S8_PHWOverflow 1E+37F
#define S8_PSWOverflow 1E+36F
/*************************************************************************
device mode (online or offline)
*************************************************************************/
#define S8_Online 0
#define S8_Offline 1
/*************************************************************************
port number
*************************************************************************/
#define PORT_GPIB 0
#define PORT_COM1 1
#define PORT_COM2 2
#define PORT_LPT1 90
#define PORT_LPT2 91
#define PORT_USB 200
/*************************************************************************
parallel port mode
*************************************************************************/
#define NibbleMode 1
#define Bit8Mode 2
#define ByteMode 3
#define EPPMode 4
/*************************************************************************
what-mask for S8_GetChanSettings, S8_GetChanInfo,
S8_GetPsbleChanSettings, S8_LoadChanSettings
*************************************************************************/
#define S8_CS_All 0xFFFF
#define S8_CS_NennVal 0x0001
#define S8_CS_ChanType 0x0002
#define S8_CS_SerNum 0x0004
#define S8_CS_Name 0x0008
#define S8_CS_IsActive 0x0010
#define S8_CS_Mode 0x0020
#define S8_CS_MRange 0x0040
#define S8_CS_Unit 0x0080
#define S8_CS_MeasValue 0x0100
#define S8_CS_TareValue 0x0200
#define S8_CS_Filter 0x0400
#define S8_CS_DigIO 0x0800
/*************************************************************************
what-mask for S8_GetDevSettings, S8_GetDevInfo,
S8_GetPsbleDevSettings, S8_LoadDevSettings
*************************************************************************/
#define S8_DS_All 0xFFFF
#define S8_DS_NumChan 0x0001
#define S8_DS_MeasRate 0x0002
#define S8_DS_FilterT 0x0004
#define S8_DS_FilterF 0x0008
#define S8_DS_SerNum 0x0010
#define S8_DS_SWVers 0x0020
#define S8_DS_DevName 0x0040
#define S8_DS_Mode 0x0080
/*************************************************************************
'* ASF filter characteristics
*************************************************************************/
#define IDS_MiWert 140 // calculation of average value
#define IDS_Butw 141 // butterworth: best frequency response
#define IDS_Bess 142 // bessel: best course over time
/*************************************************************************
'* AFS filter selection
*************************************************************************/
#define IDS_VarF 148 // adjustable filter
#define IDS_FixF 149 // fixed filter
/*************************************************************************
'* ASA transducer type
*************************************************************************/
#define IDS_VoBr 350 // full bridge
#define IDS_HaBr 351 // half bridge
#define IDS_DCVo 420 // dc voltage
#define IDS_DCAm 421 // dc current
#define IDS_ThmJ 450 // thermocouple J
#define IDS_ThmK 451 // thermocouple K
#define IDS_ThmT 452 // thermocouple T
#define IDS_ThmS 453 // thermocouple S
#define IDS_Resi 475 // resistor
#define IDS_PT100 501 // Pt100
#define IDS_PT500 502 // Pt500
#define IDS_PT1000 503 // Pt1000
#define IDS_ThmI 510 // internal temperature
#define IDS_Flanke 520 // signal edges
#define IDS_FuR 521 // signal edges and direction
#define IDS_2P1F 522 // two phase, single edge
#define IDS_2P2F 523 // two phase, twin edge
#define IDS_Cnt 525 // continuous counter
#define IDS_DigIO16 528
/*************************************************************************
'* ASA measure range
*************************************************************************/
#define IDS_3mV 700 // 3 mV/V
#define IDS_12mV 701 // 12 mV/V
#define IDS_125mV 702 // 125 mV/V
#define IDS_500mV 703 // 500 mV/V
#define IDS_0V1 710 // 0,1 V
#define IDS_1V0 711 // 1 V
#define IDS_10V0 712 // 10 V
#define IDS_20mA 720 // 20 mA
#define IDS_200mA 721 // 200 mA
#define IDS_0KO4 730 // 400 Ohm
#define IDS_4KO0 731 // 4000 Ohm
#define IDS_F1MHz 740 // 1 MHz
#define IDS_F0MHz1 741 // 100 kHz
#define IDS_F10kHz 742 // 10 kHz
#define IDS_F1kHz 743 // 1 kHz
#define IDS_F0kHz1 744 // 100 Hz
#define IDS_T10ms 750 // 10 ms
#define IDS_T100ms 751 // 100 ms
#define IDS_T1s 752 // 1 s
#define IDS_T10s 753 // 10 s
#define IDS_T100s 754 // 100 s
#define IDS_Count 760 // counter
#define IDS_Cd100 761 // counter / 100
#define IDS_Bit1 765
#define IDS_Temp 770
/*************************************************************************
'* ASF filter frequency
*************************************************************************/
#define IDS_F0Hz10 914 // 0,1 Hz
#define IDS_F0Hz25 918 // 0,25 Hz
#define IDS_F0Hz50 921 // 0,5 Hz
#define IDS_F1Hz00 927 // 1 Hz
#define IDS_F2Hz50 932 // 2,5 Hz
#define IDS_F005Hz 935 // 5 Hz
#define IDS_F010Hz 941 // 10 Hz
#define IDS_F020Hz 945 // 20 Hz
#define IDS_F040Hz 948 // 40 Hz
#define IDS_F075Hz 952 // 75 Hz
#define IDS_F150Hz 957 // 150 Hz
#define IDS_F300Hz 960 // 300 Hz
#define IDS_F600Hz 964 // 600 Hz
#define IDS_F1KHz2 971 // 1200 Hz
/*************************************************************************
'* port
*************************************************************************/
#define IDS_RS232 1301 // RS 232
#define IDS_IE1284 1304 // printer port
/*************************************************************************
'* BDR baud rate
*************************************************************************/
#define IDS_600Bd 1404 // 600 Baud
#define IDS_1KBd2 1405 // 1200 Baud
#define IDS_2KBd4 1406 // 2400 Baud
#define IDS_4KBd8 1407 // 4800 Baud
#define IDS_9KBd6 1408 // 9600 Baud
#define IDS_19KBd2 1410 // 19200 Baud
#define IDS_38KBd4 1412 // 38400 Baud
#define IDS_57KBd6 1414 // 57600 Baud
#define IDS_115KBd 1416 // 115200 Baud
/*************************************************************************
'* AID plug-in type
*************************************************************************/
#define IDS_S8isno 5050 // no plug-in
#define IDS_S8TFmF 5051 // TF channel on mother board (0 or 1)
#define IDS_S8TFoF 5052 // TF channel on mother board (2 or 3)
#define IDS_S8SR55 5053 // TF module SR55
#define IDS_S8SR01 5054 // DC module SR01
#define IDS_S8DigIO 5055 // digital I/O
#define IDS_S8HChan 5056 // auxiliary channel
/*************************************************************************
'* DTR trigger mode
*************************************************************************/
#define IDS_MGETr 6000 // measured value > trigger level
#define IDS_MLETr 6001 // measured value < trigger level
#define IDS_pEdge 6002 // positive edge
#define IDS_nEdge 6003 // negative edge
/*************************************************************************
'* MSV measuring mode
*************************************************************************/
#define IDS_sofort 6100 // immediat
#define IDS_TRG 6101 // TRG command
#define IDS_ExtTr 6102 // external trigger
#define IDS_IntTr 6103 // internal trigger
/*************************************************************************
'* ACT active channel
*************************************************************************/
#define IDS_Pass 6200 // channel disabled
#define IDS_MeAkt 6201 // measure enabled
#define IDS_NuAkt 6202 // tare enabled
#define IDS_MeUNu 6203 // tare and measure enabled
#define IDS_MesAnz 6210 // measure disabled, tare not changed
#define IDS_TarAnz 6211 // tare disabled. measure not changed
/*************************************************************************
'* ICR measuring rate
*************************************************************************/
#define IDS_M1Hz 6300 // 1 Hz
#define IDS_M2Hz 6301 // 2 Hz
#define IDS_M5Hz 6302 // 5 Hz
#define IDS_M10Hz 6303 // 10 Hz
#define IDS_M25Hz 6304 // 25 Hz
#define IDS_M50Hz 6305 // 50 Hz
#define IDS_M60Hz 6306 // 60 Hz
#define IDS_M75Hz 6307 // 75 Hz
#define IDS_M100Hz 6308 // 100 Hz
#define IDS_M150Hz 6309 // 150 Hz
#define IDS_M200Hz 6310 // 200 Hz
#define IDS_M300Hz 6311 // 300 Hz
#define IDS_M400Hz 6312 // 400 Hz
#define IDS_M600Hz 6313 // 600 Hz
#define IDS_M800Hz 6314 // 800 Hz
#define IDS_M1KHz2 6315 // 1200 Hz
#define IDS_M1KHz6 6316 // 1600 Hz
#define IDS_M2KHz4 6317 // 2400 Hz
#define IDS_M3KHz2 6318 // 3200 Hz
#define IDS_M4KHz8 6319 // 4800 Hz
#define IDS_M9KHz6 6320 // 9600 Hz
/*************************************************************************
'* EST error numbers from spider8
*************************************************************************/
#define IDS_NoErr 0 // no error
#define IDS_Err_Reset 10000 // Spider in reset mode
#define IDS_Err_Trans 10001 // communication error, parity...
#define IDS_Err_SysFail 10002 // system error
#define IDS_Err_UnknIn 10003 // unknown instruction
#define IDS_Err_WrParms 10004 // wrong number of parameters
#define IDS_Err_ParOutL 10005 // wrong parameter value
#define IDS_Err_fgNIO 10006 // error because of filter frequency
#define IDS_Err_AmpOvr 10007 // amplifier overflow
#define IDS_Err_InsNIO 10008 // instruction not executable
#define IDS_Err_OMB 10009 // error during OMB
#define IDS_Err_ChanSel 10010 // wrong channel selection
#define IDS_Err_Measure 10011 // error during measurement
#define IDS_Err_Trig 10012 // error when trigger
#define IDS_Err_MeasRng 10013 // wrong measuring range
#define IDS_Err_Tar 10014 // error during tare
#define IDS_Err_Flashup 10020 // spider8 during flash update
/*************************************************************************
'* warning numbers from spider8
*************************************************************************/
#define IDS_Err_fgNFI 10021 // filter frequency
#define IDS_Err_TarNS 10022 // tare status
/*************************************************************************
'* error numbers from spider8.dll
*************************************************************************/
#define S8_Err_NoErr 0 // no error
#define S8_Err_FOpen -10 // error during open file
#define S8_Err_SetPos -12 // error during set file position
#define S8_Err_FRead -13 // error during file read
#define S8_Err_FWrite -14 // error during file write
#define S8_Err_BadFile -15 // bad file
#define S8_Err_BadVersion -16 // bad file version
#define S8_NoMem -100 // not enough memory (RAM)
#define S8_NoResource -102 // resource not found
#define S8_WrongWhat -103 // wrong What-par. during settings
#define S8_NotSetUnit -104 // you cannot set the unit
#define S8_ParOutLimits -105 // invalid parameter
#define S8_NotSetNumChan -106 // you can't set the num. of chans
#define S8_NotSetMode -107 // you can't set the mode
#define S8_ErrTimo -108 // timeout
#define S8_ErrMeas -109 // measure status was different to 6
#define S8_ErrNoChan -110 // no channel active
#define S8_WrongChan -111 // invalid channel number
#define S8_ErrEST -112 // error during S8_GetErrorStatus
#define S8_ErrGPCS -113 // error during S8_GetPsbleChanSettings
#define S8_WrongFtype -114 // invalid file type
/*************************************************************************
'* error numbers from interfac.dll
*************************************************************************/
#define ERR_PORT_OPEN_FAILED -1
#define ERR_BUILD_DCB_FAILED -2
#define ERR_SETPORT_FAILED -3
#define ERR_PORT_NOT_OPEN -4
#define ERR_PORT_ALREADY_OPEN -5
#define ERR_PORT_CLOSE_FAILED -6
#define ERR_PORT_NOT_AVAILABLE -7
#define ERR_BUFF_ALLOC_FAILED -8
#define ERR_INVALID_PORT -9
#define ERR_TIMO -10
#define ERR_RECV_BUFF_EXCEEDED -11
#define ERR_WRITEPORT_FAILED -12
#define ERR_OVERRUN -13
#define ERR_OPEN_LOGFILE -20
#define ERR_WRITE_LOGFILE -21
#define SERIAL_ERR_RECVBUFF_OVER 0x0001 // input buffer overflow
#define SERIAL_ERR_OVERRUN 0x0002 // overrun error
#define SERIAL_ERR_PARITY 0x0004
#define SERIAL_ERR_FRAME 0x0008
#define SERIAL_ERR_BREAK 0x0010
#define SERIAL_ERR_TXFULL 0x0100 // output queue full
#define GPIB_ERR 0x8000
#define GPIB_ERR_TIMO 6 // I/O aborted on timeout
#define GPIB_ERR_EDVR 0 // no driver, no device
#define GPIB_ERR_ENOL 2 // no listener
/*************************************************************************
Declaration of export functions
*************************************************************************/
EXTERN_C long WINAPI S8_ACQRead( // sends "OMB?<Num>"
long Num, // number of measured values per channel (max. 3000)
long Timeout, // timeout in ms
float *MWBuf); // buffer for the measured values; be shure, that declared big enough
EXTERN_C long WINAPI S8_ACQSetup( // sends "ACT<Chan[i]>,1" <Num> times
long Num, // number of channels in the following list
long *Chans); // list of channels, which will be measured
EXTERN_C long WINAPI S8_ACQStart( // sends "MSV<Num>,1,<TrgMode>,1"
long Num, // number of measured values per channel
// 0 == continuous measurement
long MeasRate, // See "ICR" IDS_Mxxx constants
// -1 == do not change the current measuring rate
long TrgMode, // See "MSV" trigger mode constants
// All following parameters are only used when TrgMode == IDS_IntTr
long TrgChan, // trigger source channel
float TrgLevel, // trigger level in current unit
long TrgEdge, // trigger edge "DTR"
long PreTrg); // number of measured values before trigger event
EXTERN_C long WINAPI S8_ACQStop(void); // sends "STP"
EXTERN_C long WINAPI S8_CloseDevice(void);
EXTERN_C long WINAPI S8_ClosePort(void);
EXTERN_C long WINAPI S8_DoSelfTest( // UNIMPLEMENTED!
long *ErrorStatus, // error status
long *ErrorNum, // error number
char *ErrorText); // error text
EXTERN_C long WINAPI S8_DoTara(void);
EXTERN_C long WINAPI S8_GetChanSettings( // sends "ASA?<LChan>" or similar
long LChan, // channel number
long What, // type of settings; look at S8_CS_...-values
void *Value); // setting value; the possible values depend on the type of settings
EXTERN_C long WINAPI S8_GetDevSettings(
long What, // type of settings; look at S8_DS_...-values
void *Value); // setting value; the possible values depend on the type of settings
EXTERN_C long WINAPI S8_GetErrorStatus(void); // sends "EST?"
EXTERN_C long WINAPI S8_GetIndexString(
long Index, // index number
char *IString); // string to the index number
EXTERN_C long WINAPI S8_GetPsbleChanSettings(
long LChan, // channel number
long All, // unused
long What, // type of settings; look at S8_CS_...-values
void *Value); // setting value
EXTERN_C long WINAPI S8_GetPsbleDevSettings(
long All, // not in use
long What, // type of settings; look at S8_CS_...-values
void *Value); // setting value
EXTERN_C long WINAPI S8_GetVersion(
char *Vers); // DLL-version string
EXTERN_C long WINAPI S8_InitAll(
long Port, // port number; look at PORT_...-numbers
long Mode); // interface mode
// GPIB: --> no effect
// COM1/2: --> "BDR" baud rate
// LPT1/2: --> parallel port mode
// USB: --> unused (no support for multiple USB connections??)
EXTERN_C long WINAPI S8_LoadChanSettings(
long LChan, // channel number
long What); // type of settings; look at S8_CS_...-values
EXTERN_C long WINAPI S8_LoadDevSettings(
long What); // type of settings; look at S8_DS_...-values
EXTERN_C long WINAPI S8_MeasOneVal(void);
EXTERN_C long WINAPI S8_OpenDevice(
long Mode, // device mode; look at device mode numbers
long *NumChan); // number of channels; only when mode S8_Offline
EXTERN_C long WINAPI S8_OpenPort(
long Port, // port number; look at PORT_...-numbers
long Baudrate, // baud rate or parallel port mode
// Port PORT_GPIB --> no effect
// Port PORT_COM1 --> BDR baud rate
// Port PORT_COM2 --> BDR baud rate
// Port PORT_LPT1 --> parallel port mode
// Port PORT_LPT2 --> parallel port mode
char *Parity, // parity; must be "e" for spider8
long DataBits, // number of data bits; must be 8 for spider8
long StopBits, // number of stop bits; must be 1 for spider8
long RecBuff); // size of receive buffer
EXTERN_C long WINAPI S8_ReadPort(
long Count, // number of desired bytes
long Term, // character, which terminates the data
long *Status, // status after transmission
char *Buffer, // buffer for input data
long *BytesRead); // really transmitted data bytes
EXTERN_C long WINAPI S8_ReadSettings(
char *FileName, // name of file
long FileType); // type of file: 0 == binary
EXTERN_C long WINAPI S8_SaveChanSettings(
long LChan, // channel number
long What); // type of settings; look at S8_CS_...-values
EXTERN_C long WINAPI S8_SaveDevSettings(
long What); // type of settings; look at S8_DS_...-values
EXTERN_C long WINAPI S8_SetChanSettings(
long LChan, // channel number
long What, // type of settings; look at S8_CS_...-values
void *Value); // setting value
EXTERN_C long WINAPI S8_SetDevSettings(
long What, // type of settings; look at S8_DS_...-values
void *Value); // setting value
EXTERN_C long WINAPI S8_TareSetup(
long Num, // number of channels in the following list
long *Chans); // list of channels, which will be tared
EXTERN_C long WINAPI S8_Trigger(void);
EXTERN_C long WINAPI S8_WritePort(
char *Buffer); // buffer for writing data
EXTERN_C long WINAPI S8_WriteSettings(
char *FileName, // name of file
long FileType); // type of file
// 0 --> binary
// 1 --> ASCII (but you cannot read it with S8_ReadSettings)
| Vorgefundene Kodierung: UTF-8 | 0
|