|
|
@@ -1,418 +0,0 @@
|
|
|
-using System;
|
|
|
-using System.Collections.Generic;
|
|
|
-using System.Linq;
|
|
|
-using System.Text;
|
|
|
-using System.Threading;
|
|
|
-using System.Threading.Tasks;
|
|
|
-using System.Windows.Forms;
|
|
|
-
|
|
|
-namespace OxfordExtenderWrapper
|
|
|
-{
|
|
|
- public class ExtenderIpcUI2: MarshalByRefObject
|
|
|
- {
|
|
|
- ExtenderWrapper iExtender;
|
|
|
- public ExtenderIpcUI2()
|
|
|
- {
|
|
|
- iExtender = new ExtenderWrapper();
|
|
|
- }
|
|
|
- public bool ConnectToEDSHardware()
|
|
|
- {
|
|
|
-
|
|
|
- return iExtender.ConnectToEDSHardware();
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- //结束
|
|
|
- public void CloseExtender()
|
|
|
- {
|
|
|
-
|
|
|
- iExtender.CloseExtender();
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- public bool AquisitionImage(ref ImageAquistionParam p)
|
|
|
- {
|
|
|
- bool r = false;
|
|
|
- var p1 = p;
|
|
|
- var task = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- r= iExtender.AquisitionImage(ref p1);
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- task.Start();
|
|
|
- task.Wait();
|
|
|
- p = p1;
|
|
|
- return r;
|
|
|
- }
|
|
|
- public bool MoveStageXY(float x, float y)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var task = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- Thread.Sleep(50);
|
|
|
- r = iExtender.MoveStageXY(x,y);
|
|
|
-
|
|
|
- });
|
|
|
- task.Start();
|
|
|
- task.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
- public bool XrayAreaCollecting(ref AreaXrayParam p)
|
|
|
- {
|
|
|
-
|
|
|
- bool r = false;
|
|
|
- var p1 = p;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- r = iExtender.XrayAreaCollecting(ref p1);
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- p = p1;
|
|
|
- return r;
|
|
|
- }
|
|
|
- public bool XrayPointCollecting(ref PointXrayParam p)
|
|
|
- {
|
|
|
-
|
|
|
- bool r = false;
|
|
|
- var p1 = p;
|
|
|
- var task = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- r = iExtender.XrayPointCollecting(ref p1);
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- task.Start();
|
|
|
- task.Wait();
|
|
|
- p = p1;
|
|
|
- return r;
|
|
|
- }
|
|
|
- public bool CollectXrayByPoints(ref List<PointXrayParam> a_listPoints, uint a_nXRayAQTime, bool a_bElementInfo)
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- bool r = false;
|
|
|
- var p1 = a_listPoints;
|
|
|
- var task = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- r = iExtender.CollectXrayByPoints(ref p1,a_nXRayAQTime,a_bElementInfo);
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- task.Start();
|
|
|
- task.Wait();
|
|
|
- a_listPoints = p1;
|
|
|
- return r;
|
|
|
- }
|
|
|
- public bool CollectXrayByFeatures(ref List<AreaXrayParam> a_listFeatures, double a_nXRayAQTime, bool a_bElementInfo)
|
|
|
- {
|
|
|
-
|
|
|
- bool r = false;
|
|
|
- var p1 = a_listFeatures;
|
|
|
- var task = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- r = iExtender.CollectXrayByFeatures(ref p1, a_nXRayAQTime, a_bElementInfo);
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- task.Start();
|
|
|
- task.Wait();
|
|
|
- a_listFeatures = p1;
|
|
|
- return r;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- public float GetMagnification()
|
|
|
- {
|
|
|
- return (float)iExtender.GetMagnification();
|
|
|
- }
|
|
|
- public Boolean SetMagnification(float set)
|
|
|
- {
|
|
|
-
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetMagnification(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
-
|
|
|
- //焦距
|
|
|
- public float GetWorkingDistance()
|
|
|
- {
|
|
|
- return (float)iExtender.GetWorkingDistance();
|
|
|
- }
|
|
|
- public Boolean SetWorkingDistance(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetWorkingDistance(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
-
|
|
|
- //亮度
|
|
|
- public float GetBrightness()
|
|
|
- {
|
|
|
-
|
|
|
- return (float)iExtender.GetBrightness();
|
|
|
- }
|
|
|
- public Boolean SetBrightness(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetBrightness(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
-
|
|
|
- //对比度
|
|
|
- public float GetContrast()
|
|
|
- {
|
|
|
- return (float)iExtender.GetContrast();
|
|
|
- }
|
|
|
- public Boolean SetContrast(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetContrast(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
-
|
|
|
- //SEM电压
|
|
|
- public float GetSEMVoltage()
|
|
|
- {
|
|
|
- return (float)iExtender.GetSEMVoltage();
|
|
|
- }
|
|
|
- public Boolean SetSEMVoltage(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetSEMVoltage(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
- public bool SetSemScanExternal(bool b)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetSemScanExternal(b);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
-
|
|
|
- //样品台
|
|
|
- public float[] GetStagePosition()
|
|
|
- {
|
|
|
- float[] ret = iExtender.GetStagePosition();
|
|
|
-
|
|
|
- return ret;
|
|
|
- }
|
|
|
- public Boolean SetStagePosition(float[] set)
|
|
|
- {
|
|
|
-
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetStagePosition(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
-
|
|
|
- public Boolean SetStageGotoX(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetStageGotoX(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
- public Boolean SetStageGotoY(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetStageGotoY(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
- public Boolean SetStageGotoZ(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetStageGotoZ(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
- public Boolean SetStageGotoT(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetStageGotoT(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- return r;
|
|
|
- }
|
|
|
- public Boolean SetStageGotoR(float set)
|
|
|
- {
|
|
|
- var r = false;
|
|
|
- var thread = new Task(() =>
|
|
|
- {
|
|
|
-
|
|
|
- r = iExtender.SetStageGotoR(set);
|
|
|
- });
|
|
|
- thread.Start();
|
|
|
- thread.Wait();
|
|
|
- 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
|
|
|
- }
|
|
|
-}
|