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; using HslCommunication; using HslCommunication.Core.Net; using HslCommunication.Enthernet; namespace PCLCommunication { public partial class FrmServerTest : Form { public FrmServerTest() { InitializeComponent(); } private void btnStart_Click(object sender, EventArgs e) { Start(); } private void btnStop_Click(object sender, EventArgs e) { if (simplifyServer != null) { simplifyServer.ServerClose(); simplifyServer = null; lbls.Text = "停止"; } } private MelsecA1EAsciiServer simplifyServer; private void Start() { if (simplifyServer != null) { simplifyServer.ServerClose(); } try { simplifyServer = new MelsecA1EAsciiServer(); //simplifyServer.Token = new Guid(textBox3.Text); //simplifyServer.ReceiveStringEvent += SimplifyServer_ReceiveStringEvent; simplifyServer.ReceivedBytesEvent += SimplifyServer_ReceivedBytesEvent; simplifyServer.LogNet = new HslCommunication.LogNet.LogNetSingle(Application.StartupPath + @"\ServerLogs\log.txt"); simplifyServer.LogNet.BeforeSaveToFile += LogNet_BeforeSaveToFile; simplifyServer.ServerStart(int.Parse(txtServerPort.Text.Trim())); lbls.Text = "启动"; } catch (Exception ex) { MessageBox.Show("启动失败:" + ex.Message); } } private void SimplifyServer_ReceivedBytesEvent(AppSession arg1, NetHandle arg2, byte[] arg3) { //throw new NotImplementedException(); int tt = (int)arg2; if (tt == 500) { // 读取 标识 simplifyServer.SendMessage(arg1, "81000001"); return; } else if (tt == 501) { // 读 条码 byte[] uu = Encoding.ASCII.GetBytes("123456789010"); StringBuilder sb = new StringBuilder("8100"); foreach (byte item in uu) { sb.Append(item.ToString("X2")); } simplifyServer.SendMessage(arg1, sb.ToString()); return; } else if (tt == -521) { // 写型号 string str = Encoding.ASCII.GetString(arg3); List list = new List(); for (int i = 2; i < str.Length; i = i + 2) { list.Add(Convert.ToByte(str.Substring(i, 2), 16)); } string d501 = Encoding.ASCII.GetString(list.ToArray()); LogNet_BeforeSaveToFile("PLC传递过来的产品型号为:" + d501); simplifyServer.SendMessage(arg1, "8300"); return; } else if (tt == -500) { // 写 标识 string uu = Encoding.ASCII.GetString(arg3); LogNet_BeforeSaveToFile("PLC传递过来的标识号为:" + uu); simplifyServer.SendMessage(arg1, "8300"); return; } else if (tt < 0) { // 写入 string uu = Encoding.ASCII.GetString(arg3); LogNet_BeforeSaveToFile("PLC传递过来的字符串为:" + uu); simplifyServer.SendMessage(arg1, "8300"); return; } simplifyServer.SendMessage(arg1, "0000"); } private void LogNet_BeforeSaveToFile(string message) { if (InvokeRequired) { BeginInvoke(new Action(LogNet_BeforeSaveToFile), message); return; } textBox1.AppendText(message + Environment.NewLine); } private void LogNet_BeforeSaveToFile(object sender, HslCommunication.LogNet.HslEventArgs e) { if (InvokeRequired) { BeginInvoke(new Action(LogNet_BeforeSaveToFile), sender, e); return; } this.textBox1.AppendText(e.HslMessage.ToString() + Environment.NewLine); } private void FrmServerTest_FormClosed(object sender, FormClosedEventArgs e) { if (simplifyServer != null) { simplifyServer.ServerClose(); simplifyServer = null; } } } }