//using CFX;
//using CFX.Structures;
//using Microsoft.AspNetCore.Http;
//using Sln.Iot.Business.Entity;
//using Sln.Iot.CFX.CFXConnect;
//using Sln.Iot.CFX.Event;
//using Sln.Iot.Common;
//using Sln.Iot.Config;
//using Sln.Iot.Model.Entity;
//using Sln.Iot.PLC;
//using Sln.Iot.Serilog;
//using Sln.Iot.Socket;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Net.NetworkInformation;
//using System.Text;
//using System.Threading.Tasks;
//namespace Sln.Iot.Business
//{
// public class MesReportBusiness
// {
// private Timer _timer;
// private readonly SerilogHelper _log = SerilogHelper.Instance;
// private readonly DeltaHttpClient _deltaHttpClient = DeltaHttpClient.Instance;
// private readonly AppConfig _appConfig = AppConfigSetting.Load();
// private readonly PLCConnect _plc = PLCConnect.Instance;
// CFXConnect1 _cfxHelper = CFXConnect1.Instance;
// CFXConnectOven _cfxHelper2 = CFXConnectOven.Instance;
// CFXConnect3 _cfxHelper3 = CFXConnect3.Instance;
// CFXConnect4 _cfxHelper4 = CFXConnect4.Instance;
// StationParametersModifiedEvent stationParametersModifiedEvent = new StationParametersModifiedEvent();
// public MesReportBusiness()
// {
// _deltaHttpClient.Init();
// _timer = new Timer(TimerCallback, null, 0, 1000 * 15);
// }
// public void TimerCallback(object? state)
// {
// ErrorGet(1);
// _deltaHttpClient.PostRequestSend(tranter(GlobalVar.Connect1Entity));
// ErrorGet(2);
// _deltaHttpClient.PostRequestSend(tranter(GlobalVar.Connect2Entity));
// ErrorGet(3);
// _deltaHttpClient.PostRequestSend(tranter(GlobalVar.Connect3Entity));
// ErrorGet(4);
// _deltaHttpClient.PostRequestSend(tranter(GlobalVar.Connect4Entity));
// _cfxHelper.PublishEvent(new CFXEnvelope(stationParametersModifiedEvent.Handle(ParameterSet(GlobalVar.Connect1Entity.InterfaceID,
// "制程设备",
// GlobalVar.Connect1Entity.Status,
// GlobalVar.Connect1Entity.Status,
// GlobalVar.Connect1Entity.StatusCode,
// GlobalVar.Connect1Entity.PassQuantity.ToString(),
// GlobalVar.Connect1Entity.FailQuantity.ToString(),
// GlobalVar.Connect1Entity.CycleTime.ToString(),
// GlobalVar.Connect1Entity.RunningTime.ToString(),
// GlobalVar.Connect1Entity.WaitingTime.ToString(),
// "1",
// GlobalVar.Connect1Entity.InputQuantity.ToString(),
// GlobalVar.Connect1Entity.ErrorCount.ToString(),
// GlobalVar.Connect1Entity.ErrorTime.ToString()
// ))));
// _cfxHelper2.PublishEvent(new CFXEnvelope(stationParametersModifiedEvent.Handle(ParameterSet(GlobalVar.Connect2Entity.InterfaceID,
// "制程设备",
// GlobalVar.Connect2Entity.Status,
// GlobalVar.Connect2Entity.Status,
// GlobalVar.Connect2Entity.StatusCode,
// GlobalVar.Connect2Entity.PassQuantity.ToString(),
// GlobalVar.Connect2Entity.FailQuantity.ToString(),
// GlobalVar.Connect2Entity.CycleTime.ToString(),
// GlobalVar.Connect2Entity.RunningTime.ToString(),
// GlobalVar.Connect2Entity.WaitingTime.ToString(),
// "1",
// GlobalVar.Connect2Entity.InputQuantity.ToString(),
// GlobalVar.Connect2Entity.ErrorCount.ToString(),
// GlobalVar.Connect2Entity.ErrorTime.ToString()
// ))));
// _cfxHelper3.PublishEvent(new CFXEnvelope(stationParametersModifiedEvent.Handle(ParameterSet(GlobalVar.Connect3Entity.InterfaceID,
// "制程设备",
// GlobalVar.Connect3Entity.Status,
// GlobalVar.Connect3Entity.Status,
// GlobalVar.Connect3Entity.StatusCode,
// GlobalVar.Connect3Entity.PassQuantity.ToString(),
// GlobalVar.Connect3Entity.FailQuantity.ToString(),
// GlobalVar.Connect3Entity.CycleTime.ToString(),
// GlobalVar.Connect3Entity.RunningTime.ToString(),
// GlobalVar.Connect3Entity.WaitingTime.ToString(),
// "1",
// GlobalVar.Connect3Entity.InputQuantity.ToString(),
// GlobalVar.Connect3Entity.ErrorCount.ToString(),
// GlobalVar.Connect3Entity.ErrorTime.ToString()
// ))));
// _cfxHelper4.PublishEvent(new CFXEnvelope(stationParametersModifiedEvent.Handle(ParameterSet(GlobalVar.Connect4Entity.InterfaceID,
// "制程设备",
// GlobalVar.Connect4Entity.Status,
// GlobalVar.Connect4Entity.Status,
// GlobalVar.Connect4Entity.StatusCode,
// GlobalVar.Connect4Entity.PassQuantity.ToString(),
// GlobalVar.Connect4Entity.FailQuantity.ToString(),
// GlobalVar.Connect4Entity.CycleTime.ToString(),
// GlobalVar.Connect4Entity.RunningTime.ToString(),
// GlobalVar.Connect4Entity.WaitingTime.ToString(),
// "1",
// GlobalVar.Connect4Entity.InputQuantity.ToString(),
// GlobalVar.Connect4Entity.ErrorCount.ToString(),
// GlobalVar.Connect4Entity.ErrorTime.ToString()
// ))));
// }
// private string tranter(MesReportEntity entity)
// {
// //entity.CycleTime = _appConfig.CycleTime;
// entity.RunningTime = (int)(DateTime.Now - GlobalVar.OpenTime).TotalSeconds;
// #region 傳送字的資料
// string strSendData;
// strSendData = "[{";
// // strSendData += "\"factory\":\"" + "DG5" + "\",";
// strSendData += "\"interfaceID\":\"" + entity.InterfaceID + "\",";
// // strSendData += "\"EquipType\":" + EquipType + ",";
// strSendData += "\"status\":" + entity.StatusCode + ",";
// strSendData += "\"statusCode\":\"" + entity.Status + "\",";
// strSendData += "\"passQty\":" + entity.PassQuantity + ",";
// strSendData += "\"failQty\":" + entity.FailQuantity + ",";
// strSendData += "\"errorCnt\":" + entity.ErrorCount + ",";
// strSendData += "\"errorTimes\":" + entity.ErrorTime + ",";
// strSendData += "\"cycleTime\":" + entity.CycleTime + ",";
// strSendData += "\"runningTime\":" + entity.RunningTime + ",";
// strSendData += "\"waitingTime\":" + entity.WaitingTime + ",";
// // strSendData += "\"selfCheck\":" + (SELFCHECK ? "1" : "0") + ",";
// strSendData += "\"selfCheck\":" + "1" + ",";
// strSendData += "\"inputQty\":" + entity.InputQuantity + ",";
// strSendData += "\"barcode\":\"" + entity.Barcode + "\",";
// strSendData += "\"model\":\"" + entity.Cya + "\",";
// strSendData += "\"paramList\":[";
// // strSendData += "{\"paramCode\":\"" + Key1 + "\",";
// // strSendData += "\"paramValue\":\"" + Value1 + "\"},";
// // strSendData += "{\"paramCode\":\"" + Key2 + "\",";
// // strSendData += "\"paramValue\":\"" + Value2 + "\"},";
// // strSendData += "{\"paramCode\":\"" + Key3 + "\",";
// // strSendData += "\"paramValue\":\"" + Value3 + "\"},";
// //因为我们的数据此部分没有,如果再remove,将删除[,导致格式错误
// // strSendData = strSendData.Remove(strSendData.Length - 1);//20170525 Tim 修改最後一個,沒刪除的bug
// strSendData += "]";
// strSendData += "}]";
// _cfxHelper.PublishEvent(new CFXEnvelope(stationParametersModifiedEvent.Handle(ParameterSet(entity.InterfaceID,
// "制程设备",
// entity.Status,
// entity.Status,
// entity.StatusCode,
// entity.PassQuantity.ToString(),
// entity.FailQuantity.ToString(),
// entity.CycleTime.ToString(),
// entity.RunningTime.ToString(),
// entity.WaitingTime.ToString(),
// "1",
// entity.InputQuantity.ToString(),
// entity.ErrorCount.ToString(),
// entity.ErrorTime.ToString()
// ))));
// #endregion
// return strSendData;
// }
// ///
// /// 设备状态获取
// ///
// ///
// private void ErrorGet(int deviceNo)
// {
// string status = "0";
// string statusCode = "0";
// if (deviceNo == 1) //真空箱
// {
// var r1 = _plc.ReadInt16(_plc.DeltaInstance1, "D15176");
// var r2 = _plc.ReadInt16(_plc.DeltaInstance2, "D15176");
// if (r1.IsSuccess && r2.IsSuccess)
// {
// if (r1.Content == 1)
// {
// GlobalVar.Connect1Entity.StatusCode = r1.Content.ToString();
// GlobalVar.Connect1Entity.Status = StatusJudge(r1.Content, 2).ToString();
// }
// else if (r2.Content == 1)
// {
// GlobalVar.Connect1Entity.StatusCode = r2.Content.ToString();
// GlobalVar.Connect1Entity.Status = StatusJudge(r2.Content, 3).ToString();
// }
// else
// {
// GlobalVar.Connect1Entity.StatusCode = "0";
// GlobalVar.Connect1Entity.Status = StatusJudge(0, 1).ToString();
// }
// if (GlobalVar.Connect1Entity.Status == "1")
// {
// if (GlobalVar.Connect1Entity.IsError == false)
// {
// GlobalVar.Connect1Entity.ErrorCount++;
// GlobalVar.Connect1Entity.LastErrorTime = DateTime.Now;
// GlobalVar.Connect1Entity.IsError = true;
// }
// else
// {
// GlobalVar.Connect1Entity.ErrorTime = (int)(DateTime.Now - GlobalVar.Connect1Entity.LastErrorTime).TotalSeconds;
// }
// }
// else
// {
// if (GlobalVar.Connect1Entity.IsError == true)
// {
// GlobalVar.Connect1Entity.IsError = false;
// }
// }
// }
// else
// {
// _log.Error($"读取PLC状态失败: 真空箱1{r1.IsSuccess} - {r1.Message}; 真空箱2{r2.IsSuccess} - {r2.Message}");
// }
// }
// else if (deviceNo == 2) //上料提升机
// {
// var r1 = _plc.ReadInt16(_plc.DeltaInstance3, "D15176");
// if (r1.IsSuccess)
// {
// GlobalVar.Connect2Entity.StatusCode = r1.Content.ToString();
// GlobalVar.Connect2Entity.Status = StatusJudge(r1.Content, 4).ToString();
// if (GlobalVar.Connect2Entity.Status == "1")
// {
// if (GlobalVar.Connect2Entity.IsError == false)
// {
// GlobalVar.Connect2Entity.ErrorCount++;
// GlobalVar.Connect2Entity.LastErrorTime = DateTime.Now;
// GlobalVar.Connect2Entity.IsError = true;
// }
// else
// {
// GlobalVar.Connect2Entity.ErrorTime = (int)(DateTime.Now - GlobalVar.Connect2Entity.LastErrorTime).TotalSeconds;
// }
// }
// else
// {
// if (GlobalVar.Connect2Entity.IsError == true)
// {
// GlobalVar.Connect2Entity.IsError = false;
// }
// }
// }
// else
// {
// _log.Error($"读取PLC状态失败: 上料提升机{r1.IsSuccess} - {r1.Message}");
// }
// }
// else if (deviceNo == 3) //烤箱
// {
// var r1 = _plc.ReadInt16(_plc.DeltaInstance0, "D15176");
// if (r1.IsSuccess)
// {
// GlobalVar.Connect3Entity.StatusCode = r1.Content.ToString();
// GlobalVar.Connect3Entity.Status = StatusJudge(r1.Content, 1).ToString();
// if (GlobalVar.Connect3Entity.Status == "1")
// {
// if (GlobalVar.Connect3Entity.IsError == false)
// {
// GlobalVar.Connect3Entity.ErrorCount++;
// GlobalVar.Connect3Entity.LastErrorTime = DateTime.Now;
// GlobalVar.Connect3Entity.IsError = true;
// }
// else
// {
// GlobalVar.Connect3Entity.ErrorTime = (int)(DateTime.Now - GlobalVar.Connect3Entity.LastErrorTime).TotalSeconds;
// }
// }
// else
// {
// if (GlobalVar.Connect3Entity.IsError == true)
// {
// GlobalVar.Connect3Entity.IsError = false;
// }
// }
// }
// else
// {
// _log.Error($"读取PLC状态失败: 烤箱{r1.IsSuccess} - {r1.Message}");
// }
// }
// else if (deviceNo == 4) //下料提升机
// {
// var r1 = _plc.ReadInt16(_plc.DeltaInstance4, "D15176");
// if (r1.IsSuccess)
// {
// GlobalVar.Connect4Entity.StatusCode = r1.Content.ToString();
// GlobalVar.Connect4Entity.Status = StatusJudge(r1.Content, 4).ToString();
// if (GlobalVar.Connect4Entity.Status == "1")
// {
// if (GlobalVar.Connect4Entity.IsError == false)
// {
// GlobalVar.Connect4Entity.ErrorCount++;
// GlobalVar.Connect4Entity.LastErrorTime = DateTime.Now;
// GlobalVar.Connect4Entity.IsError = true;
// }
// else
// {
// GlobalVar.Connect4Entity.ErrorTime = (int)(DateTime.Now - GlobalVar.Connect4Entity.LastErrorTime).TotalSeconds;
// }
// }
// else
// {
// if (GlobalVar.Connect4Entity.IsError == true)
// {
// GlobalVar.Connect4Entity.IsError = false;
// }
// }
// }
// else
// {
// _log.Error($"读取PLC状态失败: 下料提升机{r1.IsSuccess} - {r1.Message}");
// }
// }
// //return (status, statusCode);
// }
// private void ErrorJudge(bool errorSituation)
// {
// }
// ///
// /// 根据StatusCode判断Status
// ///
// ///
// ///
// private int StatusJudge(int sc, int num)
// {
// if (sc == 1)
// {
// //return 1;
// try
// {
// switch (num)
// {
// case 1: //烤箱
// //return 1;
// return _plc.ReadInt16(_plc.DeltaInstance0, "D262").Content;
// case 2: //真空箱1
// //return 1;
// return _plc.ReadInt16(_plc.DeltaInstance1, "D262").Content;
// case 3: //真空箱2
// //return 1;
// return _plc.ReadInt16(_plc.DeltaInstance2, "D262").Content;
// case 4: //上聊提升机
// //return 1;
// return _plc.ReadInt16(_plc.DeltaInstance3, "D262").Content;
// default:
// return 1;
// }
// }
// catch
// {
// return 1;
// }
// }
// else
// {
// return 0;
// }
// }
// ///
// /// stationParameters参数设置
// ///
// public List ParameterSet(
// string interfaceID,
// string equipType,
// string status,
// string light,
// string statusCode,
// string passQty,
// string failQty,
// string cycleTime,
// string runningTime,
// string waitingTime,
// string selfCheck,
// string inputQty,
// string errorCnt,
// string errorTimes
// )
// {
// return new List()
// {
// new GenericParameter()
// {
// Name = "InterfaceID",
// Value = interfaceID
// },
// new GenericParameter()
// {
// Name = "EquipType",
// Value = equipType
// },
// new GenericParameter()
// {
// Name = "Status",
// Value = status
// },
// new GenericParameter()
// {
// Name = "Light",
// Value = light
// },
// new GenericParameter()
// {
// Name = "StatusCode",
// Value = statusCode
// },
// new GenericParameter()
// {
// Name = "PassQty",
// Value = passQty
// },
// new GenericParameter()
// {
// Name = "FailQty",
// Value = failQty
// },
// new GenericParameter()
// {
// Name = "CycleTime",
// Value = cycleTime
// },
// new GenericParameter()
// {
// Name = "RunningTime",
// Value = runningTime
// },
// new GenericParameter()
// {
// Name = "WaitingTime",
// Value = waitingTime
// },
// new GenericParameter()
// {
// Name = "SelfCheck",
// Value = selfCheck
// },
// new GenericParameter()
// {
// Name = "InputQty",
// Value = inputQty
// },
// new GenericParameter()
// {
// Name = "ErrorCnt",
// Value = errorCnt
// },
// new GenericParameter()
// {
// Name = "ErrorTimes",
// Value = errorTimes
// },
// };
// }
// }
//}