From 62f32467b7d621993c4828750130c7301f2832cd Mon Sep 17 00:00:00 2001 From: Diego <2248356998@qq.com> Date: Thu, 19 Dec 2024 11:15:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E6=96=87=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore => Gateway/.gitignore | 0 LICENSE => Gateway/LICENSE | 0 README.md => Gateway/README.md | 0 README.zh-CN.md => Gateway/README.zh-CN.md | 0 icon.ico => Gateway/icon.ico | Bin icon.png => Gateway/icon.png | Bin {src => Gateway/src}/.editorconfig | 0 {src => Gateway/src}/Directory.Build.props | 0 {src => Gateway/src}/Foundation.props | 0 .../CSharpScriptEngineExtension.cs | 0 .../ExpressionEvaluatorExtension.cs | 0 .../ThingsGateway.CSScript.csproj | 0 .../DebugPages/AdapterDebugBase.cs | 0 .../DebugPages/AdapterDebugComponent.razor | 0 .../DebugPages/AdapterDebugComponent.razor.cs | 0 .../DebugPages/ChannelDataDebugComponent.razor | 0 .../DebugPages/ChannelDataDebugComponent.razor.cs | 0 .../DebugPages/LogConsole.razor | 0 .../DebugPages/LogConsole.razor.cs | 0 .../Locales/en-US.json | 0 .../Locales/zh-CN.json | 0 .../Locales/zh-TW.json | 0 .../Services/HybridPlatformService.cs | 0 .../Services/IPlatformService.cs | 0 .../Services/PlatformService.cs | 0 .../ThingsGateway.Foundation.Razor/Startup.cs | 0 .../ThingsGateway.Foundation.Razor.csproj | 0 .../ThingsGateway.Foundation.Razor/_Imports.razor | 0 .../_Imports.razor.cs | 0 .../GlobalUsings.cs | 0 .../SourceGenerator/Utils.cs | 0 .../SourceGenerator/VariableCodeBuilder.cs | 0 .../VariableObjectSourceGenerator.cs | 0 .../SourceGenerator/VariableSyntaxReceiver.cs | 0 .../ThingsGateway.Foundation.SourceGenerator.csproj | 0 .../tools/install.ps1 | 0 .../tools/uninstall.ps1 | 0 .../GlobalUsings.cs | 0 .../ThingsGateway.Foundation.Variable.csproj | 0 .../VariableObject.cs | 0 .../VariableObjectHelper.cs | 0 .../VariableRuntimeAttribute.cs | 0 .../VariableRuntimeProperty.cs | 0 .../ThingsGateway.Foundation/Channel/ChannelData.cs | 0 .../Channel/Extension/ChannelConfigExtensions.cs | 0 .../Channel/IAdapterObject.cs | 0 .../ThingsGateway.Foundation/Channel/IChannel.cs | 0 .../Channel/IClientChannel.cs | 0 .../Channel/Plugin/DtuPlugin.cs | 0 .../Channel/Plugin/HeartbeatAndReceivePlugin.cs | 0 .../ThingsGateway.Foundation/Channel/Plugin/IDtu.cs | 0 .../Channel/Plugin/IDtuClient.cs | 0 .../Channel/Plugin/ITcpService.cs | 0 .../Channel/Plugin/PluginUtil.cs | 0 .../Channel/SerialPortChannel.cs | 0 .../Channel/TcpClientChannel.cs | 0 .../Channel/TcpServiceChannel.cs | 0 .../Channel/TcpSessionClientChannel.cs | 0 .../Channel/UdpSessionChannel.cs | 0 .../Common/IncrementCount.cs | 0 .../ThingsGateway.Foundation/Common/TimeTick.cs | 0 .../ThingsGateway.Foundation/Common/WaitLock.cs | 0 .../JsonStringToClassSerializerFormatter.cs | 0 .../Converter/StringConverter.cs | 0 .../Converter/StringToEncodingConverter.cs | 0 .../Converter/ThingsGatewayStringConverter.cs | 0 .../DataHandleAdapter/IResultMessage.cs | 0 .../DataHandleAdapter/ISendMessage.cs | 0 .../DataHandleAdapter/MessageBase.cs | 0 .../ProtocolSingleStreamDataHandleAdapter.cs | 0 .../ProtocolUdpDataHandleAdapter.cs | 0 .../ThingsGateway.Foundation/Enums/BcdFormatEnum.cs | 0 .../ThingsGateway.Foundation/Enums/ChannelEnum.cs | 0 .../Enums/DataFormatEnum.cs | 0 .../ThingsGateway.Foundation/Enums/DataTypeEnum.cs | 0 .../Extensions/BoolExtensions.cs | 0 .../Extensions/ByteExtensions.cs | 0 .../Extensions/DataTypeExtensions.cs | 0 .../Extensions/DateTimeExtensions.cs | 0 .../Extensions/ExceptionExtensions.cs | 0 .../Extensions/ExpandoObjectExtensions.cs | 0 .../Extensions/GenericExtensions.cs | 0 .../Extensions/LoggerExtensions.cs | 0 .../Extensions/StringExtensions.cs | 0 .../Extensions/TypeExtensions.cs | 0 .../ThingsGateway.Foundation/GlobalUsings.cs | 0 .../Locales/DefaultResource.cs | 0 .../ThingsGateway.Foundation/Locales/en-US.json | 0 .../ThingsGateway.Foundation/Locales/zh-CN.json | 0 .../ThingsGateway.Foundation/Locales/zh-TW.json | 0 .../Localization/JsonLocalizer.cs | 0 .../Logger/TextFileLogger.cs | 0 .../Logger/TextFileReader.cs | 0 .../OperResult/ErrorCodeEnum.cs | 0 .../OperResult/IOperResult.cs | 0 .../OperResult/OperResult.cs | 0 .../OperResult/OperResultExtension.cs | 0 .../OperResult/OperResultUtil.cs | 0 .../OperResult/ReturnErrorException.cs | 0 .../ThingsGateway.Foundation/Protocol/IProtocol.cs | 0 .../Protocol/ProtocolBase.cs | 0 .../Protocol/ProtocolBaseExtension.cs | 0 .../Protocol/ProtocolWaitDataStatusExtension.cs | 0 .../Protocol/StructContentPraseExtensions.cs | 0 .../ThingsGateway.Foundation.csproj | 0 .../Trans/EncodingConverter.cs | 0 .../Trans/IThingsGatewayBitConverter.cs | 0 .../Trans/ThingsGatewayBitConverter.cs | 0 .../Trans/ThingsGatewayBitConverterExtension.cs | 0 .../ThingsGateway.Foundation/Utils/CRC16Utils.cs | 0 .../ThingsGateway.Foundation/Utils/DataTransUtil.cs | 0 .../ThingsGateway.Foundation/Utils/JTokenUtil.cs | 0 .../ThingsGateway.Foundation/Utils/LocalizerUtil.cs | 0 .../ThingsGateway.Foundation/Variable/IVariable.cs | 0 .../Variable/IVariableSource.cs | 0 .../Variable/VariableClass.cs | 0 .../Variable/VariableSourceClass.cs | 0 {src => Gateway/src}/FoundationVersion.props | 0 .../Attributes/DynamicMethodAttribute.cs | 0 .../Attributes/DynamicPropertyAttribute.cs | 0 .../Attributes/EducationPluginAttribute.cs | 0 .../Attributes/OnlyWindowsSupportAttribute.cs | 0 .../Common/DoTask.cs | 0 .../Common/EncodingMapper.cs | 0 .../Const/ExportString.cs | 0 .../Const/ThingsGatewayCacheConst.cs | 0 .../Controller/ConfigInfoController.cs | 0 .../Controller/ControlController.cs | 0 .../Controller/GatewayExportController.cs | 0 .../Controller/RuntimeInfoController.cs | 0 .../Entity/BackendLog.cs | 0 .../Entity/Channel.cs | 0 .../Entity/Device.cs | 0 .../Entity/RpcLog.cs | 0 .../Entity/Variable.cs | 0 .../Enums/AlarmTypeEnum.cs | 0 .../Enums/DeviceStatusEnum.cs | 0 .../Enums/EventTypeEnum.cs | 0 .../Enums/PluginTypeEnum.cs | 0 .../Enums/ProtectTypeEnum.cs | 0 .../Enums/RedundantTypeEnum.cs | 0 .../Enums/ThreadRunReturnTypeEnum.cs | 0 .../Extensions/LogExtensions.cs | 0 .../Extensions/ResourceExtensions.cs | 0 .../ServiceCollectionHostedServiceExtensions.cs | 0 .../FodyWeavers.xml | 0 .../GlobalData/GlobalData.cs | 0 .../GlobalUsings.cs | 0 .../HostService/AlarmHostedService.cs | 0 .../Device/BusinessDeviceHostedService.cs | 0 .../Device/CollectDeviceHostedService.cs | 0 .../HostService/Device/DeviceHostedService.cs | 0 .../Device/IBusinessDeviceHostedService.cs | 0 .../Device/ICollectDeviceHostedService.cs | 0 .../HostService/Device/IDeviceHostedService.cs | 0 .../HostService/IAlarmHostedService.cs | 0 .../Job/LogJob/LogJob.cs | 0 .../Locales/en-US.json | 0 .../Locales/zh-CN.json | 0 .../Locales/zh-TW.json | 0 .../Logging/BackendLogDatabaseLoggingWriter.cs | 0 .../Model/AlarmVariable.cs | 0 .../Model/CollectDeviceRunTime.cs | 0 .../Model/DeviceData.cs | 0 .../Model/DeviceRunTime.cs | 0 .../Model/DriverMethodInfo.cs | 0 .../Model/VariableData.cs | 0 .../Model/VariableMethod.cs | 0 .../Model/VariableRunTime.cs | 0 .../Model/VariableSourceRead.cs | 0 .../Plugin/Business/BusinessBase.cs | 0 .../Plugin/Business/BusinessPropertyBase.cs | 0 .../Cache/BusinessBaseWithCacheAlarmModel.cs | 0 .../Cache/BusinessBaseWithCacheDeviceModel.cs | 0 .../Cache/BusinessBaseWithCacheVariableModel.cs | 0 .../Business/Cache/BusinessPropertyWithCache.cs | 0 .../BusinessBaseWithCacheIntervalAlarmModel.cs | 0 .../BusinessBaseWithCacheIntervalDeviceModel.cs | 0 .../Interval/BusinessBaseWithCacheIntervalScript.cs | 0 .../BusinessBaseWithCacheIntervalVariableModel.cs | 0 .../Interval/BusinessPropertyWithCacheInterval.cs | 0 .../BusinessPropertyWithCacheIntervalDBScript.cs | 0 .../BusinessPropertyWithCacheIntervalScript.cs | 0 .../Plugin/Business/Cache/TopicArray.cs | 0 .../Plugin/Business/Cache/TopicJson.cs | 0 .../Plugin/Business/DB/BusinessDatabaseUtil.cs | 0 .../Plugin/Business/DB/DBHistoryAlarmPageInput.cs | 0 .../Plugin/Business/DB/DBHistoryValuePageInput.cs | 0 .../Plugin/Business/DB/IDBHistoryAlarm.cs | 0 .../Plugin/Business/DB/IDBHistoryAlarmService.cs | 0 .../Plugin/Business/DB/IDBHistoryValue.cs | 0 .../Plugin/Business/DB/IDBHistoryValueService.cs | 0 .../Plugin/Business/IDriverUIBase.cs | 0 .../Plugin/Business/VariablePropertyBase.cs | 0 .../Plugin/CacheDB/CacheDB.cs | 0 .../Plugin/CacheDB/CacheDBItem.cs | 0 .../Plugin/CacheDB/CacheDBOption.cs | 0 .../Plugin/CacheDB/CacheDBUtil.cs | 0 .../Plugin/ChannelThread.cs | 0 .../Plugin/Collect/CollectBase.cs | 0 .../Plugin/Collect/CollectPropertyBase.cs | 0 .../Plugin/DriverBase.cs | 0 .../Plugin/DriverBaseExtension.cs | 0 .../Plugin/DriverPropertyBase.cs | 0 .../Plugin/DynamicModelExtension.cs | 0 .../SeedData/Gateway/seed_gateway_resource.json | 0 .../Gateway/seed_gateway_resourcebutton.json | 0 .../SeedData/SysResourceSeedData.cs | 0 .../Services/Channel/ChannelService.cs | 0 .../Services/Channel/IChannelService.cs | 0 .../Services/Device/DeviceService.cs | 0 .../Services/Device/Dto/DeviceInput.cs | 0 .../Services/Device/IDeviceService.cs | 0 .../Services/GatewayExport/GatewayExportService.cs | 0 .../Services/GatewayExport/IGatewayExportService.cs | 0 .../Services/GatewayLogs/BackendLogService.cs | 0 .../Services/GatewayLogs/Dto/LogInput.cs | 0 .../Services/GatewayLogs/Dto/LogOutput.cs | 0 .../Services/GatewayLogs/IBackendLogService.cs | 0 .../Services/GatewayLogs/IRpcLogService.cs | 0 .../Services/GatewayLogs/RpcLogService.cs | 0 .../Services/Plugin/Dto/InternalTableColumn.cs | 0 .../Services/Plugin/Dto/PluginInput.cs | 0 .../Services/Plugin/Dto/PluginOutput.cs | 0 .../Services/Plugin/IPluginService.cs | 0 .../Services/Plugin/PluginService.cs | 0 .../Services/Plugin/PluginServiceUtil.cs | 0 .../Services/Rpc/IRpcService.cs | 0 .../Services/Rpc/RpcService.cs | 0 .../Services/Variable/Dto/VariableInput.cs | 0 .../Services/Variable/IVariableService.cs | 0 .../Services/Variable/VariableService.cs | 0 .../ThingsGateway.Gateway.Application/Startup.cs | 0 .../ThingsGateway.Gateway.Application.csproj | 0 .../Components/QuickActions.razor | 0 .../Components/QuickActions.razor.cs | 0 .../Components/QuickActions.razor.css | 0 .../Components/QuickActions.razor.js | 0 .../Components/ThingsGatewayModuleComponentBase.cs | 0 .../ThingsGateway.Gateway.Razor/Locales/en-US.json | 0 .../ThingsGateway.Gateway.Razor/Locales/zh-CN.json | 0 .../ThingsGateway.Gateway.Razor/Locales/zh-TW.json | 0 .../Pages/Config/Channel/ChannelEditComponent.razor | 0 .../Config/Channel/ChannelEditComponent.razor.cs | 0 .../Config/Channel/ChannelEditComponent.razor.css | 0 .../Pages/Config/Channel/ChannelPage.razor | 0 .../Pages/Config/Channel/ChannelPage.razor.cs | 0 .../Pages/Config/Device/BusinessDevicePage.cs | 0 ...sinessPropertyWithCacheIntervalScriptRazor.razor | 0 ...essPropertyWithCacheIntervalScriptRazor.razor.cs | 0 .../Pages/Config/Device/CollectDevicePage.cs | 0 .../Pages/Config/Device/DeviceEditComponent.razor | 0 .../Config/Device/DeviceEditComponent.razor.cs | 0 .../Config/Device/DeviceEditComponent.razor.css | 0 .../Pages/Config/Device/DevicePage.razor | 0 .../Pages/Config/Device/DevicePage.razor.cs | 0 .../Pages/Config/Device/ScriptCheck.razor | 0 .../Pages/Config/Device/ScriptCheck.razor.cs | 0 .../Pages/Config/DriverDebugPage.razor | 0 .../Pages/Config/DriverDebugPage.razor.cs | 0 .../Pages/Config/Plugin/PluginPage.razor | 0 .../Pages/Config/Plugin/PluginPage.razor.cs | 0 .../Pages/Config/Plugin/SavePlugin.razor | 0 .../Pages/Config/Plugin/SavePlugin.razor.cs | 0 .../Config/Variable/VariableEditComponent.razor | 0 .../Config/Variable/VariableEditComponent.razor.cs | 0 .../Config/Variable/VariableEditComponent.razor.css | 0 .../Pages/Config/Variable/VariablePage.razor | 0 .../Pages/Config/Variable/VariablePage.razor.cs | 0 .../Pages/Runtime/DeviceStatus/DeviceStatus.razor | 0 .../DeviceStatus/DeviceStatus.razor.Parameter.cs | 0 .../Runtime/DeviceStatus/DeviceStatus.razor.cs | 0 .../Runtime/DeviceStatus/DeviceStatus.razor.css | 0 .../Pages/Runtime/DeviceStatus/DeviceStatus1.razor | 0 .../Runtime/DeviceStatus/DeviceStatus1.razor.cs | 0 .../Runtime/DeviceStatus/DeviceStatus1.razor.css | 0 .../Pages/Runtime/DeviceStatus/DeviceStatus2.razor | 0 .../Runtime/DeviceStatus/DeviceStatus2.razor.cs | 0 .../Runtime/DeviceStatus/DeviceStatus2.razor.css | 0 .../Pages/Runtime/DeviceStatus/DeviceStatus3.razor | 0 .../Runtime/DeviceStatus/DeviceStatus3.razor.cs | 0 .../Runtime/DeviceStatus/DeviceStatus3.razor.css | 0 .../Runtime/DeviceStatus/DeviceStatusPage.razor | 0 .../Runtime/DeviceStatus/DeviceStatusPage.razor.cs | 0 .../Runtime/DeviceStatus/DeviceStatusPage.razor.css | 0 .../Pages/Runtime/RealAlarmPage.razor | 0 .../Pages/Runtime/RealAlarmPage.razor.cs | 0 .../Pages/Runtime/VariableRuntimePage.razor | 0 .../Pages/Runtime/VariableRuntimePage.razor.cs | 0 .../Pages/_Log/BackendLogPage.razor | 0 .../Pages/_Log/BackendLogPage.razor.cs | 0 .../Pages/_Log/RpcLogPage.razor | 0 .../Pages/_Log/RpcLogPage.razor.cs | 0 .../Gateway/ThingsGateway.Gateway.Razor/Startup.cs | 0 .../TcpServicePage/TcpServicePage.razor | 0 .../TcpServicePage/TcpServicePage.razor.cs | 0 .../ThingsGateway.Gateway.Razor.csproj | 0 .../ThingsGateway.Gateway.Razor/_Imports.razor | 0 .../ThingsGateway.Gateway.Razor/_Imports.razor.cs | 0 {src => Gateway/src}/PackNuget.props | 0 {src => Gateway/src}/PluginBase.sln | 0 .../Photino/PhotinoBlazorApp.cs | 0 .../Photino/PhotinoBlazorAppBuilder.cs | 0 .../Photino/PhotinoBlazorAppConfiguration.cs | 0 .../Photino/PhotinoDispatcher.cs | 0 .../Photino/PhotinoHttpHandler.cs | 0 .../Photino/PhotinoSyncrhronizationContext.cs | 0 .../Photino/PhotinoWebViewManager.cs | 0 .../Photino/PhotinoWindowRootComponents.cs | 0 .../Photino/ServiceCollectionExtensions.cs | 0 .../Photino/Utils/SynchronousTaskScheduler.cs | 0 .../src}/ThingsGateway.Photino/Program.cs | 0 .../src}/ThingsGateway.Photino/Routes.razor | 0 .../BlazorHybridAuthenticationStateProvider.cs | 0 .../Services/BlazorHybridAuthorizationHandler.cs | 0 .../Services/HybridAppService.cs | 0 .../Services/HybridAuthRazorService.cs | 0 .../Services/HybridGatewayExportService.cs | 0 .../src}/ThingsGateway.Photino/Startup.cs | 0 .../ThingsGateway.Photino.csproj | 0 .../src}/ThingsGateway.Photino/favicon.ico | Bin .../src}/ThingsGateway.Photino/wwwroot/index.html | 0 .../ThingsGateway.Server/.config/dotnet-tools.json | 0 .../ThingsGateway.Server/Configuration/App.json | 0 .../Configuration/BootstrapBlazor.json | 0 .../Configuration/ChannelThread.json | 0 .../Configuration/Database.Development.json | 0 .../Configuration/Database.json | 0 .../ThingsGateway.Server/Configuration/Email.json | 0 .../Configuration/HardwareInfo.json | 0 .../ThingsGateway.Server/Configuration/JWT.json | 0 .../ThingsGateway.Server/Configuration/LogJob.json | 0 .../ThingsGateway.Server/Configuration/Logging.json | 0 .../ThingsGateway.Server/Configuration/Swagger.json | 0 .../Configuration/UpgradeServer.json | 0 .../ThingsGateway.Server/Configuration/Website.json | 0 .../src}/ThingsGateway.Server/DockerPush.ps1 | 0 .../src}/ThingsGateway.Server/DockerPush_arm64.ps1 | 0 .../src}/ThingsGateway.Server/Dockerfile | 0 .../src}/ThingsGateway.Server/Dockerfile_arm64 | 0 .../ThingsGateway.Server/Index/GatewayIndex.razor | 0 .../Index/GatewayIndex.razor.cs | 0 .../Index/GatewayIndexComponent.razor | 0 .../Index/GatewayIndexComponent.razor.cs | 0 .../ThingsGateway.Server/Layout/AccessDenied.razor | 0 .../Layout/AccessDenied.razor.cs | 0 .../ThingsGateway.Server/Layout/BlazorApp.razor | 0 .../src}/ThingsGateway.Server/Layout/Login.razor | 0 .../src}/ThingsGateway.Server/Layout/Login.razor.cs | 0 .../ThingsGateway.Server/Layout/Login.razor.css | 0 .../ThingsGateway.Server/Layout/MainLayout.razor | 0 .../ThingsGateway.Server/Layout/MainLayout.razor.cs | 0 .../Layout/MainLayout.razor.css | 0 .../ThingsGateway.Server/Layout/NotFound404.razor | 0 .../Layout/NotFound404.razor.cs | 0 .../src}/ThingsGateway.Server/Layout/Routes.razor | 0 .../src}/ThingsGateway.Server/Locales/en-US.json | 0 .../src}/ThingsGateway.Server/Locales/zh-CN.json | 0 .../src}/ThingsGateway.Server/Locales/zh-TW.json | 0 .../src}/ThingsGateway.Server/Pages/_Host.cshtml | 0 .../src}/ThingsGateway.Server/Program/Program.cs | 0 .../Program/SingleFilePublish.cs | 0 .../src}/ThingsGateway.Server/Program/Startup.cs | 0 .../Program/TestCollectPlugin.cs | 0 .../Properties/launchSettings.json | 0 .../Service/SugarConfigAopService.cs | 0 .../ThingsGateway.Server.csproj | 0 .../src}/ThingsGateway.Server/WindowsService | 0 .../ThingsGateway.Server/WindowsServiceCreate.bat | 0 .../ThingsGateway.Server/WindowsServiceDelete.bat | 0 .../appsettings.Development.json | 0 .../src}/ThingsGateway.Server/appsettings.json | 0 .../src}/ThingsGateway.Server/favicon.ico | Bin {src => Gateway/src}/ThingsGateway.Server/pm2.json | 0 .../src}/ThingsGateway.Server/targets/Admin.targets | 0 .../ThingsGateway.Server/targets/Custom.targets | 0 .../targets/CustomPlugin.targets | 0 .../targets/OtherPlugin.targets | 0 .../targets/OtherPlugin1.targets | 0 .../ThingsGateway.Server/targets/Plugin.targets | 0 .../src}/ThingsGateway.Server/thingsgateway.service | 0 .../src}/ThingsGateway.Server/wwwroot/favicon.ico | Bin .../src}/ThingsGateway.Server/wwwroot/favicon.png | Bin .../src}/ThingsGateway.Server/wwwroot/manifest.json | 0 .../ThingsGateway.Server/wwwroot/service-worker.js | 0 .../wwwroot/service-worker.published.js | 0 .../src}/ThingsGateway.Winform/GlobalUsings.cs | 0 .../src}/ThingsGateway.Winform/MainForm.Designer.cs | 0 .../src}/ThingsGateway.Winform/MainForm.cs | 0 .../src}/ThingsGateway.Winform/MainForm.resx | 0 .../src}/ThingsGateway.Winform/Program.cs | 0 .../src}/ThingsGateway.Winform/Routes.razor | 0 .../ThingsGateway.Winform.csproj | 0 .../src}/ThingsGateway.Winform/favicon.ico | Bin .../src}/ThingsGateway.Winform/wwwroot/index.html | 0 {src => Gateway/src}/ThingsGateway.sln | 0 {src => Gateway/src}/Version.props | 0 397 files changed, 0 insertions(+), 0 deletions(-) rename .gitignore => Gateway/.gitignore (100%) rename LICENSE => Gateway/LICENSE (100%) rename README.md => Gateway/README.md (100%) rename README.zh-CN.md => Gateway/README.zh-CN.md (100%) rename icon.ico => Gateway/icon.ico (100%) rename icon.png => Gateway/icon.png (100%) rename {src => Gateway/src}/.editorconfig (100%) rename {src => Gateway/src}/Directory.Build.props (100%) rename {src => Gateway/src}/Foundation.props (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/Startup.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/GlobalUsings.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Locales/en-US.json (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs (100%) rename {src => Gateway/src}/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs (100%) rename {src => Gateway/src}/FoundationVersion.props (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/Startup.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/Startup.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor (100%) rename {src => Gateway/src}/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs (100%) rename {src => Gateway/src}/PackNuget.props (100%) rename {src => Gateway/src}/PluginBase.sln (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Program.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Routes.razor (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Services/HybridAppService.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Services/HybridAuthRazorService.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Services/HybridGatewayExportService.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/Startup.cs (100%) rename {src => Gateway/src}/ThingsGateway.Photino/ThingsGateway.Photino.csproj (100%) rename {src => Gateway/src}/ThingsGateway.Photino/favicon.ico (100%) rename {src => Gateway/src}/ThingsGateway.Photino/wwwroot/index.html (100%) rename {src => Gateway/src}/ThingsGateway.Server/.config/dotnet-tools.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/App.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/BootstrapBlazor.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/ChannelThread.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/Database.Development.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/Database.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/Email.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/HardwareInfo.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/JWT.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/LogJob.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/Logging.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/Swagger.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/UpgradeServer.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Configuration/Website.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/DockerPush.ps1 (100%) rename {src => Gateway/src}/ThingsGateway.Server/DockerPush_arm64.ps1 (100%) rename {src => Gateway/src}/ThingsGateway.Server/Dockerfile (100%) rename {src => Gateway/src}/ThingsGateway.Server/Dockerfile_arm64 (100%) rename {src => Gateway/src}/ThingsGateway.Server/Index/GatewayIndex.razor (100%) rename {src => Gateway/src}/ThingsGateway.Server/Index/GatewayIndex.razor.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Index/GatewayIndexComponent.razor (100%) rename {src => Gateway/src}/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/AccessDenied.razor (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/AccessDenied.razor.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/BlazorApp.razor (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/Login.razor (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/Login.razor.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/Login.razor.css (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/MainLayout.razor (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/MainLayout.razor.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/MainLayout.razor.css (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/NotFound404.razor (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/NotFound404.razor.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Layout/Routes.razor (100%) rename {src => Gateway/src}/ThingsGateway.Server/Locales/en-US.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Locales/zh-CN.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Locales/zh-TW.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Pages/_Host.cshtml (100%) rename {src => Gateway/src}/ThingsGateway.Server/Program/Program.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Program/SingleFilePublish.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Program/Startup.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Program/TestCollectPlugin.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/Properties/launchSettings.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/Service/SugarConfigAopService.cs (100%) rename {src => Gateway/src}/ThingsGateway.Server/ThingsGateway.Server.csproj (100%) rename {src => Gateway/src}/ThingsGateway.Server/WindowsService (100%) rename {src => Gateway/src}/ThingsGateway.Server/WindowsServiceCreate.bat (100%) rename {src => Gateway/src}/ThingsGateway.Server/WindowsServiceDelete.bat (100%) rename {src => Gateway/src}/ThingsGateway.Server/appsettings.Development.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/appsettings.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/favicon.ico (100%) rename {src => Gateway/src}/ThingsGateway.Server/pm2.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/targets/Admin.targets (100%) rename {src => Gateway/src}/ThingsGateway.Server/targets/Custom.targets (100%) rename {src => Gateway/src}/ThingsGateway.Server/targets/CustomPlugin.targets (100%) rename {src => Gateway/src}/ThingsGateway.Server/targets/OtherPlugin.targets (100%) rename {src => Gateway/src}/ThingsGateway.Server/targets/OtherPlugin1.targets (100%) rename {src => Gateway/src}/ThingsGateway.Server/targets/Plugin.targets (100%) rename {src => Gateway/src}/ThingsGateway.Server/thingsgateway.service (100%) rename {src => Gateway/src}/ThingsGateway.Server/wwwroot/favicon.ico (100%) rename {src => Gateway/src}/ThingsGateway.Server/wwwroot/favicon.png (100%) rename {src => Gateway/src}/ThingsGateway.Server/wwwroot/manifest.json (100%) rename {src => Gateway/src}/ThingsGateway.Server/wwwroot/service-worker.js (100%) rename {src => Gateway/src}/ThingsGateway.Server/wwwroot/service-worker.published.js (100%) rename {src => Gateway/src}/ThingsGateway.Winform/GlobalUsings.cs (100%) rename {src => Gateway/src}/ThingsGateway.Winform/MainForm.Designer.cs (100%) rename {src => Gateway/src}/ThingsGateway.Winform/MainForm.cs (100%) rename {src => Gateway/src}/ThingsGateway.Winform/MainForm.resx (100%) rename {src => Gateway/src}/ThingsGateway.Winform/Program.cs (100%) rename {src => Gateway/src}/ThingsGateway.Winform/Routes.razor (100%) rename {src => Gateway/src}/ThingsGateway.Winform/ThingsGateway.Winform.csproj (100%) rename {src => Gateway/src}/ThingsGateway.Winform/favicon.ico (100%) rename {src => Gateway/src}/ThingsGateway.Winform/wwwroot/index.html (100%) rename {src => Gateway/src}/ThingsGateway.sln (100%) rename {src => Gateway/src}/Version.props (100%) diff --git a/.gitignore b/Gateway/.gitignore similarity index 100% rename from .gitignore rename to Gateway/.gitignore diff --git a/LICENSE b/Gateway/LICENSE similarity index 100% rename from LICENSE rename to Gateway/LICENSE diff --git a/README.md b/Gateway/README.md similarity index 100% rename from README.md rename to Gateway/README.md diff --git a/README.zh-CN.md b/Gateway/README.zh-CN.md similarity index 100% rename from README.zh-CN.md rename to Gateway/README.zh-CN.md diff --git a/icon.ico b/Gateway/icon.ico similarity index 100% rename from icon.ico rename to Gateway/icon.ico diff --git a/icon.png b/Gateway/icon.png similarity index 100% rename from icon.png rename to Gateway/icon.png diff --git a/src/.editorconfig b/Gateway/src/.editorconfig similarity index 100% rename from src/.editorconfig rename to Gateway/src/.editorconfig diff --git a/src/Directory.Build.props b/Gateway/src/Directory.Build.props similarity index 100% rename from src/Directory.Build.props rename to Gateway/src/Directory.Build.props diff --git a/src/Foundation.props b/Gateway/src/Foundation.props similarity index 100% rename from src/Foundation.props rename to Gateway/src/Foundation.props diff --git a/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs b/Gateway/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs rename to Gateway/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs diff --git a/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs b/Gateway/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs rename to Gateway/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs diff --git a/src/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj b/Gateway/src/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj similarity index 100% rename from src/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj rename to Gateway/src/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Startup.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Startup.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Startup.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Startup.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/GlobalUsings.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/GlobalUsings.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/GlobalUsings.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/GlobalUsings.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json b/Gateway/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Locales/en-US.json rename to Gateway/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json b/Gateway/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json rename to Gateway/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json b/Gateway/src/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json rename to Gateway/src/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json diff --git a/src/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj b/Gateway/src/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj rename to Gateway/src/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs diff --git a/src/FoundationVersion.props b/Gateway/src/FoundationVersion.props similarity index 100% rename from src/FoundationVersion.props rename to Gateway/src/FoundationVersion.props diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml diff --git a/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Startup.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Startup.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Startup.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Startup.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Startup.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs diff --git a/src/PackNuget.props b/Gateway/src/PackNuget.props similarity index 100% rename from src/PackNuget.props rename to Gateway/src/PackNuget.props diff --git a/src/PluginBase.sln b/Gateway/src/PluginBase.sln similarity index 100% rename from src/PluginBase.sln rename to Gateway/src/PluginBase.sln diff --git a/src/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs diff --git a/src/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs b/Gateway/src/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs rename to Gateway/src/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs diff --git a/src/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs b/Gateway/src/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs rename to Gateway/src/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs diff --git a/src/ThingsGateway.Photino/Program.cs b/Gateway/src/ThingsGateway.Photino/Program.cs similarity index 100% rename from src/ThingsGateway.Photino/Program.cs rename to Gateway/src/ThingsGateway.Photino/Program.cs diff --git a/src/ThingsGateway.Photino/Routes.razor b/Gateway/src/ThingsGateway.Photino/Routes.razor similarity index 100% rename from src/ThingsGateway.Photino/Routes.razor rename to Gateway/src/ThingsGateway.Photino/Routes.razor diff --git a/src/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs b/Gateway/src/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs rename to Gateway/src/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs diff --git a/src/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs b/Gateway/src/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs rename to Gateway/src/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs diff --git a/src/ThingsGateway.Photino/Services/HybridAppService.cs b/Gateway/src/ThingsGateway.Photino/Services/HybridAppService.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/HybridAppService.cs rename to Gateway/src/ThingsGateway.Photino/Services/HybridAppService.cs diff --git a/src/ThingsGateway.Photino/Services/HybridAuthRazorService.cs b/Gateway/src/ThingsGateway.Photino/Services/HybridAuthRazorService.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/HybridAuthRazorService.cs rename to Gateway/src/ThingsGateway.Photino/Services/HybridAuthRazorService.cs diff --git a/src/ThingsGateway.Photino/Services/HybridGatewayExportService.cs b/Gateway/src/ThingsGateway.Photino/Services/HybridGatewayExportService.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/HybridGatewayExportService.cs rename to Gateway/src/ThingsGateway.Photino/Services/HybridGatewayExportService.cs diff --git a/src/ThingsGateway.Photino/Startup.cs b/Gateway/src/ThingsGateway.Photino/Startup.cs similarity index 100% rename from src/ThingsGateway.Photino/Startup.cs rename to Gateway/src/ThingsGateway.Photino/Startup.cs diff --git a/src/ThingsGateway.Photino/ThingsGateway.Photino.csproj b/Gateway/src/ThingsGateway.Photino/ThingsGateway.Photino.csproj similarity index 100% rename from src/ThingsGateway.Photino/ThingsGateway.Photino.csproj rename to Gateway/src/ThingsGateway.Photino/ThingsGateway.Photino.csproj diff --git a/src/ThingsGateway.Photino/favicon.ico b/Gateway/src/ThingsGateway.Photino/favicon.ico similarity index 100% rename from src/ThingsGateway.Photino/favicon.ico rename to Gateway/src/ThingsGateway.Photino/favicon.ico diff --git a/src/ThingsGateway.Photino/wwwroot/index.html b/Gateway/src/ThingsGateway.Photino/wwwroot/index.html similarity index 100% rename from src/ThingsGateway.Photino/wwwroot/index.html rename to Gateway/src/ThingsGateway.Photino/wwwroot/index.html diff --git a/src/ThingsGateway.Server/.config/dotnet-tools.json b/Gateway/src/ThingsGateway.Server/.config/dotnet-tools.json similarity index 100% rename from src/ThingsGateway.Server/.config/dotnet-tools.json rename to Gateway/src/ThingsGateway.Server/.config/dotnet-tools.json diff --git a/src/ThingsGateway.Server/Configuration/App.json b/Gateway/src/ThingsGateway.Server/Configuration/App.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/App.json rename to Gateway/src/ThingsGateway.Server/Configuration/App.json diff --git a/src/ThingsGateway.Server/Configuration/BootstrapBlazor.json b/Gateway/src/ThingsGateway.Server/Configuration/BootstrapBlazor.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/BootstrapBlazor.json rename to Gateway/src/ThingsGateway.Server/Configuration/BootstrapBlazor.json diff --git a/src/ThingsGateway.Server/Configuration/ChannelThread.json b/Gateway/src/ThingsGateway.Server/Configuration/ChannelThread.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/ChannelThread.json rename to Gateway/src/ThingsGateway.Server/Configuration/ChannelThread.json diff --git a/src/ThingsGateway.Server/Configuration/Database.Development.json b/Gateway/src/ThingsGateway.Server/Configuration/Database.Development.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Database.Development.json rename to Gateway/src/ThingsGateway.Server/Configuration/Database.Development.json diff --git a/src/ThingsGateway.Server/Configuration/Database.json b/Gateway/src/ThingsGateway.Server/Configuration/Database.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Database.json rename to Gateway/src/ThingsGateway.Server/Configuration/Database.json diff --git a/src/ThingsGateway.Server/Configuration/Email.json b/Gateway/src/ThingsGateway.Server/Configuration/Email.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Email.json rename to Gateway/src/ThingsGateway.Server/Configuration/Email.json diff --git a/src/ThingsGateway.Server/Configuration/HardwareInfo.json b/Gateway/src/ThingsGateway.Server/Configuration/HardwareInfo.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/HardwareInfo.json rename to Gateway/src/ThingsGateway.Server/Configuration/HardwareInfo.json diff --git a/src/ThingsGateway.Server/Configuration/JWT.json b/Gateway/src/ThingsGateway.Server/Configuration/JWT.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/JWT.json rename to Gateway/src/ThingsGateway.Server/Configuration/JWT.json diff --git a/src/ThingsGateway.Server/Configuration/LogJob.json b/Gateway/src/ThingsGateway.Server/Configuration/LogJob.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/LogJob.json rename to Gateway/src/ThingsGateway.Server/Configuration/LogJob.json diff --git a/src/ThingsGateway.Server/Configuration/Logging.json b/Gateway/src/ThingsGateway.Server/Configuration/Logging.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Logging.json rename to Gateway/src/ThingsGateway.Server/Configuration/Logging.json diff --git a/src/ThingsGateway.Server/Configuration/Swagger.json b/Gateway/src/ThingsGateway.Server/Configuration/Swagger.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Swagger.json rename to Gateway/src/ThingsGateway.Server/Configuration/Swagger.json diff --git a/src/ThingsGateway.Server/Configuration/UpgradeServer.json b/Gateway/src/ThingsGateway.Server/Configuration/UpgradeServer.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/UpgradeServer.json rename to Gateway/src/ThingsGateway.Server/Configuration/UpgradeServer.json diff --git a/src/ThingsGateway.Server/Configuration/Website.json b/Gateway/src/ThingsGateway.Server/Configuration/Website.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Website.json rename to Gateway/src/ThingsGateway.Server/Configuration/Website.json diff --git a/src/ThingsGateway.Server/DockerPush.ps1 b/Gateway/src/ThingsGateway.Server/DockerPush.ps1 similarity index 100% rename from src/ThingsGateway.Server/DockerPush.ps1 rename to Gateway/src/ThingsGateway.Server/DockerPush.ps1 diff --git a/src/ThingsGateway.Server/DockerPush_arm64.ps1 b/Gateway/src/ThingsGateway.Server/DockerPush_arm64.ps1 similarity index 100% rename from src/ThingsGateway.Server/DockerPush_arm64.ps1 rename to Gateway/src/ThingsGateway.Server/DockerPush_arm64.ps1 diff --git a/src/ThingsGateway.Server/Dockerfile b/Gateway/src/ThingsGateway.Server/Dockerfile similarity index 100% rename from src/ThingsGateway.Server/Dockerfile rename to Gateway/src/ThingsGateway.Server/Dockerfile diff --git a/src/ThingsGateway.Server/Dockerfile_arm64 b/Gateway/src/ThingsGateway.Server/Dockerfile_arm64 similarity index 100% rename from src/ThingsGateway.Server/Dockerfile_arm64 rename to Gateway/src/ThingsGateway.Server/Dockerfile_arm64 diff --git a/src/ThingsGateway.Server/Index/GatewayIndex.razor b/Gateway/src/ThingsGateway.Server/Index/GatewayIndex.razor similarity index 100% rename from src/ThingsGateway.Server/Index/GatewayIndex.razor rename to Gateway/src/ThingsGateway.Server/Index/GatewayIndex.razor diff --git a/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs b/Gateway/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Index/GatewayIndex.razor.cs rename to Gateway/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs diff --git a/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor b/Gateway/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor similarity index 100% rename from src/ThingsGateway.Server/Index/GatewayIndexComponent.razor rename to Gateway/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor diff --git a/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs b/Gateway/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs rename to Gateway/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs diff --git a/src/ThingsGateway.Server/Layout/AccessDenied.razor b/Gateway/src/ThingsGateway.Server/Layout/AccessDenied.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/AccessDenied.razor rename to Gateway/src/ThingsGateway.Server/Layout/AccessDenied.razor diff --git a/src/ThingsGateway.Server/Layout/AccessDenied.razor.cs b/Gateway/src/ThingsGateway.Server/Layout/AccessDenied.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Layout/AccessDenied.razor.cs rename to Gateway/src/ThingsGateway.Server/Layout/AccessDenied.razor.cs diff --git a/src/ThingsGateway.Server/Layout/BlazorApp.razor b/Gateway/src/ThingsGateway.Server/Layout/BlazorApp.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/BlazorApp.razor rename to Gateway/src/ThingsGateway.Server/Layout/BlazorApp.razor diff --git a/src/ThingsGateway.Server/Layout/Login.razor b/Gateway/src/ThingsGateway.Server/Layout/Login.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/Login.razor rename to Gateway/src/ThingsGateway.Server/Layout/Login.razor diff --git a/src/ThingsGateway.Server/Layout/Login.razor.cs b/Gateway/src/ThingsGateway.Server/Layout/Login.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Layout/Login.razor.cs rename to Gateway/src/ThingsGateway.Server/Layout/Login.razor.cs diff --git a/src/ThingsGateway.Server/Layout/Login.razor.css b/Gateway/src/ThingsGateway.Server/Layout/Login.razor.css similarity index 100% rename from src/ThingsGateway.Server/Layout/Login.razor.css rename to Gateway/src/ThingsGateway.Server/Layout/Login.razor.css diff --git a/src/ThingsGateway.Server/Layout/MainLayout.razor b/Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/MainLayout.razor rename to Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor diff --git a/src/ThingsGateway.Server/Layout/MainLayout.razor.cs b/Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Layout/MainLayout.razor.cs rename to Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor.cs diff --git a/src/ThingsGateway.Server/Layout/MainLayout.razor.css b/Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor.css similarity index 100% rename from src/ThingsGateway.Server/Layout/MainLayout.razor.css rename to Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor.css diff --git a/src/ThingsGateway.Server/Layout/NotFound404.razor b/Gateway/src/ThingsGateway.Server/Layout/NotFound404.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/NotFound404.razor rename to Gateway/src/ThingsGateway.Server/Layout/NotFound404.razor diff --git a/src/ThingsGateway.Server/Layout/NotFound404.razor.cs b/Gateway/src/ThingsGateway.Server/Layout/NotFound404.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Layout/NotFound404.razor.cs rename to Gateway/src/ThingsGateway.Server/Layout/NotFound404.razor.cs diff --git a/src/ThingsGateway.Server/Layout/Routes.razor b/Gateway/src/ThingsGateway.Server/Layout/Routes.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/Routes.razor rename to Gateway/src/ThingsGateway.Server/Layout/Routes.razor diff --git a/src/ThingsGateway.Server/Locales/en-US.json b/Gateway/src/ThingsGateway.Server/Locales/en-US.json similarity index 100% rename from src/ThingsGateway.Server/Locales/en-US.json rename to Gateway/src/ThingsGateway.Server/Locales/en-US.json diff --git a/src/ThingsGateway.Server/Locales/zh-CN.json b/Gateway/src/ThingsGateway.Server/Locales/zh-CN.json similarity index 100% rename from src/ThingsGateway.Server/Locales/zh-CN.json rename to Gateway/src/ThingsGateway.Server/Locales/zh-CN.json diff --git a/src/ThingsGateway.Server/Locales/zh-TW.json b/Gateway/src/ThingsGateway.Server/Locales/zh-TW.json similarity index 100% rename from src/ThingsGateway.Server/Locales/zh-TW.json rename to Gateway/src/ThingsGateway.Server/Locales/zh-TW.json diff --git a/src/ThingsGateway.Server/Pages/_Host.cshtml b/Gateway/src/ThingsGateway.Server/Pages/_Host.cshtml similarity index 100% rename from src/ThingsGateway.Server/Pages/_Host.cshtml rename to Gateway/src/ThingsGateway.Server/Pages/_Host.cshtml diff --git a/src/ThingsGateway.Server/Program/Program.cs b/Gateway/src/ThingsGateway.Server/Program/Program.cs similarity index 100% rename from src/ThingsGateway.Server/Program/Program.cs rename to Gateway/src/ThingsGateway.Server/Program/Program.cs diff --git a/src/ThingsGateway.Server/Program/SingleFilePublish.cs b/Gateway/src/ThingsGateway.Server/Program/SingleFilePublish.cs similarity index 100% rename from src/ThingsGateway.Server/Program/SingleFilePublish.cs rename to Gateway/src/ThingsGateway.Server/Program/SingleFilePublish.cs diff --git a/src/ThingsGateway.Server/Program/Startup.cs b/Gateway/src/ThingsGateway.Server/Program/Startup.cs similarity index 100% rename from src/ThingsGateway.Server/Program/Startup.cs rename to Gateway/src/ThingsGateway.Server/Program/Startup.cs diff --git a/src/ThingsGateway.Server/Program/TestCollectPlugin.cs b/Gateway/src/ThingsGateway.Server/Program/TestCollectPlugin.cs similarity index 100% rename from src/ThingsGateway.Server/Program/TestCollectPlugin.cs rename to Gateway/src/ThingsGateway.Server/Program/TestCollectPlugin.cs diff --git a/src/ThingsGateway.Server/Properties/launchSettings.json b/Gateway/src/ThingsGateway.Server/Properties/launchSettings.json similarity index 100% rename from src/ThingsGateway.Server/Properties/launchSettings.json rename to Gateway/src/ThingsGateway.Server/Properties/launchSettings.json diff --git a/src/ThingsGateway.Server/Service/SugarConfigAopService.cs b/Gateway/src/ThingsGateway.Server/Service/SugarConfigAopService.cs similarity index 100% rename from src/ThingsGateway.Server/Service/SugarConfigAopService.cs rename to Gateway/src/ThingsGateway.Server/Service/SugarConfigAopService.cs diff --git a/src/ThingsGateway.Server/ThingsGateway.Server.csproj b/Gateway/src/ThingsGateway.Server/ThingsGateway.Server.csproj similarity index 100% rename from src/ThingsGateway.Server/ThingsGateway.Server.csproj rename to Gateway/src/ThingsGateway.Server/ThingsGateway.Server.csproj diff --git a/src/ThingsGateway.Server/WindowsService b/Gateway/src/ThingsGateway.Server/WindowsService similarity index 100% rename from src/ThingsGateway.Server/WindowsService rename to Gateway/src/ThingsGateway.Server/WindowsService diff --git a/src/ThingsGateway.Server/WindowsServiceCreate.bat b/Gateway/src/ThingsGateway.Server/WindowsServiceCreate.bat similarity index 100% rename from src/ThingsGateway.Server/WindowsServiceCreate.bat rename to Gateway/src/ThingsGateway.Server/WindowsServiceCreate.bat diff --git a/src/ThingsGateway.Server/WindowsServiceDelete.bat b/Gateway/src/ThingsGateway.Server/WindowsServiceDelete.bat similarity index 100% rename from src/ThingsGateway.Server/WindowsServiceDelete.bat rename to Gateway/src/ThingsGateway.Server/WindowsServiceDelete.bat diff --git a/src/ThingsGateway.Server/appsettings.Development.json b/Gateway/src/ThingsGateway.Server/appsettings.Development.json similarity index 100% rename from src/ThingsGateway.Server/appsettings.Development.json rename to Gateway/src/ThingsGateway.Server/appsettings.Development.json diff --git a/src/ThingsGateway.Server/appsettings.json b/Gateway/src/ThingsGateway.Server/appsettings.json similarity index 100% rename from src/ThingsGateway.Server/appsettings.json rename to Gateway/src/ThingsGateway.Server/appsettings.json diff --git a/src/ThingsGateway.Server/favicon.ico b/Gateway/src/ThingsGateway.Server/favicon.ico similarity index 100% rename from src/ThingsGateway.Server/favicon.ico rename to Gateway/src/ThingsGateway.Server/favicon.ico diff --git a/src/ThingsGateway.Server/pm2.json b/Gateway/src/ThingsGateway.Server/pm2.json similarity index 100% rename from src/ThingsGateway.Server/pm2.json rename to Gateway/src/ThingsGateway.Server/pm2.json diff --git a/src/ThingsGateway.Server/targets/Admin.targets b/Gateway/src/ThingsGateway.Server/targets/Admin.targets similarity index 100% rename from src/ThingsGateway.Server/targets/Admin.targets rename to Gateway/src/ThingsGateway.Server/targets/Admin.targets diff --git a/src/ThingsGateway.Server/targets/Custom.targets b/Gateway/src/ThingsGateway.Server/targets/Custom.targets similarity index 100% rename from src/ThingsGateway.Server/targets/Custom.targets rename to Gateway/src/ThingsGateway.Server/targets/Custom.targets diff --git a/src/ThingsGateway.Server/targets/CustomPlugin.targets b/Gateway/src/ThingsGateway.Server/targets/CustomPlugin.targets similarity index 100% rename from src/ThingsGateway.Server/targets/CustomPlugin.targets rename to Gateway/src/ThingsGateway.Server/targets/CustomPlugin.targets diff --git a/src/ThingsGateway.Server/targets/OtherPlugin.targets b/Gateway/src/ThingsGateway.Server/targets/OtherPlugin.targets similarity index 100% rename from src/ThingsGateway.Server/targets/OtherPlugin.targets rename to Gateway/src/ThingsGateway.Server/targets/OtherPlugin.targets diff --git a/src/ThingsGateway.Server/targets/OtherPlugin1.targets b/Gateway/src/ThingsGateway.Server/targets/OtherPlugin1.targets similarity index 100% rename from src/ThingsGateway.Server/targets/OtherPlugin1.targets rename to Gateway/src/ThingsGateway.Server/targets/OtherPlugin1.targets diff --git a/src/ThingsGateway.Server/targets/Plugin.targets b/Gateway/src/ThingsGateway.Server/targets/Plugin.targets similarity index 100% rename from src/ThingsGateway.Server/targets/Plugin.targets rename to Gateway/src/ThingsGateway.Server/targets/Plugin.targets diff --git a/src/ThingsGateway.Server/thingsgateway.service b/Gateway/src/ThingsGateway.Server/thingsgateway.service similarity index 100% rename from src/ThingsGateway.Server/thingsgateway.service rename to Gateway/src/ThingsGateway.Server/thingsgateway.service diff --git a/src/ThingsGateway.Server/wwwroot/favicon.ico b/Gateway/src/ThingsGateway.Server/wwwroot/favicon.ico similarity index 100% rename from src/ThingsGateway.Server/wwwroot/favicon.ico rename to Gateway/src/ThingsGateway.Server/wwwroot/favicon.ico diff --git a/src/ThingsGateway.Server/wwwroot/favicon.png b/Gateway/src/ThingsGateway.Server/wwwroot/favicon.png similarity index 100% rename from src/ThingsGateway.Server/wwwroot/favicon.png rename to Gateway/src/ThingsGateway.Server/wwwroot/favicon.png diff --git a/src/ThingsGateway.Server/wwwroot/manifest.json b/Gateway/src/ThingsGateway.Server/wwwroot/manifest.json similarity index 100% rename from src/ThingsGateway.Server/wwwroot/manifest.json rename to Gateway/src/ThingsGateway.Server/wwwroot/manifest.json diff --git a/src/ThingsGateway.Server/wwwroot/service-worker.js b/Gateway/src/ThingsGateway.Server/wwwroot/service-worker.js similarity index 100% rename from src/ThingsGateway.Server/wwwroot/service-worker.js rename to Gateway/src/ThingsGateway.Server/wwwroot/service-worker.js diff --git a/src/ThingsGateway.Server/wwwroot/service-worker.published.js b/Gateway/src/ThingsGateway.Server/wwwroot/service-worker.published.js similarity index 100% rename from src/ThingsGateway.Server/wwwroot/service-worker.published.js rename to Gateway/src/ThingsGateway.Server/wwwroot/service-worker.published.js diff --git a/src/ThingsGateway.Winform/GlobalUsings.cs b/Gateway/src/ThingsGateway.Winform/GlobalUsings.cs similarity index 100% rename from src/ThingsGateway.Winform/GlobalUsings.cs rename to Gateway/src/ThingsGateway.Winform/GlobalUsings.cs diff --git a/src/ThingsGateway.Winform/MainForm.Designer.cs b/Gateway/src/ThingsGateway.Winform/MainForm.Designer.cs similarity index 100% rename from src/ThingsGateway.Winform/MainForm.Designer.cs rename to Gateway/src/ThingsGateway.Winform/MainForm.Designer.cs diff --git a/src/ThingsGateway.Winform/MainForm.cs b/Gateway/src/ThingsGateway.Winform/MainForm.cs similarity index 100% rename from src/ThingsGateway.Winform/MainForm.cs rename to Gateway/src/ThingsGateway.Winform/MainForm.cs diff --git a/src/ThingsGateway.Winform/MainForm.resx b/Gateway/src/ThingsGateway.Winform/MainForm.resx similarity index 100% rename from src/ThingsGateway.Winform/MainForm.resx rename to Gateway/src/ThingsGateway.Winform/MainForm.resx diff --git a/src/ThingsGateway.Winform/Program.cs b/Gateway/src/ThingsGateway.Winform/Program.cs similarity index 100% rename from src/ThingsGateway.Winform/Program.cs rename to Gateway/src/ThingsGateway.Winform/Program.cs diff --git a/src/ThingsGateway.Winform/Routes.razor b/Gateway/src/ThingsGateway.Winform/Routes.razor similarity index 100% rename from src/ThingsGateway.Winform/Routes.razor rename to Gateway/src/ThingsGateway.Winform/Routes.razor diff --git a/src/ThingsGateway.Winform/ThingsGateway.Winform.csproj b/Gateway/src/ThingsGateway.Winform/ThingsGateway.Winform.csproj similarity index 100% rename from src/ThingsGateway.Winform/ThingsGateway.Winform.csproj rename to Gateway/src/ThingsGateway.Winform/ThingsGateway.Winform.csproj diff --git a/src/ThingsGateway.Winform/favicon.ico b/Gateway/src/ThingsGateway.Winform/favicon.ico similarity index 100% rename from src/ThingsGateway.Winform/favicon.ico rename to Gateway/src/ThingsGateway.Winform/favicon.ico diff --git a/src/ThingsGateway.Winform/wwwroot/index.html b/Gateway/src/ThingsGateway.Winform/wwwroot/index.html similarity index 100% rename from src/ThingsGateway.Winform/wwwroot/index.html rename to Gateway/src/ThingsGateway.Winform/wwwroot/index.html diff --git a/src/ThingsGateway.sln b/Gateway/src/ThingsGateway.sln similarity index 100% rename from src/ThingsGateway.sln rename to Gateway/src/ThingsGateway.sln diff --git a/src/Version.props b/Gateway/src/Version.props similarity index 100% rename from src/Version.props rename to Gateway/src/Version.props