00001 #ifndef __KSJ_API_BASE_H__
00002 #define __KSJ_API_BASE_H__
00003 
00004 // #pragma message("Include KSJApiBase.h") 
00005 
00006 #ifdef KSJAPI_EXPORTS
00007 #define KSJ_API __declspec(dllexport)
00008 #elif defined KSJAPI_STATIC
00009 #define KSJ_API
00010 #else
00011 #define KSJ_API __declspec(dllimport)
00012 #endif
00013 
00014 #ifndef IN
00015 #define IN
00016 #endif
00017 
00018 #ifndef OUT
00019 #define OUT
00020 #endif
00021 
00022 #ifndef OPTIONAL
00023 #define OPTIONAL
00024 #endif
00025 
00026 #ifdef __cplusplus
00027 extern "C"{
00028 #endif
00029 
00032 
00033     enum KSJ_DEVICETYPE
00034     {
00035         KSJ_UC130C_MRNN = 0,   
00036         KSJ_UC130M_MRNN,       
00037         KSJ_RESERVED0,         
00038         KSJ_UC320C_MRNN,       
00039         KSJ_UC130C_MRYN,       
00040         KSJ_UC130M_MRYN,       
00041         KSJ_RESERVED1,         
00042         KSJ_UC320C_MRYN,       
00043         KSJ_UC500C_MRNN,       
00044         KSJ_UC500M_MRNN,       
00045         KSJ_UC500C_MRYN,       
00046         KSJ_UC500M_MRYN,       
00047         KSJ_UC320_OCR,         
00048         KSJ_UC900C_MRNN,       
00049         KSJ_UC1000C_MRNN,      
00050         KSJ_UC900C_MRYN,       
00051         KSJ_UC1000C_MRYN,      
00052         KSJ_MUC120C_MRYYO,     
00053         KSJ_MUC120M_MRYYO,     
00054         KSJ_UD140C_SRNN,       
00055         KSJ_UD140M_SRNN,       
00056         KSJ_UC36C_MGNN,        
00057         KSJ_UC36M_MGNN,        
00058         KSJ_UC36C_MGYN,        
00059         KSJ_UC36M_MGYN,        
00060         KSJ_UC900C_MRYY,       
00061         KSJ_UC1000C_MRYY,      
00062         KSJ_UC1400C_MRYY,      
00063         KSJ_UC36C_MGYY,        
00064         KSJ_UC36M_MGYY,        
00065         KSJ_UC320C_MRYY,       
00066         KSJ_UC500C_MRYY,       
00067         KSJ_UC500M_MRYY,       
00068         KSJ_MUC130C_MRYN,      
00069         KSJ_MUC130M_MRYN,      
00070         KSJ_MUC320C_MRYN,      
00071         KSJ_MUC36C_MGYYO,      
00072         KSJ_MUC36M_MGYYO,      
00073         KSJ_MUC130C_MRYY,      
00074         KSJ_MUC130M_MRYY,      
00075         KSJ_MUC320C_MRYY,      
00076         KSJ_MUC500C_MRYYO,     
00077         KSJ_MUC500M_MRYYO,     
00078         KSJ_MUC900C_MRYY,      
00079         KSJ_MUC1000C_MRYY,     
00080         KSJ_MUC1400C_MRYY,     
00081         KSJ_UD205C_SGYY,       
00082         KSJ_UD205M_SGYY,       
00083         KSJ_UD274C_SGYY,       
00084         KSJ_UD274M_SGYY,       
00085         KSJ_UD285C_SGYY,       
00086         KSJ_UD285M_SGYY,       
00087         KSJ_MU3C500C_MRYYO,    
00088         KSJ_MU3C500M_MRYYO,    
00089         KSJ_MU3C1000C_MRYYO,   
00090         KSJ_MU3C1400C_MRYYO,   
00091         KSJ_MU3V130C_CGYYO,    
00092         KSJ_MU3V130M_CGYYO,    
00093         KSJ_MU3E130C_EGYYO,    
00094         KSJ_MU3E130M_EGYYO,    
00095         KSJ_MUC36C_MGYFO,      
00096         KSJ_MUC36M_MGYFO,      
00097         KSJ_MU3C120C_MGYYO,    
00098         KSJ_MU3C120M_MGYYO,    
00099         KSJ_MU3E200C_EGYYO,    
00100         KSJ_MU3E200M_EGYYO,    
00101         KSJ_MUC130C_MRYNO,     
00102         KSJ_MUC130M_MRYNO,     
00103         KSJ_MUC320C_MRYNO,     
00104         KSJ_U3C130C_MRYNO,     
00105         KSJ_U3C130M_MRYNO,     
00106         KSJ_U3C320C_MRYNO,     
00107         KSJ_U3C500C_MRYNO,     
00108         KSJ_U3C500M_MRYNO,     
00109         KSJ_MU3C1401C_MRYYO,   
00110         KSJ_MU3C1001C_MRYYO,   
00111         KSJ_MUC131M_MRYN,      
00112         KSJ_MU3C501C_MRYYO,    
00113         KSJ_MU3C501M_MRYYO,    
00114         KSJ_MUC120C_MGYYO,     
00115         KSJ_MUC120M_MGYYO,     
00116         KSJ_MU3E131C_EGYYO,    
00117         KSJ_MU3E131M_EGYYO,    
00118         KSJ_MU3E201C_EGYYO,    
00119         KSJ_MU3E201M_EGYYO,    
00120         KSJ_MISSING_DEVICE,    
00121         KSJ_MU3S230C_SGYYO,    
00122         KSJ_MU3S230M_SGYYO,    
00123         KSJ_MU3S640C_SRYYO,    
00124         KSJ_MU3S640M_SRYYO,    
00125         KSJ_CUD285C_SGYYO,     
00126         KSJ_CUD285M_SGYYO,     
00127         KSJ_MU3S231C_SGYYO,    
00128         KSJ_MU3S231M_SGYYO,    
00129         KSJ_MU3S500C_SGYYO,    
00130         KSJ_MU3S500M_SGYYO,    
00131         KSJ_MU3S1200C_SRYYO,   
00132         KSJ_MU3S1200M_SRYYO,   
00133         KSJ_MU3L2K7C_AGYYO,    
00134         KSJ_MU3L2K7M_AGYYO,    
00135         KSJ_MU3L4K3C_AGYYO,    
00136         KSJ_MU3L4K3M_AGYYO,    
00137         KSJ_MU3HS2000C_SRYYO,  
00138         KSJ_MU3HS2000M_SRYYO,  
00139         KSJ_MU3HS500C_SGYYO,   
00140         KSJ_MU3HS500M_SGYYO,   
00141         KSJ_MU3HS230C_SGYYO,   
00142         KSJ_MU3HS230M_SGYYO,   
00143         KSJ_MU3HI400C_IGYYO,   
00144         KSJ_MU3HI400M_IGYYO,   
00145         KSJ_TEST_CAMERA,       
00146         KSJ_MU3HI401C_IGYYO, 
00147         KSJ_MU3HI401M_IGYYO,
00148         KSJ_MU3S40C_SGYYO, 
00149         KSJ_MU3S40M_SGYYO,     
00150         KSJ_MU3S210C_SRYYO,    
00151         KSJ_MU3S210M_SRYYO,    
00152         KSJ_MU3I130C_IGYYO,    
00153         KSJ_MU3I130M_IGYYO,    
00154         KSJ_MU3S321C_SGYYO,    
00155         KSJ_MU3S321M_SGYYO,    
00156         KSJ_MU3S641M_SRYYO,    
00157         KSJ_MU3S1201M_SRYYO,   
00158         KSJ_MU3HS2001M_SRYYO,  
00159         KSJ_MU3S211M_SRYYO,    
00160         KSJ_MU3C36C_MGYY,      
00161         KSJ_MU3C36M_MGYY,      
00162         KSJ_MU3HS1200C_SRYYO,  
00163         KSJ_MU3HS1200M_SRYYO,  
00164         KSJ_MU3S160C_SGYYO,    
00165         KSJ_MU3S160M_SGYYO,    
00166         KSJ_MU3S641C_SRYYO,    
00167         KSJ_HU3HG500C_GGYYO,   
00168         KSJ_HU3HG500M_GGYYO,   
00169         KSJ_HU3HG900C_GGYYO,   
00170         KSJ_HU3HG900M_GGYYO,   
00171         KSJ_HU3HG1800C_GGYYO,  
00172         KSJ_HU3HG1800M_GGYYO,  
00173         KSJ_HU3HG2500C_GGYYO,  
00174         KSJ_HU3HG2500M_GGYYO,  
00175         KSJ_MU3S1600C_SRYYO,   
00176         KSJ_MU3S1600M_SRYYO    
00177     };
00178 
00179 
00192     KSJ_API  int __stdcall KSJ_Init();
00193     
00202     KSJ_API  int __stdcall KSJ_UnInit(void);
00203     
00212     KSJ_API  int __stdcall KSJ_DeviceGetCount(void);
00213     
00226     KSJ_API  int __stdcall KSJ_DeviceGetInformation(IN int nIndex, OUT KSJ_DEVICETYPE *pDeviceType, OUT int *pnSerials, OUT unsigned short *pwFirmwareVersion);
00227     
00241     KSJ_API  int __stdcall KSJ_DeviceGetInformationEx(IN int nIndex, OUT KSJ_DEVICETYPE *pDeviceType, OUT int *pnSerials, OUT unsigned short *pwFirmwareVersion, OUT unsigned short *pwFpgaVersion);
00242 
00244     enum KSJ_PARAM
00245     {
00246         KSJ_EXPOSURE = 0,              
00247         KSJ_RED,                       
00248         KSJ_GREEN,                     
00249         KSJ_BLUE,                      
00250         KSJ_GAMMA,                     
00251         KSJ_PREVIEW_COLUMNSTART,       
00252         KSJ_PREVIEW_ROWSTART,          
00253         KSJ_CAPTURE_COLUMNSTART,       
00254         KSJ_CAPTURE_ROWSTART,          
00255         KSJ_HORIZONTALBLANK,           
00256         KSJ_VERTICALBLANK,             
00257         KSJ_FLIP,                      
00258         KSJ_BIN,                       
00259         KSJ_MIRROR,                    
00260         KSJ_CONTRAST,                  
00261         KSJ_BRIGHTNESS,                
00262         KSJ_VGAGAIN,                   
00263         KSJ_CLAMPLEVEL,                
00264         KSJ_CDSGAIN,                   
00265         KSJ_RED_SHIFT,                 
00266         KSJ_GREEN_SHIFT,               
00267         KSJ_BLUE_SHIFT,                
00268         KSJ_COMPANDING,                
00269         KSJ_EXPOSURE_LINES,            
00270         KSJ_SATURATION,                
00271         KSJ_TRIGGERDELAY,              
00272         KSJ_STROBEDELAY,               
00273         KSJ_TRIGGER_MODE,              
00274         KSJ_TRIGGER_METHOD,            
00275         KSJ_BLACKLEVEL,                
00276         KSJ_BLACKLEVEL_THRESHOLD_AUTO, 
00277         KSJ_BLACKLEVEL_THRESHOLD_LO,   
00278         KSJ_BLACKLEVEL_THRESHOLD_HI    
00279     };
00280 
00293     KSJ_API  int __stdcall KSJ_GetParamRange(IN int nIndex, IN KSJ_PARAM Param, OUT int *pnMinValue, OUT int *pnMaxValue);
00294     
00306     KSJ_API  int __stdcall KSJ_SetParam(IN int nIndex, IN KSJ_PARAM Param, IN  int nValue);
00307     
00319     KSJ_API  int __stdcall KSJ_GetParam(IN int nIndex, IN KSJ_PARAM Param, OUT int *pnValue);
00320 
00331     KSJ_API  int __stdcall KSJ_ExposureTimeSet(int nIndex, float fExposureTimeMs);
00332     
00343     KSJ_API  int __stdcall KSJ_ExposureTimeGet(int nIndex, float *pfExpTimeMs);
00344 
00346     enum KSJ_ADDRESSMODE
00347     { 
00348         KSJ_SKIPNONE = 0, 
00349         KSJ_SKIP2,        
00350         KSJ_SKIP3,        
00351         KSJ_SKIP4,        
00352         KSJ_SKIP8         
00353     };
00354 
00370     KSJ_API  int __stdcall KSJ_CaptureGetDefaultFieldOfView(int nIndex, int *pnColStart, int *pnRowStart, int *pnColSize, int *pnRowSize, KSJ_ADDRESSMODE *pColAddressMode, KSJ_ADDRESSMODE *pRowAddressMode);
00371     
00389     KSJ_API  int __stdcall KSJ_CaptureSetFieldOfView(int nIndex, int nColStart, int nRowStart, int nColSize, int nRowSize, KSJ_ADDRESSMODE AmCol, KSJ_ADDRESSMODE AmRow);
00390     
00406     KSJ_API  int __stdcall KSJ_CaptureGetFieldOfView(int nIndex, int *pnColStart, int *pnRowStart, int *pnColSize, int *pnRowSize, KSJ_ADDRESSMODE *pColAddressMode, KSJ_ADDRESSMODE *pRowAddressMode);
00407     
00421     KSJ_API  int __stdcall KSJ_CaptureGetSize(int nIndex, int *pnWidth, int *pnHeight);
00422     
00438     KSJ_API  int __stdcall KSJ_CaptureGetSizeEx(int nIndex, int *pnWidth, int *pnHeight, int *pnBitCount);
00439     
00451     KSJ_API  int __stdcall KSJ_CaptureRawData(int nIndex, unsigned char *pRawData);
00452     
00465     KSJ_API  int __stdcall KSJ_CaptureRgbData(int nIndex, unsigned char *pRgbData);
00466     
00480     KSJ_API  int __stdcall KSJ_CaptureRgbDataEx(int nIndex, unsigned char *pRgbData, int *pnWidth, int *pnHeight, int *pnBitCount);
00481 
00497     KSJ_API  int __stdcall KSJ_PreviewGetDefaultFieldOfView(int nIndex, int *pnColStart, int *pnRowStart, int *pnColSize, int *pnRowSize, KSJ_ADDRESSMODE *pColAddressMode, KSJ_ADDRESSMODE *pRowAddressMode);
00498     
00516     KSJ_API  int __stdcall KSJ_PreviewSetFieldOfView(int nIndex, int nColStart, int nRowStart, int nColSize, int nRowSize, KSJ_ADDRESSMODE AmCol, KSJ_ADDRESSMODE AmRow);
00517     
00533     KSJ_API  int __stdcall KSJ_PreviewGetFieldOfView(int nIndex, int *pnColStart, int *pnRowStart, int *pnColSize, int *pnRowSize, KSJ_ADDRESSMODE *pColAddressMode, KSJ_ADDRESSMODE *pRowAddressMode);
00534     
00548     KSJ_API  int __stdcall KSJ_PreviewGetSize(int nIndex, int *pnWidth, int *pnHeight);
00549 
00565     KSJ_API  int __stdcall KSJ_PreviewGetSizeEx(int nIndex, int *pnWidth, int *pnHeight, int *pnBitCount);
00566     
00581     KSJ_API  int __stdcall KSJ_PreviewSetPos(int nIndex, HWND hWnd, int x, int y, int nWidth, int nHeight);
00582     
00596     KSJ_API  int __stdcall KSJ_PreviewGetPos(int nIndex, int *px, int *py, int *pnWidth, int *pnHeight);
00597    
00608     KSJ_API  int __stdcall KSJ_PreviewStart(int nIndex, bool bStart);
00609     
00611     enum KSJ_PREVIEWSTATUS 
00612     {
00613         PS_STOP,   
00614         PS_START,  
00615         PS_PAUSE   
00616     };
00617     
00628     KSJ_API  int __stdcall KSJ_PreviewGetStatus(int nIndex, KSJ_PREVIEWSTATUS *pPreviewStatus);
00629 
00641     KSJ_API  int __stdcall KSJ_PreviewStartEx(int nIndex, bool bStart, bool bParallel );
00642 
00654     KSJ_API  int __stdcall KSJ_PreviewGetStatusEx(int nIndex, KSJ_PREVIEWSTATUS *pPreviewStatus, bool *pbParallel);
00655 
00667     KSJ_API  int __stdcall KSJ_PreviewGetFrameRateEx(int nIndex, float *fFrameRateCapture, float *fFrameRateShow);
00668     
00680     KSJ_API  int __stdcall KSJ_GetPreviewFrameCount(int nIndex, int *pnCaptureFrameCount, int *pnShowFrameCount);
00681 
00694     KSJ_API  int __stdcall KSJ_SendPktEnd(int nIndex);
00695 
00707     KSJ_API  int __stdcall KSJ_LogSet(bool bEnable, const TCHAR *pszFolder);
00708 
00718     KSJ_API  int __stdcall KSJ_LogGet(bool *bEnable, TCHAR *pszFolder);
00719 
00732     KSJ_API  int __stdcall KSJ_GetVersion(OUT int *pnMaj1, OUT int *pnMaj2, OUT int *pnMin1, OUT int *pnMin2);
00733 
00734 
00748     KSJ_API  int __stdcall KSJ_GetDriveVersion(int nIndex, int *pnMaj1, int *pnMaj2, int *pnMin1, int *pnMin2);
00749 
00763     KSJ_API  int __stdcall KSJ_HelperSaveToBmp(unsigned char *pData, int nWidth, int nHeight, int nBitCount, const TCHAR *pszFileName);
00764 
00779     KSJ_API  int __stdcall KSJ_HelperSaveToJpg(unsigned char *pData, int nWidth, int nHeight, int nBitCount, int nQulity, const TCHAR *pszFileName);
00780 
00793     KSJ_API  int __stdcall KSJ_OpenSettingPage(IN int nIndex, IN void *hWndParent, int nLeft, int nTop);
00794     
00804     KSJ_API  int __stdcall KSJ_IsSettingPageShow(bool* pbShow);
00805     
00814     KSJ_API  int __stdcall KSJ_CloseSettingPageShow();
00815 
00827     KSJ_API  int __stdcall KSJ_GetSegmentNum(int nIndex, int *pnSegNum);
00828 
00842     KSJ_API  int __stdcall KSJ_GetBlackLevelRange(int nIndex, int nSegIndex, int *pnMin, int *pnMax);
00843 
00856     KSJ_API  int __stdcall KSJ_SetBlackLevel(int nIndex, int nSegIndex, int nBlackLevel);
00857 
00870     KSJ_API  int __stdcall KSJ_GetBlackLevel(int nIndex, int nSegIndex, int *pnBlackLevel);
00872 #ifdef __cplusplus
00873 }
00874 #endif
00875 
00876 #endif