![]() |
Phenom Programming Interface
|
00001 /* 00002 * Phenom.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 PHENOM_H 00011 #define PHENOM_H 00012 00013 #include "gSOAP/soapPhenomProxy.h" 00014 #include "PhenomTypes.h" 00015 #include <string> 00016 00023 class Phenom 00024 { 00025 00026 public: 00029 Phenom(const std::string& address); 00036 Phenom(const std::string& address, const std::string& username, const std::string& password); 00038 00042 PhenomTypes::InstrumentMode GetInstrumentMode(); 00044 void SetInstrumentMode(PhenomTypes::InstrumentMode mode); 00046 PhenomTypes::OperationalMode GetOperationalMode(); 00048 00056 void GetExclusiveAccess(); 00058 void ReleaseExclusiveAccess(); 00060 bool GetExclusiveAccessStatus(); 00062 00068 void SelectImagingDevice(PhenomTypes::ImagingDevice device); 00070 void UnloadSample(); 00071 00075 void MoveTo(const PhenomTypes::Position& pos, PhenomTypes::NavigationAlgorithm algorithm = PhenomTypes::NAVIGATION_AUTO); 00080 void MoveBy(double deltaX, double deltaY, PhenomTypes::NavigationAlgorithm algorithm = PhenomTypes::NAVIGATION_AUTO); 00081 00083 PhenomTypes::StageModeAndPosition GetStageModeAndPosition(); 00085 PhenomTypes::StageStroke GetStageStroke(); 00087 00092 double GetNavCamWD(); 00095 void SetNavCamWD(double wd); 00097 PhenomTypes::Range GetNavCamWDRange(); 00098 00101 double GetNavCamContrast(); 00105 void SetNavCamContrast(double contrast); 00106 00108 double GetNavCamBrightness(); 00111 void SetNavCamBrightness(double brightness); 00112 00117 PhenomTypes::Acquisition NavCamAcquireImage(const PhenomTypes::CamParams& params); 00122 PhenomTypes::Acquisition NavCamGetLiveImageCopy(int nFramesDelay = 0); 00124 00129 double GetSEMHFW(); 00133 void SetSEMHFW(double hfw); 00135 PhenomTypes::Range GetSEMHFWRange(); 00136 00138 double GetSEMWD(); 00141 void SetSEMWD(double wd); 00143 PhenomTypes::Range GetSEMWDRange(); 00144 00148 void SEMAutoFocus(PhenomTypes::AutoFocusAlgorithm algorithm = PhenomTypes::AUTOFOCUS_AUTO); 00149 00151 double GetSEMContrast(); 00153 void SetSEMContrast(double contrast); 00154 00156 double GetSEMBrightness(); 00158 void SetSEMBrightness(double brightness); 00159 00162 void SEMACB(); 00163 00175 void SEMAutoSourceTilt(); 00178 void SEMAbortAutoSourceTilt(); 00179 00181 PhenomTypes::SEMViewingMode GetSEMViewingMode(); 00183 void SetSEMViewingMode(const PhenomTypes::SEMViewingMode& mode); 00184 00188 PhenomTypes::Acquisition SEMAcquireImage(const PhenomTypes::ScanParams& params); 00193 PhenomTypes::Acquisition SEMGetLiveImageCopy(int nFramesDelay = 0); 00195 00196 private: 00197 Phenom(); 00198 void CheckSoapResult(int ret, const std::string& what); 00199 void CheckRetVal(om__RetVal retVal, const std::string& what); 00200 void VerifyConnection(); 00201 PhenomProxy m_proxy; 00202 std::string m_address; 00203 }; 00204 00205 #endif