From d216edd0e9931d71664f33e625cff6d8131a0fad Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期五, 13 三月 2026 16:00:40 +0800
Subject: [PATCH] 重构: 实现前后端分离架构
---
Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 46 insertions(+), 4 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs
index 951d0ab..f94fe46 100644
--- a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs
+++ b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Server/Controllers/SimulatorInstancesController.cs
@@ -26,14 +26,26 @@
/// 鑾峰彇鎵�鏈夊疄渚嬪垪琛�
/// </summary>
[HttpGet]
- [ProducesResponseType(typeof(IEnumerable<InstanceState>), StatusCodes.Status200OK)]
- public ActionResult<IEnumerable<InstanceState>> GetAllInstances()
+ [ProducesResponseType(typeof(IEnumerable<object>), StatusCodes.Status200OK)]
+ public ActionResult GetAllInstances()
{
try
{
var instances = _instanceManager.GetAllInstances();
- var states = instances.Select(i => i.GetState()).ToList();
- return Ok(states);
+ var result = instances.Select(i => new
+ {
+ instanceId = i.Config.Id,
+ name = i.Config.Name,
+ plcType = i.Config.PLCType.ToString(),
+ port = i.Config.Port,
+ status = i.GetState().Status.ToString(),
+ clientCount = i.GetState().ClientCount,
+ totalRequests = i.GetState().TotalRequests,
+ startTime = i.GetState().StartTime,
+ lastActivityTime = i.GetState().LastActivityTime,
+ errorMessage = i.GetState().ErrorMessage
+ }).ToList();
+ return Ok(result);
}
catch (Exception ex)
{
@@ -129,6 +141,36 @@
}
/// <summary>
+ /// 鑾峰彇鎸囧畾瀹炰緥鐨勯厤缃�
+ /// </summary>
+ [HttpGet("{id}/config")]
+ [ProducesResponseType(typeof(InstanceConfig), StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
+ public ActionResult<InstanceConfig> GetInstanceConfig(string id)
+ {
+ try
+ {
+ if (string.IsNullOrWhiteSpace(id))
+ {
+ return BadRequest(new { error = "Instance ID is required" });
+ }
+
+ var instance = _instanceManager.GetInstance(id);
+ if (instance == null)
+ {
+ return NotFound(new { error = $"Instance with ID '{id}' not found" });
+ }
+
+ return Ok(instance.Config);
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Failed to get instance config {InstanceId}", id);
+ return StatusCode(StatusCodes.Status500InternalServerError, new { error = "Failed to retrieve instance config" });
+ }
+ }
+
+ /// <summary>
/// 鏇存柊瀹炰緥閰嶇疆
/// </summary>
[HttpPut("{id}")]
--
Gitblit v1.9.3