00001 #ifndef __KSJ_API_BASE_H__
00002 #define __KSJ_API_BASE_H__
00003
00004
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