diff --git a/libaltaircam/CMakeLists.txt b/libaltaircam/CMakeLists.txt index 6b440dfa1..0fda3d562 100644 --- a/libaltaircam/CMakeLists.txt +++ b/libaltaircam/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libaltaircam) -set (LIBALTAIRCAM_VERSION "54.23041") +set (LIBALTAIRCAM_VERSION "54.23231") set (LIBALTAIRCAM_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libaltaircam/altaircam.h b/libaltaircam/altaircam.h index 4ff6ab028..3f64f7fb4 100644 --- a/libaltaircam/altaircam.h +++ b/libaltaircam/altaircam.h @@ -1,7 +1,7 @@ #ifndef __altaircam_h__ #define __altaircam_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Altaircam_t { int unused; } *HAltaircam; #define ALTAIRCAM_AE_PERCENT_DEF 10 #define ALTAIRCAM_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define ALTAIRCAM_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define ALTAIRCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define ALTAIRCAM_DYNAMIC_DEFECT_T1_MAX 100 -#define ALTAIRCAM_DYNAMIC_DEFECT_T1_DEF 13 -#define ALTAIRCAM_DYNAMIC_DEFECT_T2_MIN 0 -#define ALTAIRCAM_DYNAMIC_DEFECT_T2_MAX 100 +#define ALTAIRCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define ALTAIRCAM_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define ALTAIRCAM_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define ALTAIRCAM_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define ALTAIRCAM_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define ALTAIRCAM_DYNAMIC_DEFECT_T2_DEF 100 #define ALTAIRCAM_HDR_K_MIN 1 /* HDR synthesize */ #define ALTAIRCAM_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } AltaircamDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) ALTAIRCAM_API(const wchar_t*) Altaircam_Version(); @@ -379,6 +379,8 @@ typedef struct { } AltaircamFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Altaircam_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ ALTAIRCAM_API(HRESULT) Altaircam_PullImageV3(HAltaircam h, void* pImageData, int bStill, int bits, int rowPitch, AltaircamFrameInfoV3* pInfo); +ALTAIRCAM_API(HRESULT) Altaircam_WaitImageV3(HAltaircam h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, AltaircamFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ ALTAIRCAM_API(HRESULT) Altaircam_feed_Pipe(HAltaircam h, unsigned pipeId); #define ALTAIRCAM_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= ALTAIRCAM_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define ALTAIRCAM_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define ALTAIRCAM_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ ALTAIRCAM_API(HRESULT) Altaircam_feed_Pipe(HAltaircam h, unsigned pipeId); */ #define ALTAIRCAM_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define ALTAIRCAM_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define ALTAIRCAM_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define ALTAIRCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define ALTAIRCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define ALTAIRCAM_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ ALTAIRCAM_API(HRESULT) Altaircam_feed_Pipe(HAltaircam h, unsigned pipeId); #define ALTAIRCAM_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define ALTAIRCAM_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define ALTAIRCAM_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define ALTAIRCAM_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define ALTAIRCAM_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ ALTAIRCAM_API(HRESULT) Altaircam_get_AfParam(HAltaircam h, AltaircamAfParam* pA #define ALTAIRCAM_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define ALTAIRCAM_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define ALTAIRCAM_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define ALTAIRCAM_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define ALTAIRCAM_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libaltaircam/arm64/libaltaircam.bin b/libaltaircam/arm64/libaltaircam.bin index 20c728e00..b7f18c275 100644 Binary files a/libaltaircam/arm64/libaltaircam.bin and b/libaltaircam/arm64/libaltaircam.bin differ diff --git a/libaltaircam/armhf/libaltaircam.bin b/libaltaircam/armhf/libaltaircam.bin index 8967e32c0..0beffa744 100644 Binary files a/libaltaircam/armhf/libaltaircam.bin and b/libaltaircam/armhf/libaltaircam.bin differ diff --git a/libaltaircam/mac/libaltaircam.bin b/libaltaircam/mac/libaltaircam.bin index 6fef8d432..11e8a1adc 100644 Binary files a/libaltaircam/mac/libaltaircam.bin and b/libaltaircam/mac/libaltaircam.bin differ diff --git a/libaltaircam/x64/libaltaircam.bin b/libaltaircam/x64/libaltaircam.bin index ff708ac23..90e762071 100644 Binary files a/libaltaircam/x64/libaltaircam.bin and b/libaltaircam/x64/libaltaircam.bin differ diff --git a/libbressercam/CMakeLists.txt b/libbressercam/CMakeLists.txt index 180144ee7..dc958a681 100644 --- a/libbressercam/CMakeLists.txt +++ b/libbressercam/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libbressercam) -set (LIBBRESSERCAM_VERSION "54.23041") +set (LIBBRESSERCAM_VERSION "54.23231") set (LIBBRESSERCAM_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libbressercam/arm64/libbressercam.bin b/libbressercam/arm64/libbressercam.bin index 643a44863..d2ccc7ad2 100644 Binary files a/libbressercam/arm64/libbressercam.bin and b/libbressercam/arm64/libbressercam.bin differ diff --git a/libbressercam/armhf/libbressercam.bin b/libbressercam/armhf/libbressercam.bin index 36854b8ab..b57db2fa0 100644 Binary files a/libbressercam/armhf/libbressercam.bin and b/libbressercam/armhf/libbressercam.bin differ diff --git a/libbressercam/bressercam.h b/libbressercam/bressercam.h index bf9d3ed97..1e7a0f1b1 100644 --- a/libbressercam/bressercam.h +++ b/libbressercam/bressercam.h @@ -1,7 +1,7 @@ #ifndef __bressercam_h__ #define __bressercam_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Bressercam_t { int unused; } *HBressercam; #define BRESSERCAM_AE_PERCENT_DEF 10 #define BRESSERCAM_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define BRESSERCAM_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define BRESSERCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define BRESSERCAM_DYNAMIC_DEFECT_T1_MAX 100 -#define BRESSERCAM_DYNAMIC_DEFECT_T1_DEF 13 -#define BRESSERCAM_DYNAMIC_DEFECT_T2_MIN 0 -#define BRESSERCAM_DYNAMIC_DEFECT_T2_MAX 100 +#define BRESSERCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define BRESSERCAM_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define BRESSERCAM_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define BRESSERCAM_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define BRESSERCAM_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define BRESSERCAM_DYNAMIC_DEFECT_T2_DEF 100 #define BRESSERCAM_HDR_K_MIN 1 /* HDR synthesize */ #define BRESSERCAM_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } BressercamDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) BRESSERCAM_API(const wchar_t*) Bressercam_Version(); @@ -379,6 +379,8 @@ typedef struct { } BressercamFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Bressercam_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ BRESSERCAM_API(HRESULT) Bressercam_PullImageV3(HBressercam h, void* pImageData, int bStill, int bits, int rowPitch, BressercamFrameInfoV3* pInfo); +BRESSERCAM_API(HRESULT) Bressercam_WaitImageV3(HBressercam h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, BressercamFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ BRESSERCAM_API(HRESULT) Bressercam_feed_Pipe(HBressercam h, unsigned pipeId); #define BRESSERCAM_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= BRESSERCAM_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define BRESSERCAM_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define BRESSERCAM_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ BRESSERCAM_API(HRESULT) Bressercam_feed_Pipe(HBressercam h, unsigned pipeId); */ #define BRESSERCAM_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define BRESSERCAM_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define BRESSERCAM_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define BRESSERCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define BRESSERCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define BRESSERCAM_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ BRESSERCAM_API(HRESULT) Bressercam_feed_Pipe(HBressercam h, unsigned pipeId); #define BRESSERCAM_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define BRESSERCAM_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define BRESSERCAM_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define BRESSERCAM_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define BRESSERCAM_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ BRESSERCAM_API(HRESULT) Bressercam_get_AfParam(HBressercam h, BressercamAfParam #define BRESSERCAM_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define BRESSERCAM_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define BRESSERCAM_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define BRESSERCAM_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define BRESSERCAM_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libbressercam/mac/libbressercam.bin b/libbressercam/mac/libbressercam.bin index 3cd6e98be..e499ac492 100644 Binary files a/libbressercam/mac/libbressercam.bin and b/libbressercam/mac/libbressercam.bin differ diff --git a/libbressercam/x64/libbressercam.bin b/libbressercam/x64/libbressercam.bin index 65fd2491c..b0d42b622 100644 Binary files a/libbressercam/x64/libbressercam.bin and b/libbressercam/x64/libbressercam.bin differ diff --git a/libmallincam/CMakeLists.txt b/libmallincam/CMakeLists.txt index 660e0c863..a97e02bf9 100644 --- a/libmallincam/CMakeLists.txt +++ b/libmallincam/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libmallincam) -set (LIBMALLINCAM_VERSION "54.23041") +set (LIBMALLINCAM_VERSION "54.23231") set (LIBMALLINCAM_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libmallincam/arm64/libmallincam.bin b/libmallincam/arm64/libmallincam.bin index b4571ebd0..72c2a1071 100644 Binary files a/libmallincam/arm64/libmallincam.bin and b/libmallincam/arm64/libmallincam.bin differ diff --git a/libmallincam/armhf/libmallincam.bin b/libmallincam/armhf/libmallincam.bin index 2b8af2a38..80fe486a4 100644 Binary files a/libmallincam/armhf/libmallincam.bin and b/libmallincam/armhf/libmallincam.bin differ diff --git a/libmallincam/mac/libmallincam.bin b/libmallincam/mac/libmallincam.bin index 37bc49e08..d24799fd7 100644 Binary files a/libmallincam/mac/libmallincam.bin and b/libmallincam/mac/libmallincam.bin differ diff --git a/libmallincam/mallincam.h b/libmallincam/mallincam.h index ff283a099..79543313b 100644 --- a/libmallincam/mallincam.h +++ b/libmallincam/mallincam.h @@ -1,7 +1,7 @@ #ifndef __mallincam_h__ #define __mallincam_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Mallincam_t { int unused; } *HMallincam; #define MALLINCAM_AE_PERCENT_DEF 10 #define MALLINCAM_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define MALLINCAM_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define MALLINCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define MALLINCAM_DYNAMIC_DEFECT_T1_MAX 100 -#define MALLINCAM_DYNAMIC_DEFECT_T1_DEF 13 -#define MALLINCAM_DYNAMIC_DEFECT_T2_MIN 0 -#define MALLINCAM_DYNAMIC_DEFECT_T2_MAX 100 +#define MALLINCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define MALLINCAM_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define MALLINCAM_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define MALLINCAM_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define MALLINCAM_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define MALLINCAM_DYNAMIC_DEFECT_T2_DEF 100 #define MALLINCAM_HDR_K_MIN 1 /* HDR synthesize */ #define MALLINCAM_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } MallincamDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) MALLINCAM_API(const wchar_t*) Mallincam_Version(); @@ -379,6 +379,8 @@ typedef struct { } MallincamFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Mallincam_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ MALLINCAM_API(HRESULT) Mallincam_PullImageV3(HMallincam h, void* pImageData, int bStill, int bits, int rowPitch, MallincamFrameInfoV3* pInfo); +MALLINCAM_API(HRESULT) Mallincam_WaitImageV3(HMallincam h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, MallincamFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ MALLINCAM_API(HRESULT) Mallincam_feed_Pipe(HMallincam h, unsigned pipeId); #define MALLINCAM_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= MALLINCAM_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define MALLINCAM_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define MALLINCAM_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ MALLINCAM_API(HRESULT) Mallincam_feed_Pipe(HMallincam h, unsigned pipeId); */ #define MALLINCAM_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define MALLINCAM_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define MALLINCAM_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define MALLINCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define MALLINCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define MALLINCAM_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ MALLINCAM_API(HRESULT) Mallincam_feed_Pipe(HMallincam h, unsigned pipeId); #define MALLINCAM_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define MALLINCAM_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define MALLINCAM_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define MALLINCAM_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define MALLINCAM_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ MALLINCAM_API(HRESULT) Mallincam_get_AfParam(HMallincam h, MallincamAfParam* pA #define MALLINCAM_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define MALLINCAM_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define MALLINCAM_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define MALLINCAM_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define MALLINCAM_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libmallincam/x64/libmallincam.bin b/libmallincam/x64/libmallincam.bin index ed8b1fe72..4f10520b3 100644 Binary files a/libmallincam/x64/libmallincam.bin and b/libmallincam/x64/libmallincam.bin differ diff --git a/libnncam/CMakeLists.txt b/libnncam/CMakeLists.txt index f407b8388..2c9ecad63 100644 --- a/libnncam/CMakeLists.txt +++ b/libnncam/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libnncam) -set (LIBNNCAM_VERSION "54.23041") +set (LIBNNCAM_VERSION "54.23231") set (LIBNNCAM_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libnncam/arm64/libnncam.bin b/libnncam/arm64/libnncam.bin index c4878ef10..02f0738f8 100644 Binary files a/libnncam/arm64/libnncam.bin and b/libnncam/arm64/libnncam.bin differ diff --git a/libnncam/armhf/libnncam.bin b/libnncam/armhf/libnncam.bin index 53e40952c..ed11cfd73 100644 Binary files a/libnncam/armhf/libnncam.bin and b/libnncam/armhf/libnncam.bin differ diff --git a/libnncam/mac/libnncam.bin b/libnncam/mac/libnncam.bin index 7d5f70ad7..8a28d04e9 100644 Binary files a/libnncam/mac/libnncam.bin and b/libnncam/mac/libnncam.bin differ diff --git a/libnncam/nncam.h b/libnncam/nncam.h index 4f00bcc81..8724d00ed 100644 --- a/libnncam/nncam.h +++ b/libnncam/nncam.h @@ -1,7 +1,7 @@ #ifndef __nncam_h__ #define __nncam_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Nncam_t { int unused; } *HNncam; #define NNCAM_AE_PERCENT_DEF 10 #define NNCAM_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define NNCAM_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define NNCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define NNCAM_DYNAMIC_DEFECT_T1_MAX 100 -#define NNCAM_DYNAMIC_DEFECT_T1_DEF 13 -#define NNCAM_DYNAMIC_DEFECT_T2_MIN 0 -#define NNCAM_DYNAMIC_DEFECT_T2_MAX 100 +#define NNCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define NNCAM_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define NNCAM_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define NNCAM_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define NNCAM_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define NNCAM_DYNAMIC_DEFECT_T2_DEF 100 #define NNCAM_HDR_K_MIN 1 /* HDR synthesize */ #define NNCAM_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } NncamDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) NNCAM_API(const wchar_t*) Nncam_Version(); @@ -379,6 +379,8 @@ typedef struct { } NncamFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Nncam_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ NNCAM_API(HRESULT) Nncam_PullImageV3(HNncam h, void* pImageData, int bStill, int bits, int rowPitch, NncamFrameInfoV3* pInfo); +NNCAM_API(HRESULT) Nncam_WaitImageV3(HNncam h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, NncamFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ NNCAM_API(HRESULT) Nncam_feed_Pipe(HNncam h, unsigned pipeId); #define NNCAM_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= NNCAM_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define NNCAM_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define NNCAM_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ NNCAM_API(HRESULT) Nncam_feed_Pipe(HNncam h, unsigned pipeId); */ #define NNCAM_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define NNCAM_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define NNCAM_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define NNCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define NNCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define NNCAM_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ NNCAM_API(HRESULT) Nncam_feed_Pipe(HNncam h, unsigned pipeId); #define NNCAM_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define NNCAM_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define NNCAM_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define NNCAM_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define NNCAM_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ NNCAM_API(HRESULT) Nncam_get_AfParam(HNncam h, NncamAfParam* pAfParam); #define NNCAM_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define NNCAM_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define NNCAM_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define NNCAM_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define NNCAM_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libnncam/x64/libnncam.bin b/libnncam/x64/libnncam.bin index 417b26572..4e7736596 100644 Binary files a/libnncam/x64/libnncam.bin and b/libnncam/x64/libnncam.bin differ diff --git a/libogmacam/CMakeLists.txt b/libogmacam/CMakeLists.txt index 5cb75d019..4308bd4c8 100644 --- a/libogmacam/CMakeLists.txt +++ b/libogmacam/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libogmacam) -set (LIBOGMACAM_VERSION "54.23041") +set (LIBOGMACAM_VERSION "54.23231") set (LIBOGMACAM_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libogmacam/arm64/libogmacam.bin b/libogmacam/arm64/libogmacam.bin index fd1b8ef1c..10edc5a5c 100644 Binary files a/libogmacam/arm64/libogmacam.bin and b/libogmacam/arm64/libogmacam.bin differ diff --git a/libogmacam/armhf/libogmacam.bin b/libogmacam/armhf/libogmacam.bin index 391532d61..b14810431 100644 Binary files a/libogmacam/armhf/libogmacam.bin and b/libogmacam/armhf/libogmacam.bin differ diff --git a/libogmacam/mac/libogmacam.bin b/libogmacam/mac/libogmacam.bin index 03e5d2d48..2b459e35c 100644 Binary files a/libogmacam/mac/libogmacam.bin and b/libogmacam/mac/libogmacam.bin differ diff --git a/libogmacam/ogmacam.h b/libogmacam/ogmacam.h index 5bc606788..2f5786b8a 100644 --- a/libogmacam/ogmacam.h +++ b/libogmacam/ogmacam.h @@ -1,7 +1,7 @@ #ifndef __ogmacam_h__ #define __ogmacam_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Ogmacam_t { int unused; } *HOgmacam; #define OGMACAM_AE_PERCENT_DEF 10 #define OGMACAM_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define OGMACAM_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define OGMACAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define OGMACAM_DYNAMIC_DEFECT_T1_MAX 100 -#define OGMACAM_DYNAMIC_DEFECT_T1_DEF 13 -#define OGMACAM_DYNAMIC_DEFECT_T2_MIN 0 -#define OGMACAM_DYNAMIC_DEFECT_T2_MAX 100 +#define OGMACAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define OGMACAM_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define OGMACAM_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define OGMACAM_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define OGMACAM_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define OGMACAM_DYNAMIC_DEFECT_T2_DEF 100 #define OGMACAM_HDR_K_MIN 1 /* HDR synthesize */ #define OGMACAM_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } OgmacamDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) OGMACAM_API(const wchar_t*) Ogmacam_Version(); @@ -379,6 +379,8 @@ typedef struct { } OgmacamFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Ogmacam_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ OGMACAM_API(HRESULT) Ogmacam_PullImageV3(HOgmacam h, void* pImageData, int bStill, int bits, int rowPitch, OgmacamFrameInfoV3* pInfo); +OGMACAM_API(HRESULT) Ogmacam_WaitImageV3(HOgmacam h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, OgmacamFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ OGMACAM_API(HRESULT) Ogmacam_feed_Pipe(HOgmacam h, unsigned pipeId); #define OGMACAM_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= OGMACAM_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define OGMACAM_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define OGMACAM_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ OGMACAM_API(HRESULT) Ogmacam_feed_Pipe(HOgmacam h, unsigned pipeId); */ #define OGMACAM_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define OGMACAM_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define OGMACAM_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define OGMACAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define OGMACAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define OGMACAM_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ OGMACAM_API(HRESULT) Ogmacam_feed_Pipe(HOgmacam h, unsigned pipeId); #define OGMACAM_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define OGMACAM_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define OGMACAM_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define OGMACAM_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define OGMACAM_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ OGMACAM_API(HRESULT) Ogmacam_get_AfParam(HOgmacam h, OgmacamAfParam* pAfParam); #define OGMACAM_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define OGMACAM_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define OGMACAM_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define OGMACAM_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define OGMACAM_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libogmacam/x64/libogmacam.bin b/libogmacam/x64/libogmacam.bin index 5f10d8cdf..808e67f9f 100644 Binary files a/libogmacam/x64/libogmacam.bin and b/libogmacam/x64/libogmacam.bin differ diff --git a/libomegonprocam/CMakeLists.txt b/libomegonprocam/CMakeLists.txt index 689c5c63f..08db50896 100644 --- a/libomegonprocam/CMakeLists.txt +++ b/libomegonprocam/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libomegonprocam) -set (LIBOMEGONPROCAM_VERSION "54.23041") +set (LIBOMEGONPROCAM_VERSION "54.23231") set (LIBOMEGONPROCAM_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libomegonprocam/arm64/libomegonprocam.bin b/libomegonprocam/arm64/libomegonprocam.bin index ffabc5703..746dca107 100644 Binary files a/libomegonprocam/arm64/libomegonprocam.bin and b/libomegonprocam/arm64/libomegonprocam.bin differ diff --git a/libomegonprocam/armhf/libomegonprocam.bin b/libomegonprocam/armhf/libomegonprocam.bin index 948aca4f2..ec0724bd7 100644 Binary files a/libomegonprocam/armhf/libomegonprocam.bin and b/libomegonprocam/armhf/libomegonprocam.bin differ diff --git a/libomegonprocam/mac/libomegonprocam.bin b/libomegonprocam/mac/libomegonprocam.bin index a441ecacf..e348d6822 100644 Binary files a/libomegonprocam/mac/libomegonprocam.bin and b/libomegonprocam/mac/libomegonprocam.bin differ diff --git a/libomegonprocam/omegonprocam.h b/libomegonprocam/omegonprocam.h index d25961ed3..0eded4a1f 100644 --- a/libomegonprocam/omegonprocam.h +++ b/libomegonprocam/omegonprocam.h @@ -1,7 +1,7 @@ #ifndef __omegonprocam_h__ #define __omegonprocam_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Omegonprocam_t { int unused; } *HOmegonprocam; #define OMEGONPROCAM_AE_PERCENT_DEF 10 #define OMEGONPROCAM_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define OMEGONPROCAM_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define OMEGONPROCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define OMEGONPROCAM_DYNAMIC_DEFECT_T1_MAX 100 -#define OMEGONPROCAM_DYNAMIC_DEFECT_T1_DEF 13 -#define OMEGONPROCAM_DYNAMIC_DEFECT_T2_MIN 0 -#define OMEGONPROCAM_DYNAMIC_DEFECT_T2_MAX 100 +#define OMEGONPROCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define OMEGONPROCAM_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define OMEGONPROCAM_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define OMEGONPROCAM_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define OMEGONPROCAM_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define OMEGONPROCAM_DYNAMIC_DEFECT_T2_DEF 100 #define OMEGONPROCAM_HDR_K_MIN 1 /* HDR synthesize */ #define OMEGONPROCAM_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } OmegonprocamDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) OMEGONPROCAM_API(const wchar_t*) Omegonprocam_Version(); @@ -379,6 +379,8 @@ typedef struct { } OmegonprocamFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Omegonprocam_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ OMEGONPROCAM_API(HRESULT) Omegonprocam_PullImageV3(HOmegonprocam h, void* pImageData, int bStill, int bits, int rowPitch, OmegonprocamFrameInfoV3* pInfo); +OMEGONPROCAM_API(HRESULT) Omegonprocam_WaitImageV3(HOmegonprocam h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, OmegonprocamFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ OMEGONPROCAM_API(HRESULT) Omegonprocam_feed_Pipe(HOmegonprocam h, unsigned pipe #define OMEGONPROCAM_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= OMEGONPROCAM_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define OMEGONPROCAM_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define OMEGONPROCAM_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ OMEGONPROCAM_API(HRESULT) Omegonprocam_feed_Pipe(HOmegonprocam h, unsigned pipe */ #define OMEGONPROCAM_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define OMEGONPROCAM_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define OMEGONPROCAM_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define OMEGONPROCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define OMEGONPROCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define OMEGONPROCAM_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ OMEGONPROCAM_API(HRESULT) Omegonprocam_feed_Pipe(HOmegonprocam h, unsigned pipe #define OMEGONPROCAM_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define OMEGONPROCAM_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define OMEGONPROCAM_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define OMEGONPROCAM_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define OMEGONPROCAM_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ OMEGONPROCAM_API(HRESULT) Omegonprocam_get_AfParam(HOmegonprocam h, Omegonproca #define OMEGONPROCAM_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define OMEGONPROCAM_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define OMEGONPROCAM_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define OMEGONPROCAM_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define OMEGONPROCAM_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libomegonprocam/x64/libomegonprocam.bin b/libomegonprocam/x64/libomegonprocam.bin index 6b89caa1a..6c6d3e2cb 100644 Binary files a/libomegonprocam/x64/libomegonprocam.bin and b/libomegonprocam/x64/libomegonprocam.bin differ diff --git a/libstarshootg/CMakeLists.txt b/libstarshootg/CMakeLists.txt index 80c2a26b3..5f47c6927 100644 --- a/libstarshootg/CMakeLists.txt +++ b/libstarshootg/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libstarshootg) -set (LIBSTARSHOOTG_VERSION "54.23041") +set (LIBSTARSHOOTG_VERSION "54.23231") set (LIBSTARSHOOTG_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libstarshootg/arm64/libstarshootg.bin b/libstarshootg/arm64/libstarshootg.bin index 2953951ea..828395ce5 100644 Binary files a/libstarshootg/arm64/libstarshootg.bin and b/libstarshootg/arm64/libstarshootg.bin differ diff --git a/libstarshootg/armhf/libstarshootg.bin b/libstarshootg/armhf/libstarshootg.bin index 16d7cc646..8871cd05d 100644 Binary files a/libstarshootg/armhf/libstarshootg.bin and b/libstarshootg/armhf/libstarshootg.bin differ diff --git a/libstarshootg/mac/libstarshootg.bin b/libstarshootg/mac/libstarshootg.bin index aebdd153e..eeba29dd4 100644 Binary files a/libstarshootg/mac/libstarshootg.bin and b/libstarshootg/mac/libstarshootg.bin differ diff --git a/libstarshootg/starshootg.h b/libstarshootg/starshootg.h index 256f05865..eb4ea77e9 100644 --- a/libstarshootg/starshootg.h +++ b/libstarshootg/starshootg.h @@ -1,7 +1,7 @@ #ifndef __starshootg_h__ #define __starshootg_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Starshootg_t { int unused; } *HStarshootg; #define STARSHOOTG_AE_PERCENT_DEF 10 #define STARSHOOTG_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define STARSHOOTG_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define STARSHOOTG_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define STARSHOOTG_DYNAMIC_DEFECT_T1_MAX 100 -#define STARSHOOTG_DYNAMIC_DEFECT_T1_DEF 13 -#define STARSHOOTG_DYNAMIC_DEFECT_T2_MIN 0 -#define STARSHOOTG_DYNAMIC_DEFECT_T2_MAX 100 +#define STARSHOOTG_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define STARSHOOTG_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define STARSHOOTG_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define STARSHOOTG_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define STARSHOOTG_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define STARSHOOTG_DYNAMIC_DEFECT_T2_DEF 100 #define STARSHOOTG_HDR_K_MIN 1 /* HDR synthesize */ #define STARSHOOTG_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } StarshootgDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) STARSHOOTG_API(const wchar_t*) Starshootg_Version(); @@ -379,6 +379,8 @@ typedef struct { } StarshootgFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Starshootg_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ STARSHOOTG_API(HRESULT) Starshootg_PullImageV3(HStarshootg h, void* pImageData, int bStill, int bits, int rowPitch, StarshootgFrameInfoV3* pInfo); +STARSHOOTG_API(HRESULT) Starshootg_WaitImageV3(HStarshootg h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, StarshootgFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ STARSHOOTG_API(HRESULT) Starshootg_feed_Pipe(HStarshootg h, unsigned pipeId); #define STARSHOOTG_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= STARSHOOTG_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define STARSHOOTG_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define STARSHOOTG_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ STARSHOOTG_API(HRESULT) Starshootg_feed_Pipe(HStarshootg h, unsigned pipeId); */ #define STARSHOOTG_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define STARSHOOTG_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define STARSHOOTG_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define STARSHOOTG_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define STARSHOOTG_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define STARSHOOTG_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ STARSHOOTG_API(HRESULT) Starshootg_feed_Pipe(HStarshootg h, unsigned pipeId); #define STARSHOOTG_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define STARSHOOTG_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define STARSHOOTG_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define STARSHOOTG_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define STARSHOOTG_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ STARSHOOTG_API(HRESULT) Starshootg_get_AfParam(HStarshootg h, StarshootgAfParam #define STARSHOOTG_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define STARSHOOTG_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define STARSHOOTG_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define STARSHOOTG_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define STARSHOOTG_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libstarshootg/x64/libstarshootg.bin b/libstarshootg/x64/libstarshootg.bin index fa288295e..0f9938583 100644 Binary files a/libstarshootg/x64/libstarshootg.bin and b/libstarshootg/x64/libstarshootg.bin differ diff --git a/libtoupcam/CMakeLists.txt b/libtoupcam/CMakeLists.txt index e6d74985c..18a91b418 100644 --- a/libtoupcam/CMakeLists.txt +++ b/libtoupcam/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libtoupcam) -set (LIBTOUPCAM_VERSION "54.23041") +set (LIBTOUPCAM_VERSION "54.23231") set (LIBTOUPCAM_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libtoupcam/arm64/libtoupcam.bin b/libtoupcam/arm64/libtoupcam.bin index a94d4ab1c..f6a52d333 100644 Binary files a/libtoupcam/arm64/libtoupcam.bin and b/libtoupcam/arm64/libtoupcam.bin differ diff --git a/libtoupcam/armhf/libtoupcam.bin b/libtoupcam/armhf/libtoupcam.bin index 6c7c577f3..15e7f235f 100644 Binary files a/libtoupcam/armhf/libtoupcam.bin and b/libtoupcam/armhf/libtoupcam.bin differ diff --git a/libtoupcam/mac/libtoupcam.bin b/libtoupcam/mac/libtoupcam.bin index f435dbb57..625b842a3 100644 Binary files a/libtoupcam/mac/libtoupcam.bin and b/libtoupcam/mac/libtoupcam.bin differ diff --git a/libtoupcam/toupcam.h b/libtoupcam/toupcam.h index 0b47cf73f..4ae6c6019 100644 --- a/libtoupcam/toupcam.h +++ b/libtoupcam/toupcam.h @@ -1,7 +1,7 @@ #ifndef __toupcam_h__ #define __toupcam_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Toupcam_t { int unused; } *HToupcam, *HToupCam; #define TOUPCAM_AE_PERCENT_DEF 10 #define TOUPCAM_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define TOUPCAM_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define TOUPCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define TOUPCAM_DYNAMIC_DEFECT_T1_MAX 100 -#define TOUPCAM_DYNAMIC_DEFECT_T1_DEF 13 -#define TOUPCAM_DYNAMIC_DEFECT_T2_MIN 0 -#define TOUPCAM_DYNAMIC_DEFECT_T2_MAX 100 +#define TOUPCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define TOUPCAM_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define TOUPCAM_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define TOUPCAM_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define TOUPCAM_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define TOUPCAM_DYNAMIC_DEFECT_T2_DEF 100 #define TOUPCAM_HDR_K_MIN 1 /* HDR synthesize */ #define TOUPCAM_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } ToupcamDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) TOUPCAM_API(const wchar_t*) Toupcam_Version(); @@ -379,6 +379,8 @@ typedef struct { } ToupcamFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Toupcam_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ TOUPCAM_API(HRESULT) Toupcam_PullImageV3(HToupcam h, void* pImageData, int bStill, int bits, int rowPitch, ToupcamFrameInfoV3* pInfo); +TOUPCAM_API(HRESULT) Toupcam_WaitImageV3(HToupcam h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, ToupcamFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ TOUPCAM_API(HRESULT) Toupcam_feed_Pipe(HToupcam h, unsigned pipeId); #define TOUPCAM_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= TOUPCAM_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define TOUPCAM_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define TOUPCAM_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ TOUPCAM_API(HRESULT) Toupcam_feed_Pipe(HToupcam h, unsigned pipeId); */ #define TOUPCAM_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define TOUPCAM_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define TOUPCAM_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define TOUPCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define TOUPCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define TOUPCAM_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ TOUPCAM_API(HRESULT) Toupcam_feed_Pipe(HToupcam h, unsigned pipeId); #define TOUPCAM_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define TOUPCAM_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define TOUPCAM_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define TOUPCAM_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define TOUPCAM_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ TOUPCAM_API(HRESULT) Toupcam_get_AfParam(HToupcam h, ToupcamAfParam* pAfParam); #define TOUPCAM_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define TOUPCAM_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define TOUPCAM_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define TOUPCAM_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define TOUPCAM_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libtoupcam/x64/libtoupcam.bin b/libtoupcam/x64/libtoupcam.bin index cffe10758..b30a9ce00 100644 Binary files a/libtoupcam/x64/libtoupcam.bin and b/libtoupcam/x64/libtoupcam.bin differ diff --git a/libtscam/CMakeLists.txt b/libtscam/CMakeLists.txt index 7da21609b..a451519cd 100644 --- a/libtscam/CMakeLists.txt +++ b/libtscam/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.0) project (libtscam) -set (LIBTSCAM_VERSION "54.23041") +set (LIBTSCAM_VERSION "54.23231") set (LIBTSCAM_SOVERSION "54") list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/libtscam/arm64/libtscam.bin b/libtscam/arm64/libtscam.bin index d9d9640da..f4be5c766 100644 Binary files a/libtscam/arm64/libtscam.bin and b/libtscam/arm64/libtscam.bin differ diff --git a/libtscam/armhf/libtscam.bin b/libtscam/armhf/libtscam.bin index 101fc5eb9..a81356c25 100644 Binary files a/libtscam/armhf/libtscam.bin and b/libtscam/armhf/libtscam.bin differ diff --git a/libtscam/mac/libtscam.bin b/libtscam/mac/libtscam.bin index c80738750..83eb3fe97 100644 Binary files a/libtscam/mac/libtscam.bin and b/libtscam/mac/libtscam.bin differ diff --git a/libtscam/tscam.h b/libtscam/tscam.h index f1861c3a9..5e80b0722 100644 --- a/libtscam/tscam.h +++ b/libtscam/tscam.h @@ -1,7 +1,7 @@ #ifndef __tscam_h__ #define __tscam_h__ -/* Version: 54.23041.20230731 */ +/* Version: 54.23231.20230823 */ /* Platform & Architecture: (1) Win32: @@ -231,11 +231,11 @@ typedef struct Tscam_t { int unused; } *HTscam; #define TSCAM_AE_PERCENT_DEF 10 #define TSCAM_NOPACKET_TIMEOUT_MIN 500 /* no packet timeout minimum: 500ms */ #define TSCAM_NOFRAME_TIMEOUT_MIN 500 /* no frame timeout minimum: 500ms */ -#define TSCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction */ -#define TSCAM_DYNAMIC_DEFECT_T1_MAX 100 -#define TSCAM_DYNAMIC_DEFECT_T1_DEF 13 -#define TSCAM_DYNAMIC_DEFECT_T2_MIN 0 -#define TSCAM_DYNAMIC_DEFECT_T2_MAX 100 +#define TSCAM_DYNAMIC_DEFECT_T1_MIN 10 /* dynamic defect pixel correction, threshold, means: 1.0 */ +#define TSCAM_DYNAMIC_DEFECT_T1_MAX 100 /* means: 10.0 */ +#define TSCAM_DYNAMIC_DEFECT_T1_DEF 13 /* means: 1.3 */ +#define TSCAM_DYNAMIC_DEFECT_T2_MIN 0 /* dynamic defect pixel correction, value, means: 0.00 */ +#define TSCAM_DYNAMIC_DEFECT_T2_MAX 100 /* means: 1.00 */ #define TSCAM_DYNAMIC_DEFECT_T2_DEF 100 #define TSCAM_HDR_K_MIN 1 /* HDR synthesize */ #define TSCAM_HDR_K_MAX 25500 @@ -281,7 +281,7 @@ typedef struct { } TscamDeviceV2; /* camera instance for enumerating */ /* - get the version of this dll/so/dylib, which is: 54.23041.20230731 + get the version of this dll/so/dylib, which is: 54.23231.20230823 */ #if defined(_WIN32) TSCAM_API(const wchar_t*) Tscam_Version(); @@ -379,6 +379,8 @@ typedef struct { } TscamFrameInfoV3; /* + nWaitMS: The timeout interval, in milliseconds. If a nonzero value is specified, the function waits until the image is ok or the interval elapses. + If nWaitMS is zero, the function does not enter a wait state if the image is not available; it always returns immediately; this is equal to Tscam_PullImageV3. bStill: to pull still image, set to 1, otherwise 0 bits: 24 (RGB24), 32 (RGB32), 48 (RGB48), 8 (Grey), 16 (Grey), 64 (RGB64). In RAW mode, this parameter is ignored. @@ -419,6 +421,7 @@ typedef struct { |-----------|------------------------|-------------------------------|-----------------------| */ TSCAM_API(HRESULT) Tscam_PullImageV3(HTscam h, void* pImageData, int bStill, int bits, int rowPitch, TscamFrameInfoV3* pInfo); +TSCAM_API(HRESULT) Tscam_WaitImageV3(HTscam h, unsigned nWaitMS, void* pImageData, int bStill, int bits, int rowPitch, TscamFrameInfoV3* pInfo); typedef struct { unsigned width; @@ -800,7 +803,7 @@ TSCAM_API(HRESULT) Tscam_feed_Pipe(HTscam h, unsigned pipeId); #define TSCAM_OPTION_NOFRAME_TIMEOUT 0x01 /* no frame timeout: 0 => disable, positive value (>= TSCAM_NOFRAME_TIMEOUT_MIN) => timeout milliseconds. default: disable */ #define TSCAM_OPTION_THREAD_PRIORITY 0x02 /* set the priority of the internal thread which grab data from the usb device. - Win: iValue: 0 = THREAD_PRIORITY_NORMAL; 1 = THREAD_PRIORITY_ABOVE_NORMAL; 2 = THREAD_PRIORITY_HIGHEST; 3 = THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + Win: iValue: 0 => THREAD_PRIORITY_NORMAL; 1 => THREAD_PRIORITY_ABOVE_NORMAL; 2 => THREAD_PRIORITY_HIGHEST; 3 => THREAD_PRIORITY_TIME_CRITICAL; default: 1; see: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadpriority Linux & macOS: The high 16 bits for the scheduling policy, and the low 16 bits for the priority; see: https://linux.die.net/man/3/pthread_setschedparam */ #define TSCAM_OPTION_PROCESSMODE 0x03 /* obsolete & useless, noop. 0 = better image quality, more cpu usage. this is the default value; 1 = lower image quality, less cpu usage */ @@ -979,17 +982,16 @@ TSCAM_API(HRESULT) Tscam_feed_Pipe(HTscam h, unsigned pipeId); */ #define TSCAM_OPTION_HIGH_FULLWELL 0x55 /* high fullwell capacity: 0 => disable, 1 => enable */ #define TSCAM_OPTION_DYNAMIC_DEFECT 0x56 /* dynamic defect pixel correction: - threshold: - t1 (high 16 bits): [1, 100] - t2 (low 16 bits): [0, 100] + threshold, t1: (high 16 bits): [10, 100], means: [1.0, 10.0] + value, t2: (low 16 bits): [0, 100], means: [0.00, 1.00] */ #define TSCAM_OPTION_HDR_KB 0x57 /* HDR synthesize K (high 16 bits): [1, 25500] B (low 16 bits): [0, 65535] 0xffffffff => set to default */ -#define TSCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize - threshold: [1, 4095] +#define TSCAM_OPTION_HDR_THRESHOLD 0x58 /* HDR synthesize + threshold: [1, 4094] 0xffffffff => set to default */ #define TSCAM_OPTION_GIGETIMEOUT 0x5a /* For GigE cameras, the application periodically sends heartbeat signals to the camera to keep the connection to the camera alive. @@ -1004,6 +1006,13 @@ TSCAM_API(HRESULT) Tscam_feed_Pipe(HTscam h, unsigned pipeId); #define TSCAM_OPTION_OVERCLOCK_MAX 0x5c /* get overclock range: [0, max] */ #define TSCAM_OPTION_OVERCLOCK 0x5d /* overclock, default: 0 */ #define TSCAM_OPTION_RESET_SENSOR 0x5e /* reset sensor */ +#define TSCAM_OPTION_ADC 0x08000000 /* Analog-Digital Conversion: + get: + (option | 'C'): get the current value + (option | 'N'): get the supported ADC number + (option | n): get the nth supported ADC value, such as 11bits, 12bits, etc; the first value is the default + set: val = ADC value, such as 11bits, 12bits, etc + */ /* pixel format */ #define TSCAM_PIXELFORMAT_RAW8 0x00 @@ -1136,6 +1145,7 @@ TSCAM_API(HRESULT) Tscam_get_AfParam(HTscam h, TscamAfParam* pAfParam); #define TSCAM_IOCONTROLTYPE_SET_EXEVT_ACTIVE_MODE 0x36 #define TSCAM_IOCONTROLTYPE_GET_OUTPUTCOUNTERVALUE 0x37 /* Output Counter Value, range: [0 ~ 65535] */ #define TSCAM_IOCONTROLTYPE_SET_OUTPUTCOUNTERVALUE 0x38 +#define TSCAM_IOCONTROLTYPE_SET_OUTPUT_PAUSE 0x3a /* Output pause: 1 => puase, 0 => unpause */ #define TSCAM_IOCONTROL_DELAYTIME_MAX (5 * 1000 * 1000) diff --git a/libtscam/x64/libtscam.bin b/libtscam/x64/libtscam.bin index a6d21dee8..0fbadfec0 100644 Binary files a/libtscam/x64/libtscam.bin and b/libtscam/x64/libtscam.bin differ