|
@@ -0,0 +1,338 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading;
|
|
|
+using System.Threading.Tasks;
|
|
|
+
|
|
|
+namespace OxfordExtenderWrapper
|
|
|
+{
|
|
|
+ public class ExtenderIpcUI : MarshalByRefObject
|
|
|
+ {
|
|
|
+ ExtenderWrapper iExtender;
|
|
|
+ public ExtenderIpcUI()
|
|
|
+ {
|
|
|
+ iExtender = new ExtenderWrapper();
|
|
|
+ }
|
|
|
+ public bool ConnectToEDSHardware()
|
|
|
+ {
|
|
|
+
|
|
|
+ return iExtender.ConnectToEDSHardware();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //结束
|
|
|
+ public void CloseExtender()
|
|
|
+ {
|
|
|
+
|
|
|
+ iExtender.CloseExtender();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool AquisitionImage(ref ImageAquistionParam p)
|
|
|
+ {
|
|
|
+ bool r = false;
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.AquisitionImage(ref p);
|
|
|
+
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public bool MoveStageXY(float x, float y)
|
|
|
+ {
|
|
|
+
|
|
|
+ Thread.Sleep(50);
|
|
|
+ var r = iExtender.MoveStageXY(x, y);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public bool XrayAreaCollecting(ref AreaXrayParam p)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ var r = iExtender.XrayAreaCollecting(ref p);
|
|
|
+
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public bool XrayPointCollecting(ref PointXrayParam p)
|
|
|
+ {
|
|
|
+
|
|
|
+ bool r = false;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.XrayPointCollecting(ref p);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public bool CollectXrayByPoints(ref List<PointXrayParam> a_listPoints, uint a_nXRayAQTime, bool a_bElementInfo)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ bool r = false;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.CollectXrayByPoints(ref a_listPoints, a_nXRayAQTime, a_bElementInfo);
|
|
|
+
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public bool CollectXrayByFeatures(ref List<AreaXrayParam> a_listFeatures, double a_nXRayAQTime, bool a_bElementInfo)
|
|
|
+ {
|
|
|
+
|
|
|
+ bool r = false;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.CollectXrayByFeatures(ref a_listFeatures, a_nXRayAQTime, a_bElementInfo);
|
|
|
+
|
|
|
+ return r;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public float GetMagnification()
|
|
|
+ {
|
|
|
+ return (float)iExtender.GetMagnification();
|
|
|
+ }
|
|
|
+ public Boolean SetMagnification(float set)
|
|
|
+ {
|
|
|
+
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.SetMagnification(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+
|
|
|
+ //焦距
|
|
|
+ public float GetWorkingDistance()
|
|
|
+ {
|
|
|
+ return (float)iExtender.GetWorkingDistance();
|
|
|
+ }
|
|
|
+ public Boolean SetWorkingDistance(float set)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.SetWorkingDistance(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+
|
|
|
+ //亮度
|
|
|
+ public float GetBrightness()
|
|
|
+ {
|
|
|
+
|
|
|
+ return (float)iExtender.GetBrightness();
|
|
|
+ }
|
|
|
+ public Boolean SetBrightness(float set)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+ r = iExtender.SetBrightness(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+
|
|
|
+ //对比度
|
|
|
+ public float GetContrast()
|
|
|
+ {
|
|
|
+ return (float)iExtender.GetContrast();
|
|
|
+ }
|
|
|
+ public Boolean SetContrast(float set)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.SetContrast(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+
|
|
|
+ //SEM电压
|
|
|
+ public float GetSEMVoltage()
|
|
|
+ {
|
|
|
+ return (float)iExtender.GetSEMVoltage();
|
|
|
+ }
|
|
|
+ public Boolean SetSEMVoltage(float set)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ var r = iExtender.SetSEMVoltage(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public bool SetSemScanExternal(bool b)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+ r = iExtender.SetSemScanExternal(b);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+
|
|
|
+ //样品台
|
|
|
+ public float[] GetStagePosition()
|
|
|
+ {
|
|
|
+ float[] ret = iExtender.GetStagePosition();
|
|
|
+
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+ public Boolean SetStagePosition(float[] set)
|
|
|
+ {
|
|
|
+
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.SetStagePosition(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Boolean SetStageGotoX(float set)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+
|
|
|
+ r = iExtender.SetStageGotoX(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public Boolean SetStageGotoY(float set)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+ r = iExtender.SetStageGotoY(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public Boolean SetStageGotoZ(float set)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+ r = iExtender.SetStageGotoZ(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public Boolean SetStageGotoT(float set)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+ r = iExtender.SetStageGotoT(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+ public Boolean SetStageGotoR(float set)
|
|
|
+ {
|
|
|
+ var r = false;
|
|
|
+
|
|
|
+ r = iExtender.SetStageGotoR(set);
|
|
|
+
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+
|
|
|
+ public double[] ImageScanSize =
|
|
|
+ {
|
|
|
+ 32,
|
|
|
+ 64,
|
|
|
+ 128,
|
|
|
+ 256,
|
|
|
+ 512,
|
|
|
+ 704,
|
|
|
+ 768,
|
|
|
+ 1024,
|
|
|
+ 4096,
|
|
|
+ 8192
|
|
|
+ };
|
|
|
+
|
|
|
+ public double DImagePixelsize { get => iExtender.GetDImagePixelsize(); set => iExtender.SetDImagePixelsize(value); }
|
|
|
+ public float GetStageAtX()
|
|
|
+ {
|
|
|
+
|
|
|
+ return (float)iExtender.GetStageAtX();
|
|
|
+ }
|
|
|
+ public float GetStageAtY()
|
|
|
+ {
|
|
|
+
|
|
|
+ return (float)iExtender.GetStageAtY();
|
|
|
+ }
|
|
|
+ public float GetStageAtZ()
|
|
|
+ {
|
|
|
+
|
|
|
+ return (float)iExtender.GetStageAtZ();
|
|
|
+ }
|
|
|
+ public float GetStageAtT()
|
|
|
+ {
|
|
|
+
|
|
|
+ return (float)iExtender.GetStageAtT();
|
|
|
+ }
|
|
|
+ public float GetStageAtR()
|
|
|
+ {
|
|
|
+ return (float)iExtender.GetStageAtR();
|
|
|
+ }
|
|
|
+
|
|
|
+ #region X-ray
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public bool IsAcquiringSpectrum()
|
|
|
+ {
|
|
|
+ return iExtender.IsAcquiringSpectrum();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public void BeginMultipleAquisition()
|
|
|
+ {
|
|
|
+
|
|
|
+ iExtender.BeginMultipleAquisition();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void EndMultipleAquisition()
|
|
|
+ {
|
|
|
+ iExtender.EndMultipleAquisition();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public bool GetSemBeamOn()
|
|
|
+ {
|
|
|
+ return iExtender.GetSemBeamOn();
|
|
|
+
|
|
|
+ }
|
|
|
+ public void StopXrayAquisition()
|
|
|
+ {
|
|
|
+
|
|
|
+ iExtender.StopXrayAquisition();
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #endregion
|
|
|
+ }
|
|
|
+}
|