FrmServerTest.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using HslCommunication;
  10. using HslCommunication.Core.Net;
  11. using HslCommunication.Enthernet;
  12. namespace PCLCommunication
  13. {
  14. public partial class FrmServerTest : Form
  15. {
  16. public FrmServerTest()
  17. {
  18. InitializeComponent();
  19. }
  20. private void btnStart_Click(object sender, EventArgs e)
  21. {
  22. Start();
  23. }
  24. private void btnStop_Click(object sender, EventArgs e)
  25. {
  26. if (simplifyServer != null)
  27. {
  28. simplifyServer.ServerClose();
  29. simplifyServer = null;
  30. lbls.Text = "停止";
  31. }
  32. }
  33. private MelsecA1EAsciiServer simplifyServer;
  34. private void Start()
  35. {
  36. if (simplifyServer != null)
  37. {
  38. simplifyServer.ServerClose();
  39. }
  40. try
  41. {
  42. simplifyServer = new MelsecA1EAsciiServer();
  43. //simplifyServer.Token = new Guid(textBox3.Text);
  44. //simplifyServer.ReceiveStringEvent += SimplifyServer_ReceiveStringEvent;
  45. simplifyServer.ReceivedBytesEvent += SimplifyServer_ReceivedBytesEvent;
  46. simplifyServer.LogNet = new HslCommunication.LogNet.LogNetSingle(Application.StartupPath + @"\ServerLogs\log.txt");
  47. simplifyServer.LogNet.BeforeSaveToFile += LogNet_BeforeSaveToFile;
  48. simplifyServer.ServerStart(int.Parse(txtServerPort.Text.Trim()));
  49. lbls.Text = "启动";
  50. }
  51. catch (Exception ex)
  52. {
  53. MessageBox.Show("启动失败:" + ex.Message);
  54. }
  55. }
  56. private void SimplifyServer_ReceivedBytesEvent(AppSession arg1, NetHandle arg2, byte[] arg3)
  57. {
  58. //throw new NotImplementedException();
  59. int tt = (int)arg2;
  60. if (tt == 500)
  61. {
  62. // 读取 标识
  63. simplifyServer.SendMessage(arg1, "81000001");
  64. return;
  65. }
  66. else if (tt == 501)
  67. {
  68. // 读 条码
  69. byte[] uu = Encoding.ASCII.GetBytes("123456789010");
  70. StringBuilder sb = new StringBuilder("8100");
  71. foreach (byte item in uu)
  72. {
  73. sb.Append(item.ToString("X2"));
  74. }
  75. simplifyServer.SendMessage(arg1, sb.ToString());
  76. return;
  77. }
  78. else if (tt == -521)
  79. {
  80. // 写型号
  81. string str = Encoding.ASCII.GetString(arg3);
  82. List<byte> list = new List<byte>();
  83. for (int i = 2; i < str.Length; i = i + 2)
  84. {
  85. list.Add(Convert.ToByte(str.Substring(i, 2), 16));
  86. }
  87. string d501 = Encoding.ASCII.GetString(list.ToArray());
  88. LogNet_BeforeSaveToFile("PLC传递过来的产品型号为:" + d501);
  89. simplifyServer.SendMessage(arg1, "8300");
  90. return;
  91. }
  92. else if (tt == -500)
  93. {
  94. // 写 标识
  95. string uu = Encoding.ASCII.GetString(arg3);
  96. LogNet_BeforeSaveToFile("PLC传递过来的标识号为:" + uu);
  97. simplifyServer.SendMessage(arg1, "8300");
  98. return;
  99. }
  100. else if (tt < 0)
  101. {
  102. // 写入
  103. string uu = Encoding.ASCII.GetString(arg3);
  104. LogNet_BeforeSaveToFile("PLC传递过来的字符串为:" + uu);
  105. simplifyServer.SendMessage(arg1, "8300");
  106. return;
  107. }
  108. simplifyServer.SendMessage(arg1, "0000");
  109. }
  110. private void LogNet_BeforeSaveToFile(string message)
  111. {
  112. if (InvokeRequired)
  113. {
  114. BeginInvoke(new Action<string>(LogNet_BeforeSaveToFile), message);
  115. return;
  116. }
  117. textBox1.AppendText(message + Environment.NewLine);
  118. }
  119. private void LogNet_BeforeSaveToFile(object sender, HslCommunication.LogNet.HslEventArgs e)
  120. {
  121. if (InvokeRequired)
  122. {
  123. BeginInvoke(new Action<object, HslCommunication.LogNet.HslEventArgs>(LogNet_BeforeSaveToFile), sender, e);
  124. return;
  125. }
  126. this.textBox1.AppendText(e.HslMessage.ToString() + Environment.NewLine);
  127. }
  128. private void FrmServerTest_FormClosed(object sender, FormClosedEventArgs e)
  129. {
  130. if (simplifyServer != null)
  131. {
  132. simplifyServer.ServerClose();
  133. simplifyServer = null;
  134. }
  135. }
  136. }
  137. }