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 ExtenderIpcUI : MarshalByRefObject { public enum ImageInputSourceType { None = 0, SE = 1, Bse = 2 } ExtenderWrapper iExtender; public ExtenderIpcUI() { iExtender = new ExtenderWrapper(); } public bool ConnectToEDSHardware() { bool r; r= iExtender.ConnectToEDSHardware(); return r; } //结束 public void CloseExtender() { iExtender.CloseExtender(); var form1= (Form1)Application.OpenForms["Form1"]; form1.appExit(); } public bool AquisitionImage(ref ImageAquistionParam p) { bool r = false; r = iExtender.AquisitionImage(ref p); return r; } public bool MoveStageXY(float x, float y) { 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 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 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 bool SetBeamAndFilamentOnOrOff(bool val) { bool b1= iExtender.SetSemBeamOnOrOff(val); bool b2=iExtender.SetSemFilamentOnOrOff(val); return b1||b2; } public void StopXrayAquisition() { iExtender.StopXrayAquisition(); } public void SetQuantifiCationParam1(bool IfAutoId, string knownElements) { iExtender.SetQuantifiCationParam(IfAutoId, knownElements); } #endregion } }