diff --git a/PICamApp/src/ADPICam.cpp b/PICamApp/src/ADPICam.cpp index 76cc14e..e941fa9 100644 --- a/PICamApp/src/ADPICam.cpp +++ b/PICamApp/src/ADPICam.cpp @@ -167,66 +167,52 @@ ADPICam::ADPICam(const char *portName, int maxBuffers, size_t maxMemory, ADPICam_Instance = this; - //Open First available camera. If no camera is available, - // then open a demo camera - error = Picam_OpenFirstCamera(¤tCameraHandle); - - if (error != PicamError_None) { - if (error == PicamError_NoCamerasAvailable) { - error = Picam_ConnectDemoCamera(PicamModel_Quadro4320, - "CamNotFoundOnInit", &demoId); - if (error != PicamError_None) { - Picam_GetEnumerationString(PicamEnumeratedType_Error, - error, - &errorString); - const char *demoModelName; - Picam_GetEnumerationString(PicamEnumeratedType_Model, - PicamModel_Quadro4320, - &demoModelName); - asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, - "-------------------------------------------------\n" - "No detectors were available and cannot connect to " - "demo camera %s. Cannot run without a detector. \n" - "Error=%s \n" - "-------------------------------------------------\n", - demoModelName, - errorString); - Picam_DestroyString(demoModelName); - Picam_DestroyString(errorString); - return; - } - error = Picam_OpenFirstCamera(¤tCameraHandle); - if (error != PicamError_None) { - Picam_GetEnumerationString(PicamEnumeratedType_Error, - error, - &errorString); - const char *demoModelName; - Picam_GetEnumerationString(PicamEnumeratedType_Model, - PicamModel_Quadro4320, - &demoModelName); - asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, - "------------------------------------------------\n" - "Trouble opening demo camera %s \n%s" - "------------------------------------------------\n", - demoModelName, errorString); - Picam_DestroyString(demoModelName); - Picam_DestroyString(errorString); - return; - } - } else { - Picam_GetEnumerationString(PicamEnumeratedType_Error, error, - &errorString); - asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, - "------------------------------------------------\n" - "%s:%s Unhandled Error opening first camera: %s\n" - "------------------------------------------------\n", - driverName, - functionName, - errorString); - Picam_DestroyString(errorString); - return; + /* + Connect a SOPHIA 2048BX virtual camera to load -- if no physical camera + is plugged in when Available Cameras are generated, the virtual camera + gets used. + */ + PicamModel demoToConnect = PicamModel_Sophia2048BExcelon; + error = Picam_ConnectDemoCamera(demoToConnect, + "CamNotFoundOnInit", &demoId); + if (error != PicamError_None) { + Picam_GetEnumerationString(PicamEnumeratedType_Error, + error, + &errorString); + const char *demoModelName; + Picam_GetEnumerationString(PicamEnumeratedType_Model, + demoToConnect, + &demoModelName); + asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, + "-------------------------------------------------\n" + "Cannot connect to demo camera %s." + "Cannot run without a detector.\n" + "Error=%s \n" + "-------------------------------------------------\n", + demoModelName, + errorString); + Picam_DestroyString(demoModelName); + Picam_DestroyString(errorString); + return; + } + error = Picam_OpenCamera(&demoId, ¤tCameraHandle); + if (error != PicamError_None) { + Picam_GetEnumerationString(PicamEnumeratedType_Error, + error, + &errorString); + const char *demoModelName; + Picam_GetEnumerationString(PicamEnumeratedType_Model, + demoToConnect, + &demoModelName); + asynPrint(pasynUserSelf, ASYN_TRACE_ERROR, + "------------------------------------------------\n" + "Trouble opening demo camera %s \n%s" + "------------------------------------------------\n", + demoModelName, errorString); + Picam_DestroyString(demoModelName); + Picam_DestroyString(errorString); + return; } - } PicamAdvanced_GetCameraDevice(currentCameraHandle, ¤tDeviceHandle); selectedCameraIndex = 0; createParam(PICAM_VersionNumberString, asynParamOctet, @@ -1717,6 +1703,9 @@ asynStatus ADPICam::piAcquireStart(){ case PicamPixelFormat_Monochrome16Bit: imageDataType = NDUInt16; break; + case PicamPixelFormat_Monochrome32Bit: + imageDataType = NDUInt32; + break; default: imageDataType = NDUInt16; const char *pixelFormatString; diff --git a/PICamSupport/README.txt b/PICamSupport/README.txt index 40a0f5b..2a74774 100644 --- a/PICamSupport/README.txt +++ b/PICamSupport/README.txt @@ -1,16 +1,19 @@ -PICAM is a C++ library provided by Princeton Instruments, a division of Roper -Scientific, Inc. This library provides a common API to drive a number of -cameras from Princeton Instruments. This library is freely available, +PICAM is a C++ library provided by Teledyne Princeton Instruments, +a business unit of Teledyne Digital Imaging, US. + +This library provides a common API to drive a number of +cameras from Teledyne Princeton Instruments. This library is freely available, downloadable, and redistributable. We have included header and library files -here for version 2.8.1.1408 as a convenience for building the EPICS areaDetector +here for version 5.13.3.2211 as a convenience for building the EPICS areaDetector driver. -Princeton Instruments provides up to date versions of the PICAM driver library +Teledyne Princeton Instruments provides up to date versions of the PICAM driver library on their website and would prefer users to install directly from their site. -The latest version of PICAM is available from this URL: -ftp://ftp.piacton.com/Public/Software/Official/PICam/ +The latest version of PICAM is available from these URLs: +Linux: https://cdn.princetoninstruments.com/picam/picam_sdk.run +Windows: https://cdn.princetoninstruments.com/picam/picam%20install.exe -And the Archives directory contains every other version released -ftp://ftp.piacton.com/Public/Software/Official/PICam/Archives/ +You can contact pi.techsupport@teledyne.com to request installers for +specific versions of PICam. diff --git a/PICamSupport/picam.h b/PICamSupport/picam.h index a6dbb43..5e769e2 100644 --- a/PICamSupport/picam.h +++ b/PICamSupport/picam.h @@ -2,7 +2,7 @@ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ -/* picam.h - Princeton Instruments Camera Control API */ +/* picam.h - Teledyne Princeton Instruments Camera Control API */ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ @@ -48,76 +48,88 @@ typedef enum PicamError /*------------------------------------------------------------------------*/ /* Success ---------------------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamError_None = 0, + PicamError_None = 0, /*------------------------------------------------------------------------*/ /* General Errors --------------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamError_UnexpectedError = 4, - PicamError_UnexpectedNullPointer = 3, - PicamError_InvalidPointer = 35, - PicamError_InvalidCount = 39, - PicamError_InvalidOperation = 42, - PicamError_OperationCanceled = 43, + PicamError_UnexpectedError = 4, + PicamError_UnexpectedNullPointer = 3, + PicamError_InvalidPointer = 35, + PicamError_InvalidCount = 39, + PicamError_EnumerationValueNotDefined = 17, + PicamError_InvalidOperation = 42, + PicamError_OperationCanceled = 43, /*------------------------------------------------------------------------*/ /* Library Initialization Errors -----------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamError_LibraryNotInitialized = 1, - PicamError_LibraryAlreadyInitialized = 5, + PicamError_LibraryNotInitialized = 1, + PicamError_LibraryAlreadyInitialized = 5, /*------------------------------------------------------------------------*/ /* General String Handling Errors ----------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamError_InvalidEnumeratedType = 16, - PicamError_EnumerationValueNotDefined = 17, - /*------------------------------------------------------------------------*/ - /* Plug 'n Play Discovery Errors -----------------------------------------*/ - /*------------------------------------------------------------------------*/ - PicamError_NotDiscoveringCameras = 18, - PicamError_AlreadyDiscoveringCameras = 19, - /*------------------------------------------------------------------------*/ - /* Camera Access Errors --------------------------------------------------*/ - /*------------------------------------------------------------------------*/ - PicamError_NoCamerasAvailable = 34, - PicamError_CameraAlreadyOpened = 7, - PicamError_InvalidCameraID = 8, - PicamError_InvalidHandle = 9, - PicamError_DeviceCommunicationFailed = 15, - PicamError_DeviceDisconnected = 23, - PicamError_DeviceOpenElsewhere = 24, - /*------------------------------------------------------------------------*/ - /* Demo Errors -----------------------------------------------------------*/ - /*------------------------------------------------------------------------*/ - PicamError_InvalidDemoModel = 6, - PicamError_InvalidDemoSerialNumber = 21, - PicamError_DemoAlreadyConnected = 22, - PicamError_DemoNotSupported = 40, - /*------------------------------------------------------------------------*/ - /* Camera Parameter Access Errors ----------------------------------------*/ - /*------------------------------------------------------------------------*/ - PicamError_ParameterHasInvalidValueType = 11, - PicamError_ParameterHasInvalidConstraintType = 13, - PicamError_ParameterDoesNotExist = 12, - PicamError_ParameterValueIsReadOnly = 10, - PicamError_InvalidParameterValue = 2, - PicamError_InvalidConstraintCategory = 38, - PicamError_ParameterValueIsIrrelevant = 14, - PicamError_ParameterIsNotOnlineable = 25, - PicamError_ParameterIsNotReadable = 26, + PicamError_InvalidEnumeratedType = 16, + /*------------------------------------------------------------------------*/ + /* Camera/Accessory Plug 'n Play Discovery Errors ------------------------*/ + /*------------------------------------------------------------------------*/ + PicamError_NotDiscoveringCameras = 18, + PicamError_AlreadyDiscoveringCameras = 19, + PicamError_NotDiscoveringAccessories = 48, + PicamError_AlreadyDiscoveringAccessories = 49, + /*------------------------------------------------------------------------*/ + /* Camera/Accessory Access Errors ----------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamError_NoCamerasAvailable = 34, + PicamError_CameraAlreadyOpened = 7, + PicamError_InvalidCameraID = 8, + PicamError_NoAccessoriesAvailable = 45, + PicamError_AccessoryAlreadyOpened = 46, + PicamError_InvalidAccessoryID = 47, + PicamError_InvalidHandle = 9, + PicamError_DeviceCommunicationFailed = 15, + PicamError_DeviceDisconnected = 23, + PicamError_DeviceOpenElsewhere = 24, + /*------------------------------------------------------------------------*/ + /* Demo Camera Errors ----------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamError_InvalidDemoModel = 6, + PicamError_InvalidDemoSerialNumber = 21, + PicamError_DemoAlreadyConnected = 22, + PicamError_DemoNotSupported = 40, + PicamError_OnlyDemoSupported = 55, + /*------------------------------------------------------------------------*/ + /* Camera/Accessory Parameter Access Errors ------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamError_ParameterHasInvalidValueType = 11, + PicamError_ParameterHasInvalidConstraintType = 13, + PicamError_ParameterDoesNotExist = 12, + PicamError_ParameterValueIsReadOnly = 10, + PicamError_InvalidParameterValue = 2, + PicamError_InvalidConstraintCategory = 38, + PicamError_ParameterValueIsIrrelevant = 14, + PicamError_ParameterIsNotOnlineable = 25, + PicamError_ParameterIsNotReadable = 26, + PicamError_ParameterIsNotWaitableStatus = 50, + PicamError_InvalidWaitableStatusParameterTimeOut = 51, /*------------------------------------------------------------------------*/ /* Camera Data Acquisition Errors ----------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamError_InvalidParameterValues = 28, - PicamError_ParametersNotCommitted = 29, - PicamError_InvalidAcquisitionBuffer = 30, - PicamError_InvalidReadoutCount = 36, - PicamError_InvalidReadoutTimeOut = 37, - PicamError_InsufficientMemory = 31, - PicamError_AcquisitionInProgress = 20, - PicamError_AcquisitionNotInProgress = 27, - PicamError_TimeOutOccurred = 32, - PicamError_AcquisitionUpdatedHandlerRegistered = 33, - PicamError_NondestructiveReadoutEnabled = 41 - /*------------------------------------------------------------------------*/ -} PicamError; /* (44) */ + PicamError_InvalidParameterValues = 28, + PicamError_ParametersNotCommitted = 29, + PicamError_InvalidAcquisitionBuffer = 30, + PicamError_InvalidReadoutCount = 36, + PicamError_InvalidReadoutTimeOut = 37, + PicamError_InsufficientMemory = 31, + PicamError_AcquisitionInProgress = 20, + PicamError_AcquisitionNotInProgress = 27, + PicamError_TimeOutOccurred = 32, + PicamError_AcquisitionUpdatedHandlerRegistered = 33, + PicamError_InvalidAcquisitionState = 44, + PicamError_NondestructiveReadoutEnabled = 41, + PicamError_ShutterOverheated = 52, + PicamError_CenterWavelengthFaulted = 54, + PicamError_CameraFaulted = 53 + /*------------------------------------------------------------------------*/ +} PicamError; /* (56) */ /*----------------------------------------------------------------------------*/ /* Library Version -----------------------------------------------------------*/ /*----------------------------------------------------------------------------*/ @@ -144,83 +156,101 @@ typedef enum PicamEnumeratedType /*------------------------------------------------------------------------*/ /* Function Return Error Codes -------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_Error = 1, + PicamEnumeratedType_Error = 1, /*------------------------------------------------------------------------*/ /* General String Handling -----------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_EnumeratedType = 29, + PicamEnumeratedType_EnumeratedType = 29, + /*------------------------------------------------------------------------*/ + /* Camera/Accessory Identification ---------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamEnumeratedType_Model = 2, + PicamEnumeratedType_ComputerInterface = 3, /*------------------------------------------------------------------------*/ - /* Camera Identification -------------------------------------------------*/ + /* Camera/Accessory Plug 'n Play Discovery -------------------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_Model = 2, - PicamEnumeratedType_ComputerInterface = 3, + PicamEnumeratedType_DiscoveryAction = 26, /*------------------------------------------------------------------------*/ - /* Camera Plug 'n Play Discovery -----------------------------------------*/ + /* Camera/Accessory Access -----------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_DiscoveryAction = 26, + PicamEnumeratedType_HandleType = 27, /*------------------------------------------------------------------------*/ - /* Camera Access ---------------------------------------------------------*/ + /* Camera/Accessory Parameters -------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_HandleType = 27, + PicamEnumeratedType_ValueType = 4, + PicamEnumeratedType_ConstraintType = 5, + PicamEnumeratedType_Parameter = 6, /*------------------------------------------------------------------------*/ - /* Camera Parameters -----------------------------------------------------*/ + /* Camera/Accessory Parameter Values - Enumerated Types ------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_ValueType = 4, - PicamEnumeratedType_ConstraintType = 5, - PicamEnumeratedType_Parameter = 6, + PicamEnumeratedType_ActiveShutter = 53, + PicamEnumeratedType_AdcAnalogGain = 7, + PicamEnumeratedType_AdcQuality = 8, + PicamEnumeratedType_CcdCharacteristicsMask = 9, + PicamEnumeratedType_CenterWavelengthStatus = 51, + PicamEnumeratedType_CoolingFanStatus = 56, + PicamEnumeratedType_EMIccdGainControlMode = 42, + PicamEnumeratedType_GateTrackingMask = 36, + PicamEnumeratedType_GatingMode = 34, + PicamEnumeratedType_GatingSpeed = 38, + PicamEnumeratedType_GratingCoating = 48, + PicamEnumeratedType_GratingType = 49, + PicamEnumeratedType_IntensifierOptionsMask = 35, + PicamEnumeratedType_IntensifierStatus = 33, + PicamEnumeratedType_LaserOutputMode = 45, + PicamEnumeratedType_LaserStatus = 54, + PicamEnumeratedType_LightSource = 46, + PicamEnumeratedType_LightSourceStatus = 47, + PicamEnumeratedType_ModulationTrackingMask = 41, + PicamEnumeratedType_OrientationMask = 10, + PicamEnumeratedType_OutputSignal = 11, + PicamEnumeratedType_PhosphorType = 39, + PicamEnumeratedType_PhotocathodeSensitivity = 40, + PicamEnumeratedType_PhotonDetectionMode = 43, + PicamEnumeratedType_PixelFormat = 12, + PicamEnumeratedType_ReadoutControlMode = 13, + PicamEnumeratedType_SensorTemperatureStatus = 14, + PicamEnumeratedType_SensorType = 15, + PicamEnumeratedType_ShutterStatus = 52, + PicamEnumeratedType_ShutterTimingMode = 16, + PicamEnumeratedType_ShutterType = 50, + PicamEnumeratedType_TimeStampsMask = 17, + PicamEnumeratedType_TriggerCoupling = 30, + PicamEnumeratedType_TriggerDetermination = 18, + PicamEnumeratedType_TriggerResponse = 19, + PicamEnumeratedType_TriggerSource = 31, + PicamEnumeratedType_TriggerStatus = 55, + PicamEnumeratedType_TriggerTermination = 32, + PicamEnumeratedType_VacuumStatus = 57, /*------------------------------------------------------------------------*/ - /* Camera Parameter Values - Enumerated Types ----------------------------*/ + /* Camera/Accessory Parameter Information - Value Access -----------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_AdcAnalogGain = 7, - PicamEnumeratedType_AdcQuality = 8, - PicamEnumeratedType_CcdCharacteristicsMask = 9, - PicamEnumeratedType_GateTrackingMask = 36, - PicamEnumeratedType_GatingMode = 34, - PicamEnumeratedType_GatingSpeed = 38, - PicamEnumeratedType_EMIccdGainControlMode = 42, - PicamEnumeratedType_IntensifierOptionsMask = 35, - PicamEnumeratedType_IntensifierStatus = 33, - PicamEnumeratedType_ModulationTrackingMask = 41, - PicamEnumeratedType_OrientationMask = 10, - PicamEnumeratedType_OutputSignal = 11, - PicamEnumeratedType_PhosphorType = 39, - PicamEnumeratedType_PhotocathodeSensitivity = 40, - PicamEnumeratedType_PhotonDetectionMode = 43, - PicamEnumeratedType_PixelFormat = 12, - PicamEnumeratedType_ReadoutControlMode = 13, - PicamEnumeratedType_SensorTemperatureStatus = 14, - PicamEnumeratedType_SensorType = 15, - PicamEnumeratedType_ShutterTimingMode = 16, - PicamEnumeratedType_TimeStampsMask = 17, - PicamEnumeratedType_TriggerCoupling = 30, - PicamEnumeratedType_TriggerDetermination = 18, - PicamEnumeratedType_TriggerResponse = 19, - PicamEnumeratedType_TriggerSource = 31, - PicamEnumeratedType_TriggerTermination = 32, + PicamEnumeratedType_ValueAccess = 20, /*------------------------------------------------------------------------*/ - /* Camera Parameter Information - Value Access ---------------------------*/ + /* Camera/Accessory Parameter Information - Dynamics ---------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_ValueAccess = 20, + PicamEnumeratedType_DynamicsMask = 28, /*------------------------------------------------------------------------*/ - /* Camera Parameter Information - Dynamics -------------------------------*/ + /* Camera/Accessory Parameter Constraints - Enumerated Types -------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_DynamicsMask = 28, + PicamEnumeratedType_ConstraintScope = 21, + PicamEnumeratedType_ConstraintSeverity = 22, + PicamEnumeratedType_ConstraintCategory = 23, /*------------------------------------------------------------------------*/ - /* Camera Parameter Constraints - Enumerated Types -----------------------*/ + /* Camera Parameter Constraints - Regions of Interest --------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_ConstraintScope = 21, - PicamEnumeratedType_ConstraintSeverity = 22, - PicamEnumeratedType_ConstraintCategory = 23, + PicamEnumeratedType_RoisConstraintRulesMask = 24, /*------------------------------------------------------------------------*/ - /* Camera Parameter Constraints - Regions Of Interest --------------------*/ + /* Camera Acquisition Control --------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_RoisConstraintRulesMask = 24, + PicamEnumeratedType_AcquisitionErrorsMask = 25, /*------------------------------------------------------------------------*/ - /* Acquisition Control ---------------------------------------------------*/ + /* Camera Acquisition Notification ---------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamEnumeratedType_AcquisitionErrorsMask = 25 + PicamEnumeratedType_AcquisitionState = 37, + PicamEnumeratedType_AcquisitionStateErrorsMask = 44 /*------------------------------------------------------------------------*/ -} PicamEnumeratedType; /* (37,44) */ +} PicamEnumeratedType; /* (58) */ /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetEnumerationString( PicamEnumeratedType type, @@ -239,270 +269,477 @@ PICAM_API Picam_GetEnumerationString( /******************************************************************************/ /*----------------------------------------------------------------------------*/ -/* Camera Identification -----------------------------------------------------*/ +/* Camera/Accessory Identification -------------------------------------------*/ /*----------------------------------------------------------------------------*/ typedef enum PicamModel { + /*------------------------------------------------------------------------*/ + /* PI-MTE Series (1419) --------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_PIMteSeries = 1400, + /* PI-MTE 1024 Series ----------------------------------------------------*/ + PicamModel_PIMte1024Series = 1401, + PicamModel_PIMte1024F = 1402, + PicamModel_PIMte1024B = 1403, + PicamModel_PIMte1024BR = 1405, + PicamModel_PIMte1024BUV = 1404, + /* PI-MTE 1024FT Series --------------------------------------------------*/ + PicamModel_PIMte1024FTSeries = 1406, + PicamModel_PIMte1024FT = 1407, + PicamModel_PIMte1024BFT = 1408, + /* PI-MTE 1300 Series ----------------------------------------------------*/ + PicamModel_PIMte1300Series = 1412, + PicamModel_PIMte1300B = 1413, + PicamModel_PIMte1300R = 1414, + PicamModel_PIMte1300BR = 1415, + /* PI-MTE 2048 Series ----------------------------------------------------*/ + PicamModel_PIMte2048Series = 1416, + PicamModel_PIMte2048B = 1417, + PicamModel_PIMte2048BR = 1418, + /* PI-MTE 2K Series ------------------------------------------------------*/ + PicamModel_PIMte2KSeries = 1409, + PicamModel_PIMte2KB = 1410, + PicamModel_PIMte2KBUV = 1411, + /*------------------------------------------------------------------------*/ + /* PI-MTE3 Series (2006) -------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_PIMte3Series = 2000, + /* PI-MTE3 2048 Series ---------------------------------------------------*/ + PicamModel_PIMte32048Series = 2001, + PicamModel_PIMte32048B = 2002, + /* PI-MTE3 4096 Series ---------------------------------------------------*/ + PicamModel_PIMte34096Series = 2003, + PicamModel_PIMte34096B = 2004, + PicamModel_PIMte34096B_2 = 2005, /*------------------------------------------------------------------------*/ /* PIXIS Series (76) -----------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_PixisSeries = 0, + PicamModel_PixisSeries = 0, /* PIXIS 100 Series ------------------------------------------------------*/ - PicamModel_Pixis100Series = 1, - PicamModel_Pixis100F = 2, - PicamModel_Pixis100B = 6, - PicamModel_Pixis100R = 3, - PicamModel_Pixis100C = 4, - PicamModel_Pixis100BR = 5, - PicamModel_Pixis100BExcelon = 54, - PicamModel_Pixis100BRExcelon = 55, - PicamModel_PixisXO100B = 7, - PicamModel_PixisXO100BR = 8, - PicamModel_PixisXB100B = 68, - PicamModel_PixisXB100BR = 69, + PicamModel_Pixis100Series = 1, + PicamModel_Pixis100F = 2, + PicamModel_Pixis100B = 6, + PicamModel_Pixis100R = 3, + PicamModel_Pixis100C = 4, + PicamModel_Pixis100BR = 5, + PicamModel_Pixis100BExcelon = 54, + PicamModel_Pixis100BRExcelon = 55, + PicamModel_PixisXO100B = 7, + PicamModel_PixisXO100BR = 8, + PicamModel_PixisXB100B = 68, + PicamModel_PixisXB100BR = 69, /* PIXIS 256 Series ------------------------------------------------------*/ - PicamModel_Pixis256Series = 26, - PicamModel_Pixis256F = 27, - PicamModel_Pixis256B = 29, - PicamModel_Pixis256E = 28, - PicamModel_Pixis256BR = 30, - PicamModel_PixisXB256BR = 31, + PicamModel_Pixis256Series = 26, + PicamModel_Pixis256F = 27, + PicamModel_Pixis256B = 29, + PicamModel_Pixis256E = 28, + PicamModel_Pixis256BR = 30, + PicamModel_PixisXB256BR = 31, /* PIXIS 400 Series ------------------------------------------------------*/ - PicamModel_Pixis400Series = 37, - PicamModel_Pixis400F = 38, - PicamModel_Pixis400B = 40, - PicamModel_Pixis400R = 39, - PicamModel_Pixis400BR = 41, - PicamModel_Pixis400BExcelon = 56, - PicamModel_Pixis400BRExcelon = 57, - PicamModel_PixisXO400B = 42, - PicamModel_PixisXB400BR = 70, + PicamModel_Pixis400Series = 37, + PicamModel_Pixis400F = 38, + PicamModel_Pixis400B = 40, + PicamModel_Pixis400R = 39, + PicamModel_Pixis400BR = 41, + PicamModel_Pixis400BExcelon = 56, + PicamModel_Pixis400BRExcelon = 57, + PicamModel_PixisXO400B = 42, + PicamModel_PixisXB400BR = 70, /* PIXIS 512 Series ------------------------------------------------------*/ - PicamModel_Pixis512Series = 43, - PicamModel_Pixis512F = 44, - PicamModel_Pixis512B = 45, - PicamModel_Pixis512BUV = 46, - PicamModel_Pixis512BExcelon = 58, - PicamModel_PixisXO512F = 49, - PicamModel_PixisXO512B = 50, - PicamModel_PixisXF512F = 48, - PicamModel_PixisXF512B = 47, + PicamModel_Pixis512Series = 43, + PicamModel_Pixis512F = 44, + PicamModel_Pixis512B = 45, + PicamModel_Pixis512BUV = 46, + PicamModel_Pixis512BExcelon = 58, + PicamModel_PixisXO512F = 49, + PicamModel_PixisXO512B = 50, + PicamModel_PixisXF512F = 48, + PicamModel_PixisXF512B = 47, /* PIXIS 1024 Series -----------------------------------------------------*/ - PicamModel_Pixis1024Series = 9, - PicamModel_Pixis1024F = 10, - PicamModel_Pixis1024B = 11, - PicamModel_Pixis1024BR = 13, - PicamModel_Pixis1024BUV = 12, - PicamModel_Pixis1024BExcelon = 59, - PicamModel_Pixis1024BRExcelon = 60, - PicamModel_PixisXO1024F = 16, - PicamModel_PixisXO1024B = 14, - PicamModel_PixisXO1024BR = 15, - PicamModel_PixisXF1024F = 17, - PicamModel_PixisXF1024B = 18, - PicamModel_PixisXB1024BR = 71, + PicamModel_Pixis1024Series = 9, + PicamModel_Pixis1024F = 10, + PicamModel_Pixis1024B = 11, + PicamModel_Pixis1024BR = 13, + PicamModel_Pixis1024BUV = 12, + PicamModel_Pixis1024BExcelon = 59, + PicamModel_Pixis1024BRExcelon = 60, + PicamModel_PixisXO1024F = 16, + PicamModel_PixisXO1024B = 14, + PicamModel_PixisXO1024BR = 15, + PicamModel_PixisXF1024F = 17, + PicamModel_PixisXF1024B = 18, + PicamModel_PixisXB1024BR = 71, /* PIXIS 1300 Series -----------------------------------------------------*/ - PicamModel_Pixis1300Series = 51, - PicamModel_Pixis1300F = 52, - PicamModel_Pixis1300F_2 = 75, - PicamModel_Pixis1300B = 53, - PicamModel_Pixis1300BR = 73, - PicamModel_Pixis1300BExcelon = 61, - PicamModel_Pixis1300BRExcelon = 62, - PicamModel_PixisXO1300B = 65, - PicamModel_PixisXF1300B = 66, - PicamModel_PixisXB1300R = 72, + PicamModel_Pixis1300Series = 51, + PicamModel_Pixis1300F = 52, + PicamModel_Pixis1300F_2 = 75, + PicamModel_Pixis1300B = 53, + PicamModel_Pixis1300BR = 73, + PicamModel_Pixis1300BExcelon = 61, + PicamModel_Pixis1300BRExcelon = 62, + PicamModel_PixisXO1300B = 65, + PicamModel_PixisXF1300B = 66, + PicamModel_PixisXB1300R = 72, /* PIXIS 2048 Series -----------------------------------------------------*/ - PicamModel_Pixis2048Series = 20, - PicamModel_Pixis2048F = 21, - PicamModel_Pixis2048B = 22, - PicamModel_Pixis2048BR = 67, - PicamModel_Pixis2048BExcelon = 63, - PicamModel_Pixis2048BRExcelon = 74, - PicamModel_PixisXO2048B = 23, - PicamModel_PixisXF2048F = 25, - PicamModel_PixisXF2048B = 24, + PicamModel_Pixis2048Series = 20, + PicamModel_Pixis2048F = 21, + PicamModel_Pixis2048B = 22, + PicamModel_Pixis2048BR = 67, + PicamModel_Pixis2048BExcelon = 63, + PicamModel_Pixis2048BRExcelon = 74, + PicamModel_PixisXO2048B = 23, + PicamModel_PixisXF2048F = 25, + PicamModel_PixisXF2048B = 24, /* PIXIS 2K Series -------------------------------------------------------*/ - PicamModel_Pixis2KSeries = 32, - PicamModel_Pixis2KF = 33, - PicamModel_Pixis2KB = 34, - PicamModel_Pixis2KBUV = 36, - PicamModel_Pixis2KBExcelon = 64, - PicamModel_PixisXO2KB = 35, + PicamModel_Pixis2KSeries = 32, + PicamModel_Pixis2KF = 33, + PicamModel_Pixis2KB = 34, + PicamModel_Pixis2KBUV = 36, + PicamModel_Pixis2KBExcelon = 64, + PicamModel_PixisXO2KB = 35, /*------------------------------------------------------------------------*/ /* Quad-RO Series (104) --------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_QuadroSeries = 100, - PicamModel_Quadro4096 = 101, - PicamModel_Quadro4096_2 = 103, - PicamModel_Quadro4320 = 102, + PicamModel_QuadroSeries = 100, + PicamModel_Quadro4096 = 101, + PicamModel_Quadro4096_2 = 103, + PicamModel_Quadro4320 = 102, /*------------------------------------------------------------------------*/ /* ProEM Series (214) ----------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_ProEMSeries = 200, + PicamModel_ProEMSeries = 200, /* ProEM 512 Series ------------------------------------------------------*/ - PicamModel_ProEM512Series = 203, - PicamModel_ProEM512B = 201, - PicamModel_ProEM512BK = 205, - PicamModel_ProEM512BExcelon = 204, - PicamModel_ProEM512BKExcelon = 206, + PicamModel_ProEM512Series = 203, + PicamModel_ProEM512B = 201, + PicamModel_ProEM512BK = 205, + PicamModel_ProEM512BExcelon = 204, + PicamModel_ProEM512BKExcelon = 206, /* ProEM 1024 Series -----------------------------------------------------*/ - PicamModel_ProEM1024Series = 207, - PicamModel_ProEM1024B = 202, - PicamModel_ProEM1024BExcelon = 208, + PicamModel_ProEM1024Series = 207, + PicamModel_ProEM1024B = 202, + PicamModel_ProEM1024BExcelon = 208, /* ProEM 1600 Series -----------------------------------------------------*/ - PicamModel_ProEM1600Series = 209, - PicamModel_ProEM1600xx2B = 212, - PicamModel_ProEM1600xx2BExcelon = 210, - PicamModel_ProEM1600xx4B = 213, - PicamModel_ProEM1600xx4BExcelon = 211, + PicamModel_ProEM1600Series = 209, + PicamModel_ProEM1600xx2B = 212, + PicamModel_ProEM1600xx2BExcelon = 210, + PicamModel_ProEM1600xx4B = 213, + PicamModel_ProEM1600xx4BExcelon = 211, /*------------------------------------------------------------------------*/ /* ProEM+ Series (614) ---------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_ProEMPlusSeries = 600, + PicamModel_ProEMPlusSeries = 600, /* ProEM+ 512 Series -----------------------------------------------------*/ - PicamModel_ProEMPlus512Series = 603, - PicamModel_ProEMPlus512B = 601, - PicamModel_ProEMPlus512BK = 605, - PicamModel_ProEMPlus512BExcelon = 604, - PicamModel_ProEMPlus512BKExcelon = 606, + PicamModel_ProEMPlus512Series = 603, + PicamModel_ProEMPlus512B = 601, + PicamModel_ProEMPlus512BK = 605, + PicamModel_ProEMPlus512BExcelon = 604, + PicamModel_ProEMPlus512BKExcelon = 606, /* ProEM+ 1024 Series ----------------------------------------------------*/ - PicamModel_ProEMPlus1024Series = 607, - PicamModel_ProEMPlus1024B = 602, - PicamModel_ProEMPlus1024BExcelon = 608, + PicamModel_ProEMPlus1024Series = 607, + PicamModel_ProEMPlus1024B = 602, + PicamModel_ProEMPlus1024BExcelon = 608, /* ProEM+ 1600 Series ----------------------------------------------------*/ - PicamModel_ProEMPlus1600Series = 609, - PicamModel_ProEMPlus1600xx2B = 612, - PicamModel_ProEMPlus1600xx2BExcelon = 610, - PicamModel_ProEMPlus1600xx4B = 613, - PicamModel_ProEMPlus1600xx4BExcelon = 611, + PicamModel_ProEMPlus1600Series = 609, + PicamModel_ProEMPlus1600xx2B = 612, + PicamModel_ProEMPlus1600xx2BExcelon = 610, + PicamModel_ProEMPlus1600xx4B = 613, + PicamModel_ProEMPlus1600xx4BExcelon = 611, /*------------------------------------------------------------------------*/ - /* ProEM-HS Series (1209) ------------------------------------------------*/ + /* ProEM-HS Series (1218) ------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_ProEMHSSeries = 1200, + PicamModel_ProEMHSSeries = 1200, /* ProEM-HS 512 Series ---------------------------------------------------*/ - PicamModel_ProEMHS512Series = 1201, - PicamModel_ProEMHS512B = 1202, - PicamModel_ProEMHS512BK = 1207, - PicamModel_ProEMHS512BExcelon = 1203, - PicamModel_ProEMHS512BKExcelon = 1208, + PicamModel_ProEMHS512Series = 1201, + PicamModel_ProEMHS512B = 1202, + PicamModel_ProEMHS512BK = 1207, + PicamModel_ProEMHS512BExcelon = 1203, + PicamModel_ProEMHS512BKExcelon = 1208, + PicamModel_ProEMHS512B_2 = 1216, + PicamModel_ProEMHS512BExcelon_2 = 1217, /* ProEM-HS 1024 Series --------------------------------------------------*/ - PicamModel_ProEMHS1024Series = 1204, - PicamModel_ProEMHS1024B = 1205, - PicamModel_ProEMHS1024BExcelon = 1206, + PicamModel_ProEMHS1024Series = 1204, + PicamModel_ProEMHS1024B = 1205, + PicamModel_ProEMHS1024BExcelon = 1206, + PicamModel_ProEMHS1024B_2 = 1212, + PicamModel_ProEMHS1024BExcelon_2 = 1213, + PicamModel_ProEMHS1024B_3 = 1214, + PicamModel_ProEMHS1024BExcelon_3 = 1215, + /* ProEM-HS 1K-10 Series -------------------------------------------------*/ + PicamModel_ProEMHS1K10Series = 1209, + PicamModel_ProEMHS1KB10 = 1210, + PicamModel_ProEMHS1KB10Excelon = 1211, /*------------------------------------------------------------------------*/ /* PI-MAX3 Series (303) --------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_PIMax3Series = 300, - PicamModel_PIMax31024I = 301, - PicamModel_PIMax31024x256 = 302, + PicamModel_PIMax3Series = 300, + PicamModel_PIMax31024I = 301, + PicamModel_PIMax31024x256 = 302, /*------------------------------------------------------------------------*/ /* PI-MAX4 Series (721) --------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_PIMax4Series = 700, + PicamModel_PIMax4Series = 700, /* PI-MAX4 1024i Series --------------------------------------------------*/ - PicamModel_PIMax41024ISeries = 703, - PicamModel_PIMax41024I = 701, - PicamModel_PIMax41024IRF = 704, + PicamModel_PIMax41024ISeries = 703, + PicamModel_PIMax41024I = 701, + PicamModel_PIMax41024IRF = 704, /* PI-MAX4 1024f Series --------------------------------------------------*/ - PicamModel_PIMax41024FSeries = 710, - PicamModel_PIMax41024F = 711, - PicamModel_PIMax41024FRF = 712, + PicamModel_PIMax41024FSeries = 710, + PicamModel_PIMax41024F = 711, + PicamModel_PIMax41024FRF = 712, /* PI-MAX4 1024x256 Series -----------------------------------------------*/ - PicamModel_PIMax41024x256Series = 705, - PicamModel_PIMax41024x256 = 702, - PicamModel_PIMax41024x256RF = 706, + PicamModel_PIMax41024x256Series = 705, + PicamModel_PIMax41024x256 = 702, + PicamModel_PIMax41024x256RF = 706, /* PI-MAX4 2048 Series ---------------------------------------------------*/ - PicamModel_PIMax42048Series = 716, - PicamModel_PIMax42048F = 717, - PicamModel_PIMax42048B = 718, - PicamModel_PIMax42048FRF = 719, - PicamModel_PIMax42048BRF = 720, + PicamModel_PIMax42048Series = 716, + PicamModel_PIMax42048F = 717, + PicamModel_PIMax42048B = 718, + PicamModel_PIMax42048FRF = 719, + PicamModel_PIMax42048BRF = 720, /* PI-MAX4 512EM Series --------------------------------------------------*/ - PicamModel_PIMax4512EMSeries = 708, - PicamModel_PIMax4512EM = 707, - PicamModel_PIMax4512BEM = 709, + PicamModel_PIMax4512EMSeries = 708, + PicamModel_PIMax4512EM = 707, + PicamModel_PIMax4512BEM = 709, /* PI-MAX4 1024EM Series -------------------------------------------------*/ - PicamModel_PIMax41024EMSeries = 713, - PicamModel_PIMax41024EM = 715, - PicamModel_PIMax41024BEM = 714, + PicamModel_PIMax41024EMSeries = 713, + PicamModel_PIMax41024EM = 715, + PicamModel_PIMax41024BEM = 714, /*------------------------------------------------------------------------*/ /* PyLoN Series (439) ----------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_PylonSeries = 400, + PicamModel_PylonSeries = 400, /* PyLoN 100 Series ------------------------------------------------------*/ - PicamModel_Pylon100Series = 418, - PicamModel_Pylon100F = 404, - PicamModel_Pylon100B = 401, - PicamModel_Pylon100BR = 407, - PicamModel_Pylon100BExcelon = 425, - PicamModel_Pylon100BRExcelon = 426, + PicamModel_Pylon100Series = 418, + PicamModel_Pylon100F = 404, + PicamModel_Pylon100B = 401, + PicamModel_Pylon100BR = 407, + PicamModel_Pylon100BExcelon = 425, + PicamModel_Pylon100BRExcelon = 426, /* PyLoN 256 Series ------------------------------------------------------*/ - PicamModel_Pylon256Series = 419, - PicamModel_Pylon256F = 409, - PicamModel_Pylon256B = 410, - PicamModel_Pylon256E = 411, - PicamModel_Pylon256BR = 412, + PicamModel_Pylon256Series = 419, + PicamModel_Pylon256F = 409, + PicamModel_Pylon256B = 410, + PicamModel_Pylon256E = 411, + PicamModel_Pylon256BR = 412, /* PyLoN 400 Series ------------------------------------------------------*/ - PicamModel_Pylon400Series = 420, - PicamModel_Pylon400F = 405, - PicamModel_Pylon400B = 402, - PicamModel_Pylon400BR = 408, - PicamModel_Pylon400BExcelon = 427, - PicamModel_Pylon400BRExcelon = 428, + PicamModel_Pylon400Series = 420, + PicamModel_Pylon400F = 405, + PicamModel_Pylon400B = 402, + PicamModel_Pylon400BR = 408, + PicamModel_Pylon400BExcelon = 427, + PicamModel_Pylon400BRExcelon = 428, /* PyLoN 1024 Series -----------------------------------------------------*/ - PicamModel_Pylon1024Series = 421, - PicamModel_Pylon1024B = 417, - PicamModel_Pylon1024BExcelon = 429, + PicamModel_Pylon1024Series = 421, + PicamModel_Pylon1024B = 417, + PicamModel_Pylon1024BExcelon = 429, /* PyLoN 1300 Series -----------------------------------------------------*/ - PicamModel_Pylon1300Series = 422, - PicamModel_Pylon1300F = 406, - PicamModel_Pylon1300B = 403, - PicamModel_Pylon1300R = 438, - PicamModel_Pylon1300BR = 432, - PicamModel_Pylon1300BExcelon = 430, - PicamModel_Pylon1300BRExcelon = 433, + PicamModel_Pylon1300Series = 422, + PicamModel_Pylon1300F = 406, + PicamModel_Pylon1300B = 403, + PicamModel_Pylon1300R = 438, + PicamModel_Pylon1300BR = 432, + PicamModel_Pylon1300BExcelon = 430, + PicamModel_Pylon1300BRExcelon = 433, /* PyLoN 2048 Series -----------------------------------------------------*/ - PicamModel_Pylon2048Series = 423, - PicamModel_Pylon2048F = 415, - PicamModel_Pylon2048B = 434, - PicamModel_Pylon2048BR = 416, - PicamModel_Pylon2048BExcelon = 435, - PicamModel_Pylon2048BRExcelon = 436, + PicamModel_Pylon2048Series = 423, + PicamModel_Pylon2048F = 415, + PicamModel_Pylon2048B = 434, + PicamModel_Pylon2048BR = 416, + PicamModel_Pylon2048BExcelon = 435, + PicamModel_Pylon2048BRExcelon = 436, /* PyLoN 2K Series -------------------------------------------------------*/ - PicamModel_Pylon2KSeries = 424, - PicamModel_Pylon2KF = 413, - PicamModel_Pylon2KB = 414, - PicamModel_Pylon2KBUV = 437, - PicamModel_Pylon2KBExcelon = 431, + PicamModel_Pylon2KSeries = 424, + PicamModel_Pylon2KF = 413, + PicamModel_Pylon2KB = 414, + PicamModel_Pylon2KBUV = 437, + PicamModel_Pylon2KBExcelon = 431, /*------------------------------------------------------------------------*/ /* PyLoN-IR Series (904) -------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_PylonirSeries = 900, + PicamModel_PylonirSeries = 900, /* PyLoN-IR 1024 Series --------------------------------------------------*/ - PicamModel_Pylonir1024Series = 901, - PicamModel_Pylonir102422 = 902, - PicamModel_Pylonir102417 = 903, + PicamModel_Pylonir1024Series = 901, + PicamModel_Pylonir102422 = 902, + PicamModel_Pylonir102417 = 903, /*------------------------------------------------------------------------*/ /* PIoNIR Series (502) ---------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_PionirSeries = 500, - PicamModel_Pionir640 = 501, + PicamModel_PionirSeries = 500, + PicamModel_Pionir640 = 501, /*------------------------------------------------------------------------*/ /* NIRvana Series (802) --------------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_NirvanaSeries = 800, - PicamModel_Nirvana640 = 801, + PicamModel_NirvanaSeries = 800, + PicamModel_Nirvana640 = 801, /*------------------------------------------------------------------------*/ /* NIRvana ST Series (1302) ----------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_NirvanaSTSeries = 1300, - PicamModel_NirvanaST640 = 1301, + PicamModel_NirvanaSTSeries = 1300, + PicamModel_NirvanaST640 = 1301, /*------------------------------------------------------------------------*/ /* NIRvana-LN Series (1102) ----------------------------------------------*/ /*------------------------------------------------------------------------*/ - PicamModel_NirvanaLNSeries = 1100, - PicamModel_NirvanaLN640 = 1101 + PicamModel_NirvanaLNSeries = 1100, + PicamModel_NirvanaLN640 = 1101, + /*------------------------------------------------------------------------*/ + /* NIRvana HS Series (2202) ----------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_NirvanaHSSeries = 2200, + PicamModel_NirvanaHS = 2201, + /*------------------------------------------------------------------------*/ + /* SOPHIA Series (1845) --------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_SophiaSeries = 1800, + /* SOPHIA 2048 Series ----------------------------------------------------*/ + PicamModel_Sophia2048Series = 1801, + PicamModel_Sophia2048B = 1802, + PicamModel_Sophia2048BExcelon = 1803, + PicamModel_SophiaXO2048B = 1804, + PicamModel_SophiaXF2048B = 1805, + PicamModel_SophiaXB2048B = 1806, + /* SOPHIA 2048-13.5 Series -----------------------------------------------*/ + PicamModel_Sophia2048135Series = 1807, + PicamModel_Sophia2048135 = 1808, + PicamModel_Sophia2048B135 = 1809, + PicamModel_Sophia2048BR135 = 1810, + PicamModel_Sophia2048BUV135 = 1844, + PicamModel_Sophia2048B135Excelon = 1811, + PicamModel_Sophia2048BR135Excelon = 1812, + PicamModel_SophiaXO2048B135 = 1813, + PicamModel_SophiaXO2048BR135 = 1814, + PicamModel_Sophia2048B135Excelon_2 = 1840, + /* SOPHIA 4096 Series ----------------------------------------------------*/ + PicamModel_Sophia4096Series = 1826, + PicamModel_Sophia4096B = 1827, + PicamModel_SophiaXO4096B = 1829, + PicamModel_SophiaXF4096B = 1830, + PicamModel_SophiaXB4096B = 1831, + PicamModel_Sophia4096B_2 = 1841, + /* SOPHIA 4096-HDR Series ------------------------------------------------*/ + PicamModel_Sophia4096HdrSeries = 1832, + PicamModel_Sophia4096BHdr = 1833, + PicamModel_Sophia4096BRHdr = 1834, + PicamModel_SophiaXO4096BHdr = 1837, + PicamModel_SophiaXO4096BRHdr = 1838, + PicamModel_SophiaXF4096BHdr = 1839, + PicamModel_SophiaXF4096BRHdr = 1828, + PicamModel_SophiaXB4096BHdr = 1835, + PicamModel_SophiaXB4096BRHdr = 1836, + PicamModel_Sophia4096BHdr_2 = 1842, + PicamModel_Sophia4096BRHdr_2 = 1843, + /*------------------------------------------------------------------------*/ + /* BLAZE Series (1519) ---------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_BlazeSeries = 1500, + /* BLAZE 100 Series ------------------------------------------------------*/ + PicamModel_Blaze100Series = 1507, + PicamModel_Blaze100B = 1501, + PicamModel_Blaze100BR = 1505, + PicamModel_Blaze100HR = 1503, + PicamModel_Blaze100BRLD = 1509, + PicamModel_Blaze100BExcelon = 1511, + PicamModel_Blaze100BRExcelon = 1513, + PicamModel_Blaze100HRExcelon = 1515, + PicamModel_Blaze100BRLDExcelon = 1517, + /* BLAZE 400 Series ------------------------------------------------------*/ + PicamModel_Blaze400Series = 1508, + PicamModel_Blaze400B = 1502, + PicamModel_Blaze400BR = 1506, + PicamModel_Blaze400HR = 1504, + PicamModel_Blaze400BRLD = 1510, + PicamModel_Blaze400BExcelon = 1512, + PicamModel_Blaze400BRExcelon = 1514, + PicamModel_Blaze400HRExcelon = 1516, + PicamModel_Blaze400BRLDExcelon = 1518, + /*------------------------------------------------------------------------*/ + /* FERGIE Series (1612) --------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_FergieSeries = 1600, + /* FERGIE 256 Series -----------------------------------------------------*/ + PicamModel_Fergie256Series = 1601, + PicamModel_Fergie256B = 1602, + PicamModel_Fergie256BR = 1607, + PicamModel_Fergie256BExcelon = 1603, + PicamModel_Fergie256BRExcelon = 1608, + /* FERGIE 256FT Series ---------------------------------------------------*/ + PicamModel_Fergie256FTSeries = 1604, + PicamModel_Fergie256FFT = 1609, + PicamModel_Fergie256BFT = 1605, + PicamModel_Fergie256BRFT = 1610, + PicamModel_Fergie256BFTExcelon = 1606, + PicamModel_Fergie256BRFTExcelon = 1611, + /*------------------------------------------------------------------------*/ + /* FERGIE-ISO-81 Series (2104) -------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_FergieIso81Series = 2100, + /* FERGIE-ISO-81 256FT Series --------------------------------------------*/ + PicamModel_FergieIso81256FTSeries = 2101, + PicamModel_FergieIso81256BFTExcelon = 2102, + PicamModel_FergieIso81256BRFTExcelon = 2103, + /*------------------------------------------------------------------------*/ + /* FERGIE Accessory Series (1707) ----------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_FergieAccessorySeries = 1700, + /* FERGIE Lamp Series ----------------------------------------------------*/ + PicamModel_FergieLampSeries = 1701, + PicamModel_FergieAEL = 1702, + PicamModel_FergieQTH = 1703, + /* FERGIE Laser Series ---------------------------------------------------*/ + PicamModel_FergieLaserSeries = 1704, + PicamModel_FergieLaser785 = 1705, + PicamModel_FergieLaser532 = 1706, + /*------------------------------------------------------------------------*/ + /* KURO Series (1904) ----------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_KuroSeries = 1900, + PicamModel_Kuro1200B = 1901, + PicamModel_Kuro1608B = 1902, + PicamModel_Kuro2048B = 1903, + /*------------------------------------------------------------------------*/ + /* IntelliCal Accessory Series (2603) ------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_IntellicalAccessorySeries = 2600, + /* IntelliCal Lamp Series ------------------------------------------------*/ + PicamModel_IntellicalLampSeries = 2601, + PicamModel_IntellicalSwirQTH = 2602, + /*------------------------------------------------------------------------*/ + /* TPIR Series (2304) ----------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_TpirSeries = 2300, + /* TPIR-785 Series -------------------------------------------------------*/ + PicamModel_Tpir785Series = 2301, + PicamModel_Tpir785100 = 2302, + PicamModel_Tpir785400 = 2303, + /*------------------------------------------------------------------------*/ + /* TPIR HR Series (2404) -------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_TpirHRSeries = 2400, + /* TPIR-785 HR Series ----------------------------------------------------*/ + PicamModel_Tpir785HRSeries = 2401, + PicamModel_Tpir785HR100 = 2402, + PicamModel_Tpir785HR400 = 2403, + /*------------------------------------------------------------------------*/ + /* Evolve Series (2904) --------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_EvolveSeries = 2900, + PicamModel_Evolve10 = 2901, + PicamModel_Evolve13 = 2902, + PicamModel_Evolve16 = 2903, + /*------------------------------------------------------------------------*/ + /* LANSIS Series (2715) --------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + PicamModel_LansisSeries = 2700, + /* LANSIS 261 Series -----------------------------------------------------*/ + PicamModel_Lansis261Series = 2701, + PicamModel_LansisA261BR = 2702, + PicamModel_LansisW261BR = 2703, + PicamModel_LansisA261BRX = 2704, + PicamModel_LansisW261BRX = 2705, + /* LANSIS 424 Series -----------------------------------------------------*/ + PicamModel_Lansis424Series = 2711, + PicamModel_LansisD424B = 2712, + PicamModel_LansisD424BX = 2713, + PicamModel_LansisD424BX_2 = 2714 /*------------------------------------------------------------------------*/ } PicamModel; /*----------------------------------------------------------------------------*/ @@ -510,8 +747,9 @@ typedef enum PicamComputerInterface { PicamComputerInterface_Usb2 = 1, PicamComputerInterface_1394A = 2, - PicamComputerInterface_GigabitEthernet = 3 -} PicamComputerInterface; /* (4) */ + PicamComputerInterface_GigabitEthernet = 3, + PicamComputerInterface_Usb3 = 4 +} PicamComputerInterface; /* (6) */ /*----------------------------------------------------------------------------*/ typedef enum PicamStringSize { @@ -547,7 +785,7 @@ PICAM_API Picam_IsCameraIDOpenElsewhere( const PicamCameraID* id, pibln* open_elsewhere ); /*----------------------------------------------------------------------------*/ -/* Camera Access -------------------------------------------------------------*/ +/* Camera/Accessory Access ---------------------------------------------------*/ /*----------------------------------------------------------------------------*/ typedef void* PicamHandle; /*----------------------------------------------------------------------------*/ @@ -569,11 +807,15 @@ PICAM_API Picam_IsCameraConnected( PicamHandle camera, pibln* connected ); /*----------------------------------------------------------------------------*/ +PICAM_API Picam_IsCameraFaulted( + PicamHandle camera, + pibln* faulted ); +/*----------------------------------------------------------------------------*/ PICAM_API Picam_GetCameraID( PicamHandle camera, PicamCameraID* id ); /*----------------------------------------------------------------------------*/ -/* Camera Information --------------------------------------------------------*/ +/* Camera/Accessory Information - Firmware -----------------------------------*/ /*----------------------------------------------------------------------------*/ typedef struct PicamFirmwareDetail { @@ -589,6 +831,23 @@ PICAM_API Picam_GetFirmwareDetails( const PicamFirmwareDetail** firmware_array, piint* firmware_count ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ +/* Camera/Accessory Information - Calibration --------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct PicamCalibrationPoint +{ + piflt x; + piflt y; +} PicamCalibrationPoint; +/*----------------------------------------------------------------------------*/ +typedef struct PicamCalibration +{ + const PicamCalibrationPoint* point_array; + piint point_count; +} PicamCalibration; +/*----------------------------------------------------------------------------*/ +PICAM_API Picam_DestroyCalibrations( + const PicamCalibration* calibration_array ); +/*----------------------------------------------------------------------------*/ /* Demo Camera ---------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_DestroyModels( const PicamModel* model_array ); @@ -613,14 +872,14 @@ PICAM_API Picam_IsDemoCamera( /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ -/* Camera Parameter Values, Information, Constraints and Commitment */ +/* Camera/Accessory Parameter Values, Information, Constraints and Commitment */ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /*----------------------------------------------------------------------------*/ -/* Camera Parameters ---------------------------------------------------------*/ +/* Camera/Accessory Parameters -----------------------------------------------*/ /*----------------------------------------------------------------------------*/ typedef enum PicamValueType { @@ -666,6 +925,9 @@ typedef enum PicamConstraintType typedef enum PicamParameter { #define PI_V(v,c,n) (((PicamConstraintType_##c)<<24)+((PicamValueType_##v)<<16)+(n)) + /***************************************************************************************/ + /* Camera Parameters *******************************************************************/ + /***************************************************************************************/ /*-------------------------------------------------------------------------------------*/ /* Shutter Timing ---------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------------*/ @@ -674,16 +936,15 @@ typedef enum PicamParameter PicamParameter_ShutterOpeningDelay = PI_V(FloatingPoint, Range, 46), PicamParameter_ShutterClosingDelay = PI_V(FloatingPoint, Range, 25), PicamParameter_ShutterDelayResolution = PI_V(FloatingPoint, Collection, 47), + PicamParameter_InternalShutterType = PI_V(Enumeration, None, 139), + PicamParameter_InternalShutterStatus = PI_V(Enumeration, None, 153), + PicamParameter_ExternalShutterType = PI_V(Enumeration, None, 152), + PicamParameter_ExternalShutterStatus = PI_V(Enumeration, None, 154), + PicamParameter_ActiveShutter = PI_V(Enumeration, Collection, 155), + PicamParameter_InactiveShutterTimingModeResult = PI_V(Enumeration, None, 156), /*-------------------------------------------------------------------------------------*/ - /* Intensifier ------------------------------------------------------------------------*/ + /* Gating -----------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------------*/ - PicamParameter_EnableIntensifier = PI_V(Boolean, Collection, 86), - PicamParameter_IntensifierStatus = PI_V(Enumeration, None, 87), - PicamParameter_IntensifierGain = PI_V(Integer, Range, 88), - PicamParameter_EMIccdGainControlMode = PI_V(Enumeration, Collection, 123), - PicamParameter_EMIccdGain = PI_V(Integer, Range, 124), - PicamParameter_PhosphorDecayDelay = PI_V(FloatingPoint, Range, 89), - PicamParameter_PhosphorDecayDelayResolution = PI_V(FloatingPoint, Collection, 90), PicamParameter_GatingMode = PI_V(Enumeration, Collection, 93), PicamParameter_RepetitiveGate = PI_V(Pulse, Pulse, 94), PicamParameter_SequentialStartingGate = PI_V(Pulse, Pulse, 95), @@ -692,6 +953,16 @@ typedef enum PicamParameter PicamParameter_SequentialGateStepIterations = PI_V(LargeInteger, Range, 98), PicamParameter_DifStartingGate = PI_V(Pulse, Pulse, 102), PicamParameter_DifEndingGate = PI_V(Pulse, Pulse, 103), + /*-------------------------------------------------------------------------------------*/ + /* Intensifier ------------------------------------------------------------------------*/ + /*-------------------------------------------------------------------------------------*/ + PicamParameter_EnableIntensifier = PI_V(Boolean, Collection, 86), + PicamParameter_IntensifierStatus = PI_V(Enumeration, None, 87), + PicamParameter_IntensifierGain = PI_V(Integer, Range, 88), + PicamParameter_EMIccdGainControlMode = PI_V(Enumeration, Collection, 123), + PicamParameter_EMIccdGain = PI_V(Integer, Range, 124), + PicamParameter_PhosphorDecayDelay = PI_V(FloatingPoint, Range, 89), + PicamParameter_PhosphorDecayDelayResolution = PI_V(FloatingPoint, Collection, 90), PicamParameter_BracketGating = PI_V(Boolean, Collection, 100), PicamParameter_IntensifierOptions = PI_V(Enumeration, None, 101), PicamParameter_EnableModulation = PI_V(Boolean, Collection, 111), @@ -724,14 +995,20 @@ typedef enum PicamParameter PicamParameter_TriggerTermination = PI_V(Enumeration, Collection, 81), PicamParameter_TriggerCoupling = PI_V(Enumeration, Collection, 82), PicamParameter_TriggerThreshold = PI_V(FloatingPoint, Range, 83), + PicamParameter_TriggerDelay = PI_V(FloatingPoint, Range, 164), PicamParameter_OutputSignal = PI_V(Enumeration, Collection, 32), PicamParameter_InvertOutputSignal = PI_V(Boolean, Collection, 52), + PicamParameter_OutputSignal2 = PI_V(Enumeration, Collection, 150), + PicamParameter_InvertOutputSignal2 = PI_V(Boolean, Collection, 151), + PicamParameter_EnableAuxOutput = PI_V(Boolean, Collection, 161), PicamParameter_AuxOutput = PI_V(Pulse, Pulse, 91), PicamParameter_EnableSyncMaster = PI_V(Boolean, Collection, 84), PicamParameter_SyncMaster2Delay = PI_V(FloatingPoint, Range, 85), PicamParameter_EnableModulationOutputSignal = PI_V(Boolean, Collection, 116), PicamParameter_ModulationOutputSignalFrequency = PI_V(FloatingPoint, Range, 117), PicamParameter_ModulationOutputSignalAmplitude = PI_V(FloatingPoint, Range, 120), + PicamParameter_AnticipateTrigger = PI_V(Boolean, Collection, 131), + PicamParameter_DelayFromPreTrigger = PI_V(FloatingPoint, Range, 132), /*-------------------------------------------------------------------------------------*/ /* Readout Control --------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------------*/ @@ -740,6 +1017,7 @@ typedef enum PicamParameter PicamParameter_ReadoutPortCount = PI_V(Integer, Collection, 28), PicamParameter_ReadoutOrientation = PI_V(Enumeration, None, 54), PicamParameter_KineticsWindowHeight = PI_V(Integer, Range, 56), + PicamParameter_SeNsRWindowHeight = PI_V(Integer, Range, 163), PicamParameter_VerticalShiftRate = PI_V(FloatingPoint, Collection, 13), PicamParameter_Accumulations = PI_V(LargeInteger, Range, 92), PicamParameter_EnableNondestructiveReadout = PI_V(Boolean, Collection, 128), @@ -780,6 +1058,7 @@ typedef enum PicamParameter PicamParameter_CcdCharacteristics = PI_V(Enumeration, None, 58), PicamParameter_SensorActiveWidth = PI_V(Integer, None, 59), PicamParameter_SensorActiveHeight = PI_V(Integer, None, 60), + PicamParameter_SensorActiveExtendedHeight = PI_V(Integer, None, 159), PicamParameter_SensorActiveLeftMargin = PI_V(Integer, None, 61), PicamParameter_SensorActiveTopMargin = PI_V(Integer, None, 62), PicamParameter_SensorActiveRightMargin = PI_V(Integer, None, 63), @@ -793,11 +1072,13 @@ typedef enum PicamParameter PicamParameter_PixelHeight = PI_V(FloatingPoint, None, 10), PicamParameter_PixelGapWidth = PI_V(FloatingPoint, None, 11), PicamParameter_PixelGapHeight = PI_V(FloatingPoint, None, 12), + PicamParameter_ApplicableStarDefectMapID = PI_V(Integer, None, 166), /*-------------------------------------------------------------------------------------*/ /* Sensor Layout ----------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------------*/ PicamParameter_ActiveWidth = PI_V(Integer, Range, 1), PicamParameter_ActiveHeight = PI_V(Integer, Range, 2), + PicamParameter_ActiveExtendedHeight = PI_V(Integer, Range, 160), PicamParameter_ActiveLeftMargin = PI_V(Integer, Range, 3), PicamParameter_ActiveTopMargin = PI_V(Integer, Range, 4), PicamParameter_ActiveRightMargin = PI_V(Integer, Range, 5), @@ -817,6 +1098,7 @@ typedef enum PicamParameter PicamParameter_CleanCycleHeight = PI_V(Integer, Range, 21), PicamParameter_CleanBeforeExposure = PI_V(Boolean, Collection, 78), PicamParameter_CleanUntilTrigger = PI_V(Boolean, Collection, 22), + PicamParameter_StopCleaningOnPreTrigger = PI_V(Boolean, Collection, 130), /*-------------------------------------------------------------------------------------*/ /* Sensor Temperature -----------------------------------------------------------------*/ /*-------------------------------------------------------------------------------------*/ @@ -824,25 +1106,61 @@ typedef enum PicamParameter PicamParameter_SensorTemperatureReading = PI_V(FloatingPoint, None, 15), PicamParameter_SensorTemperatureStatus = PI_V(Enumeration, None, 16), PicamParameter_DisableCoolingFan = PI_V(Boolean, Collection, 29), - PicamParameter_EnableSensorWindowHeater = PI_V(Boolean, Collection, 127) + PicamParameter_CoolingFanStatus = PI_V(Enumeration, None, 162), + PicamParameter_EnableSensorWindowHeater = PI_V(Boolean, Collection, 127), + PicamParameter_VacuumStatus = PI_V(Enumeration, None, 165), + /*-------------------------------------------------------------------------------------*/ + /* Spectrograph -----------------------------------------------------------------------*/ + /*-------------------------------------------------------------------------------------*/ + PicamParameter_CenterWavelengthSetPoint = PI_V(FloatingPoint, Range, 140), + PicamParameter_CenterWavelengthReading = PI_V(FloatingPoint, None, 141), + PicamParameter_CenterWavelengthStatus = PI_V(Enumeration, None, 149), + PicamParameter_GratingType = PI_V(Enumeration, None, 142), + PicamParameter_GratingCoating = PI_V(Enumeration, None, 143), + PicamParameter_GratingGrooveDensity = PI_V(FloatingPoint, None, 144), + PicamParameter_GratingBlazingWavelength = PI_V(FloatingPoint, None, 145), + PicamParameter_FocalLength = PI_V(FloatingPoint, None, 146), + PicamParameter_InclusionAngle = PI_V(FloatingPoint, None, 147), + PicamParameter_SensorAngle = PI_V(FloatingPoint, None, 148), + /***************************************************************************************/ + /* Camera/Accessory Parameters *********************************************************/ + /***************************************************************************************/ + /*-------------------------------------------------------------------------------------*/ + /* Laser ------------------------------------------------------------------------------*/ + /*-------------------------------------------------------------------------------------*/ + PicamParameter_LaserOutputMode = PI_V(Enumeration, Collection, 137), + PicamParameter_LaserPower = PI_V(FloatingPoint, Range, 138), + PicamParameter_LaserWavelength = PI_V(FloatingPoint, None, 167), + PicamParameter_LaserStatus = PI_V(Enumeration, None, 157), + PicamParameter_InputTriggerStatus = PI_V(Enumeration, None, 158), + /***************************************************************************************/ + /* Accessory Parameters ****************************************************************/ + /***************************************************************************************/ + /*-------------------------------------------------------------------------------------*/ + /* Lamp -------------------------------------------------------------------------------*/ + /*-------------------------------------------------------------------------------------*/ + PicamParameter_LightSource = PI_V(Enumeration, Collection, 133), + PicamParameter_LightSourceStatus = PI_V(Enumeration, None, 134), + PicamParameter_Age = PI_V(FloatingPoint, None, 135), + PicamParameter_LifeExpectancy = PI_V(FloatingPoint, None, 136) /*-------------------------------------------------------------------------------------*/ #undef PI_V -} PicamParameter; /* (130) */ +} PicamParameter; /* (168) */ /*----------------------------------------------------------------------------*/ -/* Camera Parameter Values - Integer -----------------------------------------*/ +/* Camera/Accessory Parameter Values - Integer -------------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterIntegerValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piint* value ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_SetParameterIntegerValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piint value ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_CanSetParameterIntegerValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piint value, pibln* settable ); @@ -865,20 +1183,20 @@ PICAM_API Picam_CanSetParameterLargeIntegerValue( pi64s value, pibln* settable ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Values - Floating Point ----------------------------------*/ +/* Camera/Accessory Parameter Values - Floating Point ------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterFloatingPointValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piflt* value ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_SetParameterFloatingPointValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piflt value ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_CanSetParameterFloatingPointValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piflt value, pibln* settable ); @@ -979,7 +1297,14 @@ PICAM_API Picam_CanSetParameterModulationsValue( const PicamModulations* value, pibln* settable ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Values - Enumerated Types --------------------------------*/ +/* Camera/Accessory Parameter Values - Enumerated Types ----------------------*/ +/*----------------------------------------------------------------------------*/ +typedef enum PicamActiveShutter +{ + PicamActiveShutter_None = 1, + PicamActiveShutter_Internal = 2, + PicamActiveShutter_External = 3 +} PicamActiveShutter; /* (4) */ /*----------------------------------------------------------------------------*/ typedef enum PicamAdcAnalogGain { @@ -994,7 +1319,7 @@ typedef enum PicamAdcQuality PicamAdcQuality_HighCapacity = 2, PicamAdcQuality_HighSpeed = 4, PicamAdcQuality_ElectronMultiplied = 3 -} PicamAdcQuality; /* (5) */ +} PicamAdcQuality; /* (6) */ /*----------------------------------------------------------------------------*/ typedef enum PicamCcdCharacteristicsMask { @@ -1010,6 +1335,20 @@ typedef enum PicamCcdCharacteristicsMask PicamCcdCharacteristicsMask_HighResistivity = 0x100 } PicamCcdCharacteristicsMask; /* (0x200) */ /*----------------------------------------------------------------------------*/ +typedef enum PicamCenterWavelengthStatus +{ + PicamCenterWavelengthStatus_Moving = 1, + PicamCenterWavelengthStatus_Stationary = 2, + PicamCenterWavelengthStatus_Faulted = 3 +} PicamCenterWavelengthStatus; /* (4) */ +/*----------------------------------------------------------------------------*/ +typedef enum PicamCoolingFanStatus +{ + PicamCoolingFanStatus_Off = 1, + PicamCoolingFanStatus_On = 2, + PicamCoolingFanStatus_ForcedOn = 3 +} PicamCoolingFanStatus; /* (4) */ +/*----------------------------------------------------------------------------*/ typedef enum PicamEMIccdGainControlMode { PicamEMIccdGainControlMode_Optimal = 1, @@ -1025,10 +1364,11 @@ typedef enum PicamGateTrackingMask /*----------------------------------------------------------------------------*/ typedef enum PicamGatingMode { + PicamGatingMode_Disabled = 4, PicamGatingMode_Repetitive = 1, PicamGatingMode_Sequential = 2, PicamGatingMode_Custom = 3 -} PicamGatingMode; /* (4) */ +} PicamGatingMode; /* (5) */ /*----------------------------------------------------------------------------*/ typedef enum PicamGatingSpeed { @@ -1036,6 +1376,23 @@ typedef enum PicamGatingSpeed PicamGatingSpeed_Slow = 2 } PicamGatingSpeed; /* (3) */ /*----------------------------------------------------------------------------*/ +typedef enum PicamGratingCoating +{ + PicamGratingCoating_Al = 1, + PicamGratingCoating_AlMgF2 = 4, + PicamGratingCoating_Ag = 2, + PicamGratingCoating_Au = 3 +} PicamGratingCoating; /* (5) */ +/*----------------------------------------------------------------------------*/ +typedef enum PicamGratingType +{ + PicamGratingType_Ruled = 1, + PicamGratingType_HolographicVisible = 2, + PicamGratingType_HolographicNir = 3, + PicamGratingType_HolographicUV = 4, + PicamGratingType_Mirror = 5 +} PicamGratingType; /* (6) */ +/*----------------------------------------------------------------------------*/ typedef enum PicamIntensifierOptionsMask { PicamIntensifierOptionsMask_None = 0x0, @@ -1050,6 +1407,35 @@ typedef enum PicamIntensifierStatus PicamIntensifierStatus_PoweredOn = 2 } PicamIntensifierStatus; /* (3) */ /*----------------------------------------------------------------------------*/ +typedef enum PicamLaserOutputMode +{ + PicamLaserOutputMode_Disabled = 1, + PicamLaserOutputMode_ContinuousWave = 2, + PicamLaserOutputMode_Pulsed = 3 +} PicamLaserOutputMode; /* (4) */ +/*----------------------------------------------------------------------------*/ +typedef enum PicamLaserStatus +{ + PicamLaserStatus_Disarmed = 1, + PicamLaserStatus_Unarmed = 2, + PicamLaserStatus_Arming = 3, + PicamLaserStatus_Armed = 4 +} PicamLaserStatus; /* (5) */ +/*----------------------------------------------------------------------------*/ +typedef enum PicamLightSource +{ + PicamLightSource_Disabled = 1, + PicamLightSource_Hg = 2, + PicamLightSource_NeAr = 3, + PicamLightSource_Qth = 4 +} PicamLightSource; /* (5) */ +/*----------------------------------------------------------------------------*/ +typedef enum PicamLightSourceStatus +{ + PicamLightSourceStatus_Unstable = 1, + PicamLightSourceStatus_Stable = 2 +} PicamLightSourceStatus; /* (3) */ +/*----------------------------------------------------------------------------*/ typedef enum PicamModulationTrackingMask { PicamModulationTrackingMask_None = 0x0, @@ -1068,18 +1454,22 @@ typedef enum PicamOrientationMask /*----------------------------------------------------------------------------*/ typedef enum PicamOutputSignal { - PicamOutputSignal_NotReadingOut = 1, - PicamOutputSignal_ShutterOpen = 2, - PicamOutputSignal_Busy = 3, - PicamOutputSignal_AlwaysLow = 4, - PicamOutputSignal_AlwaysHigh = 5, - PicamOutputSignal_Acquiring = 6, - PicamOutputSignal_ShiftingUnderMask = 7, - PicamOutputSignal_Exposing = 8, - PicamOutputSignal_EffectivelyExposing = 9, - PicamOutputSignal_ReadingOut = 10, - PicamOutputSignal_WaitingForTrigger = 11 -} PicamOutputSignal; /* (12) */ + PicamOutputSignal_Acquiring = 6, + PicamOutputSignal_AlwaysHigh = 5, + PicamOutputSignal_AlwaysLow = 4, + PicamOutputSignal_AuxOutput = 14, + PicamOutputSignal_Busy = 3, + PicamOutputSignal_EffectivelyExposing = 9, + PicamOutputSignal_EffectivelyExposingAlternation = 15, + PicamOutputSignal_Exposing = 8, + PicamOutputSignal_Gate = 13, + PicamOutputSignal_InternalTriggerT0 = 12, + PicamOutputSignal_NotReadingOut = 1, + PicamOutputSignal_ReadingOut = 10, + PicamOutputSignal_ShiftingUnderMask = 7, + PicamOutputSignal_ShutterOpen = 2, + PicamOutputSignal_WaitingForTrigger = 11 +} PicamOutputSignal; /* (16) */ /*----------------------------------------------------------------------------*/ typedef enum PicamPhosphorType { @@ -1110,30 +1500,43 @@ typedef enum PicamPhotonDetectionMode /*----------------------------------------------------------------------------*/ typedef enum PicamPixelFormat { - PicamPixelFormat_Monochrome16Bit = 1 -} PicamPixelFormat; /* (2) */ + PicamPixelFormat_Monochrome16Bit = 1, + PicamPixelFormat_Monochrome32Bit = 2 +} PicamPixelFormat; /* (3) */ /*----------------------------------------------------------------------------*/ typedef enum PicamReadoutControlMode { - PicamReadoutControlMode_FullFrame = 1, - PicamReadoutControlMode_FrameTransfer = 2, - PicamReadoutControlMode_Interline = 5, - PicamReadoutControlMode_Kinetics = 3, - PicamReadoutControlMode_SpectraKinetics = 4, - PicamReadoutControlMode_Dif = 6 -} PicamReadoutControlMode; /* (7) */ + PicamReadoutControlMode_FullFrame = 1, + PicamReadoutControlMode_FrameTransfer = 2, + PicamReadoutControlMode_Interline = 5, + PicamReadoutControlMode_RollingShutter = 8, + PicamReadoutControlMode_ExposeDuringReadout = 9, + PicamReadoutControlMode_Kinetics = 3, + PicamReadoutControlMode_SpectraKinetics = 4, + PicamReadoutControlMode_Dif = 6, + PicamReadoutControlMode_SeNsR = 7 +} PicamReadoutControlMode; /* (11) */ /*----------------------------------------------------------------------------*/ typedef enum PicamSensorTemperatureStatus { PicamSensorTemperatureStatus_Unlocked = 1, - PicamSensorTemperatureStatus_Locked = 2 -} PicamSensorTemperatureStatus; /* (3) */ + PicamSensorTemperatureStatus_Locked = 2, + PicamSensorTemperatureStatus_Faulted = 3 +} PicamSensorTemperatureStatus; /* (4) */ /*----------------------------------------------------------------------------*/ typedef enum PicamSensorType { PicamSensorType_Ccd = 1, - PicamSensorType_InGaAs = 2 -} PicamSensorType; /* (3) */ + PicamSensorType_InGaAs = 2, + PicamSensorType_Cmos = 3 +} PicamSensorType; /* (4) */ +/*----------------------------------------------------------------------------*/ +typedef enum PicamShutterStatus +{ + PicamShutterStatus_NotConnected = 1, + PicamShutterStatus_Connected = 2, + PicamShutterStatus_Overheated = 3 +} PicamShutterStatus; /* (4) */ /*----------------------------------------------------------------------------*/ typedef enum PicamShutterTimingMode { @@ -1143,6 +1546,19 @@ typedef enum PicamShutterTimingMode PicamShutterTimingMode_OpenBeforeTrigger = 4 } PicamShutterTimingMode; /* (5) */ /*----------------------------------------------------------------------------*/ +typedef enum PicamShutterType +{ + PicamShutterType_None = 1, + PicamShutterType_VincentCS25 = 2, + PicamShutterType_VincentCS45 = 3, + PicamShutterType_VincentCS90 = 9, + PicamShutterType_VincentDSS10 = 8, + PicamShutterType_VincentVS25 = 4, + PicamShutterType_VincentVS35 = 5, + PicamShutterType_ProntorMagnetic0 = 6, + PicamShutterType_ProntorMagneticE40 = 7 +} PicamShutterType; /* (10) */ +/*----------------------------------------------------------------------------*/ typedef enum PicamTimeStampsMask { PicamTimeStampsMask_None = 0x0, @@ -1158,26 +1574,36 @@ typedef enum PicamTriggerCoupling /*----------------------------------------------------------------------------*/ typedef enum PicamTriggerDetermination { - PicamTriggerDetermination_PositivePolarity = 1, - PicamTriggerDetermination_NegativePolarity = 2, - PicamTriggerDetermination_RisingEdge = 3, - PicamTriggerDetermination_FallingEdge = 4 -} PicamTriggerDetermination; /* (5) */ + PicamTriggerDetermination_PositivePolarity = 1, + PicamTriggerDetermination_NegativePolarity = 2, + PicamTriggerDetermination_RisingEdge = 3, + PicamTriggerDetermination_FallingEdge = 4, + PicamTriggerDetermination_AlternatingEdgeRising = 5, + PicamTriggerDetermination_AlternatingEdgeFalling = 6 +} PicamTriggerDetermination; /* (7) */ /*----------------------------------------------------------------------------*/ typedef enum PicamTriggerResponse { PicamTriggerResponse_NoResponse = 1, + PicamTriggerResponse_StartOnSingleTrigger = 5, PicamTriggerResponse_ReadoutPerTrigger = 2, PicamTriggerResponse_ShiftPerTrigger = 3, - PicamTriggerResponse_ExposeDuringTriggerPulse = 4, - PicamTriggerResponse_StartOnSingleTrigger = 5 -} PicamTriggerResponse; /* (6) */ + PicamTriggerResponse_GatePerTrigger = 6, + PicamTriggerResponse_ExposeDuringTriggerPulse = 4 +} PicamTriggerResponse; /* (7) */ /*----------------------------------------------------------------------------*/ typedef enum PicamTriggerSource { - PicamTriggerSource_External = 1, - PicamTriggerSource_Internal = 2 -} PicamTriggerSource; /* (3) */ + PicamTriggerSource_None = 3, + PicamTriggerSource_Internal = 2, + PicamTriggerSource_External = 1 +} PicamTriggerSource; /* (4) */ +/*----------------------------------------------------------------------------*/ +typedef enum PicamTriggerStatus +{ + PicamTriggerStatus_NotConnected = 1, + PicamTriggerStatus_Connected = 2 +} PicamTriggerStatus; /* (3) */ /*----------------------------------------------------------------------------*/ typedef enum PicamTriggerTermination { @@ -1185,10 +1611,16 @@ typedef enum PicamTriggerTermination PicamTriggerTermination_HighImpedance = 2 } PicamTriggerTermination; /* (3) */ /*----------------------------------------------------------------------------*/ -/* Camera Parameter Values - Default -----------------------------------------*/ +typedef enum PicamVacuumStatus +{ + PicamVacuumStatus_Sufficient = 1, + PicamVacuumStatus_Low = 2 +} PicamVacuumStatus; /* (3) */ +/*----------------------------------------------------------------------------*/ +/* Camera/Accessory Parameter Values - Default -------------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterIntegerDefaultValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piint* value ); /*----------------------------------------------------------------------------*/ @@ -1198,7 +1630,7 @@ PICAM_API Picam_GetParameterLargeIntegerDefaultValue( pi64s* value ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterFloatingPointDefaultValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piflt* value ); /*----------------------------------------------------------------------------*/ @@ -1217,10 +1649,13 @@ PICAM_API Picam_GetParameterModulationsDefaultValue( PicamParameter parameter, const PicamModulations** value ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ -/* Camera Parameter Values - Online ------------------------------------------*/ +PICAM_API Picam_RestoreParametersToDefaultValues( + PicamHandle camera_or_accessory ); +/*----------------------------------------------------------------------------*/ +/* Camera/Accessory Parameter Values - Online --------------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_CanSetParameterOnline( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, pibln* onlineable ); /*----------------------------------------------------------------------------*/ @@ -1239,57 +1674,90 @@ PICAM_API Picam_SetParameterPulseValueOnline( PicamParameter parameter, const PicamPulse* value ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Values - Reading -----------------------------------------*/ +/* Camera/Accessory Parameter Values - Reading -------------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_CanReadParameter( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, pibln* readable ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_ReadParameterIntegerValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piint* value ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_ReadParameterFloatingPointValue( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piflt* value ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Information - Available Parameters -----------------------*/ +/* Camera/Accessory Parameter Values - Status Waiting ------------------------*/ +/*----------------------------------------------------------------------------*/ +PICAM_API Picam_CanWaitForStatusParameter( + PicamHandle camera_or_accessory, + PicamParameter parameter, + pibln* waitable ); +/*----------------------------------------------------------------------------*/ +typedef struct PicamStatusPurview +{ + const piint* values_array; + piint values_count; +} PicamStatusPurview; +/*----------------------------------------------------------------------------*/ +PICAM_API Picam_DestroyStatusPurviews( + const PicamStatusPurview* purviews_array ); +/*----------------------------------------------------------------------------*/ +PICAM_API Picam_GetStatusParameterPurview( + PicamHandle camera_or_accessory, + PicamParameter parameter, + const PicamStatusPurview** purview ); /* ALLOCATES */ +/*----------------------------------------------------------------------------*/ +PICAM_API Picam_EstimateTimeToStatusParameterValue( + PicamHandle camera_or_accessory, + PicamParameter parameter, + piint value, + piint* estimated_time ); +/*----------------------------------------------------------------------------*/ +PICAM_API Picam_WaitForStatusParameterValue( + PicamHandle camera_or_accessory, + PicamParameter parameter, + piint value, + piint time_out ); +/*----------------------------------------------------------------------------*/ +/* Camera/Accessory Parameter Information - Available Parameters -------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_DestroyParameters( const PicamParameter* parameter_array ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameters( - PicamHandle camera, + PicamHandle camera_or_accessory, const PicamParameter** parameter_array, piint* parameter_count ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ PICAM_API Picam_DoesParameterExist( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, pibln* exists ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Information - Relevance ----------------------------------*/ +/* Camera/Accessory Parameter Information - Relevance ------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_IsParameterRelevant( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, pibln* relevant ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Information - Value Type ---------------------------------*/ +/* Camera/Accessory Parameter Information - Value Type -----------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterValueType( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamValueType* type ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterEnumeratedType( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamEnumeratedType* type ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Information - Value Access -------------------------------*/ +/* Camera/Accessory Parameter Information - Value Access ---------------------*/ /*----------------------------------------------------------------------------*/ typedef enum PicamValueAccess { @@ -1299,18 +1767,18 @@ typedef enum PicamValueAccess } PicamValueAccess; /* (4) */ /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterValueAccess( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamValueAccess* access ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Constraints - Constraint Type ----------------------------*/ +/* Camera/Accessory Parameter Constraints - Constraint Type ------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterConstraintType( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamConstraintType* type ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Constraints - Enumerated Types ---------------------------*/ +/* Camera/Accessory Parameter Constraints - Enumerated Types -----------------*/ /*----------------------------------------------------------------------------*/ typedef enum PicamConstraintScope { @@ -1331,7 +1799,7 @@ typedef enum PicamConstraintCategory PicamConstraintCategory_Recommended = 3 } PicamConstraintCategory; /* (4) */ /*----------------------------------------------------------------------------*/ -/* Camera Parameter Constraints - Collection ---------------------------------*/ +/* Camera/Accessory Parameter Constraints - Collection -----------------------*/ /*----------------------------------------------------------------------------*/ typedef struct PicamCollectionConstraint { @@ -1345,12 +1813,12 @@ PICAM_API Picam_DestroyCollectionConstraints( const PicamCollectionConstraint* constraint_array ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterCollectionConstraint( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamConstraintCategory category, const PicamCollectionConstraint** constraint ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ -/* Camera Parameter Constraints - Range --------------------------------------*/ +/* Camera/Accessory Parameter Constraints - Range ----------------------------*/ /*----------------------------------------------------------------------------*/ typedef struct PicamRangeConstraint { @@ -1370,12 +1838,12 @@ PICAM_API Picam_DestroyRangeConstraints( const PicamRangeConstraint* constraint_array ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_GetParameterRangeConstraint( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamConstraintCategory category, const PicamRangeConstraint** constraint ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ -/* Camera Parameter Constraints - Regions Of Interest ------------------------*/ +/* Camera Parameter Constraints - Regions of Interest ------------------------*/ /*----------------------------------------------------------------------------*/ typedef enum PicamRoisConstraintRulesMask { @@ -1417,13 +1885,13 @@ PICAM_API Picam_GetParameterRoisConstraint( /*----------------------------------------------------------------------------*/ typedef struct PicamPulseConstraint { - PicamConstraintScope scope; - PicamConstraintSeverity severity; - pibln empty_set; - PicamRangeConstraint delay_constraint; - PicamRangeConstraint width_constraint; - piflt minimum_duration; - piflt maximum_duration; + PicamConstraintScope scope; + PicamConstraintSeverity severity; + pibln empty_set; + PicamRangeConstraint delay_constraint; + PicamRangeConstraint width_constraint; + piflt minimum_duration; + piflt maximum_duration; } PicamPulseConstraint; /*----------------------------------------------------------------------------*/ PICAM_API Picam_DestroyPulseConstraints( @@ -1458,14 +1926,14 @@ PICAM_API Picam_GetParameterModulationsConstraint( PicamConstraintCategory category, const PicamModulationsConstraint** constraint ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ -/* Parameter Commitment ------------------------------------------------------*/ +/* Camera/Accessory Parameter Commitment -------------------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API Picam_AreParametersCommitted( - PicamHandle camera, + PicamHandle camera_or_accessory, pibln* committed ); /*----------------------------------------------------------------------------*/ PICAM_API Picam_CommitParameters( - PicamHandle camera, + PicamHandle camera_or_accessory, const PicamParameter** failed_parameter_array, piint* failed_parameter_count ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ @@ -1481,7 +1949,7 @@ PICAM_API Picam_CommitParameters( /******************************************************************************/ /*----------------------------------------------------------------------------*/ -/* Acquisition Control -------------------------------------------------------*/ +/* Camera Acquisition Control ------------------------------------------------*/ /*----------------------------------------------------------------------------*/ typedef struct PicamAvailableData { @@ -1491,10 +1959,13 @@ typedef struct PicamAvailableData /*----------------------------------------------------------------------------*/ typedef enum PicamAcquisitionErrorsMask { - PicamAcquisitionErrorsMask_None = 0x0, - PicamAcquisitionErrorsMask_DataLost = 0x1, - PicamAcquisitionErrorsMask_ConnectionLost = 0x2 -} PicamAcquisitionErrorsMask; /* (0x4) */ + PicamAcquisitionErrorsMask_None = 0x00, + PicamAcquisitionErrorsMask_CameraFaulted = 0x10, + PicamAcquisitionErrorsMask_ConnectionLost = 0x02, + PicamAcquisitionErrorsMask_ShutterOverheated = 0x08, + PicamAcquisitionErrorsMask_DataLost = 0x01, + PicamAcquisitionErrorsMask_DataNotArriving = 0x04 +} PicamAcquisitionErrorsMask; /* (0x20) */ /*----------------------------------------------------------------------------*/ PICAM_API Picam_Acquire( PicamHandle camera, @@ -1532,4 +2003,4 @@ PICAM_API Picam_WaitForAcquisitionUpdate( } /* end extern "C" */ #endif -#endif +#endif \ No newline at end of file diff --git a/PICamSupport/picam_advanced.h b/PICamSupport/picam_advanced.h index 6ed89b1..6016c8a 100644 --- a/PICamSupport/picam_advanced.h +++ b/PICamSupport/picam_advanced.h @@ -2,7 +2,7 @@ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ -/* picam_advanced.h - Princeton Instruments Advanced Camera Control API */ +/* picam_advanced.h - Teledyne Princeton Instruments Advanced Control API */ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ @@ -24,30 +24,32 @@ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ -/* Plug 'n Play Discovery, Camera Information and Access */ +/* Camera Plug 'n Play Discovery, Access and Information */ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /*----------------------------------------------------------------------------*/ -/* Camera Plug 'n Play Discovery ---------------------------------------------*/ +/* Camera/Accessory Plug 'n Play Discovery -----------------------------------*/ /*----------------------------------------------------------------------------*/ typedef enum PicamDiscoveryAction { - PicamDiscoveryAction_Found = 1, - PicamDiscoveryAction_Lost = 2 -} PicamDiscoveryAction; /* (3) */ + PicamDiscoveryAction_Found = 1, + PicamDiscoveryAction_Lost = 2, + PicamDiscoveryAction_Faulted = 3 +} PicamDiscoveryAction; /* (4) */ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL* PicamDiscoveryCallback)( const PicamCameraID* id, PicamHandle device, PicamDiscoveryAction action ); /*----------------------------------------------------------------------------*/ -PICAM_API PicamAdvanced_RegisterForDiscovery( PicamDiscoveryCallback discover ); +PICAM_API PicamAdvanced_RegisterForDiscovery( + PicamDiscoveryCallback discover ); /* ASYNC */ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_UnregisterForDiscovery( - PicamDiscoveryCallback discover ); + PicamDiscoveryCallback discover ); /* ASYNC */ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_DiscoverCameras( void ); /*----------------------------------------------------------------------------*/ @@ -55,7 +57,19 @@ PICAM_API PicamAdvanced_StopDiscoveringCameras( void ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_IsDiscoveringCameras( pibln* discovering ); /*----------------------------------------------------------------------------*/ -/* Camera Access -------------------------------------------------------------*/ +/* Camera/Accessory Access ---------------------------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef enum PicamHandleType +{ + PicamHandleType_CameraDevice = 1, + PicamHandleType_CameraModel = 2, + PicamHandleType_Accessory = 4, + PicamHandleType_EMCalibration = 3 +} PicamHandleType; /* (5) */ +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_GetHandleType( + PicamHandle handle, + PicamHandleType* type ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_OpenCameraDevice( const PicamCameraID* id, @@ -75,21 +89,15 @@ PICAM_API PicamAdvanced_GetCameraDevice( PicamHandle camera, PicamHandle* device ); /*----------------------------------------------------------------------------*/ -typedef enum PicamHandleType -{ - PicamHandleType_CameraDevice = 1, - PicamHandleType_CameraModel = 2 -} PicamHandleType; /* (3) */ +/* Camera/Accessory Information - User State ---------------------------------*/ /*----------------------------------------------------------------------------*/ -PICAM_API PicamAdvanced_GetHandleType( - PicamHandle camera, - PicamHandleType* type ); -/*----------------------------------------------------------------------------*/ -/* Camera Information - User State -------------------------------------------*/ -/*----------------------------------------------------------------------------*/ -PICAM_API PicamAdvanced_GetUserState( PicamHandle camera, void** user_state ); +PICAM_API PicamAdvanced_GetUserState( + PicamHandle camera_or_accessory, + void** user_state ); /*----------------------------------------------------------------------------*/ -PICAM_API PicamAdvanced_SetUserState( PicamHandle camera, void* user_state ); +PICAM_API PicamAdvanced_SetUserState( + PicamHandle camera_or_accessory, + void* user_state ); /*----------------------------------------------------------------------------*/ /* Camera Information - Pixel Defects ----------------------------------------*/ /*----------------------------------------------------------------------------*/ @@ -102,23 +110,23 @@ typedef struct PicamPixelLocation typedef struct PicamColumnDefect { PicamPixelLocation start; - piint height; + piint height; } PicamColumnDefect; /*----------------------------------------------------------------------------*/ typedef struct PicamRowDefect { PicamPixelLocation start; - piint width; + piint width; } PicamRowDefect; /*----------------------------------------------------------------------------*/ typedef struct PicamPixelDefectMap { - const PicamColumnDefect* column_defect_array; - piint column_defect_count; - const PicamRowDefect* row_defect_array; - piint row_defect_count; + const PicamColumnDefect* column_defect_array; + piint column_defect_count; + const PicamRowDefect* row_defect_array; + piint row_defect_count; const PicamPixelLocation* point_defect_array; - piint point_defect_count; + piint point_defect_count; } PicamPixelDefectMap; /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_DestroyPixelDefectMaps( @@ -128,37 +136,76 @@ PICAM_API PicamAdvanced_GetPixelDefectMap( PicamHandle camera, const PicamPixelDefectMap** pixel_defect_map ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ +/* Camera Information - Star Defects -----------------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct PicamStarDefect +{ + PicamPixelLocation center; + pi32f bias; + pi32f adjacent_factor; + pi32f diagonal_factor; +} PicamStarDefect; +/*----------------------------------------------------------------------------*/ +typedef struct PicamStarDefectMap +{ + piint id; + const PicamStarDefect* star_defect_array; + piint star_defect_count; +} PicamStarDefectMap; +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_DestroyStarDefectMaps( + const PicamStarDefectMap* star_defect_map_array ); +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_GetStarDefectMap( + PicamHandle camera, + const PicamStarDefectMap** star_defect_map ); /* ALLOCATES */ +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_GetStarDefectMaps( + PicamHandle camera, + const PicamStarDefectMap** star_defect_map_array, + piint* star_defect_map_count ); /* ALLOCATES */ +/*----------------------------------------------------------------------------*/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ -/* Camera Parameter Values, Information, Constraints and Commitment */ +/* Camera/Accessory Parameter Values, Information, Constraints and Commitment */ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /*----------------------------------------------------------------------------*/ -/* Camera Parameters ---------------------------------------------------------*/ +/* Camera/Accessory Parameters -----------------------------------------------*/ /*----------------------------------------------------------------------------*/ -/* Camera Parameter Values - Integer -----------------------------------------*/ +/* Camera/Accessory Parameter Values - Integer -------------------------------*/ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL* PicamIntegerValueChangedCallback)( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piint value ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_RegisterForIntegerValueChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamIntegerValueChangedCallback changed ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_UnregisterForIntegerValueChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamIntegerValueChangedCallback changed ); /*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_RegisterForExtrinsicIntegerValueChanged( + PicamHandle device_or_accessory, + PicamParameter parameter, + PicamIntegerValueChangedCallback changed ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_UnregisterForExtrinsicIntegerValueChanged( + PicamHandle device_or_accessory, + PicamParameter parameter, + PicamIntegerValueChangedCallback changed ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ /* Camera Parameter Values - Large Integer -----------------------------------*/ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL* PicamLargeIntegerValueChangedCallback)( @@ -176,23 +223,33 @@ PICAM_API PicamAdvanced_UnregisterForLargeIntegerValueChanged( PicamParameter parameter, PicamLargeIntegerValueChangedCallback changed ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Values - Floating Point ----------------------------------*/ +/* Camera/Accessory Parameter Values - Floating Point ------------------------*/ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL* PicamFloatingPointValueChangedCallback)( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, piflt value ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_RegisterForFloatingPointValueChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamFloatingPointValueChangedCallback changed ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_UnregisterForFloatingPointValueChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamFloatingPointValueChangedCallback changed ); /*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_RegisterForExtrinsicFloatingPointValueChanged( + PicamHandle device_or_accessory, + PicamParameter parameter, + PicamFloatingPointValueChangedCallback changed ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_UnregisterForExtrinsicFloatingPointValueChanged( + PicamHandle device_or_accessory, + PicamParameter parameter, + PicamFloatingPointValueChangedCallback changed ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ /* Camera Parameter Values - Regions of Interest -----------------------------*/ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL* PicamRoisValueChangedCallback)( @@ -244,41 +301,61 @@ PICAM_API PicamAdvanced_UnregisterForModulationsValueChanged( PicamParameter parameter, PicamModulationsValueChangedCallback changed ); /*----------------------------------------------------------------------------*/ +/* Camera/Accessory Parameter Values - Status Waiting ------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef PicamError (PIL_CALL* PicamWhenStatusParameterValueCallback)( + PicamHandle device_or_accessory, + PicamParameter parameter, + piint value, + PicamError error ); +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_NotifyWhenStatusParameterValue( + PicamHandle device_or_accessory, + PicamParameter parameter, + piint value, + PicamWhenStatusParameterValueCallback when ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_CancelNotifyWhenStatusParameterValue( + PicamHandle device_or_accessory, + PicamParameter parameter, + piint value, + PicamWhenStatusParameterValueCallback when ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ /* Camera Parameter Information - Relevance ----------------------------------*/ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL* PicamIsRelevantChangedCallback)( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, pibln relevant ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_RegisterForIsRelevantChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamIsRelevantChangedCallback changed ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_UnregisterForIsRelevantChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamIsRelevantChangedCallback changed ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Information - Value Access -------------------------------*/ +/* Camera/Accessory Parameter Information - Value Access ---------------------*/ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL* PicamValueAccessChangedCallback)( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamValueAccess access ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_RegisterForValueAccessChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamValueAccessChangedCallback changed ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_UnregisterForValueAccessChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamValueAccessChangedCallback changed ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Information - Dynamics -----------------------------------*/ +/* Camera/Accessory Parameter Information - Dynamics -------------------------*/ /*----------------------------------------------------------------------------*/ typedef enum PicamDynamicsMask { @@ -290,57 +367,62 @@ typedef enum PicamDynamicsMask } PicamDynamicsMask; /* (0x10) */ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_GetParameterDynamics( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamDynamicsMask* dynamics ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Constraints - Collection ---------------------------------*/ +PICAM_API PicamAdvanced_GetParameterExtrinsicDynamics( + PicamHandle camera_or_accessory, + PicamParameter parameter, + PicamDynamicsMask* extrinsic ); +/*----------------------------------------------------------------------------*/ +/* Camera/Accessory Parameter Constraints - Collection -----------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_GetParameterCollectionConstraints( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, const PicamCollectionConstraint** constraint_array, piint* constraint_count ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL*PicamDependentCollectionConstraintChangedCallback)( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, const PicamCollectionConstraint* constraint ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_RegisterForDependentCollectionConstraintChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamDependentCollectionConstraintChangedCallback changed ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_UnregisterForDependentCollectionConstraintChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamDependentCollectionConstraintChangedCallback changed ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Constraints - Range --------------------------------------*/ +/* Camera/Accessory Parameter Constraints - Range ----------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_GetParameterRangeConstraints( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, const PicamRangeConstraint** constraint_array, piint* constraint_count ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL*PicamDependentRangeConstraintChangedCallback)( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, const PicamRangeConstraint* constraint ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_RegisterForDependentRangeConstraintChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamDependentRangeConstraintChangedCallback changed ); /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_UnregisterForDependentRangeConstraintChanged( - PicamHandle camera, + PicamHandle camera_or_accessory, PicamParameter parameter, PicamDependentRangeConstraintChangedCallback changed ); /*----------------------------------------------------------------------------*/ -/* Camera Parameter Constraints - Regions Of Interest ------------------------*/ +/* Camera Parameter Constraints - Regions of Interest ------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_GetParameterRoisConstraints( PicamHandle camera, @@ -411,7 +493,7 @@ PICAM_API PicamAdvanced_UnregisterForDependentModulationsConstraintChanged( /*----------------------------------------------------------------------------*/ /* Camera Commitment ---------------------------------------------------------*/ /*----------------------------------------------------------------------------*/ -/* Parameter Validation ------------------------------------------------------*/ +/* Camera Parameter Validation -----------------------------------------------*/ /*----------------------------------------------------------------------------*/ typedef struct PicamValidationResult { @@ -447,7 +529,7 @@ PICAM_API PicamAdvanced_ValidateParameters( PicamHandle model, const PicamValidationResults** results ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ -/* Dependent Parameter Validation --------------------------------------------*/ +/* Camera Dependent Parameter Validation -------------------------------------*/ /*----------------------------------------------------------------------------*/ typedef struct PicamFailedDependentParameter { @@ -472,7 +554,7 @@ PICAM_API PicamAdvanced_ValidateDependentParameter( PicamParameter parameter, const PicamDependentValidationResult** result ); /* ALLOCATES */ /*----------------------------------------------------------------------------*/ -/* Parameter Commitment ------------------------------------------------------*/ +/* Camera Parameter Commitment -----------------------------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_CommitParametersToCameraDevice( PicamHandle model ); /*----------------------------------------------------------------------------*/ @@ -495,7 +577,7 @@ PICAM_API PicamAdvanced_RefreshParametersFromCameraDevice( /******************************************************************************/ /*----------------------------------------------------------------------------*/ -/* Acquisition Setup - Buffer ------------------------------------------------*/ +/* Camera Acquisition Setup - Buffer -----------------------------------------*/ /*----------------------------------------------------------------------------*/ typedef struct PicamAcquisitionBuffer { @@ -511,7 +593,9 @@ PICAM_API PicamAdvanced_SetAcquisitionBuffer( PicamHandle device, const PicamAcquisitionBuffer* buffer ); /*----------------------------------------------------------------------------*/ -/* Acquisition Setup - Notification ------------------------------------------*/ +/* Camera Notification -------------------------------------------------------*/ +/*----------------------------------------------------------------------------*/ +/* Camera Notification - Acquisition -----------------------------------------*/ /*----------------------------------------------------------------------------*/ typedef PicamError (PIL_CALL* PicamAcquisitionUpdatedCallback)( PicamHandle device, @@ -520,18 +604,63 @@ typedef PicamError (PIL_CALL* PicamAcquisitionUpdatedCallback)( /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_RegisterForAcquisitionUpdated( PicamHandle device, - PicamAcquisitionUpdatedCallback updated ); + PicamAcquisitionUpdatedCallback updated ); /* ASYNC */ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_UnregisterForAcquisitionUpdated( PicamHandle device, - PicamAcquisitionUpdatedCallback updated ); + PicamAcquisitionUpdatedCallback updated ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ +/* Camera Notification - Acquisition States ----------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef enum PicamAcquisitionState +{ + PicamAcquisitionState_ReadoutStarted = 1, + PicamAcquisitionState_ReadoutEnded = 2 +} PicamAcquisitionState; /* (3) */ +/*----------------------------------------------------------------------------*/ +typedef enum PicamAcquisitionStateErrorsMask +{ + PicamAcquisitionStateErrorsMask_None = 0x0, + PicamAcquisitionStateErrorsMask_LostCount = 0x1 +} PicamAcquisitionStateErrorsMask; /* (0x2) */ +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_CanRegisterForAcquisitionStateUpdated( + PicamHandle device, + PicamAcquisitionState state, + pibln* detectable ); /*----------------------------------------------------------------------------*/ -/* Acquisition Control -------------------------------------------------------*/ +typedef struct PicamAcquisitionStateCounters +{ + pi64s readout_started_count; + pi64s readout_ended_count; +} PicamAcquisitionStateCounters; +/*----------------------------------------------------------------------------*/ +typedef PicamError (PIL_CALL* PicamAcquisitionStateUpdatedCallback)( + PicamHandle device, + PicamAcquisitionState current, + const PicamAcquisitionStateCounters* counters, + PicamAcquisitionStateErrorsMask errors ); +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_RegisterForAcquisitionStateUpdated( + PicamHandle device, + PicamAcquisitionState state, + PicamAcquisitionStateUpdatedCallback updated ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_UnregisterForAcquisitionStateUpdated( + PicamHandle device, + PicamAcquisitionState state, + PicamAcquisitionStateUpdatedCallback updated ); /* ASYNC */ +/*----------------------------------------------------------------------------*/ +/* Camera Acquisition Control ------------------------------------------------*/ /*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_HasAcquisitionBufferOverrun( PicamHandle device, pibln* overran ); /*----------------------------------------------------------------------------*/ +PICAM_API PicamAdvanced_CanClearReadoutCountOnline( + PicamHandle device, + pibln* clearable ); +/*----------------------------------------------------------------------------*/ PICAM_API PicamAdvanced_ClearReadoutCountOnline( PicamHandle device, pibln* cleared ); @@ -544,4 +673,4 @@ PICAM_API PicamAdvanced_ClearReadoutCountOnline( } /* end extern "C" */ #endif -#endif +#endif \ No newline at end of file diff --git a/PICamSupport/picam_em_calibration.h b/PICamSupport/picam_em_calibration.h index a0e6e6e..d85f767 100644 --- a/PICamSupport/picam_em_calibration.h +++ b/PICamSupport/picam_em_calibration.h @@ -2,7 +2,7 @@ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ -/* picam_em_calibration.h - Princeton Instruments EM Calibration API */ +/* picam_em_calibration.h - Teledyne Princeton Instruments EM Calibration API */ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ @@ -122,4 +122,4 @@ PICAM_API PicamEMCalibration_Calibrate( } /* end extern "C" */ #endif -#endif +#endif \ No newline at end of file diff --git a/PICamSupport/picam_special.h b/PICamSupport/picam_special.h index 3b16b46..3550fd1 100644 --- a/PICamSupport/picam_special.h +++ b/PICamSupport/picam_special.h @@ -2,7 +2,7 @@ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ -/* picam_special.h - Princeton Instruments Special Functionality API */ +/* picam_special.h - Teledyne Princeton Instruments Special Functionality API */ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ @@ -47,4 +47,4 @@ PICAM_API PicamSpecial_EraseResidual( PicamHandle device ); } /* end extern "C" */ #endif -#endif +#endif \ No newline at end of file diff --git a/PICamSupport/pil_platform.h b/PICamSupport/pil_platform.h index d6afe82..ffae989 100644 --- a/PICamSupport/pil_platform.h +++ b/PICamSupport/pil_platform.h @@ -2,10 +2,11 @@ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ -/* pil_platform.h - Princeton Instruments Library Platform Support */ +/* pil_platform.h - Teledyne Princeton Instruments Library Platform Support */ /* */ /* Supported Platforms: */ /* - PIL_WIN64 */ +/* - PIL_WIN32 */ /* - PIL_LIN64 */ /******************************************************************************/ /******************************************************************************/ @@ -19,6 +20,8 @@ /******************************************************************************/ #if defined _WIN64 # define PIL_WIN64 +#elif defined _WIN32 +# define PIL_WIN32 #elif defined __linux__ && defined __x86_64__ # define PIL_LIN64 #else @@ -51,6 +54,17 @@ typedef unsigned char pibyte; /* byte native to platform */ typedef unsigned long long pi64u; /* 64-bit unsigned integer */ typedef float pi32f; /* 32-bit floating point */ typedef double pi64f; /* 64-bit floating point */ +#elif defined PIL_WIN32 + typedef signed char pi8s; /* 8-bit signed integer */ + typedef unsigned char pi8u; /* 8-bit unsigned integer */ + typedef short pi16s; /* 16-bit signed integer */ + typedef unsigned short pi16u; /* 16-bit unsigned integer */ + typedef long pi32s; /* 32-bit signed integer */ + typedef unsigned long pi32u; /* 32-bit unsigned integer */ + typedef long long pi64s; /* 64-bit signed integer */ + typedef unsigned long long pi64u; /* 64-bit unsigned integer */ + typedef float pi32f; /* 32-bit floating point */ + typedef double pi64f; /* 64-bit floating point */ #elif defined PIL_LIN64 typedef signed char pi8s; /* 8-bit signed integer */ typedef unsigned char pi8u; /* 8-bit unsigned integer */ @@ -74,6 +88,11 @@ typedef unsigned char pibyte; /* byte native to platform */ # define PIL_EXPORT __declspec(dllexport) # define PIL_IMPORT __declspec(dllimport) # define PIL_CALL __stdcall +#elif defined PIL_WIN32 +# define PIL_EXPORT_DEF extern "C" +# define PIL_EXPORT __declspec(dllexport) +# define PIL_IMPORT __declspec(dllimport) +# define PIL_CALL __stdcall #elif defined PIL_LIN64 # define PIL_EXPORT_DEF extern "C" __attribute__((visibility("default"))) # define PIL_EXPORT __attribute__((visibility("default"))) @@ -83,4 +102,4 @@ typedef unsigned char pibyte; /* byte native to platform */ # error PI Library - Platform Missing Function Declaration Definition #endif -#endif +#endif \ No newline at end of file diff --git a/README.md b/README.md index dfa09a3..c9d25f8 100644 --- a/README.md +++ b/README.md @@ -3,33 +3,51 @@ ADPICam An [EPICS](http://www.aps.anl.gov/epics/) [areaDetector](https://github.com/areaDetector/areaDetector/blob/master/README.md) driver for Cameras from Princeton Instruments that support the PICAM library. -[PICam](ftp://ftp.princetoninstruments.com/public/Manuals/Princeton%20Instruments/PICam%20User%20Manual.pdf) +[PICam Programmer's Manual](https://www.princetoninstruments.com/wp-content/uploads/2022/02/PICAM-5.x-Programmers-Manual-Issue-8-4411-0161-3.pdf) -This driver is based on the PICAM Virtual Camera Library. It runs on 64 bit Windows (Vista, 7 & 8) and 64 bit linux. Detectors supported by the vendor PICAM driver library include: +This driver is based on the PICAM Virtual Camera Library. It runs on 64 bit Windows (7, 8, 10) and 64 bit linux. Detectors supported by the vendor PICAM driver library include: +* BLAZE +* Lansis * PI-MAX3 * PI-MAX4, PI-MAX4:RF, PI-MAX4:EM -* PIoNIR/NIRvana -* NIRvana-LN +* PI-MTE3 +* PIoNIR, NIRvana, NIRvana-HS, NIRvana-LN * PIXIS, PIXIS-XB, PIXIS-XF, PIXIS-XO -* ProEM -* ProEM+ -* PyLoN -* PyLoN-IR -* Quad-RO - -This detector has been tested with a Quad-RO camera and to some degree with the -PIXIS Demo camera (soft camera in the library). Most notably missing from the -library so far are the Pulse and Modulation Parameters used mostly in the +* ProEM-HS, ProEM, ProEM+ +* PyLoN, PyLoN-IR +* Quad-RO (not supported in the Linux SDK) +* SOPHIA + +This detector has been tested with Pixis, ProEM-HS, Blaze, SOPHIA, PI-MET3, and Quad-RO cameras. Virutal demo models have also been tested. Most notably missing from the library so far are the Pulse and Modulation Parameters used mostly in the PI-MAX3 & 4 cameras. ### Building on Linux ADPICam has been built on RHEL 8 and CentOS 7, and tested with a PI-MTE3 detector on RHEL 8. -Before building ADPICam on linux, you must first install the PICam SDK from Princeton Instruments ([available via a support request on their site](https://www.princetoninstruments.com/contact-software/)): +It has also been built on Ubuntu 22.04LTS (kernel 5.19.0-46-generic), with PICam SDK version 5.13.3.2211 and tested with Pixis, ProEM-HS, Blaze, and SOPHIA cameras. +** +/Ubuntu 22.04 LTS specific notes +For proper operation of USB and USB3 detectors with Ubuntu 22.04LTS, libusb needs to be downgraded to 1.0.23 +To downgrade: + - check installed version with apt-cache policy libusb-1.0* + - LTS22.04 should have 2:1.0.25-1ubuntu2 by default + - uninstall libusb with apt remove libusb-1.0-0 + - may also need to remove dev and doc packages if those are installed + - download 1.0.23's deb package from here: https://ubuntu.pkgs.org/20.04/ubuntu-main-amd64/libusb-1.0-0_1.0.23-2build1_amd64.deb.html + - install with apt install ./ + +apt-cache policy libusb-1.0* should now show 2:1.0.23-2build1 is now installed + +to keep libusb downgraded, mark libusb-1.0-0 for hold on apt -- that will allow you to upgrade everything else while freezing libusb: + sudo apt-mark hold libusb-1.0-0 +\Ubuntu 22.04 LTS specific notes +** + +Before building ADPICam on linux, you must first install the PICam SDK from Princeton Instruments (https://cdn.princetoninstruments.com/picam/picam_sdk.run): ``` -sudo bash Picam_SDK-v5.12.2.run +sudo bash picam_sdk.run ``` This should install libraries into `/opt/pleora` and `/opt/PrincetonInstrumnets`, along with some links in `/usr/local/lib`. To build ADPICam you will need to add read permissions to these locations to the specified user, or build and run as root. Additionally, make sure that /usr/local/lib is in your system library search path: