UserControl2.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. using IMCS.DefaultList;
  2. using IMCS.Logic;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. using YG;
  13. namespace IMCS.UControl
  14. {
  15. public partial class UserControl2 : UserControl
  16. {
  17. bool Run = false;
  18. short StartIndex = 0;
  19. short EndIndex = 0;
  20. public System.ComponentModel.BindingList<WeiLiTaskDefaultList> CurrentTask = new BindingList<WeiLiTaskDefaultList>();
  21. public UserControl2()
  22. {
  23. InitializeComponent();
  24. this.Load += UserControl2_Load;
  25. }
  26. YG.Device.DeviceS7 s7;
  27. LongHaiTe longHaiTe;
  28. private void UserControl2_Load(object sender, EventArgs e)
  29. {
  30. longHaiTe = new LongHaiTe();
  31. longHaiTe.DeviceInit();
  32. longHaiTe.DeviceStart();
  33. longHaiTe.Msg += LongHaiTe_Msg;
  34. foreach (Control cc in this.tableLayoutPanel1.Controls)
  35. {
  36. if (cc is Label)
  37. {
  38. Label lb = (Label)cc;
  39. if (!lb.Text.Equals("控制机柜"))
  40. {
  41. lb.AllowDrop = true;
  42. lb.MouseDown += new MouseEventHandler(Lb_MouseDown1);
  43. lb.DragEnter += new DragEventHandler(Label_DragEnter);
  44. lb.DragDrop += new DragEventHandler(Label_DragDrop);
  45. lb.BackColor = System.Drawing.Color.AliceBlue;
  46. lb.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
  47. lb.AutoSize = false;
  48. lb.Width = 60;
  49. lb.Height = 60;
  50. }
  51. }
  52. }
  53. Task.Factory.StartNew(async () =>
  54. {
  55. while (true && !Run)
  56. {
  57. await Task.Delay(100);
  58. if (CurrentTask.Where(m => !m.Task_GameOver).Count() > 0)
  59. {
  60. CurrentTask.Where(m => !m.Task_GameOver).FirstOrDefault().FirstOrDefaultYG((t) =>
  61. {
  62. if (!t.Task_Send)
  63. {
  64. Write_Plc((short)t.Task_Index, t.Task_StartIndex, t.Task_EndIndex, t.Task_Operation);
  65. t.Task_Send = true;
  66. }
  67. });
  68. }
  69. }
  70. });
  71. }
  72. private void Lb_MouseDown1(object sender, MouseEventArgs e)
  73. {
  74. Label startlable = sender as Label;
  75. if ((e.Button == System.Windows.Forms.MouseButtons.Left))
  76. {
  77. startlable.DoDragDrop(startlable, DragDropEffects.Copy | DragDropEffects.Move);
  78. //形成拖拽效果,移动+拷贝的组合效果
  79. }
  80. }
  81. private void Label_DragEnter(object sender, DragEventArgs e)
  82. {
  83. e.Effect = DragDropEffects.Copy;
  84. }
  85. private void Write_Plc(short title, short start, short end, short operatio)
  86. {
  87. longHaiTe.DeviceSend("DB3.12", title.ToString().ReturnBtyesWtitString());
  88. longHaiTe.DeviceSend("DB3.6", start);
  89. longHaiTe.DeviceSend("DB3.8", end);
  90. longHaiTe.DeviceSend("DB3.10", operatio);
  91. }
  92. private void Label_DragDrop(object sender, DragEventArgs e)
  93. {
  94. Label lb = (Label)sender;
  95. EndIndex = (short)lb.Tag.ObjectToInt();
  96. var cc = (Label)e.Data.GetData(typeof(Label));
  97. StartIndex = cc.Tag.ObjectToShort();
  98. Run = false;
  99. int currentTaskCount = CurrentTask.Where(m => m.Task_StartIndex.Equals(StartIndex) && m.Task_EndIndex.Equals(EndIndex) && m.Task_GameOver).Count();
  100. if (currentTaskCount > 0)
  101. {
  102. System.Windows.Forms.MessageBox.Show("当前任务列表中存在和拖拽内容相似的任务,当前拖拽不执行");
  103. }
  104. else
  105. {
  106. CurrentTask.Add(new WeiLiTaskDefaultList() { Task_Index = CurrentTask.Count + 1, Task_EndIndex = EndIndex, Task_Operation = 1, Task_Type = TaskType.取, Task_StartIndex = StartIndex });
  107. CurrentTask.Add(new WeiLiTaskDefaultList() { Task_Index = CurrentTask.Count + 1, Task_EndIndex = EndIndex, Task_Operation = 3, Task_Type = TaskType.放, Task_StartIndex = StartIndex });
  108. }
  109. }
  110. private void LongHaiTe_Msg(string obje1, string obje2, string obje3)
  111. {
  112. System.Console.WriteLine($"{obje1}-->>{obje2}-->{obje3}");
  113. if (obje3.Length - obje3.Replace(",", "").Length != 1)
  114. {
  115. MessageBox.Show("接受到的值解析出现问题");
  116. return;
  117. }
  118. string[] vs = obje3.Split(new string[] { "," }, StringSplitOptions.None);
  119. short state = vs[0].ObjectToShort();
  120. CurrentTask.Where(m => m.Task_Index.Equals(vs[1].StringToInt())).FirstOrDefault().FirstOrDefaultYG((t) =>
  121. {
  122. if (t.Task_Type.Equals(TaskType.取) && state == 2)
  123. {
  124. t.Task_GameOver = true;
  125. }
  126. else if (t.Task_Type.Equals(TaskType.放) && state == 4)
  127. {
  128. t.Task_GameOver = true;
  129. }
  130. t.Task_RunState = state;
  131. });
  132. }
  133. private void button2_Click(object sender, EventArgs e)
  134. {
  135. //short st = textBox3.Text.ObjectToShort(); ;
  136. //longHaiTe.DeviceSend(textBox4.Text, st);
  137. //var cc = longHaiTe.DeviceRead<short>(this.textBox3.Text);
  138. //System.Windows.Forms.MessageBox.Show($"{cc}+>>");
  139. }
  140. private void button1_Click(object sender, EventArgs e)
  141. {
  142. //byte st = textBox1.Text.ObjectToByte();
  143. //byte et = textBox2.Text.ObjectToByte();
  144. //byte ex = this.textBox5.Text.ObjectToByte();
  145. //s7.SiemensS7Net.Write("DB3.6", st);
  146. //System.Threading.Thread.Sleep(200);
  147. //s7.SiemensS7Net.Write("DB3.8", et);
  148. //System.Threading.Thread.Sleep(200);
  149. //s7.SiemensS7Net.Write("DB3.10", ex);
  150. Byte[] cc = s7.SiemensS7Net.Read("DB3.10", 4).Content;
  151. short tt = cc.GetShort(2);
  152. }
  153. private void button3_Click(object sender, EventArgs e)
  154. {
  155. //var cc = longHaiTe.DeviceRead<short>(this.textBox4.Text);
  156. //MessageBox.Show(cc.ToString());
  157. }
  158. int iiii = 0;
  159. private void button1_Click_1(object sender, EventArgs e)
  160. {
  161. string guid = Guid.NewGuid().ToString().Substring(0, 5);
  162. byte[] bt = new byte[30];
  163. byte[] item = Encoding.ASCII.GetBytes(guid);
  164. Array.Copy(item, 0, bt, 0, item.Length);
  165. longHaiTe.DeviceSend("DB3.12", bt);
  166. //lb_view.Text = guid;
  167. MessageBox.Show(guid);
  168. }
  169. private void button2_Click_1(object sender, EventArgs e)
  170. {
  171. //var CC = longHaiTe.DeviceRead<byte[]>("DB3.10", 22);
  172. //{
  173. // MessageBox.Show(BitConverter.ToString(CC));
  174. //}
  175. }
  176. private void button1_Click_2(object sender, EventArgs e)
  177. {
  178. string guid = Guid.NewGuid().ToString().Substring(0, 5);
  179. byte[] bt = new byte[30];
  180. byte[] item = Encoding.ASCII.GetBytes(guid);
  181. Array.Copy(item, 0, bt, 0, item.Length);
  182. longHaiTe.DeviceSend("DB3.12", bt);
  183. //lb_view.Text = guid;
  184. MessageBox.Show(guid);
  185. }
  186. }
  187. }