caoqianming
dd110919dd
style(web): remove rounded corners and localize card titles
2026-03-16 10:25:32 +08:00
caoqianming
f33c96a4e5
fix(opcua): default point quality to Good when status is absent
...
Made-with: Cursor
2026-03-16 09:57:37 +08:00
caoqianming
ae134c722a
refactor(ui): redesign web interface with flat modern style
...
Made-with: Cursor
2026-03-16 08:48:12 +08:00
caoqianming
503aefc4cb
refactor(event): rename ReloadEvent to AppEvent and split event channels
...
Clarify event semantics by renaming ReloadEvent to AppEvent and route control vs telemetry traffic through dedicated channels. This keeps control events isolated from high-frequency PointNewValue updates while preserving the existing send() call pattern.
Made-with: Cursor
2026-03-13 14:44:30 +08:00
caoqianming
5fa63ad6dd
fix(opcua): stabilize reconnect loop and coalesce telemetry events
...
Always clear reconnect-in-progress markers after reconnect attempts so heartbeat-triggered retries are not blocked. Reduce high-frequency event overhead by coalescing consecutive point updates in the event worker and processing only the latest value per source/client handle.
Made-with: Cursor
2026-03-13 14:26:50 +08:00
caoqianming
5406568969
fix: harden event handling and source safety
...
Improve runtime resilience by bounding the reload event queue and processing telemetry updates without per-point spawned tasks. Also reduce security risk by sanitizing source responses, avoiding internal error detail leaks, and standardizing write-key configuration with backward compatibility.
Made-with: Cursor
2026-03-13 14:22:16 +08:00
caoqianming
6f215162a3
feat(page): add page table and CRUD handlers
2026-03-11 13:54:14 +08:00
caoqianming
efed6aa816
feat: add page
2026-03-11 13:23:05 +08:00
caoqianming
1374abe550
feat(log): add file-based log APIs and switch file logs to JSON
2026-03-09 14:47:19 +08:00
caoqianming
63bcf679c2
fix(opcua): reconnect when subscription becomes invalid
2026-03-09 08:58:40 +08:00
caoqianming
0893c9783c
fix: 修复心跳检查中订阅状态判断逻辑,避免启动时误触发重连
2026-03-06 13:51:47 +08:00
caoqianming
5dc1081c90
改进心跳检测中的订阅状态检查,通过读取服务器节点属性来验证订阅是否真正有效
2026-03-06 12:57:22 +08:00
caoqianming
afab910780
在 DataChangeCallback 中添加 BadNoSubscription 错误检测
2026-03-06 10:58:27 +08:00
caoqianming
d4d5749ccc
优化 OPC UA event_loop 监控和重连机制
2026-03-06 10:01:18 +08:00
caoqianming
76b6e17927
feat: save event_loop handle to avoid ghost session
2026-03-06 09:38:14 +08:00
caoqianming
b197607d5f
refactor: 添加 allocate_client_handle 函数封装句柄分配逻辑
2026-03-06 09:22:55 +08:00
caoqianming
a2208e8958
perf: 将 poll_points 改为 Arc<Vec<PollPointInfo>> 以减少 clone 开销
2026-03-06 09:16:18 +08:00
caoqianming
487d3cdf26
refactor: 优化 unsubscribe_points_from_source 中 status 锁粒度,使用 get_session 函数
2026-03-06 09:13:30 +08:00
caoqianming
4d88bcbce3
refactor: 优化 heartbeat 中 status 锁粒度,使用 get_session 函数
2026-03-06 09:09:42 +08:00
caoqianming
afac9f1eb9
fix: 修复 poll task 中 results 和 poll_points 可能错位的 bug
2026-03-06 09:04:50 +08:00
caoqianming
8e4abd0af9
feat: 添加重连保护机制修复重复重连问题
2026-03-06 09:01:15 +08:00
caoqianming
aaf887a6fc
优化PointNewValue事件处理:并行执行update_point_monitor_data和send_to_public,移除不必要的ws_manager_clone
2026-03-05 15:28:04 +08:00
caoqianming
ee3ee273b2
refactor: merge set_pool and start_reconnect_task into set_pool_and_start_reconnect_task
2026-03-05 14:01:40 +08:00
caoqianming
0f37c9435e
feat: 实现心跳检测和自动重连功能
2026-03-05 13:27:13 +08:00
caoqianming
494cf1d656
优化连接流程:connect_from_source自动处理订阅,简化main.rs
2026-03-05 11:18:30 +08:00
caoqianming
a2217a991c
重构ConnectionManager:简化get_session方法,移除pool依赖,重命名new_with_pool为new
2026-03-05 11:13:10 +08:00
caoqianming
5685c33687
优化main.rs日志打印:移除重复日志,使用并发处理source连接和订阅
2026-03-05 11:08:01 +08:00
caoqianming
a63433e757
优化点取消订阅逻辑:从轮询列表中移除所有传入点,并记录订阅点和轮询点的移除数量
2026-03-05 11:01:20 +08:00
caoqianming
8230536c73
refactor: 在 connect 方法中启动统一轮询任务,移除 start_polling_for_points 方法
2026-03-05 10:52:27 +08:00
caoqianming
114d350e5b
refactor: 移除 ReloadEvent::PointCreate,统一使用 PointCreateBatch
2026-03-05 09:31:52 +08:00
caoqianming
a6be0827d0
refactor: 统一轮询任务实现,移除 scan_interval_s 字段
2026-03-05 09:30:30 +08:00
caoqianming
d156108148
feat: 为 get_tag_list 接口添加分页功能
2026-03-04 15:19:39 +08:00
caoqianming
f9284303f6
fix: 改进错误处理机制,支持查询参数反序列化和多种Axum响应类型转换
2026-03-04 14:11:59 +08:00
caoqianming
550c7b3974
修改migrate名称
2026-03-04 13:57:40 +08:00
caoqianming
606b57eb73
refactor: 优化点位列表查询功能
2026-03-04 13:39:06 +08:00
caoqianming
fdb4f10ba4
feat: 添加通用的分页工具模块
2026-03-04 13:37:58 +08:00
caoqianming
3311823800
优化数据序列化:时间戳使用本地时间格式,简化 DataValue 输出
2026-03-04 12:41:14 +08:00
caoqianming
1ddb707a9b
优化 WebSocket 消息发送:移除不必要的 clone,注释掉 send_to_client
2026-03-04 12:35:22 +08:00
caoqianming
173814416f
修复潜在的死锁问题:将读锁的作用域限制在块内,避免在持有读锁时尝试获取写锁
2026-03-04 12:20:13 +08:00
caoqianming
6f62d753a5
修复编译警告:将 PollPointInfo 改为公开,移除未使用的字段
2026-03-04 11:26:38 +08:00
caoqianming
475ac02322
重构:将 poll_task_handles 和 poll_points 合并为一个双向映射,使用 PollPointInfo 结构
2026-03-04 11:24:13 +08:00
caoqianming
b22225ad72
重构:将 poll_points_by_source 的内层 HashSet 移动到 ConnectionStatus 中,简化数据结构
2026-03-04 11:16:08 +08:00
caoqianming
4bb9bdd27d
优化 event.rs 中的克隆操作,减少 monitor 的克隆次数从 3 次减少到 1 次
2026-03-04 08:47:24 +08:00
caoqianming
562a2d566b
feat: 为 PointMonitorInfo 添加旧值追踪和值变化检测
2026-03-04 08:35:28 +08:00
caoqianming
8127d04855
refactor: 将 PointValueChange 重命名为 PointNewValue
2026-03-03 16:56:37 +08:00
caoqianming
cc7142e556
refactor: 统一使用 PointMonitorInfo,移除 WsPointMonitorInfo
2026-03-03 16:51:18 +08:00
caoqianming
a82921193c
PointNewValue
2026-03-03 16:44:53 +08:00
caoqianming
02de1f4552
feat: 添加ValueType枚举并更新相关结构体
2026-03-03 15:41:35 +08:00
caoqianming
c88a0b2398
修复编译错误和警告: 添加缺失的导入,移除未使用的导入和变量
2026-03-03 13:39:58 +08:00
caoqianming
44f4a794d3
feat: 软件第一个版本
2026-03-03 13:32:05 +08:00