| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- 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<byte> list = new List<byte>();
- 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<string>(LogNet_BeforeSaveToFile), message);
- return;
- }
- textBox1.AppendText(message + Environment.NewLine);
- }
- private void LogNet_BeforeSaveToFile(object sender, HslCommunication.LogNet.HslEventArgs e)
- {
- if (InvokeRequired)
- {
- BeginInvoke(new Action<object, HslCommunication.LogNet.HslEventArgs>(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;
- }
- }
- }
- }
|