Compare commits

..

1317 Commits

Author SHA1 Message Date
Diego
d6b0a9314c refactor: 初始化缓存编译读写表达式 2024-06-17 13:49:45 +08:00
Diego
83bc07c3ff release:6.0.3.11
修改默认启动端口
2024-06-17 10:32:05 +08:00
Diego2098
6ca680cd41 refactor: 数据库表名风格统一 2024-06-16 13:59:17 +08:00
Diego2098
2b533dcb2b fix: s7驱动多语言文本错误 2024-06-15 20:18:37 +08:00
Diego2098
13a5a09f98 refactor: 优化modbusSlave 2024-06-15 19:09:18 +08:00
Diego
75ff7ebdbe other:更新调试工具 2024-06-14 16:01:42 +08:00
Diego
6d8f3a1fc8 release:6.0.3.9 2024-06-14 14:14:39 +08:00
Diego
a11b411912 fix: 修复上个提交导致的表达式空指针错误 2024-06-14 09:28:18 +08:00
Diego
2dba817c69 feat: 登录页面添加版本提示 2024-06-13 16:55:54 +08:00
Diego
d4df9a545f release:6.0.3.8 2024-06-13 14:22:36 +08:00
Diego
cae21391e5 release:6.0.3.8 2024-06-13 14:20:53 +08:00
Diego
573b22d2c2 refactor: 优化CSScript编译 2024-06-13 14:20:30 +08:00
Diego
14d4112a9d fix: 命名空间错误 2024-06-13 13:47:18 +08:00
Diego
28aa9db9c5 更新依赖 2024-06-13 13:40:33 +08:00
Diego
d50c349e00 release:6.0.3.7
破坏性更改

动态编译脚本表达式,传入值不再是dynamic类型,而是object,注意类型转换
2024-06-13 13:38:17 +08:00
Diego
905362c59c release:6.0.3.6 2024-06-13 10:23:36 +08:00
Diego
97e7d44310 fix: 特殊方法选择错误 2024-06-12 16:29:04 +08:00
Diego
bb71a1ef23 feat: tcpservice支持多个ip绑定,以分号间隔 2024-06-12 14:29:14 +08:00
youthalan
de2771d008 !31 添加ShowExtendEditButtonCallback等
Merge pull request !31 from youthalan/master
2024-06-12 02:59:09 +00:00
Diego
02de34b65a refactor: crc方法修改 2024-06-11 19:03:19 +08:00
youthalan
c6e14889f2 !30 添加SetRowClassFormatter属性等
Merge pull request !30 from youthalan/master
2024-06-11 08:07:06 +00:00
Diego
f843732790 other: dockerfile 2024-06-11 15:50:52 +08:00
Diego
80e7ff0fc1 release:6.0.3.5 2024-06-11 15:47:58 +08:00
Diego
2964db6bdd fix: modbusUdp已发送数组获取失败 2024-06-11 15:47:36 +08:00
Diego
5fbd94ec74 refactor: 更新依赖 2024-06-11 15:37:50 +08:00
Diego
1d8d31d4f0 other: 更新docker地址 2024-06-11 12:53:08 +08:00
Diego
707c3eed99 release:6.0.3.3
refactor: 优化错误提示
2024-06-11 12:24:17 +08:00
Diego2098
e33a81ad36 refactor: 优化错误提示 2024-06-10 22:53:48 +08:00
Diego2098
0f7d216379 refactor: 优化错误提示 2024-06-10 22:47:54 +08:00
Diego2098
f0052e97a6 refactor: 修改注销方式 2024-06-10 21:05:59 +08:00
Diego
5c6076d48d refactor: 修改token缓存服务 2024-06-09 19:49:29 +08:00
Diego
883bd31249 refactor: 优化debug软件体验 2024-06-09 17:55:57 +08:00
Diego
d7b5fde3c7 fix: 取消mapster映射忽略大小写,这会导致字典键错误 2024-06-09 17:16:56 +08:00
Diego
f4273efef0 fix: 冗余心跳错误 2024-06-09 14:12:39 +08:00
Diego
471dc966d9 fix: 冗余心跳错误 2024-06-09 13:52:12 +08:00
Diego
50368654a4 build: Photino修改为net6 2024-06-09 13:34:01 +08:00
Diego
b1e1cc04ce refactor: dockerfile 2024-06-09 13:18:49 +08:00
Diego
554f67e295 release:6.0.2.27 2024-06-09 13:16:10 +08:00
Diego
278bd09a6c refactor: 优化插件调试通道创建步骤 2024-06-09 13:12:42 +08:00
Diego
300d083038 release:6.0.2.27
refactor: 优化插件调试通道创建步骤
2024-06-09 13:11:03 +08:00
Diego
34664f0025 other: 代码整理 2024-06-09 12:30:45 +08:00
Diego
7aaa803813 docs: 更新文档 2024-06-09 12:25:28 +08:00
Diego
b075b3ec1c Revert "dcos: 更新大小端配置方式"
This reverts commit 6a1f1ebf9d.
2024-06-09 12:24:01 +08:00
Diego
0f3f4b0f5b refactor: 字节解析顺序回退5.x版本策略 2024-06-09 12:23:55 +08:00
Diego
fd5ed78442 feat: 支持modbus服务端模拟dtu设备 2024-06-07 22:39:17 +08:00
Diego
d516e7dcb4 fix: 回退5.x版本bool解析策略 2024-06-07 13:48:37 +08:00
Diego
6a1f1ebf9d dcos: 更新大小端配置方式 2024-06-06 19:08:15 +08:00
Diego
6ba5c02dd6 release:6.0.2.25 2024-06-06 16:29:19 +08:00
Diego
c9b8f90859 fix: 线程管理锁策略错误 2024-06-06 15:18:58 +08:00
Diego
70a0bf6d5c fix: 心跳格式判断错误(多余空格) 2024-06-06 14:50:05 +08:00
Diego
4caf8d6fab refactor: 默认GC策略修改 2024-06-06 10:32:42 +08:00
Diego
aa90593158 refactor: 优化动态主题错误提示 2024-06-06 09:07:13 +08:00
youthalan
9da5531483 feat(AdminTable): 增加BeforeRowButtonTemplate属性 2024-06-06 01:05:11 +00:00
youthalan
9483459ba7 feat(AdminTable): 增加BeforeRowButtonTemplate属性
feat(AdminTable): 增加BeforeRowButtonTemplate属性
2024-06-05 09:58:13 +00:00
Diego
ae57883770 refactor: 适配touchsocket nuget包新版本 2024-06-05 16:50:30 +08:00
Diego
8cb5a89d10 other: 更新Dockerfile 2024-06-05 16:15:10 +08:00
Diego
1a35fb0d4d release:6.0.2.22 2024-06-05 15:55:58 +08:00
Diego
1a2483c68c docs: 更新mqtt文档 2024-06-05 15:55:35 +08:00
Diego
6c806238b2 refactor: mqttRpc主题策略更改
Break Changes

mqttRpc主题策略更改
2024-06-05 15:51:08 +08:00
Diego
ea6e07a38b refactor: 代码整理 2024-06-05 14:56:34 +08:00
Diego
ec6b07b275 fix: 业务插件基类定时上传方法循环错误 2024-06-05 14:48:54 +08:00
Diego
e85a03a1ca release:6.0.2.20
refactor: 更新依赖包版本
2024-06-05 14:18:03 +08:00
Diego
5d66b7677f refactor: 缓存文件名称修改 2024-06-05 13:19:11 +08:00
Diego
3932834172 other: 修改解决方案文件 2024-06-05 12:36:10 +08:00
Diego
d2e8294a1a release:6.0.2.19
fix: 自定义实时报警条件错误

refactor: webapi登录返回实体更改,添加token到响应body
2024-06-05 10:27:13 +08:00
Diego
b06aa66ad8 refactor: 优化本地化语言显示 2024-06-04 19:15:10 +08:00
Diego
c45b48d949 release:6.0.2.18
fix: 重启运行时偶发空异常

refactor: 变量批量编辑支持报警属性

fix: 批量编辑时刷新缓存
2024-06-04 18:54:37 +08:00
Diego
f779af1f65 fix: 重启运行时偶发空异常 2024-06-04 15:39:16 +08:00
Diego
78d039cd5f refactor: 变量批量编辑支持报警属性 2024-06-04 15:02:53 +08:00
Diego
fdbd5418c7 release:6.0.2.17
fix: 变量业务属性为空时保存失败

fix: TD数据库列描述不支持,删除对应特性

feat: 增加删除缓存按钮
2024-06-04 14:47:11 +08:00
Diego
5df42466fd fix: 变量业务属性为空时保存失败;
fix: TD数据库列描述不支持,删除对应特性
2024-06-04 14:12:46 +08:00
Diego
ff2bed87f2 release:6.0.2.16
refactor: 优化DTU模式采集
2024-06-04 12:02:38 +08:00
Diego
765e7d0b1e release:6.0.2.15
refactor: 优化DTU模式采集
2024-06-04 11:16:22 +08:00
Diego
71ab6d42c8 fix: dtu模式下modbus打包逻辑错误 2024-06-03 18:39:03 +08:00
Diego
2ea2a662ef refactor: 删除不必要的锁操作 2024-06-03 18:28:28 +08:00
Diego
c2d45349a4 release:6.0.2.10
refactor: update touchsocket
2024-06-03 15:11:03 +08:00
Diego
1b5cf410b7 release:6.0.2.7
fix: 回退touchsocket版本
2024-06-03 14:08:33 +08:00
Diego
3e79e2bed0 feat: 增加可选配置json文件 2024-06-03 13:30:31 +08:00
Diego
2a1f933702 release:6.0.2.6
refactor: update touchsocket

refactor: update photino
2024-06-03 09:44:12 +08:00
Diego2098
251d3b487f release:6.0.2.6
refactor: 打包参数策略修改,防止数据类型用户填写错误时出现未能理解的错误
2024-06-01 12:50:50 +08:00
Diego
e55ec48c7d release:6.0.2.5
refactor: 修改每包读取延迟策略
2024-05-31 17:11:05 +08:00
Diego
7ce2195adb release:6.0.2.4
feat: 添加docker公共镜像
refactor: 首次连接失败opcua时,实时重连
2024-05-31 16:51:30 +08:00
Diego
537b79f1c2 feat: opcua客户端读取数据增加服务端时间属性读取 2024-05-30 16:39:02 +08:00
Diego
e4c4d22f56 docs: 更新pro用户列表 2024-05-30 15:58:32 +08:00
Diego
c4d244398c release: 6.0.2.1
refactor: 更新BootstrapBlazor版本

refactor: opc导入导出去重
2024-05-30 15:40:20 +08:00
Diego
47260cdaf0 feat: 添加ValueTask同步扩展 2024-05-30 14:26:45 +08:00
Diego
7ef13058c7 fix: 修复上一提交导致的偶发空异常 2024-05-30 12:37:04 +08:00
Diego
8066cb1804 feat: 优化变量离线逻辑,当设备无法连接时,直接判断全部变量离线 2024-05-30 12:18:17 +08:00
Diego
c5af6062fa fix: 修复网页重启运行时与冗余网关配置重启运行时逻辑冲突错误 2024-05-30 11:23:14 +08:00
Diego
908a2eba20 feat: 添加等待并比较读取返回值的扩展方法 2024-05-30 10:31:03 +08:00
Diego
6f43957703 other: 更新demo 2024-05-30 09:32:14 +08:00
Diego
897ea28cf4 release: 6.0.1.5
fix: table查询返回IsAdvanceSearch属性错误

refactor: 日志表默认时间倒序显示
2024-05-30 09:30:12 +08:00
Diego
d056ddbff1 fix: table查询返回IsAdvanceSearch属性错误 2024-05-30 09:26:30 +08:00
Diego
f157350059 refactor: 日志表默认时间倒序显示 2024-05-30 08:25:17 +08:00
Diego2098
7e3d99bda3 release: 6.0.1.5
refactor: 部分选项恢复上一版本默认值
2024-05-29 23:08:14 +08:00
Diego2098
c7c53e1d94 release: 6.0.1.4
other: 同步master
2024-05-29 22:15:45 +08:00
Diego
b912ee3f6f refactor: 删除多余代码 2024-05-29 19:09:38 +08:00
Diego2098
06c05ad8e5 feat: 更新6.0.1.3 (#9)
1、更新TouchSocket2.1版本,重构相关代码.

2、优化多处细节,提供运行效率.
2024-05-29 19:03:40 +08:00
Diego
7f411400d5 fix(CacheService): GetOrCreate方法错误触发委托 2024-05-27 18:28:07 +08:00
Diego
f24f234869 fix: 修复因缓存修改导致的插件显示错误 #I9NKA7 2024-05-17 12:28:10 +08:00
Kimdiego2098
4e384e7811 refactor: 按钮disable改为isshow 2024-05-06 15:32:57 +08:00
Kimdiego2098
5143448163 fix: 变量上传属性删除按钮丢失 2024-05-06 14:34:10 +08:00
Diego2098
8e5e9f7cbc build: 更新admin解决方案 2024-05-04 22:30:28 +08:00
Diego2098
5ea7fd01bf release: 6.0.0.13 2024-05-04 22:22:20 +08:00
Kimdiego2098
8f3f6bc774 fix: 修正BusinessBaseWithCacheInterval初始化顺序 2024-04-30 17:55:59 +08:00
Kimdiego2098
7f1524b42f fix: v6代码错漏,间隔上传基类重写BusinessPropertyWithCache属性 2024-04-30 17:35:08 +08:00
Diego2098
4b7db4689d fix: variable实体类读写表达式执行错误 (#8)
* fix: variable实体类读写表达式执行错误

fix: 读写表达式编译错误,缺少using

feat: 增加部分使用demo

* refactor: 整理格式
2024-04-29 16:03:38 +08:00
Diego2098
92831ecb43 refactor: 修改下拉框全选项文本 (#7)
* refactor: 修改下拉框全选项文本

refactor: 修改下拉框全选项文本

fix: i18n(AlarmTopic)中文错误

* build: 更新版本号
2024-04-29 14:50:14 +08:00
Argo-AscioTech
d486f3f306 chore: 删除冗余代码 2024-04-29 03:08:22 +00:00
Diego2098
bfb7468f62 !26 test:回退 'Pull Request !22: fix: 增加 fill 元素保证小屏幕时用户信息靠右'
* 回退 'Pull Request !25 : fix: 增加 fill 元素保证小屏幕时用户信息靠右'
2024-04-29 02:27:13 +00:00
Argo-AscioTech
2e417d41db chore: 删除冗余代码 2024-04-29 02:18:45 +00:00
Argo-AscioTech
b17f68cbfb fix: 增加 fill 元素保证小屏幕时用户信息靠右 2024-04-29 02:18:45 +00:00
Argo-AscioTech
8a22a523d6 doc: 代码格式化 2024-04-29 02:18:45 +00:00
Diego2098
97fe752a4e 回退 'Pull Request !22 : fix: 增加 fill 元素保证小屏幕时用户信息靠右' 2024-04-29 02:13:39 +00:00
Diego2098
cc4ea122a2 !22 fix: 增加 fill 元素保证小屏幕时用户信息靠右
* chore: 删除冗余代码
* fix: 增加 fill 元素保证小屏幕时用户信息靠右
* doc: 代码格式化
2024-04-29 02:05:15 +00:00
Kimdiego2098
db995d29e5 Merge branch 'master' of https://gitee.com/dotnetchina/ThingsGateway 2024-04-29 10:04:07 +08:00
Kimdiego2098
c22dde8008 fix(mqttClient): AlarmTopic upload failure
fix: 报警主题中文名称错误

fix: 报警事件订阅漏写
2024-04-29 10:03:55 +08:00
Diego2098
462d888894 refactor: update appsettings
* refactor: 调整顺序,最大通道数量默认改为10000
2024-04-28 19:22:28 +08:00
Argo Zhang
9311b914ad refactor(AdminTable): update page items from 20 (#4)
* chore: 增加单词拼写字典

* refactor: 更改页码每页最少 20 行数据
2024-04-28 19:13:17 +08:00
Argo Zhang
c5e0488210 feat(AdminTable): add ClientTableName parameter (#5)
* refactor: 代码格式化

* feat: 增加 ClientTableName 参数
2024-04-28 19:13:00 +08:00
Kimdiego2098
f548c27179 refactor: modbusSlave默认启用rpc 2024-04-28 15:20:10 +08:00
Kimdiego2098
1f5f405b52 release: 6.0.0.12 2024-04-28 14:41:20 +08:00
Kimdiego2098
cd923ab838 other: 更新readme 2024-04-28 14:40:56 +08:00
Kimdiego2098
aacdff92d2 docs: 更新文档 2024-04-28 14:25:02 +08:00
Kimdiego2098
32160d388a docs: 迁移文档站点 2024-04-28 13:41:41 +08:00
Kimdiego2098
72e31929eb docs: 迁移文档站点 2024-04-28 13:33:35 +08:00
Kimdiego2098
29014bb40e other: 修改git忽略项 2024-04-28 13:32:24 +08:00
Kimdiego2098
e9d0a65536 fix: 重载插件几率死锁 2024-04-28 11:03:14 +08:00
Kimdiego2098
f7a3b68834 fix: 重载插件几率死锁 2024-04-28 10:13:26 +08:00
Kimdiego2098
dcc9d3b588 docs: 更新文档 2024-04-28 09:54:06 +08:00
Kimdiego2098
b8f6f65943 fix(tcpservice): 客户端断开时不需重置全部同步锁 2024-04-28 09:53:46 +08:00
Kimdiego2098
3dacdda21a build: 更新mapster nuget版本 2024-04-28 09:53:05 +08:00
Diego2098
49b766120f refactor: json序列化忽略null值 2024-04-27 16:19:54 +08:00
Diego2098
2d7e1553f8 refactor: 优化间隔检测 2024-04-26 21:17:27 +08:00
Kimdiego2098
d5d41213b0 release: 6.0.0.11 2024-04-26 18:02:23 +08:00
Kimdiego2098
328df00d2e fix: 通道日志导出时,支持中文名称 2024-04-26 18:01:50 +08:00
Kimdiego2098
e4a5bf8234 feat: 添加批量编辑方法 2024-04-26 17:43:41 +08:00
Kimdiego2098
d6ee0f216c feat: 添加demo 2024-04-26 17:20:00 +08:00
Kimdiego2098
0246ef6b6a feat: 添加demo 2024-04-26 17:03:22 +08:00
Kimdiego2098
7fd40518fd refactor: 内存优化 2024-04-26 12:25:38 +08:00
Kimdiego2098
95eb53edf6 feat: 添加当前进程占用内存显示 2024-04-26 11:22:42 +08:00
Kimdiego2098
4cdf2962cd release: 6.0.0.10 2024-04-26 10:07:55 +08:00
Kimdiego2098
5bf8ccd1fd refactor: 优化网关模块页面的使用体验 2024-04-26 10:06:54 +08:00
Kimdiego2098
dd9fbbcfa7 feat: 添加通用并发锁条件 2024-04-26 09:28:44 +08:00
Diego2098
72d8fd5be0 refactor: 设备状态页面优化 2024-04-25 23:25:52 +08:00
Diego2098
b577229ed3 refactor: 表格去除列宽持久化 2024-04-25 23:20:45 +08:00
Diego2098
4ae870b799 fix: 多页面通知刷新 2024-04-25 23:11:43 +08:00
Diego2098
0590e74b30 feat: SystemTextJson修改NumberHandling选项,支持特殊数字 2024-04-25 22:32:54 +08:00
Diego2098
b9956ba800 fix: v6版本支持系统服务 2024-04-25 19:40:18 +08:00
Kimdiego2098
fef6259d09 release: 6.0.0.9 2024-04-25 18:07:00 +08:00
Kimdiego2098
e24f19e88b docs: 更新文档 2024-04-25 18:06:03 +08:00
Kimdiego2098
cc6de1e71c build: 更新肉夹馍nuget版本 2024-04-25 18:00:19 +08:00
Kimdiego2098
b0240a1c95 refactor: appsettings添加urls配置例子 2024-04-25 17:54:43 +08:00
Kimdiego2098
8acdec333b refactor: 控制台字符logo更新 2024-04-25 17:53:56 +08:00
Kimdiego2098
eafcbb81f9 feat: DEBUG启动自动填充账密 2024-04-25 17:52:44 +08:00
Kimdiego2098
4b083463c8 refactor: gateway命名空间 2024-04-25 15:39:00 +08:00
Kimdiego2098
78e834e04f build: 修改插件类库拷贝脚本 2024-04-25 15:13:26 +08:00
Kimdiego2098
2ed1893620 feat: 添加Description方法 2024-04-25 15:12:36 +08:00
Kimdiego2098
35f188a7dd fix: CSScript using namespace无效 2024-04-25 09:47:46 +08:00
Kimdiego2098
07f577a9dd release: 6.0.0.8 2024-04-25 09:26:08 +08:00
Kimdiego2098
25c72b50c0 build: 类库net版本降至net6 2024-04-25 09:25:47 +08:00
Kimdiego2098
e07346ebea other: update readme 2024-04-24 15:00:07 +08:00
Diego2098
699b466291 other: git忽略文件 2024-04-23 21:44:59 +08:00
Diego2098
f0f24ff96f release: 6.0.0.7 2024-04-23 21:21:58 +08:00
Diego2098
1113997c71 fix: 修复类似400001.0位格式读取打包错误 2024-04-23 21:21:40 +08:00
Kimdiego2098
487fb6e5c9 release: 6.0.0.6 2024-04-23 18:34:35 +08:00
Kimdiego2098
62908a323c fix: v6版本modbusRtu bodyLength错误 2024-04-23 18:33:41 +08:00
Kimdiego2098
021131271a other: modify Pro ProjectReference Include 2024-04-23 18:08:21 +08:00
Kimdiego2098
c20fa4dbd2 fix: VersionService取消Assembly.Location用法 2024-04-23 16:54:38 +08:00
Kimdiego2098
b1826678da release: 6.0.0.5 2024-04-23 12:12:17 +08:00
Kimdiego2098
1630338f4e refactor: 修改条件编译 2024-04-23 12:11:53 +08:00
Kimdiego2098
78af3d979c fix: 菜单curd
1、创建模块后,切换模块列表不能马上显示
2、创建根菜单时,不填写路径会出错
2024-04-23 12:08:40 +08:00
Kimdiego2098
8346dfb1f5 perf: 添加ConfigureAwait(false) 2024-04-23 11:33:26 +08:00
Kimdiego2098
5ecb4e4fe4 refactor(VerificatInfoCacheService): DEBUG模式下,实时持久化登录凭据 2024-04-23 08:45:16 +08:00
Kimdiego2098
ec9ff23b23 refactor(DeviceStatusPage): 设备页面筛选下拉框null值显示为none 2024-04-23 08:37:27 +08:00
Diego2098
149e9931e7 refactor: 修改user默认模块种子数据 2024-04-23 00:02:11 +08:00
Diego2098
58b62094bd release: 6.0.0.4 2024-04-22 23:57:51 +08:00
Diego2098
d357074ad4 refactor: 修改excel导出的字段排序 2024-04-22 23:57:14 +08:00
Diego2098
d9bacc129b feat: 业务缓存设备基类添加属性(缓存文件最大长度) 2024-04-22 23:31:48 +08:00
Diego2098
28d869b099 refactor: excel导入时,按行号排序 2024-04-22 23:25:40 +08:00
Kimdiego2098
d04e87718a release: 6.0.0.3 2024-04-22 18:31:41 +08:00
Kimdiego2098
8d81bf60c9 feat(dlt645): 修改FE前导符为自定义格式 2024-04-22 18:30:47 +08:00
Kimdiego2098
4fe9094ff7 refactor: trace日志构建前设置条件 2024-04-22 17:41:22 +08:00
Kimdiego2098
4cfde45755 refactor: 修改单线程读写时的锁范围 2024-04-22 17:12:16 +08:00
Kimdiego2098
c28844dbeb refactor: 迁移读写方法到基础类库 2024-04-22 16:59:14 +08:00
Kimdiego2098
837ea7c8d6 refactor: 迁移Dtu读写方法到基础类库 2024-04-22 14:42:27 +08:00
Kimdiego2098
6c85ac8827 refactor: 补充nuget发布类库 2024-04-22 14:27:53 +08:00
Kimdiego2098
c8eb8bf35d release: 6.0.0.2 2024-04-22 14:22:37 +08:00
Kimdiego2098
0f6cbddd57 refactor: 迁移DtuPlugin到共用类库 2024-04-22 14:18:57 +08:00
Kimdiego2098
530b4755bf refactor: 底层驱动类库升级net版本,保留net462以及netstandard2.0 2024-04-22 13:58:14 +08:00
Kimdiego2098
679395b3fe refactor: modbusMaster 添加 分部定义 2024-04-22 13:56:45 +08:00
Kimdiego2098
9293442836 fix: editForm不应该直接修改缓存 2024-04-22 10:33:51 +08:00
Kimdiego2098
4841b412f3 feat: v6网关模块添加按钮权限 2024-04-22 10:08:57 +08:00
Kimdiego2098
f03575ad89 fix: 角色授权流程错误 2024-04-22 10:07:49 +08:00
Diego2098
e0e5428ebd feat: 添加业务设备离线缓存 2024-04-21 00:06:32 +08:00
Diego2098
015f7edae2 style: 表格列宽调整 2024-04-20 23:14:47 +08:00
Diego2098
d5414f5d91 !20 fix: 修复表格不对齐问题
* fix: 修复表格不对齐问题 , thanks to @Argo
2024-04-20 14:59:00 +00:00
Kimdiego2098
4bc3512d42 按钮授权初始化授权列表错误 2024-04-19 12:50:48 +08:00
Kimdiego2098
4c305994ca 添加多语言资源 2024-04-19 11:39:10 +08:00
Kimdiego2098
788e2cba04 修改变量页面默认排序 2024-04-18 16:52:19 +08:00
Kimdiego2098
b79b79970e 实时数据页面添加关键词搜索 2024-04-18 16:18:53 +08:00
Kimdiego2098
8b0f4de516 更新 2024-04-18 16:15:54 +08:00
Kimdiego2098
a17000ad6d 修改判断值变化方法 2024-04-18 16:15:53 +08:00
Kimdiego2098
c9f63c58df 修改项目文件 2024-04-18 16:01:38 +08:00
Kimdiego2098
c311b1c706 更新git文件 2024-04-18 14:36:58 +08:00
Kimdiego2098
072451afae 删除多余重写属性 2024-04-18 11:06:00 +08:00
Kimdiego2098
7349793463 更新项目文件 2024-04-18 10:21:31 +08:00
Kimdiego2098
c0144eab86 调整项目文件 2024-04-18 10:18:09 +08:00
Kimdiego2098
ba79b25944 VerificatInfo删除不必要的属性 2024-04-17 18:56:20 +08:00
Kimdiego2098
3fb34b12a0 更新部署文件 2024-04-17 15:00:09 +08:00
Kimdiego2098
b6c17e76c2 更新部署文件 2024-04-17 14:57:01 +08:00
Kimdiego2098
1201f20d79 删除不必要的文件 2024-04-17 12:30:44 +08:00
Kimdiego2098
98ae8e692e 添加文档 2024-04-17 12:20:01 +08:00
Kimdiego2098
8342dbff4e 更新6.0版本 2024-04-17 12:18:00 +08:00
Kimdiego2098
a22aa0f9a7 Merge branch 'dev' into temp 2024-04-17 12:15:23 +08:00
Kimdiego2098
b49d221ec1 准备合并dev分支 2024-04-17 12:14:05 +08:00
Kimdiego2098
f1be315147 更新插件 2024-04-17 11:32:36 +08:00
Kimdiego2098
8aaac2a3d4 更新插件UI 2024-04-17 10:55:46 +08:00
Kimdiego2098
bd07d30e47 更新插件 2024-04-17 10:51:42 +08:00
Kimdiego2098
54e103f00f 更新插件 2024-04-17 10:32:31 +08:00
Kimdiego2098
5404d8f7ab 更新插件 2024-04-17 10:21:45 +08:00
Diego2098
1364e02c67 更新插件 2024-04-17 00:42:25 +08:00
Diego2098
b4818e2f9a 修复 变量页面 自动刷新时,每页条数会恢复初始值 的问题 2024-04-16 22:54:05 +08:00
Diego2098
734cf57d4a 更新插件 2024-04-16 21:22:49 +08:00
Diego2098
9236610ec1 更新插件 2024-04-16 21:12:38 +08:00
Diego2098
c33828a5d9 更新插件 2024-04-16 21:11:42 +08:00
Diego2098
faadb03e46 !18 更新插件
Merge pull request !18 from BAD MAN/dev_20240416
2024-04-16 10:11:54 +00:00
allrightsreserved
3a0c4c51d2 Merge branch 'dev' of https://gitee.com/dancingqueen/ThingsGateway into dev 2024-04-16 16:02:40 +08:00
Kimdiego2098
6c28c2b91e 更新OPCUA OPCDA 2024-04-16 16:02:26 +08:00
Kimdiego2098
5226df6194 更新readme 2024-04-16 14:45:15 +08:00
Kimdiego2098
1ad23a3cbb 更新依赖 2024-04-16 14:29:13 +08:00
Kimdiego2098
c4149ca304 修改变量服务 导出方法名称 2024-04-16 14:26:19 +08:00
Kimdiego2098
68b02fe950 优化导入导出,支持属性验证 2024-04-16 14:02:41 +08:00
Kimdiego2098
d9408523a5 更新插件 2024-04-16 11:12:28 +08:00
Diego2098
40ad0f063a 更新版本 2024-04-15 23:31:57 +08:00
Diego2098
40d85e8926 恢复部分代码:tcpclientbase;IDBHistoryAlarm;sqlhisalarm 2024-04-15 23:31:43 +08:00
Diego2098
e655f719e6 !16 为历史报警增加外部访问接口,linux下隐藏 OPCDA 调试选项,TgTcpClientBase.cs 增加try catch,防止出现设备无法连接时visualstudio 抛出异常“在一个非嵌套字上尝试了一个操作”
Merge pull request !16 from BAD MAN/master
2024-04-15 15:26:40 +00:00
BAD MAN
ede0ea02c5 Merge branch 'master' of https://gitee.com/dancingqueen/ThingsGateway 2024-04-15 22:46:37 +08:00
Diego2098
e579575b21 为 history alarm 增加 GetDBHistoryAlarmsAsync 和 GetDBHistoryAlarmPagesAsync 接口,方便外部访问历史报警;增加try catch,防止出现设备无法连接时visualstudio 抛出异常“在一个非嵌套字上尝试了一个操作”;linux 环境下 OPCDA 不显示 2024-04-15 22:46:35 +08:00
Kimdiego2098
06ffcc9fdf 更新插件 2024-04-15 18:14:23 +08:00
Kimdiego2098
774d03e510 更新插件 2024-04-15 17:39:02 +08:00
Kimdiego2098
adcac9dfe6 添加任务最大数量限制 2024-04-15 16:50:06 +08:00
Kimdiego2098
399e14c70c 去除头像种子数据 2024-04-15 14:25:35 +08:00
Kimdiego2098
ec8b51033b signalr dispose 忽略exception 2024-04-15 14:23:29 +08:00
Kimdiego2098
ca5d167b6a 更新插件 2024-04-15 13:57:05 +08:00
Kimdiego2098
fcd1b001d1 更新readme 2024-04-15 13:34:32 +08:00
Kimdiego2098
1cabbefe04 更新插件 2024-04-15 13:31:28 +08:00
Kimdiego2098
ecefe22c95 更新插件 2024-04-15 13:06:43 +08:00
Kimdiego2098
64db77b9a2 更新插件 2024-04-15 13:03:32 +08:00
Kimdiego2098
19d7360ad5 更新插件 2024-04-15 13:01:46 +08:00
Kimdiego2098
2f014cd827 更新插件 2024-04-15 12:46:17 +08:00
Kimdiego2098
7fb84205d9 更新插件 2024-04-15 12:38:07 +08:00
Kimdiego2098
47e1127c5f 更新插件 2024-04-15 12:21:16 +08:00
Kimdiego2098
e036b59306 更新插件 2024-04-15 12:04:34 +08:00
Kimdiego2098
f4904c3b53 添加插件 2024-04-15 11:31:13 +08:00
Diego2098
3002a63ba5 更新BootstrapBlazor版本 2024-04-14 23:38:47 +08:00
Diego2098
b69717e6c3 更新版本 2024-04-14 23:37:05 +08:00
Diego2098
d07962953f 修改注释 2024-04-14 23:16:30 +08:00
Diego2098
857cf0d21e delay策略更改 2024-04-14 23:10:37 +08:00
Diego2098
5f08c2615d 修复缓存类型转换错误 2024-04-14 23:05:21 +08:00
Diego2098
e87428ef33 更新6.0版本 2024-04-14 22:51:56 +08:00
Kimdiego2098
03fd54fe70 td时序库上传时间不应作为主键 2024-04-12 16:57:09 +08:00
Kimdiego2098
086c2c8253 取消ParallelForEachAsync方法 2024-04-11 14:54:54 +08:00
Kimdiego2098
05c19a32ea s7 修改解析 返回码 顺序 2024-04-10 15:20:18 +08:00
Kimdiego2098
99d174906a 更新版本 2024-04-08 21:48:50 +08:00
Kimdiego2098
82e30a326a 修复上个版本 modbus驱动打包变量 代码错误 2024-04-08 21:46:47 +08:00
Diego2098
2963a9cdca !14 获取历史数据之前检查历史数据库是否连接成功
Merge pull request !14 from BAD MAN/master
2024-04-05 13:53:55 +00:00
BAD MAN
288da75b2b Merge branch 'master' of https://gitee.com/dancingqueen/ThingsGateway 2024-04-05 21:05:57 +08:00
Kimdiego2098
0943a496dd 获取历史数据之前检查历史数据库是否连接成功更新版本 2024-04-05 21:04:47 +08:00
Kimdiego2098
e5dd7cc2fa 强推 2024-04-03 19:01:57 +08:00
Kimdiego2098
358836ef9f 更新版本 2024-04-01 10:00:00 +08:00
Kimdiego2098
aab4fac6c5 modbus DTU模式 修复socketid不同时的变量打包方式,以及心跳注册包等不再影响正常数据收发 2024-04-01 09:59:48 +08:00
Kimdiego2098
525540b603 S7打包方法内变量名称修正 2024-03-31 11:36:56 +08:00
Kimdiego2098
b30eeb4694 mchart 更新 2024-03-30 22:03:19 +08:00
Kimdiego2098
3faf0aa2fc 更新版本 2024-03-29 23:23:28 +08:00
Kimdiego2098
fd728dec5d 更新依赖包 2024-03-29 23:23:15 +08:00
Kimdiego2098
08b14b72d4 读写表达式更换为CS-Script实现 2024-03-29 23:15:52 +08:00
Diego2098
de2e005abf 更新版本 2024-03-27 22:17:55 +08:00
Diego2098
0fc75239a6 添加PreEvaluateVariableEnable配置,读取表达式/写入表达式中可以用变量名称获取全局变量的值,因性能问题默认关闭 2024-03-27 22:15:41 +08:00
Kimdiego2098
390fe30a0d 更新版本 2024-03-26 15:02:05 +08:00
Kimdiego2098
633f49fcd2 opcda导出节点excel表时通道名称错误 2024-03-26 15:01:57 +08:00
Kimdiego2098
30c0ba93b9 修复 s7 通过.n的方式读取字节中布尔量时,如果变量地址带有分号时出现的分包错误 2024-03-25 13:28:58 +08:00
Diego2098
e935fb9621 修正数组类型判断值变化方式 2024-03-24 23:08:55 +08:00
Kimdiego2098
5ce8bb1d08 修复首页刷新线程返回时,option还未赋值成功导致报错问题 2024-03-22 12:19:55 +08:00
Kimdiego2098
1acd12980a 调试页面显示异常堆栈 2024-03-16 16:59:12 +08:00
Kimdiego2098
683235dd8a 发布构建脚本重复错误 2024-03-15 10:53:13 +08:00
Kimdiego2098
65fe183ad4 冗余配置文件丢失时不再报空指针错误 2024-03-15 09:55:34 +08:00
Kimdiego2098
f39d5d355c 更新版本 2024-03-13 10:33:15 +08:00
Kimdiego2098
eccc8e0ff0 更新sqldb,删除不需要的转换 2024-03-13 10:25:26 +08:00
Kimdiego2098
dd4d8e775c 更新版本 2024-03-11 16:39:43 +08:00
Kimdiego2098
7a7f857b2f startUp调整注入顺序 2024-03-11 16:39:00 +08:00
Diego2098
10882b7d93 规范代码 2024-03-10 14:29:33 +08:00
Diego2098
e669b81005 发布构建时,默认删除PDB文件 2024-03-10 13:05:25 +08:00
Diego2098
28a81d9539 更新版本 2024-03-10 11:47:32 +08:00
Diego2098
6bf5e4a6b8 修改设备/变量 初始时间为unix 2024-03-10 11:46:05 +08:00
Diego2098
a51eee93f4 更新版本 2024-03-09 16:20:17 +08:00
Diego2098
bece2555c2 自动刷新图标时,启用echarts组件合并模式 2024-03-09 16:13:02 +08:00
Diego2098
d98d405009 更新touchsocket依赖正式版本 2024-03-09 15:19:19 +08:00
Diego2098
8d0881632c 业务设备初始默认状态为成功 2024-03-09 13:37:17 +08:00
Diego2098
e8b81da897 sqldb按选项建表 2024-03-09 13:19:35 +08:00
Diego2098
acf4fbf750 生产环境打印错误sql 2024-03-09 13:16:20 +08:00
Diego2098
b4f1921d33 更新版本 2024-03-09 11:32:26 +08:00
Diego2098
94b4816f53 修复sqldb查询接口错误,增加历史表-变量id字段 2024-03-09 11:29:04 +08:00
Kimdiego2098
b6ddafde3e 更新版本 2024-03-08 17:31:46 +08:00
Kimdiego2098
b01036818f 整理代码 2024-03-08 16:31:33 +08:00
Kimdiego2098
ad7da1a0c3 历史存储插件增加接口,增加历史查询方法 2024-03-08 16:27:45 +08:00
Kimdiego2098
1e0818d9d9 变量导入时,新增部分按行号排序 2024-03-08 16:27:19 +08:00
Kimdiego2098
a4686f01c3 更新touchsocket依赖 2024-03-08 13:22:40 +08:00
Kimdiego2098
84d76f9aab 更新版本 2024-03-07 19:23:05 +08:00
Kimdiego2098
b90bf5eb86 Revert "回退sqlsugar版本(sqldb分表问题)"
This reverts commit fe258f3fe5.
2024-03-07 18:47:04 +08:00
Kimdiego2098
fe258f3fe5 回退sqlsugar版本(sqldb分表问题) 2024-03-07 18:43:37 +08:00
Kimdiego2098
d339494594 更新版本 2024-03-07 15:03:17 +08:00
Kimdiego2098
adfaf13055 更新版本 2024-03-07 12:21:12 +08:00
Kimdiego2098
8abfeb5923 修复 sqldb oracle11 标识符过长 2024-03-07 12:11:20 +08:00
Kimdiego2098
c1a027a771 更新版本 2024-03-06 17:40:21 +08:00
Kimdiego2098
5f3094d79b 恢复误删代码 2024-03-06 12:49:58 +08:00
Kimdiego2098
925b81aca8 更新版本 2024-03-06 12:32:08 +08:00
Kimdiego2098
c0c8437966 OpcDa添加是否使用服务端时间选项 2024-03-06 12:31:43 +08:00
Kimdiego2098
1d27b2fc4a 表达式运行添加linq扩展方法,长度限制1000 2024-03-06 10:57:11 +08:00
Kimdiego2098
5da43e7808 更新版本 2024-03-05 16:55:12 +08:00
Kimdiego2098
5edbb558ae 更新版本 2024-03-04 13:12:47 +08:00
Kimdiego2098
7347cc1df2 json解析布尔值时,特殊忽略大小写 2024-03-04 12:43:47 +08:00
Kimdiego2098
20cac11b2a 磁盘使用率逻辑,缓存删除日志修改 2024-03-04 10:59:49 +08:00
Kimdiego2098
75c35c4ff8 更新版本 2024-03-04 00:10:43 +08:00
Diego2098
9d573512d0 更新版本 2024-03-03 23:49:47 +08:00
Diego2098
7921365853 更新版本 2024-03-03 23:03:02 +08:00
Diego2098
43263fd3b9 分离Variable类库 2024-03-03 17:43:37 +08:00
Diego2098
59042a5ead 修改echart背景颜色,去除多余的字体颜色 2024-03-02 13:39:17 +08:00
Kimdiego2098
91b14de807 文件编码覆盖 2024-03-01 18:54:36 +08:00
Kimdiego2098
81fab2be08 更新依赖包 2024-03-01 13:36:20 +08:00
Kimdiego2098
165b742782 更新版本 2024-03-01 13:33:49 +08:00
Kimdiego2098
76fef9c807 优化业务插件缓存逻辑 2024-03-01 13:33:43 +08:00
Kimdiego2098
e69ea0b9dc 更新版本 2024-02-28 17:41:02 +08:00
Kimdiego2098
98d3183f2b 修复sqldb历史表动态分表名称查询失效 2024-02-28 17:40:51 +08:00
Kimdiego2098
a29390a951 更新依赖包 2024-02-28 17:13:42 +08:00
Kimdiego2098
6291ce8617 modbusSlave运行时检查恢复启动 2024-02-28 17:08:31 +08:00
Kimdiego2098
c76b1b50a0 更新版本 2024-02-28 16:12:55 +08:00
Kimdiego2098
cc45e2aec0 更新网关双冗余 2024-02-28 16:12:38 +08:00
Kimdiego2098
17efebb8e8 更新版本 2024-02-28 16:05:50 +08:00
Kimdiego2098
5c94c733ee 整理代码 2024-02-28 16:05:18 +08:00
Kimdiego2098
156b89dd9c 更新双网关冗余 2024-02-28 16:04:04 +08:00
Kimdiego2098
34ba9f67e7 更新双网关冗余,sqldb支持历史表名称更改,更改为按周分表 2024-02-28 15:53:46 +08:00
Kimdiego2098
5ddaa6b872 双网关冗余(未完成) 2024-02-27 17:50:23 +08:00
Kimdiego2098
9043fa7f56 整理 2024-02-27 16:58:01 +08:00
Kimdiego2098
4c8e487dc9 双网关冗余(未完成) 2024-02-27 13:59:12 +08:00
Kimdiego2098
d3b87179aa 双网关冗余(未完成) 2024-02-26 19:49:19 +08:00
Kimdiego2098
2166de8331 修改Windows下UDP连接被重置错误10054代码 2024-02-26 12:57:48 +08:00
Diego2098
f0bc3f001f opcda nuget包不包含symbols 2024-02-25 15:31:48 +08:00
Diego2098
50448e7085 nuget包不需要发布源生成库 2024-02-25 15:11:15 +08:00
Diego2098
cd1d42353e 更新版本 2024-02-25 15:01:06 +08:00
Diego2098
5e588bf737 添加null判断 2024-02-25 14:59:17 +08:00
Kimdiego2098
7ff777d178 更新版本 2024-02-25 14:48:23 +08:00
Kimdiego2098
861621189a 底层变量特性实体支持数组 2024-02-25 14:39:08 +08:00
Diego2098
dcc00e08fd 整理代码 2024-02-24 23:32:51 +08:00
Diego2098
a1b8a47d4b 更新示例 2024-02-24 22:43:49 +08:00
Diego2098
1fd6b5e239 更改动态变量类缓存 2024-02-24 21:45:59 +08:00
Diego2098
f91e45bf44 整理代码 2024-02-24 18:42:45 +08:00
Kimdiego2098
0675a45592 更新版本 2024-02-24 18:23:41 +08:00
Kimdiego2098
0c7c6ae451 s7协议首次CR请求时,判断方式错误 2024-02-24 18:23:10 +08:00
Diego2098
cf089e8c4c 更新版本 2024-02-24 17:19:09 +08:00
Diego2098
90928ac679 更新版本 2024-02-24 17:14:57 +08:00
Diego2098
3bbcf71784 整理代码 2024-02-24 17:12:23 +08:00
Diego2098
222734775d 整理代码 2024-02-24 16:32:47 +08:00
Diego2098
f23ee7a6e0 整理代码 2024-02-24 16:08:37 +08:00
Diego2098
5b075aa6d5 更新底层变量类,添加源代码生成方法 2024-02-24 14:39:53 +08:00
Kimdiego2098
80cd6b693e 发行版本5.0.1.0 2024-02-23 13:09:25 +08:00
Kimdiego2098
04721a12b1 发行版本5.0.1.0 2024-02-23 13:03:53 +08:00
Kimdiego2098
64e22c0e46 取消默认PublishReadyToRun 2024-02-23 13:03:46 +08:00
Kimdiego2098
d5a70c5b08 Revert "发行版本5.0.1"
This reverts commit eaac7b6bcf.
2024-02-23 13:03:12 +08:00
Kimdiego2098
eaac7b6bcf 发行版本5.0.1 2024-02-23 12:58:25 +08:00
Kimdiego2098
b062a491cd 调整代码 2024-02-23 12:36:28 +08:00
Kimdiego2098
1e868517bb 默认启用PublishReadyToRun 2024-02-23 11:02:56 +08:00
Kimdiego2098
7b2a93a2d7 更新版本 2024-02-22 18:13:10 +08:00
Kimdiego2098
f57f0447c6 完善modbus写入保持寄存器某一位,比如400001.0的功能 2024-02-22 18:12:58 +08:00
Kimdiego2098
7126ff881e 更新版本 2024-02-22 17:52:32 +08:00
Kimdiego2098
e28da4b165 modbusTcp返回错误码时没有验证头部id 2024-02-22 17:52:20 +08:00
Kimdiego2098
92d9b91f7c 更新依赖包 2024-02-22 17:31:27 +08:00
Kimdiego2098
149c4a30c0 写入表达式支持json数组 2024-02-21 14:50:21 +08:00
Kimdiego2098
84e62062ec 表达式转换支持Json 2024-02-21 13:35:41 +08:00
Kimdiego2098
dc1fb74850 更新readme 2024-02-21 11:33:00 +08:00
Kimdiego2098
00c6010789 更新readme 2024-02-21 11:07:00 +08:00
Kimdiego2098
5d35c058e0 更新readme 2024-02-21 11:05:54 +08:00
Kimdiego2098
1522a521f6 更新readme 2024-02-21 10:59:53 +08:00
Kimdiego2098
6e11b885f9 同步代码 2024-02-21 09:38:34 +08:00
Kimdiego2098
442ae6e0e8 插件初始化失败时设置线程超时 2024-02-20 12:05:02 +08:00
Kimdiego2098
6b49e83464 opcua重连周期改为10s 2024-02-19 17:09:14 +08:00
Kimdiego2098
f1ecf13fe1 更新版本 2024-02-19 14:31:25 +08:00
Kimdiego2098
83d1c8582b 整理signalR代码 2024-02-19 14:31:14 +08:00
Kimdiego2098
179f6cd454 程序启动时清除在线用户统计 2024-02-19 13:42:28 +08:00
Kimdiego2098
91b1474ff0 更新文档 2024-02-19 09:44:55 +08:00
Kimdiego2098
15aabc88a1 更新文档 2024-02-18 18:26:46 +08:00
Kimdiego2098
afc0d3017d 修复等待池超限后没有恢复初始值的问题 2024-02-18 17:43:44 +08:00
Kimdiego2098
9e0b1dc8aa 更新文档 2024-02-18 16:05:18 +08:00
Kimdiego2098
55b482fd26 更新版本 2024-02-18 15:23:32 +08:00
Kimdiego2098
4f9c9a6566 发送方法更改为异步 2024-02-18 15:21:57 +08:00
Kimdiego2098
4725120ee9 添加历史cpu曲线过期时间 2024-02-18 15:04:37 +08:00
Kimdiego2098
a288f50fbb 演示环境默认填写帐户密码 2024-02-18 14:19:37 +08:00
Kimdiego2098
09cf2560a4 更新版本 2024-02-18 12:13:03 +08:00
Kimdiego2098
16353de7b1 修复LiteDB中的表达式缓存导致的内存泄露 2024-02-18 12:12:25 +08:00
Kimdiego2098
eb5834cb5c 更新版本 2024-02-18 10:00:40 +08:00
Kimdiego2098
3ef5736aed 更新依赖 2024-02-18 09:59:11 +08:00
Kimdiego2098
d2e7b77d16 Demo环境不再允许修改个人密码 2024-02-18 09:58:53 +08:00
Kimdiego2098
8f794bce75 更新文档 2024-02-18 09:35:24 +08:00
Kimdiego2098
c33196a50a 更新版本 2024-02-04 09:12:43 +08:00
Kimdiego2098
6e8b5b431f 更改种子数据解析方法 2024-02-04 09:09:29 +08:00
Kimdiego2098
8ca3ecf17f 更新版本 2024-02-02 15:44:12 +08:00
Kimdiego2098
91f7db59ea 更新依赖包 2024-02-02 15:44:02 +08:00
Kimdiego2098
a0b4501352 更新版本 2024-02-02 15:40:08 +08:00
Kimdiego2098
345047820a 更新依赖 2024-02-02 15:39:54 +08:00
Kimdiego2098
ac3525a953 更新版本 2024-02-02 15:15:32 +08:00
Kimdiego2098
c8c3f5b134 更新构建脚本 2024-02-02 15:14:37 +08:00
Kimdiego2098
51319c0718 mqttClient每次发布都作为遗嘱消息 2024-02-02 14:38:24 +08:00
Kimdiego2098
43399b8b47 mqttClient连接失败时缓存数据 2024-02-02 14:36:49 +08:00
Kimdiego2098
a6596042b7 修复上传业务缓存删除逻辑 2024-02-02 14:26:00 +08:00
Kimdiego2098
23ae85fc9c Revert "修复上传业务缓存删除逻辑"
This reverts commit 2da54862f1.
2024-02-02 14:25:21 +08:00
Kimdiego2098
2da54862f1 修复上传业务缓存删除逻辑 2024-02-02 14:24:49 +08:00
Kimdiego2098
f272fb0559 更新版本 2024-02-02 13:00:04 +08:00
Kimdiego2098
bd04e33586 底层通道设备列表更换为线程安全列表 2024-02-02 12:29:19 +08:00
Kimdiego2098
b09b9752ca mqttServer修复客户端连接时,发送初始数据分组错误 2024-02-02 12:16:43 +08:00
Kimdiego2098
a810a48158 更新dockerfile 2024-02-02 08:40:10 +08:00
Kimdiego2098
b4f5792aa8 串口流BeginRead更换为ReadAsync 2024-02-01 16:50:01 +08:00
Kimdiego2098
fdf0330b4f 更新版本 2024-02-01 12:20:11 +08:00
Kimdiego2098
ca73743082 调整服务启动顺序 2024-02-01 12:19:44 +08:00
Kimdiego2098
df0cde2cfd 定长字符串写入时,长度不足也覆盖剩余字节 2024-01-30 17:37:44 +08:00
Kimdiego2098
5a8421e807 更新版本 2024-01-30 14:33:57 +08:00
Kimdiego2098
025ac95d81 修复数据转换无默认构造导致的反序列化错误 2024-01-30 14:27:33 +08:00
Kimdiego2098
71b5824fdc 添加重启事件 2024-01-30 13:52:17 +08:00
Kimdiego2098
1a907c0be7 更新版本 2024-01-30 12:22:43 +08:00
Kimdiego2098
1635cabd32 更新版本 2024-01-30 11:56:58 +08:00
Kimdiego2098
27946a5b0f 调整日志文件路径 2024-01-30 11:56:26 +08:00
Kimdiego2098
e141822fd0 调整sqlsugar 2024-01-30 10:54:35 +08:00
Kimdiego2098
6326828a02 调整依赖 2024-01-30 10:16:35 +08:00
Kimdiego2098
96b5362491 添加modbus的字符串按字反转配置 2024-01-30 10:04:38 +08:00
Kimdiego2098
8ab91a51bc 调整瞬态服务构造 2024-01-30 09:42:15 +08:00
Kimdiego2098
35e7e7af18 更新版本 2024-01-29 18:28:15 +08:00
Kimdiego2098
0e248a7302 更新依赖包 2024-01-29 18:27:58 +08:00
Kimdiego2098
d5ce4d6600 调整代码 2024-01-29 17:55:40 +08:00
Kimdiego2098
2365bb5e87 sqlsugar版本固定5.1.4.122 2024-01-29 16:28:55 +08:00
Kimdiego2098
2230216a7e 调整代码 2024-01-29 14:32:33 +08:00
Kimdiego2098
54f896d25f 调整Task.Delay 2024-01-29 11:28:23 +08:00
Kimdiego2098
e47d239caf 调整种子数据 2024-01-29 09:13:49 +08:00
Kimdiego2098
ac259958d7 更新文档 2024-01-29 08:45:10 +08:00
Diego2098
0505ad88a6 修复mqttRpc写入数组时,字符串解析错误问题 2024-01-27 12:40:48 +08:00
Diego2098
b323de3383 添加属性默认值 2024-01-27 09:57:06 +08:00
Kimdiego2098
c0e023324b 更新文档 2024-01-26 11:51:35 +08:00
Kimdiego2098
495806d5e3 文档添加演示站点 2024-01-26 11:09:13 +08:00
Kimdiego2098
3a9f745a2d 更新Dlt645 nuget包文档 2024-01-26 10:43:19 +08:00
Kimdiego2098
7b15d114a3 适配窗体大小 2024-01-26 10:01:47 +08:00
Kimdiego2098
6ac0f72169 默认开启标签页缓存 2024-01-26 08:52:02 +08:00
Kimdiego2098
ff68030231 添加可空判断方法 2024-01-25 14:02:37 +08:00
Kimdiego2098
d34361b6dd 更新文档 2024-01-25 11:03:46 +08:00
Kimdiego2098
56c6ebe523 修复事务锁异常导致sqlite lock 2024-01-25 11:03:39 +08:00
Kimdiego2098
2c6d2e0eb4 更新文档 2024-01-24 16:56:01 +08:00
Kimdiego2098
8e64196a8f 去除MqttRpc主题的规则限制 2024-01-24 16:51:10 +08:00
Kimdiego2098
926d5faf21 更新文档 2024-01-24 16:15:33 +08:00
Kimdiego2098
18bad2af25 调整MqttRpc提示 2024-01-24 16:15:26 +08:00
Kimdiego2098
6be4dc4aac 更新版本 2024-01-24 15:14:27 +08:00
Kimdiego2098
6398a59dda 修复设备删除后,变量动态属性错误的问题 2024-01-24 15:06:36 +08:00
Kimdiego2098
48158b1db6 更新文档 2024-01-24 14:46:49 +08:00
Kimdiego2098
47fe519e54 更新文档 2024-01-24 14:36:22 +08:00
Kimdiego2098
7e06f19bbc 更新5.0.0.5 2024-01-24 12:19:29 +08:00
Kimdiego2098
0b66c1f0d6 添加using 2024-01-24 11:15:32 +08:00
Kimdiego2098
ff2742ffd8 删除字节转换类的copynew方法 2024-01-24 10:11:10 +08:00
Kimdiego2098
70c2992a5f 调整命名空间 2024-01-24 09:45:13 +08:00
Kimdiego2098
4ac4ee6874 调整命名空间 2024-01-24 08:50:53 +08:00
Kimdiego2098
865164a404 删除多余代码 2024-01-24 08:49:01 +08:00
Diego2098
f9c8069ab2 调整DTU配置,增加心跳回应 2024-01-23 21:32:47 +08:00
Diego2098
2fbf5140e5 调整DTU配置,增加心跳回应 2024-01-23 21:09:57 +08:00
Kimdiego2098
0126f8144a 调整mqtt在线状态判断 2024-01-23 18:06:22 +08:00
Kimdiego2098
71383d7482 调整日志读取策略 2024-01-23 17:23:36 +08:00
Kimdiego2098
4d3bfc5f42 调整封装方法 2024-01-23 15:51:08 +08:00
Kimdiego2098
c173d217de 添加重启后台事件 2024-01-23 08:50:08 +08:00
Kimdiego2098
d2da9a039f 更新5.0.0.4 2024-01-22 23:13:02 +08:00
Kimdiego2098
c915edd458 S7握手失败时直接关闭连接 2024-01-22 23:03:03 +08:00
Kimdiego2098
504948452e 更新TD引用 2024-01-22 22:12:17 +08:00
Kimdiego2098
3daa6c7a54 修复空指针错误 2024-01-22 21:53:59 +08:00
Kimdiego2098
10cd1580a5 调整命名 2024-01-22 21:13:59 +08:00
Kimdiego2098
5b0876e106 修复缓存item没有默认构造函数导致的錯誤 2024-01-22 11:38:16 +08:00
Kimdiego2098
cfcdeaff01 调整常量位置 2024-01-22 11:24:37 +08:00
Kimdiego2098
7c34f233fd 更新文档 2024-01-22 09:50:38 +08:00
Kimdiego2098
686146a7d9 修复导入插件错误 2024-01-22 08:38:48 +08:00
Kimdiego2098
44732d5977 更新5.0.0.3 2024-01-21 22:48:30 +08:00
Kimdiego2098
05c3794cf7 修复属性为可空类型是,excek导入失败的问题 2024-01-21 22:48:04 +08:00
Kimdiego2098
f0431a504a 更新版本5.0.0.2 2024-01-21 21:18:36 +08:00
Kimdiego2098
eccec85ea6 调整解析寄存器地址规则 2024-01-21 21:17:07 +08:00
Kimdiego2098
16ff538804 修复特殊方法执行主体错误 2024-01-21 20:42:20 +08:00
Kimdiego2098
f81e07eb6f 修复特殊方法检测为null的问题 2024-01-21 20:19:44 +08:00
Kimdiego2098
1cbd41ad87 更新文档 2024-01-21 16:50:16 +08:00
Kimdiego2098
d8567b8427 断开连接时 退出 等待数据返回 2024-01-21 16:43:10 +08:00
Kimdiego2098
afe6a1923b 断开连接时 退出 等待数据返回 2024-01-21 16:42:30 +08:00
Kimdiego2098
0f60f4754f 更新文档 2024-01-21 16:42:03 +08:00
Kimdiego2098
7e988d0401 更新文档 2024-01-21 16:08:23 +08:00
Kimdiego2098
d85813c229 更新文档 2024-01-21 16:07:56 +08:00
Kimdiego2098
12eb56809d 更新5.0 2024-01-21 15:38:31 +08:00
Kimdiego2098
d792172779 更新5.0 2024-01-21 15:38:28 +08:00
Kimdiego2098
011562ae73 修复变量 多字节解析顺序配置不生效 2024-01-12 09:50:41 +08:00
Kimdiego2098
71c4e36933 service中的客户端交互没有日志输出;modbusDTU添加定时清理 2024-01-10 12:11:55 +08:00
Kimdiego2098
6261982f6c OPCUA订阅null值时不判定离线 2023-12-29 16:53:05 +08:00
Kimdiego2098
4ac01e0ed0 修复插件外部上传,无法同步识别流的问题 2023-12-29 16:08:41 +08:00
Kimdiego2098
2dfe07f13e opc变量值为null时 不应影响变量质量戳状态 2023-12-27 22:27:13 +08:00
Kimdiego2098
7f4e4017ce 更新版本号 2023-12-12 22:42:56 +08:00
Kimdiego2098
635970f37b 更新版本号 2023-12-12 22:42:34 +08:00
Kimdiego2098
106e740220 修复导出变量偶发丢失上传属性的问题 2023-12-12 22:41:10 +08:00
Kimdiego2098
3e6420ba6f 整理上传插件代码 2023-12-12 22:40:42 +08:00
Diego2098
79be8010d5 Merge pull request #2 from allrightsreserved/master
分离数据库 和上传插件的父类
2023-12-12 21:09:44 +08:00
BadMan
0b6e679f3b 分离数据库 和上传插件的父类 2023-12-12 12:48:28 +08:00
Kimdiego2098
97c43ad2b9 更新依赖包 2023-12-11 21:19:51 +08:00
Kimdiego2098
cbf978745c 修复历史报警数据转储插件错误 2023-12-11 13:36:15 +08:00
Kimdiego2098
63dceada90 dateTimeExtension更改 2023-12-08 17:37:12 +08:00
Kimdiego2098
366aade8b4 整理代码文件 2023-12-08 17:08:57 +08:00
Kimdiego2098
aeb505e3d9 整理代码文件 2023-12-08 16:43:26 +08:00
Kimdiego2098
f9482e4773 Sqlsugar版本更新;
如果出现linux系统中报错sqlite错误,尝试安装依赖
# Debian/Ubuntu
apt-get install libsqlite3-mod-spatialite

# macOS
brew install libspatialite
2023-12-08 16:43:05 +08:00
Kimdiego2098
57dfc22ff7 更新版本号 2023-12-08 10:20:54 +08:00
Kimdiego2098
adc489b6ed 回退sqlsugar版本 2023-12-07 15:12:47 +08:00
Kimdiego2098
0623684315 nuget安装sqlite8.0.0 2023-12-07 14:34:14 +08:00
Kimdiego2098
68afccd859 修复OPC节点空间浏览窗口退出时报错的问题 2023-12-07 14:21:24 +08:00
Kimdiego2098
99eef8fb28 更新依赖包 2023-12-06 19:14:42 +08:00
Kimdiego2098
47e7685d39 串口代码整理 2023-12-06 18:54:33 +08:00
Kimdiego2098
b6ea596ade 整理代码 2023-12-06 18:35:52 +08:00
Kimdiego2098
44d60b469b 同步ts 2023-12-06 15:48:55 +08:00
Kimdiego2098
51087408df 同步ts 2023-12-06 15:16:54 +08:00
Kimdiego2098
96226d9e6e 同步ts 2023-12-06 14:56:12 +08:00
Kimdiego2098
28f0f62424 同步ts 2023-12-06 11:35:57 +08:00
Kimdiego2098
2e772a8cd4 同步touchsocket 2023-12-06 09:16:00 +08:00
Kimdiego2098
3fd192f0cf 变量表达式编辑 改为 多行文本框 2023-12-06 07:42:07 +08:00
Kimdiego2098
d16ae81961 更新demo;更新kafka 生成事件; 2023-12-04 20:28:36 +08:00
Kimdiego2098
211a8e093e 更新版本号 2023-12-01 21:23:51 +08:00
Kimdiego2098
84010a51d6 更改方法参数原;现由,分割 2023-12-01 21:22:27 +08:00
Kimdiego2098
e9700ea19b 更新依赖包 2023-12-01 19:55:17 +08:00
Kimdiego2098
e81ec68072 添加解决方案项 2023-11-30 17:44:26 +08:00
Kimdiego2098
6096e97708 modbusDtu更名 2023-11-30 10:47:37 +08:00
Kimdiego2098
6f302b66b4 添加ModbusRtu格式的DTU驱动 2023-11-30 10:16:26 +08:00
Kimdiego2098
b6e41890f7 同步TouchSocket 2023-11-30 10:16:20 +08:00
Kimdiego2098
be5332a048 添加离线后恢复间隔时间选项,添加重试次数选项 2023-11-29 20:47:23 +08:00
Kimdiego2098
4d72aeb0cd 修复种子数据带转义字符串时错误解析的问题 2023-11-29 19:04:56 +08:00
Kimdiego2098
c7c3c35100 补充git漏掉的props文件 2023-11-29 13:37:52 +08:00
Kimdiego2098
2f0df3c552 修复aop拦截不生效的问题,更新版本号,整理props文件 2023-11-29 12:43:05 +08:00
Kimdiego2098
e6effcd921 更新依赖包 2023-11-28 22:06:43 +08:00
Kimdiego2098
cd462b9523 修正导出设备表的sheet名称 2023-11-28 09:30:47 +08:00
Kimdiego2098
7e2e17d38b 整理部分底层代码 2023-11-27 16:17:12 +08:00
Kimdiego2098
665d616a06 整理部分项目项 2023-11-27 11:11:15 +08:00
Kimdiego2098
ced90f5bb9 更新版本号 2023-11-24 14:48:53 +08:00
Kimdiego2098
ca0ddb6cb4 10功能码写入时 修改需判断的crc长度 2023-11-24 14:48:28 +08:00
Kimdiego2098
3d733813e1 修复 modbusTcpDtu 初始化 空指针错误 2023-11-24 09:44:47 +08:00
Kimdiego2098
45ddc0b154 OPCUA插件afterStop方法重写时需执行父类方法 2023-11-23 20:51:08 +08:00
Kimdiego2098
87294497f3 调整网关状态页面 2023-11-23 20:49:35 +08:00
Kimdiego2098
5f45f9c0d0 修改内存缓存mapster选项 2023-11-23 15:22:39 +08:00
Kimdiego2098
7f78c06793 添加kafka的SecurityProtocol与SaslMechanism参数说明 2023-11-22 21:29:08 +08:00
Kimdiego2098
8ea5b7eebc 修复上个提交导致的excel导入产生空指针错误 2023-11-22 20:52:58 +08:00
Kimdiego2098
e49cd511af excel导入导出设备表时,去除多余的字段 2023-11-22 16:09:41 +08:00
Kimdiego2098
15c88646df socktClient重载toString 2023-11-22 15:28:04 +08:00
Kimdiego2098
f47919543d 更新版本号 2023-11-22 14:06:52 +08:00
Kimdiego2098
a95291d9cd 代码文件编码更改 2023-11-22 14:02:41 +08:00
Kimdiego2098
033deb3d29 修复变量上传属性在编辑页面不显示的问题 2023-11-22 13:35:44 +08:00
Kimdiego2098
923994c1f4 修复变量上传属性在编辑页面不显示的问题 2023-11-22 13:30:42 +08:00
Kimdiego2098
3d45b839b4 去除不存在的菜单 2023-11-21 18:19:14 +08:00
Kimdiego2098
55d1efa212 调整循环延时时间限值 2023-11-21 16:27:11 +08:00
Kimdiego2098
21d794a0e5 调试mqtt依赖 2023-11-21 15:07:07 +08:00
Kimdiego2098
614022a78c 去除上传间隔1s限制 2023-11-21 11:46:33 +08:00
Kimdiego2098
c00688e23a 整理代码 2023-11-21 11:41:44 +08:00
Kimdiego2098
5c69917d19 更新依赖 2023-11-21 08:44:47 +08:00
Kimdiego2098
6a5eb75b6c 更新版本号 2023-11-20 23:05:12 +08:00
Kimdiego2098
727c55eaa2 去除treeview 2023-11-20 23:04:54 +08:00
Kimdiego2098
9b03173ec5 去除treeview显示 2023-11-20 22:53:34 +08:00
Kimdiego2098
ab95855d6d 更新版本号 2023-11-20 22:47:18 +08:00
Kimdiego2098
bb84594c6b mqttserver/client插件支持websocket通道,直接对接前端 2023-11-20 22:42:08 +08:00
Kimdiego2098
97392c76b1 mqttserver/client插件支持websocket通道,直接对接前端 2023-11-20 22:33:26 +08:00
Kimdiego2098
53aec2b306 modbusTcpServer最大连接数设为3w 2023-11-20 19:46:07 +08:00
Kimdiego2098
a0a381dc63 更新依赖 2023-11-20 17:35:42 +08:00
Kimdiego2098
4fa95edeec 添加admin-解决方案 2023-11-20 15:38:33 +08:00
Kimdiego2098
b944f1d70e 修复设备curd服务aop失效的问题 2023-11-19 23:30:11 +08:00
Kimdiego2098
0f1a5d0085 更新版本号 2023-11-19 22:32:53 +08:00
Kimdiego2098
e7e10222e7 modbus server 添加是否立即写入内存的选项 2023-11-19 22:32:13 +08:00
Kimdiego2098
87c4fda588 默认开启多标签 2023-11-19 22:31:47 +08:00
Kimdiego2098
0ff820de6f 添加历史报警插件 2023-11-19 22:19:05 +08:00
Kimdiego2098
0dcf55e6d9 修复4.0代码 s7协议未设置适配器导致初始化/读写失败的问题 2023-11-19 21:49:32 +08:00
Kimdiego2098
a69842c910 增加上传插件 缓存基类 2023-11-19 15:20:01 +08:00
Kimdiego2098
318f635e4d 获取插件继承属性时,去除不重写特性的属性 2023-11-19 14:15:58 +08:00
Kimdiego2098
abf0d72316 整理文件 2023-11-18 23:04:51 +08:00
Kimdiego2098
5cd89c8844 整理文件 2023-11-18 23:04:25 +08:00
Kimdiego2098
501c1af38c 整理文件 2023-11-18 23:03:24 +08:00
Kimdiego2098
8526e130d9 整理文件 2023-11-18 23:03:02 +08:00
Kimdiego2098
76fd08eade 整理文件 2023-11-18 23:02:28 +08:00
Kimdiego2098
bfe48ae9d2 整理文件 2023-11-18 23:01:56 +08:00
Kimdiego2098
8547cdba7c 去除不必要的文件 2023-11-18 22:52:26 +08:00
Kimdiego2098
00d0cd631d 去除不必要的文件 2023-11-18 22:50:03 +08:00
Kimdiego2098
04460d13cd 迁移4.0 2023-11-18 22:45:24 +08:00
Kimdiego2098
a17a15e5d7 迁移4.0 2023-11-18 22:43:36 +08:00
Kimdiego2098
bfe2465658 添加停止线程等待时间 2023-11-16 22:32:22 +08:00
Kimdiego2098
4568987785 s7握手失败后,手动关闭连接 2023-11-11 10:26:05 +08:00
Kimdiego2098
c0e5a1419d fix:修复线程阻塞检测触发重启时,后台变量列表不再刷新的问题! 2023-11-10 09:00:50 +08:00
Kimdiego2098
23ac7ab748 历史数据上传成功后,才上传缓存数据 2023-11-09 18:55:56 +08:00
Kimdiego2098
5622dc74a8 update 2023-11-08 16:19:46 +08:00
Kimdiego2098
528986f4f0 发布3.0.1版本 2023-11-03 11:32:13 +08:00
Kimdiego2098
e6b8ff3f91 update touchsocket 2023-11-03 11:27:12 +08:00
Kimdiego2098
3fc3c5296f update touchsocket 2023-11-03 11:19:26 +08:00
Kimdiego2098
f4f2a14a31 不存在插件时,报错内容优化 2023-11-01 14:51:08 +08:00
Kimdiego2098
fa3f464cb6 update webapiClient 2023-11-01 14:21:53 +08:00
Kimdiego2098
bed20538ae 调整Timeout属性为int数据类型 2023-10-31 23:49:46 +08:00
Kimdiego2098
3da461c6e6 更新发布版3.0.0.28 2023-10-31 17:47:07 +08:00
Kimdiego2098
9c73e8452a 更新OPCUAClient,订阅模式适配 分组 2023-10-31 10:55:50 +08:00
Kimdiego2098
750dab69d3 update 2023-10-31 00:24:00 +08:00
Kimdiego2098
702d0da47c tcpservice停止时执行shutdown方法,修复demo发布不显示页面的问题 2023-10-30 21:31:30 +08:00
Kimdiego2098
3a955b1e53 添加部分Pro内容 2023-10-29 19:39:38 +08:00
Kimdiego2098
d408bd93e8 添加部分Pro内容 2023-10-29 19:34:17 +08:00
Kimdiego2098
63fd9eb1de 更新文档 2023-10-28 22:06:58 +08:00
Kimdiego2098
4718ab6ddf 发布3.0.0.27版本;
优化设备线程启停逻辑
添加winform(blazor) demo
部分页面显示内容优化
2023-10-28 22:03:52 +08:00
Kimdiego2098
affd4b3a26 发布3.0.0.27版本;
优化设备线程启停逻辑
添加winform(blazor) demo
部分页面显示内容优化
2023-10-28 22:00:35 +08:00
Kimdiego2098
6a660dbcda 优化设备线程启停逻辑 2023-10-28 21:58:09 +08:00
Kimdiego2098
5ff3af8b48 添加部分Pro内容 2023-10-28 21:21:03 +08:00
Kimdiego2098
9d49070f93 添加winform(blazor) demo 2023-10-28 15:20:12 +08:00
Kimdiego2098
5b3994a1dd 调整pro类库 2023-10-28 10:54:26 +08:00
Diego2098
bb1e62c580 设备状态页面显示优化 2023-10-27 20:19:26 +08:00
Diego2098
29cc776908 状态显示:已退出自动更新 2023-10-27 20:18:57 +08:00
Kimdiego2098
d2ef60b2ec 报文显示限长500 2023-10-27 14:53:19 +08:00
Kimdiego2098
41ea496d41 tcpserver 报文输出 添加 ip端口 提示 2023-10-27 14:41:35 +08:00
Kimdiego2098
c69bb38929 update the tcpserver class and add log output for start and stop 2023-10-27 14:24:26 +08:00
Kimdiego2098
23b3f8494e 优化线程上下文转换 2023-10-26 19:16:24 +08:00
Kimdiego2098
0ff94eec1b 添加ConfigureAwait 2023-10-26 18:06:33 +08:00
Kimdiego2098
f67a638565 优化设备导出逻辑 2023-10-26 15:15:43 +08:00
Kimdiego2098
778cf71c61 优化设备导出逻辑 2023-10-26 15:10:26 +08:00
Kimdiego2098
e2da083b48 3.0.0.25 2023-10-26 13:21:40 +08:00
Kimdiego2098
dcc48c0d4b Merge branch 'master' of https://gitee.com/dotnetchina/ThingsGateway 2023-10-26 13:20:54 +08:00
Kimdiego2098
2446b4a591 3.0.0.25 2023-10-26 13:20:31 +08:00
Kimdiego2098
a973d633c8 update 2023-10-26 13:19:18 +08:00
Kimdiego2098
c3b11e6e0f s7添加错误返回码提示,组包处理 2023-10-26 13:05:06 +08:00
Kimdiego2098
44bec2d99e 增加硬件信息 相关json配置 2023-10-26 10:54:48 +08:00
Kimdiego2098
0d59d0a3f6 更新nuget依赖 2023-10-26 09:37:01 +08:00
Kimdiego2098
ddc8372b09 硬件信息页面添加刷新条件 2023-10-26 09:20:25 +08:00
Kimdiego2098
ea7325f4e0 更新文档 2023-10-25 00:53:27 +08:00
Kimdiego2098
6048f95415 update touchsocket 2023-10-25 00:53:17 +08:00
Kimdiego2098
5682705b8d <Version>3.0.0.24</Version> 2023-10-24 23:48:20 +08:00
Kimdiego2098
6c3b82607d 更改S7协议 设备属性,注意删除了DstTSAP,改为较直观的 机架号/槽位号 2023-10-24 23:47:35 +08:00
Kimdiego2098
486c9f4ebf 添加属性识别 16进制写入 2023-10-24 23:46:50 +08:00
Kimdiego2098
7c8adebf2d 添加nuget依赖包 2023-10-24 20:50:39 +08:00
Kimdiego2098
ce98bb0dc1 更新nuget包 2023-10-24 00:37:46 +08:00
Kimdiego2098
60b49a4296 调整解决方案文件夹 2023-10-24 00:13:03 +08:00
Kimdiego2098
5d0a2ffae0 暂时屏蔽mqttserver 遗留消息错误 2023-10-23 20:51:11 +08:00
Kimdiego2098
bbcf7c722a 调整编码 2023-10-23 20:47:00 +08:00
Kimdiego2098
66574eec6d 调整mqttlog 2023-10-23 20:46:17 +08:00
Kimdiego2098
305df3a42c 调整mqttlog 2023-10-23 20:43:58 +08:00
Kimdiego2098
323c6f4270 添加部分兼容方法 2023-10-22 02:42:16 +08:00
Kimdiego2098
c056b2b14c 添加部分兼容方法 2023-10-22 02:26:18 +08:00
Kimdiego2098
02ebb07fd8 update touchsocket 2023-10-22 02:26:04 +08:00
Kimdiego2098
59db0890c3 调整代码格式 2023-10-21 19:15:26 +08:00
Kimdiego2098
3ea0d9ed3a update touchsocket 2023-10-21 19:08:21 +08:00
Kimdiego2098
0371d11dd5 调整代码格式 2023-10-21 19:03:15 +08:00
Kimdiego2098
12f1ebaee9 调整代码格式 2023-10-21 19:02:58 +08:00
Kimdiego2098
5202cc22d1 3.0.0.23 2023-10-20 21:38:22 +08:00
Kimdiego2098
07a34bdcbf 优化SQLDB实时表模式,插入/更新 2023-10-20 21:38:07 +08:00
Kimdiego2098
27806da4be sqlsugar提示默认中文 2023-10-20 21:37:42 +08:00
Kimdiego2098
a15dd1a3ce update touchsocket 2023-10-20 21:03:29 +08:00
Kimdiego2098
6cc7451c7c 优化 ModbusServer 内存占用 2023-10-20 01:53:48 +08:00
Kimdiego2098
652aeee782 3.0.0.21 2023-10-20 01:19:18 +08:00
Kimdiego2098
8e1e887b8f 优化OPCUAServer,取消注册,提供多url写入 2023-10-20 01:19:05 +08:00
Kimdiego2098
6601a2de64 更新赞助名单 2023-10-19 21:15:35 +08:00
Kimdiego2098
75a42ffc32 更新文档 2023-10-19 20:36:28 +08:00
Kimdiego2098
8a80a52f5f 更新版本:3.0.0.20 2023-10-19 20:27:31 +08:00
Kimdiego2098
b373a434ba 优化modbusServer内存管理 2023-10-19 20:24:39 +08:00
Kimdiego2098
cd78fdafe6 update touchsocket 2023-10-19 20:23:43 +08:00
Kimdiego2098
7a1b4c6db7 update toucksocket 2023-10-18 21:51:49 +08:00
Kimdiego2098
f2c7664033 更新文档 2023-10-18 20:42:10 +08:00
Kimdiego2098
12b295f067 发布驱动包 2023-10-18 18:04:37 +08:00
Diego2098
3ee46da40f !12 【轻量级 PR】:修正心跳事件中的参数
Merge pull request !12 from youthalan/N/A
2023-10-18 06:59:17 +00:00
youthalan
beadaa7212 修正心跳事件中的参数
Signed-off-by: youthalan <youthalan@126.com>
2023-10-18 06:58:03 +00:00
Kimdiego2098
16ef09426f 更新版本号 2023-10-18 13:13:03 +08:00
Kimdiego2098
b8c1f1f5a9 初始化 采集/上传线程时 直接返回线程控制 2023-10-18 13:11:59 +08:00
Kimdiego2098
e027b5cbd6 更新OPCUAClient类库 2023-10-18 13:09:25 +08:00
Kimdiego2098
bf1bd73ad1 更新OPCUAClient类库 2023-10-18 12:45:26 +08:00
Kimdiego2098
86fc95119a 更新OPCUAClient类库 2023-10-18 12:44:58 +08:00
Kimdiego2098
b3a76ea17b 更新版本号与nuget发布 2023-10-18 12:39:42 +08:00
Kimdiego2098
bababd9d53 更新OPCUAClient类库 2023-10-18 12:38:20 +08:00
Diego2098
8cd5180531 !11 补充OPCClient类库事件的缺失文件
Merge pull request !11 from youthalan/N/A
2023-10-18 04:34:34 +00:00
youthalan
f1ccbade8c 补充OPCClient类库事件的缺失文件
Signed-off-by: youthalan <youthalan@126.com>
2023-10-18 04:32:39 +00:00
Diego2098
a66f4b0417 !10 添加连接或断开事件
Merge pull request !10 from youthalan/N/A
2023-10-18 04:20:22 +00:00
youthalan
ff495b2261 修改OPCUAClient类添加连接或断开事件,修改注入时不需要带参数
Signed-off-by: youthalan <youthalan@126.com>
2023-10-18 03:48:05 +00:00
Kimdiego2098
90e5824212 update 3.0.0.16 2023-10-18 00:38:36 +08:00
Kimdiego2098
3d64021062 opcuaClient浏览空间 添加是否显示子变量的选项 2023-10-18 00:36:44 +08:00
Kimdiego2098
fb8ed7428d 更改日志输出内容 2023-10-18 00:15:07 +08:00
Kimdiego2098
bdc273c10a update 3.0.0.15 2023-10-18 00:07:24 +08:00
Kimdiego2098
2d96cffdc7 增加不支持单文件发布的说明 2023-10-17 23:47:24 +08:00
Kimdiego2098
4356fccbcd update tdengineDB plugin 2023-10-17 23:43:48 +08:00
Kimdiego2098
a169fd4ce7 update touchsocket 2023-10-17 23:12:19 +08:00
Kimdiego2098
dcd418139e TD时序库插件,创建时间更改为主键 2023-10-17 23:08:09 +08:00
Kimdiego2098
0cac2062d3 update touchsocket 2023-10-17 23:06:21 +08:00
Kimdiego2098
854c5d4ade 更新nuget包 2023-10-17 21:00:50 +08:00
Kimdiego2098
0f96c6ec84 update SQLDB 2023-10-16 20:50:10 +08:00
Kimdiego2098
b219bd66c1 update touchsocket and other 2023-10-16 20:36:51 +08:00
Kimdiego2098
cb52f2c0b3 3.0.0.13 2023-10-16 17:44:09 +08:00
Kimdiego2098
d3273e03ef 增加关系库存储插件; 2023-10-16 17:40:17 +08:00
Kimdiego2098
afbfd963f3 增加时序库存储插件; 2023-10-16 17:40:13 +08:00
Kimdiego2098
2cd101c5f3 更新pro用户列表 2023-10-16 17:39:14 +08:00
Kimdiego2098
b10bc24dee 3.0.0.12 2023-10-16 08:47:39 +08:00
Kimdiego2098
51a23df861 opcuaclient添加是否加载服务端数据类型的选项 2023-10-16 08:46:46 +08:00
Kimdiego2098
03a0a9dad9 fix:tcpservice dispose err 2023-10-16 08:46:32 +08:00
Diego2098
362c0affbe !9 增加可选择安全订阅
Merge pull request !9 from youthalan/N/A
2023-10-16 00:33:19 +00:00
youthalan
d5b523479f 增加可选择安全订阅,以加快订阅速度
Signed-off-by: youthalan <youthalan@126.com>
2023-10-16 00:26:59 +00:00
Kimdiego2098
7719b8f6d7 更新3.0.0.11 2023-10-15 20:26:18 +08:00
Diego2098
3656c0d524 读取数据类型方法改为批量 2023-10-15 20:21:23 +08:00
Kimdiego2098
8b9e0dd6ea 同步Pro版本 2023-10-13 20:14:35 +08:00
Kimdiego2098
b3921b1037 update touchsocket 2023-10-13 19:16:12 +08:00
Kimdiego2098
d7d96e5dbf update nuget 2023-10-13 16:14:42 +08:00
Kimdiego2098
3934395b7b update 3.0.0.7 2023-10-13 11:54:27 +08:00
Kimdiego2098
04fbe9a529 添加三菱mc 3e帧二进制通讯协议文档 2023-10-13 11:51:51 +08:00
Kimdiego2098
badd6dd9a2 update demo 2023-10-12 18:52:44 +08:00
Kimdiego2098
059082456d 参数名称修改 2023-10-12 14:57:58 +08:00
Kimdiego2098
405b68e22f fix:mqtt保留消息未更新/更新错误 2023-10-12 14:57:36 +08:00
Kimdiego2098
c90bf6692c 3.0.0.6 2023-10-11 16:35:10 +08:00
Kimdiego2098
b5ea5d0cc5 update nuget 2023-10-11 16:28:18 +08:00
Kimdiego2098
243617a1e1 调整代码执行顺序 2023-10-11 16:19:34 +08:00
Kimdiego2098
9e703edd59 update ManageGateway 2023-10-11 10:59:33 +08:00
Kimdiego2098
d6c2cf2810 update ManageGateway 2023-10-11 10:41:09 +08:00
Kimdiego2098
ae7811acfa update 3.0.0.5 2023-10-10 21:09:34 +08:00
Kimdiego2098
e55731c099 fix:modbusRtu写入返回报文缓存逻辑修复 2023-10-10 21:08:42 +08:00
Kimdiego2098
9df5c74da4 update touchsocket 2023-10-10 20:03:40 +08:00
Kimdiego2098
8b75f9f785 update touchsocket 2023-10-10 20:02:15 +08:00
Kimdiego2098
bf12428cf4 fix:signalR razor dispose接口 2023-10-09 18:11:23 +08:00
Kimdiego2098
b551df978b update uaparser 2023-10-09 10:56:22 +08:00
Kimdiego2098
c91d85d2f0 添加MqttRpcDemo 2023-10-07 12:04:17 +08:00
Kimdiego2098
965237fa1f 添加清理日志任务配置参数 2023-10-06 18:28:06 +08:00
Kimdiego2098
24cd9afc06 update 3.0.0.2 2023-10-05 15:32:50 +08:00
Diego2098
602fdefebd update Directory.Build.props 2023-10-05 15:21:51 +08:00
Kimdiego2098
7e7818aa17 修复重启共享通道中的单个设备时,导致通道内其他设备变量异常 2023-10-05 00:34:12 +08:00
Kimdiego2098
27a6023a6a update opcuaclient 2023-10-04 17:12:47 +08:00
Kimdiego2098
3861879900 update opcuaclient 2023-10-04 16:59:15 +08:00
Kimdiego2098
807eeb8351 update nuget 2023-10-04 02:04:09 +08:00
Kimdiego2098
045fa53d58 update 3.0.0.1 2023-10-04 01:42:27 +08:00
Kimdiego2098
69d405ece7 实时报警列表线程同步 2023-10-04 01:27:03 +08:00
Kimdiego2098
d3dc4d0c5b modbusRtu 适配器 过滤干扰头部数据 2023-10-04 01:26:44 +08:00
Kimdiego2098
7beba1188e 更新种子数据 2023-10-04 01:24:34 +08:00
Kimdiego2098
9779ebe12c update windowsService bat 2023-10-03 19:11:42 +08:00
Kimdiego2098
f72cfaa093 update demo 2023-10-03 18:54:01 +08:00
Kimdiego2098
cf8ccafb4a rpc调用提示优化 2023-10-03 18:20:39 +08:00
Kimdiego2098
7fe281b0b8 fix:rpc 特殊方法分类错误 2023-10-03 17:05:49 +08:00
Kimdiego2098
5f70e9574f update demo 2023-10-02 22:37:50 +08:00
Kimdiego2098
4be51923ba update driverDebugPage 2023-10-02 18:34:55 +08:00
Kimdiego2098
a72c78f4a4 update opcuaClient 2023-10-02 18:30:58 +08:00
Diego2098
b4d32a6de1 add s7 wstring addressSign 2023-10-01 16:54:42 +08:00
Diego2098
8a6b2d5daa add s7 wstring addressSign 2023-10-01 16:49:07 +08:00
Diego2098
bebadeef14 更新demo 2023-10-01 13:33:25 +08:00
Kimdiego2098
3551be67f0 update demo csproj 2023-10-01 00:33:33 +08:00
Kimdiego2098
1103950b25 add EncodingMapper 2023-10-01 00:25:04 +08:00
Kimdiego2098
9d06e01cec 更新文档 2023-09-30 23:28:50 +08:00
Kimdiego2098
24be946b7e 默认不启用远程更新 2023-09-30 23:23:44 +08:00
Kimdiego2098
f56d2fc60f 更新readme 2023-09-30 23:09:48 +08:00
Kimdiego2098
9f8356f409 同步3.0.0版本代码 2023-09-30 23:05:53 +08:00
Kimdiego2098
8e6345d938 更新文档 2023-09-26 20:03:58 +08:00
Kimdiego2098
0eac78bd1c 2.1.0.15 2023-09-20 11:50:06 +08:00
Kimdiego2098
21db2502d0 2.1.0.15 2023-09-20 11:47:10 +08:00
Kimdiego2098
38c3492123 添加kafka/mq/iotsharp的间隔上传 2023-09-20 11:46:17 +08:00
Diego2098
6376bff476 fix:上传设备选择驱动时没有正确刷新 2023-09-18 00:10:02 +08:00
Kimdiego2098
38495a3ebc 2.1.0.14 2023-09-15 14:02:15 +08:00
Kimdiego2098
cf00897be2 ExpressionEvaluator改为多实例 2023-09-15 14:01:54 +08:00
Kimdiego2098
da640f24ec 2.1.0.13 2023-09-15 13:23:59 +08:00
Kimdiego2098
ed6a777c42 add dispose() 2023-09-15 13:23:39 +08:00
Kimdiego2098
81af4485d3 2.1.0.12 2023-09-15 13:20:29 +08:00
Kimdiego2098
94d8f0237d 更新多个依赖包版本 2023-09-15 13:19:04 +08:00
Kimdiego2098
c5e579dd38 修复因重复注册cancellationToken.Register导致的内存暴涨! 2023-09-15 13:17:36 +08:00
Kimdiego2098
7865e76ee2 CancellationToken代替CancellationTokenSource传入 2023-09-15 13:16:56 +08:00
Kimdiego2098
4d37212cc0 2.1.0.11 2023-09-11 09:35:24 +08:00
Kimdiego2098
9ca43f0bb4 feat:ManageGatewayWorker part 2023-09-11 09:31:26 +08:00
Kimdiego2098
fe8d262175 feat:ManageGatewayWorker part 2023-09-11 09:09:48 +08:00
Kimdiego2098
493d6e7165 feat:ManageGatewayWorker part 2023-09-11 09:09:03 +08:00
Kimdiego2098
17b630bcd8 TGAPPInfp更名APPInfo 2023-09-11 08:57:13 +08:00
Kimdiego2098
018c5ad3b4 Merge branch 'master' of https://gitee.com/dotnetchina/ThingsGateway 2023-09-11 08:54:01 +08:00
Kimdiego2098
a14b4da977 feat:ManageGatewayWorker part 2023-09-11 08:53:52 +08:00
Diego2098
01b4597cc7 !7 修复无法修改变量值问题
Merge pull request !7 from 如阳如木/master
2023-09-07 10:14:45 +00:00
如阳如木
0b083ccc1c 删除&& LastSetValue?.ToString() != data?.ToString()
Signed-off-by: 如阳如木 <970143933@qq.com>
2023-09-07 08:42:49 +00:00
Kimdiego2098
ca22cb0eae ManageGatewayConfig.json 2023-09-06 17:29:58 +08:00
Kimdiego2098
bcbb8e5f8c fix:_mqttServer null error 2023-09-06 17:27:36 +08:00
Kimdiego2098
bea286cdd4 2.1.0.10 2023-09-06 17:16:28 +08:00
Kimdiego2098
892d2ee8d2 从数据库取原属性 2023-09-06 17:14:24 +08:00
Kimdiego2098
7440608c14 更改变量 最近一次值 为 上次值 2023-09-06 16:44:58 +08:00
Kimdiego2098
6246f0295b 更改 变量最近一次值 为 上次值 2023-09-06 16:44:42 +08:00
Kimdiego2098
53c39d9b43 2.1.0.9 2023-09-06 16:30:50 +08:00
Kimdiego2098
9a50b60031 fix:串口断连/拔出/断电等情况,重新连接 2023-09-06 16:29:48 +08:00
Kimdiego2098
fd74527320 feat:ManageGatewayWorker part 2023-09-06 16:15:38 +08:00
Kimdiego2098
f91fb522ac feat:ManageGatewayWorker part 2023-09-06 16:10:29 +08:00
Kimdiego2098
7019c02b18 feat:ManageGatewayWorker part 2023-09-05 23:59:18 +08:00
Kimdiego2098
94f8422b9b feat:ManageGatewayWorker part 2023-09-05 23:37:02 +08:00
Kimdiego2098
b25c01567a feat:ManageGatewayWorker part 2023-09-05 23:33:02 +08:00
Kimdiego2098
b9329885de 2.1.0.8 2023-09-05 09:19:58 +08:00
Kimdiego2098
ac88c4cff9 fix:PeriodicTimer dispose 2023-09-05 09:17:26 +08:00
Kimdiego2098
9674f2d238 2.1.0.7 2023-09-05 09:06:39 +08:00
Kimdiego2098
38c9ecb6f1 fix:error!the stream dispose 2023-09-05 09:04:34 +08:00
Kimdiego2098
be9e9cdd5a Revert "fix:error!the stearm dispose"
This reverts commit a6d99fe227.
2023-09-05 09:03:49 +08:00
Kimdiego2098
afdaf07446 feat:mqttBroker part 2023-09-05 08:58:49 +08:00
Kimdiego2098
5caaf10225 fix:error!the stearm dispose 2023-09-05 08:57:42 +08:00
Diego2098
daffc3a776 feat:mqttBroker part 2023-09-04 22:34:31 +08:00
Diego2098
34c9748ce5 fix:uploadDeivce复制多个,ID重复问题 2023-09-04 22:11:50 +08:00
Diego2098
f17acbf4d1 刷新后选择行清空 2023-09-04 22:09:26 +08:00
Diego2098
229f56ce2f fix:采集设备线程初始化时更新活跃时间 2023-09-04 20:13:49 +08:00
Diego2098
0847bedc51 fix:特殊情况下无法获取程序集文件修改日期,所以去除 页脚-编译时间显示 2023-09-04 19:49:17 +08:00
Kimdiego2098
9e4546c305 fix:sqlsugar json支持类型改为bigstring 2023-09-04 17:09:38 +08:00
Kimdiego2098
97b01bf26a 更新文档 2023-09-04 15:03:03 +08:00
Kimdiego2098
e7011628d0 恢复Sqlite默认数据库 2023-09-02 19:17:32 +08:00
Kimdiego2098
044ffdecbd fix: page取消注入瞬时服务,改为App.GetService 2023-09-02 19:13:57 +08:00
Kimdiego2098
1a06a3543b feat:mqttBroker part 2023-09-02 13:55:21 +08:00
Kimdiego2098
5fedc0bf1e 更新文档 2023-08-31 09:17:59 +08:00
Kimdiego2098
7a881f867e 更新 变量管理-上传设备筛选功能 2023-08-31 08:58:30 +08:00
Kimdiego2098
dfe73a6cfb 2.1.0.6 2023-08-30 17:19:18 +08:00
Kimdiego2098
45d0fb27ad add windows service create/delete bat 2023-08-30 17:18:35 +08:00
Kimdiego2098
31890af61d update statusPage; 2023-08-30 14:12:50 +08:00
Kimdiego2098
a54b3ecc15 默认检测重连频率为10分钟 2023-08-29 17:56:59 +08:00
Kimdiego2098
c37cd1bd51 2.1.0.5 2023-08-29 17:44:28 +08:00
Kimdiego2098
0e3ee89cbf 添加报文日志入库选项 2023-08-29 17:42:56 +08:00
Kimdiego2098
a049176c14 添加 页脚 编译时间显示 2023-08-29 17:01:46 +08:00
Kimdiego2098
5ef2b0089e 调整导入excel错误提示 2023-08-29 16:45:54 +08:00
Kimdiego2098
1cc4899593 update opcdaclient null error 2023-08-29 15:24:29 +08:00
Kimdiego2098
26d1390be9 update GetBoolValue 2023-08-29 12:40:21 +08:00
Kimdiego2098
dc65584fb3 调整种子文件,增加Pro版本种子文件录入 2023-08-29 09:42:54 +08:00
Kimdiego2098
b3d5a708d5 更新2.1.0.4 2023-08-28 19:31:00 +08:00
Kimdiego2098
904a5d296b 修复串口基类 缓存包 失效错误;完善modbusrtu长度校验 2023-08-28 19:25:22 +08:00
Kimdiego2098
cc82e6a47a 更新touchsocket版本,更新2.1.0.3 2023-08-28 18:12:18 +08:00
Kimdiego2098
a9d02ec854 修复浏览大量节点空间时,BrowseNext方法参数releaseContinuationPoints改为false 2023-08-28 17:44:02 +08:00
Kimdiego2098
6b5a2d3767 修复调试界面-opcuaclient浏览节点展开逻辑错误 2023-08-28 10:51:35 +08:00
Kimdiego2098
10d9060b94 更新小版本2.1.0.2 2023-08-27 17:17:37 +08:00
Kimdiego2098
8441839c01 更新dlt645地址说明 2023-08-27 17:16:59 +08:00
Kimdiego2098
b669f5838f 添加日志查询 时间区间条件 2023-08-27 16:58:45 +08:00
Kimdiego2098
1a942f9ce1 2.1.0.1 2023-08-27 16:31:03 +08:00
Kimdiego2098
ae840758f7 dlt645添加数据标识校验 2023-08-27 16:30:32 +08:00
Kimdiego2098
082c08e5f9 更新dlt645,添加地址/控制码的校验规则 2023-08-27 16:15:51 +08:00
Kimdiego2098
74a43557ab 更新touchsocket 2023-08-27 15:59:57 +08:00
Kimdiego2098
184271789d 更新 Opc.Ua Version="1.4.372.56" 2023-08-27 14:33:24 +08:00
Kimdiego2098
fa61b0cad8 opcda/ua浏览地址空间 初始只加载首层节点 2023-08-27 14:14:47 +08:00
Kimdiego2098
7b197a90d1 opcuaclient浏览地址空间 初始只加载首层节点 2023-08-27 13:06:03 +08:00
Diego2098
62384af2f6 update MqttNetLogger 2023-08-26 21:38:14 +08:00
Diego2098
b466202a1a update MqttNetLogger 2023-08-26 20:40:23 +08:00
Diego2098
7ab38c18d8 添加在线/离线方法参数 2023-08-26 17:18:47 +08:00
Diego2098
39841ee43e 更新opcuaclient 2023-08-26 15:38:22 +08:00
Diego2098
e419800d98 更新opcuaclient,添加checkDomain属性,去除多余代码,更新SelectEndpoint方法 2023-08-26 15:33:03 +08:00
Kimdiego2098
63c99ab69a 更新文档 2023-08-25 19:49:02 +08:00
Kimdiego2098
e2a8fd2279 更新版本2.1.0 2023-08-25 19:45:28 +08:00
Kimdiego2098
bbde520471 更新解决方案 2023-08-25 19:38:47 +08:00
Kimdiego2098
45fb12f98e 更新DLT645文档 2023-08-25 19:33:33 +08:00
Kimdiego2098
4be3dcce50 添加DLT645_2007协议插件 2023-08-25 19:33:08 +08:00
Kimdiego2098
d12a41c769 调整Test位置 2023-08-25 19:32:27 +08:00
Kimdiego2098
ed9a58c9ed 调整非主从协议的状态判断策略;OPCUA去除主动连接 2023-08-25 17:23:00 +08:00
Kimdiego2098
4389cea5a1 crc校验优化 2023-08-22 17:01:10 +08:00
Kimdiego2098
d24854920b OPCUAClient添加是否使用SourceTime的选项 2023-08-22 16:15:34 +08:00
Kimdiego2098
9902443bee 更新文档 2023-08-22 12:21:45 +08:00
Kimdiego2098
8040b2ef16 2.0.9.3 2023-08-22 11:31:36 +08:00
Kimdiego2098
4533680b10 去除mqtt throw an _MqttConnectingFailedException_.报错信息 2023-08-22 11:26:22 +08:00
Kimdiego2098
3b28175135 更新批量写入方法,注意rpc入口参数变化,mqtt等RPC接口参数变化 2023-08-22 11:23:03 +08:00
Kimdiego2098
8e22812265 修正部分代码格式 2023-08-21 19:59:07 +08:00
Kimdiego2098
409bc91b9e 2.0.9.2 2023-08-19 12:08:49 +08:00
Kimdiego2098
61fe543a2a xml 2023-08-19 11:06:05 +08:00
Kimdiego2098
8a949a7e64 修复TcpClient重复释放导致锁异常 2023-08-19 11:05:29 +08:00
Kimdiego2098
b0dc9fb97a mas1.0.2默认中文 2023-08-18 18:36:30 +08:00
Kimdiego2098
83114d1002 更新masa1.0.2 2023-08-18 13:59:17 +08:00
Kimdiego2098
94a25a903f 2.0.9.1 2023-08-18 13:33:45 +08:00
Kimdiego2098
4f402f9e55 修改锁为EasyLock 2023-08-18 12:07:01 +08:00
Kimdiego2098
27bb2e3dcc 代码文件编码统一utf-8 2023-08-18 09:57:03 +08:00
Kimdiego2098
66cc52f6ec 更换DEMO Include为PackageReference 2023-08-17 15:30:35 +08:00
Kimdiego2098
ed1367b116 底层驱动添加netstandard输出 2023-08-17 15:24:07 +08:00
Kimdiego2098
5c055352e4 2.0.8 2023-08-17 10:58:48 +08:00
Kimdiego2098
8dcff5ada1 调整readme,方便copy账密 2023-08-17 10:28:47 +08:00
Kimdiego2098
4b8b23d7d5 优化变量地址输入分割方法;s7读写字符串添加默认编码 2023-08-17 09:50:10 +08:00
Kimdiego2098
e576f6aed3 优化s7读写字符串,更改特殊方法为读写共用 2023-08-16 17:20:20 +08:00
Kimdiego2098
97ab04da91 修复写入返回结果时的解析,0XFF为成功 2023-08-16 15:56:25 +08:00
Kimdiego2098
c6361bb36e 修复s7字符串打包读取 2023-08-16 15:47:37 +08:00
Kimdiego2098
b0b3dc225d 修复s7字符串读取 2023-08-16 15:35:15 +08:00
Kimdiego2098
9cbaba192a 主动释放锁 2023-08-16 14:56:47 +08:00
Kimdiego2098
f511598e13 OPCUA死区不再固定传入 2023-08-16 14:21:19 +08:00
Kimdiego2098
5ffff3b7aa fix: 优化JsonUtils中的获取type语句顺序 2023-08-16 08:59:18 +08:00
Kimdiego2098
24c4fa1c4f OPC系列增加导出excel/导入系统双选项 2023-08-15 17:38:40 +08:00
Kimdiego2098
7f312c1273 OPCUA采集设备写入字符串,不再需要传入双引号 2023-08-15 14:15:39 +08:00
Kimdiego2098
ef5c226c81 历史数据/报警 线程初始化时不再阻塞 2023-08-15 12:12:00 +08:00
Kimdiego2098
3f029cf799 更改ItemGroup Condition条件 2023-08-14 17:36:59 +08:00
Kimdiego2098
5bf64a8bec 传播token;
更新admin解决方案
2023-08-14 16:43:30 +08:00
Kimdiego2098
89f9c537f8 优化适配器解析代码 2023-08-14 14:21:00 +08:00
Kimdiego2098
e8d7f57818 2.0.6 2023-08-13 16:57:12 +08:00
Kimdiego2098
9b42fa78e7 OPCUACClient订阅初始化添加trycatch 2023-08-13 16:29:59 +08:00
Kimdiego2098
96d98e8f39 Merge branch 'master' of https://gitee.com/dotnetchina/ThingsGateway 2023-08-13 15:53:33 +08:00
Kimdiego2098
1f3a281e78 更新opcuaclient,初始读取server类型改为动态读取 2023-08-13 15:50:47 +08:00
Diego2098
dab4b66ee0 更新nuget包 2023-08-12 12:09:50 +08:00
Kimdiego2098
64dd192ddb 修复批量令牌强退失效 2023-08-11 15:15:50 +08:00
Kimdiego2098
b0a5c383d0 中间变量导入时添加标识 2023-08-11 14:15:22 +08:00
Kimdiego2098
4836cc99eb 2.0.5 2023-08-10 18:23:40 +08:00
Kimdiego2098
ba33873354 去除不需要的模板 2023-08-10 16:28:52 +08:00
Kimdiego2098
12c838cab0 修改详情模板 2023-08-10 11:23:18 +08:00
Kimdiego2098
a83a1c83a7 添加自定义详情模板 2023-08-10 10:35:19 +08:00
Kimdiego2098
2234f47170 底层修改:如果连接端口断开,停止等待返回 2023-08-10 10:35:01 +08:00
Kimdiego2098
4bae1b17fc 上传DTO添加 单位 参数 2023-08-10 09:09:09 +08:00
Kimdiego2098
6a7a0e0fa6 调整调试页面 2023-08-09 23:45:53 +08:00
Kimdiego2098
bff987c55f 添加单文件发布配置 2023-08-09 15:12:55 +08:00
Kimdiego2098
e467006913 去除页面多余引号 2023-08-09 13:45:27 +08:00
Kimdiego2098
1d646d4a6d 更新2.0.4 2023-08-09 13:00:10 +08:00
Kimdiego2098
70bd4936a1 更新opcua写入 2023-08-09 12:43:05 +08:00
Kimdiego2098
5ae7add6d2 更新opcua调试页面 2023-08-09 12:01:23 +08:00
Kimdiego2098
02b206ce7c 更新opcua 2023-08-09 11:47:04 +08:00
Kimdiego2098
2ea626a567 修复中间变量导入错误 2023-08-09 09:00:49 +08:00
Kimdiego2098
653909ec11 修正错误注释 2023-08-08 18:09:23 +08:00
Kimdiego2098
1d7c148eaf opcua添加初始化连接错误重试 2023-08-08 18:04:24 +08:00
Kimdiego2098
94a7e130ca 更新readme 2023-08-08 16:14:06 +08:00
Kimdiego2098
609abacdf0 优化大量设备线程重启的耗时 2023-08-08 14:02:00 +08:00
Kimdiego2098
033ff2e49a 2.0.3 2023-08-08 12:59:14 +08:00
Kimdiego2098
00a9bf0641 底层部分方法更改 2023-08-08 12:31:42 +08:00
Kimdiego2098
100f322456 报警/历史值查询时区转换 2023-08-08 09:05:15 +08:00
Kimdiego2098
2251e08d30 时间最小最大值时不再转换时区 2023-08-08 08:39:20 +08:00
Kimdiego2098
14e9beef53 Merge branch 'master' of https://gitee.com/dotnetchina/ThingsGateway 2023-08-08 08:28:37 +08:00
Kimdiego2098
c7cce23d54 默认不启用单用户登录 2023-08-08 08:28:27 +08:00
Diego2098
7becf32352 更新文档 2023-08-07 22:31:51 +08:00
Diego2098
741eda9f4e 去除DateTimeOffset类型 2023-08-07 22:30:38 +08:00
Kimdiego2098
473f51481c 更新文档 2023-08-07 17:38:53 +08:00
Kimdiego2098
684f9bd11b 更新readme 2023-08-07 17:34:32 +08:00
Kimdiego2098
b4b7f0c360 更新文件 2023-08-07 17:24:28 +08:00
Kimdiego2098
cf42d02628 更新文件 2023-08-07 17:16:53 +08:00
Kimdiego2098
cc9a9eab7b 更新文件 2023-08-07 16:56:45 +08:00
Kimdiego2098
784d6abc9b 更新文件 2023-08-07 16:33:36 +08:00
Kimdiego2098
0eafc07184 更新文件 2023-08-07 16:30:23 +08:00
Kimdiego2098
7e9499bd2e 更新文件 2023-08-07 15:46:30 +08:00
Kimdiego2098
d01a52aa95 更新文件 2023-08-07 15:36:49 +08:00
Kimdiego2098
6bcd492980 去除多余解决方案配置 2023-08-07 15:31:22 +08:00
Kimdiego2098
96b15da04b 添加发布脚本 2023-08-07 15:23:53 +08:00
Kimdiego2098
e0f1801693 更新readme 2023-08-07 15:18:42 +08:00
Kimdiego2098
d195ad85c5 更新readme 2023-08-07 15:13:21 +08:00
Kimdiego2098
773f7b6c1b 更新文档 2023-08-07 15:10:42 +08:00
Kimdiego2098
40f29fe399 2.0.0 2023-08-07 15:09:53 +08:00
Kimdiego2098
b19eb117c1 调试更新Blazor代码时不再跳转登录界面 2023-07-25 22:00:27 +08:00
Kimdiego2098
f930ba5eff 取消不必要的错误日志 2023-07-25 20:50:33 +08:00
Kimdiego2098
fbbda6c230 变量值更新错误提示; 2023-07-25 20:48:17 +08:00
Kimdiego2098
47db4968e5 优化大批量excel变量表导入效率 2023-07-25 18:26:48 +08:00
Kimdiego2098
1aff2e518c 删除不必要延时 2023-07-25 16:52:56 +08:00
Kimdiego2098
24134ca49e 发布1.7.6 2023-07-25 14:22:11 +08:00
Kimdiego2098
aadbe05a5e 优化导入excel效率 2023-07-25 14:21:17 +08:00
Kimdiego2098
18eddf4700 添加上传插件获取采集设备属性值的快捷方法 2023-07-23 13:44:37 +08:00
Kimdiego2098
0869ba7e70 Merge branch 'master' of https://gitee.com/dotnetchina/ThingsGateway 2023-07-23 09:59:11 +08:00
Kimdiego2098
cba5db1c53 线程完成时不再需要全局数据移除,有可能会导致偶发全局数据丢失 2023-07-23 09:58:43 +08:00
Kimdiego2098
0aa5430e23 线程完成时不要需要全局数据移除,有可能会导致偶发全局数据丢失 2023-07-23 09:57:03 +08:00
Kimdiego2098
88a91828cb 更新icon包版本 2023-07-23 00:03:46 +08:00
Kimdiego2098
27af89f5fe 更新icon包版本 2023-07-22 23:59:03 +08:00
Kimdiego2098
6f6d483bfe 修改插件日志为自定义日志 2023-07-22 23:34:09 +08:00
Kimdiego2098
915072c191 更新文档 2023-07-22 20:48:29 +08:00
Kimdiego2098
76077b92ae 发布1.7.4 2023-07-22 20:47:26 +08:00
Kimdiego2098
f0d1a527a5 修正错误名称 2023-07-22 20:32:34 +08:00
Kimdiego2098
fdb2a96d1c 添加上传插件最后错误原因 2023-07-22 20:10:45 +08:00
Kimdiego2098
849e3ac187 修复上传设备暂停按钮失效 2023-07-22 19:56:56 +08:00
Kimdiego2098
5c4cf21c59 OPCUAServer 数组维度不再写any;rpc写入添加延时 2023-07-22 17:02:44 +08:00
Kimdiego2098
40ee3e5d9b 更改假死检测间隔5分钟 2023-07-22 11:05:56 +08:00
Kimdiego2098
77a7cc034e 添加OPCUAServer线程间隔配置项,优化最后一次错误提示 2023-07-22 11:03:56 +08:00
Kimdiego2098
82b7881765 支持OPCUAServer数组类型,添加缓存文件存在判断 2023-07-21 21:28:39 +08:00
Kimdiego2098
3515775267 去除OPCUA写入数组维度校验 2023-07-20 17:37:49 +08:00
Kimdiego2098
10e12aa1c1 更新文档 2023-07-20 12:48:13 +08:00
Kimdiego2098
7fb4e62aa3 kafka尝试自动加载c库 2023-07-20 12:40:59 +08:00
Kimdiego2098
2605eaa614 修复中间变量Rpc写入 2023-07-20 10:55:37 +08:00
Kimdiego2098
8e97b4820d ModbusServer添加自定义循环间隔,修复中间变量写入 2023-07-20 10:55:17 +08:00
Kimdiego2098
89af4cdb68 更新文档 2023-07-19 18:02:31 +08:00
Kimdiego2098
6099c1a25a 更新文档 2023-07-19 15:43:28 +08:00
Kimdiego2098
fd23758aea 更改左侧菜单为手风琴效果 2023-07-19 15:00:40 +08:00
Kimdiego2098
8ad0b89db1 更新文档 2023-07-19 14:34:27 +08:00
Kimdiego2098
e7dffa3ff4 修改OPCUAClient心跳频率默认3s 2023-07-18 14:49:27 +08:00
Kimdiego2098
2772b5d2e2 更改OPCUAClient心跳频率为30000 2023-07-18 14:15:02 +08:00
Kimdiego2098
df6d9b5f70 更新1.7.3版本 2023-07-18 12:16:33 +08:00
Kimdiego2098
c9622d6d57 更新masa 稳定版以及其他包 2023-07-18 12:11:37 +08:00
Kimdiego2098
1f0b7c3c7e 修复添加订阅时,值死区过滤逻辑 2023-07-18 11:13:21 +08:00
Kimdiego2098
c12245037e 修复异步锁上下文切换导致OPCUA 心跳事件出错 2023-07-18 09:58:01 +08:00
Kimdiego2098
fe6d2a50a5 修复OPCUAClient调试界面重复输出订阅值 2023-07-18 08:51:27 +08:00
Kimdiego2098
7be84950f8 修改OPCUAClient的心跳频率配置项 2023-07-18 08:48:18 +08:00
Kimdiego2098
ba212da222 添加重启锁 2023-07-17 21:40:47 +08:00
2248356998 qq.com
122b833256 Merge branch 'master' of https://gitee.com/diego2098/thingsgateway-docs 2023-07-17 20:59:53 +08:00
2248356998 qq.com
7c73479041 更新opcua心跳状态日志 2023-07-17 20:59:32 +08:00
Diego2098
151f2e99ae 更新文档 2023-07-16 20:46:16 +08:00
Diego2098
da367e813f 更新授权名单 2023-07-16 20:31:56 +08:00
2248356998 qq.com
9143dfe336 更新文档 2023-07-16 18:27:22 +08:00
2248356998 qq.com
29914d6a72 更新文档 2023-07-16 18:12:55 +08:00
2248356998 qq.com
0dbef72a97 更新文档 2023-07-16 18:07:31 +08:00
2248356998 qq.com
3bb118bfe1 更新文档 2023-07-16 17:49:33 +08:00
2248356998 qq.com
85ce3be077 更新文档 2023-07-16 17:48:22 +08:00
2248356998 qq.com
064c2bf0a8 更新文档 2023-07-16 17:41:52 +08:00
2248356998 qq.com
c96d06ccc5 更新文档 2023-07-16 17:35:04 +08:00
2248356998 qq.com
a658dbb753 更新文档地址 2023-07-16 17:32:49 +08:00
2248356998 qq.com
bf5d5b629e 迁移文档 2023-07-16 17:28:26 +08:00
2248356998 qq.com
241d576519 冗余设备删除后会导致后台出错 2023-07-16 11:36:45 +08:00
2248356998 qq.com
7807e9bdd0 更新readme 2023-07-16 10:28:43 +08:00
2248356998 qq.com
fcbf15fed6 删除无用属性 2023-07-16 09:40:00 +08:00
2248356998 qq.com
cd90a11209 修复1.7.0版本修改导致的mqttrpc映射错误 2023-07-15 22:56:28 +08:00
2248356998 qq.com
ff65707ea2 增加 上传插件的列表分割大小,因为某些情况下传输字节太大会导致失败 2023-07-15 22:42:34 +08:00
2248356998 qq.com
b16026070c 导入提示的当前行显示未初始 2023-07-15 22:35:12 +08:00
2248356998 qq.com
1b5fbf86d8 格式化整理 2023-07-15 22:32:54 +08:00
2248356998 qq.com
5eb1be8101 插件报文截取前200字符,防止页面渲染过多 2023-07-15 20:04:14 +08:00
2248356998 qq.com
6a863cd26a kafka插件增加超时选项 2023-07-15 17:27:35 +08:00
2248356998 qq.com
87ebb7b6c7 历史服务修复变量在线状态显示错误 2023-07-15 15:46:39 +08:00
2248356998 qq.com
1233a74307 发布1.7.2版本 2023-07-15 11:10:29 +08:00
2248356998 qq.com
221890acfb 优化OPCUA错误提示 2023-07-14 17:33:11 +08:00
2248356998 qq.com
687c7e766e OPCUA在取消订阅时应该走读取方法 2023-07-14 17:22:19 +08:00
2248356998 qq.com
ba22c407d3 优化导入excel提示 2023-07-14 16:23:42 +08:00
2248356998 qq.com
a8b9ed56b5 优化导入excel提示 2023-07-14 16:23:35 +08:00
2248356998 qq.com
3004869e19 kafka 插件释放时取消事件注册 2023-07-14 14:35:40 +08:00
2248356998 qq.com
1145853fe1 更改属性说明 2023-07-14 12:23:46 +08:00
2248356998 qq.com
f1617a25b1 添加kafka插件null传播 2023-07-14 10:41:04 +08:00
2248356998 qq.com
932be558d9 opcda JValue转object 2023-07-14 10:14:05 +08:00
2248356998 qq.com
ee3a37d3b9 opcua读取值JValue转为object 2023-07-14 10:04:05 +08:00
2248356998 qq.com
5ac412a582 RabbitMQ,IotSharp添加离线缓存 2023-07-13 19:54:12 +08:00
2248356998 qq.com
1625290bc3 Variable Value数据类型改为object 2023-07-13 18:18:53 +08:00
2248356998 qq.com
1ec169ad49 中间变量页种子ID重复 2023-07-13 17:47:22 +08:00
2248356998 qq.com
53be552e44 复制设备没有及时刷新缓存 2023-07-13 17:38:45 +08:00
2248356998 qq.com
d3a75d46b9 发布1.7.1 2023-07-13 11:19:17 +08:00
2248356998 qq.com
256512c961 代码格式化 2023-07-13 11:18:36 +08:00
2248356998 qq.com
5c12ac5bcc OPCDA增加数组支持,增加写入动态类型支持 2023-07-13 11:16:31 +08:00
2248356998 qq.com
02a2bcb113 优化OPCUA数组类型转换 2023-07-13 09:02:36 +08:00
2248356998 qq.com
1f0a01c725 修复blazor界面null错误 2023-07-12 22:12:11 +08:00
2248356998 qq.com
6ea164ede1 更新ReadMe 2023-07-12 21:33:05 +08:00
2248356998 qq.com
65bae85ecc 删除重复文件 2023-07-12 21:30:41 +08:00
2248356998 qq.com
2fd7dcf4d0 更新nuget包 2023-07-12 21:21:50 +08:00
2248356998 qq.com
aa3bbbe038 V1.7.0发布
1、增加采集通道冗余
2、优化多个界面
3、导出导入功能优化
4、增加中间变量
5、OPCUAClient支持动态类型
6、离线缓存多处覆盖,包含上传插件/历史报警/时序库
7、增加通用调试界面,增加s7调试
8、其他优化
2023-07-12 21:16:38 +08:00
2248356998 qq.com
6cb09a6f95 修复AppDataTable清空MForm模型导致筛选列清空的问题 2023-07-10 13:18:14 +08:00
2248356998 qq.com
45868f05d3 修复写入s7协议 bit值 偏移错误(以byte数据块为准) 2023-07-08 17:01:44 +08:00
2248356998 qq.com
aac7401e20 修复读取s7协议 bit值 偏移错误(以byte数据块为准) 2023-07-08 11:44:57 +08:00
2248356998 qq.com
c2fc290edd 默认添加kafka插件 种子数据 2023-07-07 17:13:00 +08:00
2248356998 qq.com
330357fc36 修复布尔量解析时反转字节导致结果值不符的错误 2023-07-06 14:05:09 +08:00
2248356998 qq.com
f4a3d6a64e null传播 2023-07-03 14:13:00 +08:00
2248356998 qq.com
2e0963ec81 添加x86架构 2023-07-03 10:48:52 +08:00
2248356998 qq.com
897cb6e62a 补充插件实例内容 2023-07-02 19:50:09 +08:00
2248356998 qq.com
80868bd48e blazor组件初始化并行执行,导致sugar单例DB出现线程偶发错误,暂增加copyNew()解决 2023-06-29 16:42:19 +08:00
2248356998 qq.com
b3df78c56f blazor组件初始化并行执行,导致sugar单例DB出现线程偶发错误,暂增加copyNew()解决 2023-06-29 16:36:03 +08:00
2248356998 qq.com
783a4259e3 sqlsugar偶发线程故障,添加copyNew方法 2023-06-28 18:54:45 +08:00
2248356998 qq.com
fcf19b8dc8 登录跳转uri优化 2023-06-28 15:47:35 +08:00
2248356998 qq.com
1f9f89817d 更新开源说明 2023-06-28 10:48:33 +08:00
2248356998 qq.com
7b94da7d85 update openapiUser datatableUI 2023-06-26 19:51:02 +08:00
2248356998 qq.com
164406f6c2 css脚本结果不采用 System.Text.Json.JsonSerializer 2023-06-26 19:44:17 +08:00
2248356998 qq.com
90ef2adc6b OPCUAClient修复当变量为string类型时的数值过滤失败导致添加订阅失效 2023-06-26 19:43:00 +08:00
2248356998 qq.com
d65f10f88b 停用采集设备时,变量获取运行态出错 2023-06-26 16:43:48 +08:00
2248356998 qq.com
dca0ece9e0 登录后跳转原url 2023-06-26 14:46:24 +08:00
2248356998 qq.com
baabc155c8 cookie授权验证失败时返回登录界面 2023-06-26 14:36:41 +08:00
Diego2098
7eb94412d6 更新nuget类库 2023-06-25 18:59:09 +08:00
2248356998 qq.com
0fc8b24f85 添加报警事件None枚举 2023-06-20 13:10:58 +08:00
2248356998 qq.com
88f6ef5b96 修复cpu核心等于1时报错,修正登录错误提示 2023-06-20 09:09:08 +08:00
Diego2098
7442483419 修复modbusServer 初始化错误 2023-06-17 18:14:13 +08:00
2248356998 qq.com
9c61933c04 sugar添加取消令箭 2023-06-15 17:38:36 +08:00
2248356998 qq.com
2b36a99720 增加变量运行态 CollectVariableRuntime 所在设备属性 2023-06-15 16:50:08 +08:00
2248356998 qq.com
c2cfc42ba4 parallel.foreach无序体验不好,退回为foreach 2023-06-14 11:04:09 +08:00
2248356998 qq.com
4f32704e08 update 1.6.1 version 2023-06-13 22:39:47 +08:00
2248356998 qq.com
fccf43685f update nuget package 2023-06-13 22:39:25 +08:00
2248356998 qq.com
39135d81ad update driver messagesui 2023-06-13 22:26:19 +08:00
2248356998 qq.com
ff4b10681e 并行关闭线程 2023-06-12 14:41:08 +08:00
2248356998 qq.com
10b7908fc2 添加mqtt/kafka上传内容显示 2023-06-12 14:40:53 +08:00
2248356998 qq.com
31790da8c6 优化大量变量excel上传的验证过程 2023-06-12 11:35:27 +08:00
2248356998 qq.com
4621201c47 更新文档站点地址 2023-06-11 18:37:50 +08:00
2248356998 qq.com
692ac31dbf 删除docs 2023-06-11 18:22:15 +08:00
2248356998 qq.com
ed1d163d55 更新1.6.0版本 2023-06-11 17:58:57 +08:00
2248356998 qq.com
e931c9040c 缓存最大默认2000 2023-06-11 17:56:34 +08:00
2248356998 qq.com
f23cb48ea4 添加离线缓存大小限制配置 2023-06-11 17:55:03 +08:00
2248356998 qq.com
c3b2b6b07b 上传插件线程等待时间改为10ms 2023-06-11 17:47:16 +08:00
2248356998 qq.com
f89bf590ba 导入变量优化 2023-06-11 17:46:23 +08:00
2248356998 qq.com
fea17dc00b 添加mqttClient离线缓存 2023-06-11 17:45:46 +08:00
2248356998 qq.com
dbb1069920 添加kafka离线缓存 2023-06-11 17:45:27 +08:00
Diego2098
afc4ccfaa9 !6 部分配置会导致SqlServer自动建库失败
Merge pull request !6 from samisgod/master
2023-06-10 06:55:34 +00:00
samisgod
38d55a1c07 fix db init for SqlServer 2023-06-10 14:51:29 +08:00
2248356998 qq.com
5fca29f103 增加pwa 2023-06-09 17:53:41 +08:00
2248356998 qq.com
78f34b2ca4 修复停用验证码时登录失败显示null报错 2023-06-09 17:09:17 +08:00
2248356998 qq.com
8e8028e809 统一文件编码 2023-06-09 15:04:54 +08:00
2248356998 qq.com
8dc70687f8 update solution folder 2023-06-09 14:30:53 +08:00
2248356998 qq.com
fa22f9ee64 upload deviceStatusPage 2023-06-09 10:32:11 +08:00
2248356998 qq.com
b33c0d3f81 update deviceStatusPage 2023-06-09 09:49:03 +08:00
2248356998 qq.com
339009add4 remove dotNET China declaration 2023-06-09 09:10:30 +08:00
2248356998 qq.com
798c823c4b add dotNET China declaration 2023-06-09 09:02:17 +08:00
Diego2098
14ad86f2a3 重启线程时增加运行状态界面空传播防止报错 2023-06-08 21:35:07 +08:00
2248356998 qq.com
a3a714dc17 add upload plugin code description 2023-06-08 17:47:53 +08:00
2248356998 qq.com
e8d8b0d41d 迁移导入变量功能到驱动调试内 2023-06-08 15:11:58 +08:00
2248356998 qq.com
17daad8f89 plugin unload test,but failed 2023-06-08 10:52:39 +08:00
2248356998 qq.com
e178263b3b 更改默认api文档为Knife4j 2023-06-07 20:34:31 +08:00
2248356998 qq.com
4febbc261e 缓存键增加Type-TypeHandle句柄 2023-06-07 18:42:58 +08:00
2248356998 qq.com
ef3a6942fd 修改OPCUA证书路径,增加默认接收不收信任证书与其选项;
OPCDA整理;
2023-06-07 18:03:57 +08:00
2248356998 qq.com
f8ac2be62b 重启线程WebApi修改 2023-06-07 11:32:18 +08:00
2248356998 qq.com
25447c34e5 添加注释提示 2023-06-07 11:28:11 +08:00
2248356998 qq.com
37cdf8fd48 GC策略更改,大量变量实例手动清空以快速内存释放 2023-06-07 11:19:24 +08:00
2248356998 qq.com
ac8e7dc959 上传1.5.1 2023-06-06 19:37:04 +08:00
2248356998 qq.com
8293382840 Merge branch 'master' of https://gitee.com/diego2098/ThingsGateway 2023-06-05 08:33:50 +08:00
Diego2098
d85a3e7743 S7-TCP连接修复死锁 2023-06-02 22:20:21 +08:00
2248356998 qq.com
f3f5ffb5c8 增加KINGVIEW 配置 2023-05-29 01:32:37 +08:00
2248356998 qq.com
99e6702c62 超管用户名称不可更改 2023-05-26 00:14:05 +08:00
2248356998 qq.com
e143c25078 初步添加OPCUAClient调试界面;更新依赖 2023-05-25 23:41:11 +08:00
2248356998 qq.com
3fb67972be OPCUA安全策略添加全部选项 2023-05-25 00:59:21 +08:00
2248356998 qq.com
61c04d4e09 OPCUA安全策略添加全部选项 2023-05-25 00:58:47 +08:00
2248356998 qq.com
b22f728958 添加OPCDAClient调试页面 2023-05-25 00:11:00 +08:00
2248356998 qq.com
112be7e383 修改程序根目录为文件所在目录 2023-05-24 14:37:45 +08:00
2248356998 qq.com
6a7f83fed5 默认添加服务守护支持 2023-05-24 14:32:21 +08:00
2248356998 qq.com
4b9698a735 ModbusServer添加自定义数据类型;修复发布时静态文件路径错误 2023-05-24 12:31:20 +08:00
2248356998 qq.com
ec3d203a6d Add copyright notices 2023-05-23 23:54:28 +08:00
2248356998 qq.com
e77b8f5475 update TGTcpClient 2023-05-23 22:42:48 +08:00
2248356998 qq.com
da8bbd321f 添加Modbus系列插件调试页面;添加Modbus组包解析缓存超时时间; 2023-05-23 20:50:44 +08:00
2248356998 qq.com
98fd011def update HardwareInfoService 2023-05-23 12:04:04 +08:00
2248356998 qq.com
9dccbc5316 nuget更新 2023-05-23 11:59:28 +08:00
2248356998 qq.com
03fa26daf9 硬件界面添加限值防报错 2023-05-23 11:46:19 +08:00
2248356998 qq.com
fbc41e3895 初步添加插件驱动调试页面 2023-05-22 18:50:30 +08:00
2248356998 qq.com
f1a6d0c02c 初步添加插件驱动调试页面 2023-05-22 18:41:09 +08:00
2248356998 qq.com
67f6bb7155 Razor文件格式化清理 2023-05-22 18:40:50 +08:00
2248356998 qq.com
86282f596c 删除调试代码... 2023-05-22 17:09:21 +08:00
2248356998 qq.com
e0f24c795c 更改变量读取间隔限制最低为10ms 2023-05-22 15:17:22 +08:00
2248356998 qq.com
7d44ed860c 明确System.Management版本 2023-05-22 14:51:02 +08:00
2248356998 qq.com
091094a24c 硬件信息获取添加异常拦截 2023-05-22 14:33:30 +08:00
2248356998 qq.com
ba18ee518c update adapter 2023-05-22 12:42:31 +08:00
2248356998 qq.com
513a031691 代码清理 2023-05-21 22:39:33 +08:00
2248356998 qq.com
cc79de1106 优化opcua质量戳提示;添加数据转换基础方法;TCP等待返回时默认断开连接立即返回 2023-05-21 10:51:56 +08:00
2248356998 qq.com
bd90e8efb2 modbus 组包优化 2023-05-20 21:41:16 +08:00
2248356998 qq.com
4bd88ff11d 类型更换 2023-05-20 17:13:14 +08:00
2248356998 qq.com
d27ee61292 可指定OPCUA节点数据类型 2023-05-20 15:40:17 +08:00
2248356998 qq.com
0c20b3345f 更新文档 2023-05-20 13:52:23 +08:00
2248356998 qq.com
0f3c8c7193 添加自定义OPCUAServer数据类型 2023-05-20 12:34:06 +08:00
2248356998 qq.com
16761ec605 导入规则优化,主动抛出名称重复错误 2023-05-19 22:55:53 +08:00
2248356998 qq.com
1069440cda 更改插件时开启刷新设备属性 2023-05-19 22:26:37 +08:00
2248356998 qq.com
60f5702f17 判断OPCUAServer状态时增加tryCatch 2023-05-19 21:27:20 +08:00
2248356998 qq.com
ee70133e47 判断OPCUAServer状态时增加tryCatch 2023-05-19 21:24:56 +08:00
2248356998 qq.com
06a9fdeb2e 优化tcp拆包组包 2023-05-19 20:28:51 +08:00
2248356998 qq.com
f14bd62004 快捷方式null错误 2023-05-19 16:33:57 +08:00
2248356998 qq.com
67cbaf22b7 更新依赖包 2023-05-19 16:23:21 +08:00
2248356998 qq.com
60b166dba2 UDP通讯优化 2023-05-19 16:21:42 +08:00
2248356998 qq.com
66e1647ede 添加链路锁 2023-05-19 14:27:47 +08:00
2248356998 qq.com
a1a35c00a5 分包数量显示错误 2023-05-19 10:13:48 +08:00
2248356998 qq.com
b02e3361c4 Modbus读写锁更新 2023-05-19 10:05:54 +08:00
2248356998 qq.com
2b9ceaa25a Modbus读写锁更新 2023-05-19 09:53:56 +08:00
2248356998 qq.com
109b5a9755 删除sqlsugar旧版本代码,会导致sqlite不兼容 2023-05-19 09:15:32 +08:00
2248356998 qq.com
cc4df86c10 适配mysql;修复写入表达式转换;优化web页面写入体验 2023-05-18 23:38:40 +08:00
2248356998 qq.com
e93532c395 数据库初始化修复 2023-05-18 22:24:27 +08:00
2248356998 qq.com
6ff688326a 数据库连接自动释放 2023-05-18 21:06:06 +08:00
2248356998 qq.com
eda5d2872f 编辑页面添加 变量 允许远程写入选项 2023-05-18 21:03:44 +08:00
2248356998 qq.com
dc88394f5f 修复枚举类型在mysql中类型出错的问题 2023-05-18 20:58:14 +08:00
Diego2098
ec85c9a2c6 修改文件大小限制 2023-05-17 22:29:59 +08:00
Diego2098
1341638556 更新设备读写锁 2023-05-17 22:05:31 +08:00
2248356998 qq.com
4875dfee11 touchSocket修复UDP在windows下重置连接的问题;更新nuget 2023-05-17 16:54:33 +08:00
2248356998 qq.com
d834ba8bd4 代码格式清理 2023-05-17 16:49:25 +08:00
2248356998 qq.com
6191067771 修复CancellationTokenSource未释放导致Linux下偶发内存问题 2023-05-17 16:44:52 +08:00
2248356998 qq.com
6c3a571163 OPCUAServer节点数据类型增加在读取表达式转换后的判断 2023-05-16 09:05:58 +08:00
Diego2098
5efb07e10e ModbusClient添加帧前时间 2023-05-15 22:45:55 +08:00
2248356998 qq.com
b25ec18ce6 修复using作用域导致获取的服务可能被释放的问题 2023-05-15 19:21:35 +08:00
2248356998 qq.com
f3cd281241 nuget更新 2023-05-15 18:55:27 +08:00
2248356998 qq.com
58b93cbf4c mqttClient同步间隔上传的实体类 2023-05-12 18:22:06 +08:00
2248356998 qq.com
57fc0349ff update mqttClient 2023-05-12 16:40:55 +08:00
2248356998 qq.com
d0a2cea772 MqttClient增加间隔上传选项;更改线程循环间隔说明定义 2023-05-12 16:31:57 +08:00
Diego2098
58d5801fb5 update readme 2023-05-10 21:18:43 +08:00
Diego2098
e5f2e59798 增加api控制采集启停等方法 2023-05-10 21:17:34 +08:00
Diego2098
1166921057 提交kafka插件 2023-05-10 21:17:09 +08:00
2248356998 qq.com
aeb49576f2 update readme 2023-05-10 17:49:52 +08:00
2248356998 qq.com
7ef1fecef8 共享链路写入变量修复;Nuget更新 2023-05-10 16:33:59 +08:00
2248356998 qq.com
fd630373b5 更新文档 2023-05-09 17:51:55 +08:00
2248356998 qq.com
d365d8f170 更新文档 2023-05-09 17:47:22 +08:00
2248356998 qq.com
dfa5e1172f OPCUAClient/Server 修改证书有效期为100年 2023-05-09 14:37:18 +08:00
2248356998 qq.com
daf195898a 添加控制台logo 2023-05-08 18:10:07 +08:00
2248356998 qq.com
c61c0a39cf Code Cleanup 2023-05-08 18:03:32 +08:00
2248356998 qq.com
6137e6baa5 add GetSciptValue 2023-05-08 17:45:13 +08:00
2248356998 qq.com
fd16fd9ffe modbus rtu 粘包优化 2023-05-08 15:59:35 +08:00
2248356998 qq.com
2b8bd5f2cc modbus rtu报文粘包优化;共享链路切换延时;上传插件添加报文界面 2023-05-08 15:57:33 +08:00
2248356998 qq.com
d312c2e9e7 plc read with CancellationToken 2023-05-08 13:33:01 +08:00
2248356998 qq.com
578b0d2268 粘包优化 2023-05-08 10:55:16 +08:00
2248356998 qq.com
ffb41b0109 Rpc条件bug修复 2023-05-07 18:06:27 +08:00
2248356998 qq.com
c63fb5d796 OPCUAServer修复匿名登录 2023-05-07 18:06:09 +08:00
2248356998 qq.com
8caee732e8 更新文档 2023-05-07 16:56:41 +08:00
2248356998 qq.com
df5381adce 属性顺序调整 2023-05-05 09:46:11 +08:00
2248356998 qq.com
f34836b7fa 更新文档 2023-05-04 22:58:36 +08:00
2248356998 qq.com
44b459883a update CollectDeviceThread 2023-05-04 10:58:45 +08:00
2248356998 qq.com
14a8592ae3 更新文档 2023-05-02 22:11:55 +08:00
2248356998 qq.com
787d0dce4a 更新1.5.0 2023-05-02 22:06:09 +08:00
2248356998 qq.com
8be05ff93d 1、共享链路支持;
2、设备报文查看;
3、采集线程重构;
2023-05-02 21:58:11 +08:00
2248356998 qq.com
3014af565c mqtt重连锁优化 2023-04-27 11:19:32 +08:00
2248356998 qq.com
315252bdc4 添加常用转换 2023-04-24 17:54:00 +08:00
2248356998 qq.com
c36c3b4607 masa更新 2023-04-24 11:16:28 +08:00
2248356998 qq.com
7d5e939bab 更新包 2023-04-24 09:26:47 +08:00
Diego2098
f75c9d1eed 报警后台服务去除多余接口
Signed-off-by: Diego2098 <2248356998@qq.com>
2023-04-19 00:48:13 +00:00
2248356998 qq.com
38cb9855ea 添加docker文件 2023-04-17 17:39:12 +08:00
2248356998 qq.com
ed8b56d624 单文件发布 2023-04-17 15:13:40 +08:00
2248356998 qq.com
bca48b13ae update SqlSugarConfig 2023-04-17 11:58:41 +08:00
2248356998 qq.com
29426edb05 删除其他信息 2023-04-17 11:05:38 +08:00
2248356998 qq.com
33a2dc687f 验证码更新修复 2023-04-17 09:05:44 +08:00
2248356998 qq.com
e2398a21b2 1、字段null约束修改
2、ModbusServer绑定端口优化
2023-04-16 15:02:09 +08:00
2248356998 qq.com
f19530276e 更新readme 2023-04-16 13:34:29 +08:00
2248356998 qq.com
2b9b92a78c 更新1.4.0
注意Excel导入已不适用以前版本
1、去除动态更新插件
2、改用MiniExcel,支持动态导入,excel配置更简单
3、优化多处界面与后台逻辑,部分方法规范更名
4、修复外网地址获取错误等
2023-04-15 20:48:56 +08:00
2248356998 qq.com
99c55dac10 修复报警文本逻辑 2023-04-11 13:40:13 +08:00
2248356998 qq.com
25667e46f9 1,修复控制台报错(echarts.js问题,已删除)2,多处Dispose修正 2023-04-07 08:48:34 +08:00
2248356998 qq.com
2f4e8f2399 过滤 2023-04-06 14:46:24 +08:00
2248356998 qq.com
9169183769 历史数据库选择为sqlite时查询转换日期错误 2023-04-05 18:04:33 +08:00
2248356998 qq.com
c420f50831 启用开发环境web详细日志,调整App.Razor位置,添加网页ico 2023-04-05 17:14:26 +08:00
2248356998 qq.com
c6c9279ef4 update console/file datetime format 2023-04-05 15:49:00 +08:00
2248356998 qq.com
c125e2991d 更新readme 2023-04-04 18:41:56 +08:00
2248356998 qq.com
5348b19d6a 😀版本1.3.1 2023-04-04 17:55:52 +08:00
2248356998 qq.com
afd426daac 网关软件时间统一UTC 2023-04-04 17:55:15 +08:00
2248356998 qq.com
202c511cfa update iotSharpClient 2023-04-04 11:07:05 +08:00
2248356998 qq.com
651eb295a4 😀 更新1.3.0 2023-04-04 10:15:34 +08:00
2248356998 qq.com
d798aaed33 update iotSharpClient 2023-04-04 09:25:16 +08:00
2248356998 qq.com
63ef347cc9 update iotSharpClient 2023-04-04 09:23:22 +08:00
2248356998 qq.com
3139b2d5a0 IosSharpClient Rpc优化 2023-04-04 09:22:22 +08:00
2248356998 qq.com
2c80bbb244 IotSharp Rpc方法完善 2023-04-04 09:19:48 +08:00
2248356998 qq.com
af06755ada 添加写入多个变量的api方法 2023-04-04 09:18:58 +08:00
2248356998 qq.com
97d6dbaa6c update IotSharpClient 2023-04-03 20:16:38 +08:00
2248356998 qq.com
74cf82a1c7 更新种子 2023-04-03 19:34:12 +08:00
2248356998 qq.com
74634889ab 添加IotSharp插件 2023-04-03 19:30:52 +08:00
2248356998 qq.com
dbe30fcd77 分页显示令牌 2023-04-03 15:29:35 +08:00
2248356998 qq.com
24a7f3a320 后台启动时Furion RootServices NULL值 2023-04-03 15:19:59 +08:00
2248356998 qq.com
d3650f1145 修复不存在采集设备时,初始化报警/历史服务bug 2023-04-03 14:12:56 +08:00
2248356998 qq.com
4801db9050 弹窗消息在SignalR订阅方法中需InvokeAsync 2023-04-03 13:35:14 +08:00
2248356998 qq.com
6445281658 修复规范化结果包装2次导致登录返回结果不正确的问题 2023-04-03 12:45:19 +08:00
2248356998 qq.com
87719f5938 更新演示地址 2023-04-03 10:47:49 +08:00
2248356998 qq.com
5ba1ec433b readme 2023-04-02 18:12:18 +08:00
2248356998 qq.com
7c5b382458 readme 2023-04-02 18:08:56 +08:00
2248356998 qq.com
8960426128 更新readme 2023-04-02 18:05:54 +08:00
2248356998 qq.com
e1d47d5a92 更新readme 2023-04-02 18:05:28 +08:00
2248356998 qq.com
9407c272aa 更新包 2023-04-02 17:10:32 +08:00
2248356998 qq.com
bccbd7b400 添加注释 2023-04-02 16:59:46 +08:00
2248356998 qq.com
a24dc010ec 调整依赖,添加关系图 2023-04-01 17:28:35 +08:00
2248356998 qq.com
c5e5d50fb8 调整依赖,更新版本1.2.1 2023-04-01 15:45:02 +08:00
2248356998 qq.com
be1c520320 整理 2023-04-01 13:57:57 +08:00
2248356998 qq.com
3d18d0f893 😀 OPCUAServer支持历史查询数据 2023-03-31 18:32:55 +08:00
2248356998 qq.com
c3351a38a6 添加ThingsGateway.Foundation注释 2023-03-31 16:25:33 +08:00
2248356998 qq.com
0b86340a8d 硬件信息获取添加延时 2023-03-30 20:51:08 +08:00
2248356998 qq.com
829371b032 脚本显示优化 2023-03-30 19:51:38 +08:00
2248356998 qq.com
b342207bc7 更新文档 2023-03-30 19:39:35 +08:00
2248356998 qq.com
58f4fdced3 mqtt/mq上传 添加上传实体自定义脚本 2023-03-30 19:07:18 +08:00
2248356998 qq.com
253844cbcf 表达式整理 2023-03-30 16:23:03 +08:00
2248356998 qq.com
e2e2b9ffb4 更新版本 2023-03-30 14:12:39 +08:00
2248356998 qq.com
2568042f5f 更新文档 2023-03-30 14:11:16 +08:00
2248356998 qq.com
722edf4b9a readme 2023-03-30 14:06:03 +08:00
2248356998 qq.com
e406d364e4 更新readme,nuget 2023-03-30 14:05:00 +08:00
2248356998 qq.com
31c37f41b2 删除多余代码 2023-03-30 13:53:57 +08:00
2248356998 qq.com
6cd879bbc5 opcua 写入添加用户名日志 2023-03-30 13:32:32 +08:00
2248356998 qq.com
b7974050fe 去除ua数据类型验证 2023-03-30 13:20:26 +08:00
2248356998 qq.com
e9c9d0816e 更新readme 2023-03-30 13:13:44 +08:00
2248356998 qq.com
a437692e1a 类命名错误更改 2023-03-30 13:11:46 +08:00
2248356998 qq.com
2a14d2f3c8 发布文件添加 2023-03-30 13:11:43 +08:00
2248356998 qq.com
559e2d1889 添加OPCUAServer插件,修复个别bug 2023-03-30 13:10:31 +08:00
Diego2098
a1aa919f80 1、OPCUAClient修复客户端证书未自动生成
2、修复异步方法错误使用
2023-03-30 00:15:13 +08:00
2248356998 qq.com
cbccb27a5a 添加部分代码注释 2023-03-29 16:22:01 +08:00
2248356998 qq.com
bbad36d576 驱动支持主机名称 2023-03-29 11:07:21 +08:00
2248356998 qq.com
df6c9d55b5 修复初始化失败导致的一系列问题 2023-03-29 10:53:42 +08:00
2248356998 qq.com
36a1d9c364 上传插件间隔时间修正 2023-03-28 16:40:00 +08:00
2248356998 qq.com
1f3681d5ac 历史变量enable失效 2023-03-28 16:38:29 +08:00
2248356998 qq.com
0159f8e53f 历史报表时间格式改为yyyy-MM-dd HH:mm:ss ffffff 2023-03-28 16:31:53 +08:00
2248356998 qq.com
0432be64fc 采集设备状态判断错误 2023-03-28 16:21:30 +08:00
2248356998 qq.com
481e062961 采集设备状态判断错误 2023-03-28 15:55:01 +08:00
2248356998 qq.com
72b8abdeb6 修复历史保存值 频繁时出现值相同的问题 2023-03-28 15:14:30 +08:00
2248356998 qq.com
7ec3ee41d1 opc 活动时间修正 2023-03-28 14:15:14 +08:00
2248356998 qq.com
b765fa4769 添加写入采集时间的接口,而不是固定DateTime.Now 2023-03-28 14:03:11 +08:00
2248356998 qq.com
06685b162e 更新tcpclient 2023-03-28 13:52:33 +08:00
2248356998 qq.com
7bcad7c424 修复linux 分隔符错误问题 2023-03-28 11:48:16 +08:00
2248356998 qq.com
6e054b3cc6 更改插件文件不存在时的日志信息 2023-03-28 10:21:39 +08:00
2248356998 qq.com
e643f6b0f8 更改项目引用结构 2023-03-28 10:21:23 +08:00
2248356998 qq.com
e44c0f85c2 swagger文档 2023-03-27 19:01:04 +08:00
Iot边缘设备
ea66e968eb !5 添加部署文档
* 添加部署文档
2023-03-27 10:22:30 +00:00
2248356998 qq.com
f7e73d804e 属性/字段缓存获取只包含public 2023-03-27 14:49:09 +08:00
2248356998 qq.com
2ff4df56a1 更新masa-1.0.0-preview.10 2023-03-27 14:27:15 +08:00
2248356998 qq.com
346c45fe0c 优化变量上传属性页 2023-03-27 12:00:10 +08:00
2248356998 qq.com
f98b42a36e 采集设备活动时间应正常刷新 2023-03-27 10:51:54 +08:00
2248356998 qq.com
f77a0a266c 添加设备复制功能 2023-03-27 10:42:02 +08:00
2248356998 qq.com
0be672788f update code collation 2023-03-27 08:49:10 +08:00
2248356998 qq.com
e2e3d11d42 update code collation 2023-03-26 19:48:08 +08:00
2248356998 qq.com
bb127bb567 更新nuget包 2023-03-26 18:52:16 +08:00
2248356998 qq.com
8eb4f89db8 发行1.10版本 2023-03-26 18:10:12 +08:00
2248356998 qq.com
4a87ea3e70 实时数据界面优化 2023-03-26 17:39:05 +08:00
2248356998 qq.com
61115fce99 1、采用异步AutoResetEvent,修复多个设备下采集太慢的问题
2、弃用IntelligentConcurrentQueue(touchsocket集成类)
2023-03-26 17:32:29 +08:00
2248356998 qq.com
4f31120394 1、优化设备状态页,减少signalr刷新所需包大小
2、日志前置等级添加
2023-03-24 18:32:10 +08:00
2248356998 qq.com
b085cd65ce 修复导出表格时,null值报错 2023-03-23 22:09:53 +08:00
2248356998 qq.com
f76ec0721a 导入错误时,忽略大于10行的错误信息显示 2023-03-23 20:01:19 +08:00
2248356998 qq.com
ef3944fbbf 更新readme 2023-03-22 15:29:35 +08:00
2248356998 qq.com
b158fbc0d8 优化log等级、json配置注解 2023-03-22 15:26:42 +08:00
2248356998 qq.com
68f2d66e97 OPCUA写入测试 2023-03-22 14:06:32 +08:00
2248356998 qq.com
0cdd1735bd 设备运行状态页面改为扩展 2023-03-22 13:46:23 +08:00
2248356998 qq.com
70f5ead20b 更新文档 2023-03-22 10:44:44 +08:00
Diego2098
574e5616f8 rbmq插件优化 2023-03-21 23:38:00 +08:00
Diego2098
94fa810590 分包失败提示 2023-03-21 23:28:30 +08:00
Diego2098
37f69da701 设备组列宽调整,补充上传设备组 2023-03-21 23:10:59 +08:00
Diego2098
f2f8448ade 1、更新DataTypeEnum
2、OPCUA写入时需实际数据类型
2023-03-21 22:47:10 +08:00
Diego2098
b357d3fff2 更新Tests 2023-03-21 22:46:12 +08:00
2248356998 qq.com
b417194905 表格无数据时,修改默认宽度 2023-03-21 18:17:18 +08:00
2248356998 qq.com
d8741da20a S7nuget版本 2023-03-21 15:44:50 +08:00
2248356998 qq.com
c469be9a62 masa nuget版本更改 2023-03-21 14:31:36 +08:00
2248356998 qq.com
ff4eb339ef GC策略修改 2023-03-21 14:07:17 +08:00
2248356998 qq.com
78489383c0 更新文档 2023-03-21 14:03:49 +08:00
2248356998 qq.com
f67c1b415f 更新文档 2023-03-21 13:56:14 +08:00
2248356998 qq.com
570c16d921 修改s7属性注释 2023-03-21 13:51:05 +08:00
2248356998 qq.com
c8bc60568a 更新readme 2023-03-21 13:49:10 +08:00
2248356998 qq.com
73de3ba856 更新S7协议插件 2023-03-21 13:45:58 +08:00
2248356998 qq.com
6a69be8537 修改S7特殊方法 2023-03-21 13:41:32 +08:00
2248356998 qq.com
3ee381d505 修改s7 2023-03-21 13:38:43 +08:00
2248356998 qq.com
7ce744e2e4 添加西门子S7协议插件 2023-03-21 13:37:17 +08:00
2248356998 qq.com
b81d21c991 版本恢复 2023-03-21 11:45:18 +08:00
2248356998 qq.com
e9fe0992c6 更新nuget,暂缓链路复用功能 2023-03-20 13:34:59 +08:00
2248356998 qq.com
d5ef9018fa 默认不开启转储 2023-03-20 09:22:11 +08:00
2248356998 qq.com
c2737a7c51 更新opcda文档 2023-03-19 23:18:24 +08:00
2248356998 qq.com
4b6d8733c6 格式清理 2023-03-19 23:12:58 +08:00
2248356998 qq.com
f22a3e0955 修复null值报错 2023-03-19 23:02:08 +08:00
2248356998 qq.com
4b8144a2f7 添加设备组,变量按设备组别搜索 2023-03-19 22:56:02 +08:00
2248356998 qq.com
abac52e23c 更新readme,opcda核心库提示 2023-03-19 20:40:54 +08:00
2248356998 qq.com
9aa089313e 尝试修复中文在mac上乱码 2023-03-19 17:29:01 +08:00
2248356998 qq.com
b18f2c481a 修正中文在mac上乱码 2023-03-19 16:45:14 +08:00
2248356998 qq.com
ec83b9f77b 删除未知文件 2023-03-19 16:35:24 +08:00
2248356998 qq.com
fad5495e02 Merge branch 'master' of https://gitee.com/diego2098/ThingsGateway 2023-03-19 16:34:26 +08:00
2248356998 qq.com
70dec1171e 添加设备组功能 2023-03-19 16:34:15 +08:00
士心
0673a6fce3 !4 修复MacOS环境下,数据库报错的问题
* 修复macos环境下,数据库报错
2023-03-19 08:28:54 +00:00
2248356998 qq.com
8f525b1407 准备更新设备组/变量组功能 2023-03-19 11:49:06 +08:00
2248356998 qq.com
e83a991a4b 更新ReadMe 2023-03-18 17:56:18 +08:00
2248356998 qq.com
c000432a52 1、最后校验失败时应该提示日志
2、暂停时设备状态修正
2023-03-18 17:49:08 +08:00
2248356998 qq.com
c06d2d6927 更新文档 2023-03-18 16:47:29 +08:00
2248356998 qq.com
aa29653a8f ByteBlock实际长度 2023-03-18 16:45:39 +08:00
2248356998 qq.com
3f7e4ad486 修正串口描述类ToString 2023-03-18 16:32:15 +08:00
2248356998 qq.com
0eab546b2f 更新文档 2023-03-18 16:23:23 +08:00
2248356998 qq.com
8830d216d1 更新nuget 2023-03-18 16:16:27 +08:00
2248356998 qq.com
9fa1e3d449 更新readme 2023-03-18 16:15:14 +08:00
2248356998 qq.com
fe5dce7159 添加ModbusRtu种子数据 2023-03-18 16:14:37 +08:00
2248356998 qq.com
952fa31548 添加ModbusRtu插件 2023-03-18 16:14:25 +08:00
2248356998 qq.com
cc058ccc61 添加串口基础类 2023-03-18 16:14:08 +08:00
2248356998 qq.com
bc26ed9701 更新文档 2023-03-17 18:19:14 +08:00
2248356998 qq.com
26135fc1a0 更新文档 2023-03-17 17:52:04 +08:00
2248356998 qq.com
0bd14672ff 种子数据更改 2023-03-17 17:51:58 +08:00
2248356998 qq.com
7c7150cde8 采集检测间隔修改 2023-03-17 17:40:34 +08:00
2248356998 qq.com
b08282b0c1 上传插件添加循环间隔属性 2023-03-17 17:30:06 +08:00
2248356998 qq.com
3bf6e1befc 添加rbmq插件种子数据 2023-03-17 16:30:02 +08:00
2248356998 qq.com
52692371ac rbmq插件文件夹更名 2023-03-17 16:16:23 +08:00
2248356998 qq.com
159ac1d8bb 优化内存queue,修复mqtt插件可能超出字节限制的情况 2023-03-17 16:04:24 +08:00
2248356998 qq.com
7f1ffdbc79 添加rbmq插件 2023-03-17 16:03:44 +08:00
2248356998 qq.com
5fe64931dc 设备禁用时,变量绑定的设备对应选项会显示禁用(灰色) 2023-03-17 11:29:14 +08:00
2248356998 qq.com
ee67855b48 更新readme 2023-03-16 17:33:25 +08:00
2248356998 qq.com
594a97f43f 选择插件时自动更新属性 2023-03-16 17:33:17 +08:00
2248356998 qq.com
7fb435a8b4 更新赞助名单 2023-03-16 11:35:58 +08:00
2248356998 qq.com
01e74d6116 限流服务默认不开启 2023-03-16 09:47:20 +08:00
2248356998 qq.com
b321d75b39 增加简易定时看板 2023-03-15 16:01:54 +08:00
2248356998 qq.com
1e47a45723 更新历史配置说明 2023-03-15 09:11:33 +08:00
Diego2098
88c609e5ef !3 update handbook/docs/05、网关配置/5.5、其他配置.mdx.
Merge pull request !3 from zhubanghao/N/A
2023-03-14 13:39:16 +00:00
zhubanghao
775d1a424e update handbook/docs/05、网关配置/5.5、其他配置.mdx.
Signed-off-by: zhubanghao <58813184@qq.com>
2023-03-14 13:05:33 +00:00
2997 changed files with 134429 additions and 212660 deletions

11
.gitignore vendored
View File

@@ -362,5 +362,14 @@ MigrationBackup/
# Fody - auto-generated XML schema
FodyWeavers.xsd
/src/*Pro*/
/src/*Pro*
/src/*pro*
/src/*pro*/
/doc/.*
/doc/build/
/src/ThingsGateway.Server/.config/
/src/nuget.exe
/src/nupkgs/
/src/nupkgs
/framework/*Pro*

202
LICENSE Normal file
View File

@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Cachetribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2023-present Diego
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2023-present Diego
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,38 +1,72 @@
# ThingsGateway

## Introduction

A cross-platform, high-performance edge data collection gateway based on net8, capable of handling millions of data points per.

## Documentation

[Documentation](https://kimdiego2098.github.io/).

[NuGet](https://www.nuget.org/packages?q=Tags%3A%22ThingsGateway%22)

### Plugin List

#### Data Collection Plugins
## 介绍
| Plugin Name | Remarks |
|-------|-------|
| Modbus | Supports Rtu/Tcp message formats, with Serial/Tcp/Udp links |
| SiemensS7 | Siemens PLC S7 series |
| Dlt6452007 | Supports Serial/Tcp/Udp links |
| OpcDaMaster | Compiled for 64-bit |
| OpcUaMaster | Supports certificate login, object extension, Json read/write |
**NetCore** 跨平台边缘采集网关(工业设备采集)
#### Business Plugins
**ThingsGateway** 存储库同时提供 [**设备采集驱动**](https://www.nuget.org/packages?q=Tags%3A%22ThingsGateway%22)
| Plugin Name | Remarks |
|-------|-------|
| ModbusSlave | Supports Rtu/Tcp message formats, with Serial/Tcp/Udp links, supports Rpc reverse writing |
| OpcUaServer | OpcUa server, supports Rpc reverse writing |
| MqttClient | Mqtt client, supports Rpc reverse writing, script-customizable upload content |
| MqttServer | Mqtt server, supports WebSocket, supports Rpc reverse writing, script-customizable upload content |
| KafkaProducer | Script-customizable upload content |
| RabbitMQProducer | Script-customizable upload content |
| SqlDB | Relational database storage, supports historical storage and real-time data updates |
| SqlHisAlarm | Alarm historical data relational database storage |
| TDengineDB | Time-series database storage |
| QuestDB | Time-series database storage |
**ThingsGateway** 存储库同时提供 **基于Blazor的权限框架** 查看 **ThingsGateway - Admin**
## 文档
[ThingsGateway](https://diego2098.gitee.io/thingsgateway-docs/) 文档。
## 协议
[ThingsGateway](https://gitee.com/diego2098/ThingsGateway) 采用 [Apache-2.0](https://gitee.com/diego2098/ThingsGateway/blob/master/LICENSE.zh) 开源协议。
## 演示
[ThingsGateway演示地址](http://120.24.62.140:5000/)
账户 : **superAdmin**
密码 : **111111**
## 赞助
[ThingsGateway赞助途径](https://diego2098.gitee.io/thingsgateway-docs/docs/donate)
## 社区
QQ群605534569

## License

[Apache-2.0](https://gitee.com/diego2098/ThingsGateway/blob/master/LICENSE)

## Demo

[ThingsGateway Demo Address](http://47.119.161.158:5000/)

Account: **SuperAdmin**

Password: **111111**

**In the upper-right corner, switch to the IoT Gateway module in the personal popup box**
## Docker
```shell
docker pull registry.cn-shenzhen.aliyuncs.com/thingsgateway/thingsgateway
```

## Sponsorship

[Sponsorship Approach](https://kimdiego2098.github.io/docs/1000)

## Community

QQ Group: 605534569 [Jump](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=NnBjPO-8kcNFzo_RzSbdICflb97u2O1i&authKey=V1MI3iJtpDMHc08myszP262kDykbx2Yev6ebE4Me0elTe0P0IFAmtU5l7Sy5w0jx&noverify=0&group_code=605534569)

## Pro Plugins

[Plugin List](https://kimdiego2098.github.io/docs/1001)

73
README.zh-CN.md Normal file
View File

@@ -0,0 +1,73 @@
# ThingsGateway
## 介绍
基于net8的跨平台高性能边缘采集网关单机采集数据点位可达百万
## 文档
[文档](https://kimdiego2098.github.io/)
[NuGet](https://www.nuget.org/packages?q=Tags%3A%22ThingsGateway%22)
### 插件列表
#### 采集插件
| 插件名称 | 备注 |
|-------|-------|
| Modbus | Rtu/Tcp报文格式支持串口/Tcp/Udp链路 |
| SiemensS7 | 西门子PLC S7系列 |
| Dlt6452007 | 支持串口/Tcp/Udp链路 |
| OpcDaMaster | 64位编译 |
| OpcUaMaster | 支持证书登录扩展对象Json读写 |
#### 业务插件
| 插件名称 | 备注 |
|-------|-------|
| ModbusSlave | Rtu/Tcp报文格式支持串口/Tcp/Udp链路支持Rpc反写 |
| OpcUaServer | OpcUa服务端支持Rpc反写 |
| MqttClient | Mqtt客户端支持Rpc反写脚本自定义上传内容 |
| MqttServer | Mqtt服务端支持WebSocket支持Rpc反写脚本自定义上传内容 |
| KafkaProducer | 脚本自定义上传内容 |
| RabbitMQProducer | 脚本自定义上传内容 |
| SqlDB | 关系数据库存储,支持历史存储和实时数据更新 |
| SqlHisAlarm | 报警历史数据关系数据库存储 |
| TDengineDB | 时序数据库存储 |
| QuestDB | 时序数据库存储 |
## 协议
[Apache-2.0](https://gitee.com/diego2098/ThingsGateway/blob/master/LICENSE)
## 演示
[ThingsGateway演示地址](http://47.119.161.158:5000/)
账户 : **SuperAdmin**
密码 : **111111**
**右上角个人弹出框中,切换到物联网关模块**
## Docker
```shell
docker pull registry.cn-shenzhen.aliyuncs.com/thingsgateway/thingsgateway
```
## 赞助
[赞助途径](https://kimdiego2098.github.io/docs/1000)
## 社区
QQ群605534569 [跳转](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=NnBjPO-8kcNFzo_RzSbdICflb97u2O1i&authKey=V1MI3iJtpDMHc08myszP262kDykbx2Yev6ebE4Me0elTe0P0IFAmtU5l7Sy5w0jx&noverify=0&group_code=605534569)
## Pro插件
[插件列表](https://kimdiego2098.github.io/docs/1001)

15
doc/README.md Normal file
View File

@@ -0,0 +1,15 @@
文档基于 [https://www.docusaurus.io/](https://www.docusaurus.io/) 构建。
### 本地运行
```bash
npm install
npm run start
```
### 发布部署
```bash
npm run build
```

57
doc/docs/1.mdx Normal file
View File

@@ -0,0 +1,57 @@
---
id: 1
title: 版权说明
---
:::tip 公告
注意以下常见版权问题:
- 社区版本不得去除可视页面的ThingsGateway Logo
- 不得将程序集单独包装售卖,申请专利,开发竞品
:::
## 使用前必要阅读
ThingsGateway 由作者Diego及其他贡献者开发所有版权归作者Diego所有程序集源代码在遵循 Apache License 2.0 的开源协议以及**附加协议**下,可**免费**供其他开发者二次开发或(商业)使用。
### 个人使用须知:
- 不得将程序集用作违法犯罪活动。
- 不得将程序集单独包装售卖,申请专利等。
- 不得擦除程序集所有有关作者的信息。
**以上内容必须全部符合,个人使用授权才成立。**
### 二次开发须知:
- 不得将程序集用作违法犯罪活动。
- 不得将程序集单独包装售卖,申请专利等。
- 不得擦除程序集所有有关作者的信息。
- 二次开发完成后的作品必须附带源作品所有作者信息包括但不限于作者名、Gitee、Github 地址等。
**以上内容必须全部符合,二次开发授权才成立。**
### 盈利性(商业)用途使用须知:
- 不得将程序集用作违法犯罪活动。
- 不得将程序集单独包装售卖,申请专利等。
- **不得擦除程序集所有有关作者的信息,并必须于用户可见界面(如关于)中提名。**
**以上内容必须全部符合,商业使用授权才成立。**
## ThingsGatewayPro 商用许可
ThingsGatewayPro 软件框架与 ThingsGateway 一致另包含其他定制插件。所有版权归作者Diego所有。
ThingsGatewayPro 不公开开源。
# 免责申明
**在使用 ThingsGateway 之前请进行缜密的测试。在使用期间,由本程序集造成或间接造成的所有损失,均自己承担,与本程序集无关。**

45
doc/docs/100.mdx Normal file
View File

@@ -0,0 +1,45 @@
---
id: 100
title: 驱动调试
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `配置须知`
变量地址的格式可从浮动提示中查看,如需要详细说明,可查看对应的插件章节
:::
## 一、说明
**ThingsGateway** 网关程序中包含了调试页面,也单独提供跨平台的桌面端调试软件
<img src={require("@site/static/img/docs/驱动调试.png").default} />
下面举例说明Modbus驱动的调试流程
## 二、Modbus调试流程
选择需要的驱动,进入页面后,新建通道
<img src={require("@site/static/img/docs/驱动调试1.png").default} />
<img src={require("@site/static/img/docs/驱动调试2.png").default} />
2、 查看变量寄存器地址的填写格式
<img src={require("@site/static/img/docs/驱动调试3.png").default} />
3、 打开模拟软件,点击读取
<img src={require("@site/static/img/docs/驱动调试4.png").default} />
可以看到交互的报文以及读取结果
## 三、网关中的调试页面
<img src={require("@site/static/img/docs/驱动调试5.png").default} />
操作与桌面软件一样

28
doc/docs/1000.mdx Normal file
View File

@@ -0,0 +1,28 @@
---
id: 1000
title: 赞助项目
---
## 赞助ThingsGateway项目
> 您的支持就是我不懈努力的动力。<br></br>如果对您有帮助请⭐Star关注或扫码捐赠感谢支持开源
### 赞助途径
![](/img/pay.png)
### 赞助名单(以下排名只按照赞助时间顺序)
|序号|名称|金额|
|-----------|--------------|-----------------|
|1| 绢| 10¥|
|2| 小蚂蚁 |500+¥|
|3| *伟 |18.8¥|
|4| *碟 |20¥|
|5| *长 |6.66¥|
|6| 小黄鸭 |38.8¥|
|7| *交 |50¥|
|8| *洋 |200¥+50¥|
|9| *元 |20¥|
|10| 冬日暖阳 |66.66¥|

9
doc/docs/10001.mdx Normal file
View File

@@ -0,0 +1,9 @@
---
id: 10001
title: ABCipMatser
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';

96
doc/docs/1001.mdx Normal file
View File

@@ -0,0 +1,96 @@
---
id: 1001
title: Pro版
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip 公告
注意以下常见版权问题:
- 社区版本不得去除可视页面的ThingsGateway Logo
- ThingsGatewayPro授权后可去除Logo但Pro插件不开放源代码
- 任何版本不得将程序集单独包装售卖,申请专利,开发竞品
:::
## 一、说明
ThingsGatewayPro是ThingsGateway的加强版本**基础功能与ThingsGateway一致并添加一些额外功能插件**
同时ThingsGatewayPro提供企业定制服务及必要的远程协助,具体收费可以咨询**作者Diego联系方式QQ2248356998**
## 二、授权
** ThingsGatewayPro分为个人授权与企业授权区别在于授权归属**
ThingsGatewayPro授权不开放源代码**Pro版本基础代码和开源版本相同**
授权后获得证书凭据(图片形式)
### 2.1 个人授权
- **授权归属于购买者个人所有**
- 价格 998¥
### 2.2 企业授权
- **授权归属于企业所有,仅企业主体享有授权**
- 价格 1998¥
## 三、插件差异
|序号| 插件名称 | 说明 |
|----| ---------------| --------------------------|
|1| Vigor | 丰炜串口/TCP通信插件支持VS系列|
|2| Fins Tcp/Udp | 欧姆龙Fins通信插件支持CJ系列、CV系列、CS系列、NX系列等,一般欧姆龙带网口的都支持FINS|
|3| ABCIP Tcp | 罗克韦尔CIP通信插件支持17561769系列等|
|4| SECS | SECS半导体协议|
|5| 三菱MC QnA3E_Binary | MC 3E帧 二进制 |
|6| USB扫码枪 | USB扫码枪(键盘输入式),键盘钩子获取的方式目前只有windows版本|
|7| URF_R330 读卡器 | dll目前只有windows版本|
|8| 精伦idr 210 读卡器 | dll目前只有windows版本|
|9| 明泰URF_R330 读卡器 | dll目前只有windows版本|
|10| 新中新DKQ-A16D 读卡器 | dll目前只有windows版本|
## 四、插件开发计划
|序号| 插件名称 | 说明 |
|----| ---------------| --------------------------|
|1| 双机热备 | 网关双机冗余|
|2| 远程更新 | 远程更新软件|
## 五、授权名单(部分企业用户不公示)
|序号| 被授权主体 | 说明 | 时间 |
|----| ---------------| --------------------------|-------------------|
|1| 成都**创新科技有限公司 | | 2023-4-21|
|2| 超级士兵 | | 2023-5-18|
|3| SunnyUI | | 2023-7-13|
|4| 俞智峰 | | 2023-7-13|
|5| 西安***物联网科技有限公司 | | 2023-7-15|
|6| 深圳市***自动化技术有限公司 | | 2023-7-16|
|7| 西安***信息技术有限责任公司 | | 2023-9-4|
|8| 北京****网络科技发展有限公司 | | 2023-9-26|
|9| 长沙**软件科技有限公司 | | 2023-10-16|
|10| 航科**科技有限公司 | | 2023-10-30|
|11| 福建**包装有限公司 | | 2023-11-17|
|12| 内蒙古**科技有限公司 | | 2023-11-26|
|13| 佛山**自动化科技有限公司 | | 2023-11-27|
|14| Z | | 2023-12-03|
|15| 狼有一心 | | 2023-05-29|
## 六、购买途径
**购买前请先联系作者Diego**。联系QQ2248356998。
![](/img/pay.png)

24
doc/docs/1002.mdx Normal file
View File

@@ -0,0 +1,24 @@
---
id: 1002
title: 联系我们
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
**ThingsGateway团队**成立1年来一直致力于工业物联网关解决方案。我们的初衷是使设备接入更简单为用户打造提高效率的产品。
可以通过以下方式找到我们:
### 技术支持
QQ群605534569
QQ2248356998
### 咨询、合作
手机15622119120 林工
微信15622119120

37
doc/docs/101.mdx Normal file
View File

@@ -0,0 +1,37 @@
---
id: 101
title: 插件管理
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `配置须知`
更改设备/变量/插件等,需要重启后台(右上角重启后台按钮)
:::
## 一、说明
**ThingsGateway** 网关核心代码都由插件完成,主程序只负责调度执行
插件支持热重载,可由外部上传到网关中
## 二、上传插件
<img src={require("@site/static/img/docs/上传插件.png").default} />
## 二、手动重载插件
<img src={require("@site/static/img/docs/重载插件.png").default} />
可由顶部按钮或者插件管理页面按钮执行手动重载
:::tip 提示
插件重新检测文件后,运行态的插件不会发送任何改变,如果立即生效,请按右上角的重启后台按钮
:::

39
doc/docs/102.mdx Normal file
View File

@@ -0,0 +1,39 @@
---
id: 102
title: 通道
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `配置须知`
更改设备/变量/插件等,需要重启后台(右上角重启后台按钮)
:::
## 一、说明
**ThingsGateway** 网关通道其实是一个实际的串口/TCP/UDP链路或者是线程池中的一个任务
## 二、添加通道/修改通道
<img src={require("@site/static/img/docs/添加通道.png").default} />
## 三、通道配置项
| 属性| 说明 |
| --- | --- |
| 名称 | 通道名称|
| 通道类型 | 选择 TcpClient/TcpService/SerialPortClient/UdpSession/Other |
| 使能 | 是否启用此通道 |
| 调试日志 | 初始运行时,是否启用调试日志,可在运行状态界面中再次启用/停用 |
| 远程地址 | 对于TcpClient/UdpSession 作为客户端有效, 填入服务端的Url信息比如192.168.0.1:502 |
| 本地地址 | 对于TcpClient/TcpService/UdpSession 有效,作为本机的绑定地址,可选择填入,为空时是随机绑定端口 |
| COM口 | 对于SerialPortClient有效串口名称 |
| 波特率 | 对于SerialPortClient有效串口波特率 |
| 数据位 | 对于SerialPortClient有效串口数据位 |
| 校验位 | 对于SerialPortClient有效串口校验位 |
| 停止位 | 对于SerialPortClient有效串口停止位 |
| 启用Dtr | 对于SerialPortClient有效串口DtrEnable |
| 启用Rts | 对于SerialPortClient有效串口RtsEnable |

46
doc/docs/103.mdx Normal file
View File

@@ -0,0 +1,46 @@
---
id: 103
title: 设备
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `配置须知`
更改设备/变量/插件等,需要重启后台(右上角重启后台按钮)
:::
## 一、说明
**ThingsGateway** 网关设备对应每个实际采集设备/上传业务
## 二、添加设备/修改设备
<img src={require("@site/static/img/docs/添加设备.png").default} />
## 三、设备属性配置项
| 属性| 说明 |
| --- | --- |
|名称| 设备名称|
|描述| 当前设备描述 |
|默认执行间隔| 执行间隔,对于采集设备,这个属性是默认的采集间隔,对于业务设备,这个属性是循环线程的等待间隔时间 |
|设备使能| 启动/停用采集设备 |
|通道| 选择对应的通道 |
|插件| 选择对应的插件 |
|是否冗余| 启动/停用设备冗余 |
|冗余设备| 备用设备选择,当此设备离线时,会在适当的时间切换到备用设备,注意备用设备初始时不会有实际通讯线程创建,链接的变量也不会生效 |
|备用字段| 存储自定义信息 |
## 四、插件属性配置项
对于不同的插件,插件属性项也不相同,查看对应插件章节中的详细说明。
比如ModbusMaster
<img src={require("@site/static/img/docs/插件属性.png").default} />

124
doc/docs/104.mdx Normal file
View File

@@ -0,0 +1,124 @@
---
id: 104
title: 变量
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `配置须知`
更改设备/变量/插件等,需要重启后台(右上角重启后台按钮)
:::
## 一、说明
**ThingsGateway** 网关变量对应每个寄存器点位
## 二、添加变量/修改变量
### 变量基础属性配置项
<img src={require("@site/static/img/docs/添加变量.png").default} />
|属性名称| 属性描述| 备注|
|-----------|--------------|-----------------|
|名称| 当前变量名称,全局唯一(变量)| |
|描述| 当前变量描述 ||
|单位| 变量值单位 ||
|读写权限| 读写/只写/只读 ||
|使能| 启用/停用变量 ||
|远程写入| 对于变量的写入使能配置 ||
|设备| 当前采集设备选择的设备,通过级联选择器选择对应设备名称设置 ||
|变量地址| PLC寄存器/OPC ITEMID等 |对于不同插件的设备,变量地址配置不相同,查看对应的插件说明|
|执行间隔| 读取时间间隔/执行特殊方法读取的间隔 ||
|特殊方法| 某些插件特有的方法 |对于不同的插件,特殊方法配置不相同,查看对应的插件说明|
|数据类型| 对应的数据类型 |注意除了特殊驱动一般不应该选择object|
|读取表达式| 动态解析的表达式 ,原始值的代码为raw|示例:``raw.ToInt()*10+3`` 结果原始值raw为8,输出实时值83 。|
|写入表达式| 动态解析的表达式,在写入值时转化,原始值的代码为raw|示例:``raw.ToInt()/10`` 结果写入值为230时会下发23到PLC 。|
|备用字段| 存储自定义信息 |
:::tip `变量地址通用说明`
通用格式,不区分大小写
4字节转换格式
DATA=ABCD;
举例:
DATA=ABCD; ,代表大端格式,其中
ABCD=>Big-Endian;
BADC=>Big-Endian Byte Swap;
CDAB=>Little-Endian Byte Swap;
DCBA=>Little-Endian
字符串长度:
LEN=1;
BCD格式
BCD=C8421;其中有C8421;C5421;C2421;C3;Gray
字符格式:
encoding=UTF8;其中有UTF8;ASCII;Default;Unicode
数组长度:
arraylen=2;
:::
### 报警属性配置项
<img src={require("@site/static/img/docs/添加变量1.png").default} />
:::tip `说明`
报警属性中定义变量产生报警的规则所需的配置
:::
|属性名称| 属性描述| 备注|
|-----------|--------------|-----------------|
|报警使能| 启用对应报警功能| |
|报警限值| 超限时产生报警,布尔量为固定 ||
|报警文本| 对应显示的报警文本 ||
|报警约束| 动态解析的表达式 ,原始值的代码为raw计算值为true时才能产生报警 ||
:::tip `例子`
数值高高报警
变量值大于报警限值并且报警约束为true或者报警约束不存在时产生报警
比如设置高高限值为1其他默认当变量值大于1时产生报警
:::
### 业务属性配置项
<img src={require("@site/static/img/docs/添加变量2.png").default} />
:::tip `说明`
上传属性中定义变量关联的上传设备所需的配置
对于不同的插件,插件属性项也不相同,查看对应插件章节中的详细说明。
:::

34
doc/docs/105.mdx Normal file
View File

@@ -0,0 +1,34 @@
---
id: 105
title: 网关状态
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
**ThingsGateway**
运行状态页面,可查看采集/业务设备的运行状态,调试日志等信息
实时数据页面,可查看变量实时信息
实时报警页面,可查看变量实时报警
硬件信息页面可查看服务器CPU信息等
## 二、图示
<img src={require("@site/static/img/docs/运行状态详情.png").default} />
<img src={require("@site/static/img/docs/实时数据详情.png").default} />
<img src={require("@site/static/img/docs/实时报警详情.png").default} />
<img src={require("@site/static/img/docs/硬件信息详情.png").default} />

26
doc/docs/106.mdx Normal file
View File

@@ -0,0 +1,26 @@
---
id: 106
title: 网关日志
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
**ThingsGateway**
后台日志记录 有关采集/业务上传的全部网关后台日志
RPC日志记录 全部反写RPC日志
## 二、图示
<img src={require("@site/static/img/docs/RPC日志详情.png").default} />
<img src={require("@site/static/img/docs/后台日志详情.png").default} />

63
doc/docs/2.mdx Normal file
View File

@@ -0,0 +1,63 @@
---
id: 2
title: 产品介绍
---
## 产品介绍
**ThingsGateway** 是c#开发的一款边缘采集网关,核心分为四大部分
### 通道
通道实际上相当于一个实际的通讯链路比如一个串口一个TCP连接等在**ThingsGateway**中,
通道也会作为线程池中的一个任务,对于同一个通道中的不同设备,采集/业务方法是顺序进行的。
### 🔥插件
ThingsGateway中的采集方法或者上传方法等都由插件完成主程序只负责调度执行。
对于不同的采集协议或者业务需求,可以通过开发插件完成自定义的业务操作。
### 设备
建立设备,必须指定通道以及插件,也可以说设备其实是插件的配置。
同时对于采集设备、业务设备,会有些许差别。
采集设备:采集数据入网关/写入数据到现场
业务设备:上传数据到第三方/第三方RPC反写
### 变量
变量,用于配置采集设备的具体点位详情,以及对应业务设备中的配置项
## 产品特性
### 可视化操作
通过web浏览器配置调试验证整个流程
### 🔥脚本支持
灵活的数据转换脚本以及数据上传自定义实体脚本,可适配各大云平台的物模型
### 🔥自定义插件支持
通过开发插件完成自定义的业务操作。
### 🔥性能
测试100w变量点位500ms-1000ms全部采集完成稳定连续采集占用CPU资源、内存资源低
### 断线缓存
支持断线缓存,恢复后自动上传
### 🔥完整可商用的边缘网关
完善的配置权限操作日志功能等还有OPCWeb Api,Mqtt,Kafka,时序库,变量报警等更多功能等待你发现

78
doc/docs/200.mdx Normal file
View File

@@ -0,0 +1,78 @@
---
id: 200
title: ModbusMatser
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
ModbusMatser作为主站主动采集Modbus从站协议的设备
插件支持modbusTcp/modbusRtu格式报文
通讯链路支持 TcpClient/TcpService(DTU)/串口/Udp
## 二、插件属性配置项
<img src={require("@site/static/img/docs/ModbusMaster.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| Modbus协议类型 | modbusTcp/modbusRtu格式报文 | |
| 默认站号 | 默认的mudbus站号id | **变量可单独配置站号** |
| 无交互2min时断开连接 | 没有发送/收到消息 2分钟后断开连接 | 仅适用于TcpService链路DTU模式|
| 心跳检测 | 大写16进制字符串符合心跳内容会自动回应 | 仅适用于TcpService链路DTU模式|
| 读写超时时间 | 读写超时时间 | 3000|
| 连接超时时间 | 建立通讯链路的超时时间 | 3000|
| 发送延时时间 | 在发送请求前的延时时间 | 0|
| 组包缓存超时 | 返回分包时的分包间隔超时时间 | 1000 |
| 默认解析顺序 | 4个字节以上的数据解析可设置为ABCD/BADC/CDBA/DCBA,默认ABCD , **变量可单独配置**|ABCDBig-Endian<br></br>BADCBig-Endian Byte Swap<br></br>CDABLittle-Endian Byte Swap<br></br>DCBALittle-Endian |
| 最大打包长度 | 打包长度最大限值是125 | 100 |
| 离线重试间隔 | 设备检测到离线时,重新连接的间隔时间(秒) | 30 |
| 失败重试次数 | 读取失败时重试n次后判定变量为离线 | 3 |
| 最大并发数量 | ModbusTcp格式报文特有ModbusTcp可并发采集 | 1 |
## 三、变量地址配置项
- 1、基本地址
Modbus PLC寄存器
| 地址 | 功能码 | 说明 |
| ---------------| --------------|--------------------------|
| 4xxxxx | 03 | 读取03功能码 |
| 3xxxxx | 04 | 读取04功能码 |
| 1xxxxx | 02 | 读取02功能码 |
| 0xxxxx | 01 | 读取01功能码 |
- 2、站号(可选)
当需要指定站号地址时可使用,举例:
| 地址 | 说明 |
| ---------------| --------------------------|
| s=2;10001 | 读取02功能码 ,设备地址为2 |
| s=11;40001 | 读取03功能码 ,设备地址为11 |
- 3、写入功能码(可选)
当需要指定16/15功能码时可使用举例
| 地址 | 说明 |
| ---------------| --------------------------|
| w=15;10001 | 读取02功能码 ,写入15功能码 |
| w=16;40001 | 读取03功能码 ,写入16功能码 |
- 3、Dtu注册(可选)
当需要指定Dtu客户端可使用举例
| 地址 | 说明 |
| ---------------| --------------------------|
| id=12;40001 | 读取03功能码 ,设备地址为默认Dtu注册包为"12",注意是UTF8格式 |

96
doc/docs/20001.mdx Normal file
View File

@@ -0,0 +1,96 @@
---
id: 20001
title: Modbus
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 定义
程序集:[ThingsGateway.Foundation.Modbus](https://www.nuget.org/packages/ThingsGateway.Foundation.Modbus)
## 一、说明
**ThingsGateway.Foundation.Modbus**是对于Modbus协议的封装类库
支持Tcp/Rtu格式
支持多个通讯链路Tcp/Udp/SerialPort
支持Dtu
## 二、Modbus主站
1、创建ModbusMaster
```
/// <summary>
/// 新建链路
/// </summary>
/// <returns></returns>
public IChannel GetChannel()
{
TouchSocketConfig touchSocketConfig = new TouchSocketConfig();
return touchSocketConfig.GetSerialPortWithOption(new("COM1")); //直接获取串口对象
//return touchSocketConfig.GetChannel(ChannelTypeEnum.SerialPortClient, null, null, new("COM1"));//通过链路枚举获取对象
}
/// <summary>
/// 新建协议对象
/// </summary>
/// <param name="channel"></param>
/// <returns></returns>
public IProtocol GetProtocol(IChannel channel)
{
var client = new ModbusMaster(channel);
return client;
}
```
2、读写操作
```
ModbusMaster modbusMasterTest = new ModbusMaster();
var channel = modbusMasterTest.GetChannel();
var protocol = modbusMasterTest.GetProtocol(channel);
var data = await protocol.ReadDoubleAsync("400001"); //读取保持寄存器地址0
```
`400001`是PLC Modbus的地址表示方式代表保持寄存器地址0
- 基本地址
Modbus PLC寄存器
| 地址 | 功能码 | 说明 |
| ---------------| --------------|--------------------------|
| 4xxxxx | 03 | 读取03功能码 |
| 3xxxxx | 04 | 读取04功能码 |
| 1xxxxx | 02 | 读取02功能码 |
| 0xxxxx | 01 | 读取01功能码 |
- 站号(可选)
当需要指定站号地址时可使用,举例:
| 地址 | 说明 |
| ---------------| --------------------------|
| s=2;10001 | 读取02功能码 ,设备地址为2 |
| s=11;40001 | 读取03功能码 ,设备地址为11 |
- Dtu注册(可选)
当需要指定Dtu客户端可使用举例
| 地址 | 说明 |
| ---------------| --------------------------|
| id=12;40001 | 读取03功能码 ,设备地址为默认Dtu注册包为"12",注意是UTF8格式 |
## 三、Modbus从站

9
doc/docs/20002.mdx Normal file
View File

@@ -0,0 +1,9 @@
---
id: 20002
title: SiemensS7
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';

9
doc/docs/20003.mdx Normal file
View File

@@ -0,0 +1,9 @@
---
id: 20003
title: OpcDa
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';

9
doc/docs/20004.mdx Normal file
View File

@@ -0,0 +1,9 @@
---
id: 20004
title: OpcUa
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';

112
doc/docs/20005.mdx Normal file
View File

@@ -0,0 +1,112 @@
---
id: 20005
title: Dlt645
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 定义
程序集:[ThingsGateway.Foundation.Dlt645](https://www.nuget.org/packages/ThingsGateway.Foundation.Dlt645)
## 一、说明
**ThingsGateway.Foundation.Dlt645**是对于Dlt645-2007协议的封装类库
支持多个通讯链路Tcp/Udp/SerialPort
## 二、Dlt645-2007主站
1、创建Dlt645Master
```
/// <summary>
/// 新建链路
/// </summary>
/// <returns></returns>
public IChannel GetChannel()
{
TouchSocketConfig touchSocketConfig = new TouchSocketConfig();
return touchSocketConfig.GetSerialPortWithOption(new("COM1")); //直接获取串口对象
//return touchSocketConfig.GetChannel(ChannelTypeEnum.SerialPortClient, null, null, new("COM1"));//通过链路枚举获取对象
}
/// <summary>
/// 新建协议对象
/// </summary>
/// <param name="channel"></param>
/// <returns></returns>
public IProtocol GetProtocol(IChannel channel)
{
var client = new Dlt645_2007Master(channel);
client.Station = "311111111114";//表号
return client;
}
```
2、读写操作
```
Dlt645MasterTest dlt645MasterTest = new Dlt645MasterTest();
var channel = dlt645MasterTest.GetChannel();
var protocol = dlt645MasterTest.GetProtocol(channel);
var data = await protocol.ReadDoubleAsync("02010100"); //读取A相电压
```
`02010100`是Dlt645中的地址表示方式代表A相电压请查看相关协议文档可在源码附件中找到文档
- 基本地址
| 地址 | 说明 |
| ---------------| --------------------------|
| 02010100 | 读取02010100(A相电压) |
参考DLT2007协议文档数据标识可在插件源码中找到附件
- 站号(可选)
当需要指定站号地址时可使用,举例:
| 地址 | 说明 |
| ---------------| --------------------------|
| s=111111111111;02010100 | 读取02010100 ,设备地址为111111111111 |
- Dtu注册(可选)
当需要指定Dtu客户端可使用举例
| 地址 | 说明 |
| ---------------| --------------------------|
| id=12;40001 | 读取03功能码 ,设备地址为默认Dtu注册包为"12",注意是UTF8格式 |
3、其他方法
修改密码
```
var result = await protocol.WritePasswordAsync(level, oldPassword, newPassword);
```
更改表号
```
var result = await protocol.WriteDeviceStationAsync(station);
```
修改波特率
```
var result = await protocol.WriteBaudRateAsync(baudRate);
```
读取表号
```
var result = await protocol.ReadDeviceStationAsync;
```

58
doc/docs/201.mdx Normal file
View File

@@ -0,0 +1,58 @@
---
id: 201
title: ModbusSlave
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
ModbusSlave作为从站响应主站的采集报文
插件支持modbusTcp/modbusRtu格式报文
通讯链路支持 TcpClient/TcpService(DTU)/串口/Udp
## 二、插件属性配置项
<img src={require("@site/static/img/docs/ModbusSlave.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| Modbus协议类型 | modbusTcp/modbusRtu格式报文 | |
| 默认站号 | 默认的mudbus站号id | **变量可单独配置站号** |
| 默认解析顺序 | 4个字节以上的数据解析可设置为ABCD/BADC/CDBA/DCBA,默认ABCD , **变量可单独配置**|ABCDBig-Endian<br></br>BADCBig-Endian Byte Swap<br></br>CDABLittle-Endian Byte Swap<br></br>DCBALittle-Endian |
| 无交互2min时断开连接 | 没有发送/收到消息 2分钟后断开连接 | 仅适用于TcpService链路|
| 组包缓存超时 | 分包时的分包间隔超时时间 | 1000 |
| 多站点 | 是否区分不同的站号的数据 | true|
| 允许写入 | 写入权限使能 | Flase |
| 立即写入内存 | 外部写入时,是否立即写入内存池 | Flase |
## 三、变量业务属性
### 1、从站地址
- 1、基本地址
Modbus PLC寄存器
| 地址 | 功能码 | 说明 |
| ---------------| --------------|--------------------------|
| 4xxxxx | 03 | 读取03功能码 |
| 3xxxxx | 04 | 读取04功能码 |
| 1xxxxx | 02 | 读取02功能码 |
| 0xxxxx | 01 | 读取01功能码 |
- 2、站号(可选)
当需要指定站号地址时可使用,举例:
| 地址 | 说明 |
| ---------------| --------------------------|
| s=2;10001 | 读取02功能码 ,设备地址为2 |
| s=11;40001 | 读取03功能码 ,设备地址为11 |

72
doc/docs/202.mdx Normal file
View File

@@ -0,0 +1,72 @@
---
id: 202
title: Dlt645Master
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
Dlt645Master作为主站主动采集Dlt645协议的设备
插件支持Dlt645-2007格式报文
通讯链路支持 TcpClient/TcpService(DTU)/串口/Udp
## 二、插件属性配置项
<img src={require("@site/static/img/docs/Dlt645Master.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| 无交互2min时断开连接 | 没有发送/收到消息 2分钟后断开连接 | 仅适用于TcpService链路DTU模式|
| 心跳检测 | 大写16进制字符串符合心跳内容会自动回应 | 仅适用于TcpService链路DTU模式|
| 读写超时时间 | 读写超时时间 | 3000|
| 连接超时时间 | 建立通讯链路的超时时间 | 3000|
| 发送延时时间 | 在发送请求前的延时时间 | 0|
| 组包缓存超时 | 返回分包时的分包间隔超时时间 | 1000 |
| 默认解析顺序 | 4个字节以上的数据解析可设置为ABCD/BADC/CDBA/DCBA,默认ABCD , **变量可单独配置**|ABCDBig-Endian<br></br>BADCBig-Endian Byte Swap<br></br>CDABLittle-Endian Byte Swap<br></br>DCBALittle-Endian |
| 默认地址 | 电表地址12个字符 | |
| 密码 | 协议写入所需密码 | Flase |
| 操作员代码 | 协议写入所需操作员代码 | Flase |
| 前导符报文头 | 设为true时发送请求将添加4个0xFE到报文头部 | Flase |
| 离线重试间隔 | 设备检测到离线时,重新连接的间隔时间(秒) | 30 |
| 失败重试次数 | 读取失败时重试n次后判定变量为离线 | 3 |
## 三、变量地址配置项
- 1、基本地址
| 地址 | 说明 |
| ---------------| --------------------------|
| 02010100 | 读取02010100(A相电压) |
参考DLT2007协议文档数据标识可在插件源码中找到附件
- 2、站号(可选)
当需要指定站号地址时可使用,举例:
| 地址 | 说明 |
| ---------------| --------------------------|
| s=111111111111;02010100 | 读取02010100 ,设备地址为111111111111 |
- 3、Dtu注册(可选)
当需要指定Dtu客户端可使用举例
| 地址 | 说明 |
| ---------------| --------------------------|
| id=12;02010100 | 读取02010100 ,设备地址为默认Dtu注册包为"12",注意是UTF8格式 |
:::tip `说明`
注意DLT645协议中所有的变量都支持String
:::

51
doc/docs/203.mdx Normal file
View File

@@ -0,0 +1,51 @@
---
id: 203
title: SiemensS7Master
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
SiemensS7Master作为主站主动采集西门子S7协议的设备
插件支持S7格式报文支持S7-200;S7200-SMART;S7-300;S7-400;S7-1200;S7-1500;
通讯链路支持 TcpClient/Udp(通常不存在)
## 二、插件属性配置项
<img src={require("@site/static/img/docs/SiemensS7Master.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| S7类型 | S200;S200SMART;S300;S400;S1200;S1500; | |
| 机架号 | 机架号 | 0|
| 槽位号 | 槽位号 | 0|
| LocalTSAP | 查看西门子localTsap说明网关中一般不需要再设置 | 0 |
| 读写超时时间 | 读写超时时间 | 3000|
| 连接超时时间 | 建立通讯链路的超时时间 | 3000|
| 发送延时时间 | 在发送请求前的延时时间 | 0|
| 组包缓存超时 | 返回分包时的分包间隔超时时间 | 1000 |
| 默认解析顺序 | 4个字节以上的数据解析可设置为ABCD/BADC/CDBA/DCBA,默认ABCD , **变量可单独配置**|ABCDBig-Endian<br></br>BADCBig-Endian Byte Swap<br></br>CDABLittle-Endian Byte Swap<br></br>DCBALittle-Endian |
| 离线重试间隔 | 设备检测到离线时,重新连接的间隔时间(秒) | 30 |
| 失败重试次数 | 读取失败时重试n次后判定变量为离线 | 3 |
## 三、变量地址配置项
- 1、基本地址
| 地址 | 说明 |
| ---------------| --------------------------|
| Txxxxx | Timer寄存器,例如T100/T100.1 |
| Cxxxxx | Counter寄存器,例如C100/C100.1 |
| AIxxxxx | AI寄存器,例如AI100/AI100.1 |
| AQxxxxx | AQ寄存器,例如AQ100/AQ100.1 |
| Ixxxxx | I寄存器,例如I100/I100.1 |
| Qxxxxx | Q寄存器,例如Q100/Q100.1 |
| Mxxxxx | M寄存器,例如M100/M100.1 |
| DBxxxxx | DB寄存器,例如DB100.1/DB100.1.1 |

51
doc/docs/204.mdx Normal file
View File

@@ -0,0 +1,51 @@
---
id: 204
title: OpcDaMaster
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `OPCDA驱动注意`
使用OPCDA插件时需安装[OPC核心库](https://gitee.com/diego2098/ThingsGateway/attach_files)
:::
:::tip `提示`
可以通过调试页面,导出/导入OPC节点到网关
:::
## 一、说明
OpcDaMaster作为主站主动采集OPCDA协议的设备
插件支持远程OPCDA但需要配置DCOM相关知识请自行查阅资料
通道只支持 Other 类型
## 二、插件属性配置项
<img src={require("@site/static/img/docs/OpcDaMaster.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| IP | 连接IP | localhost|
| Opc名称 | OPC名称可识别ProgID或CLSID | Kepware.KEPServerEX.V6|
| 激活订阅 | 是否采用OPC订阅方式读取变量 | True|
| 检查重连频率 | 每隔设定时间获取一次服务器状态,并尝试重新连接(min) |10|
| 死区 | OPC死区 | 0|
| 最大组大小 | 每隔设定大小分一个OPCGroup | 500|
| 更新频率 | 订阅更新频率或者连读频率 (ms) | 1000 |
| 离线重试间隔 | 设备检测到离线时,重新连接的间隔时间(秒) ,只适用于非订阅模式 | 30 |
| 失败重试次数 | 读取失败时重试n次后判定变量为离线 ,只适用于非订阅模式 | 3 |
## 三、变量地址配置项
- 变量地址即为 OPC ItemID

53
doc/docs/205.mdx Normal file
View File

@@ -0,0 +1,53 @@
---
id: 205
title: OpcUaMaster
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `提示`
可以通过调试页面,导出/导入OPC节点到网关
:::
## 一、说明
插件支持OPCUA扩展类型自定义类型等等最终体现为json格式
通道只支持 Other 类型
## 二、插件属性配置项
<img src={require("@site/static/img/docs/OpcUaMaster.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| OPCURL | OPCUA URL | opc.tcp://127.0.0.1:49320|
| 登录账号 | 为空时采用匿名方式登录 | |
| 登录密码 | | |
| 检查域 | 是否检查域 | Flase|
| 安全策略 | 是否安全认证/证书方式登录 | True|
| 使用SourceTime | 是否采用服务端的变量时间 | True|
| 加载服务端数据类型 | 是否加载服务端的数据类型对应OPCUA自定义类型必须为true | True|
| 激活订阅 | 是否采用OPC订阅方式读取变量 | True|
| 更新频率 | 订阅更新频率或者连读频率 | 1000 |
| 死区 | OPC死区 | 0|
| 最大组大小 | 每隔设定大小分一个OPCGroup | 500|
| 心跳频率 | |3000|
| 离线重试间隔 | 设备检测到离线时,重新连接的间隔时间(秒) ,只适用于非订阅模式 | 30 |
| 失败重试次数 | 读取失败时重试n次后判定变量为离线 ,只适用于非订阅模式 | 3 |
## 三、变量地址配置项
- 变量地址即为 OPC NodeId
## 四、证书说明
证书可以在软件目录\OPCUAClientCertificate下查看或者导出/复制
<img src={require("@site/static/img/docs/OpcUaMaster1.png").default} />

24
doc/docs/206.mdx Normal file
View File

@@ -0,0 +1,24 @@
---
id: 206
title: VariableExpression
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
VariableExpression不与工业设备交互实际上是一个不依赖采集的表达式脚本计算方法
如果不填写变量表达式,变量值会自增
有关变量表达式的说明,请查看[变量表达式](./104.mdx#变量基础属性配置项)
## 二、插件属性配置项
## 三、变量地址配置项

134
doc/docs/3.mdx Normal file
View File

@@ -0,0 +1,134 @@
---
id: 3
title: 入门指南
slug: /
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip 提示
如果你的开发机不是**Windows**系统在解决方案中可能存在一些vs生成事件脚本(目录拷贝等不支持),会提示编译失败,请删除.csproj文件中的对应事件手动拷贝插件类库
:::
## 一、说明
**ThingsGateway** 基于NET6、8,默认开发IDE为VS2022(**17.8版本以上**),安装VS时需勾选ASP.NET类别.
<img src={require("@site/static/img/docs/vs2022install.png").default} />
## 二、下载源码
[最新版本](https://gitee.com/diego2098/ThingsGateway)
## 三、编译运行
下面我们将以vs2022作为示例
:::tip 提示
**注意需要编译解决方案,因为插件与主体没有引用关系**
:::
1、 vs2022打开解决方案编译解决方案
<img src={require("@site/static/img/docs/生成解决方案.png").default} />
2、 设置ThingsGateway.Server为启动项目开始调试或开始执行
<img src={require("@site/static/img/docs/设置启动项目.png").default} />
<img src={require("@site/static/img/docs/开始执行.png").default} />
3、 启动后会显示登录界面
<img src={require("@site/static/img/docs/login.png").default} />
恭喜你体验了软件的启动第一步!
:::tip 提示
测试环境下,账密会自动填充为超级管理员账号,默认账户:**SuperAdmin**,密码:**111111**
:::
## 四、建立一个完整的流程
下面举例说明 采集ModbusTcp设备中的寄存器通过MqttServer发布 的具体流程
### 1、建立通道
<img src={require("@site/static/img/docs/添加通道.png").default} />
添加tcpClient通道
<img src={require("@site/static/img/docs/通道配置1.png").default} />
添加mqttClient通道选择other即可
<img src={require("@site/static/img/docs/通道配置2.png").default} />
### 2、建立采集设备
添加采集设备选择tcpClient通道modbusTcp驱动
<img src={require("@site/static/img/docs/采集设备1.png").default} />
<img src={require("@site/static/img/docs/采集设备2.png").default} />
### 3、建立业务设备
添加业务设备选择mqttClient通道mqttClient驱动插件属性中填入第三方MqttBroker的连接信息
<img src={require("@site/static/img/docs/业务设备1.png").default} />
<img src={require("@site/static/img/docs/业务设备2.png").default} />
### 4、建立变量
添加变量选择modbusTcp设备填写变量寄存器地址
<img src={require("@site/static/img/docs/变量1.png").default} />
<img src={require("@site/static/img/docs/变量2.png").default} />
### 5、验证
经过以上的配置已经可以从127.0.0.1:502的模拟Modbus设备中采集到PLC地址(400001)并通过网关的mqttClient插件发布到第三方mqttBroker
。下面来验证一下
首先先启动模拟的modbusSlave软件
<img src={require("@site/static/img/docs/modbus模拟软件.png").default} />
然后重启网关后台服务,注意并不是需要重新启动软件进程,
而是**重新加载网关的组态配置到运行态中**,通过**网页右下角的重启运行时按钮**进行操作
<img src={require("@site/static/img/docs/重启后台.png").default} />
跳转到网关的运行状态查看
<img src={require("@site/static/img/docs/运行状态.png").default} />
开启调试日志的话可以看到每次交互的modbus报文以及结果状态
采集的数据点位值与相关信息跳转到实时数据页面
<img src={require("@site/static/img/docs/实时数据.png").default} />
可以看到值与采集时间等等的变化注意这里的页面实时值变化是1s的间隔时间如果配置了采集间隔小于1s页面刷新不及时是正常的不影响业务上传
MqttClient的日志也可以在运行状态中看到
<img src={require("@site/static/img/docs/运行状态1.png").default} />
## 五、详细说明
:::tip 提示
在查看案例前,请先查看**关于网关的基础内容**
:::
- [文档](https://diego2098.gitee.io/thingsgateway-docs)
- [博客](https://www.cnblogs.com/ThingsGateway/collections/1104)
- [视频](https://space.bilibili.com/88105259/channel/series)

31
doc/docs/30001.mdx Normal file
View File

@@ -0,0 +1,31 @@
---
id: 30001
title: 串口
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
### 前言
串口使用一个称为串行通信协议的协议来管理数据传输。串行通信协议在数据传输期间控制数据流,包括起始位、数据位、波特率、校验位和停止位等。
下面每个名称做一个简单的解释。
``波特率``是指串口通信中每秒传输的二进制位数
``起始位``是1位时间、值为0的位。
``数据位``通常可能为1位、1.5位、2位时间。
``校验位``是1位时间根据校验方式确定验证值比如奇校验时计算数据位中的值为1的个数如果是奇数则为1否则应为0
``停止位``通常可能为1位、1.5位、2位时间。停止位是值为1的位。停止位代表着数据传输结束。
线路路空闲或者数据传输结束时值总是1。
对于正逻辑的TTL电平值为1是高电平对于负逻辑(如RS-232电平)则相反。
单看文字很难理解具体含义,所以我们看图说话,下面这张串口示波器图清晰的表现出二进制的传输原理
<img src={require("@site/static/img/docs/串口1.png").default} />
如上图可以看出2进制是 起始``1``、数据(右到左)``01010101``、停止``0`` ,那么解析出来的数据就是``0x55``
看到这里相信大家都对串口知识有了一定的理解这些基础知识对于c#工程师看似没有必要,但可以让你的实际调试开发工作更加得心应手

287
doc/docs/301.mdx Normal file
View File

@@ -0,0 +1,287 @@
---
id: 301
title: MqttClient
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `提示`
通过自定义脚本可快速适配业务模型比如各大云平台的Iot物模型
脚本的示例请查看**常见问题**
:::
## 一、说明
MqttClient通过Tcp/WebSocket的方式发布内容到Broker(Server),可以定时/变化发布数据
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/MqttClient.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| IP | ServerIP,为空时指任意IP | |
| 端口 | 连接端口 | 1883|
| 是否WebSocket连接 | 是否WebSocket连接 | False |
| WebSocketUrl | WebSocketUrl | ws://127.0.0.1:8083/mqtt |
| 账号 | 账号 | |
| 密码 | 密码 | |
| 连接Id | 连接Id | |
| 连接超时时间 | 连接超时时间 | |
| 允许Rpc写入 | 是否允许写入变量 | |
| Rpc写入Topic | 写入变量的主题 | 实际的写入主题为固定通配 {RpcWrite/+} 其中RpcWrite为该属性填入内容+通配符是请求GUID值返回结果主题会在主题后添加Response , 也就是{RpcWrite/+/Response} |
| 数据请求Topic | 该主题接受到任何消息都会发布全部信息到对应的变量/设备/报警主题中 | |
| 设备是否列表 | 设备是否列表上传false时每个设备实体都会单独发布注意性能需求默认为true | |
| 变量是否列表 | 变量是否列表上传false时每个变量实体都会单独发布注意性能需求默认为true | |
| 报警是否列表 | 报警是否列表上传false时每个报警实体都会单独发布注意性能需求默认为true | |
| 设备Topic | 设备实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 变量Topic | 变量实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 报警Topic | 报警实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 设备实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**DeviceData**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 变量实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**VariableData**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 报警实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**AlarmVariable**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 是否选择全部变量 | 是否选择全部变量true时不需要单个变量添加业务属性 | |
| 是否间隔执行 | 是否选择全部变量true间隔上传False变化检测上传 | |
| 间隔执行时间 | 间隔执行时间 | |
| 启用缓存 | 是否启用缓存 | |
| 上传列表最大数量 | 每一次上传的列表最大数量 | |
| 内存队列最大数量 | 内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值 | |
### 脚本接口
```
public interface IDynamicModel
{
IEnumerable<dynamic> GetList(IEnumerable<dynamic> datas);
}
```
### DeviceData
```
/// <summary>
/// 设备业务变化数据
/// </summary>
public class DeviceData
{
/// <inheritdoc cref="PrimaryIdEntity.Id"/>
public long Id { get; set; }
/// <inheritdoc cref="Device.Name"/>
public string Name { get; set; }
/// <inheritdoc cref="DeviceRunTime.ActiveTime"/>
public DateTime ActiveTime { get; set; }
/// <inheritdoc cref="DeviceRunTime.DeviceStatus"/>
public DeviceStatusEnum DeviceStatus { get; set; }
/// <inheritdoc cref="DeviceRunTime.LastErrorMessage"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string LastErrorMessage { get; set; }
/// <inheritdoc cref="Device.Remark1"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark1 { get; set; }
/// <inheritdoc cref="Device.Remark2"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark2 { get; set; }
/// <inheritdoc cref="Device.Remark3"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark3 { get; set; }
/// <inheritdoc cref="Device.Remark4"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark4 { get; set; }
/// <inheritdoc cref="Device.Remark5"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark5 { get; set; }
}
```
### VariableData
```
/// <summary>
/// 变量业务变化数据
/// </summary>
public class VariableData
{
/// <inheritdoc cref="PrimaryIdEntity.Id"/>
public long Id { get; set; }
/// <inheritdoc cref="Variable.Name"/>
public string Name { get; set; }
/// <inheritdoc cref="VariableRunTime.DeviceName"/>
public string DeviceName { get; set; }
/// <inheritdoc cref="VariableRunTime.Value"/>
public object Value { get; set; }
/// <inheritdoc cref="VariableRunTime.ChangeTime"/>
public DateTime ChangeTime { get; set; }
/// <inheritdoc cref="VariableRunTime.CollectTime"/>
public DateTime CollectTime { get; set; }
/// <inheritdoc cref="VariableRunTime.IsOnline"/>
public bool IsOnline { get; set; }
/// <inheritdoc cref="VariableRunTime.LastErrorMessage"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string? LastErrorMessage { get; set; }
/// <inheritdoc cref="Device.Remark1"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark1 { get; set; }
/// <inheritdoc cref="Device.Remark2"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark2 { get; set; }
/// <inheritdoc cref="Device.Remark3"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark3 { get; set; }
/// <inheritdoc cref="Device.Remark4"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark4 { get; set; }
/// <inheritdoc cref="Device.Remark5"/>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark5 { get; set; }
}
```
### AlarmVariable
```
/// <summary>
/// 报警变量
/// </summary>
public class AlarmVariable
{
/// <inheritdoc cref="Variable.Name"/>
[SugarColumn(ColumnDescription = "变量名称", IsNullable = false)]
public string Name { get; set; }
/// <inheritdoc cref="Variable.Description"/>
[SugarColumn(ColumnDescription = "描述", IsNullable = true)]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string? Description { get; set; }
/// <inheritdoc cref="VariableRunTime.DeviceName"/>
[SugarColumn(ColumnDescription = "设备名称", IsNullable = true)]
public string DeviceName { get; set; }
/// <inheritdoc cref="Variable.RegisterAddress"/>
[SugarColumn(ColumnDescription = "变量地址")]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string RegisterAddress { get; set; }
/// <inheritdoc cref="Variable.DataType"/>
[SugarColumn(ColumnDescription = "数据类型", ColumnDataType = "varchar(100)")]
public DataTypeEnum DataType { get; set; }
/// <inheritdoc cref="VariableRunTime.AlarmCode"/>
[SugarColumn(ColumnDescription = "报警值", IsNullable = false)]
public string AlarmCode { get; set; }
/// <inheritdoc cref="VariableRunTime.AlarmLimit"/>
[SugarColumn(ColumnDescription = "报警限值", IsNullable = false)]
public string AlarmLimit { get; set; }
/// <inheritdoc cref="VariableRunTime.AlarmText"/>
[SugarColumn(ColumnDescription = "报警文本", IsNullable = true)]
public string? AlarmText { get; set; }
/// <inheritdoc cref="VariableRunTime.AlarmTime"/>
[SugarColumn(ColumnDescription = "报警时间", IsNullable = false)]
public DateTime AlarmTime { get; set; }
/// <inheritdoc cref="VariableRunTime.EventTime"/>
public DateTime EventTime { get; set; }
/// <summary>
/// 报警类型
/// </summary>
public AlarmTypeEnum? AlarmType { get; set; }
/// <summary>
/// 事件类型
/// </summary>
public EventTypeEnum EventType { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark1 { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark2 { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark3 { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark4 { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Remark5 { get; set; }
}
```
## 三、变量业务属性
### 允许写入
单独配置变量是否允许写入
## 四、Rpc
### 1、请求内容
MqttRpc的请求内容与WebApi一致请求参数为Dictionary<string, string>,比如
```
{
"D500":"1"
}
```
键为变量名称,值为写入参数值
### 2、请求主题
请求主题在配置属性中设置,查看**Rpc写入Topic**
注意,实际的请求主题为 `{ThingsGateway.Rpc/[自定义GUID或者雪花ID]/[Rpc写入Topic]}`
### 3、Rpc返回主题
`{ThingsGateway.Rpc/[自定义GUID或者雪花ID]/[Rpc写入Topic]/Response}`
### 4、图示
<img src={require("@site/static/img/docs/MqttRpc.png").default} />

74
doc/docs/302.mdx Normal file
View File

@@ -0,0 +1,74 @@
---
id: 302
title: MqttServer
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `提示`
通过自定义脚本,可快速适配业务模型
脚本的示例请查看**常见问题**
:::
:::tip `权限注意`
Server的连接权限除了Id前缀限制外账号密码同样要求在网关后台创建的所有账号密码都可以登录MqttServer
:::
## 一、说明
MqttServer支持Tcp/webSocket方式接入可以定时/变化发布数据支持Rpc写入
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/MqttServer.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| IP | ServerIP,为空时指任意IP | |
| 端口 | Tcp绑定端口 | 1883|
| WebSocket端口 | WebSocket绑定端口 | 8083固定/mqtt路由 |
| 允许连接的ID(前缀) | 允许连接的ID(前缀) |ClientId必须以这个属性开头 |
| 允许Rpc写入 | 是否允许写入变量 | |
| Rpc写入Topic | 写入变量的主题 | 实际的写入主题为固定通配 {RpcWrite/+} 其中RpcWrite为该属性填入内容+通配符是请求GUID值返回结果主题会在主题后添加Response , 也就是{RpcWrite/+/Response} |
| 设备是否列表 | 设备是否列表上传false时每个设备实体都会单独发布注意性能需求默认为true | |
| 变量是否列表 | 变量是否列表上传false时每个变量实体都会单独发布注意性能需求默认为true | |
| 报警是否列表 | 报警是否列表上传false时每个报警实体都会单独发布注意性能需求默认为true | |
| 设备Topic | 设备实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 变量Topic | 变量实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 报警Topic | 报警实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 设备实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**DeviceData**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 变量实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**VariableData**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 报警实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**AlarmVariable**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 是否选择全部变量 | 是否选择全部变量true时不需要单个变量添加业务属性 | |
| 是否间隔执行 | 是否选择全部变量true间隔上传False变化检测上传 | |
| 间隔执行时间 | 间隔执行时间 | |
| 启用缓存 | 是否启用缓存 | |
| 上传列表最大数量 | 每一次上传的列表最大数量 | |
| 内存队列最大数量 | 内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值 | |
### 脚本与实体
查看MqttClient页面[脚本接口](./301.mdx#脚本接口)
## 三、变量业务属性
### 允许写入
单独配置变量是否允许写入
## 四、Rpc
查看MqttClient页面[Rpc](./301.mdx#四rpc)

58
doc/docs/303.mdx Normal file
View File

@@ -0,0 +1,58 @@
---
id: 303
title: RabbitMQProducer
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `提示`
通过自定义脚本,可快速适配业务模型
脚本的示例请查看**常见问题**
:::
## 一、说明
RabbitMQProducer适配RabbitMQ协议主动发布内容到服务端可以定时/变化发布数据
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/RabbitMQProducer.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| IP | ServerIP,为空时指任意IP | |
| 端口 | 连接端口 | |
| 账号 | 账号 | |
| 密码 | 密码 | |
| 是否声明队列 | 初始化时是否自动创建队列 | |
| 虚拟Host | / | |
| 交换机名称 | 交换机名称 | |
| 设备是否列表 | 设备是否列表上传false时每个设备实体都会单独发布注意性能需求默认为true | |
| 变量是否列表 | 变量是否列表上传false时每个变量实体都会单独发布注意性能需求默认为true | |
| 报警是否列表 | 报警是否列表上传false时每个报警实体都会单独发布注意性能需求默认为true | |
| 设备Topic | 设备实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 变量Topic | 变量实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 报警Topic | 报警实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 设备实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**DeviceData**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 变量实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**VariableData**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 报警实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**AlarmVariable**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 是否选择全部变量 | 是否选择全部变量true时不需要单个变量添加业务属性 | |
| 是否间隔执行 | 是否选择全部变量true间隔上传False变化检测上传 | |
| 间隔执行时间 | 间隔执行时间 | |
| 启用缓存 | 是否启用缓存 | |
| 上传列表最大数量 | 每一次上传的列表最大数量 | |
| 内存队列最大数量 | 内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值 | |
### 脚本与实体
查看MqttClient页面[脚本接口](./301.mdx#脚本接口)

77
doc/docs/304.mdx Normal file
View File

@@ -0,0 +1,77 @@
---
id: 304
title: KafkaProducer
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `提示`
通过自定义脚本,可快速适配业务模型
脚本的示例请查看**常见问题**
:::
:::tip `须知`
插件使用**librdkafka**,注意按需安装c库
On Mac OSX, install librdkafka with homebrew:
```
$ brew install librdkafka
```
On Debian and Ubuntu, install librdkafka from the Confluent APT repositories, see instructions here and then install librdkafka:
```
$ apt install librdkafka-dev
```
On RedHat, CentOS, Fedora, install librdkafka from the Confluent YUM repositories, instructions here and then install librdkafka:
```
$ yum install librdkafka-devel
```
For other platforms, follow the source building instructions below.
:::
## 一、说明
KafkaProducer适配Kafka协议主动发布内容到服务端可以定时/变化发布数据
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/KafkaProducer.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| 服务地址 | 服务地址 | 127.0.0.1:9092|
| 发布超时时间 | 发布超时时间 |5000 |
| 用户名 | 用户名 | |
| 密码 | 密码 | |
| SecurityProtocol | SecurityProtocol | |
| SaslMechanism | SaslMechanism | |
| 设备是否列表 | 设备是否列表上传false时每个设备实体都会单独发布注意性能需求默认为true | |
| 变量是否列表 | 变量是否列表上传false时每个变量实体都会单独发布注意性能需求默认为true | |
| 报警是否列表 | 报警是否列表上传false时每个报警实体都会单独发布注意性能需求默认为true | |
| 设备Topic | 设备实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 变量Topic | 变量实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 报警Topic | 报警实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性 | |
| 设备实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**DeviceData**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 变量实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**VariableData**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 报警实体脚本 | 脚本返回新的实体列表,动态类中需继承**IDynamicModel**,传入列表为**AlarmVariable**,查看以下具体属性 | 编辑页面中,可通过检查按钮验证脚本,脚本示例请查看**常见问题** |
| 是否选择全部变量 | 是否选择全部变量true时不需要单个变量添加业务属性 | |
| 是否间隔执行 | 是否选择全部变量true间隔上传False变化检测上传 | |
| 间隔执行时间 | 间隔执行时间 | |
| 启用缓存 | 是否启用缓存 | |
| 上传列表最大数量 | 每一次上传的列表最大数量 | |
| 内存队列最大数量 | 内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值 | |
### 脚本与实体
查看MqttClient页面[脚本接口](./301.mdx#脚本接口)

34
doc/docs/305.mdx Normal file
View File

@@ -0,0 +1,34 @@
---
id: 305
title: TDengineDBProducer
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
TDengineDBProducer适配TDengineDB时序数据库可以定时/变化存储变量数据
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/TDengineDBProducer.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| 链接字符串 | 链接字符串 | Host=localhost;Port=6030;Username=root;Password=taosdata;Database=test|
| 是否选择全部变量 | 是否选择全部变量true时不需要单个变量添加业务属性 | |
| 是否间隔执行 | 是否选择全部变量true间隔上传False变化检测上传 | |
| 间隔执行时间 | 间隔执行时间 | |
| 启用缓存 | 是否启用缓存 | |
| 上传列表最大数量 | 每一次上传的列表最大数量 | |
| 内存队列最大数量 | 内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值 | |

34
doc/docs/306.mdx Normal file
View File

@@ -0,0 +1,34 @@
---
id: 306
title: QuestDBProducer
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
QuestDBProducer适配QuestDB时序数据库可以定时/变化存储变量数据
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/QuestDBProducer.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| 链接字符串 | 链接字符串 | host=localhost;port=8812;username=admin;password=quest;database=qdb;ServerCompatibilityMode=NoTypeLoading;|
| 是否选择全部变量 | 是否选择全部变量true时不需要单个变量添加业务属性 | |
| 是否间隔执行 | 是否选择全部变量true间隔上传False变化检测上传 | |
| 间隔执行时间 | 间隔执行时间 | |
| 启用缓存 | 是否启用缓存 | |
| 上传列表最大数量 | 每一次上传的列表最大数量 | |
| 内存队列最大数量 | 内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值 | |

38
doc/docs/307.mdx Normal file
View File

@@ -0,0 +1,38 @@
---
id: 307
title: SqlDBProducer
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
SqlDBProducer适配关系数据库可以定时/变化存储变量数据,也可以实时更新数据到实时表
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/SqlDBProducer.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| 是否实时表 | 开启实时更新数据功能 | |
| 是否历史表 | 开始历史存储功能 |true |
| 实时表名称 | 实时表名称 | |
| 数据库类型 | 数据库类型 | |
| 链接字符串 | 链接字符串 | server=.;uid=sa;pwd=111111;database=test;|
| 是否选择全部变量 | 是否选择全部变量true时不需要单个变量添加业务属性 | |
| 是否间隔执行 | 是否选择全部变量true间隔上传False变化检测上传 | |
| 间隔执行时间 | 间隔执行时间 | |
| 启用缓存 | 是否启用缓存 | |
| 上传列表最大数量 | 每一次上传的列表最大数量 | |
| 内存队列最大数量 | 内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值 | |

32
doc/docs/308.mdx Normal file
View File

@@ -0,0 +1,32 @@
---
id: 308
title: SqlHisAlarm
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、说明
SqlHisAlarm适配关系数据库可以变化存储变量报警数据
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/SqlHisAlarm.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| 数据库类型 | 数据库类型 | |
| 链接字符串 | 链接字符串 | server=.;uid=sa;pwd=111111;database=test;|
| 启用缓存 | 是否启用缓存 | |
| 上传列表最大数量 | 每一次上传的列表最大数量 | |
| 内存队列最大数量 | 内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值 | |

53
doc/docs/309.mdx Normal file
View File

@@ -0,0 +1,53 @@
---
id: 309
title: OpcUaServer
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `权限注意`
如果开启安全策略在网关后台创建的所有账号密码都可以登录OpcUaServer
如果不开启安全策略,则可以匿名登录
:::
## 一、说明
OpcUaServer支持外部OpcUa客户端读写
通道只支持 Other
## 二、插件属性配置项
<img src={require("@site/static/img/docs/OpcUaServer.png").default} />
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| 是否选择全部变量 | 是否选择全部变量true时不需要单个变量添加业务属性 | |
| 服务地址 | Url ,以分号分割,可设置多个 | opc.tcp://127.0.0.1:49321 |
| SubjectName | 证书内容 | |
| 安全策略 | 启用后将不接受使用匿名登录的客户端,并且可以写入变量 | |
| 自动接受不受信任的证书 | 自动获取客户端证书并接受 | True |
## 三、变量业务属性
### 数据类型
同变量管理数据类型Enum
## 四、证书说明
证书可以在软件目录\OPCUAServerCertificate下查看或者导出/复制
<img src={require("@site/static/img/docs/OpcUaServer1.png").default} />

31
doc/docs/400.mdx Normal file
View File

@@ -0,0 +1,31 @@
---
id: 400
title: 发布
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、编译解决方案
<img src={require("@site/static/img/docs/发布.png").default} />
选择Release , 点击解决方案全编译(或者编译plugin文件夹)
## 二、发布版本
<img src={require("@site/static/img/docs/发布1.png").default} />
按需选择发布版本(图中为linux-64 net6)
## 三、复制插件文件夹
:::tip `提示`
如果你的开发机是**Windows**系统,这一步不再需求进行,发布时通过脚本已经自动复制到发布文件夹
:::
<img src={require("@site/static/img/docs/发布2.png").default} />

37
doc/docs/401.mdx Normal file
View File

@@ -0,0 +1,37 @@
---
id: 401
title: Windows部署
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::tip `提示`
如果需要Runtime依赖部署需要安装ASP.NET Core Runtime如果是独立发布部署则不需要安装Runtime
下载链接:https://dotnet.microsoft.com/zh-cn/download/dotnet
:::
遵循windows service服务安装/启动/停止方式 https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/sc-create
提供懒人bat脚本文件管理员身份运行**WindowsServiceCreate.bat**
<img src={require("@site/static/img/docs/Windows服务.png").default} />
运行脚本后可以在windows服务中找到**ThingsGateway**
<img src={require("@site/static/img/docs/Windows服务1.png").default} />
如需删除服务,运行**WindowsServiceDelete.bat**

195
doc/docs/402.mdx Normal file
View File

@@ -0,0 +1,195 @@
---
id: 402
title: IIS部署
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::caution 注意
1、必须启用IIS WebSocket协议
2、禁用IIS回收
:::
:::tip `提示`
如果需要Runtime依赖部署需要安装ASP.NET Core Runtime如果是独立发布部署则不需要安装Runtime
下载链接:https://dotnet.microsoft.com/zh-cn/download/dotnet
:::
:::tip 精简发布文件
如果需要精简发布后的文件,也就是删除不必要的文件夹,可以编辑 Web 项目的 `.csproj` 并添加 `<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>`,如:
```cs showLineNumbers {3}
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
</PropertyGroup>
```
若无需生成 `.pdb` 文件,可以继续添加:
```cs showLineNumbers {2-3}
<PropertyGroup>
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>
```
:::
## 服务器环境配置
### 第一步
安装.NET Core 运行时捆绑包:[点击下载](https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer)
### 第二步(命令)
```bash showLineNumbers
net stop was /y
```
### 第三步(命令)
```bash showLineNumbers
net start w3svc
```
### 第四步(命令)
```bash showLineNumbers
set ASPNETCORE_ENVIRONMENT=Production
```
## 部署到 IIS
### 添加新网站
<img src={require("@site/static/img/furion/ds1.png").default} />
### 配置网站信息
<img src={require("@site/static/img/furion/ds2.png").default} />
### 34.1.3.3 配置应用程序池
<img src={require("@site/static/img/furion/ds3.png").default} />
### 34.1.3.4 设置为 `非托管`
<img src={require("@site/static/img/furion/ds4.png").default} />
### 34.1.3.5 重启网站
只需重启网站或应用程序池即可。
## 34.1.4 常见问题
### 34.1.4.1 405 状态码,不支持 `PUTDELETE` 请求
默认情况下,`IIS`拒绝 `PUT`和 `DELETE` 请求,原因为 `IIS` 默认注册了一个名为 `WebDAVModule` 的自定义 `HttpModule` 导致的。
解决该问题,只需要在 `web.config` 移除即可:
```xml {2-6}
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="webDAVModule"/>
</modules>
</system.webServer>
</configuration>
```
微软官方文档:[https://docs.microsoft.com/zh-cn/troubleshoot/developer/webapps/iis/health-diagnostic-performance/http-error-405-website](https://docs.microsoft.com/zh-cn/troubleshoot/developer/webapps/iis/health-diagnostic-performance/http-error-405-website)
<img src={require("@site/static/img/furion/iis5.png").default} />
### 34.1.4.2 `WebSocket`/ `SignalR` 连接报错
如果项目部署在 `IIS` 中出现 `WebSoket`/`SignalR` 不能连接或连接失败等问题,请确保 `IIS` 服务中的 `WebSocket 协议` 是勾选状态
<img src={require("@site/static/img/furion/iis2.png").default} />
### 34.1.4.3 部署之后缺失 `api-ms-win.xxxx.dll` 问题
有时候将发布文件发布到服务器后,出现丢失 `api.ms-win.xxxx.dll` 文件,这时只需要重新发布并选择服务器特定的架构即可。
<img src={require("@site/static/img/furion/iis4.jpg").default} />
<img src={require("@site/static/img/furion/iis3.png").default} />
## 34.1.5 `IIS` 回收问题和配置
通过 `IIS` 部署 `.NET Core` 应用程序,如果启动了系统日志,就会发现经常出现 `Application is shutting down...` 的日志,代表 `IIS` 回收了应用程序池。
对于一个长期在线的网站来说,这是非常不合理的,所以我们可以通过以下配置让 `IIS` 进行长时间不访问便回收的机制。
---
配置步骤如下:
1. 打开 `IIS` 并点击左侧树根节点(计算机名称)并点击右侧的 `Configuration Editor`(配置编辑器)
<img src={require("@site/static/img/furion/iis6.png").default} />
2. 在 `Section`(节)选择 `system.applicationHost/applicationPools` 并设置 `startMode` 为 `AlwaysRunning`,之后点击 `Apply` 保存。
<img src={require("@site/static/img/furion/iis7.png").default} />
3. 点击左侧树根节点(计算机名称)下的 `Application Pools` 并点击最右侧的 `Set Appliation Pool Defaults...`(设置应用程序池默认配置...
<img src={require("@site/static/img/furion/iis8.png").default} />
4. 设置 `Idle Time-out (minutes)`(闲置超时(分钟)为 `0`
<img src={require("@site/static/img/furion/iis9.png").default} />
这样即可解决 `IIS` 回收问题。
## 34.1.6 卷影(无占用)复制发布替换
正常情况下如果我们代码重新发布后替换 `IIS` 中的文件,这时候会出现文件占用无法进行替换,过去运维人员都是先停止站点后替换再启动。但我们也可以配置 `web.config` 文件启用卷影复制模式实现类似**热更新**操作,如:
```xml showLineNumbers {12-18}
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- To customize the asp.net core module uncomment and edit the following section.
For more info see https://go.microsoft.com/fwlink/?linkid=838655 -->
<system.webServer>
<handlers>
<remove name="aspNetCore"/>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModulev2" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
<handlerSettings>
<handlerSetting name="experimentalEnableShadowCopy" value="true" />
<handlerSetting name="shadowCopyDirectory" value="../ShadowCopyDirectory/" />
<!-- Only enable handler logging if you encounter issues-->
<!--<handlerSetting name="debugFile" value=".\logs\aspnetcore-debug.log" />-->
<!--<handlerSetting name="debugLevel" value="FILE,TRACE" />-->
</handlerSettings>
</aspNetCore>
</system.webServer>
</configuration>
```
关于卷影复制更多知识可查看以下文档:
- [https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-6-preview-3/#shadow-copying-in-iis](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-6-preview-3/#shadow-copying-in-iis)
- [https://learn.microsoft.com/zh-cn/dotnet/framework/app-domains/shadow-copy-assemblies](https://learn.microsoft.com/zh-cn/dotnet/framework/app-domains/shadow-copy-assemblies)

122
doc/docs/403.mdx Normal file
View File

@@ -0,0 +1,122 @@
---
id: 403
title: Docker部署
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
:::important 特别注意
验证码使用SkiaSharp如果是在 linux 服务下运行则需要安装 libfontconfig1如 ubuntu 的安装命令
```
apt-get update
apt-get -y install libfontconfig1
```
如果是采用 docker 模式运行,则需要在 dockerfile 中添加如下配置,该命令适用于 debian 和 ubuntu 的 docker
```
RUN apt-get update && apt-get -y install libfontconfig1
```
:::
:::tip `提示`
如果需要Runtime依赖部署需要安装ASP.NET Core Runtime如果是独立发布部署则不需要安装Runtime
下载链接:https://dotnet.microsoft.com/zh-cn/download/dotnet
:::
:::tip 精简发布文件
如果需要精简发布后的文件,也就是删除不必要的文件夹,可以编辑 Web 项目的 `.csproj` 并添加 `<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>`,如:
```cs showLineNumbers {3}
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
</PropertyGroup>
```
若无需生成 `.pdb` 文件,可以继续添加:
```cs showLineNumbers {2-3}
<PropertyGroup>
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>
```
:::
## 34.2.1 关于 `Docker` 部署
在 `Docker` 中部署网站有两种方式:
- `发布后构建`:此方式是先发布网站后在再构建镜像,这样可以减少不必要的构建层,而且还能缩减镜像大小。**(推荐)**
- `编译+构建+发布`:也就是说在 `Dockerfile` 中配置网站从构建到发布的完整过程,此方式会速度慢,而且会产生冗余层,增加镜像大小。
## 34.2.2 两种方式构建
### 34.2.2.1 发布后构建
- 👉 编写 `Dockerfile`
```
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
COPY . /app
WORKDIR /app
EXPOSE 80
#linux安装
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ sid main contrib non-free" > /etc/apt/sources.list
RUN apt-get update && apt-get -y install libfontconfig1
ENTRYPOINT ["dotnet", "ThingsGateway.Web.Server.dll","--urls","http://*:7200"]
```
- 👉 将 `Dockerfile` 文件拷贝到发布根目录
将编写好的 `Dockerfile` 文件(注意 `D` 大写)拷贝到发布网站的根目录下。
:::tip `提示`
git仓库中已经包含 `Dockerfile` 文件
:::
- 👉 构建 `Docker` 镜像
在网站发布后的路径根目录下(必须含 `Dockerfile`)打开 `CMD/PowerShell` 只需构建命令:
```bash showLineNumbers
docker build -t 网站名称:网站版本号 .
```
:::important 特别注意
后端的 `.` 不能省略
:::
- 👉 启动镜像
```bash showLineNumbers
docker run --name 容器名称 -p 5000:80 --restart=always -d 网站名称:网站版本号
```
:::caution `.NET8` 中 `80` 端口问题
在使用 `.NET8`,默认的端口由原来的 `80` 端口变成了 `8080`。[查看相关说明](https://learn.microsoft.com/zh-cn/dotnet/core/compatibility/containers/8.0/aspnet-port)
:::
- 👉 在 `Dockerfile` 所在路径构建
接下来的步骤和上述步骤一致,不再重复编写。

55
doc/docs/404.mdx Normal file
View File

@@ -0,0 +1,55 @@
---
id: 404
title: Linux服务部署
---
:::important 特别注意
验证码使用SkiaSharp如果是在 linux 服务下运行则需要安装 libfontconfig1如 ubuntu 的安装命令
```
apt-get update
apt-get -y install libfontconfig1
```
如果是采用 docker 模式运行,则需要在 dockerfile 中添加如下配置,该命令适用于 debian 和 ubuntu 的 docker
```
RUN apt-get update && apt-get -y install libfontconfig1
```
:::
### PM2守护
详细安装请自行查找资料
查阅详细官方文档 https://pm2.keymetrics.io/docs/usage/quick-start/
下面介绍一下常用指令
- 安装pm2
```
npm install pm2@latest -g
```
- 启用应用程序
```
pm2 start pm2-linux.json
```
- 停止应用程序
```
pm2 stop pm2-linux.json
```
- 自动启动
```
pm2-startup
pm2 save
```
### linux服务
自行查询相关资料 **NetCore/Linux/Systemd**

47
doc/docs/501.mdx Normal file
View File

@@ -0,0 +1,47 @@
---
id: 501
title: 常见问题
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
#### 1、Modbus地址可以只写地址0吗一定要写成类似400001?
按照PLC Modbus寄存器的格式以区域号为起始字符后续加上寄存器地址+1
所以一定要写成400001
#### 2、数据如何设置小数位
网关提供灵活的脚本式配置转换,可以在变量的读取表达式中进行配置转换
如果要设置小数位为2可以填入
```
Math.Round(raw.ToDecimal(), 2)
```
#### 3、源码打开razor文件时不出现智能提示有waring警告(波浪线)
VS的bug导致的可以尝试升级vs把工程目录下的.vs文件夹已经全部的bin OR obj 删除后,重新打开解决方案
#### 4、报警属性中的报警约束如何定义
报警约束和变量表达式类似填入脚本返回值为true时报警生效
```csharp
//新建testInt1,testInt2两个变量
//在testInt1的高高报警值为1开启使能
//在testInt1的高高报警约束中定义testInt2>10
//testInt1为8,testInt2为11时产生testInt1报警
//testInt1为8,testInt2为10时不会产生testInt1报警
```
#### 5、启动项目之后驱动调试页面没有任何信息设备选择插件时也不出现任何选择项
网关插件未编译,需要编译解决方案,查看入门指南;或者插件未能成功拷贝到插件目录(Plugins)

118
doc/docs/502.mdx Normal file
View File

@@ -0,0 +1,118 @@
---
id: 502
title: 脚本常见问题
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 一、脚本示例
```
//变量脚本动态设置传输实体的Demo
//只传输变量名称,变量值,变量在线状态,变量值改变时间
public class DemoScript:IDynamicModel
{
public IEnumerable<dynamic> GetList(IEnumerable<object> datas)
{
List<DemoData> demoDatas = new List<DemoData>();
foreach (var v in datas)
{
var data=(VariableData)v;
DemoData demoData = new DemoData();
demoData.Value = data.Value;
demoData.Name = data.Name;
demoData.IsOnline = data.IsOnline;
demoData.ChangeTime = data.ChangeTime;
demoDatas.Add(demoData);
}
return demoDatas;
}
}
public class DemoData
{
public string Name { get; set; }
public bool IsOnline { get; set; }
public object Value { get; set; }
public DateTime ChangeTime { get; set; }
}
```
## 二、适配阿里云物模型脚本
对应文档:[阿里云设备属性上报](https://help.aliyun.com/zh/iot/user-guide/data-formats?spm=a2c4g.11186623.0.i17#section-jrb-lrl-b2b)
### 变量脚本
```
//一个适配阿里云IOT的变量脚本demo
public class AliYunIotScript:IDynamicModel
{
public IEnumerable<dynamic> GetList(IEnumerable<object> datas)
{
List<AliYunIot> aliYunIots = new();
// 对输入列表进行分组,根据 Remark1属性分组
var groups = datas.Where(a => !string.IsNullOrEmpty(((VariableData)a).Remark1)).GroupBy(a => ((VariableData)a).Remark1,a=> ((VariableData)a));
// 遍历每一个分组
foreach (var item in groups)
{
var requestId = Yitter.IdGenerator.YitIdHelper.NextId();
var iotId = item.Key; //Remark1自定义为设备Id
var productKey = item.FirstOrDefault(a => !string.IsNullOrEmpty(a.Remark2))?.Remark2;//Remark2自定义为产品Id
var deviceName = item.FirstOrDefault(a => !string.IsNullOrEmpty(a.Remark3))?.Remark3;//Remark3自定义为设备名称
AliYunIot aliYunIot = new();
aliYunIot.iotId = iotId;
aliYunIot.requestId = requestId.ToString();
aliYunIot.deviceName = deviceName;
aliYunIot.productKey = productKey;
// 遍历分组内的每一个元素
foreach (var varItem in item)
{
// 设置采集时间,并转换为 Unix 时间戳
// 设置值
var data = new Property() { value = varItem.Value, time = new DateTimeOffset(varItem.CollectTime).ToUnixTimeSeconds() };
// 以 变量名称 作为键,将新对象添加到分组的 属性 中
aliYunIot.items.Add(varItem.Name, data);
}
aliYunIots.Add(aliYunIot);
}
return aliYunIots;
}
}
public class AliYunIot
{
public string iotId { get; set; }
public string requestId { get; set; }
public string productKey { get; set; }
public string deviceName { get; set; }
public Dictionary<string, Property> items { get; set; } = new();
}
public class Property
{
public object value { get; set; }
public long time { get; set; }
}
```
### 传输主题
变量Topic 填入 `/${productKey}/${deviceName}/thing/event/property/post`

38
doc/docs/601.mdx Normal file
View File

@@ -0,0 +1,38 @@
---
id: 601
title: 采集插件开发
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## 说明
ThingsGateway封装了丰富的协议解析方法方便开发多种PLC通讯插件
下面我们以Omron FinsTcp/Udp为例讲解如何基于ThingsGateway开发一个**通用驱动**以及ThingsGateway插件
## 一、协议解析
`Fins` 协议是OSI模型第7层上的应用层报文传输协议我们画一个简单的应用层协议报文解析图
| Fins over TCP | Fins over UDP |
| ---------------| --------------------------|
| FinsTCP Header | None |
| FinsUDP Header | FinsUDP Header |
| Command Data |Command Data |
可以看出基于Tcp的Fins和基于Udp的Fins协议差别只是Tcp连接时会加一个FinsTcp报文头。
下面我们进行每个部分的说明
### 1、FinsTCP Header
FinsTcp头部固定为16个字节
| FinsTCP Header | 说明 |
| ---------------| --------------------------|
| Magic | 固定0x46494E53也就是FINS字符串的ASCII码 |
| Length | 后续全部字节的长度 |
| Command | 0是客户端请求握手1是服务端返回握手信息除0,1外是其他方法 |

9
doc/docs/602.mdx Normal file
View File

@@ -0,0 +1,9 @@
---
id: 602
title: 业务插件开发
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';

80
doc/docs/upgrade.mdx Normal file
View File

@@ -0,0 +1,80 @@
---
id: upgrade
title: 更新日志
---
import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';
## v5.0.0.1
> 2024-1-21
**更新描述:**
此版本是大版本更新。可能会产生很多不兼容部分,所以升级之前请做好备份。
如果需要从5.0前升级,请按以下操作进行
1、导出旧版本的excel配置文件包括采集设备、上传设备、变量等
2、5.0框架中,只建立一个对应插件的设备/变量这一步是因为插件是按需导出的需要建立对应插件才会导出相应的sheet建好后导出excel
3、参照5.0版本的excel内容把旧版本的配置内容移到新版本excel文件中
4、导入已修改好的5.0版本excel配置文件
**更新详情:**
- &nbsp;<Tag>调整</Tag> 重构采集驱动底层,网关缓存
- &nbsp;<Tag>调整</Tag> 重构网关权限管理框架
- &nbsp;<Tag>调整</Tag> 重构网关线程管理器
- &nbsp;<Tag>调整</Tag> 重构网关断线续传功能
- &nbsp;<Tag>调整</Tag> 重构脚本支持方便对应各大云平台的iot格式
- &nbsp;<Tag>调整</Tag> 调整网关UI外观风格
## v3.0.0.25
- &nbsp;<Tag>调整</Tag> 删除S7插件中的DstTSAP属性,用插槽号与机架号代替,更直观
- &nbsp;<Tag>调整</Tag> OPCUAServer插件 url属性支持多个url以逗号分割
## v3.0.0.19
- &nbsp;<Tag>新增</Tag> 添加TDengineDB时序库上传插件
- &nbsp;<Tag>新增</Tag> 添加QuestDB时序库上传插件
- &nbsp;<Tag>新增</Tag> 添加DLT645采集插件
- &nbsp;<Tag>新增</Tag> 添加调试软件
## v1.7.0
- &nbsp;<Tag>优化</Tag> OPCUAClient支持动态类型
## v1.2.0
- &nbsp;<Tag>新增</Tag> 添加OPCUAServer插件
##
## v1.1.0
- &nbsp;<Tag>新增</Tag> 添加OPCDAClient采集插件
- &nbsp;<Tag>新增</Tag> 添加OPCUAClient采集插件
- &nbsp;<Tag>新增</Tag> 串口基础框架
##
## v1.0.0
- &nbsp;<Tag>新增</Tag> 初始发布
##

View File

@@ -1,10 +1,11 @@
module.exports = {
title: "thingsgateway",
tagline: "物联网",
url: "https://diego2098.gitee.io",
baseUrl: "/thingsgateway-docs/",
title: "thingsgateway",
tagline: "物联网",
url: "https://kimdiego2098.github.io",
baseUrl: "/",
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
onBrokenMarkdownLinks: "throw",
favicon: "img/favicon.ico",
projectName: "ThingsGateway",
scripts: [],
@@ -29,24 +30,23 @@ module.exports = {
additionalLanguages: ["powershell", "csharp", "sql"],
},
navbar: {
title: "ThingsGateway",
logo: {
alt: "ThingsGateway Logo",
src: "img/ThingsGatewayLogo.png",
title: "ThingsGateway",
logo: {
alt: "ThingsGateway Logo",
src: "img/ThingsGatewayLogo.png",
},
hideOnScroll: true,
items: [
{
to: "docs",
activeBasePath: "docs",
label: "文档",
position: "left",
},
{
label: "更新日志",
position: "left",
to: "docs/upgrade"
},
{
label: "演示",
position: "right",
href: "http://47.119.161.158:5000",
},
{
label: "源码",
position: "right",
@@ -65,6 +65,16 @@ module.exports = {
},
],
},
// {
// label: "博客",
// position: "right",
// href: "https://www.cnblogs.com/ThingsGateway/collections/1104",
// },
{
label: "视频",
position: "right",
href: "https://space.bilibili.com/88105259/channel/series",
},
{
label: "社区",
position: "right",
@@ -121,17 +131,18 @@ module.exports = {
docs: {
sidebarPath: require.resolve("./sidebars.js"),
editUrl:
"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/",
"https://gitee.com/diego2098/ThingsGateway/tree/master/doc/",
showLastUpdateTime: true,
showLastUpdateAuthor: true,
sidebarCollapsible: true,
sidebarCollapsed: true,
// sidebarCollapsible: true,
},
// blog: {
// showReadingTime: true,
// editUrl:
// "https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/",
// "https://gitee.com/diego2098/ThingsGateway/tree/master/doc/",
// },
theme: {
customCss: require.resolve("./src/css/custom.css"),
@@ -145,7 +156,7 @@ module.exports = {
"@easyops-cn/docusaurus-search-local",
{
hashed: true,
language: ["en", "zh"],
language: ["zh","en"],
highlightSearchTermsOnTargetPage: true,
explicitSearchResultPath: true,
},

22684
doc/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "thingsgateway",
"version": "v2.0",
"version": "v6.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
@@ -14,8 +14,8 @@
"write-heading-ids": "docusaurus write-heading-ids"
},
"dependencies": {
"@docusaurus/core": "^2.3.1",
"@docusaurus/preset-classic": "^2.3.1",
"@docusaurus/core": "^2.4.3",
"@docusaurus/preset-classic": "^2.4.3",
"@easyops-cn/docusaurus-search-local": "^0.33.5",
"@mdx-js/react": "^1.6.22",
"@svgr/webpack": "^6.5.1",
@@ -41,7 +41,7 @@
]
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^2.3.1",
"@docusaurus/module-type-aliases": "^2.4.3",
"react-iconfont-cli": "^2.0.2"
},
"engines": {

315
doc/sidebars.js Normal file
View File

@@ -0,0 +1,315 @@
module.exports = {
docs: [
{
type: "doc",
id: "upgrade",
label: "更新日志"
},
{
type: "doc",
id: "1",
label: "版权说明"
},
{
type: "doc",
id: "2",
label: "产品介绍"
},
{
type: "doc",
id: "3",
label: "入门指南"
},
{
type: "doc",
id: "100",
label: "驱动调试"
},
{
type: "category",
label: "基础手册",
items: [
{
type: "category",
label: "网关配置",
items: [
{
type: "doc",
id: "101",
label: "插件管理"
},
{
type: "doc",
id: "102",
label: "通道管理"
},
{
type: "doc",
id: "103",
label: "设备"
},
{
type: "doc",
id: "104",
label: "变量"
},
]
},
{
type: "doc",
id: "105",
label: "网关状态查看"
},
{
type: "doc",
id: "106",
label: "网关日志"
},
]
},
{
type: "category",
label: "采集插件手册",
items: [
{
type: "doc",
id: "200",
label: "ModbusMaster"
},
{
type: "doc",
id: "202",
label: "Dlt645Master"
},
{
type: "doc",
id: "203",
label: "SiemensS7Master"
},
{
type: "doc",
id: "204",
label: "OpcDaMaster"
},
{
type: "doc",
id: "205",
label: "OpcUaMaster"
},
{
type: "doc",
id: "206",
label: "VariableExpression"
}
]
},
{
type: "category",
label: "业务插件手册",
items: [
{
type: "doc",
id: "201",
label: "ModbusSlave"
},
{
type: "doc",
id: "301",
label: "MqttClient"
},
{
type: "doc",
id: "302",
label: "MqttServer"
},
{
type: "doc",
id: "303",
label: "RabbitMQProducer"
},
{
type: "doc",
id: "304",
label: "KafkaProducer"
},
{
type: "doc",
id: "305",
label: "TDengineDBProducer"
},
{
type: "doc",
id: "306",
label: "QuestDBProducer"
},
{
type: "doc",
id: "307",
label: "SqlDBProducer"
},
{
type: "doc",
id: "308",
label: "SqlHisAlarm"
},
{
type: "doc",
id: "309",
label: "OpcUaServer"
},
]
},
{
type: "category",
label: "Pro插件手册",
items: [
{
type: "doc",
id: "10001",
label: "ABCipMatser"
},
]
},
{
type: "category",
label: "部署",
items: [
{
type: "doc",
id: "400",
label: "编译发布"
},
{
type: "doc",
id: "401",
label: "windows服务部署"
},
{
type: "doc",
id: "402",
label: "iis部署"
},
{
type: "doc",
id: "403",
label: "docker部署"
},
{
type: "doc",
id: "404",
label: "linux服务部署"
}
]
},
{
type: "category",
label: "常见问题",
items: [
{
type: "doc",
id: "501",
label: "常见问题"
},
{
type: "doc",
id: "502",
label: "脚本常见问题"
},
]
},
{
type: "category",
label: "插件开发",
items: [
{
type: "doc",
id: "601",
label: "采集插件"
},
{
type: "doc",
id: "602",
label: "业务插件"
},
]
},
{
type: "category",
label: "nuget包文档",
items: [
{
type: "doc",
id: "20001",
label: "Modbus"
},
{
type: "doc",
id: "20002",
label: "SiemensS7"
},
{
type: "doc",
id: "20003",
label: "OpcDa"
},
{
type: "doc",
id: "20004",
label: "OpcUa"
},
{
type: "doc",
id: "20005",
label: "Dlt645"
},
]
},
{
type: "category",
label: "协议开发教程",
items: [
{
type: "doc",
label: "基础知识",
id: "30001",
}
]
},
{
type: "category",
label: "技术支持/合作",
items: [
{
type: "doc",
id: "1002",
label: "联系我们"
},
{
type: "doc",
id: "1000",
label: "赞助项目"
},
{
type: "doc",
id: "1001",
label: "Pro版"
},
]
},
]
};

View File

@@ -42,13 +42,15 @@ export default function (props) {
bgColor: "#38e550",
},
Demo: {
推荐: {
bgColor: "#38e550",
},
DEMO: {
bgColor: "#38e550",
},
Pro版: {
bgColor: "#23AAF2",
},
}
};
return (
<label

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -23,7 +23,7 @@
.ThingsGateway-banner-description {
margin: 24px 0;
font-size: 2.2em;
font-size: 2.5em;
font-weight: 700;
line-height: 1.25;
background-image: linear-gradient(81deg, #8759ff, #3fc4fe, #42ffac);

View File

@@ -18,13 +18,13 @@ function Home() {
const context = useDocusaurusContext();
const { siteConfig = {} } = context;
React.useEffect(() => {}, []);
React.useEffect(() => { }, []);
return (
<Layout
title={`ThingsGateway说明文档。 ${siteConfig.title}`}
description="ThingsGateway说明文档"
>
<Layout
title={`ThingsGateway说明文档。 ${siteConfig.title}`}
description="ThingsGateway说明文档"
>
<Banner />
<Gitee />
</Layout>
@@ -32,25 +32,32 @@ function Home() {
}
function Banner() {
const { colorMode, setLightTheme, setDarkTheme } = useColorMode();
const isDarkTheme = colorMode === "dark";
return (
<div className="ThingsGateway-banner">
<div className={"ThingsGateway-banner" + (isDarkTheme ? " dark" : "")}>
<div className="ThingsGateway-banner-container">
<div className="ThingsGateway-banner-item">
<div className="ThingsGateway-banner-project">
ThingsGateway{" "}
<span
style={{ fontSize: 14, fontWeight: "normal", color: "#8759ff" }}
></span>
<span style={{ fontSize: 20, fontWeight: "Blod", color: "#FFFFFF" }}>
ThingsGateway
</span>
</div>
<div style={{ color: "#82aaff", position: "relative", fontSize: 14 }}>
基于NetCore的跨平台物联网关
</div>
<div className="ThingsGateway-banner-description">
<div className={"ThingsGateway-banner-description"+ (isDarkTheme ? " dark" : "")}>
不只是心血来潮更是持之以恒
</div>
<ul className="ThingsGateway-banner-spec">
<li> Apache-2.0 宽松开源协议商业免费授权</li>
<li>支持 .NET/6/7+</li>
<li>
底层驱动库 支持 .NET Framework 4.5及以上.NET Standard2.0及以上
</li>
<li>网关 支持 .NET 6/7/8</li>
<li>极速上手极简使用</li>
</ul>
<div className="ThingsGateway-support-platform">受支持平台</div>
<div className="ThingsGateway-support-icons">
@@ -74,13 +81,13 @@ function Banner() {
</span>
</div>
<div className="ThingsGateway-get-start-btn">
<Link className="ThingsGateway-get-start" to={useBaseUrl("docs")}>
<Link className="ThingsGateway-get-start" to={useBaseUrl("docs/")}>
入门指南
<span className="ThingsGateway-version">v2.0.0</span>
<span className="ThingsGateway-version">v6.0</span>
</Link>
</div>
</div>
</div>
</div>
);
@@ -107,7 +114,7 @@ function Gitee() {
className={"ThingsGateway-log-jiao" + (isDarkTheme ? " dark" : "")}
></div>
<div className="ThingsGateway-log-number">
<div style={{ color: "#723cff" }}>400 +</div>
<div style={{ color: "#723cff" }}>750 +</div>
<span className={isDarkTheme ? " dark" : ""}>Stars</span>
</div>
</div>
@@ -119,7 +126,7 @@ function Gitee() {
className={"ThingsGateway-log-jiao" + (isDarkTheme ? " dark" : "")}
></div>
<div className="ThingsGateway-log-number">
<div style={{ color: "#3fbbfe" }}>100 +</div>
<div style={{ color: "#3fbbfe" }}>200 +</div>
<span className={isDarkTheme ? " dark" : ""}>Forks</span>
</div>
</div>

View File

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 965 B

After

Width:  |  Height:  |  Size: 965 B

View File

Before

Width:  |  Height:  |  Size: 627 B

After

Width:  |  Height:  |  Size: 627 B

Some files were not shown because too many files have changed in this diff Show More