From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点
---
SimpleUtil/HMI.Simple.Util/DataSender.cs | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 103 insertions(+), 0 deletions(-)
diff --git a/SimpleUtil/HMI.Simple.Util/DataSender.cs b/SimpleUtil/HMI.Simple.Util/DataSender.cs
new file mode 100644
index 0000000..bc22380
--- /dev/null
+++ b/SimpleUtil/HMI.Simple.Util/DataSender.cs
@@ -0,0 +1,103 @@
+锘縰sing System;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
+
+namespace HMI.Simple.Util
+{
+ public class DataSender
+ {
+ private string _ip;
+ private int _port;
+ private bool _isConnected = false; // 鏄惁杩炴帴
+ private Socket _clientSocket; // 濂楁帴瀛�
+ private Thread _receiveThread = null; // 鎺ユ敹绾跨▼
+ private volatile bool needRecieve = true;
+
+ public event EventHandler<string> ExecuteMessageChanged;
+
+ public DataSender(string ip, int port)
+ {
+ this._ip = ip;
+ this._port = port;
+ }
+
+ public void Connect()
+ {
+ try
+ {
+ _clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ IPAddress ipaddress = IPAddress.Parse(this._ip);
+ IPEndPoint endpoint = new IPEndPoint(ipaddress, _port);
+ _clientSocket.Connect(endpoint);
+ _isConnected = true;
+ _receiveThread = new Thread(Received);
+ _receiveThread.IsBackground = true;
+ _receiveThread.Start();
+ }
+ catch (Exception ex)
+ {
+ needRecieve = false;
+ _receiveThread?.Abort();
+ _receiveThread = null;
+ _clientSocket.Close();
+ _isConnected = false;
+ throw ex;
+ }
+ }
+
+ public void Disconnect()
+ {
+ needRecieve = false;
+ _clientSocket.Close();
+ _receiveThread?.Abort();
+ _receiveThread = null;
+ _isConnected = false;
+ }
+
+ private void Send(string data)
+ {
+ byte[] arrClientSendMsg = Encoding.UTF8.GetBytes(data);
+ _clientSocket.Send(arrClientSendMsg);
+ }
+
+ private void Received()
+ {
+ //while (needRecieve)
+ //{
+ // byte[] arrRecMsg = new byte[1024 * 1024];
+ // int length = _clientSocket.Receive(arrRecMsg);
+ // string strRecMsg = Encoding.UTF8.GetString(arrRecMsg, 0, length);
+ // ExecuteMessageChanged?.Invoke(this, strRecMsg);
+ // Thread.Sleep(100);
+ //}
+ }
+
+
+ public bool SendStep(int ovenIndex, int cellIndex,
+ string name, string send, string value, string unit, string upper, string lower, string result, string time,
+ out string errorMsg)
+ {
+
+ errorMsg = null;
+ try
+ {
+ if (!_isConnected)
+ {
+ errorMsg = "Not Connected";
+ return false;
+ }
+
+ string msg = $"{ovenIndex};{cellIndex};{name},{send},{value},{unit},{upper},{lower},{result},{time}\n";
+ Send(msg);
+ return true;
+ }
+ catch (Exception ex)
+ {
+ errorMsg = ex.Message;
+ return false;
+ }
+ }
+ }
+}
--
Gitblit v1.9.1