From ca2e8a7c3c9ead9a646646a1175f812ed55d14d2 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期五, 13 三月 2026 12:28:47 +0800
Subject: [PATCH] feat: add core entities

---
 Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceConfig.cs     |   53 +++++++++++++
 Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceState.cs      |   50 ++++++++++++
 Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/S7ClientConnection.cs |   28 +++++++
 Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/MemoryRegionConfig.cs |   52 +++++++++++++
 4 files changed, 183 insertions(+), 0 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceConfig.cs b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceConfig.cs
new file mode 100644
index 0000000..f3003bc
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceConfig.cs
@@ -0,0 +1,53 @@
+using Newtonsoft.Json;
+using WIDESEAWCS_S7Simulator.Core.Enums;
+
+namespace WIDESEAWCS_S7Simulator.Core.Entities
+{
+    /// <summary>
+    /// S7鏈嶅姟鍣ㄥ疄渚嬮厤缃�
+    /// </summary>
+    public class InstanceConfig
+    {
+        /// <summary>
+        /// 瀹炰緥鍞竴鏍囪瘑
+        /// </summary>
+        [JsonProperty("id")]
+        public string Id { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 瀹炰緥鍚嶇О
+        /// </summary>
+        [JsonProperty("name")]
+        public string Name { get; set; } = string.Empty;
+
+        /// <summary>
+        /// PLC鍨嬪彿
+        /// </summary>
+        [JsonProperty("plcType")]
+        public SiemensPLCType PLCType { get; set; }
+
+        /// <summary>
+        /// 鐩戝惉绔彛
+        /// </summary>
+        [JsonProperty("port")]
+        public int Port { get; set; }
+
+        /// <summary>
+        /// HSL婵�娲荤爜
+        /// </summary>
+        [JsonProperty("activationKey")]
+        public string ActivationKey { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 鏄惁鑷姩鍚姩
+        /// </summary>
+        [JsonProperty("autoStart")]
+        public bool AutoStart { get; set; }
+
+        /// <summary>
+        /// 鍐呭瓨鍖哄煙閰嶇疆
+        /// </summary>
+        [JsonProperty("memoryConfig")]
+        public MemoryRegionConfig MemoryConfig { get; set; } = new();
+    }
+}
diff --git a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceState.cs b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceState.cs
new file mode 100644
index 0000000..15d30d5
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceState.cs
@@ -0,0 +1,50 @@
+using WIDESEAWCS_S7Simulator.Core.Enums;
+
+namespace WIDESEAWCS_S7Simulator.Core.Entities
+{
+    /// <summary>
+    /// S7鏈嶅姟鍣ㄥ疄渚嬬姸鎬�
+    /// </summary>
+    public class InstanceState
+    {
+        /// <summary>
+        /// 瀹炰緥ID
+        /// </summary>
+        public string InstanceId { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 杩愯鐘舵��
+        /// </summary>
+        public InstanceStatus Status { get; set; }
+
+        /// <summary>
+        /// 褰撳墠杩炴帴鐨勫鎴风鏁伴噺
+        /// </summary>
+        public int ClientCount { get; set; }
+
+        /// <summary>
+        /// 绱澶勭悊璇锋眰鏁�
+        /// </summary>
+        public long TotalRequests { get; set; }
+
+        /// <summary>
+        /// 鍚姩鏃堕棿
+        /// </summary>
+        public DateTime? StartTime { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庢椿鍔ㄦ椂闂�
+        /// </summary>
+        public DateTime? LastActivityTime { get; set; }
+
+        /// <summary>
+        /// 杩炴帴鐨勫鎴风鍒楄〃
+        /// </summary>
+        public List<S7ClientConnection> Clients { get; set; } = new();
+
+        /// <summary>
+        /// 閿欒淇℃伅锛堝綋鐘舵�佷负Error鏃讹級
+        /// </summary>
+        public string? ErrorMessage { get; set; }
+    }
+}
diff --git a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/MemoryRegionConfig.cs b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/MemoryRegionConfig.cs
new file mode 100644
index 0000000..eedf656
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/MemoryRegionConfig.cs
@@ -0,0 +1,52 @@
+using Newtonsoft.Json;
+
+namespace WIDESEAWCS_S7Simulator.Core.Entities
+{
+    /// <summary>
+    /// 鍐呭瓨鍖哄煙閰嶇疆
+    /// </summary>
+    public class MemoryRegionConfig
+    {
+        /// <summary>
+        /// M鍖哄ぇ灏忥紙瀛楄妭锛夛紝榛樿1KB
+        /// </summary>
+        [JsonProperty("mRegionSize")]
+        public int MRegionSize { get; set; } = 1024;
+
+        /// <summary>
+        /// DB鍧楁暟閲忥紝榛樿100涓�
+        /// </summary>
+        [JsonProperty("dbBlockCount")]
+        public int DBBlockCount { get; set; } = 100;
+
+        /// <summary>
+        /// 姣忎釜DB鍧楀ぇ灏忥紙瀛楄妭锛夛紝榛樿1KB
+        /// </summary>
+        [JsonProperty("dbBlockSize")]
+        public int DBBlockSize { get; set; } = 1024;
+
+        /// <summary>
+        /// I鍖哄ぇ灏忥紙瀛楄妭锛夛紝榛樿256瀛楄妭
+        /// </summary>
+        [JsonProperty("iRegionSize")]
+        public int IRegionSize { get; set; } = 256;
+
+        /// <summary>
+        /// Q鍖哄ぇ灏忥紙瀛楄妭锛夛紝榛樿256瀛楄妭
+        /// </summary>
+        [JsonProperty("qRegionSize")]
+        public int QRegionSize { get; set; } = 256;
+
+        /// <summary>
+        /// T鍖烘暟閲忥紝榛樿64涓�
+        /// </summary>
+        [JsonProperty("tRegionCount")]
+        public int TRegionCount { get; set; } = 64;
+
+        /// <summary>
+        /// C鍖烘暟閲忥紝榛樿64涓�
+        /// </summary>
+        [JsonProperty("cRegionCount")]
+        public int CRegionCount { get; set; } = 64;
+    }
+}
diff --git a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/S7ClientConnection.cs b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/S7ClientConnection.cs
new file mode 100644
index 0000000..9faf06c
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/S7ClientConnection.cs
@@ -0,0 +1,28 @@
+namespace WIDESEAWCS_S7Simulator.Core.Entities
+{
+    /// <summary>
+    /// S7瀹㈡埛绔繛鎺ヤ俊鎭�
+    /// </summary>
+    public class S7ClientConnection
+    {
+        /// <summary>
+        /// 瀹㈡埛绔敮涓�鏍囪瘑
+        /// </summary>
+        public string ClientId { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 瀹㈡埛绔疘P鍦板潃鍜岀鍙�
+        /// </summary>
+        public string RemoteEndPoint { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 杩炴帴鏃堕棿
+        /// </summary>
+        public DateTime ConnectedTime { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庢椿鍔ㄦ椂闂�
+        /// </summary>
+        public DateTime LastActivityTime { get; set; }
+    }
+}

--
Gitblit v1.9.3