启停与复位
控制面端点。周期数据交换进行中调用 stop / reset / config/reload 会打断正在交换的应用关系。先 GET /api/status 确认 connected=false,再操作。接口本身不因此返回 4xx。
POST /api/start
启动从站。无请求体。已在运行则幂等成功。
授权复查未通过时 ok=false,message 带 (AUTH)。无可用网口或数据面打开失败时进入 ConfigError,ok=false,原因见 message(与 GET /api/status 的 statusMessage 同源)。
{ "ok": true, "message": "从站已启动", "errorCode": 0, "timestamp": "…" }
ok | message |
|---|---|
true | 从站已启动 |
true | 从站已在运行 (重复启动, 已忽略) |
false | 启动从站失败 (AUTH): 授权复查未通过, 请检查授权状态后重试 |
false | 从站未启动: …(ConfigError) |
false | 启动从站失败: 从站启动未成功, 请检查服务日志获取详情 |
失败时 errorCode 为服务当前记录值(启动失败路径会落入协议栈返回码)。
POST /api/start HTTP/1.1
Host: 127.0.0.1
Content-Length: 0
POST /api/stop
软停止:停数据面,保留实例、句柄与绑卡。再次 start 复用,不重建。未运行也返回 ok=true。真销毁只在服务进程退出时发生。
{ "ok": true, "message": "从站已停止", "errorCode": 0, "timestamp": "…" }
内部错误时 ok=false,message 为通用文案,细节只进服务日志。
POST /api/reset
本地复位。控制器经 DCP Reset 触发时栈已自动处理,本端点是本机等价路径。
{ "mode": "communication" }
mode | 行为 |
|---|---|
communication | 软停 + 重启。应用参数记录保留 |
factory | 销毁实例 + 全新启动。用户区记录清空。通讯参数 / IP 仍由控制器 DCP ResetToFactory 处理 |
未知 mode 或缺字段 → HTTP 400。
成功示例:
{
"ok": true,
"mode": "communication",
"message": "通信复位已执行: 从站已重启 (应用参数记录保留)",
"timestamp": "…"
}
POST /api/config/reload
重读 appsettings.json + DARRA_PNS_* 环境变量 + 运行配置 XML,写回服务运行配置。下次启动从站才对栈生效,不热切运行中的应用关系。未运行时立即按新尺寸对齐过程映像窗口。
密钥 Api:ApiKey 不随本端点热更新。
{
"ok": true,
"message": "配置已重载并写入服务运行配置 (下次启动从站生效); 对运行中栈生效需重启服务",
"reloadedAt": "…"
}
解析失败:
{
"ok": false,
"message": "配置重载失败: 运行配置 XML 解析未通过, 请检查 GUI 导出的配置后重试",
"reloadedAt": "…"
}
errorCode 恒为 0(配置解析无协议栈返回码)。