using AGV_WPF.DataControl; using AGV_WPF.Models; using AGV_WPF_Global; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace AGV_WPF { public partial class AGVMonitor : Form { List listOnline = new List(); AGVInfoService infoService = new AGVInfoService(); public AGVMonitor() { InitializeComponent(); } private void AGVMonitor_Load(object sender, EventArgs e) { List list = GlobalPara.AgvInfoDic.Values.ToList(); for(int i = 0; i < list.Count; i++) { comboBox1.Items.Add(i); } } private void button1_Click(object sender, EventArgs e) { List list = GlobalPara.AgvInfoDic.Values.ToList(); var agvinfo = list.Find(o => o.AGVNUM.ToString() == comboBox1.Text); if (agvinfo != null) { agvinfo.RUNSTATUS_Cur = agvinfo.RUNSTATUS = int.Parse(comboBox2.Text); agvinfo.ROUTENUM = int.Parse(comboBox3.Text); agvinfo.MARKNUM = int.Parse(textBox1.Text); switch (int.Parse(comboBox4.Text) + 1) { #region 异常分类 case 1: agvinfo.ALARMCODE = "1"; agvinfo.ALARMINFO = "无异常"; break; case 2: agvinfo.ALARMCODE = "2"; agvinfo.ALARMINFO = "急停报警"; break; case 3: agvinfo.ALARMCODE = "3"; agvinfo.ALARMINFO = "防撞报警"; break; case 4: agvinfo.ALARMCODE = "4"; agvinfo.ALARMINFO = "牵引棒报警"; break; case 5: agvinfo.ALARMCODE = "5"; agvinfo.ALARMINFO = "障碍物"; break; case 6: agvinfo.ALARMCODE = "6"; agvinfo.ALARMINFO = "路线异常"; break; case 7: agvinfo.ALARMCODE = "7"; agvinfo.ALARMINFO = "电压异常"; break; case 8: agvinfo.ALARMCODE = "8"; agvinfo.ALARMINFO = "脱轨报警"; break; case 9: agvinfo.ALARMCODE = "9"; agvinfo.ALARMINFO = "低电压报警"; break; case 10: agvinfo.ALARMCODE = "10"; agvinfo.ALARMINFO = "低电压停机"; break; case 11: agvinfo.ALARMCODE = "11"; agvinfo.ALARMINFO = "超载报警"; break; default: agvinfo.ALARMCODE = "256"; agvinfo.ALARMINFO = "未知异常"; break; #endregion } if (!listOnline.Contains(agvinfo.AGVNUM) && checkBox1.Checked) { listOnline.Add(agvinfo.AGVNUM); } infoService.Analyze(agvinfo); } } private void timer1_Tick(object sender, EventArgs e) { List list = GlobalPara.AgvInfoDic.Values.ToList(); var agvs = list.FindAll(o => listOnline.Contains(o.AGVNUM)); if (agvs != null && agvs.Count > 0) { for(int i = 0; i < agvs.Count; i++) { agvs[i].ConnectStatus = true; agvs[i].OffLineCount = 0; } } } } }