//================================================================================================= /*! @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 */