using HighWayIot.Repository.domain; using HighWayIot.Repository.service; using HighWayIot.Repository.service.Impl; using HighWayIot.TouchSocket; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; namespace RFIDSocket { /// /// 数据解析类 /// public class ServerDataAnalysis { private static readonly Lazy lazy = new Lazy(() => new ServerDataAnalysis()); public static ServerDataAnalysis Instance => lazy.Value; public List rFIDContents = new List(); //public List rFIDHeartbeats = new List(); //public List HeartbeatsState = new List(); //public List rFIDStates = new List(); //public List AlarmState = new List(); public IContentService ContentService = new BaseContentServiceImpl(); //public IHeartbeatService HeartbeatService = new BaseHeartbeatServiceImpl(); //public IStateService StateService = new BaseStateServiceImpl(); /// /// 获取数据解析 /// public void GetData() { rFIDContents = ContentService.GetContentInfos().Reverse().Take(200).ToList(); //rFIDStates = StateService.GetStateInfos(); //var StateGroup = rFIDStates.GroupBy(x => x.DeviceNo); //AlarmState.Clear(); //foreach(var a in StateGroup) //{ // var b = a.LastOrDefault(); // if (b.DeviceState) // { // AlarmState.Add(b); // } //} //rFIDHeartbeats = HeartbeatService.GetHeartbeatInfos(); //var HeartBeatGroup = rFIDHeartbeats.GroupBy(x => x.DeviceNo); //HeartbeatsState.Clear(); //foreach (var a in HeartBeatGroup) //{ // var b = a.LastOrDefault(); // if (DateTime.Now - b.BeatTime > TimeSpan.FromSeconds(10)) // { // b.TimeSpan = SecondToTime(Convert.ToInt32((DateTime.Now - b.BeatTime).TotalSeconds)); // HeartbeatsState.Add(b); // } //} } ///// ///// 清除报警 ///// ///// //public bool ClearAllError() //{ // return StateService.SetAllNoError(); //} /// /// 秒转时间 /// /// /// private string SecondToTime(int t) { int m = t / 60; int s = t % 60; if (m == 0) { return "00 分 " + s.ToString("00") + " 秒"; } return m.ToString("00") + " 分 " + s.ToString("00") + " 秒"; } public static List ChangeReadResult(List list) { foreach (var item in list) { if (item.ReadKind == "GR") { item.ReadKind = "正常"; } else if (item.ReadKind == "MR") { item.ReadKind = "多标签"; } else if (item.ReadKind == "NB") { item.ReadKind = "无读"; } } return list; } } }