AGVMonitor.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using AGV_WPF.DataControl;
  2. using AGV_WPF.Models;
  3. using AGV_WPF_Global;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Windows.Forms;
  12. namespace AGV_WPF
  13. {
  14. public partial class AGVMonitor : Form
  15. {
  16. List<int> listOnline = new List<int>();
  17. AGVInfoService infoService = new AGVInfoService();
  18. public AGVMonitor()
  19. {
  20. InitializeComponent();
  21. }
  22. private void AGVMonitor_Load(object sender, EventArgs e)
  23. {
  24. List<AGVInfoModel> list = GlobalPara.AgvInfoDic.Values.ToList<AGVInfoModel>();
  25. for(int i = 0; i < list.Count; i++)
  26. {
  27. comboBox1.Items.Add(i);
  28. }
  29. }
  30. private void button1_Click(object sender, EventArgs e)
  31. {
  32. List<AGVInfoModel> list = GlobalPara.AgvInfoDic.Values.ToList<AGVInfoModel>();
  33. var agvinfo = list.Find(o => o.AGVNUM.ToString() == comboBox1.Text);
  34. if (agvinfo != null)
  35. {
  36. agvinfo.RUNSTATUS_Cur = agvinfo.RUNSTATUS = int.Parse(comboBox2.Text);
  37. agvinfo.ROUTENUM = int.Parse(comboBox3.Text);
  38. agvinfo.MARKNUM = int.Parse(textBox1.Text);
  39. switch (int.Parse(comboBox4.Text) + 1)
  40. {
  41. #region 异常分类
  42. case 1:
  43. agvinfo.ALARMCODE = "1";
  44. agvinfo.ALARMINFO = "无异常";
  45. break;
  46. case 2:
  47. agvinfo.ALARMCODE = "2";
  48. agvinfo.ALARMINFO = "急停报警";
  49. break;
  50. case 3:
  51. agvinfo.ALARMCODE = "3";
  52. agvinfo.ALARMINFO = "防撞报警";
  53. break;
  54. case 4:
  55. agvinfo.ALARMCODE = "4";
  56. agvinfo.ALARMINFO = "牵引棒报警";
  57. break;
  58. case 5:
  59. agvinfo.ALARMCODE = "5";
  60. agvinfo.ALARMINFO = "障碍物";
  61. break;
  62. case 6:
  63. agvinfo.ALARMCODE = "6";
  64. agvinfo.ALARMINFO = "路线异常";
  65. break;
  66. case 7:
  67. agvinfo.ALARMCODE = "7";
  68. agvinfo.ALARMINFO = "电压异常";
  69. break;
  70. case 8:
  71. agvinfo.ALARMCODE = "8";
  72. agvinfo.ALARMINFO = "脱轨报警";
  73. break;
  74. case 9:
  75. agvinfo.ALARMCODE = "9";
  76. agvinfo.ALARMINFO = "低电压报警";
  77. break;
  78. case 10:
  79. agvinfo.ALARMCODE = "10";
  80. agvinfo.ALARMINFO = "低电压停机";
  81. break;
  82. case 11:
  83. agvinfo.ALARMCODE = "11";
  84. agvinfo.ALARMINFO = "超载报警";
  85. break;
  86. default:
  87. agvinfo.ALARMCODE = "256";
  88. agvinfo.ALARMINFO = "未知异常";
  89. break;
  90. #endregion
  91. }
  92. if (!listOnline.Contains(agvinfo.AGVNUM) && checkBox1.Checked)
  93. {
  94. listOnline.Add(agvinfo.AGVNUM);
  95. }
  96. infoService.Analyze(agvinfo);
  97. }
  98. }
  99. private void timer1_Tick(object sender, EventArgs e)
  100. {
  101. List<AGVInfoModel> list = GlobalPara.AgvInfoDic.Values.ToList<AGVInfoModel>();
  102. var agvs = list.FindAll(o => listOnline.Contains(o.AGVNUM));
  103. if (agvs != null && agvs.Count > 0)
  104. {
  105. for(int i = 0; i < agvs.Count; i++)
  106. {
  107. agvs[i].ConnectStatus = true;
  108. agvs[i].OffLineCount = 0;
  109. }
  110. }
  111. }
  112. }
  113. }