#pragma once #include namespace OTSController { const BYTE FIRST_DETECTOR_ID = 1; const BYTE SECOND_DETECTOR_ID = 2; const BYTE THIRD_DETECTOR_ID = 3; const BYTE FOURTH_DETECTOR_ID = 4; const BYTE FIRST_DETECTOR_COM = 1; const BYTE SECOND_DETECTOR_COM = 2; const BYTE THIRD_DETECTOR_COM = 4; const BYTE FOURTH_DETECTOR_COM = 8; const int BRUKER_XRAY_COLLECT_LIMIT = 2048; enum class EBrukerErrorCode { // Error constants generated from client program IFC_ERROR_IN_EXECUTION = -1, IFC_ERROR_WRONG_PARAMETER = -2, IFC_ERROR_SPECTRUM_BUFFER_EMPTY = -3, IFC_ERROR_PARAMETER_MISSED = -4, IFC_ERROR_TOO_MANY_PARAMETERS = -5, IFC_ERROR_USER_TERMINATED = -6, IFC_ERROR_TIMEOUT = -7, IFC_ERROR_UNKNOWN_VALUE_NAME = -8, IFC_ERROR_WRONG_VALUE_TYPE = -9, // Errors coming from OpenClient() CONN_ERROR_UNKNOWN = -21, CONN_ERROR_INTERFACE_NOT_CONNECTED = -22, CONN_ERROR_PARAMETER_MISSED = -23, CONN_ERROR_ANSWER_TIMEOUT = -24, CONN_ERROR_SERVER_NOT_RESPONDING = -25, CONN_ERROR_RESULT_MISSED = -26, CONN_ERROR_NO_INTERFACE = -27, CONN_ERROR_INVALID_LOGIN = -28, CONN_ERROR_NO_CONNECTION_TO_SERVER = -29, CONN_ERROR_SERVER = -30, CONN_ERROR_ACTION_ABORTED = -31, // Error constants generated from rtifcclient.dll ERROR_WRONG_PARAMETER = -101, ERROR_FILE_NOT_EXIST = -102, ERROR_NO_CONNECTION = -103, ERROR_NO_ANSWER = -104, ERROR_CAN_NOT_START_PROCESS = -105, ERROR_INVALID_RESULT_DATA = -106, // no direct call to server possible (used in '..Direct' calls ERROR_NO_SERVER_CONNECTION = -103, }; // client dll ========================================================= #pragma pack(push, 1) struct BrukerSegment { DWORD Y; DWORD XStart; long XCount; BrukerSegment() : Y(0) , XStart(0) , XCount(1) // this default 1 for XCount is used by point list x-ray analysis {} void operator=(const BrukerSegment& other) { Y = other.Y; XStart = other.XStart; XCount = other.XCount; } }; struct BrukerFeature { BrukerFeature() : SegmentCount(0) , pSegment(NULL) {} /* ~BrukerFeature() { }*/ void BrukerFeature::Clean() { if (pSegment) { delete[] pSegment; pSegment = NULL; } } long SegmentCount; BrukerSegment* pSegment; }; #pragma pack(pop) #pragma pack(push, 1) struct RTSpectrumHeaderRec { BYTE IDStringLength; char IDString[25]; // : string[25]; // 'Rontec XRay spectrum' long Version; // : longint; // Version information long Size; // : longint; // Size in byte double DateTime; // : double; // Delphi 5.0 version of date and time long ChannelCount; // : longint; // long ChannelOffset; // : longint; // First channel index double CalibrationAbs; // : double; // Energy of first channel double CalibrationLin; // : double; // keV per channel double SigmaAbs; // : double; // Sigma^2 energy calibration double SigmaLin; // : double; long RealTime; // : longint; // real measure time in ms long LifeTime; // : longint; // life time in ms }; #pragma pack(pop) struct RTImageInfoEx { long Magnification; double PixelSizeX; double PixelSizeY; double HighVoltage; double WorkingDistance; }; // scan mode is 1 means external off long const BRUKER_SCAN_MODE_EXTERNAL_OFF = 1; long const BRUKER_SCAN_MODE_EXTERNAL_ON = 0; }