using OTSCLRINTERFACE; using OTSMeasureApp.ServiceCenter.OxfordExtender; using OTSModelSharp.ServiceCenter; using OxfordExtenderWrapper; using System; using System.Drawing; using System.Windows; using static OxfordExtenderWrapper.ExtenderIpcUI; namespace OTSMeasureApp.ServiceCenter { class OxfordScanController : IScanController { int imageWidth = 0; int imageHeight = 0; double dwelltime = 0; ExtenderIpcUI iExtender; ImageInputSourceType imagesourceType; public OxfordScanController(ImageInputSourceType sourceType) { iExtender = ExtenderWrapperIpc.GetExtenderWrapper(); imagesourceType = sourceType; } public CBSEImgClr AcquireBSEImage() { try { Rectangle r = new Rectangle(); CBSEImgClr bse = new CBSEImgClr(r); bse.InitImageData(imageWidth, imageHeight); ImageAquistionParam p = new ImageAquistionParam(); p.width = imageWidth; p.height = imageHeight; p.DwellTime = dwelltime; p.sourceType = imagesourceType; NLog.LogManager.GetCurrentClassLogger().Info("Begin to acquire BSE image!"); iExtender.AquisitionImage(ref p); NLog.LogManager.GetCurrentClassLogger().Info("End acquiring BSE image!"); bse.SetImageData(p.ImageData, imageWidth, imageHeight); return bse; } catch (Exception e) { NLog.LogManager.GetCurrentClassLogger().Warn(e.Message); } return null; } public CBSEImgClr AcquireRectangleBSEImage( Rectangle rec) { return null; } public bool Init() { iExtender = ExtenderWrapperIpc.GetExtenderWrapper(); return true; } public bool SetDwellTime(DwellTimeLevel val) { dwelltime = 2; switch (val) { case DwellTimeLevel.Low: dwelltime = 2; break; case DwellTimeLevel.Medium: dwelltime = 4; break; case DwellTimeLevel.High: dwelltime = 8; break; } return true; } public bool SetImageSize(int nWidth, int nHeight) { imageWidth = nWidth; imageHeight = nHeight; return true; } } }