C/C++ Developer's SCAN_OBJECT structure prototype




typedef struct _SCAN_OBJECT{      // NOTE:  Most commonly used members are underlined. Members that are bold are further explained in tables below.
BYTE SO_bScanType; // app writes (needed by DLL to start scan)
DOUBLE SO_dblDevRate; // app writes (needed by DLL to start scan)
UINT SO_uiTotalPointsReadByDrvr; // DLL writes (can be read by app)
UINT SO_uiPointsInBuffer; // DLL writes (app reads this to get num points available to be read)
UINT SO_uiStatus; // DLL writes (important scanning status information needed by app)
UINT SO_uiSizeVoltageArray; // No longer used (but must be present as placeholder)
UINT SO_uiCurHead; // DLL writes (can be read by app)
UINT SO_uiCurTail; // DLL writes (can be read by app)
BYTE SO_bDigitalInput; // DLL writes (can be read by app)
BYTE SO_bChecksum; // DLL writes (can be read by app)
BYTE SO_bDeviceDisconnect; // No longer used (but must be present as placeholder)
UINT SO_uiScanStartTime; // No longer used (app may use for convenience)
UINT SO_uiScanEndTime; // No longer used (app may use for convenience)
BYTE SO_bScanArg; // app writes (needed by DLL to start scan)
SCAN_OBJECT, *PSCAN_OBJECT;
'NOTE:  The following are possible bit settings for SO_Status shown above
#define SCAN_RUNNING    0x1 not currently used
#define SCAN_DATA_REQUEST_SUCCEEDED    0x2 not currently used
#define SCAN_ENDING    0x4 not currently used
#define SCAN_HALTED    0x8 if set, the device is no longer scanning
#define SCAN_CHECKSUM_ERROR    0x10 if set there has been a checksum error
#define SCAN_VOLTAGE_BUFFER_WRAP    0x20 indicates a wrap in the DLL's data buffer
#define SCAN_MICRO_CODE_BUFF_WRAP    0x40 indicates a wrap in the device's data buffer
#define SCAN_DEVICE_IO_ERROR    0x80 indicates I/O error
#define SCAN_DEVICE_DISCONNECTED    0x100 not currently used
#define SCAN_DEVICE_NOT_FOUND    0x200 not currently used


'NOTE:  The following are possible bit settings for SO_bScanType shown above
#define CMND_SINGLE_CHAN_SCAN    1 single chan scan (normal)
#define CMND_SINGLE_CHAN_DIGIN_SCAN    2 single chan - includes digin in separate buffer with each data point
#define CMND_MULTI_CHAN_SCAN    3 multi chan scan (normal)
#define CMND_MULTI_CHAN_CAL_SCAN    4 multi chan - includes chan 7 each scan
#define CMND_MULTI_CHAN_DIGIN_SCAN    5 multi chan - includes digin in separate buffer with each data point
#define CMND_MULTI_CHAN_DIGIN_CAL_SCAN    6 multi chan - includes digin in separate buffer with each data point and chan 7 each scan




back to main page Table of Contents     (use browser "back" button to go back to other locations)




lawsnlab@lawsonlabs.com
last reviewed/modified: 9-29-03 (Tim Van Dusen)