三刀
9f1aa38eee
!61 fix(crontab): prevent unnecessary reset when disabling future tasks
...
Merge pull request !61 from 三刀/20251105_modbus_slave
v1.5.5
2025-11-20 05:56:27 +00:00
zhengjw22
7886bbd784
fix(crontab): prevent unnecessary reset when disabling future tasks
...
- Add early return if future task is already disabled
- Avoid redundant ticker reset operation
- Improve performance by skipping disable logic when not needed
2025-11-19 09:31:05 +08:00
zhengjw22
a576597c69
fix(crontab):修复定时任务停止逻辑
...
- 将 ticker.Stop() 更改为 ticker.Reset(1) 以正确重置定时器
- 确保定时任务在禁用时能正确重置状态
- 优化定时任务管理逻辑,避免任务残留
2025-11-18 19:19:02 +08:00
三刀
0ab97ba314
update README.md.
...
Signed-off-by: 三刀 <zhengjunweimail@163.com >
2025-11-13 01:39:55 +00:00
三刀
b66b1e11b0
!60 refactor(lua):重命名设备属性设置方法- 将 setDeviceProps 方法重命名为 setDeviceProp
...
Merge pull request !60 from 三刀/20251103_zjw_lua
v1.5.4
2025-11-04 05:32:40 +00:00
zhengjw22
3c0f7f7406
refactor(lua):重命名设备属性设置方法- 将 setDeviceProps 方法重命名为 setDeviceProp
...
- 更新 Lua 模块中对应的方法引用- 保持功能一致性和代码清晰度
2025-11-03 15:08:37 +08:00
zhengjw22
39ee792582
feat(lua): 添加设备属性设置功能
...
- 在Lua模块中注册setDeviceProps函数
- 实现setDeviceProps方法用于更新设备属性
-通过缓存实例更新指定设备的属性值
- 保留原有getDevice方法不变- 添加相应的代码注释和文档说明
2025-11-03 14:31:07 +08:00
三刀
cff01b6d21
!59 fix(cache): 增加设备模型和点表的基础校验- 添加设备模型名称防重校验,确保每个模型名称唯一- 实现点表基础校验,检查设备点是否符合预期
...
Merge pull request !59 from 三刀/20250915_zjw_model
v1.5.3
2025-09-23 01:35:32 +00:00
zhengjw22
06beb884d9
fix(cache): 增加设备模型和点表的基础校验- 添加设备模型名称防重校验,确保每个模型名称唯一- 实现点表基础校验,检查设备点是否符合预期
2025-09-15 15:43:20 +08:00
zhengjw22
3adc605078
refactor(config): 重构设备模型配置
...
- 移除 Model 结构体,使用 DeviceModel 直接替代
- 在 DeviceModel 中添加 devicePoints 索引,用于快速查找点位
- 更新相关函数以适应新的结构,提高代码可读性和性能
- 修改缓存实现,直接使用 DeviceModel 替代 Model
- 更新导出模块,适应新的点位结构
2025-09-15 15:35:00 +08:00
三刀
f2b9939258
!58 refactor(config): 移除配置错误日志并优化枚举值获取
...
Merge pull request !58 from 三刀/20250912_zjw_point
v1.5.2
2025-09-15 02:19:03 +00:00
zhengjw22
86eb3316ff
refactor(driverbox): 优化配置文件处理和元数据结构
...
- 移除了不必要的导入语句- 优化了 Point 结构的 ReadWrite 方法,提高了代码的健壮性
- 简化了 Metadata 结构的注释,使字段含义更加清晰
2025-09-15 10:15:40 +08:00
zhengjw22
8275d58a66
refactor(config): 移除配置错误日志并优化枚举值获取
...
- 移除了 config包中 Point 结构体 ReportMode 方法的错误日志记录
- 优化了 core_cache.go 中枚举值获取方式,使用 point.Enums() 替代 point.Enums
2025-09-12 14:57:00 +08:00
zhengjw22
ebe5cc2cf7
refactor(config): 优化点位配置相关代码
...
- 增加了点位配置的多个新方法,包括 Description、Enums、ValueType、ReportMode、Scale、Decimals 和 Units
- 优化了现有方法的实现,提高了代码可读性和维护性
- 移除了不必要的 SetReportMode 方法
- 在 ReportMode 方法中增加了默认值处理逻辑,提高了配置的容错性
- 在 cache/cache.go 中删除了冗余的报告模式检查和设置代码
2025-09-12 14:18:12 +08:00
zhengjw22
7a746d978c
refactor(cache): 优化 GetPoints 方法的实现
...
- 移除了不必要的 points 切片初始化和追加操作
- 直接返回 model.DevicePoints 和存在性标志- 简化了代码结构,提高了执行效率
2025-09-12 14:02:16 +08:00
zhengjw22
5c581ab47c
fix(driverbox): 修复报告模式设置类型不匹配问题
...
-将 Point 结构中的 SetReportMode 方法中的 mode 参数从 ReportMode 类型转换为 string 类型
- 修复了之前可能出现的类型不匹配问题,确保报告模式正确设置
2025-09-12 13:52:37 +08:00
zhengjw22
8c4d6576ba
refactor(dlt645/modbus): 优化数据转换逻辑- 将 convToPointExtend 函数的参数类型从 map[string]interface{} 改为 config.Point
...
- 在函数内部将 extends 赋值给 extend.Point,简化数据转换过程
- 此修改提高了代码的可读性和可维护性,同时减少了错误处理的复杂度
2025-09-12 13:48:47 +08:00
zhengjw22
2e8ebd9cc7
feat(config): 为 Point 类型添加 Enums 方法
...
- 在 Point 类型中添加 Enums 方法,用于获取枚举值
- 使用 json包进行数据解析和反序列化
2025-09-12 13:39:06 +08:00
zhengjw22
da0befc8a1
fix(internal/plugins/mirror): 优化镜像点数据类型转换和空值检查
...
- 将 rawDevice 和 rawPoint 的类型检查和赋值操作分离
- 先进行类型断言,再进行空值检查
- 提高代码的可读性和健壮性
2025-09-12 13:12:03 +08:00
zhengjw22
fcc75aebf2
feat(config): 增加 Units 方法并优化 FieldValue 方法
...
- 在 Point 结构中增加 Units 方法,用于获取单位信息
-优化 FieldValue 方法,返回值和存在性标志
2025-09-12 13:05:05 +08:00
zhengjw22
9cfb2e5882
refactor(config): 重构点位配置结构
...
- 将 PointMap 类型改为 Point,简化结构- 移除 ToPoint() 方法,直接使用 Point 类型
- 更新所有使用点位配置的地方,改为新的 Point 结构
-优化部分代码逻辑,以适应新的点位配置结构
2025-09-12 11:37:32 +08:00
三刀
9cd0219a25
!57 feat(config): 添加软件版本号字段
...
Merge pull request !57 from 三刀/20250903_zjw_metadata
v1.5.1
2025-09-11 08:05:19 +00:00
zhengjw22
f871c9520d
feat(config): 添加软件版本号字段
...
在驱动器配置结构中添加了软件版本号字段,用于标识当前软件的版本信息。
2025-09-03 10:10:34 +08:00
三刀
770a733439
!56 feat(cache): 添加默认缓存实例
...
Merge pull request !56 from 三刀/20250624_zjw_mcp
v1.5.0
2025-08-22 01:57:41 +00:00
zhengjw22
190069384b
feat(cache): 添加默认缓存实例
...
添加了 DefaultCache 函数,用于创建和返回一个全局的默认缓存实例。
使用 sync.Once确保默认缓存实例只被初始化一次,提高了并发安全性。
2025-08-20 10:31:18 +08:00
zhengjw22
58ce29c876
feat(cache): 实现一个带有过期时间和 LRU 淘汰策略的缓存
...
- 添加了 ExpiringCache 结构体,支持缓存项的过期时间设置
- 实现了 LRU (最近最少使用) 淘汰策略
- 提供了多种配置选项,如 TTL、清理间隔、最大缓存大小等
-支持设置淘汰回调函数
- 实现了缓存的基本操作:Set、Get、Delete、Clear等
- 添加了清理过期缓存项的后台任务
2025-08-20 10:21:49 +08:00
zhengjw22
5afdc3a00e
refactor(cache): 重构缓存接口和实现
...
- 将 CoreCache、businessPropCache 和 configManager 接口移至内部 core包
- 删除 driverbox/pkg/cache 包
- 更新内部 core/cache 包的文件结构和内容- 调整缓存接口的定义,使其更符合内部使用需求
2025-08-20 10:07:18 +08:00
zhengjw22
802437705c
refactor(cache): 重构缓存接口和实现
...
- 将 CoreCache、businessPropCache 和 configManager 接口移至内部 core包
- 删除 driverbox/pkg/cache 包
- 更新内部 core/cache 包的文件结构和内容- 调整缓存接口的定义,使其更符合内部使用需求
2025-08-20 10:03:48 +08:00
zhengjw22
52b300d260
feat(config): 为 PointMap 类型添加方法并优化 mirror 插件
...
- 为 PointMap 类型添加 Name、ReadWrite 和 FieldValue 方法
- 优化 mirror 插件中对点位数据的处理,使用新的方法
-调整 mirror 插件中的错误处理逻辑
2025-08-19 15:24:48 +08:00
zhengjw22
117638fdb9
refactor(model): 更新设备模型相关代码
...
- 修改 CoreCache 接口中的 GetModel 和 Models 方法返回类型
- 更新 export 模块中使用设备模型的相关代码
- 调整内部 core/cache/cache.go 中的 GetModel 和 Models 方法实现
- 修改 mcp 工具和 mirror 导出中使用设备模型的部分
2025-08-19 14:47:20 +08:00
xiaocai
bad52e33e6
fix(CoreCache): 核心缓存获取模型及模型列表时,通过 cmanager 包获取
2025-08-19 10:32:10 +08:00
xiaocai
8ace3d1f2d
fix(gateway plugin): 修复子网关设备删除不彻底问题
2025-08-18 15:45:39 +08:00
xiaocai
874a5a9e34
feat(CoreCache): 添加模型时,校验模型是否已存在
2025-08-18 10:18:36 +08:00
xiaocai
c92a9186eb
feat(gateway plugin): 网关插件同步设备后,重载所有插件(临时修改,用于更新 coreCache)
2025-08-15 13:53:32 +08:00
xiaocai
4268e72311
fix(gateway export): 修复同步模型时,额外同步了模型下设备(设备有独立同步逻辑)
2025-08-14 16:20:56 +08:00
xiaocai
6e67488971
fix: 修复子网关同步模型列表为空问题
2025-08-13 11:13:48 +08:00
xiaocai
7d6e6ea1b6
refactor(CoreCache): 修改添加模型方法参数(Model => DeviceModel)
2025-08-13 11:02:44 +08:00
zhengjw22
2d9821871a
perf(lua): 屏蔽 Lua脚本中的 print 函数以优化 CPU 开销
...
- 新增环境变量 DRIVERBOX_LUA_PRINT_ENABLE 来控制是否启用 print 函数
- 在 lua.go 中根据环境变量设置,动态注册自定义的 print 函数
- 当环境变量设置为 "false" 时,print 函数将不再输出内容,从而减少 CPU 开销
2025-08-12 15:17:35 +08:00
zhengjw22
7fe5b2569e
refactor(driverbox): 优化小数位数保留计算方法
...
- 使用 math.Pow 函数替代循环乘法计算,提高代码简洁性和效率
- 该修改针对浮点类型数据的小数位数保留处理
2025-08-12 13:45:18 +08:00
zhengjw22
07e4cec1b5
refactor(driverbox): 优化浮点数小数位数保留逻辑
...
- 移除了 fmt.Sprintf 和 strconv.ParseFloat 的使用,减少字符串与浮点数之间的转换
- 采用数学运算方式实现小数位数保留,提高代码效率和可读性
- 优化了导入的包,移除了未使用的 strconv,添加了 math 和 strings
2025-08-12 13:39:55 +08:00
zhengjw22
e759f5874e
refactor(plugin): 移除插件注册错误处理
...
移除了以下内容:
- driverbox/plugin.go 中的 RegisterPlugin 函数的错误返回
- internal/plugins/manage.go 中的 Register 方法的错误返回
-各个插件实现文件中 RegisterPlugin 函数的错误返回
- plugins/plugin_all.go 中 RegisterAllPlugins 函数的错误处理
这次重构移除了不必要的错误处理,简化了插件注册流程,并提高了代码的可读性和维护性。
2025-08-11 14:02:10 +08:00
zhengjw22
55c18b0e43
refactor(export): 优化 WebSocket 服务
...
- 调整 WebSocket 连接关闭逻辑
- 优化 sendJSONToWebSocket 方法,提高代码可读性和性能
- 重构代码结构,提高可维护性
2025-08-11 13:52:20 +08:00
zhengjw22
1a157101e3
refactor(websocket): 重构 WebSocket 插件注册逻辑
...
- 修改 RegisterWebsocketPlugin 函数名为 RegisterPlugin,简化函数名称
- 更新 plugin_all.go 中的调用,使用新的 RegisterPlugin 函数
- 通过简化函数名称和统一注册接口,提高代码一致性和可维护性
2025-08-11 11:14:16 +08:00
zhengjw22
6c464da71a
refactor(driverbox): 重构插件和导出功能
...
-将插件和导出功能拆分为独立的包
- 重新组织代码结构,提高可维护性
- 更新导入路径和函数命名,遵循Go语言习惯
- 删除冗余代码,简化项目结构
2025-08-01 18:06:23 +08:00
zhengjw22
f0c79ed29e
refactor(driverbox): 将插件注册逻辑拆分到独立的文件中
...
- 将原有的 plugin.go 文件中的插件注册逻辑拆分到多个独立的文件中- 新增 plugin_all.go 文件,包含所有插件的注册逻辑- 新增各个插件对应的注册文件,如 plugin_bacnet.go、plugin_modbus.go 等
- 移除了 plugin.go 中的 plugins 结构体和相关方法
- 优化了代码结构,提高了代码的可维护性和可读性
2025-08-01 17:27:36 +08:00
zhengjw22
4609bd47a6
perf(driverbox): 优化 Lua表的创建方式
...
- 使用 CreateTable 方法代替 NewTable 方法创建 Lua表
- 预分配数组和字典的大小,提高内存使用效率
- 具体改动:
- 在创建 points 表时,使用 CreateTable(len(req.Points), 0)
- 在创建 pointData 表时,使用 CreateTable(0, 2)
2025-08-01 14:57:28 +08:00
zhengjw22
d74bc57f8c
refactor(shadow): 优化 GetDevice 接口文档说明
...
- 在 GetDevice 接口的注释中添加了额外的信息,说明在大量调用时可能导致较高资源开销
- 建议如果目的是获取 ModelName,应使用 CoreCache 接口以减少资源消耗
2025-08-01 10:22:27 +08:00
zhengjw22
4afc857a1a
refactor(export): 更新获取设备信息的方法
2025-08-01 10:11:43 +08:00
zhengjw22
913adfd944
perf(lua): 调整 Lua 参数
2025-07-31 17:30:08 +08:00
zhengjw22
0812400e59
refactor(mirror): 调整日志输出等级
...
-将 mirror 解码结果的日志输出等级从 Info 降低到 Debug- 此修改旨在减少正常操作中的日志输出,优化日志可读性和性能
2025-07-30 16:38:57 +08:00