#pragma once namespace OTSController { const double MM2MICRON = 1000.; const long SAMPLECHAMBER_WIDTH_DEFAULT = (long)(100 * MM2MICRON); const long SAMPLECHAMBER_WIDTH_LIMIT_MIN = (long)(30 * MM2MICRON); const long SAMPLECHAMBER_WIDTH_LIMIT_MAX = (long)(500 * MM2MICRON); const long SAMPLECHAMBER_HEIGHT_DEFAULT = (long)(100 * MM2MICRON); const long SAMPLECHAMBER_HEIGHT_LIMIT_MIN = (long)(30 * MM2MICRON); const long SAMPLECHAMBER_HEIGHT_LIMIT_MAX = (long)(500 * MM2MICRON); const double POSITIONCRITERIA = 3.0; const long SEM_CONTROLLER_MAX = 11; const CString SEM_CONTROLLER_NAMES[SEM_CONTROLLER_MAX] = { _T("EM Offline"), _T("EM Genesis"), _T("EM Zeiss"), _T("EM Bruker"), _T("EM Oxford"), _T("EM Hitachi"), _T("EM Jeol"), _T("EM TM3030"), _T("EM SU3500"), _T("EM Quanta Demo"), _T("EM AMICS Client") }; const long EDS_CONTROLLER_MAX = 5; const CString EDS_CONTROLLER_NAMES[EDS_CONTROLLER_MAX] = { _T("EDS Offline"), _T("EDS Genesis"), _T("EDS Bruker"), _T("EDS Oxford"), _T("EDS IXRF") }; const long SCANNER_CONTROLLER_MAX = 5; const CString SCANER_CONTROLLER_NAMES[SCANNER_CONTROLLER_MAX] = { _T("Scan Offline"), _T("Scan Genesis"), _T("Scan Bruker"), _T("Scan Oxford"), _T("Scan IXRF"), }; class CSEMCommonConst { public: CSEMCommonConst(); ~CSEMCommonConst(); }; /// /// Class EMController definition. /// class __declspec(dllexport) OTSSEMController { public: enum class SEM_ID { INVALID = 0, OFFLINE = 1, MIN = 1, USEDMIN = 1, GENESIS = 2, ZEISS = 3, BRUKER = 4, OXFORD = 5, HITACHI = 6, JEOL = 7, TM3030 = 8, SU3500 = 9, QUANTA = 10, MAX = 10 }; //static CString GetName(const int a_nId); }; class COTSPreferenceData { COTSPreferenceData() = delete; ~COTSPreferenceData() = delete; public: static BOOL m_bIsEMAutoAxisDirection; static int m_nSampleChamberWidth; static BOOL m_bIsEMAxisXRightDirection; static int m_nSampleChamberHeight; static BOOL m_bIsEMAxisYUpDirection; static int m_nEMScreenRatioIndex; }; // convert SEM position void ConvertEMPosition(const BOOL a_bIsAutoAxis, const double a_dStageWidth, const BOOL a_bIsXRightDirection, const double a_dStageHeight, const BOOL a_bIsYUpDirection, double& a_dPositionX, double& a_dPositionY); /// /// Class EDSController definition. /// class __declspec(dllexport) EDSController { public: enum class EDS_ID { INVALID = 0, OFFLINE = 1, MIN = 1, GENESIS = 2, USEDMIN = 2, BRUKER = 3, OXFORD = 4, IXRF = 5, MAX = 5 }; //static CString GetName(const int a_nId); }; /// /// Enum EDSConst definition. /// enum class EDSConst { MAX_XRAY_BATCH = 1024, XANA_CHANNELS = 2000, XANA_CHANNELS_MAX = 4192, MAX_AMPTIME_CONSTANTS = 10, MAX_EV_PER_CHANNELS = 5, MAX_ANALYZERS = 5, MAX_LEN_ANALYZER_NAME = 16 }; /// /// Class ScanController definition. /// class __declspec(dllexport)ScanController { public: enum class SCANNER_ID { INVALID = 0, OFFLINE = 1, MIN = 1, GENESIS = 2, USEDMIN = 2, BRUKER = 3, OXFORD = 4, IXRF = 5, MAX = 5 }; //static CString GetName(const int a_nId); }; // DWELL_TIME of BRUKER const long DWELLTIME_BRUKER_ID_MIN = 0; const long DWELLTIME_BRUKER_ID_MAX = 9; const long DWELLTIME_BRUKER_ID_DEFAULT = 4; // 16 const long DWELLTIME_BRUKER_ID_THREE_TIE_MIN = 3; // 8 const long DWELLTIME_BRUKER_VALUES[DWELLTIME_BRUKER_ID_MAX + 1] = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 }; const CString DWELLTIME_BRUKER_STRINGS[DWELLTIME_BRUKER_ID_MAX + 1] = { _T("1¦Ěs"), _T("2¦Ěs"), _T("4¦Ěs"), _T("8¦Ěs"), _T("16¦Ěs"), _T("32¦Ěs"), _T("64¦Ěs"), _T("128¦Ěs"), _T("256¦Ěs"), _T("512¦Ěs") }; // file and helper const CString STR_COMPANYNAME = _T("Config"); const CString OTS_TEXT_FILE_COMMENT = _T("//"); const CString STR_SIMULATE_DATA = _T("Simulate"); }