123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- //=================================================================================================
- /*!
- @file PegasusDefs.h
- @ingroup Software group
- @author Jean-Francois Hammond
- @brief Main API
- */
- //=================================================================================================
- /*=================================================================================================
- Copyright (C) 2011
- ANRAD Corporation
- This software is the sole property of ANRAD Corporation and may not be copied or
- reproduced in any way without prior written permission from ANRAD Corporation.
- This software is intended for use in systems produced by ANRAD Corporation.
- This software or any other copies thereof may not be provided or otherwise
- made available to any other person without written permission from ANRAD
- Corporation. No title to and ownership of the software is hereby transferred.
- The information in this software is subject to change without notice and
- should not be construed as a commitment by ANRAD Corporation.
- =================================================================================================*/
- #ifndef PegasusDefs_H
- #define PegasusDefs_H
- //
- //==================================== [ INCLUDE FILES ] ==========================================
- //
- //==================================== [ DEFINES ] ================================================
- #define PEGASUS_SHADING_EXTENSION_THRESHOLD 1000
- #define PEGASUS_SHADING_TABLE_SCALER 10
- #define PEGASUS_GENERAL_WARNING_CODE 0x01000000
- #define PEGASUS_GENERAL_MAJOR_CODE 0x02000000
- #define PEGASUS_GENERAL_FATAL_CODE 0x03000000
- #define PEGASUS_GENERAL_DETECTOR_CODE 0x00001000
- #define PEGASUS_GENERAL_ECLIPSE_CODE 0x00002000
- #define PEGASUS_GENERAL_PEGASUS_CODE 0x00004000
- /* This type defines the error types available. */
- typedef enum PEGASUS_ErrorCode
- {
- PEGASUS_SUCCESS = 0,
- PEGASUS_COMMAND_REJECT,
- PEGASUS_NO_IMPLEMENTATION,
- PEGASUS_GENERAL_WARNING,
- PEGASUS_WARNING_HIGH_TEMPERATURE,
- PEGASUS_WARNING_HARDWARE_NOT_READY,
- PEGASUS_WARNING_ECLIPSE_PROPERTY_NOT_ACCESSIBLE,
- PEGASUS_WARNING_NO_CALLBACK,
- PEGASUS_WARNING_TEST_ONLY,
- PEGASUS_WARNING_CANNOT_SKIP_EO_CONFIG,
- PEGASUS_WARNING_IMAGE_ABORTED,
- PEGASUS_WARNING_CALIBRATION_ABORTED,
- PEGASUS_WARNING_TOO_MANY_IMAGE_RECEIVED,
- PEGASUS_WARNING_HARD_DISK_SPACE_TOO_LOW,
- PEGASUS_WARNING_MISSING_POSTX_FRAME,
- PEGASUS_WARNING_IMAGE_RECOVERY_IS_NEEDED,
- PEGASUS_WARNING_INVALID_IMAGE_TAGLINE,
- PEGASUS_GENERAL_MAJOR,
- PEGASUS_MAJOR_PARAMETER_OUT_OF_RANGE_ERROR,
- PEGASUS_MAJOR_INVALID_PARAMETER_ERROR,
- PEGASUS_MAJOR_FILE_NOT_FOUND_ERROR,
- PEGASUS_MAJOR_FILE_ACCESS_FAILED_ERROR,
- PEGASUS_MAJOR_CALLBACK_NULL_ERROR,
- PEGASUS_MAJOR_TIMEOUT_ERROR,
- PEGASUS_MAJOR_OUT_OF_MEMORY_ERROR,
- PEGASUS_MAJOR_HIGH_VOLTAGE_ERROR,
- PEGASUS_MAJOR_VOLTAGE_ERROR,
- PEGASUS_MAJOR_COMMUNICATION_ERROR,
- PEGASUS_MAJOR_NVRAM_CORRUPTION_ERROR,
- PEGASUS_MAJOR_FLASH_CORRUPTION_ERROR,
- PEGASUS_MAJOR_HARDWARE_ERROR,
- PEGASUS_MAJOR_UNEXPECTED_EXCEPTION_ERROR,
- PEGASUS_MAJOR_HARDWARE_NOT_READY,
- PEGASUS_MAJOR_ECLIPSE_INITIALIZATION_ERROR,
- PEGASUS_MAJOR_FRAME_SEQUENCE_ERROR,
- PEGASUS_MAJOR_COMPUTING_AEC_DATA_ERROR,
- PEGASUS_MAJOR_COMPUTING_CORRECTED_IMAGE_ERROR,
- PEGASUS_MAJOR_COMPUTING_CALIBRATION_DATA_ERROR,
- PEGASUS_MAJOR_ECLIPSE_UNABLE_ADD_FRAME_ERROR,
- PEGASUS_MAJOR_GENERAL_ECLIPSE_ERROR,
- PEGASUS_MAJOR_IMAGE_NOT_ALLOCATED,
- PEGASUS_MAJOR_INVALID_CROP_DIMENSION_ERROR,
- PEGASUS_MAJOR_INVALID_STATE_ERROR,
- PEGASUS_MAJOR_IMAGE_LOST_ERROR,
- PEGASUS_MAJOR_SEQUENCE_ID_NOT_FOUND,
- PEGASUS_MAJOR_UNABLE_TO_RECOVER_IMAGE,
- PEGASUS_MAJOR_SERVICE_IMAGE_TYPE_MISMATCH,
- PEGASUS_MAJOR_EO_RAMPUP_FAIL,
- PEGASUS_GENERAL_FATAL,
- PEGASUS_FATAL_HARDWARE_ERROR,
- PEGASUS_FATAL_HIGH_TEMPERATURE_ERROR,
- PEGASUS_FATAL_INITIALIZATION_FILE_NOT_FOUND_ERROR,
- PEGASUS_FATAL_DETECTOR_ERROR,
- PEGASUS_FATAL_PANEL_ID_MISMATCH_ERROR,
- PEGASUS_FATAL_CONFIGURATION_MISMATCH_ERROR,
- PEGASUS_FATAL_IMAGE_TRANSFER_TEST_FAIL_ERROR,
- /* Must be the last */
- PEGASUS_MAX_ERROR_TYPE,
- // Out of range error code
- // We wish to keep backward compatibility, so we will not add value before PEGASUS_MAX_ERROR_TYPE
- // WARNING out of range error code
- PEGASUS_WARNING_DETECTOR_FALL_DOWN_TO_ONE_PORT = (1 + PEGASUS_GENERAL_WARNING_CODE + PEGASUS_GENERAL_DETECTOR_CODE),
-
- // MAJOR out of range error code
- PEGASUS_MAJOR_ARRAY_LENGTH_IS_TOO_SMALL = (1 + PEGASUS_GENERAL_MAJOR_CODE + PEGASUS_GENERAL_PEGASUS_CODE),
- PEGASUS_MAJOR_SERVER_NOT_STARTED = (2 + PEGASUS_GENERAL_MAJOR_CODE + PEGASUS_GENERAL_PEGASUS_CODE),
- PEGASUS_MAJOR_SERVER_LOST_COMM = (3 + PEGASUS_GENERAL_MAJOR_CODE + PEGASUS_GENERAL_PEGASUS_CODE),
- PEGASUS_MAJOR_IMAGES_ARE_PENDING_IN_MEMORY = (4 + PEGASUS_GENERAL_MAJOR_CODE + PEGASUS_GENERAL_PEGASUS_CODE),
- PEGASUS_MAJOR_TIMEOUT_WAITING_FOR_EXPOSURE = (5 + PEGASUS_GENERAL_MAJOR_CODE + PEGASUS_GENERAL_PEGASUS_CODE),
- PEGASUS_MAJOR_IMAGE_SATURATED_ERROR = (1 + PEGASUS_GENERAL_MAJOR_CODE + PEGASUS_GENERAL_ECLIPSE_CODE),
- // FATAL out of range error code
- } PEGASUS_ErrorCode;
- /* This type defines the event types available. */
- typedef enum PEGASUS_EventType
- {
- PEGASUS_NO_EVENT = 0, // Context is NULL
- PEGASUS_ERROR_EVENT, // Context is either NULL, or Context pointer is std::string*
- PEGASUS_INITIALIZATION_EVENT, // Context is NULL
- PEGASUS_SHUTDOWN_EVENT, // Context is NULL
- PEGASUS_CONTEXT_CHANGE_EVENT, // Context pointer is context = (PEGASUS_Context)pContext
- PEGASUS_SELF_TEST_EVENT, // Context pointer is selfTestType = (PEGASUS_SelfTestType)pContext
- PEGASUS_AEC_DATA_EVENT, // OBSELETE - Context pointer is PEGASUS_Image*
- PEGASUS_CORRECTED_IMAGE_EVENT, // OBSELETE - Context pointer is PEGASUS_Image*
- PEGASUS_ACQUIRE_DONE_EVENT, // OBSELETE - Context is NULL ; can be activated with enable_ACQUIRE_DONE_EVENT (will generated when X frame is received)
- PEGASUS_ACQUIRE_ABORT_EVENT, // OBSELETE - Context is NULL
- PEGASUS_CALIBRATION_ACQUIRE_READY_EVENT, // Context pointer is PEGASUS_ExposureData*
- PEGASUS_CALIBRATION_CORRECTED_IMAGE_EVENT, // OBSELETE - Context pointer is PEGASUS_Image*
- PEGASUS_CALIBRATION_DONE_EVENT, // Context is NULL
- PEGASUS_CALIBRATION_ABORT_EVENT, // Context is NULL
- PEGASUS_READY_FOR_EXPOSURE_EVENT, // OBSELETE - Context is NULL
- /* Must be the last */
- PEGASUS_MAX_EVENT_TYPE
- } PEGASUS_EventType;
- /* This type defines the multi event types available for continuous acquisition. */
- typedef enum PEGASUS_MultiEventType
- {
- PEGASUS_MULTI_READY_FOR_EXPOSURE_EVENT = 0,
- PEGASUS_MULTI_SEQUENCE_STARTED_EVENT,
- PEGASUS_MULTI_AEC_DATA_EVENT,
- PEGASUS_MULTI_CORRECTED_IMAGE_EVENT,
- PEGASUS_MULTI_SEQUENCE_DONE_EVENT,
- PEGASUS_MULTI_SEQUENCE_NOT_READY_EVENT,
- PEGASUS_MULTI_READY_FOR_PREPARE_FOR_EXPOSURE_EVENT,
- PEGASUS_MULTI_RAW_IMAGE_EVENT,
-
- /* Must be the last */
- PEGASUS_MAX_MULTI_EVENT_TYPE
- } PEGASUS_MultiEventType;
- /* This type defines the detector types available. OBSELETE with PEGASUS_FirmwareDetectorType and PEGASUS_ProductType*/
- typedef enum PEGASUS_DetectorType
- {
- PEGASUS_AXS_1824 = 0, /* AXS-1824 detector. */
- PEGASUS_AXS_2430, /* AXS-2430 detector. */
- PEGASUS_AXS_ScreenPlus, /* AXS-ScreenPlus detector. */
- /* Must be the last */
- PEGASUS_NB_DETECTOR_TYPE /* Defines the number of detector type values */
- } PEGASUS_DetectorType;
- /* This type defines the detector types available as define in firmware. */
- typedef enum PEGASUS_FirmwareDetectorType
- {
- PEGASUS_1824 = 0, /* 1824 detector. */
- PEGASUS_2430, /* 2430 detector. */
- /* Must be the last */
- PEGASUS_NB_FW_DETECTOR_TYPE /* Defines the number of detector type values */
- } PEGASUS_FirmwareDetectorType;
- /* This type defines the board types available. */
- typedef enum PEGASUS_BoardType
- {
- PEGASUS_Type0 = 0, /* 100-01230-02M or 100-01320-00B */
- PEGASUS_Type1, /* 100-01411-01A */
- PEGASUS_Type2, /* 100-01414-00A */
- PEGASUS_Type3, /* 100-01442-00 */
- PEGASUS_Type4, /* LMAM3-IZ85c */
- PEGASUS_Type5, /* cmos ?? */
- PEGASUS_Type6, /* LMAM3-DS85 */
- PEGASUS_Type7, /* LMAM3-IZ85c */
- /* Must be the last */
- PEGASUS_NB_BOARD_TYPE /* Defines the number of board type values */
- } PEGASUS_BoardType;
- /* This type defines the product types available. */
- typedef enum PEGASUS_ProductType
- {
- PEGASUS_PRODUCT_AXS_1824 = 0,
- PEGASUS_PRODUCT_AXS_1824V2,
- PEGASUS_PRODUCT_AXS_2430,
- PEGASUS_PRODUCT_AXS_2430V2,
- PEGASUS_PRODUCT_AXS_2430V3,
- PEGASUS_PRODUCT_AXS_SCREENPLUS,
- PEGASUS_PRODUCT_AXS_SCREENPLUSV2,
- PEGASUS_PRODUCT_AXS_FDI,
- PEGASUS_PRODUCT_AXS_FDIV2,
- PEGASUS_PRODUCT_LMAM3_IZ85C,
- PEGASUS_PRODUCT_LMAM3_DS85,
- PEGASUS_PRODUCT_LMAM3_DC50,
- /* Must be the last */
- PEGASUS_NB_PRODUCT_TYPE /* Defines the number of product type values */
- } PEGASUS_ProductType;
- /* This type defines the contexts available with PEGASUS */
- typedef enum PEGASUS_Context
- {
- PEGASUS_CONTEXT_CONTACT = 0,
- PEGASUS_CONTEXT_MAG,
- PEGASUS_CONTEXT_STEREO,
- PEGASUS_CONTEXT_TOMO1,
- PEGASUS_CONTEXT_TOMO2,
- PEGASUS_CONTEXT_TOMO3,
- PEGASUS_CONTEXT_MULTI1,
- PEGASUS_CONTEXT_MULTI2,
- PEGASUS_CONTEXT_TRUE_2D3D_1,
- PEGASUS_CONTEXT_TRUE_2D3D_2,
- PEGASUS_CONTEXT_TRUE_2D2D_1,
- PEGASUS_CONTEXT_TRUE_2D2D_2,
- PEGASUS_CONTEXT_TRUE_3D2D_1,
- PEGASUS_CONTEXT_TRUE_3D2D_2,
- /* Must be the last */
- PEGASUS_NB_CONTEXTS
- } PEGASUS_Context;
- // Replacement of earlier define for context
- #define PEGASUS_CONTEXT_TOMO PEGASUS_CONTEXT_TOMO1
- /* This type defines the detector states available. */
- typedef enum PEGASUS_DetectorState
- {
- PEGASUS_DETECTOR_STATE_NO_CHANGE = 0,
- PEGASUS_DETECTOR_BOOT_STATE,
- PEGASUS_DETECTOR_RECOVERY_STATE,
- PEGASUS_DETECTOR_IDLE_STATE,
- PEGASUS_DETECTOR_PRE_STUDY_STATE,
- PEGASUS_DETECTOR_ACQ_NOT_READY_STATE,
- PEGASUS_DETECTOR_ACQ_READY_STATE,
- PEGASUS_DETECTOR_ACQUISITION_STATE,
- PEGASUS_DETECTOR_POST_EXPOSURE_STATE,
- PEGASUS_DETECTOR_POST_STUDY_STATE,
- PEGASUS_DETECTOR_TEST_STATE,
- PEGASUS_DETECTOR_SERVICE_STATE,
- PEGASUS_DETECTOR_CALIB_STATE,
- PEGASUS_DETECTOR_ANY_STATE,
- /* Must be the last */
- PEGASUS_DETECTOR_NBR_STATES
- } PEGASUS_DetectorState;
- /* This type defines the PEGASUS states available. */
- typedef enum PEGASUS_State
- {
- PEGASUS_SERVICE_STATE = 0,
- PEGASUS_INITIALIZE_STATE,
- PEGASUS_IDLE_STATE,
- PEGASUS_ERROR_STATE,
- PEGASUS_SHUTDOWN_STATE,
- PEGASUS_CALIBRATION_STATE,
- PEGASUS_CALIBRATION_ADD_REJECT_STATE,
- PEGASUS_ACQUIRE_STATE,
- PEGASUS_CONTEXT_STATE,
- PEGASUS_SELF_TEST_STATE,
- PEGASUS_TEST_STATE,
- PEGASUS_ABORT_ACQUIRE_STATE,
- PEGASUS_ABORT_CALIBRATION_STATE,
- PEGASUS_DEBUG_DUMP_STATE,
- PEGASUS_AUTO_CALIBRATION_STATE,
- PEGASUS_PREPARE_ACQUIRE_STATE,
- PEGASUS_PREPARE_CALIBRATION_STATE,
- PEGASUS_CONTINUOUS_ACQUISITION_STATE,
- PEGASUS_RECOVERY_STATE,
- /* Must be the last */
- PEGASUS_MAX_STATE,
- } PEGASUS_State;
- /* This type defines the log level available. */
- typedef enum PEGASUS_LogLevel
- {
- PEGASUS_LOG_LEVEL_NORMAL = 0,
- PEGASUS_LOG_LEVEL_DEBUG,
- PEGASUS_LOG_LEVEL_ALL,
- /* Must be the last */
- PEGASUS_MAX_LOG_LEVEL
- } PEGASUS_LogLevel;
- /* This type defines the types of self test available. */
- typedef enum PEGASUS_SelfTestType
- {
- PEGASUS_SELF_TEST_TEST_EVENT = 0,
- PEGASUS_SELF_TEST_COMMUNICATION,
- PEGASUS_SELF_TEST_DATA_PATH,
- /* Must be the last */
- PEGASUS_MAX_SELF_TEST
- } PEGASUS_SelfTestType;
- /* This type defines the types of target/filter combinations available. */
- typedef enum PEGASUS_TargetFilter
- {
- PEGASUS_TARGET_FILTER_0 = 0,
- PEGASUS_TARGET_FILTER_1,
- PEGASUS_TARGET_FILTER_2,
- PEGASUS_TARGET_FILTER_IMAGE_QUALITY, /* No target filter */
- PEGASUS_TARGET_FILTER_3,
- PEGASUS_TARGET_FILTER_4,
- PEGASUS_TARGET_FILTER_5,
- PEGASUS_NB_TARGET_FILTER, /* Defines the number of target/filter values */
- PEGASUS_TARGET_FILTER_COMMON_0 = 1000,
- PEGASUS_TARGET_FILTER_COMMON_1,
- PEGASUS_TARGET_FILTER_COMMON_2,
- PEGASUS_TARGET_FILTER_COMMON_3,
- PEGASUS_TARGET_FILTER_COMMON_4,
- PEGASUS_TARGET_FILTER_COMMON_5
- } PEGASUS_TargetFilter;
- // Replacement of earlier define for target filter
- #define PEGASUS_TARGET_FILTER_MO_MO PEGASUS_TARGET_FILTER_0
- #define PEGASUS_TARGET_FILTER_MO_RH PEGASUS_TARGET_FILTER_1
- #define PEGASUS_TARGET_FILTER_W_RH PEGASUS_TARGET_FILTER_2
- /* This type defines the types of focus available. */
- typedef enum PEGASUS_FocusType
- {
- PEGASUS_FOCUS_SMALL = 0, /* Small focus. */
- PEGASUS_FOCUS_LARGE, /* Large focus. */
- /* Must be the last */
- PEGASUS_MAX_FOCUS_TYPE
- } PEGASUS_FocusType;
- /* This type defines the available defect types. */
- typedef enum PEGASUS_DefectType
- {
- PEGASUS_DEFECT_TOP_COLUMN = 0, /* AXS-2430 only */
- PEGASUS_DEFECT_BOTTOM_COLUMN, /* AXS-2430 only */
- PEGASUS_DEFECT_COLUMN, /* Valid for all detectors */
- PEGASUS_DEFECT_ROW,
- PEGASUS_DEFECT_PIXEL,
- /* Must be the last */
- PEGASUS_NB_DEFECT /* Defines the number of defect type values */
- } PEGASUS_DefectType;
- /* This type defines defect map value according to the origin. */
- typedef enum PEGASUS_DefectMapValue
- {
- DEFECT_MAP_DEAD_VALUE_FACTORY = 1,
- DEFECT_MAP_DEAD_VALUE_EG = 2,
- DEFECT_MAP_DEAD_VALUE_DC = 4,
- DEFECT_MAP_DEAD_VALUE_SG = 8,
- DEFECT_MAP_DEAD_VALUE_AP = 16,
- } PEGASUS_DefectMapValue;
- /* This type defines the available calibration types. */
- typedef enum PEGASUS_CalibrationType
- {
- PEGASUS_CALIBRATION_TYPE_EO = 0,
- PEGASUS_CALIBRATION_TYPE_GAIN,
- PEGASUS_CALIBRATION_TYPE_DEFECT,
- PEGASUS_CALIBRATION_TYPE_SHADING,
- PEGASUS_CALIBRATION_TYPE_UNIFORMITY,
- PEGASUS_CALIBRATION_TYPE_COMBINED_SHADING_DEFECT,
-
- /* Must be the last */
- PEGASUS_NB_CALIBRATION_TYPE /* Defines the number of calibration type values */
-
- } PEGASUS_CalibrationType;
- /*
- SERVICE INTERFACE
- */
- /* This type defines the available service image types. */
- typedef enum PEGASUS_ServiceImageType
- {
- PEGASUS_SERVICE_IMAGE_DEFECT_MAP = 0, /* Get defect map */
- PEGASUS_SERVICE_IMAGE_INJ_HV,
- PEGASUS_SERVICE_IMAGE_INJ_VGND,
- PEGASUS_SERVICE_IMAGE_READ_NOISE,
- PEGASUS_SERVICE_IMAGE_OFFSET,
- PEGASUS_SERVICE_IMAGE_DEFECT_MAP_WITH_DEFECTS_ORIGIN,
- /* Must be the last */
- PEGASUS_NB_SERVICE_IMAGE /* Defines the number of service image type values */
- } PEGASUS_ServiceImageType;
- /* This type defines the available pixel formats. */
- typedef enum PEGASUS_PixelFormat
- {
- PEGASUS_PIXEL_FORMAT_UNSIGNED = 0,
- PEGASUS_PIXEL_FORMAT_SIGNED,
- PEGASUS_PIXEL_FORMAT_REAL,
- /* Must be the last */
- PEGASUS_NB_PIXEL_FORMAT /* Defines the number of pixel format values */
- } PEGASUS_PixelFormat;
- //
- //==================================== [ EXTERNS ] ================================================
- //
- //==================================== [ STATIC GLOBAL ] ==========================================
- //
- //==================================== [ PROTOTYPES ] =============================================
- #endif /* PegasusDefs_H */
|