mirror of
https://gitee.com/ThingsGateway/ThingsGateway.git
synced 2025-12-06 08:38:55 +08:00
feat: debug支持
This commit is contained in:
@@ -13,14 +13,14 @@
|
||||
NU1510;SYSLIB5007;CS8603;CS8618;CS1591;CS8625;CS8602;CS8604;CS8600;CS8601;CS8714;CS8619;CS8629;CS8765;CS8634;CS8621;CS8767;CS8633;CS8620;CS8610;CS8631;CS8605;CS8622;CS8613;NU5100;NU5104;NU1903;NU1902;CA1863;CA1812;CA1805;CA1515;CA1508;CA1819;CA1852;CA5394;CA1822;CA1815;CA1813;CA2000;CA5358;CA5384;CA5400;CA5401;CA1814;CA1835;CA5392;CA5350;CA2100;CA1848;CA1810;CA1513;CA5351;CA1510;CA1512;CA1823;RCS1102;RCS1194;NETSDK1206
|
||||
</NoWarn>
|
||||
<TouchSocketVersion>4.0.0-rc.49</TouchSocketVersion>
|
||||
<AdminVersion>12.2.12</AdminVersion>
|
||||
<FoundationVersion>12.2.1</FoundationVersion>
|
||||
<PluginVersion>12.2.3</PluginVersion>
|
||||
<ProPluginVersion>12.2.3</ProPluginVersion>
|
||||
<Version>12.2.9</Version>
|
||||
<AdminVersion>12.4.4</AdminVersion>
|
||||
<FoundationVersion>12.4.4</FoundationVersion>
|
||||
<PluginVersion>12.4.4</PluginVersion>
|
||||
<ProPluginVersion>12.4.4</ProPluginVersion>
|
||||
<Version>12.4.4</Version>
|
||||
|
||||
|
||||
<AuthenticationVersion>12.2.1</AuthenticationVersion>
|
||||
<AuthenticationVersion>12.4.4</AuthenticationVersion>
|
||||
|
||||
|
||||
<LangVersion>preview</LangVersion>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<Folder Name="/src/">
|
||||
<Project Path="src/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj" />
|
||||
<Project Path="src/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj" />
|
||||
<Project Path="src/ThingsGateway.Gateway.Razor.Common/ThingsGateway.Gateway.Razor.Common.csproj" />
|
||||
<Project Path="src/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj" />
|
||||
</Folder>
|
||||
<Folder Name="/Test/" />
|
||||
|
||||
50
src/ThingsGateway.Debug.Photino/SingleFilePublish.cs
Normal file
50
src/ThingsGateway.Debug.Photino/SingleFilePublish.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
// 源代码使用协议遵循本仓库的开源协议及附加协议
|
||||
// Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway
|
||||
// Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway
|
||||
// 使用文档:https://thingsgateway.cn/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Reflection;
|
||||
|
||||
namespace ThingsGateway.Server;
|
||||
|
||||
/// <summary>
|
||||
/// 解决单文件发布程序集扫描问题
|
||||
/// </summary>
|
||||
public class SingleFilePublish : ISingleFilePublish
|
||||
{
|
||||
/// <summary>
|
||||
/// 解决单文件不能扫描的程序集
|
||||
/// </summary>
|
||||
/// <remarks>和 <see cref="IncludeAssemblyNames"/> 可同时配置</remarks>
|
||||
/// <returns></returns>
|
||||
public Assembly[] IncludeAssemblies()
|
||||
{
|
||||
return Array.Empty<Assembly>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 解决单文件不能扫描的程序集名称
|
||||
/// </summary>
|
||||
/// <remarks>和 <see cref="IncludeAssemblies"/> 可同时配置</remarks>
|
||||
/// <returns></returns>
|
||||
public string[] IncludeAssemblyNames()
|
||||
{
|
||||
return
|
||||
[
|
||||
"ThingsGateway.AspNetCore",
|
||||
"ThingsGateway.Foundation.Common",
|
||||
"ThingsGateway.Common",
|
||||
"ThingsGateway.Razor",
|
||||
"ThingsGateway.Debug.ProRazor",
|
||||
"ThingsGateway.Debug.Razor",
|
||||
|
||||
"ThingsGateway.Foundation" ,
|
||||
"ThingsGateway.Foundation.Razor",
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -36,18 +36,21 @@
|
||||
<EmbeddedResource Include="README.md" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' ">
|
||||
<PackageReference Include="ThingsGateway.Photino.Blazor" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Debug.Razor" Version="$(PluginVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Debug.ProRazor" Version="$(ProPluginVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' ">
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Photino.Blazor\ThingsGateway.Photino.Blazor.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Debug.Razor\ThingsGateway.Debug.Razor.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Debug.ProRazor\ThingsGateway.Debug.ProRazor.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<FrameworkReference Include="Microsoft.AspNetCore.App" />
|
||||
<PackageReference Include="BootstrapBlazor.CherryMarkdown" Version="10.0.0" />
|
||||
<PackageReference Include="ThingsGateway.Photino.Blazor" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Debug.Razor" Version="$(PluginVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Foundation.Modbus" Version="$(FoundationVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Foundation.Dlt645" Version="$(FoundationVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Foundation.OpcDa" Version="$(FoundationVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Foundation.OpcUa" Version="$(FoundationVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Foundation.SiemensS7" Version="$(FoundationVersion)" />
|
||||
<ProjectReference Include="..\ThingsGateway.Foundation.Razor\ThingsGateway.Foundation.Razor.csproj" />
|
||||
<PackageReference Include="ThingsGateway.Debug.ProRazor" Version="$(ProPluginVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
|
||||
|
||||
@@ -6,11 +6,21 @@
|
||||
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' ">
|
||||
<PackageReference Include="BlazorSetParametersAsyncGenerator" Version="$(AdminVersion)" PrivateAssets="all" OutputItemType="Analyzer" />
|
||||
<PackageReference Include="ThingsGateway.Razor" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Foundation" Version="$(FoundationVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' ">
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Foundation\src\ThingsGateway.Foundation\ThingsGateway.Foundation.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Razor\ThingsGateway.Razor.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\BlazorSetParametersAsyncGenerator\BlazorSetParametersAsyncGenerator.csproj" PrivateAssets="all" OutputItemType="Analyzer" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Remove="Locales\*.json" />
|
||||
<EmbeddedResource Include="Locales\*.json">
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
<PackageReference Include="Rougamo.Fody" Version="5.0.2" />
|
||||
<PackageReference Include="TouchSocket.Dmtp" Version="$(TouchSocketVersion)" />
|
||||
<PackageReference Include="TouchSocket.WebApi" Version="$(TouchSocketVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Authentication" Version="$(AuthenticationVersion)" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
@@ -54,15 +53,27 @@
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<ItemGroup Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' ">
|
||||
<PackageReference Include="ThingsGateway.Authentication" Version="$(AuthenticationVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Admin.Application" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Blazor.Diagrams.Core" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="ThingsGateway.CSScript" Version="$(FoundationVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Foundation" Version="$(FoundationVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' ">
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Management\src\ThingsGateway.Authentication\ThingsGateway.Authentication.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Foundation\src\ThingsGateway.Foundation\ThingsGateway.Foundation.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Foundation\src\ThingsGateway.CSScript\ThingsGateway.CSScript.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Admin.Application\ThingsGateway.Admin.Application.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Blazor.Diagrams.Core\ThingsGateway.Blazor.Diagrams.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
||||
<ItemGroup Condition="'$(TargetFramework)'=='net8.0'">
|
||||
<PackageReference Include="System.Linq.Async" Version="6.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
</Project>
|
||||
|
||||
42
src/ThingsGateway.Gateway.Razor.Common/GlobalUsings.cs
Normal file
42
src/ThingsGateway.Gateway.Razor.Common/GlobalUsings.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||||
// 源代码使用协议遵循本仓库的开源协议及附加协议
|
||||
// Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway
|
||||
// Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway
|
||||
// 使用文档:https://thingsgateway.cn/
|
||||
// QQ群:605534569
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
global using BootstrapBlazor.Components;
|
||||
|
||||
global using Microsoft.AspNetCore.Components;
|
||||
global using Microsoft.Extensions.Localization;
|
||||
|
||||
global using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
global using ThingsGateway.Common;
|
||||
global using ThingsGateway.Foundation;
|
||||
global using ThingsGateway.Foundation.Common;
|
||||
global using ThingsGateway.Foundation.Common.Extension;
|
||||
global using ThingsGateway.Gateway.Application;
|
||||
global using ThingsGateway.Razor;
|
||||
|
||||
#if !Management
|
||||
global using ChannelRuntime = ThingsGateway.Gateway.Application.ChannelRuntime;
|
||||
global using DeviceRuntime = ThingsGateway.Gateway.Application.DeviceRuntime;
|
||||
global using VariableRuntime = ThingsGateway.Gateway.Application.VariableRuntime;
|
||||
global using IVariablePageService = ThingsGateway.Gateway.Application.IVariablePageService;
|
||||
global using IDevicePageService = ThingsGateway.Gateway.Application.IDevicePageService;
|
||||
#else
|
||||
global using ChannelRuntime = ThingsGateway.Management.Application.ChannelRuntime;
|
||||
global using DeviceRuntime = ThingsGateway.Management.Application.DeviceRuntime;
|
||||
global using VariableRuntime = ThingsGateway.Management.Application.VariableRuntime;
|
||||
global using IVariablePageService = ThingsGateway.Management.Application.IVariablePageService;
|
||||
global using IDevicePageService = ThingsGateway.Management.Application.IDevicePageService;
|
||||
global using IChannelPageService = ThingsGateway.Management.Application.IChannelPageService;
|
||||
#endif
|
||||
|
||||
[assembly: SuppressMessage("Reliability", "CA2007", Justification = "<挂起>", Scope = "module")]
|
||||
|
||||
[assembly: GlobalGenerateSetParametersAsync(true)]
|
||||
@@ -24,8 +24,8 @@
|
||||
<BootstrapLabel Value=@PropertyComponentLocalizer["BigTextScriptDeviceModel"] ShowLabelTooltip="true" />
|
||||
<CodeEditor ShowLineNo @bind-Value=@businessProperty.BigTextScriptDeviceModel Language="csharp" Theme="vs-dark" IsReadonly=@(!CanWrite) />
|
||||
<div class="ms-2 d-flex justify-content-center align-items-center">
|
||||
<Button IsDisabled=@(!CanWrite) OnClick=@(() => CheckScript(businessProperty, nameof(businessProperty.BigTextScriptDeviceModel), Localizer["check"], this, DialogService))>
|
||||
@Localizer["Check"]
|
||||
<Button IsDisabled=@(!CanWrite) OnClick=@(() => CheckScript(businessProperty, nameof(businessProperty.BigTextScriptDeviceModel), "check", this, DialogService))>
|
||||
"Check"
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -34,8 +34,8 @@
|
||||
<CodeEditor IsReadonly=@(!CanWrite) ShowLineNo @bind-Value=@businessProperty.BigTextScriptVariableModel Language="csharp" Theme="vs-dark" />
|
||||
|
||||
<div class="ms-2 d-flex justify-content-center align-items-center">
|
||||
<Button IsDisabled=@(!CanWrite) OnClick=@(() => CheckScript(businessProperty, nameof(businessProperty.BigTextScriptVariableModel), Localizer["check"], this, DialogService))>
|
||||
@Localizer["Check"]
|
||||
<Button IsDisabled=@(!CanWrite) OnClick=@(() => CheckScript(businessProperty, nameof(businessProperty.BigTextScriptVariableModel),"check", this, DialogService))>
|
||||
"Check"
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -44,8 +44,8 @@
|
||||
<CodeEditor IsReadonly=@(!CanWrite) ShowLineNo @bind-Value=@businessProperty.BigTextScriptAlarmModel Language="csharp" Theme="vs-dark" />
|
||||
|
||||
<div class="ms-2 d-flex justify-content-center align-items-center">
|
||||
<Button IsDisabled=@(!CanWrite) OnClick=@(() => CheckScript(businessProperty, nameof(businessProperty.BigTextScriptAlarmModel), Localizer["check"], this, DialogService))>
|
||||
@Localizer["Check"]
|
||||
<Button IsDisabled=@(!CanWrite) OnClick=@(() => CheckScript(businessProperty, nameof(businessProperty.BigTextScriptAlarmModel), "check", this, DialogService))>
|
||||
"Check"
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
@@ -36,9 +36,6 @@ public partial class PropertyComponent : IPropertyUIBase
|
||||
return base.OnParametersSetAsync();
|
||||
}
|
||||
|
||||
[Inject]
|
||||
private IStringLocalizer<DeviceEditComponent> Localizer { get; set; }
|
||||
|
||||
public static async Task CheckScript(BusinessPropertyWithCacheIntervalScript businessProperty, string pname, string title, object receiver, DialogService dialogService)
|
||||
{
|
||||
string script = null;
|
||||
@@ -6,13 +6,13 @@
|
||||
<div class="row me-4 scriptcheck">
|
||||
<div class="col-12 col-md-8">
|
||||
|
||||
<BootstrapLabel Value=@Localizer["Script"] ShowLabelTooltip="true" />
|
||||
<BootstrapLabel Value="Script" ShowLabelTooltip="true" />
|
||||
<CodeEditor ShowLineNo Value=@Script ValueChanged=@Change Language="csharp" Theme="vs-dark" />
|
||||
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
|
||||
<BootstrapLabel Value=@Localizer["Tip"] ShowLabelTooltip="true" />
|
||||
<BootstrapLabel Value="Tip" ShowLabelTooltip="true" />
|
||||
<Alert Icon="fa-solid fa-circle-check" Color="Color.Success">@(new MarkupString("注意 <code>raw</code> 参数 为 <code>object</code> 类型,需要转换为实际类型操作"))</Alert>
|
||||
<Alert Icon="fa-solid fa-circle-check" Color="Color.Success">@(new MarkupString("获取设备类实体,可用 <code>GlobalData.ReadOnlyDevices</code> 字典对象,键为设备名称,值为设备对象"))</Alert>
|
||||
<Alert Icon="fa-solid fa-circle-check" Color="Color.Success">@(new MarkupString("获取变量类实体,可用方法 <code>GlobalData.GetVariable(\"设备名称1\",\"变量名称1\")</code> "))</Alert>
|
||||
@@ -22,18 +22,18 @@
|
||||
|
||||
</div>
|
||||
<div class="col-6 col-md-6">
|
||||
<BootstrapLabel Value=@Localizer["Input"] ShowLabelTooltip="true" />
|
||||
<BootstrapLabel Value="Input" ShowLabelTooltip="true" />
|
||||
<CodeEditor ShowLineNo @bind-Value=@Input Language="csharp" Theme="vs-dark" />
|
||||
|
||||
</div>
|
||||
<div class="col-6 col-md-6">
|
||||
<BootstrapLabel Value=@Localizer["Output"] ShowLabelTooltip="true" />
|
||||
<BootstrapLabel Value="Output" ShowLabelTooltip="true" />
|
||||
<CodeEditor ShowLineNo @bind-Value=@Output Language="csharp" Theme="vs-dark" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-start">
|
||||
<Button IsAsync OnClick="CheckScript" class=" mt-3">
|
||||
@Localizer["Check"]
|
||||
"Check"
|
||||
</Button>
|
||||
</div>
|
||||
@@ -44,8 +44,6 @@ public partial class ScriptCheck
|
||||
Output = ex.ToString();
|
||||
}
|
||||
}
|
||||
[Inject]
|
||||
private IStringLocalizer<DeviceEditComponent> Localizer { get; set; }
|
||||
|
||||
private async Task GetDemo(Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
|
||||
{
|
||||
@@ -0,0 +1,36 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||
<Import Project="..\..\PackNuget.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net8.0;$(OtherTargetFrameworks);</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ThingsGateway.Foundation.Razor\ThingsGateway.Foundation.Razor.csproj" />
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj" />
|
||||
<PackageReference Include="Riok.Mapperly" Version="4.3.0" ExcludeAssets="runtime" PrivateAssets="all">
|
||||
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' ">
|
||||
<PackageReference Include="ThingsGateway.Blazor.Diagrams" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Admin.Razor" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="BlazorSetParametersAsyncGenerator" Version="$(AdminVersion)" PrivateAssets="all" OutputItemType="Analyzer" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' ">
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Admin.Razor\ThingsGateway.Admin.Razor.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Blazor.Diagrams\ThingsGateway.Blazor.Diagrams.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\BlazorSetParametersAsyncGenerator\BlazorSetParametersAsyncGenerator.csproj" PrivateAssets="all" OutputItemType="Analyzer" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</Project>
|
||||
|
||||
|
||||
27
src/ThingsGateway.Gateway.Razor.Common/_Imports.razor
Normal file
27
src/ThingsGateway.Gateway.Razor.Common/_Imports.razor
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
@using System.Net.Http
|
||||
@using System.Net.Http.Json
|
||||
@using Microsoft.AspNetCore.Components.Forms
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
||||
@using Microsoft.JSInterop
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@using Microsoft.AspNetCore.Components.Authorization
|
||||
@using Microsoft.Extensions.Localization
|
||||
|
||||
@using System.ComponentModel
|
||||
@using System.ComponentModel.DataAnnotations
|
||||
|
||||
@using BootstrapBlazor.Components
|
||||
|
||||
|
||||
@using ThingsGateway.Razor;
|
||||
|
||||
|
||||
@using ChannelRuntime = ThingsGateway.Gateway.Application.ChannelRuntime;
|
||||
@using DeviceRuntime = ThingsGateway.Gateway.Application.DeviceRuntime;
|
||||
@using VariableRuntime = ThingsGateway.Gateway.Application.VariableRuntime;
|
||||
@using IVariablePageService = ThingsGateway.Gateway.Application.IVariablePageService;
|
||||
@using IDevicePageService = ThingsGateway.Gateway.Application.IDevicePageService;
|
||||
@using IChannelPageService = ThingsGateway.Gateway.Application.IChannelPageService;
|
||||
@@ -5,13 +5,12 @@
|
||||
<TargetFrameworks>net8.0;$(OtherTargetFrameworks);</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ThingsGateway.Blazor.Diagrams" Version="$(AdminVersion)" />
|
||||
<ProjectReference Include="..\ThingsGateway.Foundation.Razor\ThingsGateway.Foundation.Razor.csproj" />
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj" />
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Razor.Common\ThingsGateway.Gateway.Razor.Common.csproj" />
|
||||
<PackageReference Include="Riok.Mapperly" Version="4.3.0" ExcludeAssets="runtime" PrivateAssets="all">
|
||||
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="ThingsGateway.Admin.Razor" Version="$(AdminVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -26,8 +25,19 @@
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' ">
|
||||
<PackageReference Include="ThingsGateway.Blazor.Diagrams" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="ThingsGateway.Admin.Razor" Version="$(AdminVersion)" />
|
||||
<PackageReference Include="BlazorSetParametersAsyncGenerator" Version="$(AdminVersion)" PrivateAssets="all" OutputItemType="Analyzer" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' ">
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Admin.Razor\ThingsGateway.Admin.Razor.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Blazor.Diagrams\ThingsGateway.Blazor.Diagrams.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\BlazorSetParametersAsyncGenerator\BlazorSetParametersAsyncGenerator.csproj" PrivateAssets="all" OutputItemType="Analyzer" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
||||
@@ -134,6 +134,6 @@ internal sealed class Program
|
||||
return false;
|
||||
};
|
||||
hybridApp.Run();
|
||||
Thread.Sleep(2000);
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,28 +7,31 @@
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebView" Version="$(NET10Version)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ItemGroup Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' ">
|
||||
<PackageReference Include="ThingsGateway.Photino.Blazor" Version="$(AdminVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' ">
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Admin\src\ThingsGateway.Photino.Blazor\ThingsGateway.Photino.Blazor.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' != 'ThingsGatewayRelease'">
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Razor\ThingsGateway.Gateway.Razor.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<!--发布版-->
|
||||
<Import Project="..\ThingsGateway.Server\targets\Gateway.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayRelease' " />
|
||||
<Import Project="..\ThingsGateway.Server\targets\Admin.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayRelease' " />
|
||||
|
||||
<Import Project="..\ThingsGateway.Server\targets\PluginContext.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayPro' AND '$(Configuration)' != 'Debug' " />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载-->
|
||||
<Import Project="..\ThingsGateway.Server\targets\PluginContext.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayPro'" />
|
||||
|
||||
<Import Project="..\ThingsGateway.Server\targets\PluginContext.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' " />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载,Pro插件-->
|
||||
<Import Project="..\ThingsGateway.Server\targets\Pro2.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayPro' OR '$(Configuration)' != 'Debug'" />
|
||||
<Import Project="..\ThingsGateway.Server\targets\Pro2.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' " />
|
||||
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载-->
|
||||
<Import Project="..\ThingsGateway.Server\targets\PluginDebug.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' " />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载,Pro插件-->
|
||||
<Import Project="..\ThingsGateway.Server\targets\ProPluginDebug.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' " />
|
||||
|
||||
<!--打包复制-->
|
||||
<Import Project="..\ThingsGateway.Server\targets\PluginPublish.targets" />
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj" />
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Razor\ThingsGateway.Gateway.Razor.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="targets\PluginContext.targets" />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载,Pro插件--><!--
|
||||
<Import Project="targets\Pro2.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayPro'" />
|
||||
|
||||
<Import Project="targets\Pro7.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayPro'" />-->
|
||||
<!--nuget包解压复制文件,上下文动态加载-->
|
||||
<Import Project="targets\PluginContext.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' " />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载,Pro插件-->
|
||||
<Import Project="targets\Pro2.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' " />
|
||||
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载-->
|
||||
<Import Project="targets\PluginDebug.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' " />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载,Pro插件-->
|
||||
<Import Project="targets\ProPluginDebug.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' " />
|
||||
|
||||
<PropertyGroup>
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<Project>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Modbus\ThingsGateway.Plugin.Modbus.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Dlt645\ThingsGateway.Plugin.Dlt645.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.SiemensS7\ThingsGateway.Plugin.SiemensS7.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.DB\ThingsGateway.Plugin.DB.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Kafka\ThingsGateway.Plugin.Kafka.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Mqtt\ThingsGateway.Plugin.Mqtt.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.OpcDa\ThingsGateway.Plugin.OpcDa.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.OpcUa\ThingsGateway.Plugin.OpcUa.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.RabbitMQ\ThingsGateway.Plugin.RabbitMQ.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Http\ThingsGateway.Plugin.Http.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Modbus\ThingsGateway.Plugin.Modbus.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Dlt645\ThingsGateway.Plugin.Dlt645.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.SiemensS7\ThingsGateway.Plugin.SiemensS7.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.DB\ThingsGateway.Plugin.DB.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Kafka\ThingsGateway.Plugin.Kafka.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Mqtt\ThingsGateway.Plugin.Mqtt.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.OpcDa\ThingsGateway.Plugin.OpcDa.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.OpcUa\ThingsGateway.Plugin.OpcUa.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.RabbitMQ\ThingsGateway.Plugin.RabbitMQ.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Http\ThingsGateway.Plugin.Http.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<!--URF_R330 插件-->
|
||||
<!--<PackageReference Include="ThingsGateway.Plugin.URF_R330" Version="$(ProPluginVersion)" GeneratePathProperty="true" Private="false" IncludeAssets="all;" />-->
|
||||
<!--USBScaner 插件-->
|
||||
<PackageReference Include="ThingsGateway.Plugin.USBScaner" Version="$(ProPluginVersion)" GeneratePathProperty="true" Private="false" IncludeAssets="all;" />
|
||||
<!--<PackageReference Include="ThingsGateway.Plugin.USBScaner" Version="$(ProPluginVersion)" GeneratePathProperty="true" Private="false" IncludeAssets="all;" />-->
|
||||
|
||||
|
||||
<PackageReference Include="ThingsGateway.Plugin.SECS" Version="$(ProPluginVersion)" GeneratePathProperty="true" Private="false" IncludeAssets="all;" />
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
<Project>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.SyncBridge\ThingsGateway.Plugin.SyncBridge.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.SyncBridge\ThingsGateway.Plugin.SyncBridge.csproj" />
|
||||
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.AllenBradleyCip\ThingsGateway.Plugin.AllenBradleyCip.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.BACnet\ThingsGateway.Plugin.BACnet.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.DCON\ThingsGateway.Plugin.DCON.csproj" />
|
||||
<!--<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.DKQ_A16D\ThingsGateway.Plugin.DKQ_A16D.csproj" />-->
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.EDPF_NT\ThingsGateway.Plugin.EDPF_NT.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.HJ212\ThingsGateway.Plugin.HJ212.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.HUANANSFSK\ThingsGateway.Plugin.HUANANSFSK.csproj" />
|
||||
<!--<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.IDR210\ThingsGateway.Plugin.IDR210.csproj" />-->
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.KELID2008\ThingsGateway.Plugin.KELID2008.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.LEIDIAN\ThingsGateway.Plugin.LEIDIANAPI.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.LKSIS\ThingsGateway.Plugin.LKSIS.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.Melsec\ThingsGateway.Plugin.Melsec.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.ModbusC1\ThingsGateway.Plugin.ModbusC1.csproj" />
|
||||
<!--<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.MqttSZJYZ\ThingsGateway.Plugin.MqttSZJYZ.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.MqttYINGKE\ThingsGateway.Plugin.MqttYINGKE.csproj" />-->
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.Omron\ThingsGateway.Plugin.Omron.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.SECS\ThingsGateway.Plugin.SECS.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.TS550\ThingsGateway.Plugin.TS550.csproj" />
|
||||
<!--<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.URF_R330\ThingsGateway.Plugin.URF_R330.csproj" />-->
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.USBScaner\ThingsGateway.Plugin.USBScaner.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.Vigor\ThingsGateway.Plugin.Vigor.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.YPSFSK\ThingsGateway.Plugin.YPSFSK.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.AllenBradleyCip\ThingsGateway.Plugin.AllenBradleyCip.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.BACnet\ThingsGateway.Plugin.BACnet.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.DCON\ThingsGateway.Plugin.DCON.csproj" />
|
||||
<!--<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.DKQ_A16D\ThingsGateway.Plugin.DKQ_A16D.csproj" />-->
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.EDPF_NT\ThingsGateway.Plugin.EDPF_NT.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.HJ212\ThingsGateway.Plugin.HJ212.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.HUANANSFSK\ThingsGateway.Plugin.HUANANSFSK.csproj" />
|
||||
<!--<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.IDR210\ThingsGateway.Plugin.IDR210.csproj" />-->
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.KELID2008\ThingsGateway.Plugin.KELID2008.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.LEIDIAN\ThingsGateway.Plugin.LEIDIANAPI.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.LKSIS\ThingsGateway.Plugin.LKSIS.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.Melsec\ThingsGateway.Plugin.Melsec.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.ModbusC1\ThingsGateway.Plugin.ModbusC1.csproj" />
|
||||
<!--<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.MqttSZJYZ\ThingsGateway.Plugin.MqttSZJYZ.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.MqttYINGKE\ThingsGateway.Plugin.MqttYINGKE.csproj" />-->
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.Omron\ThingsGateway.Plugin.Omron.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.SECS\ThingsGateway.Plugin.SECS.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.TS550\ThingsGateway.Plugin.TS550.csproj" />
|
||||
<!--<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.URF_R330\ThingsGateway.Plugin.URF_R330.csproj" />-->
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.USBScaner\ThingsGateway.Plugin.USBScaner.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.Vigor\ThingsGateway.Plugin.Vigor.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.YPSFSK\ThingsGateway.Plugin.YPSFSK.csproj" />
|
||||
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.TIANXIN\ThingsGateway.Plugin.TIANXIN.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.Inovance\ThingsGateway.Plugin.Inovance.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.TIANXIN\ThingsGateway.Plugin.TIANXIN.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.Inovance\ThingsGateway.Plugin.Inovance.csproj" />
|
||||
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.ModbusGY\ThingsGateway.Plugin.ModbusGY.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.IXCom29s\ThingsGateway.Plugin.IXCom29s.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.OpcAe\ThingsGateway.Plugin.OpcAe.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Foundation.OpcAe\ThingsGateway.Foundation.OpcAe.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.ModbusGY\ThingsGateway.Plugin.ModbusGY.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.IXCom29s\ThingsGateway.Plugin.IXCom29s.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.OpcAe\ThingsGateway.Plugin.OpcAe.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Foundation.OpcAe\ThingsGateway.Foundation.OpcAe.csproj" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
docker pull mcr.microsoft.com/dotnet/aspnet:8.0-noble
|
||||
docker pull mcr.microsoft.com/dotnet/aspnet:10.0-noble-amd64
|
||||
|
||||
docker build -t registry.cn-shenzhen.aliyuncs.com/thingsgateway/thingsgateway:latest .
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
docker pull mcr.microsoft.com/dotnet/aspnet:8.0-noble-arm64v8
|
||||
docker pull mcr.microsoft.com/dotnet/aspnet:10.0-noble-arm64v8
|
||||
|
||||
docker build -f Dockerfile_arm64 -t registry.cn-shenzhen.aliyuncs.com/thingsgateway/thingsgateway_arm64:latest .
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
#拉取:docker pull registry.cn-shenzhen.aliyuncs.com/thingsgateway/thingsgateway
|
||||
#推送:docker push registry.cn-shenzhen.aliyuncs.com/thingsgateway/thingsgateway
|
||||
|
||||
#aspnetcore8.0环境
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble AS base
|
||||
#aspnetcore10.0环境
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble-amd64 AS base
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
#默认web
|
||||
@@ -13,10 +13,9 @@ EXPOSE 5000
|
||||
|
||||
# 添加时区环境变量,亚洲,上海
|
||||
ENV TimeZone=Asia/Shanghai
|
||||
ENV TZ=Asia/Shanghai
|
||||
# 转发头
|
||||
ENV ASPNETCORE_FORWARDEDHEADERS_ENABLED=true
|
||||
# 使用软连接,并且将时区配置覆盖/etc/timezone
|
||||
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
|
||||
|
||||
ENTRYPOINT ["dotnet", "ThingsGateway.Server.dll","--urls","http://*:5000"]
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
#拉取:docker pull registry.cn-shenzhen.aliyuncs.com/thingsgateway/thingsgateway_arm64
|
||||
#推送:docker push registry.cn-shenzhen.aliyuncs.com/thingsgateway/thingsgateway_arm64
|
||||
|
||||
#aspnetcore8.0环境
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble-arm64v8 AS base
|
||||
#aspnetcore10.0环境
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble-arm64v8 AS base
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
#默认web
|
||||
@@ -13,9 +13,8 @@ EXPOSE 5000
|
||||
|
||||
# 添加时区环境变量,亚洲,上海
|
||||
ENV TimeZone=Asia/Shanghai
|
||||
ENV TZ=Asia/Shanghai
|
||||
# 转发头
|
||||
ENV ASPNETCORE_FORWARDEDHEADERS_ENABLED=true
|
||||
# 使用软连接,并且将时区配置覆盖/etc/timezone
|
||||
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
|
||||
|
||||
ENTRYPOINT ["dotnet", "ThingsGateway.Server.dll","--urls","http://*:5000"]
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
|
||||
<ItemGroup Condition=" '$(SolutionName)' != 'ThingsGatewayRelease'">
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ThingsGateway.Gateway.Razor\ThingsGateway.Gateway.Razor.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<!--发布版-->
|
||||
<Import Project="targets\Gateway.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayRelease' " />
|
||||
<Import Project="targets\Admin.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayRelease' " />
|
||||
|
||||
<Import Project="targets\PluginContext.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayPro' AND '$(Configuration)' != 'Debug' " />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载-->
|
||||
<Import Project="targets\PluginContext.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayPro'" />
|
||||
<Import Project="targets\PluginContext.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' " />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载,Pro插件-->
|
||||
<Import Project="targets\Pro2.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayPro'" />
|
||||
<Import Project="targets\Pro2.targets" Condition=" '$(SolutionName)' != 'ThingsGatewayAll' OR '$(Configuration)' == 'Release' " />
|
||||
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载-->
|
||||
<Import Project="targets\PluginDebug.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' " />
|
||||
|
||||
<!--nuget包解压复制文件,上下文动态加载,Pro插件-->
|
||||
<Import Project="targets\ProPluginDebug.targets" Condition=" '$(SolutionName)' == 'ThingsGatewayAll' AND '$(Configuration)' != 'Release' " />
|
||||
|
||||
<!--打包复制-->
|
||||
<Import Project="targets\PluginPublish.targets" />
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<Project>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Modbus\ThingsGateway.Plugin.Modbus.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Dlt645\ThingsGateway.Plugin.Dlt645.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.SiemensS7\ThingsGateway.Plugin.SiemensS7.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.DB\ThingsGateway.Plugin.DB.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Kafka\ThingsGateway.Plugin.Kafka.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Mqtt\ThingsGateway.Plugin.Mqtt.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.OpcDa\ThingsGateway.Plugin.OpcDa.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.OpcUa\ThingsGateway.Plugin.OpcUa.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.RabbitMQ\ThingsGateway.Plugin.RabbitMQ.csproj" />
|
||||
<ProjectReference Include="..\Plugin\ThingsGateway.Plugin.Http\ThingsGateway.Plugin.Http.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Modbus\ThingsGateway.Plugin.Modbus.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Dlt645\ThingsGateway.Plugin.Dlt645.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.SiemensS7\ThingsGateway.Plugin.SiemensS7.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.DB\ThingsGateway.Plugin.DB.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Kafka\ThingsGateway.Plugin.Kafka.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Mqtt\ThingsGateway.Plugin.Mqtt.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.OpcDa\ThingsGateway.Plugin.OpcDa.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.OpcUa\ThingsGateway.Plugin.OpcUa.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.RabbitMQ\ThingsGateway.Plugin.RabbitMQ.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.Plugin\src\ThingsGateway.Plugin.Http\ThingsGateway.Plugin.Http.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<!--URF_R330 插件-->
|
||||
<!--<PackageReference Include="ThingsGateway.Plugin.URF_R330" Version="$(ProPluginVersion)" GeneratePathProperty="true" Private="false" IncludeAssets=" native;" />-->
|
||||
<!--USBScaner 插件-->
|
||||
<PackageReference Include="ThingsGateway.Plugin.USBScaner" Version="$(ProPluginVersion)" GeneratePathProperty="true" Private="false" IncludeAssets=" native;" />
|
||||
<!--<PackageReference Include="ThingsGateway.Plugin.USBScaner" Version="$(ProPluginVersion)" GeneratePathProperty="true" Private="false" IncludeAssets=" native;" />-->
|
||||
|
||||
|
||||
<PackageReference Include="ThingsGateway.Plugin.SECS" Version="$(ProPluginVersion)" GeneratePathProperty="true" Private="false" IncludeAssets=" native;" />
|
||||
|
||||
@@ -1,39 +1,38 @@
|
||||
<Project>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.SyncBridge\ThingsGateway.Plugin.SyncBridge.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.SyncBridge\ThingsGateway.Plugin.SyncBridge.csproj" />
|
||||
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.AllenBradleyCip\ThingsGateway.Plugin.AllenBradleyCip.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.BACnet\ThingsGateway.Plugin.BACnet.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.DCON\ThingsGateway.Plugin.DCON.csproj" />
|
||||
<!--<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.DKQ_A16D\ThingsGateway.Plugin.DKQ_A16D.csproj" />-->
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.EDPF_NT\ThingsGateway.Plugin.EDPF_NT.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.HJ212\ThingsGateway.Plugin.HJ212.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.HUANANSFSK\ThingsGateway.Plugin.HUANANSFSK.csproj" />
|
||||
<!--<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.IDR210\ThingsGateway.Plugin.IDR210.csproj" />-->
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.KELID2008\ThingsGateway.Plugin.KELID2008.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.LEIDIAN\ThingsGateway.Plugin.LEIDIANAPI.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.LKSIS\ThingsGateway.Plugin.LKSIS.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.Melsec\ThingsGateway.Plugin.Melsec.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.ModbusC1\ThingsGateway.Plugin.ModbusC1.csproj" />
|
||||
<!--<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.MqttSZJYZ\ThingsGateway.Plugin.MqttSZJYZ.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.MqttYINGKE\ThingsGateway.Plugin.MqttYINGKE.csproj" />-->
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.Omron\ThingsGateway.Plugin.Omron.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.SECS\ThingsGateway.Plugin.SECS.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.TS550\ThingsGateway.Plugin.TS550.csproj" />
|
||||
<!--<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.URF_R330\ThingsGateway.Plugin.URF_R330.csproj" />-->
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.USBScaner\ThingsGateway.Plugin.USBScaner.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.Vigor\ThingsGateway.Plugin.Vigor.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.YPSFSK\ThingsGateway.Plugin.YPSFSK.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.AllenBradleyCip\ThingsGateway.Plugin.AllenBradleyCip.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.BACnet\ThingsGateway.Plugin.BACnet.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.DCON\ThingsGateway.Plugin.DCON.csproj" />
|
||||
<!--<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.DKQ_A16D\ThingsGateway.Plugin.DKQ_A16D.csproj" />-->
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.EDPF_NT\ThingsGateway.Plugin.EDPF_NT.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.HJ212\ThingsGateway.Plugin.HJ212.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.HUANANSFSK\ThingsGateway.Plugin.HUANANSFSK.csproj" />
|
||||
<!--<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.IDR210\ThingsGateway.Plugin.IDR210.csproj" />-->
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.KELID2008\ThingsGateway.Plugin.KELID2008.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.LEIDIAN\ThingsGateway.Plugin.LEIDIANAPI.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.LKSIS\ThingsGateway.Plugin.LKSIS.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.Melsec\ThingsGateway.Plugin.Melsec.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.ModbusC1\ThingsGateway.Plugin.ModbusC1.csproj" />
|
||||
<!--<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.MqttSZJYZ\ThingsGateway.Plugin.MqttSZJYZ.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.MqttYINGKE\ThingsGateway.Plugin.MqttYINGKE.csproj" />-->
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.Omron\ThingsGateway.Plugin.Omron.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.SECS\ThingsGateway.Plugin.SECS.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.TS550\ThingsGateway.Plugin.TS550.csproj" />
|
||||
<!--<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.URF_R330\ThingsGateway.Plugin.URF_R330.csproj" />-->
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.USBScaner\ThingsGateway.Plugin.USBScaner.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.Vigor\ThingsGateway.Plugin.Vigor.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.YPSFSK\ThingsGateway.Plugin.YPSFSK.csproj" />
|
||||
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.TIANXIN\ThingsGateway.Plugin.TIANXIN.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.Inovance\ThingsGateway.Plugin.Inovance.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.TIANXIN\ThingsGateway.Plugin.TIANXIN.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.Inovance\ThingsGateway.Plugin.Inovance.csproj" />
|
||||
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.ModbusGY\ThingsGateway.Plugin.ModbusGY.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.IXCom29s\ThingsGateway.Plugin.IXCom29s.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Plugin.OpcAe\ThingsGateway.Plugin.OpcAe.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Foundation.OpcAe\ThingsGateway.Foundation.OpcAe.csproj" />
|
||||
<ProjectReference Include="..\PluginPro\ThingsGateway.Gateway.VariableCore\ThingsGateway.Gateway.VariableCore.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.ModbusGY\ThingsGateway.Plugin.ModbusGY.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.IXCom29s\ThingsGateway.Plugin.IXCom29s.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Plugin.OpcAe\ThingsGateway.Plugin.OpcAe.csproj" />
|
||||
<ProjectReference Include="..\..\..\ThingsGateway.ProPlugin\src\ThingsGateway.Foundation.OpcAe\ThingsGateway.Foundation.OpcAe.csproj" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
302
wiki.json
Normal file
302
wiki.json
Normal file
@@ -0,0 +1,302 @@
|
||||
{
|
||||
"repo_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
],
|
||||
"pages": [
|
||||
{
|
||||
"title": "Overview",
|
||||
"purpose": "Introduce ThingsGateway, explaining what it is, its core purpose as an industrial IoT gateway, and the high-level architecture",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Key Features",
|
||||
"purpose": "List and describe the main features including multi-protocol support, plugin architecture, data persistence options, and deployment models",
|
||||
"parent": "Overview",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "System Requirements and Dependencies",
|
||||
"purpose": "Document the .NET versions, target frameworks, required NuGet packages, and system requirements",
|
||||
"parent": "Overview",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Getting Started",
|
||||
"purpose": "Provide quick-start guide for installing and running ThingsGateway",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Installation and Deployment",
|
||||
"purpose": "Explain deployment options including Docker (x64/ARM64), web server, desktop application, and configuration basics",
|
||||
"parent": "Getting Started",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Initial Configuration",
|
||||
"purpose": "Guide users through initial setup including appsettings.json, environment variables, logging configuration, and first channel/device setup",
|
||||
"parent": "Getting Started",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Architecture Overview",
|
||||
"purpose": "Explain the overall system architecture including layered design, separation of concerns, and component relationships",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Layered Architecture",
|
||||
"purpose": "Describe the Foundation, Gateway Application, and UI/Admin layers and their responsibilities",
|
||||
"parent": "Architecture Overview",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Plugin System Architecture",
|
||||
"purpose": "Explain the plugin architecture including Foundation vs Plugin layer separation, dynamic loading with AssemblyLoadContext, and plugin types",
|
||||
"parent": "Architecture Overview",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Build System and Conditional Compilation",
|
||||
"purpose": "Document the MSBuild-based build system including Directory.Build.props, conditional plugin loading, multi-targeting, and NuGet package generation",
|
||||
"parent": "Architecture Overview",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Foundation Layer",
|
||||
"purpose": "Document the core foundation libraries that provide protocol implementations and communication primitives",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Device Communication",
|
||||
"purpose": "Explain DeviceBase abstraction, IDevice interface, protocol implementations, read/write operations, and data parsing",
|
||||
"parent": "Foundation Layer",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Channel Architecture",
|
||||
"purpose": "Document IChannel interface, channel implementations (TCP/UDP/Serial), channel options, and connection lifecycle",
|
||||
"parent": "Foundation Layer",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Data Handling and Transformation",
|
||||
"purpose": "Describe DataHandlingAdapter, message parsing, ThingsGatewayBitConverter for endianness/format conversion, and WaitHandlePool for request-response correlation",
|
||||
"parent": "Foundation Layer",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Core Utilities",
|
||||
"purpose": "Document TimerX scheduling, ExpiringDictionary caching, WaitLock concurrency primitives, and Reflect utilities",
|
||||
"parent": "Foundation Layer",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Gateway Application",
|
||||
"purpose": "Explain the main gateway application layer that orchestrates device communication and data flow",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Runtime Management System",
|
||||
"purpose": "Document the entity-to-runtime conversion, GlobalData static registry, RuntimeServiceHelper, and runtime synchronization",
|
||||
"parent": "Gateway Application",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Device Lifecycle Management",
|
||||
"purpose": "Explain DeviceThreadManage, driver initialization, StartAsync/StopAsync lifecycle, TaskSchedulerLoop, and thread management",
|
||||
"parent": "Gateway Application",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Variable Management",
|
||||
"purpose": "Document VariableRuntime, VariableSourceRead, variable packing optimization, and data collection workflow",
|
||||
"parent": "Gateway Application",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Concurrency and Read/Write Coordination",
|
||||
"purpose": "Explain AsyncReadWriteLock, reader/writer priority, duty cycle control, and concurrent operation management",
|
||||
"parent": "Gateway Application",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Event System",
|
||||
"purpose": "Document GlobalData event dispatchers, VariableValueChangeEvent, DeviceStatusChangeEvent, AlarmChangedEvent, and event flow",
|
||||
"parent": "Gateway Application",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Redundancy and Failover",
|
||||
"purpose": "Explain device redundancy system, master/slave configuration, failover triggers, and variable state transfer",
|
||||
"parent": "Gateway Application",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Plugin Development",
|
||||
"purpose": "Guide for developing custom plugins for data collection and business logic integration",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Collection Plugins (CollectBase)",
|
||||
"purpose": "Document how to create data collection plugins including protocol implementation, variable loading, and scheduled tasks",
|
||||
"parent": "Plugin Development",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Business Plugins (BusinessBase)",
|
||||
"purpose": "Explain business plugin development for data persistence, distribution, and serving protocols",
|
||||
"parent": "Plugin Development",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Plugin Service and Dynamic Loading",
|
||||
"purpose": "Document PluginService, AssemblyLoadContext usage, plugin discovery, driver instantiation, and property configuration",
|
||||
"parent": "Plugin Development",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Plugin Packaging and Distribution",
|
||||
"purpose": "Explain how to package plugins as NuGet packages, versioning, and deployment via Directory.build.targets",
|
||||
"parent": "Plugin Development",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Built-in Protocols",
|
||||
"purpose": "Document the built-in protocol implementations including Modbus, Siemens S7, OPC UA, OPC DA, and Dlt645",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Modbus Protocol",
|
||||
"purpose": "Document Modbus Master/Slave implementations, RTU/TCP/UDP support, function codes, and address parsing",
|
||||
"parent": "Built-in Protocols",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Siemens S7 Protocol",
|
||||
"purpose": "Explain S7 Master implementation, PLC types, area addressing, and data block access",
|
||||
"parent": "Built-in Protocols",
|
||||
"page_notes": [
|
||||
{
|
||||
"content": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user