179 lines
6.5 KiB
C
179 lines
6.5 KiB
C
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// pci416_32dll.h: Header file for DLL functions that perform board setup and
|
||
|
// data acquisition using FIFO polling.
|
||
|
// Copyright (c) Datel, Inc. 1997
|
||
|
// Platform: Win95, Win NT
|
||
|
// Compiler: MVC4.0 + DDK
|
||
|
// Version: 3.0
|
||
|
// Author: GS
|
||
|
// created: 2/28/97
|
||
|
// modified: 7/9/98
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef PCI416_32DLL_H
|
||
|
#define PCI416_32DLL_H
|
||
|
|
||
|
#include <windows.h>
|
||
|
|
||
|
// REALTYPE is defined as double (size: 8 bytes)
|
||
|
|
||
|
/******************************************************************************
|
||
|
Function: get_adm_inf
|
||
|
|
||
|
Description: Returns specific info of installed A/D module.
|
||
|
Use this function instead the get_adm_stats function for DLL calls.
|
||
|
The get_adm_stats function expects a pointer to an ADM_STATS
|
||
|
structure which is only available in C programs. Other compilers and
|
||
|
programs may generate structures with different size and boundaries
|
||
|
that could cause sytem crashes!
|
||
|
|
||
|
Inputs: DWORD brdindex : Index of board.
|
||
|
Max. index = number of PCI-416 boards - 1
|
||
|
Char *model : ADM model
|
||
|
WORD *bits : Resolution in bits
|
||
|
WORD *channels : no.of channels
|
||
|
WORD *shortcycle : 1== can be short cycled
|
||
|
REALTYPE *fmax_single: max. sample freq. single channel mode
|
||
|
REALTYPE *fmax_scan: max. sample freq. multi channel mode
|
||
|
|
||
|
return: Error status as define in winerror.h
|
||
|
NOERROR
|
||
|
ERROR_INVALID_HANDLE
|
||
|
ERROR_DEV_NOT_EXIST
|
||
|
******************************************************************************/
|
||
|
DWORD LIB_TYPE get_adm_inf(DWORD brdindex, WORD *model, WORD *bits, WORD *channels,
|
||
|
WORD *shortcycle, REALTYPE *fmax_single, REALTYPE *fmax_scan);
|
||
|
|
||
|
/******************************************************************************
|
||
|
Function: set_modes
|
||
|
|
||
|
Description: Setup board paramters: sample rate, trigger rate, clock and trigger
|
||
|
source etc.
|
||
|
|
||
|
Inputs: DWORD brdindex : Index of board.
|
||
|
Max. index = number of PCI-416 boards - 1
|
||
|
WORD ClockSrc : 0= INTERNAL, 1= EXTERNAL,
|
||
|
other : internal with sample rate set to
|
||
|
max. value in scan mode.
|
||
|
REALTYPE SampleRate : A/D sample rate, if src set to INTERNAL
|
||
|
If ClockSrc is not set to INTERNAL or
|
||
|
EXTERNAL the sample rate is set to
|
||
|
max. value in scan mode.
|
||
|
DWORD SamplesPerTrigger: Number of samples to collect
|
||
|
at each trigger pulse.
|
||
|
WORD TriggerSrc : 0= INTERNAL,1 = EXTERNAL,
|
||
|
2= ANALOG Rising Edge, 3= ANALOG Falling Edge,
|
||
|
other: INTERNAL
|
||
|
WORD Channel : channel of acquisition in single channel mode
|
||
|
or last scan channel in scan mode if applicable
|
||
|
0 <= Channel < number of channels
|
||
|
WORD PreTrigger : 1== PreTrigger
|
||
|
WORD Scan : 1== Scan mode
|
||
|
WORD Marker : 1== set marker bit
|
||
|
|
||
|
return: Error status as define in winerror.h
|
||
|
NOERROR
|
||
|
ERROR_INVALID_HANDLE
|
||
|
ERROR_DEV_NOT_EXIST
|
||
|
******************************************************************************/
|
||
|
DWORD LIB_TYPE set_modes (DWORD brdindex,
|
||
|
WORD ClockSrc,
|
||
|
REALTYPE SampleRate,
|
||
|
DWORD SamplesPerTrigger,
|
||
|
WORD TriggerSrc,
|
||
|
WORD Channel,
|
||
|
WORD PreTrigger,
|
||
|
WORD Scan,
|
||
|
WORD Marker);
|
||
|
/******************************************************************************
|
||
|
Function: start_daq
|
||
|
|
||
|
Description: Starts data acquisition.
|
||
|
All registers have to be set prior this function call with
|
||
|
set_mode!
|
||
|
|
||
|
Inputs: DWORD brdindex : Index of board.
|
||
|
Max. index = number of PCI-416 boards - 1
|
||
|
WORD TriggerMode : 0== PreTrigger, external trigger,
|
||
|
1== Single Internal Trigger,
|
||
|
2== Multi Internal Trigger
|
||
|
other default to single trigger
|
||
|
REALTYPE *TriggerRate: trigger rate for multi trigger
|
||
|
Output: REALTYPE *TriggerRate: actual trigger rate set
|
||
|
|
||
|
Note: If PreTrigger was selected in set_modes only an external trigger
|
||
|
is valid. Calls other than start_daq(brdindex, 0) will result in
|
||
|
invalid data.
|
||
|
On the other hand if PreTrigger was NOT set in set_modes
|
||
|
a start_daq(brdindex, 0) call does not start the A/D conversion.
|
||
|
|
||
|
return: Error status as define in winerror.h
|
||
|
NOERROR
|
||
|
******************************************************************************/
|
||
|
DWORD LIB_TYPE start_daq(DWORD brdindex, WORD TriggerMode,
|
||
|
REALTYPE *TriggerRate);
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
Function: stop_daq
|
||
|
|
||
|
Description: Stops data acquisition.
|
||
|
|
||
|
Inputs: DWORD brdindex : Index of board.
|
||
|
Max. index = number of PCI-416 boards - 1
|
||
|
|
||
|
return: Error status as define in winerror.h
|
||
|
NOERROR
|
||
|
******************************************************************************/
|
||
|
DWORD LIB_TYPE stop_daq(DWORD brdindex);
|
||
|
|
||
|
|
||
|
/******************************************************************************
|
||
|
Function: scan_status
|
||
|
|
||
|
Description: Acquires data by polling on the FIFO half full flag.
|
||
|
|
||
|
Inputs: DWORD brdindex : Index of board.
|
||
|
Max. index = number of PCI-416 boards - 1
|
||
|
WORD ClockSrc : C_INTERNAL, C_EXTERNAL,
|
||
|
default : internal with sample rate set to
|
||
|
max. value in scan mode.
|
||
|
REALTYPE SampleRate : A/D sample rate, if src set to C_INTERNAL
|
||
|
If ClockSrc is not set to C_INTERNAL or
|
||
|
C_EXTERNAL the sample rate is set to
|
||
|
max. value in scan mode.
|
||
|
DWORD TotalSamples : Total number of samples to collect
|
||
|
DWORD SamplesPerTrigger: Number of samples to collect
|
||
|
at each trigger pulse.
|
||
|
DWORD Frames : Number of triggers.
|
||
|
WORD TriggerSrc : T_INTERNAL,T_EXTERNAL,T_ANALOG,
|
||
|
default: T_INTERNAL
|
||
|
REALTYPE TriggerRate : Trigger rate
|
||
|
WORD Channel : channel of acquisition in single channel mode
|
||
|
or last scan channel in scan mode if applicable
|
||
|
0 <= Channel < number of channels
|
||
|
BOOL PreTrigger : TRUE== PreTrigger
|
||
|
BOOL Scan : TRUE== Scan mode
|
||
|
BOOL Marker : TRUE== set marker bit
|
||
|
PVOID buffer : User buffer to store the A/D data
|
||
|
|
||
|
return: state of the FIFO Full flag ( 0 = No overflow, 1 = FIFO FULL (overflow)
|
||
|
-1 error -> retreive error with pci416_getError
|
||
|
******************************************************************************/
|
||
|
INT LIB_TYPE scan_status (DWORD brdindex,
|
||
|
WORD ClockSrc,
|
||
|
REALTYPE SampleRate,
|
||
|
DWORD TotalSamples,
|
||
|
DWORD SamplesPerTrigger,
|
||
|
DWORD Frames,
|
||
|
WORD TriggerSrc,
|
||
|
REALTYPE TriggerRate,
|
||
|
WORD Channel,
|
||
|
BOOL PreTrigger,
|
||
|
BOOL Scan,
|
||
|
BOOL Marker,
|
||
|
PVOID buffer);
|
||
|
|
||
|
#endif
|