Sic08/Modules/Mainframe/Devices/AkOpticsViper.cs

566 lines
18 KiB
C#
Raw Normal View History

2023-03-03 15:42:13 +08:00
//using Aitex.Core.Common.DeviceData;
//using Aitex.Core.RT.DataCenter;
//using Aitex.Core.RT.Device;
//using Aitex.Core.RT.Event;
//using Aitex.Core.RT.Log;
//using Aitex.Core.Util;
//using MECF.Framework.Common.CommonData;
//using MECF.Framework.Common.Event;
//using RTOverEthernetDevelopmentKit;
//using System;
//using System.Collections.ObjectModel;
//using System.Runtime.Serialization;
//namespace Mainframe.Devices
//{
// #region ZM 2021-08-03
// [DataContract]
// [Serializable]
// public class OpticsViperItem : NotifiableItem, IDeviceData
// {
// [DataMember]
// public int WaferNo { get; set; }
// [DataMember]
// public double DateTime { get; set; }
// [DataMember]
// public double Para1 { get; set; }
// [DataMember]
// public double Para2 { get; set; }
// [DataMember]
// public double Para3 { get; set; }
// [DataMember]
// public double Para4 { get; set; }
// [DataMember]
// public double Temperature { get; set; }
// public OpticsViperItem()
// {
// //DisplayName = "Undefined";
// //WaferNo = 0;
// //DateTime = 0.0;
// //Para1 = 0.0;
// //Para2 = 0.0;
// //Para3 = 0.0;
// //Para4 = 0.0;
// //Temperature = 0.0;
// }
// public void Update(IDeviceData data)
// {
// }
// }
// #endregion
// #region ZM 2021-08-04
// public class OpticsViperStatus : NotifiableItem
// {
// public int Status { get; set; }
// public int Head { get; set; }
// public int DetectorMask { get; set; }
// public int Reserved { get; set; }
// public double SusAvg_1 { get; set; }
// public double SusAvg_2 { get; set; }
// public double SusAvg_3 { get; set; }
// public double SusAvg_4 { get; set; }
// public double WaferAvg_1 { get; set; }
// public double WaferAvg_2 { get; set; }
// public double WaferAvg_3 { get; set; }
// public double WaferAvg_4 { get; set; }
// public OpticsViperStatus()
// {
// Status = 0;
// Head = 0;
// DetectorMask = 0;
// Reserved = 0;
// SusAvg_1 = 0.0;
// SusAvg_2 = 0.0;
// SusAvg_3 = 0.0;
// SusAvg_4 = 0.0;
// WaferAvg_1 = 0.0;
// WaferAvg_2 = 0.0;
// WaferAvg_3 = 0.0;
// WaferAvg_4 = 0.0;
// }
// }
// #endregion
// #region ZM 2021-08-04
// public class OpticsViperInfo
// {
// private int _lastStatus = 0;
// public int lastStatus
// {
// get
// {
// return _lastStatus;
// }
// }
// private OpticsViperStatus _opticsViperStatus = new OpticsViperStatus();
// public OpticsViperStatus opticsViperStatus
// {
// get
// {
// return _opticsViperStatus;
// }
// }
// private AITOpticsViperData[] _innerOpticsViperItem = new AITOpticsViperData[0];
// public AITOpticsViperData[] innerOpticsViperItem
// {
// get
// {
// return _innerOpticsViperItem;
// }
// }
// private AITOpticsViperData[] _middleOpticsViperItem = new AITOpticsViperData[0];
// public AITOpticsViperData[] middleOpticsViperItem
// {
// get
// {
// return _middleOpticsViperItem;
// }
// }
// private AITOpticsViperData[] _outerOpticsViperItem = new AITOpticsViperData[0];
// public AITOpticsViperData[] outerOpticsViperItem
// {
// get
// {
// return _outerOpticsViperItem;
// }
// }
// private AITOpticsViperData[] _exOpticsViperItem = new AITOpticsViperData[0];
// public AITOpticsViperData[] exOpticsViperItem
// {
// get
// {
// return _exOpticsViperItem;
// }
// }
// public OpticsViperInfo()
// {
// _innerOpticsViperItem = new AITOpticsViperData[0];
// _middleOpticsViperItem = new AITOpticsViperData[0];
// _outerOpticsViperItem = new AITOpticsViperData[0];
// _exOpticsViperItem = new AITOpticsViperData[0];
// }
// public OpticsViperInfo(OpticsViperStatus opticsViperStatus, AITOpticsViperData[] innerOpticsViperItem, AITOpticsViperData[] middleOpticsViperItem, AITOpticsViperData[] outerOpticsViperItem)
// {
// _opticsViperStatus = opticsViperStatus;
// _innerOpticsViperItem = innerOpticsViperItem;
// _middleOpticsViperItem = middleOpticsViperItem;
// _outerOpticsViperItem = outerOpticsViperItem;
// }
// public OpticsViperInfo(OpticsViperStatus opticsViperStatus, AITOpticsViperData[] innerOpticsViperItem, AITOpticsViperData[] middleOpticsViperItem, AITOpticsViperData[] outerOpticsViperItem, AITOpticsViperData[] exOpticsViperItem)
// {
// _opticsViperStatus = opticsViperStatus;
// _innerOpticsViperItem = innerOpticsViperItem;
// _middleOpticsViperItem = middleOpticsViperItem;
// _outerOpticsViperItem = outerOpticsViperItem;
// _exOpticsViperItem = exOpticsViperItem;
// _lastStatus = opticsViperStatus.Status;
// }
// public void SetlastStatus(int lastStatus)
// {
// _lastStatus = lastStatus;
// }
// }
// public class AkOpticsViper : IDevice
// {
// public AkOpticsViper(string module, string name)
// {
// this.Name = name;
// this.Module = module;
// RT = new RTOverEthernet();
// //DATA.Subscribe($"PM1.{Name}.OpticsViperInfo", () => _opticsViperInfo);
// }
// private RTOverEthernet RT = null;
// private bool IsNewStatus = false;
// private PeriodicJob _thread;//工作线程
// private OpticsViperInfo _opticsViperInfo = new OpticsViperInfo();
// public event Action<string, AlarmEventItem> OnDeviceAlarmStateChanged;
// /// <summary>
// /// 接受到数据时触发事件
// /// </summary>
// public event Action<OpticsViperInfo> DataReceivedEvent;
// /// <summary>
// /// 通讯数据
// /// </summary>
// public OpticsViperInfo OpticsViperInfo
// {
// get
// {
// return _opticsViperInfo;
// }
// set
// {
// _opticsViperInfo = value;
// DataReceivedEvent?.Invoke(_opticsViperInfo);
// }
// }
// //public AITOpticsViperData[] innerOpticsViperItem
// //{
// // get;
// // set;
// //}
// //public AITOpticsViperData[] middleOpticsViperItem
// //{
// // get;
// // set;
// //}
// //public AITOpticsViperData[] outerOpticsViperItem
// //{
// // get;
// // set;
// //}
// //private OpticsViperItem[] _exOpticsViperItem = new OpticsViperItem[0];
// //public OpticsViperItem[] exOpticsViperItem
// //{
// // get
// // {
// // return _exOpticsViperItem;
// // }
// //}
// // public OpticsViperItem[] InnerOpticsViperItem { get; set; }
// public string Module { get; set; }
// public string Name { get; set; }
// public bool HasAlarm => false;
// public AkOpticsViper()
// {
// RT = new RTOverEthernet();
// RT.CommunicationBroken += RT_CommunicationBroken;
// }
// private void RT_CommunicationBroken(object sender, RTCommunicationEventArgs e)
// {
// LOG.Write("AkOptics-" + e.Command);
// }
// public OpticsViperItem InitOpticsViperItem()
// {
// OpticsViperItem opticsViperItem = new OpticsViperItem();
// opticsViperItem.WaferNo = 0;
// opticsViperItem.DateTime = 0.0;
// opticsViperItem.Para1 = 0.0;
// opticsViperItem.Para2 = 0.0;
// opticsViperItem.Para3 = 0.0;
// opticsViperItem.Para4 = 0.0;
// opticsViperItem.Temperature = 0.0;
// return opticsViperItem;
// }
// public AITOpticsViperData ConvertTempData(int WaferNo, TempData tempData)
// {
// AITOpticsViperData opticsViperItem = new AITOpticsViperData();
// opticsViperItem.WaferNo = WaferNo;
// opticsViperItem.DateTime = tempData.DateTime;
// opticsViperItem.Para1 = tempData.Para1;
// opticsViperItem.Para2 = tempData.Para2;
// opticsViperItem.Para3 = tempData.Para3;
// opticsViperItem.Para4 = tempData.Para4;
// opticsViperItem.Temperature = tempData.Temperature;
// return opticsViperItem;
// }
// public AITOpticsViperData[] ConvertTempData(TempData[] tempData)
// {
// AITOpticsViperData[] opticsViperItem = new AITOpticsViperData[tempData.Length];
// for (int i = 0; i < tempData.Length; i++)
// {
// opticsViperItem[i] = ConvertTempData(i + 1, tempData[i]);
// }
// return opticsViperItem;
// }
// public OpticsViperStatus ConvertStatusData(BEI_SYSTEM_STATUS_EX statusData)
// {
// OpticsViperStatus opticsViperStatus = new OpticsViperStatus();
// opticsViperStatus.Status = statusData.nStatus;
// opticsViperStatus.Head = statusData.Head;
// opticsViperStatus.DetectorMask = statusData.DetectorMask;
// opticsViperStatus.Reserved = statusData.Reserved;
// opticsViperStatus.SusAvg_1 = statusData.SusAvg_1;
// opticsViperStatus.SusAvg_2 = statusData.SusAvg_2;
// opticsViperStatus.SusAvg_3 = statusData.SusAvg_3;
// opticsViperStatus.SusAvg_4 = statusData.SusAvg_4;
// opticsViperStatus.WaferAvg_1 = statusData.WaferAvg_1;
// opticsViperStatus.WaferAvg_2 = statusData.WaferAvg_2;
// opticsViperStatus.WaferAvg_3 = statusData.WaferAvg_3;
// opticsViperStatus.WaferAvg_4 = statusData.WaferAvg_4;
// return opticsViperStatus;
// }
// public void Connect()
// {
// try
// {
// RT.Init();
// _thread = new PeriodicJob(1000, OnTimer, "AkOpticsTimer", true);//测试用,直接连接
// DATA.Subscribe($"PM1.{Name}.InnerOpticsViperItem", () => _opticsViperInfo?.innerOpticsViperItem);
// DATA.Subscribe($"PM1.{Name}.MiddleOpticsViperItem", () => _opticsViperInfo?.middleOpticsViperItem);
// DATA.Subscribe($"PM1.{Name}.OuterOpticsViperItem", () => _opticsViperInfo?.outerOpticsViperItem);
// DATA.Subscribe($"PM1.{Name}.ExOpticsViperItem", () => _opticsViperInfo?.exOpticsViperItem);
// DATA.Subscribe($"PM1.{Name}.OpticsViperStatus", () => _opticsViperInfo?.opticsViperStatus);
// //Task.Factory.StartNew(()=> {
// //});
// }
// catch (Exception e)
// {
// LOG.Write(e.ToString());
// }
// }
// public void SendRunInfo(string runID, string susID)
// {
// //Acceptable value:
// //ProcessWell = 0
// //DetectorConnectError = 1 探测器连接错误=1
// //TimeIntervalError = 2(posible freeze)时间间隔错误=2可能冻结
// //MemeoryAllocError = 3, 记忆和忠诚错误=3
// //Initializing = 4 //Default Temperature status 默认温度状态
// //UnStarted = 5//未启动的
// // LOG.Write("");
// // LOG.Write("error reload recipe file list, type = " + processType);
// // 可接受的值:
// //processwell = 0
// //DetectorConnectError = 1
// //时间间隔错误 = 2可能冻结
// //memoryallocerror = 3
// //初始化 = 4//默认温度状态
// //未启动的
// //RT.SystemStatus.nStatus
// try
// {
// if (RT.Data.status.nStatus == 0)
// {
// RT.SendRunInfo(runID, susID);
// }
// else
// {
// AddLog(_opticsViperInfo.lastStatus, (_opticsViperInfo.lastStatus == 0 ? false : true));
// }
// }
// catch (Exception e)
// {
// LOG.Write(e.ToString());
// }
// }
// public void AddLog(int Status, bool IsAdd)
// {
// switch (Status)
// {
// case 0:
// if (IsAdd) LOG.Write("AkOptics-" + Status.ToString() + ": ProcessWell");
// break;
// case 1:
// if (IsAdd) LOG.Write("AkOptics-" + Status.ToString() + ": DetectorConnectError");
// break;
// case 2:
// if (IsAdd) LOG.Write("AkOptics-" + Status.ToString() + ": TimeIntervalError");
// break;
// case 3:
// if (IsAdd) LOG.Write("AkOptics-" + Status.ToString() + ": MemeoryAllocError");
// break;
// case 4:
// if (IsAdd) LOG.Write("AkOptics-" + Status.ToString() + ": Initializing");
// break;
// case 5:
// if (IsAdd) LOG.Write("AkOptics-" + Status.ToString() + ": UnStarted");
// break;
// default:
// if (IsAdd) LOG.Write("AkOptics-" + Status.ToString() + ": 未知错误");
// break;
// }
// }
// public void StartRT()
// {
// try
// {
// RT.StartRT();
// }
// catch (Exception e)
// {
// LOG.Write(e.ToString());
// }
// }
// public void Close()
// {
// try
// {
// RT.Close();
// _thread?.Stop();
// }
// catch (Exception ex)
// {
// LOG.Write("AkOpticsViper Close Error:" + ex.Message);
// }
// }
// public object locker = new object();
// public bool ReadData()
// {
// bool Result = false;
// try
// {
// //lock (locker)
// {
// int lastStatus = _opticsViperInfo.lastStatus;
// //innerOpticsViperItem = ConvertTempData1(RT.Data.zoneInner);
// //middleOpticsViperItem = ConvertTempData1(RT.Data.zoneMiddle);
// //outerOpticsViperItem= ConvertTempData1(RT.Data.zoneOuter);
// OpticsViperInfo = new OpticsViperInfo(ConvertStatusData(RT.Data.status), ConvertTempData(RT.Data.zoneInner), ConvertTempData(RT.Data.zoneMiddle), ConvertTempData(RT.Data.zoneOuter), ConvertTempData(RT.Data.zoneEx));
// if (_opticsViperInfo.lastStatus == lastStatus)
// {
// IsNewStatus = false;
// }
// else
// {
// IsNewStatus = true;
// _opticsViperInfo.SetlastStatus(lastStatus);
// AddLog(_opticsViperInfo.lastStatus, (_opticsViperInfo.lastStatus == 0 ? false : true));
// }
// Result = true;
// }
// }
// catch (Exception e)
// {
// LOG.Write("AkOpticsViper ReadData Error:" + e.ToString());
// }
// return Result;
// }
// public bool OnTimer()
// {
// try
// {
// //if (RT.Data.status.nStatus == 0)//如果未读取到数据,尝试重新连接
// //{
// // Close();
// // Connect();
// //}
// ReadData();
// }
// catch (Exception ex)
// {
// LOG.Write("AkOpticsViper OnTimer Error" + ex.Message);
// }
// return true;
// }
// public void ChangeStepID(int stepID, string stepName, string stepDesc)
// {
// try
// {
// if (RT.Data.status.nStatus == 0)
// {
// RT.ChangeStepID(stepID, stepName, stepDesc);
// }
// else
// {
// AddLog(_opticsViperInfo.lastStatus, (_opticsViperInfo.lastStatus == 0 ? false : true));
// }
// }
// catch (Exception e)
// {
// LOG.Write(e.ToString());
// }
// }
// #region 接口
// /// <summary>
// /// 初始化
// /// </summary>
// /// <returns></returns>
// public bool Initialize()
// {
// try
// {
// Connect();
// return true;
// }
// catch (Exception ex)
// {
// EV.PostAlarmLog("AkOpticsViper", "AkOpticsViper connect failed.");
// LOG.Write(ex);
// return false;
// }
// }
// public void Monitor()
// {
// return;
// }
// /// <summary>
// /// 终止
// /// </summary>
// public void Terminate()
// {
// try
// {
// Close();
// }
// catch (Exception ex)
// {
// System.Diagnostics.Trace.WriteLine(ex.Message);
// }
// }
// /// <summary>
// /// 复位
// /// </summary>
// public void Reset()
// {
// //_Job.Stop();
// //Close();
// //IsNewStatus = true;
// }
// #endregion
// }
// #endregion
//}