![]() |
Phenom Programming Interface
|
00001 /* 00002 * PhenomTypes.h 00003 * PhenomCtl 00004 * 00005 * Created by Sander Stoks on 1/7/11. 00006 * Copyright 2011 Phenom World B.V. All rights reserved. 00007 * 00008 */ 00009 00010 #ifndef PHENOMTYPES_H 00011 #define PHENOMTYPES_H 00012 00013 #include "gSOAP/soapStub.h" 00014 #include <stdexcept> 00015 #include <boost/shared_ptr.hpp> 00016 00017 #undef min 00018 #undef max 00019 00021 namespace PhenomTypes 00022 { 00024 enum RetVal 00025 { 00026 OM_OK = om__RetVal__OM_OK, 00027 OM_FAIL = om__RetVal__OM_FAIL, 00028 OM_CONTEXT = om__RetVal__OM_CONTEXT, 00029 OM_COMM_ERROR = om__RetVal__OM_COMM_ERROR, 00030 OM_CLIPPED = om__RetVal__OM_CLIPPED, 00031 OM_UNCAL = om__RetVal__OM_UNCAL, 00032 00033 // Only during connection phase 00034 ACCESSDENIED = -13, 00035 EXCLUSIVE = -16, 00036 INVALID_ADDRESS = -22, 00037 UNREACHABLE = -1000, 00038 NORESPONSE = -19, 00039 00040 OTHER = -1 00041 }; 00043 const char* string(RetVal e); 00044 RetVal OMRetVal(om__RetVal retVal); 00045 00047 struct Error 00048 { 00049 Error(RetVal code, const std::string& description); 00050 00052 RetVal code; 00054 std::string description; 00055 }; 00056 00058 enum InstrumentMode 00059 { 00060 INSTRUMENT_MODE_OFF = om__instrumentMode__INSTRUMENT_MODE_OFF, 00061 INSTRUMENT_MODE_OPERATIONAL = om__instrumentMode__INSTRUMENT_MODE_OPERATIONAL, 00062 INSTRUMENT_MODE_STANDBY = om__instrumentMode__INSTRUMENT_MODE_STANDBY, 00063 INSTRUMENT_MODE_HIBERNATE = om__instrumentMode__INSTRUMENT_MODE_HIBERNATE, 00064 INSTRUMENT_MODE_INITIALIZING = om__instrumentMode__INSTRUMENT_MODE_INITIALIZING, 00065 INSTRUMENT_MODE_CLOSINGDOWN = om__instrumentMode__INSTRUMENT_MODE_CLOSINGDOWN, 00066 INSTRUMENT_MODE_ERROR = om__instrumentMode__INSTRUMENT_MODE_ERROR 00067 }; 00069 const char* string(InstrumentMode m); 00070 00072 enum OperationalMode 00073 { 00074 OPERATIONAL_MODE_UNAVAILABLE = om__operationalMode__OPERATIONAL_MODE_UNAVAILABLE, 00075 OPERATIONAL_MODE_LOADPOS = om__operationalMode__OPERATIONAL_MODE_LOADPOS, 00076 OPERATIONAL_MODE_UNLOADING = om__operationalMode__OPERATIONAL_MODE_UNLOADING, 00077 OPERATIONAL_MODE_SELECTINGNAVCAM = om__operationalMode__OPERATIONAL_MODE_SELECTINGNAVCAM, 00078 OPERATIONAL_MODE_SELECTINGSEM = om__operationalMode__OPERATIONAL_MODE_SELECTINGSEM, 00079 OPERATIONAL_MODE_LIVENAVCAM = om__operationalMode__OPERATIONAL_MODE_LIVENAVCAM, 00080 OPERATIONAL_MODE_LIVESEM = om__operationalMode__OPERATIONAL_MODE_LIVESEM, 00081 OPERATIONAL_MODE_ACQUIRENAVCAMIMAGE = om__operationalMode__OPERATIONAL_MODE_ACQUIRENAVCAMIMAGE, 00082 OPERATIONAL_MODE_ACQUIRESEMIMAGE = om__operationalMode__OPERATIONAL_MODE_ACQUIRESEMIMAGE 00083 }; 00085 const char* string(OperationalMode m); 00086 00088 enum ImagingDevice 00089 { 00090 NAVCAMIMDEV = om__imagingDevice__NAVCAMIMDEV, 00091 SEMIMDEV = om__imagingDevice__SEMIMDEV 00092 }; 00094 const char* string(ImagingDevice d); 00095 00097 struct Position 00098 { 00099 Position(); 00100 Position(double x, double y); 00101 Position(const om__position& pos); 00102 double x; 00103 double y; 00104 }; 00106 const Position CenterPosition; 00107 00112 enum StageNavigationMode 00113 { 00114 STAGE_NAVIGATION_MODE_NOT_AVAILABLE = om__stageNavigMode__STAGE_NAVIGATION_MODE_NOT_AVAILABLE, 00115 STAGE_NAVIGATION_MODE_REST = om__stageNavigMode__STAGE_NAVIGATION_MODE_REST, 00116 STAGE_NAVIGATION_MODE_PTP = om__stageNavigMode__STAGE_NAVIGATION_MODE_PTP, 00117 STAGE_NAVIGATION_MODE_JOG = om__stageNavigMode__STAGE_NAVIGATION_MODE_JOG, 00118 STAGE_NAVIGATION_MODE_NOT_HOMED = om__stageNavigMode__STAGE_NAVIGATION_MODE_NOT_HOMED 00119 }; 00121 const char* string(StageNavigationMode m); 00122 00123 struct StageModeAndPosition 00124 { 00125 StageNavigationMode mode; 00126 Position position; 00127 }; 00128 00136 enum NavigationAlgorithm 00137 { 00138 NAVIGATION_AUTO = om__navigationAlgorithm__NAVIGATION_AUTO, 00139 NAVIGATION_BACKLASH_ONLY = om__navigationAlgorithm__NAVIGATION_BACKLASH_ONLY, 00140 NAVIGATION_RAW = om__navigationAlgorithm__NAVIGATION_RAW 00141 }; 00143 const char* string(NavigationAlgorithm a); 00144 00146 struct StageStroke 00147 { 00148 Position NavCamMin; 00149 Position NavCamMax; 00150 Position SEMMin; 00151 Position SEMMax; 00152 }; 00153 00154 struct Range 00155 { 00156 Range(); 00157 Range(double min, double max); 00158 double min; 00159 double max; 00160 }; 00161 00163 enum AutoFocusAlgorithm 00164 { 00165 AUTOFOCUS_AUTO = om__autoFocusAlgorithm__AUTOFOCUS_AUTO, 00166 AUTOFOCUS_COARSE_FINE = om__autoFocusAlgorithm__AUTOFOCUS_COARSE_FINE, 00167 AUTOFOCUS_FINE_ONLY = om__autoFocusAlgorithm__AUTOFOCUS_FINE_ONLY 00168 }; 00170 const char* string(AutoFocusAlgorithm a); 00171 00172 enum DetectorSegment 00173 { 00174 OM_SEM_DETECTOR_SEGMENT_OFF = om__detectorSegment__OM_SEM_DETECTOR_SEGMENT_OFF, 00175 OM_SEM_DETECTOR_SEGMENT_ON = om__detectorSegment__OM_SEM_DETECTOR_SEGMENT_ON, 00176 OM_SEM_DETECTOR_SEGMENT_INVERT = om__detectorSegment__OM_SEM_DETECTOR_SEGMENT_INVERT 00177 }; 00179 const char* string(DetectorSegment d); 00181 const char* shortstring(DetectorSegment d); 00182 00183 struct Size 00184 { 00185 Size(); 00186 Size(int width, int height); 00187 int width; 00188 int height; 00189 }; 00190 00193 struct CamParams 00194 { 00195 CamParams(); 00196 CamParams(const Size& size, int nFrames = 1); 00197 CamParams(int width, int height, int nFrames = 1); 00198 Size size; 00200 int nFrames; 00201 }; 00202 00204 enum DetectorMode 00205 { 00206 SEM_DETECTOR_MODE_ALL = om__detector__SEM_DETECTOR_MODE_ALL, 00207 SEM_DETECTOR_MODE_NORTHSOUTH = om__detector__SEM_DETECTOR_MODE_NORTHSOUTH, 00208 SEM_DETECTOR_MODE_EASTWEST = om__detector__SEM_DETECTOR_MODE_EASTWEST, 00209 SEM_DETECTOR_MODE_A = om__detector__SEM_DETECTOR_MODE_A, 00210 SEM_DETECTOR_MODE_B = om__detector__SEM_DETECTOR_MODE_B, 00211 SEM_DETECTOR_MODE_C = om__detector__SEM_DETECTOR_MODE_C, 00212 SEM_DETECTOR_MODE_D = om__detector__SEM_DETECTOR_MODE_D 00213 }; 00215 const char* string(DetectorMode m); 00216 00219 struct ScanParams 00220 { 00221 ScanParams(); 00222 ScanParams(const Size& size, int nFrames = 1, DetectorMode detector = SEM_DETECTOR_MODE_ALL, bool hdr = false, double scale = 1, const Position& center = CenterPosition); 00223 ScanParams(int width, int height, int nFrames = 1, DetectorMode detector = SEM_DETECTOR_MODE_ALL, bool hdr = false, double scale = 1, const Position& center = CenterPosition); 00225 Size size; 00227 int nFrames; 00229 DetectorMode detector; 00231 bool hdr; 00233 Position center; 00235 double scale; 00236 }; 00237 00239 enum ScanMode 00240 { 00241 SEM_SCAN_MODE_BLANK = om__scanMode__SEM_SCAN_MODE_BLANK, 00242 SEM_SCAN_MODE_IMAGING = om__scanMode__SEM_SCAN_MODE_IMAGING, 00243 SEM_SCAN_MODE_SPOT = om__scanMode__SEM_SCAN_MODE_SPOT 00244 }; 00246 const char* string(ScanMode m); 00247 00249 struct SEMViewingMode 00250 { 00251 SEMViewingMode(ScanMode scanMode, const ScanParams& scanParams); 00252 00253 ScanMode scanMode; 00254 ScanParams scanParams; 00255 }; 00256 00258 enum Encoding 00259 { 00260 Unsigned8, 00261 Unsigned16, 00262 RGB 00263 }; 00264 00266 struct Image 00267 { 00268 Image(); 00269 Image(int width, int height, Encoding encoding, int stride_x, int stride_y, void* data); 00270 ~Image(); 00271 00273 int width; 00275 int height; 00277 Encoding encoding; 00279 int stride_x; 00281 int stride_y; 00283 void* data; 00284 00285 typedef boost::shared_ptr<Image> ptr; 00286 00287 private: 00288 Image(const Image&); 00289 Image& operator=(Image&); 00290 }; 00291 00292 enum AcquisitionType 00293 { 00294 ACQUISITION_NAVCAM = om__acquisitionType__OM_ACQ_TYPE_NAVCAM, 00295 ACQUISITION_SEM = om__acquisitionType__OM_ACQ_TYPE_SEM 00296 }; 00297 00299 struct AcquisitionState 00300 { 00301 AcquisitionState(); 00302 AcquisitionState(om__acquisitionState* acqState); 00303 00304 AcquisitionType acquisitionType; 00305 std::string softwareVersion; 00306 std::string instrumentID; 00307 int dataBarHeight; 00308 double pixelWidth; 00309 double pixelHeight; 00310 time_t time; 00311 Position sourceTilt; 00312 Position stigmator; 00313 int integrations; 00314 Position position; 00315 double rotation; 00316 double dwellTime; 00317 double workingDistance; 00318 double sourceTime; 00319 double highVoltage; 00320 double emissionCurrent; 00321 double filamentPower; 00322 DetectorSegment segment[4]; 00323 double appliedContrast; 00324 double appliedBrightness; 00325 double appliedGamma; 00326 }; 00327 00330 struct Acquisition 00331 { 00332 Acquisition(); 00333 Acquisition(Image::ptr image, const AcquisitionState& metadata); 00334 00336 Image::ptr image; 00338 AcquisitionState metadata; 00339 }; 00340 } 00341 00342 #endif