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 作为历史根节点

---
 ModBusTcpController/ModBusTcpController.cs |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 101 insertions(+), 0 deletions(-)

diff --git a/ModBusTcpController/ModBusTcpController.cs b/ModBusTcpController/ModBusTcpController.cs
new file mode 100644
index 0000000..835e542
--- /dev/null
+++ b/ModBusTcpController/ModBusTcpController.cs
@@ -0,0 +1,101 @@
+锘縰sing HslCommunication.ModBus;
+
+namespace ModBusTcp
+{
+    public class ModBusTcpController
+    {
+        public string Ip { get; set; }
+        public int Port { get; set; }
+
+        private ModbusTcpNet client;
+
+        public ModBusTcpController(string ip, int port)
+        {
+            Ip = ip;
+            Port = port;
+        }
+
+        public bool Start(out string errMsg)
+        {
+            errMsg = string.Empty;
+            client = new ModbusTcpNet(Ip, Port);
+            var res = client.ConnectServer();
+            errMsg = res.Message;
+            return res.IsSuccess;
+        }
+
+        public bool ReadDIBool(string address, out bool res, out string msg)
+        {
+            var result = client?.ReadBool($"x=2;{address}");
+            msg = result?.Message;
+            res = result?.Content == true;
+            return result?.IsSuccess == true;
+        }
+
+        public bool ReadDOBool(string address, out bool res, out string msg)
+        {
+            var result = client?.ReadBool(address);
+            msg = result?.Message;
+            res = result?.Content == true;
+            return result?.IsSuccess == true;
+        }
+
+        public bool WriteBool(string address, bool value, out string msg)
+        {
+            msg = string.Empty;
+            var res = client?.Write(address, value);
+            msg = res.Message;
+            return res?.IsSuccess == true;
+        }
+
+        public bool ReadDIInt16(string address, out int res, out string msg)
+        {
+            var result = client?.ReadInt16($"x=2;{address}");
+            msg = result?.Message;
+            res = result?.Content ?? 0;
+            return result?.IsSuccess == true;
+        }
+
+        public bool ReadDOInt16(string address, out int res, out string msg)
+        {
+            var result = client?.ReadInt16(address);
+            msg = result?.Message;
+            res = result?.Content ?? 0;
+            return result?.IsSuccess == true;
+        }
+
+        public bool WriteInt16(string address, short value, out string msg)
+        {
+            msg = string.Empty;
+            var res = client?.Write(address, value);
+            msg = res.Message;
+            return res?.IsSuccess == true;
+        }
+
+        public bool ReadUInt16(string address, out ushort res, out string msg)
+        {
+            var result = client?.ReadUInt16(address);
+            msg = result?.Message;
+            res = result?.Content ?? 0;
+            return result?.IsSuccess == true;
+        }
+
+        public bool WriteUInt16(string address, ushort value, out string msg)
+        {
+            msg = string.Empty;
+            var res = client?.Write(address, value);
+            msg = res.Message;
+            return res?.IsSuccess == true;
+        }
+
+        public bool Close()
+        {
+            return client?.ConnectClose()?.IsSuccess == true;
+
+        }
+        public void Dispose()
+        {
+            client?.Dispose();
+        }
+    }
+}

--
Gitblit v1.9.1