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;
}
}
}