Compare commits

...

125 Commits

Author SHA1 Message Date
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
813 changed files with 5145 additions and 4988 deletions

View File

@@ -14,9 +14,34 @@
[ThingsGateway](https://diego2098.gitee.io/thingsgateway-docs/) 文档。
### 插件列表
#### 采集插件
| 插件名称 | 备注 |
|-------|-------|
| ModbusMaster | Rtu/Tcp报文格式支持串口/Tcp/Udp链路 |
| S7 | 西门子PLC S7系列 |
| Dlt6452007 | Master支持串口/Tcp/Udp链路 |
| OpcDaClient | 64位编译 |
| OpcUaClient | 支持证书登录扩展对象Json读写 |
#### 业务插件
| 插件名称 | 备注 |
|-------|-------|
| ModbusSlave | Rtu/Tcp报文格式支持串口/Tcp/Udp链路支持Rpc反写 |
| OpcUaServer | OpcUa服务端支持Rpc反写 |
| Mqtt Client | Mqtt客户端支持Rpc反写脚本自定义上传内容 |
| Mqtt Server | Mqtt服务端支持WebSocket支持Rpc反写脚本自定义上传内容 |
| Kafka Client | 数据生产,脚本自定义上传内容 |
| RabbitMQ Client | 数据生产,脚本自定义上传内容 |
| SqlDB | 关系数据库存储,支持历史存储和实时数据更新 |
| SqlHisAlarm | 报警历史数据关系数据库存储 |
| TDengineDB | 时序数据库存储 |
| QuestDB | 时序数据库存储 |
## 协议
[ThingsGateway](https://gitee.com/diego2098/ThingsGateway) 采用 [Apache-2.0](https://gitee.com/diego2098/ThingsGateway/blob/master/LICENSE.zh) 开源协议。
[ThingsGateway](https://gitee.com/diego2098/ThingsGateway) 采用 [Apache-2.0](https://gitee.com/diego2098/ThingsGateway/blob/master/LICENSE) 开源协议。
## 演示
@@ -28,11 +53,15 @@
## 赞助
[ThingsGateway赞助途径](https://diego2098.gitee.io/thingsgateway-docs/docs/donate)
[ThingsGateway赞助途径](https://diego2098.gitee.io/thingsgateway-docs/docs/1000)
## 社区
QQ群605534569
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://diego2098.gitee.io/thingsgateway-docs/docs/1001)

10
doc/build/404.html vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[9626],{1166:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>r,contentTitle:()=>o,default:()=>p,frontMatter:()=>n,metadata:()=>i,toc:()=>l});var s=a(7462),d=(a(7294),a(3905));a(4996),a(510),a(2969);const n={id:501,title:"\u5e38\u89c1\u95ee\u9898"},o=void 0,i={unversionedId:"501",id:"501",title:"\u5e38\u89c1\u95ee\u9898",description:"1\u3001Modbus\u5730\u5740\u53ef\u4ee5\u53ea\u5199\u5730\u57400\u5417\uff0c\u4e00\u5b9a\u8981\u5199\u6210\u7c7b\u4f3c400001?",source:"@site/docs/501.mdx",sourceDirName:".",slug:"/501",permalink:"/thingsgateway-docs/docs/501",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/doc/docs/501.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1706078809,formattedLastUpdatedAt:"Jan 24, 2024",frontMatter:{id:"501",title:"\u5e38\u89c1\u95ee\u9898"},sidebar:"docs",previous:{title:"Linux\u670d\u52a1\u90e8\u7f72",permalink:"/thingsgateway-docs/docs/404"},next:{title:"\u811a\u672c\u5e38\u89c1\u95ee\u9898",permalink:"/thingsgateway-docs/docs/502"}},r={},l=[{value:"1\u3001Modbus\u5730\u5740\u53ef\u4ee5\u53ea\u5199\u5730\u57400\u5417\uff0c\u4e00\u5b9a\u8981\u5199\u6210\u7c7b\u4f3c400001?",id:"1modbus\u5730\u5740\u53ef\u4ee5\u53ea\u5199\u5730\u57400\u5417\u4e00\u5b9a\u8981\u5199\u6210\u7c7b\u4f3c400001",level:4},{value:"2\u3001\u6570\u636e\u5982\u4f55\u8bbe\u7f6e\u5c0f\u6570\u4f4d",id:"2\u6570\u636e\u5982\u4f55\u8bbe\u7f6e\u5c0f\u6570\u4f4d",level:4},{value:"3\u3001\u6e90\u7801\u6253\u5f00razor\u6587\u4ef6\u65f6\uff0c\u4e0d\u51fa\u73b0\u667a\u80fd\u63d0\u793a\uff0c\u6709waring\u8b66\u544a(\u6ce2\u6d6a\u7ebf)",id:"3\u6e90\u7801\u6253\u5f00razor\u6587\u4ef6\u65f6\u4e0d\u51fa\u73b0\u667a\u80fd\u63d0\u793a\u6709waring\u8b66\u544a\u6ce2\u6d6a\u7ebf",level:4}],u={toc:l},c="wrapper";function p(t){let{components:e,...a}=t;return(0,d.kt)(c,(0,s.Z)({},u,a,{components:e,mdxType:"MDXLayout"}),(0,d.kt)("h4",{id:"1modbus\u5730\u5740\u53ef\u4ee5\u53ea\u5199\u5730\u57400\u5417\u4e00\u5b9a\u8981\u5199\u6210\u7c7b\u4f3c400001"},"1\u3001Modbus\u5730\u5740\u53ef\u4ee5\u53ea\u5199\u5730\u57400\u5417\uff0c\u4e00\u5b9a\u8981\u5199\u6210\u7c7b\u4f3c400001?"),(0,d.kt)("p",null,"\u6309\u7167PLC Modbus\u5bc4\u5b58\u5668\u7684\u683c\u5f0f\uff0c\u4ee5\u533a\u57df\u53f7\u4e3a\u8d77\u59cb\u5b57\u7b26\uff0c\u540e\u7eed\u52a0\u4e0a\uff08\u5bc4\u5b58\u5668\u5730\u5740+1\uff09",(0,d.kt)("br",{parentName:"p"}),"\n","\u6240\u4ee5\u4e00\u5b9a\u8981\u5199\u6210400001"),(0,d.kt)("h4",{id:"2\u6570\u636e\u5982\u4f55\u8bbe\u7f6e\u5c0f\u6570\u4f4d"},"2\u3001\u6570\u636e\u5982\u4f55\u8bbe\u7f6e\u5c0f\u6570\u4f4d"),(0,d.kt)("p",null,"\u7f51\u5173\u63d0\u4f9b\u7075\u6d3b\u7684\u811a\u672c\u5f0f\u914d\u7f6e\u8f6c\u6362\uff0c\u53ef\u4ee5\u5728\u53d8\u91cf\u7684\u8bfb\u53d6\u8868\u8fbe\u5f0f\u4e2d\u8fdb\u884c\u914d\u7f6e\u8f6c\u6362\n\u5982\u679c\u8981\u8bbe\u7f6e\u5c0f\u6570\u4f4d\u4e3a2\uff0c\u53ef\u4ee5\u586b\u5165 "),(0,d.kt)("pre",null,(0,d.kt)("code",{parentName:"pre"},"Math.Round(raw, 2)\n")),(0,d.kt)("h4",{id:"3\u6e90\u7801\u6253\u5f00razor\u6587\u4ef6\u65f6\u4e0d\u51fa\u73b0\u667a\u80fd\u63d0\u793a\u6709waring\u8b66\u544a\u6ce2\u6d6a\u7ebf"},"3\u3001\u6e90\u7801\u6253\u5f00razor\u6587\u4ef6\u65f6\uff0c\u4e0d\u51fa\u73b0\u667a\u80fd\u63d0\u793a\uff0c\u6709waring\u8b66\u544a(\u6ce2\u6d6a\u7ebf)"),(0,d.kt)("p",null,"VS\u7684bug\u5bfc\u81f4\u7684\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u5347\u7ea7vs\uff0c\u628a\u5de5\u7a0b\u76ee\u5f55\u4e0b\u7684.vs\u6587\u4ef6\u5939\u5df2\u7ecf\u5168\u90e8\u7684bin OR obj \u5220\u9664\u540e\uff0c\u91cd\u65b0\u6253\u5f00\u89e3\u51b3\u65b9\u6848"))}p.isMDXComponent=!0}}]);

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[8976],{137:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>n,toc:()=>c});var a=s(7462),d=(s(7294),s(3905));s(4996),s(510),s(2969);const i={id:20005,title:"Dlt645"},o=void 0,n={unversionedId:"20005",id:"20005",title:"Dlt645",description:"",source:"@site/docs/20005.mdx",sourceDirName:".",slug:"/20005",permalink:"/thingsgateway-docs/docs/20005",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/doc/docs/20005.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1705826523,formattedLastUpdatedAt:"Jan 21, 2024",frontMatter:{id:"20005",title:"Dlt645"},sidebar:"docs",previous:{title:"OpcUa",permalink:"/thingsgateway-docs/docs/20004"},next:{title:"\u8054\u7cfb\u6211\u4eec",permalink:"/thingsgateway-docs/docs/1002"}},r={},c=[],l={toc:c},p="wrapper";function g(t){let{components:e,...s}=t;return(0,d.kt)(p,(0,a.Z)({},l,s,{components:e,mdxType:"MDXLayout"}))}g.isMDXComponent=!0}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[7285],{6067:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>r,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var a=s(7462),d=(s(7294),s(3905));s(4996),s(510),s(2969);const o={id:20001,title:"Modbus"},i=void 0,n={unversionedId:"20001",id:"20001",title:"Modbus",description:"",source:"@site/docs/20001.mdx",sourceDirName:".",slug:"/20001",permalink:"/thingsgateway-docs/docs/20001",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/doc/docs/20001.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1705826523,formattedLastUpdatedAt:"Jan 21, 2024",frontMatter:{id:"20001",title:"Modbus"},sidebar:"docs",previous:{title:"\u4e1a\u52a1\u63d2\u4ef6\u5f00\u53d1",permalink:"/thingsgateway-docs/docs/602"},next:{title:"SiemensS7",permalink:"/thingsgateway-docs/docs/20002"}},r={},c=[],p={toc:c},l="wrapper";function u(t){let{components:e,...s}=t;return(0,d.kt)(l,(0,a.Z)({},p,s,{components:e,mdxType:"MDXLayout"}))}u.isMDXComponent=!0}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

10
doc/build/index.html vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -26,6 +26,7 @@ ModbusMatser作为主站主动采集Modbus从站协议的设备
| Modbus协议类型 | modbusTcp/modbusRtu格式报文 | |
| 默认站号 | 默认的mudbus站号id | **变量可单独配置站号** |
| 无交互2min时断开连接 | 没有发送/收到消息 2分钟后断开连接 | 仅适用于TcpService链路DTU模式|
| 心跳检测 | 大写16进制字符串符合心跳内容会自动回应 | 仅适用于TcpService链路DTU模式|
| 读写超时时间 | 读写超时时间 | 3000|
| 连接超时时间 | 建立通讯链路的超时时间 | 3000|
| 发送延时时间 | 在发送请求前的延时时间 | 0|
@@ -67,3 +68,11 @@ Modbus PLC寄存器
| w=15;10001 | 读取02功能码 ,写入15功能码 |
| w=16;40001 | 读取03功能码 ,写入16功能码 |
- 3、Dtu注册(可选)
当需要指定Dtu客户端可使用举例
| 地址 | 说明 |
| ---------------| --------------------------|
| id=12;40001 | 读取03功能码 ,设备地址为默认Dtu注册包为"12",注意是UTF8格式 |

View File

@@ -7,3 +7,90 @@ 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从站

View File

@@ -7,3 +7,106 @@ 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;
```

View File

@@ -22,6 +22,7 @@ Dlt645Master作为主站主动采集Dlt645协议的设备
| 属性 | 说明 | 备注|
| ---------------| --------------------------| ---|
| 无交互2min时断开连接 | 没有发送/收到消息 2分钟后断开连接 | 仅适用于TcpService链路DTU模式|
| 心跳检测 | 大写16进制字符串符合心跳内容会自动回应 | 仅适用于TcpService链路DTU模式|
| 读写超时时间 | 读写超时时间 | 3000|
| 连接超时时间 | 建立通讯链路的超时时间 | 3000|
| 发送延时时间 | 在发送请求前的延时时间 | 0|
@@ -54,6 +55,15 @@ Dlt645Master作为主站主动采集Dlt645协议的设备
| ---------------| --------------------------|
| s=111111111111;02010100 | 读取02010100 ,设备地址为111111111111 |
- 3、Dtu注册(可选)
当需要指定Dtu客户端可使用举例
| 地址 | 说明 |
| ---------------| --------------------------|
| id=12;02010100 | 读取02010100 ,设备地址为默认Dtu注册包为"12",注意是UTF8格式 |
:::tip `说明`
注意DLT645协议中所有的变量都支持String

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#工程师看似没有必要,但可以让你的实际调试开发工作更加得心应手

View File

@@ -25,3 +25,23 @@ Math.Round(raw, 2)
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)

View File

@@ -7,3 +7,32 @@ 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外是其他方法 |

View File

@@ -42,7 +42,11 @@ module.exports = {
position: "left",
to: "docs/upgrade"
},
{
label: "演示",
position: "right",
href: "http://120.24.62.140:5000",
},
{
label: "源码",
position: "right",

View File

@@ -274,6 +274,20 @@ module.exports = {
},
]
},
{
type: "category",
label: "协议开发教程",
items: [
{
type: "doc",
label: "基础知识",
id: "30001",
}
]
},
{
type: "category",
label: "技术支持/合作",

BIN
doc/static/img/docs/串口1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 KiB

View File

@@ -2,11 +2,10 @@
<PropertyGroup>
<NoWarn>CS8618;CS8625;CS8600;CS8601;CS8604;CS8714;CS8602;CS8603;CS8619;CS8621</NoWarn>
<TargetFrameworks>net6.0;</TargetFrameworks>
<!--<TargetFrameworks>net6.0;</TargetFrameworks>-->
<LangVersion>11.0</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>5.0.0.6</Version>
<Version>5.0.2.0</Version>
<Authors>Diego</Authors>
<Company>Diego</Company>
<Product>Diego</Product>

View File

@@ -14,7 +14,11 @@
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<OutputPath></OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<DebugSymbols>True</DebugSymbols>
<DebugType>Embedded</DebugType>
<EmbedAllSources>True</EmbedAllSources>
</PropertyGroup>
<ItemGroup>
<None Include="$(SolutionDir)Foundation.props" Pack="true" PackagePath="\" />
</ItemGroup>

View File

@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<TargetFrameworks>net6.0;net7.0;net8.0;</TargetFrameworks>
<TargetFrameworks>net6.0;</TargetFrameworks>
</PropertyGroup>
<ItemGroup>

View File

@@ -1,5 +1,4 @@
extensions: .cs
#region copyright
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
@@ -11,4 +10,3 @@ extensions: .cs
// QQ群605534569
//------------------------------------------------------------------------------
#endregion

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
using Microsoft.AspNetCore.Mvc;
namespace ThingsGateway.Admin.ApiController;

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
global using Furion.DynamicApiController;
global using System;

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
using Furion.Reflection;
using Furion.Reflection.Extensions;

View File

@@ -0,0 +1,6 @@
{
"Demo": {
"IsDemo": false,
"UpPWEnable": false //是否允许修改密码
}
}

View File

@@ -0,0 +1,6 @@
{
"Demo": {
"IsDemo": false,
"UpPWEnable": false //是否允许修改密码
}
}

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,5 +1,3 @@
#region copyright
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
public class SimpleAdminConst

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
using System.ComponentModel;
namespace ThingsGateway.Admin.Application;

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
namespace ThingsGateway.Admin.Application;
/// <summary>

View File

@@ -1,6 +1,4 @@
#region copyright
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
@@ -10,8 +8,6 @@
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
using System.ComponentModel;
namespace ThingsGateway.Admin.Application;

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