Commit Graph

4 Commits

Author SHA1 Message Date
ypc 2ed51a5caa refactor: Reclose_logic.json 精简 — 去除 desc/rule 字段
信号对象仅保留 no + saddr,门对象仅保留 type + id + from/gates_in/to
2026-07-06 17:32:40 +08:00
ypc 7b40f4aecf feat: 新增 Reclose_logic.json — 分层可视化配置文件
基于 Reclose_logic.txt 自动生成,将扁平节点/连线格式转换为
直观可读的分层 JSON:
- 顶层: 3 条独立逻辑链 (OR / NOT / 组合逻辑)
- 每链: 输入信号 → 门电路(递归嵌套) → 输出信号
- 门电路: title/type/id/rule/from(直连信号)/gates_in(上游门)/to(输出)
- 附带信号名称、描述 (来自 datacenter_out.xml)
2026-07-06 17:07:25 +08:00
ypc 12dcec0f31 feat: PLC逻辑配置页面 + 配置文件去重修复 + 前端WebSocket修复
【PLC逻辑配置页面】(new: plc_config.js, 1947行)
- 三Tab页: 信号列表 / 逻辑图查看器 / 新建配置编辑器
- Canvas渲染: 节点渐变+阴影+左侧色条+引脚圈+贝塞尔连线+发光效果
- 查看器: 使用文件中保存的x/y坐标(与编辑器布局一致),首次命中链路匹配
- 编辑器: 左击选中连线高亮(橙色)+右键/Delete删除,双击节点修改,拖拽布局
- 支持11种逻辑元件: 输入/输出/与门/或门/非门/62p延时/62d延时/上升/下降沿/SR/RS触发器

【配置文件去重修复】
- Reclose_logic.txt: 消除两个AND#0重复ID,修复为AND#0 + AND#3
- generateAndSaveConfig: 保存前自动检测并修正重复 type+id
- initEditor: 加载时消除已有重复ID + 更新editNextGateIdx防止后续冲突
- 保存格式扩展: node支持inPins(第5字段),link支持dstPin(第4字段)

【前端WebSocket修复】
- plc_config.js语法错误(缺少闭合})导致PlcConfigPage未定义
- App.init()在WsClient.connect()之前崩溃显示已断开

【后端】
- ws_method.cpp: curd:add 后立即推送信号列表
- dc_cfg_check.cpp: 数据中心配置检查
- plc.cpp: PLC模块配置路径更新
- myDatacenter.h: 新增接口声明

【文档+样式】
- PLC配置文件解析与生成.md: 模块分析文档
- style.css: PLC配置页面样式(Canvas/表格/图例/Modal)
- datacenter_out.xml: Out信号注册数据
2026-07-06 14:56:04 +08:00
ypc b176d957df feat: 集成 PLC 就地自动化逻辑模块 + SIGILL 编译修复
## PLC 模块 (libplc)
- 新增 libplc 模块: 解析 Reclose_logic.txt 逻辑图,支持与/或/非/延时/SR等多种节点类型
- PLC_Logic() 配置文件路径改为 func_get_process_self_dir 动态拼接
- app_modules.h 注册 APP_MODULE(PLC, plc, ...)
- system makefile 增加 libplc 子目录
- RTU makefile 链接 -lplc

## SIGILL 编译修复
- linux.mk: ARM 编译加 -mno-outline-atomics -fno-threadsafe-statics,禁用 LSE 原子指令
- RTU makefile: STATIC_FLAGS 去掉 -static-libstdc++,避免工具链预编译 libstdc++ 中的 LSE 指令触发 RK3568 SIGILL

## 配置
- app_config.json 新增 app_plc 条目(默认 enable: false)
- PLC/Reclose_logic.txt 逻辑配置文件占位
2026-07-01 15:56:12 +08:00