123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Xml;
- using FEIApiControl;
- using OTSCLRINTERFACE;
- namespace OTSPartA_STDEditor
- {
- class EDSController
- {
- private COTSControlFunExport eds;
- static EDSController edsctrl = null;
- public static APIClass ApiClass = null;
- private static bool isFEI = false;
- private EDSController()
- {
- if (isFEI)
- {
- ApiClass = new APIClass();
- Connect();
- }
- else
- {
- eds = OTSCLRINTERFACE.COTSControlFunExport.GetControllerInstance();
- }
- }
- public static EDSController GetEDSController()
- {
- if (GetXMLInformations("EDSName") == "FEI")
- {
- isFEI = true;
- }
- if (edsctrl == null)
- {
- edsctrl = new EDSController();
- }
- return edsctrl;
- }
- public bool Connect()
- {
- if (isFEI)
- {
- string FEIIP =GetXMLInformations("FEIIP");
- string FEIPORT = GetXMLInformations("FEIPORT");
- if (FEIIP == "" || FEIPORT == "")
- {
- MessageBox.Show("FEI电镜端口配置为空!");
- return false;
- }
- if (ApiClass.isConnect())
- {
- return true;
- }
- return ApiClass.Connect(FEIIP, FEIPORT);
- }
- else
- {
- if (!eds.Init())
- {
- return false;
- }
- if (eds.IsConnected())
- {
- return true;
- }
- return eds.ConncetSem();
- }
- }
- /// <summary>
- /// 获取XML节点参数
- /// </summary>
- /// <param name="Name">节点参数名称</param>
- /// <returns>节点参数</returns>
- public static string GetXMLInformations(string Name)
- {
- try
- {
- string xmlFilePath = "Config/ProData/HardwareConfig.xml";
- string value = string.Empty;
- XmlDocument doc = new XmlDocument();
- doc.Load(xmlFilePath); //加载Xml文件
- XmlElement root = doc.DocumentElement; //获取根节点
- XmlNodeList mainNodes = root.GetElementsByTagName("Member"); //获取子节点集合
- foreach (XmlNode node in mainNodes)
- {
- //获取Name属性值
- string name = ((XmlElement)node).GetAttribute("RegName");
- if (name.Equals(Name))
- {
- value = ((XmlElement)node).GetAttribute("Value");
- break;
- }
- }
- return value;
- }
- catch (Exception)
- {
- return "";
- }
- }
- public bool Init()
- {
- if (isFEI)
- {
- return ApiClass.isConnect();
- }
- else
- {
- bool m_init = eds.EDSInit();
- return m_init;
- }
- }
- public bool CollectSpectrum(uint a_nXRayAQTime, ref uint[] a_XrayData)
- {
- if (isFEI)
- {
- Dictionary<string, double> eleItems = new Dictionary<string, double>();
- return ApiClass.AcquireSpectrum(false, ref eleItems, ref a_XrayData);
- }
- else
- {
- if (!eds.IsConnected())
- {
- return false;
- }
- return eds.CollectSpectrum(a_nXRayAQTime, ref a_XrayData);
- }
- }
- public bool DisConnect()
- {
- if (isFEI)
- {
- return ApiClass.DisConnect();
- }
- else
- {
- if (eds.IsConnected())
- {
- return eds.DisconnectSem();
- }
- return true;
- }
- }
- }
- }
|