TGateway.NOAOTPlugin 2.3.2

dotnet add package TGateway.NOAOTPlugin --version 2.3.2
                    
NuGet\Install-Package TGateway.NOAOTPlugin -Version 2.3.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TGateway.NOAOTPlugin" Version="2.3.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TGateway.NOAOTPlugin" Version="2.3.2" />
                    
Directory.Packages.props
<PackageReference Include="TGateway.NOAOTPlugin" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TGateway.NOAOTPlugin --version 2.3.2
                    
#r "nuget: TGateway.NOAOTPlugin, 2.3.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TGateway.NOAOTPlugin@2.3.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TGateway.NOAOTPlugin&version=2.3.2
                    
Install as a Cake Addin
#tool nuget:?package=TGateway.NOAOTPlugin&version=2.3.2
                    
Install as a Cake Tool

TGateway

TGateway 是 TGateway 的工业物联网边缘网关运行时,负责设备采集、变量计算、数据转发、历史数据、实时报警、规则引擎和 Web 管理。

仓库首页 · 构建与环境准备 · 贡献指南

项目组成

模块 路径 说明
运行时宿主 src/TGateway 配置加载、应用启动和进程入口
应用核心 src/TGateway.Application 通道、设备、变量、报警、历史数据、规则引擎和管理 API
驱动基础 src/TGateway.Foundation 通信通道、设备抽象、数据转换和驱动基础设施
内置插件 src/TGateway.Plugin 可用于常规运行环境的采集与业务插件
非 AOT 插件 src/TGateway.NOAOTPlugin OPC 等依赖动态能力的插件
前端资源 src/TGateway.Frontend 嵌入运行时的 Web 静态资源
脚本编译器 src/TGateway.ScriptCompiler 脚本和表达式编译支持
源生成器 analyzer 表达式和插件注册代码生成
Web 前端 web Vue 3 网关管理界面
自动化测试 test/TGateway.Test 核心运行时、驱动、规则和安全测试

功能特性

  • 通道、设备、变量的统一建模、批量配置、状态监控和在线调试。
  • Modbus、Siemens S7、DL/T 645、MQTT、OPC UA/DA 等内置协议,扩展协议由插件项目提供。
  • 实时数据缓存、变量读写、WebSocket 推送和网关间同步。
  • 历史数据与历史报警查询、实时报警、确认和配置管理。
  • 采集驱动与业务插件生命周期、动态属性和权限元数据。
  • 数据转发到 MQTT、RabbitMQ、Kafka、数据库、HTTP 等目标。
  • 可视化规则流、自定义节点、运行时脚本和表达式。
  • 工程备份恢复、冗余管理、健康检查、日志、审计和 TAdmin 权限体系。

历史数据数据库矩阵

历史数据转发与查询覆盖 SQLite、SQL Server、MySQL、PostgreSQL、QuestDB、TDengine 和 IoTDB。当前浏览器验收矩阵包含 22 个相互隔离的目标:8 个普通目标、7 个显式自定义 SQL 目标,以及 7 个开启自定义 SQL但建表、插入、删除模板全部留空的自动生成目标。

数据库 普通模式 显式自定义 SQL 空 SQL 自动生成 隔离方式
SQLite 1 1 1 独立数据库文件
SQL Server 1 1 1 独立数据库
MySQL 1 1 1 独立数据库
PostgreSQL 1 1 1 独立数据库
QuestDB 1 1 1 独立表名;QuestDB 没有多数据库命名空间
TDengine 1 1 1 独立数据库
IoTDB Table 1 1 1 Table 模型支持自定义 SQL
IoTDB Tree 1 0 0 Tree 模型只使用普通历史查询

数据查询页遵循以下契约:

  • 普通模式返回设备名称、变量名称、变量 ID、值、采集时间、在线状态、记录时间、源 Epoch、源序列、源节点和记录键。没有冗余来源元数据时,源节点与记录键为空;其余字段必须有值。
  • 通用自定义宽表返回 event_time、main_value、copy_value 和 device_name;IoTDB 自动表额外返回 group_key,IoTDB 显式自定义表返回 time、device_id、variable_id、variable_name、value 和 is_online。
  • 普通模式按变量写入记录,两个变量通常每周期产生两行;合并宽表通常每周期产生一行,因此两种模式的累计总数不要求相同。分页栏中的 50条/页 是当前分页大小,总数以“共 N 条”为准。
  • 切换查询目标时必须清空上一目标的分页排序字段并重建表格排序状态,不能把普通表的 createTime 排序带入使用 event_time 或 time 的自定义表。
  • 普通模式的 IoTDB 与 QuestDB 原生 UTC 时间在服务端按目标配置时区投影为墙钟时间;例如目标配置 +08:00 时,UTC 09:42Z 在普通表显示为 17:42。IoTDB 与 QuestDB 自定义宽表保留原始 Z 后缀,明确表示 UTC。
  • QuestDB 普通查询必须应用页面传入的条件和排序;按记录时间降序时使用 CreateTime DESC,不能退回到可能长期不变的 CollectTime。

2026-08-30 使用 Asia/Shanghai 浏览器时区完成 22 个目标的实际 UI 验收:所有目标均返回 50 行;宽表最新行的两个数值均为 42.5、设备名称为 Memory 且没有空字段;普通表除源节点和记录键外字段完整。修复后 IoTDB Table、IoTDB Tree 和 QuestDB Normal 的最新记录时间分别与本地当前时间一致,IoTDB/QuestDB 宽表仍返回带 Z 的 UTC 时间。

技术栈

技术 当前配置 用途
.NET net10.0 后端运行时和测试
TouchSocket TouchSocketVersion TCP、UDP、串口、MQTT、WebApi 和 WebSocket
TAdmin AdminVersion 用户、角色、权限、认证和审计
TUtility TUtilityVersion 应用启动与通用基础能力
TORM TORMVersion 运行时数据库访问
Vue 3.5.x Web 管理界面
TypeScript 6.0.x 前端类型系统
Element Plus 2.14.x 前端组件库
Vite 8.0.x 前端开发和构建

后端依赖的实际版本以 Directory.Build.props 为准,前端范围与锁定版本分别见 package.json 和 package-lock.json,避免在 README 中重复维护补丁版本。

目录结构

TGateway/
|-- analyzer/
|   |-- TGateway.ExpressionsGenerator/
|   `-- TGateway.PluginsGenerator/
|-- src/
|   |-- TGateway/
|   |-- TGateway.Application/
|   |-- TGateway.Foundation/
|   |-- TGateway.Frontend/
|   |-- TGateway.Plugin/
|   |-- TGateway.NOAOTFoundation/
|   |-- TGateway.NOAOTPlugin/
|   `-- TGateway.ScriptCompiler/
|-- test/TGateway.Test/
|-- web/
|-- Directory.Build.props
`-- README.md

开发环境

  • .NET SDK 10。
  • Node.js 22.13+(22.x)或 24+、npm,以及生产构建脚本调用的 Windows PowerShell。
  • 当前完整源码工作区需要同级 TAdmin、TUtility、TORM、TExcel 与配套 NuGet 包;存在强制本地引用,不能保证单独克隆后自动改用 NuGet。
  • 先构建同级 TAdmin/web,再构建 Runtime Web。完整目录布局与准备命令见构建指南。

构建

完成前端构建后,从 TGateway 目录构建 Runtime、Studio、Watchdog、授权中心及 Runtime/Studio 测试的解决方案。PRO/MultiSplit 按本地项目是否存在参与 Runtime 的依赖引用,其独立测试不在根解决方案内:

dotnet restore TGateway.slnx
dotnet build TGateway.slnx -c Release

只构建运行时:

dotnet build TGateway/src/TGateway/TGateway.csproj -c Release

运行测试:

dotnet test TGateway/test/TGateway.Test/TGateway.Test.csproj -c Release

前端开发

cd web
npm ci
npm run dev

以上命令从 TGateway 目录开始执行,且需要先生成 TAdmin/web 的导出文件。开发服务器默认使用 http://localhost:3100,代理 API 与 WebSocket 到 http://127.0.0.1:6100,后端需要单独启动。构建生产资源:

npm run check
npm run build

npm run build 会执行类型检查、生成静态资源,并把资源复制到 TGateway.Frontend 的嵌入目录。

运行

先构建前端资源,再从 TGateway 目录启动后端:

dotnet run --project src/TGateway/TGateway.csproj --framework net10.0

默认 WebApi 端口为 6100。运行目录下的 Configuration 用于数据库、JWT、OAuth2、日志、历史查询和 WebApi 配置;默认 SQLite 连接启用 WAL 日志模式。

扩展开发

相关资源

  • 官方文档:https://runtime.thingsgateway.cn/
  • Gitee:https://gitee.com/ThingsGateway/ThingsGateway
  • GitHub:https://github.com/kimdiego2098/ThingsGateway
  • QQ 群:605534569

许可证

本项目按商业源码授权提供,使用、修改、集成和再分发范围以正式协议为准。详见仓库授权说明与商业授权。历史 LICENSE 文本的统一事项见仓库检查记录。

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.3.2 0 9/30/2026
2.3.1 38 9/29/2026
2.2.46 31 9/29/2026