using OTSCommon.Model; using OTSMeasureApp._0_OTSModel.Measure._4_ReMeasure; using OTSModelSharp.ServiceInterface; using System; using System.Collections.Generic; using System.Drawing; namespace OTSMeasureApp.ServiceCenter { public class IpcSEMController: MarshalByRefObject { private SemController sem = SemController.GetSEMController(); private ScanController scan = ScanController.GetScanController(); SmplMeasureReMeasure measureReMeasure = new SmplMeasureReMeasure(); public bool MoveSEMToPoint(Point poi) { if (!sem.IsConnected()) { return false; } return sem.MoveSEMToPoint(poi.X, poi.Y); } public bool GetSemPositionXY(ref double a_dPositionX, ref double a_dPositionY, ref double a_dPositionR) { if (!sem.IsConnected()) { return false; } return sem.GetSemPositionXY(ref a_dPositionX, ref a_dPositionY, ref a_dPositionR); } public bool SetMagnification(double a_dMagnification) { if (!sem.IsConnected()) { return false; } return sem.SetMagnification(a_dMagnification); } public bool AcquireBSEImage(int width, int height, int dwellTime, ref byte[] ImageByte) { scan.SetDwellTime(dwellTime); scan.SetImageSize(width, height); ImageByte = measureReMeasure.SetReFldInfo("sample1", scan.AcquireBSEImage(0, 0, dwellTime)); return true; } //public bool FindNewPartInfo(Particle particle) //{ // measureReMeasure.FindNewPartInfo(particle); // return true; //} public bool ReMeasure(string samplePath, int width, int height, Dictionary> keyValues, int IMGSCANSPEED_INDEX, int XRAYSCANMODE_INDEX, int NUD_SCANTIME_COUNT) { SmplMeasureReMeasure smplMeasure = new SmplMeasureReMeasure(); bool isSuccess = smplMeasure.ReMeasure(samplePath, width, height, keyValues, IMGSCANSPEED_INDEX, XRAYSCANMODE_INDEX, NUD_SCANTIME_COUNT); return isSuccess; } } }