#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");
}