using HighWayIot.Common; using HighWayIot.Repository.domain; using HighWayIot.Repository.service.Impl; using HighWayIot.TouchSocket; using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.Remoting.Channels; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using TouchSocket.Sockets; namespace RFIDSocket { public partial class RFIDSocket : Form { private static TcpServer Server = TcpServer.Instance; private static ServerDataAnalysis RFIDData = ServerDataAnalysis.Instance; XmlUtil _xmlUtil = XmlUtil.Instance; int PageNo = 1; public RFIDSocket() { InitializeComponent(); InitAction(); } /// /// 初始化 /// private void InitAction() { ErrorCountDataGridView.AutoGenerateColumns = false; if (Server.State != ServerState.Running) { MonitorState.Text = "关"; MonitorState.BackColor = Color.Yellow; } else if (Server.State == ServerState.Running) { MonitorState.Text = "开"; MonitorState.BackColor = Color.LightGreen; } List Ids = new List(); //Ids.Add(""); Ids.AddRange(_xmlUtil.ClientReader().Select(x => x.ID).ToList()); LineSelectCombobox.DataSource = null; LineSelectCombobox.DataSource = Ids; CleanOldData(); } /// /// 监视启停按钮 /// /// /// private void MonitorOnOff_Click(object sender, EventArgs e) { if (Server.State != ServerState.Running) { if (Server.ServerStart(_xmlUtil.ServerReader())) { MessageBox.Show("监听服务启动成功!如更改ip端口号请重新启动监听"); TableTimer.Enabled = true; } else { MessageBox.Show("监听服务启动失败!"); } } else if (Server.State == ServerState.Running) { if (Server.ServerStop()) { MessageBox.Show("监听服务关闭成功!"); TableTimer.Enabled = false; } else { MessageBox.Show("监听服务关闭失败!"); } } } /// /// Timer刷新 /// /// /// private void TableTimer_Tick(object sender, EventArgs e) { if (Server.State != ServerState.Running) { MonitorOnOff.Text = "启动监听"; MonitorState.Text = "关"; MonitorState.BackColor = Color.Yellow; } else if (Server.State == ServerState.Running) { MonitorOnOff.Text = "关闭监听"; MonitorState.Text = "开"; MonitorState.BackColor = Color.LightGreen; } RFIDData.GetData(LineSelectCombobox.Text); ConnectCountLabel.Text = Server.ConnectCount.ToString(); // 数量 int normalCount = RFIDData.rFIDContents.Where(x => x.ReadKind == "GR").Count(); int errorCount = RFIDData.rFIDContents.Where(x => x.ReadKind == "MR" || x.ReadKind == "NB").Count(); NormalReadNum.Text = normalCount.ToString(); ErrorReadNum.Text = errorCount.ToString(); //算比例 float percent = (float)normalCount / (float)RFIDData.rFIDContents.Count; percent *= 100f; ReadSuccessPercent.Text = $"%{percent}"; //展示格口号 string text = string.Empty; List list = new List(); // 错误的设备编号 foreach (var entity in RFIDData.rFIDContents) { if (entity.ReadKind == "MR" || entity.ReadKind == "NB") { list.Add(entity.DeviceNo); } } var deviceNoGroup = list.GroupBy(x => x); DataTable dataTable = new DataTable(); { dataTable.Columns.Add("BinNo"); dataTable.Columns.Add("ErrorCount"); }; foreach (var data in deviceNoGroup) { int deviceNo = data.LastOrDefault(); int deviceErrorCount = data.Count(); dataTable.Rows.Add(deviceNo.ToString(), deviceErrorCount.ToString()); } LineListBox.Items.Clear(); LineListBox.Items.AddRange(TcpServer.Instance.Ids.ToArray()); ErrorCountDataGridView.DataSource = null; ErrorCountDataGridView.DataSource = dataTable; ContentPages(); } /// /// 窗口关闭 /// /// /// private void RFIDSocket_FormClosing(object sender, FormClosingEventArgs e) { if (Server.State == ServerState.Running) { if (!Server.ServerStop()) { MessageBox.Show("监听服务关闭失败! 请成功关闭后再退出"); e.Cancel = true; } if (!Server.ServerDispose()) { MessageBox.Show("监听服务释放失败! 请再次尝试退出"); e.Cancel = true; } } } /// /// 刷新页面 /// private void ContentPages() { var list = RFIDData.rFIDContents.Skip((PageNo - 1) * 50).Take(50).ToList(); CotentData.DataSource = null; CotentData.DataSource = ServerDataAnalysis.Instance.ChangeReadResult(list); PageRange.Text = $"{((PageNo - 1) * 50) + 1} - {PageNo * 50}"; } /// /// 下一页 /// /// /// private void PgUp_Click(object sender, EventArgs e) { if (PageNo == 1) { MessageBox.Show("已经是首页!"); return; } PageNo--; ContentPages(); } /// /// 上一页 /// /// /// private void PgDn_Click(object sender, EventArgs e) { if (PageNo == 4) { MessageBox.Show("已经是尾页!"); return; } PageNo++; ContentPages(); } /// /// 日志界面 /// /// /// private void LogStart_Click(object sender, EventArgs e) { RFIDLog rFIDLog = new RFIDLog(); rFIDLog.Show(); } /// /// 清除所有报警 /// /// /// private void ClearError_Click(object sender, EventArgs e) { //if (RFIDData.ClearAllError()) //{ // MessageBox.Show("设备异常清除成功"); //} //else //{ // MessageBox.Show("设备异常清除失败"); //} } /// /// 格口盘点界面 /// /// /// private void BinAudlt_Click(object sender, EventArgs e) { RFIDBinAudlt form = new RFIDBinAudlt(); form.Show(); } /// /// 测试按钮 /// /// /// private void TestButton_Click(object sender, EventArgs e) { MessageFactory.Instance.ReadCodeRequestProcess(LineSelectCombobox.Text); } /// /// 清空三个月以前的数据 /// private void CleanOldData() { if (!BaseContentServiceImpl.Instance.DelBeforeMonthContent()) { MessageBox.Show("旧数据删除失败"); } } } }