Commit Graph

31 Commits

Author SHA1 Message Date
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 fd34c6815f feat: PLC调试页面 + WebSocket测试套件 + curd:add立即推送修复
新增:
- web_root/js/plc_debug.js: PLC 调试页面(LED/按键绑定out信号、增量刷新)
- requirements.toml: Codex 项目权限预批准配置
- mimo/webserver测试工程师/: WebSocket 前后端测试套件(8脚本+README)
  · test_ws_raw.py — 最简 WebSocket 连通性测试
  · test_debug_dc.py — datacenter 命令调试
  · test_verify_push.py — 推送验证
  · test_verify_immediate_push.py — 验证 curd:add 立即推送修复
  · test_ws_dc_out/v2/v3.py — 数据中心→信号页端到端测试
  · test_regression_final.py — 全面回归测试

修改:
- ws_method.cpp: curd:add 后立即推送信号列表(+30行)
- packed_fs.c: 打包新版 web 资源(PLC调试页+样式更新)
- pages.js: 重构信号管理页渲染逻辑、新增PLC调试页路由
- app.js: 注册PLC调试页路由
- style.css: 新增PLC调试页样式(+106行)
- index.html: 加载 plc_debug.js
- plc.cpp: 微调修复
2026-07-02 15:13:06 +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
ypc cb60d687e3 feat: channel_config 统一重构 + lib60870 CBB 库集成 + libiec 文件拆分
## channel_config 通道配置统一重构
- 合并 channel_config.xml / channel_config_rk.xml 为单文件
- Channel 新增 bind 字段显式绑定私有规约(channel_cfg_find_by_bind)
- 转发隧道改为 from_saddr→to_saddr 单向,支持 ICP67维护+IEC101/104
- com_channel_recv_cb 重构为三级路由: 转发→bind→IEC
- 去除 ICP66→ICP67 帧转换逻辑(decode_frame_codec 清空)
- com_recv_data 去除硬编码 uart0, 简化为纯 IEC 头检测
- com_scan_send_data_to_app 增加 p_event 空指针防护
- self_ptl_init 改用 bind 字段绑定 UART+通过转发规则反查 TCP
- self_ptl 内部转发加 TCP 连接状态守卫, p_event 未就绪时仅入队
- 新增参数缺省值重构相关文件

## lib60870 CBB 库集成
- 替换原 lib60870 为科大智能 CBB 库
- 新增 cbb_compat.h 兼容层, 通过 gcc -include 注入类型定义
- 新增 CBB 库完整文档(lib60870_mkdocs)

## libiec 文件拆分
- iec_method.cpp 拆分为 iec_common/iec_dd/iec_fault/iec_file/
  iec_param/iec_soe/iec_time/iec_yc/iec_yk/iec_yx 等独立文件

## 工程文档
- 新增 15+ 模块分析/plan/中间文档
2026-07-01 14:52:22 +08:00
ypc 548d1963bc <修改> 1、调整私有规约的通讯配置 2026-06-27 16:24:21 +08:00
ypc 392fadcdb0 <修改> 1、webserver增加在数据中心选择信号直接add,在out界面省去一个个添加;2、增加配置直接远程调试rk3568 2026-06-26 17:47:46 +08:00
ypc 19a2f2a3c0 <修改> 1、消除cmd中的编译告警;2、消除log中的编译告警;3、增加modbus客户端程序;4、webserver增加导入导出信号表功能,可以导出已增加的信号,也可以一键导入想要观察的信号 2026-06-24 15:43:41 +08:00
ypc 8de2441a79 <修改> 1、将应用线程模块调用方式改为动态的,通过头文件中进行绑定,通过配置文件进行选择是否运行;2、消息队列初始化也同样修改 2026-06-18 17:15:43 +08:00
ypc 3c19148b97 <修改> 1、在前端页面中增加命令终端页面,在此页面中可以调用自定义命令,并将自定义命令的响应信息展示到前端页面中 2026-06-18 15:42:09 +08:00
ypc 742d9b36a0 <新增> 1、前端对应增加命令终端与数据监控,命令终端支持自定义命令 2026-06-18 11:09:14 +08:00
ypc 6ef960525c <修改> 1、在webserver增加自定义命令行调试页面 2026-06-17 19:01:50 +08:00
ypc 46f9f4fe76 <修改> 1、调整webserver,更新mongoose库源文件;2、重新生成前端工程;3、利用mongoose中的功能打包前端工程进项目工程中,以c文件格式存在,最终编译成可执行文件一起打包,后续升级改动前端时,无需升级前端工程 2026-06-10 16:07:38 +08:00
ypc 2a3113f935 <修改> 1、修复了mms部分的bug 2026-06-09 18:52:56 +08:00
ypc 7549032700 <修改> 1、动态获取配置文件路径 2026-06-05 15:55:14 +08:00
ypc c03832a31e <修改> 1、将mms_m中的配置解析部分提取到APP处理,通过app调用mms_m库中的初始化接口传入解析后的配置信息;
2、调整数据中心参数相关的接口,改为C风格,后续优化各个模块对外接口,支持C调用;
3、配置文件调整,后续参数定值调整为手动配置进一个文件,最大最小值统一配置进这个文件,在各模块的配置文件中不配置这些,相应的数据中心的参数定值接口中,不传递最大最小缺省值
2026-06-05 09:39:00 +08:00
ypc 3743b69ef2 <修改> 1、增加mms服务端配置文件,并解析;
2、增加mms服务端配置信息的处理;
3、调整mms配置文件的目录
2026-06-04 13:13:33 +08:00
ypc 15ecc786bc <修改> 1、把datacenter单独出来,函数声明也从mySystem.h中单独出来;
2、数据中心新增soe、fault、disturb_dd的队列,需要这些数据的模块可以在初始化时注册回调,各个模块可以调用接口推送各自的事件。
3、填充iec中的注册的回调接口,目前总召、soe、变化遥测功能已实现。
4、对应增加自定义规约中调用数据中心的接口,是当前iec数据的来源
2026-06-03 09:28:17 +08:00
ypc 0fa7b70001 <修改>1、调整数据中心,优化数据存储内存的表;
2、修改定值初始化的程序,修复了重启后定值表中的定值恢复到配置文件中的默认值;
3、调整mms客户端的配置文件,mms的信号路径必须到最下层。
4、调整mms客户端库,定值和参数的类型由获取到的类型为准
2026-05-30 14:13:49 +08:00
ypc ac5182ea14 <修改>
1、调整数据中心获取信号内容的接口;
2、调整webserver中的处理函数,抽象成信号类型的方法;
3、调整web前端网页显示
2026-05-28 13:23:01 +08:00
ypc 3d59800656 1、mms客户端时间类型增加参数读写枚举;
2、mms服务端增加
2026-05-27 17:16:45 +08:00
ypc 04976dd01b 新增61850的mms服务端程序;
调整数据中心部分接口
2026-05-27 09:14:19 +08:00
ypc 719bf36004 <修改>
1、删除mms中无效的数据类型枚举;
2、开放数据中心接口对外,从字符串设置数据指针值;
3、解析mms_m的配置文件程序修改,避免解析异常导致后续错误;
4、mms_m库调整调试了定值修改的功能;
5、调整了数据中心设置参数时的数据检查;
6、调整了61850客户端调用程序的定值部分与控制部分;
7、对应数据中心修改,调整了webserver中对非字符串类型参数的修改
2026-05-20 16:10:41 +08:00
ypc 04e16ef7bc <新增>
1、增加信号id属性,在展示或生成文件时,按id排序;
2、61850应用中,数据回调中及时设置信号值
<修改>
1、webserver中调整上送ctrl_type为枚举数值,web_root前端文件中识别枚举展示对应中文;
2、调整mms的配置文件中的短地址
2026-05-19 20:18:13 +08:00
ypc 8b3b94aa68 <修改>
1、完成了参数文件的生成功能
2、调整了部分配置文件
2026-05-19 16:26:20 +08:00
ypc 3f6163defb <修改>
1、解析iec104的配置文件
2、增加out的回调
3、增加in的回调
2026-05-19 10:44:10 +08:00
ypc 1468207cae <修改>
1、调整vscode配置,终端打印历史行数增加;
2、增加信号类型ao,作为参数,区分param定值,定值有定值区
3、信号中的指向数据的指针使用vector,用于存储定值时,存在多个定值区;
4、webserver中同步增加ao类型信号处理
5、调整各配置文件,增加ao类型,调整param类型
2026-05-15 14:47:16 +08:00
ypc 8d4c7eebb4 <修改>
1、调整mms_m库中,创建数据时,赋初值;
2、数据中心的数据表中不存放控制数据,控制状态逻辑由调用者申请分别传入;
3、数据中心参数注册时,存放缺省值的字符串数据;
4、数据中心遥控与参数不再初始化控制状态结构体;
5、调整配置文件目录,存入私有规约配置文件,添加iec1014的配置文件
2026-05-12 15:58:25 +08:00
ypc d6dc13937e <修改>
1、使用新的配置文件,在main中初始化解析;
2、私有规约获取配置解析结果,调用数据中心注册函数注册
2026-05-12 13:23:10 +08:00
ypc 488858317e <修改> 1、增加git筛选;2、调整解析ftu文件的工具程序;3、编写解析私有规约配置文件的代码 2026-05-11 15:43:52 +08:00
ypc e88229562e 初始提交,源码+makefile 2026-05-11 10:05:46 +08:00