Common Constants, Enumerations & Type Definitions
Specifications for the common constants, enumerations, and type definitions defined in the header file PUCCONST.h.
Common constants
Section titled “Common constants”| Constant name | Value | Description |
|---|---|---|
PUC_MAX_DEVICE |
16 |
Maximum number of devices that can be connected |
PUC_MAX_LEN |
256 |
Maximum number of characters |
PUC_Q_COUNT |
64 |
Number of elements in the quantization table (8 x 8) |
PUC_MIN_RING_BUF_COUNT |
4 |
Minimum number of ring buffers during continuous transfer |
PUC_MAX_RING_BUF_COUNT |
65535 |
Maximum number of ring buffers during continuous transfer |
PUC_XFER_TIMEOUT_AUTO |
0 |
Automatically adjusts the timeout duration according to the frame rate |
PUC_XFER_TIMEOUT_INFINITE |
0xFFFFFFFF |
Sets the timeout duration to unlimited |
PUC_SYNC_OUT_MAGNIFICATION_0_5 |
0 |
Constant representing a synchronization signal output magnification of 0.5x |
PUC_MAX_DECODE_THREAD_COUNT |
32 |
Maximum number of threads for multithreaded decoding |
PUC_MAC_ADDRESS_SIZE |
6 |
Number of bytes in a MAC address |
Device search flags (for PUC_DetectDevice2)
Section titled “Device search flags (for PUC_DetectDevice2)”Search target flags specified in PUC_DETECT_FILTER::nDeviceTypeFlags. Combine with a bitwise OR to search multiple models at once.
| Constant name | Value | Description |
|---|---|---|
PUC_DETECT_TARGET_ALL |
0x00000000 |
Search all models |
PUC_DETECT_TARGET_UC1 |
0x00000001 |
Search for the UC-1.1 (USB model) |
PUC_DETECT_TARGET_GBE2 |
0x00000002 |
Search for the GbE-2 (Ethernet model) |
Search modes specified in PUC_DETECT_FILTER::nDetectMode (GbE-2 only; ignored on the UC1).
| Constant name | Value | Description |
|---|---|---|
PUC_DETECT_MODE_DISCOVERY |
0x00000000 |
Performs a broadcast search on each adapter (default). Can also discover devices whose IP address is unknown |
PUC_DETECT_MODE_TARGET_IP |
0x00000001 |
Searches directly for the IP address specified by nTargetIPAddress |
Error check macros
Section titled “Error check macros”#define PUC_CHK_SUCCEEDED(res) (res == PUC_SUCCEEDED) // Macro that evaluates to true when the error code indicates success#define PUC_CHK_FAILED(res) (res != PUC_SUCCEEDED) // Macro that evaluates to true when the error code indicates anything other than successHandle type definitions
Section titled “Handle type definitions”typedef void* PUC_HANDLE; // Handle representing a devicetypedef PUC_HANDLE* PPUC_HANDLE; // Pointer to a device handleBasic enumerations
Section titled “Basic enumerations”PUC_MODE (ON / OFF setting)
Section titled “PUC_MODE (ON / OFF setting)”typedef enum { PUC_OFF = 0, // OFF PUC_ON = 1 // ON} PUC_MODE;PUC_SIGNAL (signal polarity)
Section titled “PUC_SIGNAL (signal polarity)”typedef enum { PUC_SIGNAL_POSI = 0, // Positive polarity PUC_SIGNAL_NEGA = 1 // Negative polarity} PUC_SIGNAL;PUC_SYNC_MODE (synchronization mode)
Section titled “PUC_SYNC_MODE (synchronization mode)”typedef enum { PUC_SYNC_INTERNAL = 0, // Internal operation PUC_SYNC_EXTERNAL = 1, // Synchronizes to an external signal PUC_SYNC_EXTERNAL_PTP = 2 // Synchronizes to a PTP (Precision Time Protocol) master clock (GbE-2 only)} PUC_SYNC_MODE;PUC_COLOR_TYPE (color / monochrome specification)
Section titled “PUC_COLOR_TYPE (color / monochrome specification)”typedef enum { PUC_COLOR_MONO = 0, // Monochrome PUC_COLOR_COLOR = 1 // Color} PUC_COLOR_TYPE;PUC_DEVICE_TYPE (model type)
Section titled “PUC_DEVICE_TYPE (model type)”A value stored by search functions (such as PUC_DetectDevice2) in PUC_DETECT_INFO::nDeviceType, also used to determine the target device to open with PUC_OpenDevice2.
typedef enum { PUC_DEVICE_UC1 = 0, // INFINICAM UC-1.1 (USB connection) PUC_DEVICE_GBE2 = 1, // INFINICAM GbE-2 (Ethernet connection) PUC_DEVICE_OTHERS = 2 // Anything other than the above (never returned by search functions; used by applications to represent non-camera sources such as files)} PUC_DEVICE_TYPE;PUC_SYNC_OUT_TIMES (synchronization signal output count multiplier)
Section titled “PUC_SYNC_OUT_TIMES (synchronization signal output count multiplier)”A multiplier relative to the frame rate, specifying how many times the synchronization signal is output per frame (for example, X2 outputs twice per frame).
typedef enum { X0_5 = 0x0101, // x0.5 (once every 2 frames) X1 = 1, // x1 X2 = 2, // x2 X4 = 4, // x4 X6 = 6, // x6 X8 = 8, // x8 X10 = 10, // x10 X20 = 20, // x20 X30 = 30, // x30} PUC_SYNC_OUT_TIMES;PUC_NETWORK_INFO_TYPE (for PUC_SetNetworkInfo)
Section titled “PUC_NETWORK_INFO_TYPE (for PUC_SetNetworkInfo)”typedef enum { IPADDRESS = 0, // IP address (specified as a 32-bit value) NETMASK = 1, // Subnet mask (specified as a 32-bit value) GATEWAY = 2, // Default gateway (specified as a 32-bit value) DHCP_ON = 3, // Enables DHCP (value is unused) DHCP_OFF = 4, // Disables DHCP (value is unused)} PUC_NETWORK_INFO_TYPE;PUC_CAPABILITY (feature types for PUC_IsSupported)
Section titled “PUC_CAPABILITY (feature types for PUC_IsSupported)”An enumeration for checking, via PUC_IsSupported, whether the connected camera supports a given feature, instead of branching on the model name.
| Constant name | Corresponding API |
|---|---|
PUC_CAP_RESET_DEVICE |
PUC_ResetDevice |
PUC_CAP_COMMAND_PASSTHROUGH |
Direct command send/receive |
PUC_CAP_SYNC_OUT_SIGNAL |
PUC_Get/SetSyncOutSignal |
PUC_CAP_SYNC_OUT_MAGNIFICATION |
PUC_Get/SetSyncOutMagnification |
PUC_CAP_SYNC_OUT_TIMES |
PUC_Get/SetSyncOutTimes |
PUC_CAP_SYNC_IN_DELAY |
PUC_Get/SetSyncInDelay |
PUC_CAP_TRIG_IN_DELAY |
PUC_Get/SetTrigInDelay |
PUC_CAP_TRIG_OUT_WIDTH |
PUC_Get/SetTrigOutWidth |
PUC_CAP_EXPOSE_DELAY |
PUC_Get/SetExposeDelay |
PUC_CAP_PP_OUT |
PUC_Get/SetPPOutWidth / PUC_Get/SetPPOutDelay |
PUC_CAP_EXTERNAL_SYNC_STATUS |
PUC_GetExternalSyncStatus |
PUC_CAP_EPOC_TIME |
PUC_SetEPOCTime / PUC_SetTimeOfDay |
PUC_CAP_MAC_ADDRESS |
PUC_GetMacAddress |
PUC_CAP_NETWORK_INFO |
PUC_SetNetworkInfo / PUC_GetIPAddress |
PUC_CAP_GENERAL_IO |
PUC_Get/SetGeneralIn/OutSignal |
PUC_CAP_XFER_TIMEOUT |
Whether the PUC_SetXferTimeOut setting takes effect |
PUC_CAP_GPU_DECODE |
PUC_DecodeGPU (whether the camera’s data format is supported) |
PUC_CAP_FAN |
PUC_Get/SetFanState |
PUC_GENERAL_OUT_SIGNAL_TYPE / PUC_GENERAL_IN_SIGNAL_TYPE (general-purpose I/O signal types)
Section titled “PUC_GENERAL_OUT_SIGNAL_TYPE / PUC_GENERAL_IN_SIGNAL_TYPE (general-purpose I/O signal types)”Signal types that can be assigned to the general-purpose I/O (GPIO) ports. The POS/NEG suffix (or substring) in each name represents positive and negative polarity respectively. The available types differ by model, so check in advance with PUC_GetSupportedGeneralOutSignal / PUC_GetSupportedGeneralInSignal.
// General-purpose output porttypedef enum { VSYNC_POS = 0x0000, VSYNC_NEG = 0x0001, // Vertical synchronization signal EXPOSE_POS = 0x0002, EXPOSE_NEG = 0x0003, // Exposure period REC_POS = 0x0004, REC_NEG = 0x0005, // Recording in progress TRIGGER_POS = 0x0006, TRIGGER_NEG = 0x0007, // Trigger input detection READY_POS = 0x0008, READY_NEG = 0x0009, // Recording ready IRIG_RESET_POS = 0x000A, IRIG_RESET_NEG = 0x000B, // IRIG time code reset STRADDLING_POS = 0x000C, STRADDLING_NEG = 0x000D, // Straddling (double-shutter) exposure PTP_PP_POS = 0x000E, PTP_PP_NEG = 0x000F, // PTP one-pulse-per-second} PUC_GENERAL_OUT_SIGNAL_TYPE;
// General-purpose input porttypedef enum { EVENT_POS_IN = 0x0000, EVENT_NEG_IN = 0x0001, // Event input TRIG_POS_IN = 0x0002, TRIG_NEG_IN = 0x0003, // Trigger input READY_POS_IN = 0x0004, READY_NEG_IN = 0x0005, // Recording ready input SYNC_POS_IN = 0x0006, SYNC_NEG_IN = 0x0007, // External synchronization input POWER_OFF_POS_IN = 0x0008, POWER_OFF_NEG_IN = 0x0009, // Power-off input EXPOSE_POS_IN = 0x000A, EXPOSE_NEG_IN = 0x000B, // Exposure control input} PUC_GENERAL_IN_SIGNAL_TYPE;