123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575 |
- #include <WinDNS.h>
- #ifndef VADAVINTF_H_INCLUDED
- #define VADAVINTF_H_INCLUDED
- ////// acquisition //////
- #ifdef NUM_UNSIGNED // use unsigned tVD_Nums
- #define tVD_Num unsigned short
- #else // use signed tVCA_Nums
- #define tVD_Num short
- #endif
- #pragma pack (4)
- // acquisition flags tVDACQ_CallBackRec.rFlags
- #define cVDACQ_FDark 0 // acquire dark frame
- #define cVDACQ_FBright 1 // acquire bright frame (dark otherwise)
- #define cVDACQ_FTestPat 2 // acquire test pattern (TFT only)
- #define cVDACQ_FRecentFrame 4 // retrieve recent frame (TFT only)
- #define cVDACQ_FBrightIgn (1<<31) // ignore state of the bit 'Bright' for machine control (affects some TFT only)
- // acquisition event types tVDACQ_CallBackRec.rType
- #define cVDACQ_ETTrace 0 // various information messages (mainly from acquistion thread<s>)
- #define cVDACQ_ETTraceT 1 // time-stamp and the information message
- #define cVDACQ_ETErr 2 // an error from the library's acquisition code
- #define cVDACQ_ETLastErr 3 // an error from Windows API, described by 'GetLastError'
- #define cVDACQ_ETWSAErr 4 // an error from Windows socket
- // acquisition events tVDACQ_CallBackRec.rEvent
- #define cVDACQ_EAbort 1 // application invokes VDACQ_Abort
- #define cVDACQ_EClose 2 // application invokes VDACQ_Close
- #define cVDACQ_ECapture 20 // a message from the library's acquisition thread<s>
- #define cVDACQ_ECapturePerc 21 // acquisition thread<s> tells percentage of completeness
- #define cVDACQ_ECaptureRecv 22 // acquisition thread<s> informs about new received data
- #define cVDACQ_EIdle 23 // acquisition thread tells that it have had idle time-slice
- #define cVDACQ_EReadoutDone 24
- #define cVDACQ_EExposureDone 25
- #define cVDACQ_EAT_Ready 14
- #define cVDACQ_EAT_Wait 26
- #define cVDACQ_ECaptureFrame 30
- #define cVDACQ_EStandardMode_Change 31 // Standard mode change start, using with cVDACQ_ETTraceT or cVDACQ_ETErr
- #define cVDACQ_EStandardMode_Done 32 // Standard mode change done
- #define cVDACQ_ERecordStop 41 // VDACQ_Record(FALSE)
- #define cVDACQ_ERecordStart 42 // VDACQ_Record(TRUE)
- #define cVDACQ_EReplay 45 // VDACQ_Replay
- #define cVDACQ_ELostFrameIndex 49 // VDACQ_GetLostFrameIndex
- #define cVDACQ_EMultiCalHandler_Init 51 // cVDACQ_FGC_MultiCalHandler
- #define cVDACQ_EMultiCalHandler_Change 52 // cVDACQ_FGC_MultiCalHandler
- #define cVDACQ_ECapture2_CalHandlerInit 61 // cVDACQ_FGC_CaptureCalHandler
- #define cVDACQ_ECapture2_Expose 62 // VDACQ_Capture2
- #define cVDACQ_ECapture2_Receive 63 // acquisition thread informs about "capture(one-shot) on dynamic"
- // acquisition events tVDACQ_CallBackRec.rStatus (=rSocket)
- #define cVDACQ_ESStart 1
- #define cVDACQ_ESGeneral 2
- #define cVDACQ_ESDone 3
- #define cVDACQ_ESWarning 4
- #define cVDACQ_ESError 5
- #define cVDACQ_ESException 6
- #define cVDACQ_ESStop 7
- // framegrabber acquisition control flags tVDACQ_CallBackRec.rFGControl
- #define cVDACQ_FFGCStop (1<<0) // FG control: stop acquisition
- #define cVDACQ_FFGCXOn (1<<1) // FG control: XRay is 'On'
- // keep this frame or add it to result when FGC_NoAve is OFF
- //information feedback record
- typedef struct CallBackRec{
- int rCode,
- rAborted;
- void *rUserCallBackProc,
- *rUserParam;
- HANDLE rThread = INVALID_HANDLE_VALUE;
- TCHAR rMsg[256];
- } tVD_CallBackRec;
- //information callback procedure
- typedef void(_stdcall *tVD_CallBackProc)(int, TCHAR *);
- // acquisition feedback record
- typedef struct {
- int rFlags, // combination of cVDACQ_Fxxxx
- rType, // cVDACQ_ETxxx
- rEvent; // cVDACQ_Exxx
- union {
- int rSocket; // 0:no relation to a 'socket'; otherwise socket's ID>0 (event's source ID)
- int rStatus; // cVDACQ_ESxxx; detailed status for each event
- };
- TCHAR rMsg[256]; // message (trace, wrn, err)
- int rFrameWidth, // full frame width
- rFrameHeight; // full frame height
- tVD_Num *rFrameBuffer; // user supplied frame buffer "AFrameBuffer"
- union {
- int rCaptureRows; // # of received rows (for single frame acquisition)
- int rCaptureFrames; // # of received full frames (for framegrabber)
- };
- int rCapturePercent; // received data in percents
- void *rUserCallBackProc, // user supplied "ACallBackProc"
- *rUserParam; // user supplied "AUserParam"
- int rAborted; // 0:none, 1:VDACQ_Abort, -1:internally
- void *rPacketData; // pointer to received packet; usually it is nil
- int rFGControl; // frame-grabber's control flags
- int rStandardMode; // Standard mode, defined depending on each model
- } tVDACQ_CallBackRec;
- // 'socket' ID #1: control-send (respective thread or real socket for Ethernet)
- // #2: control-receive
- // #3: data-receive
- // When callback is triggered by received message from detector it has non-nil field
- // PacketData. Normally an OEM application does not check received packets directly.
-
- // callback procedure
- typedef void (_stdcall *tVDACQ_CallBackProc)( tVDACQ_CallBackRec* );
- // framegrabber parameters for 'VDACQ_SetFGRec', 'VDACQ_GetFGRec'
- #define cVDACQ_FG_None 0 // use default acquisition (via Ethernet)
- #define cVDACQ_FG_NIIMAQ 1 // Nat Instr IMAQ
- #define cVDACQ_FG_AnyGrab 2 // VATech AnyGrabber
- #define cVDACQ_FG_FRM 3 // FRM11, FRM10 or FRM24 of DAQ systems
- #define cVDACQ_FG_FRM11 3 // for legacy SW compatibility
- #define cVDACQ_GigE_Vision 4 // GigE Vision
- #define cVDACQ_FG_CTT 4 // Contact-Us
- #define cVDACQ_FG_Et 5 // Ethernet 'default'
- #define cVDACQ_FG_OPT 6 // OPT01 of DAQ systems
- #define cVDACQ_Ethernet 7 // Ethernet
- #define cVDACQ_FG_FX3 8
- #define cVDACQ_FGC_NoUIXOn (1<<0) // disable UI XOn controls (when UI is used)
- #define cVDACQ_FGC_NoAve (1<<1) // disable calculation of the average frame
- #define cVDACQ_FGC_NoDesp (1<<2) // use simple median 3x3 when VDC_FDespeckle is set
- #define cVDACQ_FGC_StandardMode (1<<3) // use standard mode
- #define cVDACQ_FGC_MultiCalHandler (1<<4) // use standard mode
- #define cVDACQ_FGC_CaptureCalHandler (1<<5) // use capture (one-shot on dynamic)
- typedef struct {
- int rType, // one of VDACQ_FG_xxx
- rFG_Control, // combination of the flags 'VDACQ_FGC_xxx'
- rCalFlags, // combination of the flags 'VDC_Fxxxx'
- rRingBufs; // number of ring-buffers (0:continuous memory queue)
- TCHAR rInterfaceName[60];
- } tVDACQ_FGRec;
- ////// calibration //////
- // calibration flags
- #define cVDC_FCalOffs 1 // apply offset/dark calibration
- #define cVDC_FCalGain 2 // apply gain/bright calibration
- #define cVDC_FBadPixMap 4 // request application of bad pixels map
- #define cVDC_FDespeckle 8 // apply despeckle
- #define cVDC_FOptDist 16 // apply optical distortion correction
- #define cVDC_FAuxLnRecal 32 // apply auxiliary lines re-calibration
- #define cVDACQ_FCaptureCal (1<<8) // capture or oneshot calibration
- #define cVDC_FTempDirIP (1<<31) // save temporary images in default image direcotory
- // calibration event types
- #define cVDC_ETTrace 0 // information message from calibration code
- #define cVDC_ETTraceT 1 // time-stamp and information message
- #define cVDC_ETErr 2 // an error from the library's calibration code
- // calibration events
- #define cVDC_EAbort 1 // application invokes VDC_Abort
- #define cVDC_EClose 2 // application invokes VDC_Close
- #define cVDC_ECalib 20 // a message from the library's calibration code
- #define cVDC_ECalibPerc 21 // calibration code tells percentage of completeness
- // calibration feedback record
- typedef struct {
- int rFlags, // combination of cVDC_Fxxxx
- rType, // cVDC_ETxxx
- rEvent; // cVDC_Exxx
- TCHAR rMsg[256]; // message (trace, wrn, err)
- int rFrameWidth, // full frame width
- rFrameHeight, // full frame height
- rStoredWidth, // stored image width
- rStoredHeight, // stored image height
- rCalibPercent; // amount of processed data in %
- tVD_Num *rFrameBuffer, // received frame data
- *rImageBuffer; // cropped image
- void *rUserCallBackProc, // user supplied "ACallBackProc"
- *rUserParam; // user supplied "AUserParam"
- int rAborted; // 1: set by VDC_Abort; -1:internally
- } tVDC_CallBackRec;
- // callback procedure
- typedef void (_stdcall *tVDC_CallBackProc)( tVDC_CallBackRec* );
- typedef struct {
- int rImgCutLeft, // cut left after rotation & flip
- rImgCutTop, // cut top after rotation & flip
- rImgCutRight, // cut right after rotation & flip
- rImgCutBottom, // cut bottom after rotation & flip
- rRotation, // 0:none, 1:90 deg CCW, 2:90 deg CW
- rFlip; // bit #0: flip horz, bit #1: flip vert
- } tVDC_ImgCut;
- ///// image process /////
- // img process flags
- #define cVDIP_FDespeckle 1 // apply despeckle
- #define cVDIP_F3PCurve 2 // apply 3-points curve or simple inversion
- #define cVDIP_FUSMask 4 // apply all unsharpen filters
- // img process event types
- #define cVDIP_ETTrace 0 // information message from 'enhancement' code
- #define cVDIP_ETTraceT 1 // time-stamp and information message
- #define cVDIP_ETErr 2 // an error from the library's 'enhancement' code
- // img process events
- #define cVDIP_EAbort 1 // application invokes VDIP_Abort
- #define cVDIP_EClose 2 // application invokes VDIP_Close
- #define cVDIP_EEnh 20 // information message from 'enhancement' code
- #define cVDIP_EEnhPerc 21 // 'enhancement' code tells percentage of completeness
- // img process feedback record
- typedef struct {
- int rFlags, // combination of cVDC_Fxxxx
- rType, // cVDC_ETxxx
- rEvent; // cVDC_Exxx
- TCHAR rMsg[256]; // message (trace, wrn, err)
- int rStoredWidth, // stored image width
- rStoredHeight, // stored image height
- rEnhPercent, // processed data in %
- rModeNumber; // img process mode
- tVD_Num *rImageBuffer; // image buffer
- void *rUserCallBackProc, // user supplied "ACallBackProc"
- *rUserParam; // user supplied "AUserParam"
- int rAborted; // 1: set by VDIP_Abort; -1:internally
- } tVDIP_CallBackRec;
- // callback procedure
- typedef void (_stdcall *tVDIP_CallBackProc)( tVDIP_CallBackRec* );
- #pragma pack ()
- #define DWORD_FLAG_MODE_COMMON (DWORD)0x00
- #define DWORD_FLAG_MODE_BINNING (DWORD)0x01
- #define DWORD_FLAG_MODE_PARTIALVALUE (DWORD)0x02
- #define DWORD_FLAG_MODE_FRAMERATE (DWORD)0x04
- #define DWORD_FLAG_MODE_SENSITIVITY (DWORD)0x08
- #define DWORD_FLAG_MODE_DYNAMICTRIGGER (DWORD)0x10
- #define DWORD_FLAG_MODE_ONESHOTTRIGGER (DWORD)0x20
- #define DWORD_FLAG_MODE_CAPTUREEXPOSURETIME (DWORD)0x40
- #define DWORD_FLAG_MODE_CAPTUREWAITTIME (DWORD)0x80
- #define DWORD_FLAG_CLOSING_NORMAL (DWORD)0x00
- #define DWORD_FLAG_CLOSING_TIMEOUT (DWORD)0x01
- #define DWORD_FLAG_CLOSING_INIT_FAULT (DWORD)0x02
- typedef void(_stdcall* GetDetectorModeCallback)(DWORD, DWORD, const TCHAR*);
- #define cVD_IntParamNone 0x80000000 // for VD_IntParam
- #ifdef INTERNAL_VATECH_DAVINCI_LIBRARY // procedures' declarations ('as is' in the DLL)
- // general UI and logs //
- // returns TRUE if UNICODE version
- BOOL _stdcall VD_IsUnicode();
- // invokes general property sheet
- BOOL _stdcall VD_Dialog();
- // open log-file
- void _stdcall VD_LogOpen( const TCHAR *AHomeDir, int ANumLogFiles, const TCHAR *AFPrefix );
- // record string to log-file
- void _stdcall VD_LogMsg( const TCHAR *AMsg );
- // close log-file
- void _stdcall VD_LogClose();
- // flush log-file
- void _stdcall VD_LogFlush();
- // returns home directory
- void _stdcall VD_GetHomeDirectory( TCHAR *ADir );
- // set section name in library's initialization profile file
- void _stdcall VD_IniProfSetSection( const TCHAR *ASectName );
- // get string key from library's initialization profile
- const TCHAR* _stdcall VD_IniProfGetStr( const TCHAR *AKeyName, const TCHAR *ADefault );
- // set/get "data segment" (static) parameter
- int _stdcall VD_IntParam( const TCHAR *AParamName, int AParamValue );
- const TCHAR* _stdcall VD_StrParam( const TCHAR *AParamName, const TCHAR *AParamValue );
- ////// acquisition //////
- // sets full frame dimension (should not be called for real acquisitin case)
- void _stdcall VDACQ_SetFrameDim( int AWidth, int AHeight );
- // returns full frame dimension
- void _stdcall VDACQ_GetFrameDim( int *AWidth, int *AHeight );
- // connects to detector
- tVDACQ_CallBackRec* _stdcall VDACQ_Connect( int AFlags,
- tVDACQ_CallBackProc AUserCallBackProc, void *AUserParam, tVD_Num *AFrameBuffer, int AMode );
- void _stdcall rVDACQ_SetCaptureBuf(tVD_Num *AFrameBuffer);
- // send simple auxiliary command (TFT only)
- BOOL _stdcall VDACQ_SendCommand( tVDACQ_CallBackRec *ACallBackRec, DWORD ACommand );
- BOOL _stdcall VDACQ_SendCommandParam( tVDACQ_CallBackRec *ACallBackRec, DWORD ACommand, const void *AData, int ADataSize );
- // vendor comand (USB only)
- BOOL _stdcall VDACQ_VendorCommand( tVDACQ_CallBackRec *ACallBackRec, int ARequest, int AValue, int AIndex );
- // starts acquisition
- BOOL _stdcall VDACQ_StartFrame( tVDACQ_CallBackRec *ACallBackRec );
- // aborts acquisition
- BOOL _stdcall VDACQ_Abort( tVDACQ_CallBackRec *ACallBackRec );
- // releases resources associated with ACallBackRec
- void _stdcall VDACQ_Close( tVDACQ_CallBackRec *ACallBackRec );
- void _stdcall VDACQ_Resume();
- void _stdcall VDACQ_Stop();
- void _stdcall VDACQ_Capture(int nMode);
- void _stdcall VDACQ_Capture2(tVDACQ_CallBackRec *ACallBackRec);
- void _stdcall VDC_CalDir(int nNum);
- // returns current detector's IP or PID
- void _stdcall VDACQ_GetDetectorAddr( TCHAR *AIPAddr );
- // sets detector's IP or PID
- void _stdcall VDACQ_SetDetectorAddr( const TCHAR *AAddr );
- // sets framegrabber's parameters
- void _stdcall VDACQ_SetFGRec( const tVDACQ_FGRec *AFGRec );
- // returns framegrabber's parameters
- void _stdcall VDACQ_GetFGRec( tVDACQ_FGRec *AFGRec );
- // returns current number of acquired frames at low-level
- int _stdcall VDACQ_GetFGFrameNum();
- // sets freeze state for framegrabber; AFreezeState<0 just returns current state
- int _stdcall VDACQ_FGFreeze( int AFreezeState );
- // set detector's information to flash memory (as ASCII)
- BOOL _stdcall VDACQ_GetDetectorInfo( TCHAR *AStr );
- // retrieve detector's information from flash memory (as ASCII)
- BOOL _stdcall VDACQ_SetDetectorInfo( const TCHAR *AStr );
- // returns Detector FPGA version
- bool _stdcall VDACQ_GetVersionFPGA(TCHAR* Aversion);
- // returns Detector MCU version
- bool _stdcall VDACQ_GetVersionMCU(TCHAR* Aversion);
- // returns Detector Serial number
- bool _stdcall VDACQ_GetSerialNumber(TCHAR* Aserialnum);
- // returns Detector Model name
- bool _stdcall VDACQ_GetModelName(TCHAR* Amodelname);
- // returns Detector current state
- bool _stdcall VDACQ_GetDetectorState(int* Aresult);
-
- ////// calibration //////
- // returns image dimension; returns FALSE if all cut margins are zero
- BOOL _stdcall VDC_GetImageDim( int *AWidth, int *AHeight );
- // cuts (also rotates and flips optionally) frame buffer to image's dimension.
- tVD_Num *_stdcall VDC_CutImage( const tVD_Num *AFrameBuffer, tVD_Num *AImageBuffer );
- tVD_Num *_stdcall VDC_ROIImage( const tVD_Num *AFrameBuffer, tVD_Num *AImageBuffer, int ATargetX, int ATargetY, int ATargetWidth, int ATargetHeight );
- // starts calibration
- tVDC_CallBackRec* _stdcall VDC_Process( int AFlags,
- tVDC_CallBackProc AUserCallBackProc, void *AUserParam, tVD_Num *AFrameBuffer );
- tVDC_CallBackRec* _stdcall VDC_Process_OneShot( int AFlags,
- tVDC_CallBackProc AUserCallBackProc, void *AUserParam, tVD_Num *AFrameBuffer );
- // aborts calibration
- BOOL _stdcall VDC_Abort( tVDC_CallBackRec *ACallBackRec );
- // releases resources associated with ACallBackRec
- void _stdcall VDC_Close( tVDC_CallBackRec *ACallBackRec );
- // service: returns current calibration directory
- void _stdcall VDC_GetCalibrationDirectory( TCHAR *ADir );
- // service: set temporary calibration directory
- BOOL _stdcall VDC_SetCalibrationDirectory( const TCHAR *ADir );
- // service: returns image cut params
- void _stdcall VDC_GetImgCutParams( tVDC_ImgCut *ACutParams );
- // service: sets image cut params
- void _stdcall VDC_SetImgCutParams( const tVDC_ImgCut *ACutParams );
- void _stdcall VDC_SetDigitalGain( double nGain );
- double _stdcall VDC_GetDigitalGain();
-
- ///// image process /////
- // starts img process
- tVDIP_CallBackRec* _stdcall VDIP_Process( int AFlags,
- tVDIP_CallBackProc AUserCallBackProc, void *AUserParam, tVD_Num *AImageBuffer, int AModeNumber );
- // aborts img process
- BOOL _stdcall VDIP_Abort( tVDIP_CallBackRec *ACallBackRec );
- // releases resources associated with ACallBackRec
- void _stdcall VDIP_Close( tVDIP_CallBackRec *ACallBackRec );
- //// user interface /////
- void _stdcall VD_Set_Acquisition( int AFlags, tVD_Num *AFrameData, int AMode, tVDACQ_CallBackProc AUserCallBackProc, void *AUserParam );
- void _stdcall VD_Set_Calibration( int AFlags, tVD_Num *AFrameData, tVD_Num *AImgData, tVDC_CallBackProc AUserCallBackProc, void *AUserParam );
- void _stdcall VD_Set_ImgProcess( int AFlags, tVD_Num *AImgData, int AModeNumber, tVDIP_CallBackProc AUserCallBackProc, void *AUserParam );
- // default modal dialog with preview
- int _stdcall VD_GetImage( HWND AOwner );
- // modal dialog with preview in specified rectangle
- int _stdcall VD_GetImageSP( HWND AOwner, int AWndLeft, int AWndTop, int AWndWidth, int AWndHeight );
- // modal dialog withoiut preview
- int _stdcall VD_GetImageA( HWND AOwner, int AWndLeft, int AWndTop );
- // cancel modal dialog
- void _stdcall VD_GetImageCancel();
- BOOL _stdcall VD_GetDark(int nFrameNum, int nSkip, int nTimeout, BOOL bDataSeires);
- BOOL _stdcall VD_GetDark_Forced(int nFrameNum, int nSkip, int nTimeout, BOOL bDataSeires);
- BOOL _stdcall VD_GetBright(int nFrameNum, int nSkip, int nTimeout, BOOL bDataSeires);
- int _stdcall VD_GetBright2(int nFrameNum, int nSkip, int nTimeout, BOOL bDataSeires);
- BOOL _stdcall VD_Grab(tVD_Num *pImage, int nCalFlag, int nFrameNum, int nSkip, int nTimeout, BOOL bDataSeires);
- BOOL _stdcall VD_CheckInterface(int nTimeout);
- void _stdcall VD_GigE_Init();
- BOOL _stdcall VDC_GenerateBright();
- BOOL _stdcall VDC_GenerateBPM();
- void _stdcall VDC_NoiseReduction(unsigned short *pInputData, int nWidth, int nHeight, float nPara1, int nPara2);
-
- int CalGO_GetIntFromStr( const TCHAR *AStr, int APos, int ALen );
- BOOL _stdcall VDACQ_SetBinning( int nBinning );
- BOOL _stdcall VDACQ_SetFrameRate( float nFrameRate );
- BOOL _stdcall VDACQ_SetSensitivity( int nSensitivity );
- BOOL _stdcall VDACQ_SetPartialValue(int nValue);
- BOOL _stdcall VDACQ_SetRFMode(int nValue);
- BOOL _stdcall VDACQ_SetOneShot( int nOneShotMode );
- BOOL _stdcall VDACQ_SetDynamic_Trigger( int nDynamicTriggerMode );
- BOOL _stdcall VDACQ_SetOneShot_Trigger(int nOneShotTriggerMode);
- void _stdcall VDC_SetRecursiveFilter( int bEnable );
- int _stdcall VDACQ_GetBinning();
- double _stdcall VDACQ_GetFrameRate();
- int _stdcall VDACQ_GetSensitivity();
- int _stdcall VDACQ_GetPartialValue();
- int _stdcall VDACQ_GetRFMode();
- BOOL _stdcall VDACQ_GetOneShot();
- int _stdcall VDACQ_GetDynamic_Trigger();
- int _stdcall VDACQ_GetOneShot_Trigger();
- BOOL _stdcall VDC_GetRecursiveFilter();
- BOOL _stdcall VD_FreeResource();
- BOOL _stdcall VDC_GenerateBright();
- void _stdcall VD_IniSave();
- BOOL _stdcall VDACQ_SecondCtrl();
- BOOL _stdcall VDACQ_ModeLock(BOOL bLock);
- BOOL _stdcall VD_GetDetectorMode(DWORD dwFlags, GetDetectorModeCallback pCallbackproc);
- DWORD _stdcall VD_GetLastError();
- int _stdcall VDACQ_GetCaptureExposureTime();
- BOOL _stdcall VDACQ_SetCaptureExposureTime(int);
- int _stdcall VDACQ_GetCaptureWaitTime();
- BOOL _stdcall VDACQ_SetCaptureWaitTime(int);
- tVD_CallBackRec* _stdcall VD_IntgTimeCalibration(tVD_CallBackProc AUserCallBackProc);
- BOOL _stdcall VD_GenerateBPM(tVD_CallBackProc);
- BOOL _stdcall VDACQ_DarkReloadInAcquisition(tVDACQ_CallBackRec*);
- QWORD _stdcall VD_GetVersionVADAV();
- QWORD _stdcall VD_GetVersionVACAL();
- QWORD _stdcall VD_GetVersionView16();
- BOOL _stdcall VDACQ_SetDynExposureTime(float);
- BOOL _stdcall VDAUX_IsAbleStretch();
- BOOL _stdcall VDAUX_SetStretch(int srcW, int srcH, float dstPX, float dstPY);
- BOOL _stdcall VDAUX_GetStretchDim(int* dstW, int* dstH);
- BOOL _stdcall VDAUX_DoStretch(const unsigned short* src, unsigned short* dst);
- BOOL _stdcall VDACQ_IsAbleStandardMode();
- BOOL _stdcall VDACQ_InitStandardMode(int nFlag);
- BOOL _stdcall VDACQ_SetStandardMode(int nMode, tVDACQ_CallBackRec *ACallBackRec);
- BOOL _stdcall VDACQ_IsAbleReplay();
- BOOL _stdcall VDACQ_Record(BOOL bStart);
- BOOL _stdcall VDACQ_Replay(int nStartIndex, int nFrameCount);
- int _stdcall VDACQ_GetLostFrameIndex(int nCount, unsigned short *pIndex);
- BOOL _stdcall VDACQ_SetMultiCalHandler(int nHandlerNum);
- #else // for use in applications
- // table of exported methods
- typedef struct {
- HINSTANCE rHDLL; // the library's handle
- // general UI and logs //
- BOOL (_stdcall *rVD_IsUnicode)(void);
- BOOL (_stdcall *rVD_Dialog)( HWND ); // it has additional parameter: owner's window
- void (_stdcall *rVD_LogOpen)( const TCHAR*, int, const TCHAR* );
- void (_stdcall *rVD_LogMsg)( const TCHAR* );
- void (_stdcall *rVD_LogClose)(void);
- void (_stdcall *rVD_LogFlush)(void);
- void (_stdcall *rVD_GetHomeDirectory)( TCHAR* );
- void (_stdcall *rVD_IniProfSetSection)( const TCHAR* );
- const TCHAR* (_stdcall *rVD_IniProfGetStr)( const TCHAR*, const TCHAR* );
- int (_stdcall *rVD_IntParam)( const TCHAR*, int );
- const TCHAR* (_stdcall *rVD_StrParam)( const TCHAR*, const TCHAR* );
- ////// acquisition //////
- void (_stdcall *rVDACQ_SetFrameDim)( int, int );
- void (_stdcall *rVDACQ_GetFrameDim)( int*, int* );
- tVDACQ_CallBackRec* (_stdcall *rVDACQ_Connect)(int, tVDACQ_CallBackProc, void*, tVD_Num*, int);
- void(_stdcall *rVDACQ_SetCaptureBuf)(tVD_Num *);
- BOOL (_stdcall *rVDACQ_SendCommand)( tVDACQ_CallBackRec*, DWORD );
- BOOL (_stdcall *rVDACQ_SendCommandParam)( tVDACQ_CallBackRec*, DWORD, const void*, int );
- BOOL (_stdcall *rVDACQ_StartFrame)( tVDACQ_CallBackRec* );
- BOOL (_stdcall *rVDACQ_VendorCommand)( tVDACQ_CallBackRec*, int, int, int );
- BOOL (_stdcall *rVDACQ_Abort)( tVDACQ_CallBackRec* );
- void (_stdcall *rVDACQ_Close)( tVDACQ_CallBackRec* );
- void (_stdcall *rVDACQ_Stop)( );
- void (_stdcall *rVDACQ_Resume)( );
- void (_stdcall *rVDACQ_Capture)(int nMode );
- void (_stdcall *rVDACQ_Capture2)(tVDACQ_CallBackRec *ACallBackRec);
- void (_stdcall *rVDACQ_GetDetectorAddr)( TCHAR* );
- void (_stdcall *rVDACQ_SetDetectorAddr)( const TCHAR* );
- void (_stdcall *rVDACQ_SetFGRec)( const tVDACQ_FGRec*);
- void (_stdcall *rVDACQ_GetFGRec)( tVDACQ_FGRec* );
- int (_stdcall *rVDACQ_GetFGFrameNum)(void);
- int (_stdcall *rVDACQ_FGFreeze)( int );
- BOOL (_stdcall *rVDACQ_GetDetectorInfo)( TCHAR* );
- BOOL (_stdcall *rVDACQ_SetDetectorInfo)( const TCHAR* );
- bool(_stdcall *rVDACQ_GetVersionFPGA)(TCHAR*);
- bool(_stdcall *rVDACQ_GetVersionMCU)(TCHAR*);
- bool(_stdcall *rVDACQ_GetSerialNumber)(TCHAR*);
- bool(_stdcall *rVDACQ_GetModelName)(TCHAR*);
- bool(_stdcall *rVDACQ_GetDetectorState)(int*);
- ////// calibration //////
- BOOL (_stdcall *rVDC_GetImageDim)( int*, int* );
- tVD_Num* (_stdcall *rVDC_CutImage)(const tVD_Num*, tVD_Num*);
- tVD_Num* (_stdcall *rVDC_ROIImage)(const tVD_Num*, tVD_Num*, int, int, int, int);
- tVDC_CallBackRec* (_stdcall *rVDC_Process)(int, tVDC_CallBackProc, void*, tVD_Num*);
- BOOL (_stdcall *rVDC_Abort)( tVDC_CallBackRec* );
- void (_stdcall *rVDC_Close)( tVDC_CallBackRec* );
- void (_stdcall *rVDC_GetCalibrationDirectory)( TCHAR* );
- BOOL (_stdcall *rVDC_SetCalibrationDirectory)( const TCHAR* );
- void (_stdcall *rVDC_GetImgCutParams)( tVDC_ImgCut* );
- void (_stdcall *rVDC_SetImgCutParams)( const tVDC_ImgCut* );
- void (_stdcall *rVDC_SetDigitalGain)( double );
- double (_stdcall *rVDC_GetDigitalGain)( );
- ///// image process /////
- tVDIP_CallBackRec* (_stdcall *rVDIP_Process)(int, tVDIP_CallBackProc, void*, tVD_Num*, int);
- BOOL (_stdcall *rVDIP_Abort)( tVDIP_CallBackRec* );
- void (_stdcall *rVDIP_Close)( tVDIP_CallBackRec* );
- //// user interface /////
- void(_stdcall *rVD_Set_Acquisition)(int, tVD_Num*, int, tVDACQ_CallBackProc, void*);
- void(_stdcall *rVD_Set_Calibration)(int, tVD_Num*, tVD_Num*, tVDC_CallBackProc, void*);
- void(_stdcall *rVD_Set_ImgProcess)(int, tVD_Num*, int, tVDIP_CallBackProc, void*);
- int (_stdcall *rVD_GetImage)( HWND );
- int (_stdcall *rVD_GetImageSP)( HWND, int, int, int, int );
- int (_stdcall *rVD_GetImageA)( HWND, int, int );
- void (_stdcall *rVD_GetImageCancel)(void);
- BOOL (_stdcall *rVD_GetDark)(int, int, int, BOOL);
- BOOL (_stdcall *rVD_GetDark_Forced)(int, int, int, BOOL);
- BOOL (_stdcall *rVD_GetBright)(int, int, int, BOOL);
- int (_stdcall *rVD_GetBright2)(int, int, int, BOOL);
- BOOL(_stdcall *rVD_Grab)(tVD_Num *, int, int, int, int, BOOL);
- BOOL (_stdcall *rVD_CheckInterface) (int );
- void (_stdcall *rVD_GigE_Init)( void );
- BOOL (_stdcall *rVDC_GenerateBright)( );
- BOOL (_stdcall *rVDC_GenerateBPM)( );
- void (_stdcall *rVDC_NoiseReduction)(unsigned short *, int, int, float, int);
- BOOL (_stdcall *rVDACQ_SetRFMode)( int nValue );
- BOOL (_stdcall *rVDACQ_SetBinning)( int nBinning );
- BOOL (_stdcall *rVDACQ_SetPartialValue)( int nValue );
- BOOL (_stdcall *rVDACQ_SetFrameRate)( float nFrameRate );
- BOOL (_stdcall *rVDACQ_SetSensitivity)( int nSensitivity );
- BOOL (_stdcall *rVDACQ_SetOneShot)( int nOneShotMode );
- BOOL (_stdcall *rVDACQ_SetDynamic_Trigger)( int nDynamicTriggerMode );
- BOOL (_stdcall *rVDACQ_SetOneShot_Trigger)( int nOneShotTriggerMode );
- void (_stdcall *rVDC_SetRecursiveFilter)( int bEnable );
- int (_stdcall *rVDACQ_GetBinning)();
- double (_stdcall *rVDACQ_GetFrameRate)();
- int (_stdcall *rVDACQ_GetSensitivity)();
- int (_stdcall *rVDACQ_GetPartialValue)();
- int (_stdcall *rVDACQ_GetRFMode)();
- BOOL (_stdcall *rVDACQ_GetOneShot)();
- int (_stdcall *rVDACQ_GetDynamic_Trigger)();
- int (_stdcall *rVDACQ_GetOneShot_Trigger)();
- BOOL (_stdcall *rVDC_GetRecursiveFilter)();
- BOOL (_stdcall *rVD_FreeResource)( );
- void (_stdcall *rVD_RegisterCallbackInfo)(tVD_CallBackProc );
- void (_stdcall *rVDC_CalDir)( int nNum );
- void (_stdcall *rVD_IniSave)();
- BOOL (_stdcall *rVDACQ_SecondCtrl)();
- BOOL (_stdcall *rVDACQ_ModeLock)(BOOL);
- BOOL (_stdcall *rVD_GetDetectorMode)(DWORD, GetDetectorModeCallback);
- DWORD (_stdcall *rVD_GetLastError)();
- int (_stdcall *rVDACQ_GetCaptureExposureTime)();
- BOOL (_stdcall *rVDACQ_SetCaptureExposureTime)(int);
- int (_stdcall *rVDACQ_GetCaptureWaitTime)();
- BOOL (_stdcall *rVDACQ_SetCaptureWaitTime)(int);
- tVD_CallBackRec* (_stdcall *rVD_IntgTimeCalibration)(tVD_CallBackProc);
- BOOL (_stdcall* rVD_GenerateBPM)(tVD_CallBackProc);
- BOOL(_stdcall* rVDACQ_DarkReloadInAcquisition)(tVDACQ_CallBackRec*);
- QWORD(_stdcall* rVD_GetVersionVADAV)();
- QWORD(_stdcall* rVD_GetVersionVACAL)();
- QWORD(_stdcall* rVD_GetVersionView16)();
- BOOL(_stdcall* rVDACQ_SetDynExposureTime)(float);
- BOOL (_stdcall* rVDAUX_IsAbleStretch)();
- BOOL (_stdcall* rVDAUX_SetStretch)(int srcW, int srcH, float dstPX, float dstPY);
- BOOL (_stdcall* rVDAUX_GetStretchDim)(int* dstW, int* dstH);
- BOOL (_stdcall* rVDAUX_DoStretch)(const unsigned short* src, unsigned short* dst);
- BOOL(_stdcall* rVDACQ_IsAbleStandardMode)();
- BOOL(_stdcall* rVDACQ_InitStandardMode)(int nFlag);
- BOOL (_stdcall* rVDACQ_SetStandardMode)(int nMode, tVDACQ_CallBackRec *ACallBackRec);
- BOOL (_stdcall* rVDACQ_IsAbleReplay)();
- BOOL (_stdcall* rVDACQ_Record)(int nStart, tVDACQ_CallBackRec *ACallBackRec);
- BOOL (_stdcall* rVDACQ_Replay)(int nStartIndex, int nFrameCount, tVDACQ_CallBackRec *ACallBackRec);
- int (_stdcall* rVDACQ_GetLostFrameIndex)(int nCount, unsigned short *pIndex);
- BOOL (_stdcall* rVDACQ_SetMultiCalHandler)(int nHandlerNum);
- } tVADAV_InterfaceRec;
- BOOL VADAV_MapDLL( const TCHAR *ADllFName, tVADAV_InterfaceRec *AIntfRec );
- // calls LoadLibrary and fills "AIntfRec"
- void VADAV_ReleaseDLL( tVADAV_InterfaceRec *AIntfRec );
- // calls FreeLibrary
- #endif // for use in applications
- #endif // ifdef VADAVINTF_H_INCLUDED
-
|