namespace OINA.Extender.WPF.Testharness { using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using OINA.Extender; using OINA.Extender.Acquisition.Ed; using OINA.Extender.Acquisition.Image; using OINA.Extender.Acquisition.Quant; using OINA.Extender.DetectorControl; using OINA.Extender.MonitorControl; using OINA.Extender.Processing; using OINA.Extender.Processing.Ed; using OINA.Extender.Processing.Quant; /// /// OI Helper Static Class /// public static class OIHelper { /// /// IEdSpectrumAcquisitionController object /// private static IEdSpectrumAcquisitionController edSpectrumController; /// /// Controller for quant calibration /// private static IQuantCalibrationController quantCalibrationController; /// /// Settings for quant calibration /// private static IQuantCalibrationSettings quantCalibrationSettings; /// /// IEdSpectrumSettings object /// private static IEdSpectrumSettings edSpectrumSettings; /// /// IEdSpectrumProcessing object /// private static IEdSpectrumProcessing edSpectrumProcessing; /// /// IAutoIdSettings object /// private static IAutoIdSettings edAutoIdSettings; /// /// Semquantsettings object /// private static ISEMQuantSettings semQuantSettings; /// /// IMonitoringController object /// private static IMonitoringController monitoringController; /// /// IImageAcquisitionController object /// private static IImageAcquisitionController imageController; /// /// IImageSettings object /// private static IImageAcquisitionSettings imageAcquisitionSettings; /// /// IEdDetectorControl object /// private static IEdDetectorControl edDetectorControl; /// /// Gets EdSpectrum Acquisition Controller /// public static IEdSpectrumAcquisitionController EdSpectrumAcquisitionController { get { if (edSpectrumController == null) { edSpectrumController = AcquireFactory.CreateEdSpectrumServer(); } return edSpectrumController; } } /// /// Gets QuantCalibrationController Controller /// public static IQuantCalibrationController QuantCalibrationController { get { if (quantCalibrationController == null) { quantCalibrationController = AcquireFactory.CreateQuantCalibrationController(); } return quantCalibrationController; } } /// /// Gets QuantCalibrationSettings Settings /// public static IQuantCalibrationSettings QuantCalibrationSettings { get { if (quantCalibrationSettings == null) { quantCalibrationSettings = AcquireFactory.CreateQuantCalibrationSettings(); } return quantCalibrationSettings; } } /// /// Gets EdSpectrum Settings /// public static IEdSpectrumSettings EdSpectrumSettings { get { if (edSpectrumSettings == null) { edSpectrumSettings = AcquireFactory.CreateEdSpectrumSettings(); } return edSpectrumSettings; } } /// /// Gets EdSpectrum Processing /// public static IEdSpectrumProcessing EdSpectrumProcessing { get { if (edSpectrumProcessing == null) { edSpectrumProcessing = ProcessingFactory.CreateSpectrumProcessing(); } return edSpectrumProcessing; } } /// /// Gets AutoId Settings /// public static IAutoIdSettings AutoIdSettings { get { if (edAutoIdSettings == null) { edAutoIdSettings = ProcessingFactory.CreateAutoIdSettings(); } return edAutoIdSettings; } } /// /// Gets SEM Quant Settings /// public static ISEMQuantSettings SEMQuantSettings { get { if (semQuantSettings == null) { semQuantSettings = ProcessingFactory.CreateSEMQuantSettings(); } return semQuantSettings; } } /// /// Gets Monitoring Controller /// public static IMonitoringController MonitoringController { get { if (monitoringController == null) { monitoringController = AcquireFactory.CreateMonitorControl(); } return monitoringController; } } /// /// Gets Image Acquisition Controller /// public static IImageAcquisitionController ImageAcquisitionController { get { if (imageController == null) { imageController = AcquireFactory.CreateImageServer(); } return imageController; } } /// /// Gets Image Acquisition Settings /// public static IImageAcquisitionSettings ImageSettings { get { if (imageAcquisitionSettings == null) { imageAcquisitionSettings = AcquireFactory.CreateImageSettings(); } return imageAcquisitionSettings; } } /// /// Gets Image Acquisition Settings /// public static IEdDetectorControl EDDetectorControl { get { if (edDetectorControl == null) { edDetectorControl = AcquireFactory.CreateEdDetectorControl()[0]; } return edDetectorControl; } } /// /// Read a file to a byte array /// /// file path /// byte[] data public static byte[] FileToByteArray(string filePath) { if (!File.Exists(filePath)) { throw new System.InvalidOperationException("File does not exists!"); } FileStream fs = File.OpenRead(filePath); { byte[] data = new byte[fs.Length]; fs.Read(data, 0, (int)fs.Length); fs.Close(); return data; } } /// /// Save a byte array to a file /// /// file path /// data public static void ByteArrayToFile(string filePath, byte[] data) { // If file already exists, delete it. if (File.Exists(filePath)) { File.Delete(filePath); } using (FileStream fs = File.Create(filePath)) { fs.Write(data, 0, data.Length); } } /// /// Gets a collection of scan sizes that are allowed by the pixel sizes of the ScanCapabilities. /// /// The Minimum Pixel Size /// The Maximum Pixel Size /// An ICollection[double] of the scan sizes internal static ICollection GetScanSizes(double minimumPixelSize, double maximumPixelSize) { var scanSizesCollection = new Collection(); int minScanSize = (int)(1d / maximumPixelSize), maxScanSize = (int)(1d / minimumPixelSize); int scanSize = minScanSize; while (scanSize <= maxScanSize) { scanSizesCollection.Add(scanSize); scanSize *= 2; } return scanSizesCollection; } } }