using Aitex.Core.RT.ConfigCenter; using Aitex.Core.RT.Event; using Aitex.Core.RT.IOCore; using Aitex.Core.RT.SCCore; using Aitex.Core.UI.ControlDataContext; using Aitex.Sorter.Common; using Aitex.Sorter.RT.Module.DBRecorder; using MECF.Framework.Common.DBCore; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.IOCore; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceModel; using System.Text; using System.Threading.Tasks; namespace Common.DataCenter { [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] public class QueryDataService : IQueryDataService { public Dictionary PollData(IEnumerable keys) { return DATA.PollData(keys); } public string GetConfigFileContent() { return SC.GetConfigFileContent(); } public Dictionary PollConfig(IEnumerable keys) { return CONFIG.PollConfig(keys); } public object GetData(string key) { return DATA.Poll(key); } public object GetConfig(string key) { return CONFIG.Poll(key); } public List GetDiList(string key) { var ret = IO.GetDiList(key); List result = new List(); ret.ForEach(x => result.Add(new NotifiableIoItem() { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, BoolValue = x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index, })); return result; } public List GetDoList(string key) { var ret = IO.GetDoList(key); List result = new List(); ret.ForEach(x => result.Add(new NotifiableIoItem() { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, BoolValue = x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index, })); return result; } public List GetAiList(string key) { var ret = IO.GetAiList(key); List result = new List(); ret.ForEach(x => result.Add(new NotifiableIoItem() { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, ShortValue = x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index, })); return result; } public List GetAoList(string key) { var ret = IO.GetAoList(key); List result = new List(); ret.ForEach(x => result.Add(new NotifiableIoItem() { Address = x.Addr, Name = x.Name, Description = x.Description, Index = x.Index, ShortValue = x.Value, Provider = x.Provider, BlockOffset = x.BlockOffset, BlockIndex = x.Index, })); return result; } public List QueryDBEvent(string sql) { return EV.QueryDBEvent(sql); } public List QueryDBCarrier(string sql) { return CarrierDataRecorder.QueryDBCarrier(sql); } public List QueryDBProcess(string sql) { return ProcessDataRecorder.QueryDBProcess(sql); } public List QueryDBWafer(string sql) { return WaferDataRecorder.QueryDBWafer(sql); } public List QueryDBMovement(string sql) { return WaferMoveHistoryRecorder.QueryDBMovement(sql); } public List QueryDBJobMovementByJobGuid(string jobGuid) { return JobMoveHistoryRecorder.QueryJobMovement(jobGuid); } public List QueryDBJobMovementByJobGuidAndStationName(string jobGuid, string stationName) { return JobMoveHistoryRecorder.QueryJobMovement(jobGuid, stationName); } public List GetHistoryData(IEnumerable keys, string recipeRunGuid, string module) { return ProcessDataRecorder.GetHistoryData(keys, recipeRunGuid, module); } public List GetOneDayHistoryData(IEnumerable keys, DateTime begin, string module) { return ProcessDataRecorder.GetOneDayHistoryData(keys, begin, module); } public List GetHistoryDataFromStartToEnd(IEnumerable keys, DateTime begin, DateTime end, string module) { return ProcessDataRecorder.GetHistoryDataFromStartToEnd(keys, begin, end, module); } public DataTable QueryData(string sql) { return DataQuery.Query(sql); } public object QueryDeviceWafer(string module) { return DATA.Poll(module + ".WaferInfos"); } public object QueryWafer(string module) { return DATA.Poll("All" + ".WaferInfos"); } public object QueryRobotWafer(string hand) { return DATA.Poll($"{ModuleName.Robot}.{hand}.WaferInfos"); } public object QueryDeviceState(string name) { return DATA.Poll($"{name}.Status"); } public string QueryDevice(string module, string key) { return DATA.Poll($"{module}.{key}").ToString(); } public object QueryLP(string module, string key) { return DATA.Poll($"{module}.{key}"); } public ObservableCollection GetDIList() { var result = (ObservableCollection)DATA.Poll("DIItemList"); return result; } public ObservableCollection GetDOList() { var result = (ObservableCollection)DATA.Poll("DOItemList"); return result; } public List QueryLog() { return (List)DATA.Poll("GetLogList"); } } }