wanshenmean
2026-03-13 ca2e8a7c3c9ead9a646646a1175f812ed55d14d2
feat: add core entities

- Add MemoryRegionConfig for memory region sizes
- Add InstanceConfig for server configuration
- Add S7ClientConnection for client info
- Add InstanceState for server state tracking

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
已添加4个文件
183 ■■■■■ 文件已修改
Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceConfig.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/InstanceState.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/MemoryRegionConfig.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Core/Entities/S7ClientConnection.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
}
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; }
    }
}
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;
    }
}
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>
        /// å®¢æˆ·ç«¯IP地址和端口
        /// </summary>
        public string RemoteEndPoint { get; set; } = string.Empty;
        /// <summary>
        /// è¿žæŽ¥æ—¶é—´
        /// </summary>
        public DateTime ConnectedTime { get; set; }
        /// <summary>
        /// æœ€åŽæ´»åŠ¨æ—¶é—´
        /// </summary>
        public DateTime LastActivityTime { get; set; }
    }
}