Compare commits

..

28 Commits

Author SHA1 Message Date
Kimdiego2098
24bc60abf0 fix:signalR razor dispose接口 2023-10-09 18:11:23 +08:00
Kimdiego2098
31eee6b009 update uaparser 2023-10-09 10:56:22 +08:00
Kimdiego2098
c5da565a8f 添加MqttRpcDemo 2023-10-07 12:04:17 +08:00
Kimdiego2098
947cd712e1 添加清理日志任务配置参数 2023-10-06 18:28:06 +08:00
Kimdiego2098
edc208f96b update 3.0.0.2 2023-10-05 15:32:50 +08:00
Diego2098
1fb0296ee7 update Directory.Build.props 2023-10-05 15:21:51 +08:00
Kimdiego2098
6488d3df87 修复重启共享通道中的单个设备时,导致通道内其他设备变量异常 2023-10-05 00:34:12 +08:00
Kimdiego2098
56189d78e0 update opcuaclient 2023-10-04 17:12:47 +08:00
Kimdiego2098
bff18127b8 update opcuaclient 2023-10-04 16:59:15 +08:00
Kimdiego2098
363206e0ba update nuget 2023-10-04 02:04:09 +08:00
Kimdiego2098
fd3e378501 update 3.0.0.1 2023-10-04 01:42:27 +08:00
Kimdiego2098
4ba2fe4c9d 实时报警列表线程同步 2023-10-04 01:27:03 +08:00
Kimdiego2098
2c499626ad modbusRtu 适配器 过滤干扰头部数据 2023-10-04 01:26:44 +08:00
Kimdiego2098
2b581a03c3 更新种子数据 2023-10-04 01:24:34 +08:00
Kimdiego2098
450c15210a update windowsService bat 2023-10-03 19:11:42 +08:00
Kimdiego2098
65fed8cc93 update demo 2023-10-03 18:54:01 +08:00
Kimdiego2098
4b64771ea2 rpc调用提示优化 2023-10-03 18:20:39 +08:00
Kimdiego2098
f39977a6ff fix:rpc 特殊方法分类错误 2023-10-03 17:05:49 +08:00
Kimdiego2098
933b535caa update demo 2023-10-02 22:37:50 +08:00
Kimdiego2098
8abc5d2f20 update driverDebugPage 2023-10-02 18:34:55 +08:00
Kimdiego2098
d8783cd994 update opcuaClient 2023-10-02 18:30:58 +08:00
Diego2098
d5d087feb5 add s7 wstring addressSign 2023-10-01 16:54:42 +08:00
Diego2098
6ba3399df7 add s7 wstring addressSign 2023-10-01 16:49:07 +08:00
Diego2098
65124b3aa8 更新demo 2023-10-01 13:33:25 +08:00
Kimdiego2098
98597f4726 update demo csproj 2023-10-01 00:33:33 +08:00
Kimdiego2098
e7981f0d8e add EncodingMapper 2023-10-01 00:25:04 +08:00
Kimdiego2098
cf654427c3 更新文档 2023-09-30 23:28:50 +08:00
Kimdiego2098
ff2f628282 默认不启用远程更新 2023-09-30 23:23:44 +08:00
151 changed files with 2223 additions and 687 deletions

View File

@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>3.0.0.0</Version>
<Version>3.0.0.4</Version>
<LangVersion>latest</LangVersion>
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
<Authors>Diego</Authors>

View File

@@ -124,6 +124,15 @@ public partial class MainLayout
"Title": "OPCUAClient"
}
]
},
{
"Title": "Mqtt",
"Children": [
{
"Href": "/MqttClient",
"Title": "MqttClient"
}
]
}
]

View File

@@ -31,11 +31,11 @@
<ProjectReference Include="..\..\FoundationPro\ThingsGateway.Foundation.Adapter.Vigor\ThingsGateway.Foundation.Adapter.Vigor.csproj" />
<Compile Include="..\..\PluginProGasCustom\ThingsGateway.Plugin.GasCustom\Page\GasCustomSerialDebugPage.razor.cs" Link="Pages\GasCustom\GasCustomSerialDebugPage.razor.cs" />
<Compile Include="..\..\PluginProGasCustom\ThingsGateway.Plugin.GasCustom\Page\GasCustomSerialOverTcpDebugPage.razor.cs" Link="Pages\GasCustom\GasCustomSerialOverTcpDebugPage.razor.cs" />
<Content Include="..\..\PluginProGasCustom\ThingsGateway.Plugin.GasCustom\Page\GasCustomSerialDebugPage.razor" Link="Pages\GasCustom\GasCustomSerialDebugPage.razor" />
<Content Include="..\..\PluginProGasCustom\ThingsGateway.Plugin.GasCustom\Page\GasCustomSerialOverTcpDebugPage.razor" Link="GasCustom\Vigor\GasCustomSerialOverTcpDebugPage.razor" />
<ProjectReference Include="..\..\PluginProGasCustom\ThingsGateway.Foundation.Adapter.GasCustom\ThingsGateway.Foundation.Adapter.GasCustom.csproj" />
<Compile Include="..\..\PluginProAF2021\ThingsGateway.Plugin.HZW_QTJC_01\Page\HZW_QTJC_01SerialDebugPage.razor.cs" Link="Pages\HZW_QTJC_01\HZW_QTJC_01SerialDebugPage.razor.cs" />
<Compile Include="..\..\PluginProAF2021\ThingsGateway.Plugin.HZW_QTJC_01\Page\HZW_QTJC_01SerialOverTcpDebugPage.razor.cs" Link="Pages\HZW_QTJC_01\HZW_QTJC_01SerialOverTcpDebugPage.razor.cs" />
<Content Include="..\..\PluginProAF2021\ThingsGateway.Plugin.HZW_QTJC_01\Page\HZW_QTJC_01SerialDebugPage.razor" Link="Pages\HZW_QTJC_01\HZW_QTJC_01SerialDebugPage.razor" />
<Content Include="..\..\PluginProAF2021\ThingsGateway.Plugin.HZW_QTJC_01\Page\HZW_QTJC_01SerialOverTcpDebugPage.razor" Link="Pages\HZW_QTJC_01\HZW_QTJC_01SerialOverTcpDebugPage.razor" />
<ProjectReference Include="..\..\PluginProAF2021\ThingsGateway.Foundation.Adapter.HZW_QTJC_01\ThingsGateway.Foundation.Adapter.HZW_QTJC_01.csproj" />
@@ -45,6 +45,13 @@
<ItemGroup>
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.DLT645\Page\DLT645_2007DebugPage.razor.cs" Link="Pages\DLT645\DLT645_2007DebugPage.razor.cs" />
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\MqttRpcNameVaueWithId.cs" Link="Pages\Mqtt\MqttRpcNameVaueWithId.cs" />
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\Page\MqttClientDebugPage.razor.cs" Link="Pages\Mqtt\MqttClientDebugPage.razor.cs" />
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\Page\MqttClientPage.razor.cs" Link="Pages\Mqtt\MqttClientPage.razor.cs" />
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\PrivateLogger.cs" Link="Pages\Mqtt\PrivateLogger.cs" />
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\RpcClass\MqttRpcClient.cs" Link="Pages\Mqtt\MqttRpcClient.cs" />
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\RpcClass\MqttRpcClientExtensions.cs" Link="Pages\Mqtt\MqttRpcClientExtensions.cs" />
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\RpcClass\MqttRpcTopicPair.cs" Link="Pages\Mqtt\MqttRpcTopicPair.cs" />
<Content Include="..\..\Plugin\ThingsGateway.Plugin.DLT645\Page\DLT645_2007DebugPage.razor" Link="Pages\DLT645\DLT645_2007DebugPage.razor" />
<Compile Include="..\..\Plugin\ThingsGateway.Plugin.DLT645\Page\DLT645_2007OverTcpDebugPage.razor.cs" Link="Pages\DLT645\DLT645_2007OverTcpDebugPage.razor.cs" />
<Content Include="..\..\Plugin\ThingsGateway.Plugin.DLT645\Page\DLT645_2007OverTcpDebugPage.razor" Link="Pages\DLT645\DLT645_2007OverTcpDebugPage.razor" />
@@ -117,5 +124,17 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Pages\Mqtt\" />
</ItemGroup>
<ItemGroup>
<Content Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\Page\MqttClientDebugPage.razor" Link="Pages\Mqtt\MqttClientDebugPage.razor" />
<Content Include="..\..\Plugin\ThingsGateway.Plugin.Mqtt\Page\MqttClientPage.razor" Link="Pages\Mqtt\MqttClientPage.razor" />
<PackageReference Include="MQTTnet" Version="4.3.1.873" />
</ItemGroup>
</Project>

View File

@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>3.0.0.0</Version>
<Version>3.0.0.4</Version>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<LangVersion>latest</LangVersion>
<TargetFrameworks>net45;netstandard2.0;net6.0;net7.0</TargetFrameworks>

View File

@@ -10,6 +10,9 @@
//------------------------------------------------------------------------------
#endregion
using ThingsGateway.Foundation.Extension.Generic;
namespace ThingsGateway.Foundation.Adapter.Modbus;
/// <summary>
@@ -41,20 +44,43 @@ public class ModbusRtuDataHandleAdapter : ReadWriteDevicesTcpDataHandleAdapter<M
/// <inheritdoc/>
protected override FilterResult UnpackResponse(ModbusRtuMessage request, byte[] send, byte[] body, byte[] response)
{
//理想状态检测
var result = ModbusHelper.GetModbusRtuData(send, response, Crc16CheckEnable);
if (result.IsSuccess)
//链路干扰时需剔除前缀中的多于字节,初步按站号+功能码找寻初始字节
if (send?.Length > 0)
{
request.ErrorCode = result.ErrorCode;
request.Message = result.Message;
request.Content = result.Content;
int index = -1;
for (int i = 0; i < response.Length - 1; i++)
{
if (response[i] == send[0] && (response[i + 1] == send[1] || response[i + 1] == (send[1] + 0x80)))
{
index = i;
break;
}
}
if (index >= 0)
{
response = response.RemoveBegin(index);
}
//理想状态检测
var result = ModbusHelper.GetModbusRtuData(send, response, Crc16CheckEnable);
if (result.IsSuccess)
{
request.ErrorCode = result.ErrorCode;
request.Message = result.Message;
request.Content = result.Content;
}
else
{
request.ErrorCode = result.ErrorCode;
request.Message = result.Message;
}
return result.Content2;
}
else
{
request.ErrorCode = result.ErrorCode;
request.Message = result.Message;
return FilterResult.Success;
}
return result.Content2;
}
}

View File

@@ -682,14 +682,632 @@ public class OPCUAClient : IDisposable
}
NodeId nodeToRead = new(nodeIdStr);
var node = (VariableNode)await m_session.ReadNodeAsync(nodeToRead, cancellationToken);
await typeSystem.LoadType(node.DataType, true, true);
var node = (VariableNode)await ReadNodeAsync(nodeToRead, NodeClass.Unspecified, false, cancellationToken);
await typeSystem.LoadType(node.DataType, true, false);
_variableDicts.AddOrUpdate(nodeIdStr, node);
return node;
}
#endregion
#region session
/// <inheritdoc/>
public async Task<Node> ReadNodeAsync(
NodeId nodeId,
NodeClass nodeClass,
bool optionalAttributes = true,
CancellationToken ct = default)
{
// build list of attributes.
var attributes = CreateAttributes(nodeClass, optionalAttributes);
// build list of values to read.
ReadValueIdCollection itemsToRead = new ReadValueIdCollection();
foreach (uint attributeId in attributes.Keys)
{
ReadValueId itemToRead = new ReadValueId
{
NodeId = nodeId,
AttributeId = attributeId
};
itemsToRead.Add(itemToRead);
}
// read from server.
ReadResponse readResponse = await m_session.ReadAsync(
null,
0,
TimestampsToReturn.Neither,
itemsToRead, ct).ConfigureAwait(false);
DataValueCollection values = readResponse.Results;
DiagnosticInfoCollection diagnosticInfos = readResponse.DiagnosticInfos;
ClientBase.ValidateResponse(values, itemsToRead);
ClientBase.ValidateDiagnosticInfos(diagnosticInfos, itemsToRead);
return ProcessReadResponse(readResponse.ResponseHeader, attributes, itemsToRead, values, diagnosticInfos);
}
/// <summary>
/// Creates a Node based on the read response.
/// </summary>
private Node ProcessReadResponse(
ResponseHeader responseHeader,
IDictionary<uint, DataValue> attributes,
ReadValueIdCollection itemsToRead,
DataValueCollection values,
DiagnosticInfoCollection diagnosticInfos)
{
// process results.
int? nodeClass = null;
for (int ii = 0; ii < itemsToRead.Count; ii++)
{
uint attributeId = itemsToRead[ii].AttributeId;
// the node probably does not exist if the node class is not found.
if (attributeId == Attributes.NodeClass)
{
if (!DataValue.IsGood(values[ii]))
{
throw ServiceResultException.Create(values[ii].StatusCode, ii, diagnosticInfos, responseHeader.StringTable);
}
// check for valid node class.
nodeClass = values[ii].Value as int?;
if (nodeClass == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Node does not have a valid value for NodeClass: {0}.", values[ii].Value);
}
}
else
{
if (!DataValue.IsGood(values[ii]))
{
// check for unsupported attributes.
if (values[ii].StatusCode == StatusCodes.BadAttributeIdInvalid)
{
continue;
}
// ignore errors on optional attributes
if (StatusCode.IsBad(values[ii].StatusCode))
{
if (attributeId == Attributes.AccessRestrictions ||
attributeId == Attributes.Description ||
attributeId == Attributes.RolePermissions ||
attributeId == Attributes.UserRolePermissions ||
attributeId == Attributes.DataTypeDefinition ||
attributeId == Attributes.AccessLevelEx ||
attributeId == Attributes.UserWriteMask ||
attributeId == Attributes.WriteMask)
{
continue;
}
}
// all supported attributes must be readable.
if (attributeId != Attributes.Value)
{
throw ServiceResultException.Create(values[ii].StatusCode, ii, diagnosticInfos, responseHeader.StringTable);
}
}
}
attributes[attributeId] = values[ii];
}
Node node;
DataValue value;
switch ((NodeClass)nodeClass.Value)
{
default:
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Node does not have a valid value for NodeClass: {0}.", nodeClass.Value);
}
case NodeClass.Object:
{
ObjectNode objectNode = new ObjectNode();
value = attributes[Attributes.EventNotifier];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Object does not support the EventNotifier attribute.");
}
objectNode.EventNotifier = (byte)value.GetValue(typeof(byte));
node = objectNode;
break;
}
case NodeClass.ObjectType:
{
ObjectTypeNode objectTypeNode = new ObjectTypeNode();
value = attributes[Attributes.IsAbstract];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "ObjectType does not support the IsAbstract attribute.");
}
objectTypeNode.IsAbstract = (bool)value.GetValue(typeof(bool));
node = objectTypeNode;
break;
}
case NodeClass.Variable:
{
VariableNode variableNode = new VariableNode();
// DataType Attribute
value = attributes[Attributes.DataType];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Variable does not support the DataType attribute.");
}
variableNode.DataType = (NodeId)value.GetValue(typeof(NodeId));
// ValueRank Attribute
value = attributes[Attributes.ValueRank];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Variable does not support the ValueRank attribute.");
}
variableNode.ValueRank = (int)value.GetValue(typeof(int));
// ArrayDimensions Attribute
value = attributes[Attributes.ArrayDimensions];
if (value != null)
{
if (value.Value == null)
{
variableNode.ArrayDimensions = Array.Empty<uint>();
}
else
{
variableNode.ArrayDimensions = (uint[])value.GetValue(typeof(uint[]));
}
}
// AccessLevel Attribute
value = attributes[Attributes.AccessLevel];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Variable does not support the AccessLevel attribute.");
}
variableNode.AccessLevel = (byte)value.GetValue(typeof(byte));
// UserAccessLevel Attribute
value = attributes[Attributes.UserAccessLevel];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Variable does not support the UserAccessLevel attribute.");
}
variableNode.UserAccessLevel = (byte)value.GetValue(typeof(byte));
// Historizing Attribute
value = attributes[Attributes.Historizing];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Variable does not support the Historizing attribute.");
}
variableNode.Historizing = (bool)value.GetValue(typeof(bool));
// MinimumSamplingInterval Attribute
value = attributes[Attributes.MinimumSamplingInterval];
if (value != null)
{
variableNode.MinimumSamplingInterval = Convert.ToDouble(attributes[Attributes.MinimumSamplingInterval].Value);
}
// AccessLevelEx Attribute
value = attributes[Attributes.AccessLevelEx];
if (value != null)
{
variableNode.AccessLevelEx = (uint)value.GetValue(typeof(uint));
}
node = variableNode;
break;
}
case NodeClass.VariableType:
{
VariableTypeNode variableTypeNode = new VariableTypeNode();
// IsAbstract Attribute
value = attributes[Attributes.IsAbstract];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "VariableType does not support the IsAbstract attribute.");
}
variableTypeNode.IsAbstract = (bool)value.GetValue(typeof(bool));
// DataType Attribute
value = attributes[Attributes.DataType];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "VariableType does not support the DataType attribute.");
}
variableTypeNode.DataType = (NodeId)value.GetValue(typeof(NodeId));
// ValueRank Attribute
value = attributes[Attributes.ValueRank];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "VariableType does not support the ValueRank attribute.");
}
variableTypeNode.ValueRank = (int)value.GetValue(typeof(int));
// ArrayDimensions Attribute
value = attributes[Attributes.ArrayDimensions];
if (value != null && value.Value != null)
{
variableTypeNode.ArrayDimensions = (uint[])value.GetValue(typeof(uint[]));
}
node = variableTypeNode;
break;
}
case NodeClass.Method:
{
MethodNode methodNode = new MethodNode();
// Executable Attribute
value = attributes[Attributes.Executable];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Method does not support the Executable attribute.");
}
methodNode.Executable = (bool)value.GetValue(typeof(bool));
// UserExecutable Attribute
value = attributes[Attributes.UserExecutable];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Method does not support the UserExecutable attribute.");
}
methodNode.UserExecutable = (bool)value.GetValue(typeof(bool));
node = methodNode;
break;
}
case NodeClass.DataType:
{
DataTypeNode dataTypeNode = new DataTypeNode();
// IsAbstract Attribute
value = attributes[Attributes.IsAbstract];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "DataType does not support the IsAbstract attribute.");
}
dataTypeNode.IsAbstract = (bool)value.GetValue(typeof(bool));
// DataTypeDefinition Attribute
value = attributes[Attributes.DataTypeDefinition];
if (value != null)
{
dataTypeNode.DataTypeDefinition = value.Value as ExtensionObject;
}
node = dataTypeNode;
break;
}
case NodeClass.ReferenceType:
{
ReferenceTypeNode referenceTypeNode = new ReferenceTypeNode();
// IsAbstract Attribute
value = attributes[Attributes.IsAbstract];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "ReferenceType does not support the IsAbstract attribute.");
}
referenceTypeNode.IsAbstract = (bool)value.GetValue(typeof(bool));
// Symmetric Attribute
value = attributes[Attributes.Symmetric];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "ReferenceType does not support the Symmetric attribute.");
}
referenceTypeNode.Symmetric = (bool)value.GetValue(typeof(bool));
// InverseName Attribute
value = attributes[Attributes.InverseName];
if (value != null && value.Value != null)
{
referenceTypeNode.InverseName = (LocalizedText)value.GetValue(typeof(LocalizedText));
}
node = referenceTypeNode;
break;
}
case NodeClass.View:
{
ViewNode viewNode = new ViewNode();
// EventNotifier Attribute
value = attributes[Attributes.EventNotifier];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "View does not support the EventNotifier attribute.");
}
viewNode.EventNotifier = (byte)value.GetValue(typeof(byte));
// ContainsNoLoops Attribute
value = attributes[Attributes.ContainsNoLoops];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "View does not support the ContainsNoLoops attribute.");
}
viewNode.ContainsNoLoops = (bool)value.GetValue(typeof(bool));
node = viewNode;
break;
}
}
// NodeId Attribute
value = attributes[Attributes.NodeId];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Node does not support the NodeId attribute.");
}
node.NodeId = (NodeId)value.GetValue(typeof(NodeId));
node.NodeClass = (NodeClass)nodeClass.Value;
// BrowseName Attribute
value = attributes[Attributes.BrowseName];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Node does not support the BrowseName attribute.");
}
node.BrowseName = (QualifiedName)value.GetValue(typeof(QualifiedName));
// DisplayName Attribute
value = attributes[Attributes.DisplayName];
if (value == null)
{
throw ServiceResultException.Create(StatusCodes.BadUnexpectedError, "Node does not support the DisplayName attribute.");
}
node.DisplayName = (LocalizedText)value.GetValue(typeof(LocalizedText));
// all optional attributes follow
// Description Attribute
if (attributes.TryGetValue(Attributes.Description, out value) &&
value != null && value.Value != null)
{
node.Description = (LocalizedText)value.GetValue(typeof(LocalizedText));
}
// WriteMask Attribute
if (attributes.TryGetValue(Attributes.WriteMask, out value) &&
value != null)
{
node.WriteMask = (uint)value.GetValue(typeof(uint));
}
// UserWriteMask Attribute
if (attributes.TryGetValue(Attributes.UserWriteMask, out value) &&
value != null)
{
node.UserWriteMask = (uint)value.GetValue(typeof(uint));
}
// RolePermissions Attribute
if (attributes.TryGetValue(Attributes.RolePermissions, out value) &&
value != null)
{
ExtensionObject[] rolePermissions = value.Value as ExtensionObject[];
if (rolePermissions != null)
{
node.RolePermissions = new RolePermissionTypeCollection();
foreach (ExtensionObject rolePermission in rolePermissions)
{
node.RolePermissions.Add(rolePermission.Body as RolePermissionType);
}
}
}
// UserRolePermissions Attribute
if (attributes.TryGetValue(Attributes.UserRolePermissions, out value) &&
value != null)
{
ExtensionObject[] userRolePermissions = value.Value as ExtensionObject[];
if (userRolePermissions != null)
{
node.UserRolePermissions = new RolePermissionTypeCollection();
foreach (ExtensionObject rolePermission in userRolePermissions)
{
node.UserRolePermissions.Add(rolePermission.Body as RolePermissionType);
}
}
}
// AccessRestrictions Attribute
if (attributes.TryGetValue(Attributes.AccessRestrictions, out value) &&
value != null)
{
node.AccessRestrictions = (ushort)value.GetValue(typeof(ushort));
}
return node;
}
/// <summary>
/// Create a dictionary of attributes to read for a nodeclass.
/// </summary>
private IDictionary<uint, DataValue> CreateAttributes(NodeClass nodeclass = NodeClass.Unspecified, bool optionalAttributes = true)
{
// Attributes to read for all types of nodes
var attributes = new SortedDictionary<uint, DataValue>() {
{ Attributes.NodeId, null },
{ Attributes.NodeClass, null },
{ Attributes.BrowseName, null },
{ Attributes.DisplayName, null },
};
switch (nodeclass)
{
case NodeClass.Object:
attributes.Add(Attributes.EventNotifier, null);
break;
case NodeClass.Variable:
attributes.Add(Attributes.DataType, null);
attributes.Add(Attributes.ValueRank, null);
attributes.Add(Attributes.ArrayDimensions, null);
attributes.Add(Attributes.AccessLevel, null);
attributes.Add(Attributes.UserAccessLevel, null);
attributes.Add(Attributes.Historizing, null);
attributes.Add(Attributes.MinimumSamplingInterval, null);
attributes.Add(Attributes.AccessLevelEx, null);
break;
case NodeClass.Method:
attributes.Add(Attributes.Executable, null);
attributes.Add(Attributes.UserExecutable, null);
break;
case NodeClass.ObjectType:
attributes.Add(Attributes.IsAbstract, null);
break;
case NodeClass.VariableType:
attributes.Add(Attributes.IsAbstract, null);
attributes.Add(Attributes.DataType, null);
attributes.Add(Attributes.ValueRank, null);
attributes.Add(Attributes.ArrayDimensions, null);
break;
case NodeClass.ReferenceType:
attributes.Add(Attributes.IsAbstract, null);
attributes.Add(Attributes.Symmetric, null);
attributes.Add(Attributes.InverseName, null);
break;
case NodeClass.DataType:
attributes.Add(Attributes.IsAbstract, null);
attributes.Add(Attributes.DataTypeDefinition, null);
break;
case NodeClass.View:
attributes.Add(Attributes.EventNotifier, null);
attributes.Add(Attributes.ContainsNoLoops, null);
break;
default:
// build complete list of attributes.
attributes = new SortedDictionary<uint, DataValue> {
{ Attributes.NodeId, null },
{ Attributes.NodeClass, null },
{ Attributes.BrowseName, null },
{ Attributes.DisplayName, null },
//{ Attributes.Description, null },
//{ Attributes.WriteMask, null },
//{ Attributes.UserWriteMask, null },
{ Attributes.DataType, null },
{ Attributes.ValueRank, null },
{ Attributes.ArrayDimensions, null },
{ Attributes.AccessLevel, null },
{ Attributes.UserAccessLevel, null },
{ Attributes.MinimumSamplingInterval, null },
{ Attributes.Historizing, null },
{ Attributes.EventNotifier, null },
{ Attributes.Executable, null },
{ Attributes.UserExecutable, null },
{ Attributes.IsAbstract, null },
{ Attributes.InverseName, null },
{ Attributes.Symmetric, null },
{ Attributes.ContainsNoLoops, null },
{ Attributes.DataTypeDefinition, null },
//{ Attributes.RolePermissions, null },
//{ Attributes.UserRolePermissions, null },
//{ Attributes.AccessRestrictions, null },
{ Attributes.AccessLevelEx, null }
};
break;
}
if (optionalAttributes)
{
attributes.Add(Attributes.Description, null);
attributes.Add(Attributes.WriteMask, null);
attributes.Add(Attributes.UserWriteMask, null);
attributes.Add(Attributes.RolePermissions, null);
attributes.Add(Attributes.UserRolePermissions, null);
attributes.Add(Attributes.AccessRestrictions, null);
}
return attributes;
}
#endregion
#region
/// <summary>

View File

@@ -54,7 +54,10 @@ public class SiemensAddress : DeviceAddressBase
/// DB块数据信息
/// </summary>
public ushort DbBlock { get; set; }
/// <summary>
/// IsWString默认是true如果不是WString,需要填写W=false;
/// </summary>
public bool IsWString { get; set; } = true;
/// <summary>
/// 获取起始地址
/// </summary>
@@ -103,127 +106,132 @@ public class SiemensAddress : DeviceAddressBase
public static SiemensAddress ParseFrom(string address)
{
SiemensAddress s7AddressData = new();
address = address.ToUpper();
address = address.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();
string[] strArr = address.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
for (int index = 0; index < strArr.Length; ++index)
{
if (strArr[index].StartsWith("W="))
{
s7AddressData.IsWString = strArr[index].Substring(2).ToBoolean(true);
}
else if (!strArr[index].Contains("="))
{
s7AddressData.DbBlock = 0;
if (address.StartsWith("AI"))
{
s7AddressData.DataCode = (byte)S7Area.AI;
if (address.StartsWith("AIX") || address.StartsWith("AIB") || address.StartsWith("AIW") || address.StartsWith("AID"))
{
s7AddressData.Address = GetAddressStart(address.Substring(3)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(3));
}
else
{
s7AddressData.Address = GetAddressStart(address.Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(2));
}
}
else if (address.StartsWith("AQ"))
{
s7AddressData.DataCode = (byte)S7Area.AQ;
if (address.StartsWith("AQX") || address.StartsWith("AQB") || address.StartsWith("AQW") || address.StartsWith("AQD"))
{
s7AddressData.Address = GetAddressStart(address.Substring(3)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(3));
}
else
{
s7AddressData.Address = GetAddressStart(address.Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(2));
}
}
else if (address[0] == 'I')
{
s7AddressData.DataCode = (byte)S7Area.PE;
if (address.StartsWith("IX") || address.StartsWith("IB") || address.StartsWith("IW") || address.StartsWith("ID"))
{
s7AddressData.Address = GetAddressStart(address.Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(2));
}
else
{
s7AddressData.Address = GetAddressStart(address.Substring(1)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(1));
}
}
else if (address[0] == 'Q')
{
s7AddressData.DataCode = (byte)S7Area.PA;
if (address.StartsWith("QX") || address.StartsWith("QB") || address.StartsWith("QW") || address.StartsWith("QD"))
{
s7AddressData.Address = GetAddressStart(address.Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(2));
}
else
{
s7AddressData.Address = GetAddressStart(address.Substring(1)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(1));
}
}
else if (address[0] == 'M')
{
s7AddressData.DataCode = (byte)S7Area.MK;
if (address.StartsWith("MX") || address.StartsWith("MB") || address.StartsWith("MW") || address.StartsWith("MD"))
{
s7AddressData.Address = GetAddressStart(address.Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(2));
}
else
{
s7AddressData.Address = GetAddressStart(address.Substring(1)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(1));
}
}
else if (address[0] == 'D' || address.Substring(0, 2) == "DB")
{
s7AddressData.DataCode = (byte)S7Area.DB;
string[] strArray = address.Split('.');
s7AddressData.DbBlock = address[1] != 'B' ? Convert.ToUInt16(strArray[0].Substring(1)) : Convert.ToUInt16(strArray[0].Substring(2));
string address1 = address.Substring(address.IndexOf('.') + 1);
if (address1.StartsWith("DBX") || address1.StartsWith("DBB") || address1.StartsWith("DBW") || address1.StartsWith("DBD"))
{
address1 = address1.Substring(3);
}
s7AddressData.DbBlock = 0;
s7AddressData.Address = GetAddressStart(address1).ToString();
s7AddressData.BitCode = GetBitCode(address1);
}
else if (address[0] == 'T')
{
s7AddressData.DataCode = (byte)S7Area.TM;
s7AddressData.Address = GetAddressStart(address.Substring(1), true).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(1));
}
else if (address[0] == 'C')
{
s7AddressData.DataCode = (byte)S7Area.CT;
s7AddressData.Address = GetAddressStart(address.Substring(1), true).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(1));
}
else if (address[0] == 'V')
{
s7AddressData.DataCode = (byte)S7Area.DB;
s7AddressData.DbBlock = 1;
if (address.StartsWith("VB") || address.StartsWith("VW") || address.StartsWith("VD") || address.StartsWith("VX"))
{
s7AddressData.Address = GetAddressStart(address.Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(2));
}
else
{
s7AddressData.Address = GetAddressStart(address.Substring(1)).ToString();
s7AddressData.BitCode = GetBitCode(address.Substring(1));
}
}
else
{
throw new Exception("解析错误,无相关变量类型");
}
if (strArr[index].StartsWith("AI"))
{
s7AddressData.DataCode = (byte)S7Area.AI;
if (strArr[index].StartsWith("AIX") || strArr[index].StartsWith("AIB") || strArr[index].StartsWith("AIW") || strArr[index].StartsWith("AID"))
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(3)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(3));
}
else
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(2));
}
}
else if (strArr[index].StartsWith("AQ"))
{
s7AddressData.DataCode = (byte)S7Area.AQ;
if (strArr[index].StartsWith("AQX") || strArr[index].StartsWith("AQB") || strArr[index].StartsWith("AQW") || strArr[index].StartsWith("AQD"))
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(3)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(3));
}
else
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(2));
}
}
else if (strArr[index][0] == 'I')
{
s7AddressData.DataCode = (byte)S7Area.PE;
if (strArr[index].StartsWith("IX") || strArr[index].StartsWith("IB") || strArr[index].StartsWith("IW") || strArr[index].StartsWith("ID"))
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(2));
}
else
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(1)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(1));
}
}
else if (strArr[index][0] == 'Q')
{
s7AddressData.DataCode = (byte)S7Area.PA;
if (strArr[index].StartsWith("QX") || strArr[index].StartsWith("QB") || strArr[index].StartsWith("QW") || strArr[index].StartsWith("QD"))
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(2));
}
else
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(1)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(1));
}
}
else if (strArr[index][0] == 'M')
{
s7AddressData.DataCode = (byte)S7Area.MK;
if (strArr[index].StartsWith("MX") || strArr[index].StartsWith("MB") || strArr[index].StartsWith("MW") || strArr[index].StartsWith("MD"))
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(2));
}
else
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(1)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(1));
}
}
else if (strArr[index][0] == 'D' || strArr[index].Substring(0, 2) == "DB")
{
s7AddressData.DataCode = (byte)S7Area.DB;
string[] strArray = strArr[index].Split('.');
s7AddressData.DbBlock = strArray[index][1] != 'B' ? Convert.ToUInt16(strArray[0].Substring(1)) : Convert.ToUInt16(strArray[0].Substring(2));
string address1 = strArr[index].Substring(strArr[index].IndexOf('.') + 1);
if (address1.StartsWith("DBX") || address1.StartsWith("DBB") || address1.StartsWith("DBW") || address1.StartsWith("DBD"))
{
address1 = address1.Substring(3);
}
s7AddressData.Address = GetAddressStart(address1).ToString();
s7AddressData.BitCode = GetBitCode(address1);
}
else if (strArr[index][0] == 'T')
{
s7AddressData.DataCode = (byte)S7Area.TM;
s7AddressData.Address = GetAddressStart(strArr[index].Substring(1), true).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(1));
}
else if (strArr[index][0] == 'C')
{
s7AddressData.DataCode = (byte)S7Area.CT;
s7AddressData.Address = GetAddressStart(strArr[index].Substring(1), true).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(1));
}
else if (strArr[index][0] == 'V')
{
s7AddressData.DataCode = (byte)S7Area.DB;
s7AddressData.DbBlock = 1;
if (strArr[index].StartsWith("VB") || strArr[index].StartsWith("VW") || strArr[index].StartsWith("VD") || strArr[index].StartsWith("VX"))
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(2)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(2));
}
else
{
s7AddressData.Address = GetAddressStart(strArr[index].Substring(1)).ToString();
s7AddressData.BitCode = GetBitCode(strArr[index].Substring(1));
}
}
}
}
return s7AddressData;
}
@@ -242,39 +250,39 @@ public class SiemensAddress : DeviceAddressBase
{
if (DataCode == (byte)S7Area.TM)
{
return "T" + Address.ToString();
return "T" + Address.ToString() + (IsWString ? ";W=true;" : ";W=false;");
}
if (DataCode == (byte)S7Area.CT)
{
return "C" + Address.ToString();
return "C" + Address.ToString() + (IsWString ? ";W=true;" : ";W=false;");
}
if (DataCode == (byte)S7Area.AI)
{
return "AI" + GetStringAddress(AddressStart);
return "AI" + GetStringAddress(AddressStart) + (IsWString ? ";W=true;" : ";W=false;");
}
if (DataCode == (byte)S7Area.AQ)
{
return "AQ" + GetStringAddress(AddressStart);
return "AQ" + GetStringAddress(AddressStart) + (IsWString ? ";W=true;" : ";W=false;");
}
if (DataCode == (byte)S7Area.PE)
{
return "I" + GetStringAddress(AddressStart);
return "I" + GetStringAddress(AddressStart) + (IsWString ? ";W=true;" : ";W=false;");
}
if (DataCode == (byte)S7Area.PA)
{
return "Q" + GetStringAddress(AddressStart);
return "Q" + GetStringAddress(AddressStart) + (IsWString ? ";W=true;" : ";W=false;");
}
if (DataCode == (byte)S7Area.MK)
{
return "M" + GetStringAddress(AddressStart);
return "M" + GetStringAddress(AddressStart) + (IsWString ? ";W=true;" : ";W=false;");
}
return DataCode == (byte)S7Area.DB ? "DB" + DbBlock.ToString() + "." + GetStringAddress(AddressStart) : Address.ToString();
return DataCode == (byte)S7Area.DB ? "DB" + DbBlock.ToString() + "." + GetStringAddress(AddressStart) + (IsWString ? ";W=true;" : ";W=false;") : Address.ToString() + (IsWString ? ";W=true;" : ";W=false;");
}
private static string GetStringAddress(int addressStart)

View File

@@ -28,8 +28,7 @@ internal static class PackHelper
IThingsGatewayBitConverter transformParameter = ByteTransformUtil.GetTransByAddress(ref address, byteConverter);
item.ThingsGatewayBitConverter = transformParameter;
item.VariableAddress = address;//需要使用过滤后的地址
//item.VariableAddress = address;//需要使用过滤后的地址
item.Index = siemensS7Net.GetBitOffset(item.VariableAddress);
}
//按读取间隔分组
@@ -38,43 +37,55 @@ internal static class PackHelper
{
Dictionary<SiemensAddress, T2> map = item.ToDictionary(it =>
{
var lastLen = it.DataTypeEnum.GetByteLength();
if (lastLen <= 0)
{
switch (it.DataTypeEnum)
{
case DataTypeEnum.String:
if (it.ThingsGatewayBitConverter.Length == null)
{
throw new("数据类型为字符串时,必须指定字符串长度,才能进行打包");
}
else
{
if (siemensS7Net.CurrentPlc == SiemensEnum.S200Smart)
{
//字符串在S200Smart中第一个字节不属于实际内容
it.Index += 1;
//it.ThingsGatewayBitConverter.StringLength -= 1;
lastLen = it.ThingsGatewayBitConverter.Length.Value + 1;
}
else
{
//字符串在S7中前两个字节不属于实际内容
it.Index += 2;
//it.ThingsGatewayBitConverter.StringLength -= 2;
lastLen = it.ThingsGatewayBitConverter.Length.Value + 2;
}
}
break;
default:
lastLen = 1;
break;
}
}
try
{
var s7Address = SiemensAddress.ParseFrom(it.VariableAddress);
var lastLen = it.DataTypeEnum.GetByteLength();
if (lastLen <= 0)
{
switch (it.DataTypeEnum)
{
case DataTypeEnum.String:
if (it.ThingsGatewayBitConverter.Length == null)
{
throw new("数据类型为字符串时,必须指定字符串长度,才能进行打包");
}
else
{
if (siemensS7Net.CurrentPlc == SiemensEnum.S200Smart)
{
if (s7Address.IsWString)
{
//字符串在S200Smart中第一个字节不属于实际内容
it.Index += 1;
lastLen = it.ThingsGatewayBitConverter.Length.Value + 1;
}
else
{
lastLen = it.ThingsGatewayBitConverter.Length.Value;
}
}
else
{
if (s7Address.IsWString)
{
//字符串在S7中前两个字节不属于实际内容
it.Index += 2;
lastLen = it.ThingsGatewayBitConverter.Length.Value + 2;
}
else
{
lastLen = it.ThingsGatewayBitConverter.Length.Value;
}
}
}
break;
default:
lastLen = 1;
break;
}
}
if ((s7Address.DataCode == (byte)S7WordLength.Counter || s7Address.DataCode == (byte)S7WordLength.Timer) && lastLen == 1)
{
lastLen = 2;

View File

@@ -178,6 +178,10 @@ public static class GenericExtensions
/// <inheritdoc cref="DataTransUtil.SpliceArray" />
public static T[] SpliceArray<T>(this T[] value, params T[][] arrays)
{
if (value == null)
{
value = new T[0];
}
List<T[]> objArrayList = new(arrays.Length + 1)
{
value

View File

@@ -322,6 +322,7 @@ public static class StringExtensions
/// <returns></returns>
public static bool ToBoolean(this string value, bool defaultValue = false) => value?.ToUpper() switch
{
"0" or "FALSE" => false,
"1" or "TRUE" => true,
_ => defaultValue,
};

View File

@@ -440,9 +440,7 @@ public class TcpClientBase : BaseSocket, ITcpClient
{
throw new TimeoutException("连接超时");
}
{
success(socket);
}
success(socket);
#else
using CancellationTokenSource cancellationTokenSource = new();
@@ -465,11 +463,10 @@ public class TcpClientBase : BaseSocket, ITcpClient
else
{
socket?.SafeDispose();
socket.Close();
throw new TimeoutException("连接超时");
}
#endif
}
finally
{

View File

@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>3.0.0.0</Version>
<Version>3.0.0.4</Version>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
@@ -11,14 +11,12 @@
<SignAssembly>True</SignAssembly>
<DelaySign>False</DelaySign>
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
<EnableDynamicLoading>true</EnableDynamicLoading>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup>
<!--<PropertyGroup>
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>
</PropertyGroup>-->
<ItemGroup>

View File

@@ -9,10 +9,10 @@
<PackageReference Include="Confluent.Kafka" Version="2.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Web\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj" />
</ItemGroup>
<PropertyGroup>
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>
</Project>

View File

@@ -10,6 +10,9 @@
//------------------------------------------------------------------------------
#endregion
global using ThingsGateway.Components;
global using ThingsGateway.Foundation;
global using ThingsGateway.Foundation.Serial;
global using ThingsGateway.Foundation.Sockets;
global using ThingsGateway.Gateway.Application;
global using ThingsGateway.Gateway.Core;

View File

@@ -22,6 +22,7 @@ using MQTTnet.Client;
using System.Collections.Concurrent;
using System.Text;
using ThingsGateway.Foundation.Demo;
using ThingsGateway.Foundation.Extension.ConcurrentQueue;
using ThingsGateway.Foundation.Extension.Generic;
using ThingsGateway.Foundation.Extension.String;
@@ -55,7 +56,7 @@ public class MqttClient : UpLoadBase
private TimerTick exVariableTimerTick;
/// <inheritdoc/>
public override Type DriverDebugUIType => null;
public override Type DriverDebugUIType => typeof(MqttClientDebugPage);
/// <inheritdoc/>
public override UpDriverPropertyBase DriverPropertys => driverPropertys;

View File

@@ -10,6 +10,10 @@
//------------------------------------------------------------------------------
#endregion
using System.Collections.Generic;
using ThingsGateway.Foundation;
namespace ThingsGateway.Plugin.Mqtt;
/// <summary>

View File

@@ -0,0 +1,85 @@
@*
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
*@
@page "/MqttClient"
@namespace ThingsGateway.Foundation.Demo
@using BlazorComponent;
@using Microsoft.AspNetCore.Components.Web;
@using Masa.Blazor.Presets;
@using Microsoft.JSInterop;
@using ThingsGateway.Foundation;
@using ThingsGateway.Foundation.Extension;
@using Masa.Blazor
<MqttClientPage @ref=mqttClientPage></MqttClientPage>
<DriverDebugUIPage @ref=driverDebugUIPage Sections="_sections" ShowDefaultOtherContent=false>
<ReadWriteContent>
<div class="my-1 py-1">
<MTextarea Class="mx-1 my-1" Label="订阅主题" Dense Outlined HideDetails="@("auto")" @bind-Value=@driverDebugUIPage.Address />
<MButton Class="mx-1 my-1" Color="primary" OnClick="SubscribeAsync">
添加
</MButton>
<MButton Class="mx-1 my-1" Color="primary" OnClick="UnsubscribeAsync">
移除
</MButton>
<MTextarea Class="mx-1 my-1" Label="发布主题" Dense Outlined HideDetails="@("auto")" @bind-Value=@PublishTopic />
<MTextarea Class="mx-1 my-1" Label="发布内容" Dense Outlined HideDetails="@("auto")" @bind-Value=@PublishValue />
<MButton Class="mx-1 my-1" Color="primary" OnClick="PublishAsync">
发布
</MButton>
<MSubheader Class="mt-4 font-weight-black"> Rpc </MSubheader>
<MTextarea Class="mx-1 mt-3 my-1" Label="Rpc主题" Dense Outlined HideDetails="@("auto")" @bind-Value=@MqttRpcTopicPair.RequestTopic />
<MTextarea Class="mx-1 mt-3 my-1" Label="Rpc返回主题" Dense Outlined HideDetails="@("auto")" @bind-Value=@MqttRpcTopicPair.ResponseTopic />
<MTextarea Class="mx-1 mt-3 my-1" Label="Rpc内容" Dense Outlined HideDetails="@("auto")" @bind-Value=@driverDebugUIPage.WriteValue />
<MButton Class="mx-1 my-1" Color="primary" OnClick="RpcExecuteAsync">
执行
</MButton>
</div>
<MCol Class="my-1 py-1">
<MRow NoGutters>
</MRow>
</MCol>
</ReadWriteContent>
</DriverDebugUIPage>
@code {
private readonly List<(string Code, string Language)> _sections = new();
}

View File

@@ -0,0 +1,154 @@
#region copyright
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
using Masa.Blazor;
using Microsoft.AspNetCore.Components;
using MQTTnet;
using MQTTnet.Extensions.Rpc;
using System.Collections.Generic;
using System.Text;
using ThingsGateway.Plugin.Mqtt;
namespace ThingsGateway.Foundation.Demo;
/// <summary>
/// MqttClientDebugPage
/// </summary>
public partial class MqttClientDebugPage : IDisposable
{
private DriverDebugUIPage driverDebugUIPage;
private MqttClientPage mqttClientPage;
[Inject]
private InitTimezone InitTimezone { get; set; }
[Inject]
IPopupService PopupService { get; set; }
/// <inheritdoc/>
public void Dispose()
{
mqttClientPage.SafeDispose();
}
/// <inheritdoc/>
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
if (mqttClientPage != null)
{
mqttClientPage.LogAction = driverDebugUIPage.LogOut;
}
//初始化
driverDebugUIPage.Address = "ThingsGateway/Variable";
driverDebugUIPage.WriteValue = new MqttRpcNameVaueWithId()
{
RpcId = Guid.NewGuid().ToString(),
WriteInfos = new Dictionary<string, string>()
{
{ "tag1", "123" }
}
}.ToJsonString();
;
mqttClientPage.IP = "127.0.0.1";
mqttClientPage.Port = 1883;
mqttClientPage.UserName = "admin";
mqttClientPage.Password = "111111";
mqttClientPage.StateHasChangedAsync();
//载入配置
StateHasChanged();
driverDebugUIPage.Sections.Clear();
}
base.OnAfterRender(firstRender);
}
private async Task SubscribeAsync()
{
try
{
var mqttSubscribeOptions = mqttClientPage.MqttFactory.CreateSubscribeOptionsBuilder()
.WithTopicFilter(
f =>
{
f.WithTopic(driverDebugUIPage.Address);
})
.Build();
await mqttClientPage.MqttClient.SubscribeAsync(mqttSubscribeOptions, CancellationToken.None);
driverDebugUIPage.Messages.Add((Microsoft.Extensions.Logging.LogLevel.Information, DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat(driverDebugUIPage.InitTimezone.TimezoneOffset) + " - " + $"订阅{driverDebugUIPage.Address}成功"));
}
catch (Exception ex)
{
driverDebugUIPage.Messages.Add((Microsoft.Extensions.Logging.LogLevel.Error, DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat(driverDebugUIPage.InitTimezone.TimezoneOffset) + " - " + ex.Message));
}
}
private async Task UnsubscribeAsync()
{
try
{
var mqttSubscribeOptions = mqttClientPage.MqttFactory.CreateUnsubscribeOptionsBuilder()
.WithTopicFilter(driverDebugUIPage.Address)
.Build();
await mqttClientPage.MqttClient.UnsubscribeAsync(mqttSubscribeOptions, CancellationToken.None);
driverDebugUIPage.Messages.Add((Microsoft.Extensions.Logging.LogLevel.Information, DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat(driverDebugUIPage.InitTimezone.TimezoneOffset) + " - " + $"取消订阅{driverDebugUIPage.Address}成功"));
}
catch (Exception ex)
{
driverDebugUIPage.Messages.Add((Microsoft.Extensions.Logging.LogLevel.Error, DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat(driverDebugUIPage.InitTimezone.TimezoneOffset) + " - " + ex.Message));
}
}
string PublishTopic;
string PublishValue;
private async Task PublishAsync()
{
try
{
var devMessage = new MqttApplicationMessageBuilder()
.WithTopic($"{PublishTopic}")
.WithPayload(PublishValue).Build();
await mqttClientPage.MqttClient.PublishAsync(devMessage, CancellationToken.None);
driverDebugUIPage.Messages.Add((Microsoft.Extensions.Logging.LogLevel.Information, DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat(driverDebugUIPage.InitTimezone.TimezoneOffset) + " - " + $"发布{PublishTopic}成功"));
}
catch (Exception ex)
{
driverDebugUIPage.Messages.Add((Microsoft.Extensions.Logging.LogLevel.Error, DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat(driverDebugUIPage.InitTimezone.TimezoneOffset) + " - " + ex.Message));
}
}
MqttRpcTopicPair MqttRpcTopicPair = new() { RequestTopic = "ThingsGateway/RpcWrite", ResponseTopic = "ThingsGateway/RpcSub" };
private async Task RpcExecuteAsync()
{
try
{
using MqttRpcClient mqttRpcClient = new(mqttClientPage.MqttClient);
var data = await mqttRpcClient.ExecuteAsync(MqttRpcTopicPair, driverDebugUIPage.WriteValue, MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce, TimeSpan.FromSeconds(10));
var str = Encoding.UTF8.GetString(data);
driverDebugUIPage.Messages.Add((Microsoft.Extensions.Logging.LogLevel.Information, DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat(driverDebugUIPage.InitTimezone.TimezoneOffset) + " - " + str));
}
catch (Exception ex)
{
driverDebugUIPage.Messages.Add((Microsoft.Extensions.Logging.LogLevel.Error, DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat(driverDebugUIPage.InitTimezone.TimezoneOffset) + " - " + ex.Message));
}
}
}

View File

@@ -0,0 +1,42 @@
@*
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
*@
@namespace ThingsGateway.Foundation.Demo
@using BlazorComponent;
@using Microsoft.AspNetCore.Components.Web;
@using System.IO.Ports;
@using System.Collections.Concurrent;
@using ThingsGateway.Foundation;
@using Masa.Blazor
@implements IDisposable
<MCard Elevation="1" Rounded="false" Class="pa-2" Style="width:100%">
<div class="mb-4">设备配置</div>
<MRow Justify="JustifyTypes.Start" Align="AlignTypes.Center">
<MTextField Class="ma-1" Label=IP Dense Outlined HideDetails="@("auto")" @bind-Value=@IP />
<MTextField Class="ma-1" Label=端口 Dense Outlined HideDetails="@("auto")" @bind-Value=@Port />
<MTextField Class="ma-1" Label=ID Dense Outlined HideDetails="@("auto")" @bind-Value=@ConnectId />
<MTextField Class="ma-1" Label=用户 Dense Outlined HideDetails="@("auto")" @bind-Value=@UserName />
<MTextField Class="ma-1" Label=密码 Dense Outlined HideDetails="@("auto")" @bind-Value=@Password />
<MButton Class="ma-1" OnClick=@Connect Color="primary">
连接
</MButton>
<MButton Class="ma-1" OnClick=@DisConnect Color="red">
断开
</MButton>
</MRow>
</MCard>

View File

@@ -0,0 +1,119 @@
#region copyright
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
using MQTTnet;
using MQTTnet.Client;
using System.Text;
using ThingsGateway.Plugin.Mqtt;
namespace ThingsGateway.Foundation.Demo;
/// <summary>
/// MqttClientPage
/// </summary>
public partial class MqttClientPage
{
/// <summary>
/// 日志输出
/// </summary>
public Action<LogLevel, object, string, Exception> LogAction;
/// <summary>
/// OPC
/// </summary>
public IMqttClient MqttClient;
public MqttClientOptions MqttClientOptions;
public MqttFactory MqttFactory;
public string ConnectId;
public string IP;
public string Password;
public int Port;
public string UserName;
/// <summary>
/// <inheritdoc/>
/// </summary>
public void Dispose()
{
MqttClient.SafeDispose();
}
/// <inheritdoc/>
protected override void OnInitialized()
{
MqttFactory = new MqttFactory(new PrivateLogger(new EasyLogger(LogAction) { LogLevel = LogLevel.Trace }));
MqttClient = MqttFactory.CreateMqttClient();
MqttClient.ApplicationMessageReceivedAsync += MqttClient_ApplicationMessageReceivedAsync;
base.OnInitialized();
}
private async Task Connect()
{
try
{
await MqttClient.DisconnectAsync();
await GetMqttClient();
}
catch (Exception ex)
{
LogAction?.Invoke(LogLevel.Error, null, null, ex);
}
}
private async Task DisConnect()
{
try
{
await MqttClient.DisconnectAsync();
}
catch (Exception ex)
{
LogAction?.Invoke(LogLevel.Error, null, null, ex);
}
}
private async Task<IMqttClient> GetMqttClient()
{
//载入配置
MqttClientOptions = MqttFactory.CreateClientOptionsBuilder()
.WithClientId(ConnectId)
.WithCredentials(UserName, Password)//账密
.WithTcpServer(IP, Port)//服务器
.WithCleanSession(true)
.WithKeepAlivePeriod(TimeSpan.FromSeconds(120.0))
.WithoutThrowOnNonSuccessfulConnectResponse()
.Build();
await MqttClient.ConnectAsync(MqttClientOptions);
return MqttClient;
}
private void LogOut(byte logLevel, object source, string message, Exception exception) => LogAction?.Invoke((LogLevel)logLevel, source, message, exception);
private Task MqttClient_ApplicationMessageReceivedAsync(MqttApplicationMessageReceivedEventArgs args)
{
LogAction?.Invoke(LogLevel.Info, this, $"[{args.ApplicationMessage.Topic}]{Encoding.UTF8.GetString(args.ApplicationMessage.PayloadSegment)}", null);
return Task.CompletedTask;
}
public Task StateHasChangedAsync()
{
return InvokeAsync(StateHasChanged);
}
}

View File

@@ -12,6 +12,8 @@
using MQTTnet.Diagnostics;
using ThingsGateway.Foundation;
namespace ThingsGateway.Plugin.Mqtt
{
internal class PrivateLogger : IMqttNetLogger

View File

@@ -0,0 +1,147 @@
#region copyright
//------------------------------------------------------------------------------
// <20>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>Ϊȫ<CEAA>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
// <20>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EBA3A9><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>Diego<67><6F><EFBFBD><EFBFBD>
// Դ<><D4B4><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Э<EFBFBD><D0AD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>ֿ<EFBFBD><D6BF>Ŀ<EFBFBD>ԴЭ<D4B4><EFBFBD><E9BCB0><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>
// GiteeԴ<65><D4B4><EFBFBD><EFBFBD><EFBFBD>ֿ⣺https://gitee.com/diego2098/ThingsGateway
// GithubԴ<62><D4B4><EFBFBD><EFBFBD><EFBFBD>ֿ⣺https://github.com/kimdiego2098/ThingsGateway
// ʹ<><CAB9><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>https://diego2098.gitee.io/thingsgateway-docs/
// QQȺ<51><C8BA>605534569
//------------------------------------------------------------------------------
#endregion
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using MQTTnet.Client;
using MQTTnet.Exceptions;
using MQTTnet.Formatter;
using MQTTnet.Internal;
using MQTTnet.Protocol;
using System.Collections.Concurrent;
namespace MQTTnet.Extensions.Rpc
{
public sealed class MqttRpcClient : IDisposable
{
readonly IMqttClient _mqttClient;
readonly ConcurrentDictionary<string, AsyncTaskCompletionSource<byte[]>> _waitingCalls = new ConcurrentDictionary<string, AsyncTaskCompletionSource<byte[]>>();
public MqttRpcClient(IMqttClient mqttClient)
{
_mqttClient = mqttClient ?? throw new ArgumentNullException(nameof(mqttClient));
_mqttClient.ApplicationMessageReceivedAsync += HandleApplicationMessageReceivedAsync;
}
public void Dispose()
{
_mqttClient.ApplicationMessageReceivedAsync -= HandleApplicationMessageReceivedAsync;
foreach (var tcs in _waitingCalls)
{
tcs.Value.TrySetCanceled();
}
_waitingCalls.Clear();
}
public async Task<byte[]> ExecuteAsync(MqttRpcTopicPair mqttRpcTopicPair, byte[] payload, MqttQualityOfServiceLevel qualityOfServiceLevel, TimeSpan timeout)
{
using var timeoutToken = new CancellationTokenSource(timeout);
try
{
return await ExecuteAsync(mqttRpcTopicPair, payload, qualityOfServiceLevel, timeoutToken.Token).ConfigureAwait(false);
}
catch (OperationCanceledException exception)
{
if (timeoutToken.IsCancellationRequested)
{
throw new MqttCommunicationTimedOutException(exception);
}
throw;
}
}
public async Task<byte[]> ExecuteAsync(MqttRpcTopicPair mqttRpcTopicPair, byte[] payload, MqttQualityOfServiceLevel qualityOfServiceLevel, CancellationToken cancellationToken = default)
{
if (mqttRpcTopicPair == null)
{
throw new ArgumentNullException(nameof(mqttRpcTopicPair));
}
var requestTopic = mqttRpcTopicPair.RequestTopic;
var responseTopic = mqttRpcTopicPair.ResponseTopic;
if (string.IsNullOrWhiteSpace(requestTopic))
{
throw new MqttProtocolViolationException("RPC request topic is empty.");
}
if (string.IsNullOrWhiteSpace(responseTopic))
{
throw new MqttProtocolViolationException("RPC response topic is empty.");
}
var requestMessageBuilder = new MqttApplicationMessageBuilder().WithTopic(requestTopic).WithPayload(payload).WithQualityOfServiceLevel(qualityOfServiceLevel);
if (_mqttClient.Options.ProtocolVersion == MqttProtocolVersion.V500)
{
requestMessageBuilder.WithResponseTopic(responseTopic);
}
var requestMessage = requestMessageBuilder.Build();
try
{
var awaitable = new AsyncTaskCompletionSource<byte[]>();
if (!_waitingCalls.TryAdd(responseTopic, awaitable))
{
throw new InvalidOperationException();
}
var subscribeOptions = new MqttClientSubscribeOptionsBuilder().WithTopicFilter(responseTopic, qualityOfServiceLevel).Build();
await _mqttClient.SubscribeAsync(subscribeOptions, cancellationToken).ConfigureAwait(false);
await _mqttClient.PublishAsync(requestMessage, cancellationToken).ConfigureAwait(false);
using (cancellationToken.Register(
() =>
{
awaitable.TrySetCanceled();
}))
{
return await awaitable.Task.ConfigureAwait(false);
}
}
finally
{
_waitingCalls.TryRemove(responseTopic, out _);
await _mqttClient.UnsubscribeAsync(responseTopic, CancellationToken.None).ConfigureAwait(false);
}
}
Task HandleApplicationMessageReceivedAsync(MqttApplicationMessageReceivedEventArgs eventArgs)
{
if (!_waitingCalls.TryRemove(eventArgs.ApplicationMessage.Topic, out var awaitable))
{
return CompletedTask.Instance;
}
var payloadBuffer = eventArgs.ApplicationMessage.PayloadSegment.ToArray();
awaitable.TrySetResult(payloadBuffer);
// Set this message to handled to that other code can avoid execution etc.
eventArgs.IsHandled = true;
return CompletedTask.Instance;
}
}
}

View File

@@ -0,0 +1,34 @@
#region copyright
//------------------------------------------------------------------------------
// <20>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>Ϊȫ<CEAA>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
// <20>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EBA3A9><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>Diego<67><6F><EFBFBD><EFBFBD>
// Դ<><D4B4><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Э<EFBFBD><D0AD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>ֿ<EFBFBD><D6BF>Ŀ<EFBFBD>ԴЭ<D4B4><EFBFBD><E9BCB0><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>
// GiteeԴ<65><D4B4><EFBFBD><EFBFBD><EFBFBD>ֿ⣺https://gitee.com/diego2098/ThingsGateway
// GithubԴ<62><D4B4><EFBFBD><EFBFBD><EFBFBD>ֿ⣺https://github.com/kimdiego2098/ThingsGateway
// ʹ<><CAB9><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>https://diego2098.gitee.io/thingsgateway-docs/
// QQȺ<51><C8BA>605534569
//------------------------------------------------------------------------------
#endregion
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using MQTTnet.Protocol;
using System.Text;
namespace MQTTnet.Extensions.Rpc
{
public static class MqttRpcClientExtensions
{
public static Task<byte[]> ExecuteAsync(this MqttRpcClient client, MqttRpcTopicPair mqttRpcTopicPair, string payload, MqttQualityOfServiceLevel qualityOfServiceLevel, TimeSpan timeout)
{
if (client == null) throw new ArgumentNullException(nameof(client));
var buffer = Encoding.UTF8.GetBytes(payload ?? string.Empty);
return client.ExecuteAsync(mqttRpcTopicPair, buffer, qualityOfServiceLevel, timeout);
}
}
}

View File

@@ -0,0 +1,25 @@
#region copyright
//------------------------------------------------------------------------------
// <20>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>Ϊȫ<CEAA>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
// <20>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EBA3A9><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>Diego<67><6F><EFBFBD><EFBFBD>
// Դ<><D4B4><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Э<EFBFBD><D0AD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>ֿ<EFBFBD><D6BF>Ŀ<EFBFBD>ԴЭ<D4B4><EFBFBD><E9BCB0><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>
// GiteeԴ<65><D4B4><EFBFBD><EFBFBD><EFBFBD>ֿ⣺https://gitee.com/diego2098/ThingsGateway
// GithubԴ<62><D4B4><EFBFBD><EFBFBD><EFBFBD>ֿ⣺https://github.com/kimdiego2098/ThingsGateway
// ʹ<><CAB9><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>https://diego2098.gitee.io/thingsgateway-docs/
// QQȺ<51><C8BA>605534569
//------------------------------------------------------------------------------
#endregion
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
namespace MQTTnet.Extensions.Rpc
{
public sealed class MqttRpcTopicPair
{
public string RequestTopic { get; set; }
public string ResponseTopic { get; set; }
}
}

View File

@@ -1,6 +1,5 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk.Razor">
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
@@ -10,12 +9,29 @@
<ItemGroup>
<ProjectReference Include="..\..\Web\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj" />
<ProjectReference Include="..\..\Web\ThingsGateway.Components\ThingsGateway.Components.csproj">
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
<ExcludeAssets>runtime</ExcludeAssets>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\DriverDebugUIBase.cs" Link="DebugPage\DriverDebugUIBase.cs" />
<Compile Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\DriverDebugUIPage.razor.cs" Link="DebugPage\DriverDebugUIPage.razor.cs" />
<Compile Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\SerialSessionPage.razor.cs" Link="DebugPage\SerialSessionPage.razor.cs" />
<Compile Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\TcpClientPage.razor.cs" Link="DebugPage\TcpClientPage.razor.cs" />
<Compile Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\TcpServerPage.razor.cs" Link="DebugPage\TcpServerPage.razor.cs" />
<Compile Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\UdpSessionPage.razor.cs" Link="DebugPage\UdpSessionPage.razor.cs" />
<Content Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\DriverDebugUIPage.razor" Link="DebugPage\DriverDebugUIPage.razor" />
<Content Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\SerialSessionPage.razor" Link="DebugPage\SerialSessionPage.razor" />
<Content Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\TcpClientPage.razor" Link="DebugPage\TcpClientPage.razor" />
<Content Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\TcpServerPage.razor" Link="DebugPage\TcpServerPage.razor" />
<Content Include="..\..\Demo\ThingsGateway.Foundation.Demo.Rcl\Components\DebugPage\UdpSessionPage.razor" Link="DebugPage\UdpSessionPage.razor" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,35 @@
@*
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
*@
@using System.Net.Http
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using BlazorComponent
@using Masa.Blazor
@using Masa.Blazor.Presets
@using System.Net.Http.Json
@using System.IO;
@using System.Text.Json;
@using System.Reflection;
@using ThingsGateway.Components;
@using ThingsGateway.Admin.Core;
@using ThingsGateway.Foundation;
@using ThingsGateway.Foundation.Extension.String;
@using ThingsGateway.Admin.Application;
@using ThingsGateway.Core;
@using ThingsGateway.Gateway.Application;
@using ThingsGateway.Gateway.Core;

View File

@@ -36,7 +36,8 @@
<ExcludeAssets>runtime</ExcludeAssets>
</ProjectReference>
</ItemGroup>
<PropertyGroup>
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>
</Project>

View File

@@ -7,12 +7,8 @@
<ItemGroup>
<PackageReference Include="RabbitMQ.Client" Version="6.5.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Web\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj" />
</ItemGroup>
</Project>

View File

@@ -56,8 +56,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Admin", "Admin", "{79E7042F
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gateway", "Gateway", "{000C3C62-345E-451C-8CEE-6F2C6A087116}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Foundation.Demo", "Demo\ThingsGateway.Foundation.Demo\ThingsGateway.Foundation.Demo.csproj", "{D09CDB99-4A2B-4592-956E-9BE9D13B0FAD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Gateway.ApiController", "Web\ThingsGateway.Gateway.ApiController\ThingsGateway.Gateway.ApiController.csproj", "{5D7BE567-2345-46C8-9F54-DDC1DA96D198}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Gateway.Application", "Web\ThingsGateway.Gateway.Application\ThingsGateway.Gateway.Application.csproj", "{5CF1B3EC-84E2-484A-8DFC-2ECD2EE18E2F}"
@@ -101,7 +99,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UpgradeManger", "UpgradeMan
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.UpgradeManger", "UpgradeManger\ThingsGateway.UpgradeManger\ThingsGateway.UpgradeManger.csproj", "{84362F1D-E788-4646-B555-5A3629B55EFC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThingsGateway.Upgrade", "UpgradeManger\ThingsGateway.Upgrade\ThingsGateway.Upgrade.csproj", "{681F774F-7B0B-450A-917C-1385E1847CA6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Upgrade", "UpgradeManger\ThingsGateway.Upgrade\ThingsGateway.Upgrade.csproj", "{681F774F-7B0B-450A-917C-1385E1847CA6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Foundation.Demo.Rcl", "Demo\ThingsGateway.Foundation.Demo.Rcl\ThingsGateway.Foundation.Demo.Rcl.csproj", "{637A662B-7B70-4CE8-8F5F-0A095B9D77EC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Foundation.Demo.Photino", "Demo\ThingsGateway.Foundation.Demo.Photino\ThingsGateway.Foundation.Demo.Photino.csproj", "{C5519C51-0A0C-4317-A43D-FFBB6B344ACB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -165,10 +167,6 @@ Global
{51313113-7BB8-494E-9C24-6787BECE39BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{51313113-7BB8-494E-9C24-6787BECE39BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{51313113-7BB8-494E-9C24-6787BECE39BB}.Release|Any CPU.Build.0 = Release|Any CPU
{D09CDB99-4A2B-4592-956E-9BE9D13B0FAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D09CDB99-4A2B-4592-956E-9BE9D13B0FAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D09CDB99-4A2B-4592-956E-9BE9D13B0FAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D09CDB99-4A2B-4592-956E-9BE9D13B0FAD}.Release|Any CPU.Build.0 = Release|Any CPU
{5D7BE567-2345-46C8-9F54-DDC1DA96D198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5D7BE567-2345-46C8-9F54-DDC1DA96D198}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5D7BE567-2345-46C8-9F54-DDC1DA96D198}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -225,6 +223,14 @@ Global
{681F774F-7B0B-450A-917C-1385E1847CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{681F774F-7B0B-450A-917C-1385E1847CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{681F774F-7B0B-450A-917C-1385E1847CA6}.Release|Any CPU.Build.0 = Release|Any CPU
{637A662B-7B70-4CE8-8F5F-0A095B9D77EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{637A662B-7B70-4CE8-8F5F-0A095B9D77EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{637A662B-7B70-4CE8-8F5F-0A095B9D77EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{637A662B-7B70-4CE8-8F5F-0A095B9D77EC}.Release|Any CPU.Build.0 = Release|Any CPU
{C5519C51-0A0C-4317-A43D-FFBB6B344ACB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C5519C51-0A0C-4317-A43D-FFBB6B344ACB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C5519C51-0A0C-4317-A43D-FFBB6B344ACB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C5519C51-0A0C-4317-A43D-FFBB6B344ACB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -246,7 +252,6 @@ Global
{51313113-7BB8-494E-9C24-6787BECE39BB} = {BB9C2A85-7A8A-4CF9-BF44-34DE9848EC15}
{79E7042F-F9E3-4D87-BFA9-4B7DD9736735} = {9EB46BB6-D4EA-4B06-95EE-6C971E653030}
{000C3C62-345E-451C-8CEE-6F2C6A087116} = {9EB46BB6-D4EA-4B06-95EE-6C971E653030}
{D09CDB99-4A2B-4592-956E-9BE9D13B0FAD} = {95008B83-0324-4A7C-80DE-2BBDDD1A9099}
{5D7BE567-2345-46C8-9F54-DDC1DA96D198} = {000C3C62-345E-451C-8CEE-6F2C6A087116}
{5CF1B3EC-84E2-484A-8DFC-2ECD2EE18E2F} = {000C3C62-345E-451C-8CEE-6F2C6A087116}
{CD0F211A-F65B-4026-9750-68AC3C70D012} = {000C3C62-345E-451C-8CEE-6F2C6A087116}
@@ -262,6 +267,8 @@ Global
{8A9F6586-3320-4F03-B3DA-09BF39AA90A0} = {CC8D0880-B73E-4DFC-9052-86504728708E}
{84362F1D-E788-4646-B555-5A3629B55EFC} = {237C7BC5-7B07-40B5-AF42-CE2F8E0893C3}
{681F774F-7B0B-450A-917C-1385E1847CA6} = {237C7BC5-7B07-40B5-AF42-CE2F8E0893C3}
{637A662B-7B70-4CE8-8F5F-0A095B9D77EC} = {95008B83-0324-4A7C-80DE-2BBDDD1A9099}
{C5519C51-0A0C-4317-A43D-FFBB6B344ACB} = {95008B83-0324-4A7C-80DE-2BBDDD1A9099}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C49B2D3E-6818-4E28-91B7-6E4E7E264BBB}

View File

@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>3.0.0.0</Version>
<Version>3.0.0.4</Version>
<LangVersion>latest</LangVersion>
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
<Authors>Diego</Authors>

View File

@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>3.0.0.0</Version>
<Version>3.0.0.4</Version>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>

View File

@@ -28,7 +28,7 @@ namespace ThingsGateway.Admin.Application;
/// </summary>
public class OperDispatchProxy : AspectDispatchProxy, IDispatchProxy
{
static readonly Parser Parser = Parser.GetDefault();
/// <summary>
/// 服务提供器可以用来解析服务Services.GetService()
@@ -180,7 +180,8 @@ public class OperDispatchProxy : AspectDispatchProxy, IDispatchProxy
ClientInfo clientInfo = null;
if (str.HasValue)
{
clientInfo = Parser.Parse(str);
var uaParser = Parser.GetDefault();
clientInfo = uaParser.Parse(str);
}
StringBuilder stringBuilder = new();

View File

@@ -10,6 +10,7 @@
//------------------------------------------------------------------------------
#endregion
using Furion;
using Furion.Schedule;
namespace ThingsGateway.Admin.Application;
@@ -25,7 +26,7 @@ public class LogJob : IJob
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var db = DbContext.Db.CopyNew();
var daysAgo = 30; // 删除30天以前
var daysAgo = App.GetConfig<int?>("Logging:LogJob:DaysAgo") ?? 30;
await db.DeleteableWithAttr<SysVisitLog>().Where(u => u.CreateTime < DateTimeExtensions.CurrentDateTime.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除访问日志
await db.DeleteableWithAttr<SysOperateLog>().Where(u => u.CreateTime < DateTimeExtensions.CurrentDateTime.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除操作日志
}

View File

@@ -14,7 +14,7 @@
@namespace ThingsGateway.Admin.Blazor
@using Microsoft.AspNetCore.SignalR.Client;
@using ThingsGateway.Admin.Application;
@implements IAsyncDisposable;
@code {
HubConnection _hubConnection;
@@ -32,6 +32,7 @@
await _hubConnection.DisposeAsync();
}
}
/// <inheritdoc/>
protected override async Task OnAfterRenderAsync(bool firstRender)
{

View File

@@ -5,10 +5,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.8.44" />
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.8.44" />
<PackageReference Include="Furion.Pure" Version="4.8.8.44" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.107" />
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.8.45" />
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.8.45" />
<PackageReference Include="Furion.Pure" Version="4.8.8.45" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.108" />
<PackageReference Include="UAParser" Version="3.1.47" />
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
</ItemGroup>

View File

@@ -0,0 +1,34 @@
#region copyright
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
using Mapster;
using System.Text;
namespace ThingsGateway.Gateway.Application;
/// <summary>
/// <see cref="HistoryValue"/> Master规则
/// </summary>
public class EncodingMapper : IRegister
{
/// <inheritdoc/>
public void Register(TypeAdapterConfig config)
{
config.ForType<Encoding, Encoding>()
.Ignore(dest => dest.EncoderFallback)
.Ignore(dest => dest.DecoderFallback)
.ConstructUsing(src => Encoding.GetEncoding(src.CodePage));
}
}

View File

@@ -10,6 +10,7 @@
//------------------------------------------------------------------------------
#endregion
using Furion;
using Furion.Schedule;
namespace ThingsGateway.Gateway.Application;
@@ -25,7 +26,7 @@ public class BackendAndRpcLogCleanJob : IJob
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var db = DbContext.Db.CopyNew();
var daysAgo = 30; // 删除30天以前
var daysAgo = App.GetConfig<int?>("Logging:LogJob:DaysAgo") ?? 30;
await db.DeleteableWithAttr<BackendLog>().Where(u => u.LogTime < DateTimeExtensions.CurrentDateTime.AddDays(-daysAgo)).ExecuteCommandAsync();
await db.DeleteableWithAttr<RpcLog>().Where(u => u.LogTime < DateTimeExtensions.CurrentDateTime.AddDays(-daysAgo)).ExecuteCommandAsync();
}

View File

@@ -59,6 +59,18 @@
"CreateUserId": "212725263002001",
"IsDelete": false,
"SortCode": "0"
},
{
"Id": "455090791870726",
"FileName": "ThingsGateway.Plugin.LEIDIANAPI",
"AssembleName": "LEIDIANAPI",
"DriverTypeEnum": "Collect",
"FilePath": "Plugins/ThingsGateway.Plugin.LEIDIANAPI/ThingsGateway.Plugin.LEIDIANAPI.dll",
"CreateTime": "2023-08-29 09:09:12.3812926",
"CreateUser": "superAdmin",
"CreateUserId": "212725263002001",
"IsDelete": false,
"SortCode": "0"
}
]
}

View File

@@ -95,23 +95,6 @@
"UpdateUser": "superAdmin",
"UpdateUserId": "212725263002001"
},
{
"Id": "200001904",
"Title": "管理网关",
"Icon": "mdi-database-sync-outline",
"Component": "/gatewayconfig/manage",
"Category": "MENU",
"ParentId": "200001",
"SortCode": "3",
"TargetType": "SELF",
"CreateTime": "2023-02-26 01:02:12.089",
"CreateUser": "superAdmin",
"CreateUserId": "212725263002001",
"IsDelete": false,
"UpdateTime": "2023-03-03 18:01:49.2309339",
"UpdateUser": "superAdmin",
"UpdateUserId": "212725263002001"
},
{
"Id": "200001004",
"Title": "运行状态",

View File

@@ -48,6 +48,18 @@
"IsDelete": false,
"SortCode": "0"
},
{
"Id": "455089791172870",
"FileName": "ThingsGateway.Plugin.TS550",
"AssembleName": "TS550Serial",
"DriverTypeEnum": "Collect",
"FilePath": "Plugins/ThingsGateway.Plugin.TS550/ThingsGateway.Plugin.TS550.dll",
"CreateTime": "2023-08-29 09:05:08.0701176",
"CreateUser": "superAdmin",
"CreateUserId": "212725263002001",
"IsDelete": false,
"SortCode": "0"
},
{
"Id": "455089818636549",
"FileName": "ThingsGateway.Plugin.Vigor",

View File

@@ -123,8 +123,8 @@ public class RpcSingletonService : ISingleton
}
else
{
WriteVariables.Add(dev, new());
WriteVariables[dev].Add(tag, item.Value);
WriteMethods.Add(dev, new());
WriteMethods[dev].Add(tag, item.Value);
}
}
}

View File

@@ -32,7 +32,7 @@
<ItemGroup>
<PackageReference Include="Hardware.Info" Version="100.0.0" />
<PackageReference Include="CS-Script" Version="4.8.1" />
<PackageReference Include="CS-Script" Version="4.8.3" />
<!--CS-Script与Furion冲突直接安装覆盖版本-->
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.7.0" />
<PackageReference Include="MQTTnet" Version="4.3.1.873" />

View File

@@ -478,8 +478,11 @@ public class AlarmWorker : BackgroundService
if (eventEnum == EventEnum.Alarm)
{
RealAlarmDeviceVariables.RemoveWhere(it => it.Id == item.Id);
RealAlarmDeviceVariables.Add(item);
lock (RealAlarmDeviceVariables)
{
RealAlarmDeviceVariables.RemoveWhere(it => it.Id == item.Id);
RealAlarmDeviceVariables.Add(item);
}
}
else
{

View File

@@ -275,7 +275,7 @@ public class CollectDeviceCore
/// <summary>
/// 初始化
/// </summary>
internal bool Init(CollectDeviceRunTime device)
internal bool Init(CollectDeviceRunTime device, bool upDevice = false)
{
if (device == null)
{
@@ -292,10 +292,13 @@ public class CollectDeviceCore
//更新插件信息
CreatDriver();
//全局数据更新
if (isUpDevice)
if (isUpDevice || upDevice)
{
GlobalDeviceData.CollectDevices.RemoveWhere(it => it.Id == device.Id);
GlobalDeviceData.CollectDevices.Add(device);
lock (GlobalDeviceData.CollectDevices)
{
GlobalDeviceData.CollectDevices.RemoveWhere(it => it.Id == device.Id);
GlobalDeviceData.CollectDevices.Add(device);
}
}
return true;
}
@@ -599,10 +602,12 @@ public class CollectDeviceCore
if (!string.IsNullOrEmpty(deviceVariableMethodSource.MethodStr) || !string.IsNullOrEmpty(value))
{
string[] strs1 = deviceVariableMethodSource.MethodStr?.Trim()?.TrimEnd(';').Split(';');
string[] strs1 = new string[0];
if (!string.IsNullOrEmpty(deviceVariableMethodSource.MethodStr))
strs1 = deviceVariableMethodSource.MethodStr?.Trim()?.TrimEnd(';').Split(';');
string[] strs2 = value?.Trim()?.TrimEnd(';').Split(';');
//通过分号分割,并且合并参数
var strs = strs1?.SpliceArray(strs2);
var strs = GenericExtensions.SpliceArray(strs1, strs2);
int index = 0;
for (int i = 0; i < ps.Length; i++)
{
@@ -612,6 +617,13 @@ public class CollectDeviceCore
}
else
{
if (strs.Length <= i)
{
if (ps[i].HasDefaultValue)
{
break;
}
}
//得到对于的方法参数值
deviceVariableMethodSource.MethodObj[i] = deviceVariableMethodSource.Converter.ConvertFrom(strs[index], ps[i].ParameterType);
index++;
@@ -662,7 +674,17 @@ public class CollectDeviceCore
break;
}
result = data?.Adapt<OperResult<string>>();
var result1 = data?.Adapt<OperResult<object>>();
Type type = result1.Content?.GetType();
if (type == null || type.IsPrimitive || type == typeof(string))
{
result = data?.Adapt<OperResult<string>>();
}
else
{
result = new(result1);
result.Content = result1.Content?.ToJsonString();
}
if (method.HasReturn && result != null && result.IsSuccess)
{
var content = deviceVariableMethodSource.Converter.ConvertTo(result.Content?.ToString()?.Replace($"\0", ""));

View File

@@ -132,7 +132,6 @@ public class CollectDeviceWorker : BackgroundService
if (devThread == null) { throw Oops.Bah($"更新设备线程失败,不存在{devId}为id的设备"); }
//这里先停止采集,操作会使线程取消,需要重新恢复线程
await devThread.StopThreadAsync();
CollectDeviceRunTime dev = isUpdateDb ? (await App.GetService<ICollectDeviceService>().GetCollectDeviceRuntimeAsync(devId)).FirstOrDefault() : devCore.Device;
if (dev == null)
@@ -143,6 +142,21 @@ public class CollectDeviceWorker : BackgroundService
{
CollectDeviceThreads.Remove(devThread);
}
else
{
//单个设备重启时,注意同一线程的其他设备也会停止,需要重新初始化
foreach (var item in devThread.CollectDeviceCores)
{
item.Init(item.Device, true);
}
await devThread.StartThreadAsync();
//如果是组态更改过了,需要重新获取变量/设备运行态的值
if (isUpdateDb)
await StartOtherHostService();
}
}
else
{
@@ -155,6 +169,14 @@ public class CollectDeviceWorker : BackgroundService
{
CollectDeviceThreads.Remove(devThread);
}
else
{
//单个设备重启时,注意同一线程的其他设备也会停止,需要重新初始化
foreach (var item in devThread.CollectDeviceCores)
{
item.Init(item.Device, true);
}
}
//需判断是否同一通道
var newDevThread = DeviceThread(devCore);
@@ -393,6 +415,14 @@ public class CollectDeviceWorker : BackgroundService
{
CollectDeviceThreads.Remove(devThread);
}
else
{
//单个设备重启时,注意同一线程的其他设备也会停止,需要重新初始化
foreach (var item in devThread.CollectDeviceCores)
{
item.Init(item.Device, true);
}
}
//需判断是否同一通道
var newDevThread = DeviceThread(devCore);
await newDevThread.StartThreadAsync();

View File

@@ -111,17 +111,21 @@ public class HardwareInfoWorker : BackgroundService
APPInfo.Environment = App.HostEnvironment.IsDevelopment() ? "Development" : "Production";
APPInfo.Stage = App.HostEnvironment.IsStaging() ? "Stage" : "非Stage"; // 是否Stage环境
APPInfo.UpdateTime = DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat();
var enable = App.GetConfig<bool?>("HardwareInfo:Enable") ?? true;
while (!stoppingToken.IsCancellationRequested)
{
try
{
APPInfo.UpdateTime = DateTimeExtensions.CurrentDateTime.ToDefaultDateTimeFormat();
APPInfo.RemoteIp = await GetIpFromOnlineAsync();
HardwareInfo?.RefreshMemoryStatus();
HardwareInfo?.RefreshMemoryList();
HardwareInfo?.RefreshNetworkAdapterList();
HardwareInfo?.RefreshCPUList();
if (enable)
{
HardwareInfo?.RefreshMemoryStatus();
HardwareInfo?.RefreshMemoryList();
HardwareInfo?.RefreshNetworkAdapterList();
HardwareInfo?.RefreshCPUList();
}
//10秒更新一次
await Task.Delay(10000, stoppingToken);
}

View File

@@ -153,6 +153,15 @@ public class UploadDeviceWorker : BackgroundService
{
UploadDeviceThreads.Remove(devThread);
}
else
{
foreach (var item in devThread.UploadDeviceCores)
{
item.Init(item.Device);
}
await devThread.StartThreadAsync();
}
}
else
{
@@ -165,7 +174,13 @@ public class UploadDeviceWorker : BackgroundService
{
UploadDeviceThreads.Remove(devThread);
}
else
{
foreach (var item in devThread.UploadDeviceCores)
{
item.Init(item.Device);
}
}
//需判断是否同一通道
var newDevThread = DeviceThread(devCore);
await newDevThread.StartThreadAsync();

View File

@@ -23,26 +23,26 @@
@inject MasaBlazor MasaBlazor
<MDialog Persistent Value="Visible" Width=500 Fullscreen=MasaBlazor.Breakpoint.Mobile>
<MCard Flat>
<MCard Flat>
<MSubheader Class="pt-4 font-weight-black"> 写入值 </MSubheader>
<MTextarea Class="pa-4" Dense Outlined HideDetails="@("auto")" @bind-Value=@Content />
<MCardActions>
<MButton Class="pa-3" OnClick=ValueChanged Color="primary">
写入
</MButton>
<MButton Class="pa-3" OnClick=ClosePopupAsync Color="red">
取消
</MButton>
</MCardActions>
<MCardActions>
<MButton Class="pa-3" OnClick=ValueChanged Color="primary">
写入
</MButton>
<MButton Class="pa-3" OnClick=ClosePopupAsync Color="red">
取消
</MButton>
</MCardActions>
</MCard>
</MDialog>
<MDialog Value="Visible" MaxWidth="360">
</MCard>
</MDialog>
<MDialog Value="Visible" MaxWidth="360">
</MDialog>
</MDialog>
@code {
@code {
[Parameter, EditorRequired]
public string Content { get; set; }
[Inject]
@@ -54,7 +54,7 @@
try
{
await OnSaveAsync.InvokeAsync(Content);
await InvokeAsync(async () => await PopupService.EnqueueSnackbarAsync("成功", AlertTypes.Success));
//await InvokeAsync(async () => await PopupService.EnqueueSnackbarAsync("成功", AlertTypes.Success));
await ClosePopupAsync();
}
catch (Exception ex)

View File

@@ -16,6 +16,8 @@ using Furion;
using Mapster;
using Masa.Blazor;
using Microsoft.AspNetCore.Components;
using SqlSugar;
@@ -155,6 +157,11 @@ public partial class DeviceVariableRunTimePage
{
throw new(data.FirstOrDefault().Value.Message);
}
else
{
await PopupService.EnqueueSnackbarAsync(data.ToJsonString(true), AlertTypes.Info);
}
}
private async Task WriteAsync(DeviceVariableRunTime collectVariableRunTime)
{

View File

@@ -41,8 +41,15 @@ public partial class DriverDebugPage
{
foreach (var item in (deviceGroup.Children ?? new()).ToArray())
{
var driver = BackgroundServiceUtil.GetBackgroundService<CollectDeviceWorker>().GetDebugUI(item.Id);
if (driver == null)
try
{
var driver = BackgroundServiceUtil.GetBackgroundService<CollectDeviceWorker>().GetDebugUI(item.Id);
if (driver == null)
{
deviceGroup.Children.Remove(item);
}
}
catch
{
deviceGroup.Children.Remove(item);
}

View File

@@ -27,7 +27,6 @@ namespace ThingsGateway.Web.Core
/// </summary>
public class LoggingMonitorComponent : IServiceComponent
{
private Parser Parser = Parser.GetDefault();
/// <inheritdoc/>
public void Load(IServiceCollection services, ComponentContext componentContext)
{
@@ -42,8 +41,9 @@ namespace ThingsGateway.Web.Core
//获取头
var userAgent = httpContext.Request.Headers["User-Agent"];
if (string.IsNullOrEmpty(userAgent)) userAgent = "Other";//如果没有这个头就指定一个
var uaParser = Parser.GetDefault();
//获取客户端信息
var client = Parser.Parse(userAgent);
var client = uaParser.Parse(userAgent);
// 获取控制器/操作描述器
var controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor;
//操作名称默认是控制器名加方法名,自定义操作名称要在action上加Description特性

View File

@@ -1,10 +1,12 @@
{
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
"Urls": "http://*:7200;",
"Logging": {
"LogLevel": {
"File": "Information", //程序日志写入文件等级,不包含网关日志
"BackendLog": "Information", //网关运行日志存入数据库等级,部署推荐Error
"BackendLog": "Information", //网关运行日志存入数据库等级,部署推荐Warning
"Default": "Information", //默认等级
"Console": "Information", //控制台输出日志等级
"Microsoft": "Warning",
@@ -12,33 +14,41 @@
},
"LogEnable": {
"File": true //程序日志写入文件
},
"LogJob": {
"DaysAgo": 30 //删除多少天前的日志任务会间隔24小时执行一次
}
},
//动态API设备
"DynamicApiControllerSettings": {
"LowercaseRoute": false, //是否采用小写路由bool 类型,默认 true
"KeepName": true, //是否保持原有名称不处理bool默认 false
"AsLowerCamelCase": true //启用小驼峰命名(首字母小写),默认 false
"HardwareInfo": {
"Enable": true //启用硬件信息获取,部分系统/硬件不支持相关方法设为false
},
"FriendlyExceptionSettings": {
"DefaultErrorMessage": "系统异常,请联系管理员",
"HideErrorCode": true
},
//动态API设备
"DynamicApiControllerSettings": {
"LowercaseRoute": false, //是否采用小写路由bool 类型,默认 true
"KeepName": true, //是否保持原有名称不处理bool默认 false
"AsLowerCamelCase": true //启用小驼峰命名(首字母小写),默认 false
},
//排除特定配置文件
"IgnoreConfigurationFiles": [
"Navs.json",
"sys_user.json",
"sys_config.json",
"sys_relation.json",
"sys_resource.json",
"sys_role.json",
"driver_plugin.json"
],
"FriendlyExceptionSettings": {
"DefaultErrorMessage": "系统异常,请联系管理员",
"HideErrorCode": true
},
"CorsAccessorSettings": {
"WithExposedHeaders": [ "Content-Disposition" ], // 如果前端不代理且是axios请求
"SignalRSupport": true // 启用 SignalR 跨域支持
}
}
//排除特定配置文件
"IgnoreConfigurationFiles": [
"Navs.json",
"sys_user.json",
"sys_config.json",
"sys_relation.json",
"sys_resource.json",
"sys_role.json",
"driver_plugin.json"
],
"CorsAccessorSettings": {
"WithExposedHeaders": [ "Content-Disposition" ], // 如果前端不代理且是axios请求
"SignalRSupport": true // 启用 SignalR 跨域支持
}
}

View File

@@ -1,8 +1,8 @@
{
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
"UpgradeConfig": {
"FileEnable": true, //是否启用软件自动更新
"ConfigEnable": true, //是否启用配置自动更新
"FileEnable": false, //是否启用软件自动更新
"ConfigEnable": false, //是否启用配置自动更新
"UpdateServerUri": "127.0.0.1:7400", //管理服务IP
"VerifyToken": "ThingsGateway", //验证Token
"Name": "测试" //友好名称

View File

@@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-ef": {
"version": "7.0.11",
"commands": [
"dotnet-ef"
]
}
}
}

View File

@@ -3,7 +3,8 @@
<PropertyGroup>
<ApplicationIcon>wwwroot\favicon.ico</ApplicationIcon>
<ServerGarbageCollection>false</ServerGarbageCollection>
<!--<ServerGarbageCollection>false</ServerGarbageCollection>-->
<!--<PlatformTarget>x86</PlatformTarget>-->
</PropertyGroup>

View File

@@ -1,5 +1,5 @@
cd ..
sc create ThingsGateway binPath=%~dp0ThingsGateway.Web.Entry.exe start= auto
sc create ThingsGateway binPath= %~dp0ThingsGateway.Web.Entry.exe start= auto
sc description ThingsGateway "ThingsGateway"
Net Start ThingsGateway
pause

View File

@@ -1,12 +1,12 @@
import lunr from "E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\lunr\\lunr.js";
require("E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\lunr-languages\\lunr.stemmer.support.js")(lunr);
import lunr from "E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\lunr\\lunr.js";
require("E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\lunr-languages\\lunr.stemmer.support.js")(lunr);
require("@easyops-cn/docusaurus-search-local/dist/client/shared/lunrLanguageZh").lunrLanguageZh(lunr);
require("E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\lunr-languages\\lunr.multi.js")(lunr);
require("E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\lunr-languages\\lunr.multi.js")(lunr);
export const language = ["en","zh"];
export const removeDefaultStopWordFilter = false;
export const removeDefaultStemmer = false;
export { default as Mark } from "E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\mark.js\\dist\\mark.js"
export const searchIndexUrl = "search-index{dir}.json?_=f5fd3ef8";
export { default as Mark } from "E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\mark.js\\dist\\mark.js"
export const searchIndexUrl = "search-index{dir}.json?_=2660899d";
export const searchResultLimits = 8;
export const searchResultContextMaxLength = 50;
export const explicitSearchResultPath = true;

View File

@@ -61,15 +61,15 @@
"39f79d48": [
229
],
"3f659ef2": [
6611
],
"40146f88": [
7128
],
"43dc5fb8": [
445
],
"444af13b": [
4875
],
"49c09695": [
7929
],
@@ -108,9 +108,6 @@
"74e9e182": [
2274
],
"760264af": [
6373
],
"76f0de82": [
1717
],
@@ -142,6 +139,9 @@
"9da45bac": [
9058
],
"a1b6cb8c": [
4956
],
"a426a3b5": [
9490
],
@@ -154,8 +154,8 @@
"abad1c1c": [
6950
],
"c361d1eb": [
8175
"b792992d": [
6270
],
"c4f5d8e4": [
532,
@@ -206,9 +206,9 @@
"53": {
"js": [
{
"file": "assets/js/935f2afb.a45d7d7b.js",
"hash": "b573fe1a5062db80",
"publicPath": "/thingsgateway-docs/assets/js/935f2afb.a45d7d7b.js"
"file": "assets/js/935f2afb.d846a348.js",
"hash": "76b716cd396dfa7b",
"publicPath": "/thingsgateway-docs/assets/js/935f2afb.d846a348.js"
}
]
},
@@ -216,7 +216,7 @@
"js": [
{
"file": "assets/js/196f2029.36590c94.js",
"hash": "7ad3f212d29df7a4",
"hash": "4cb69b2f645f97f5",
"publicPath": "/thingsgateway-docs/assets/js/196f2029.36590c94.js"
}
]
@@ -224,9 +224,9 @@
"179": {
"js": [
{
"file": "assets/js/main.104c9151.js",
"hash": "069a1b81eeec3db8",
"publicPath": "/thingsgateway-docs/assets/js/main.104c9151.js"
"file": "assets/js/main.d1a092f5.js",
"hash": "dff67da67f893d68",
"publicPath": "/thingsgateway-docs/assets/js/main.d1a092f5.js"
}
]
},
@@ -234,7 +234,7 @@
"js": [
{
"file": "assets/js/39f79d48.61b5661b.js",
"hash": "dc581ebbf04e3195",
"hash": "fc309cbe31b74deb",
"publicPath": "/thingsgateway-docs/assets/js/39f79d48.61b5661b.js"
}
]
@@ -242,18 +242,18 @@
"359": {
"js": [
{
"file": "assets/js/ca43e8da.52aea27e.js",
"hash": "9e7c6f71b5089e85",
"publicPath": "/thingsgateway-docs/assets/js/ca43e8da.52aea27e.js"
"file": "assets/js/ca43e8da.0206f8e2.js",
"hash": "87fc3f0954b78957",
"publicPath": "/thingsgateway-docs/assets/js/ca43e8da.0206f8e2.js"
}
]
},
"445": {
"js": [
{
"file": "assets/js/43dc5fb8.36fb169c.js",
"hash": "21315583cf077da2",
"publicPath": "/thingsgateway-docs/assets/js/43dc5fb8.36fb169c.js"
"file": "assets/js/43dc5fb8.1fed5fc9.js",
"hash": "4e8d4910497629dd",
"publicPath": "/thingsgateway-docs/assets/js/43dc5fb8.1fed5fc9.js"
}
]
},
@@ -269,9 +269,9 @@
"551": {
"js": [
{
"file": "assets/js/5f324ac5.6c44ed2f.js",
"hash": "56afeb3fa211a01b",
"publicPath": "/thingsgateway-docs/assets/js/5f324ac5.6c44ed2f.js"
"file": "assets/js/5f324ac5.784cab5b.js",
"hash": "1053f5849792f5fd",
"publicPath": "/thingsgateway-docs/assets/js/5f324ac5.784cab5b.js"
}
]
},
@@ -279,7 +279,7 @@
"js": [
{
"file": "assets/js/e86f980e.ad719727.js",
"hash": "20373a4461873377",
"hash": "947756b90a35c02b",
"publicPath": "/thingsgateway-docs/assets/js/e86f980e.ad719727.js"
}
]
@@ -288,7 +288,7 @@
"js": [
{
"file": "assets/js/8e930223.9f8a8e14.js",
"hash": "5ebed98490f060e8",
"hash": "fe027ae5b41cd256",
"publicPath": "/thingsgateway-docs/assets/js/8e930223.9f8a8e14.js"
}
]
@@ -296,36 +296,36 @@
"1303": {
"js": [
{
"file": "assets/js/runtime~main.bac3ab81.js",
"hash": "f0da89ac28a3fdb6",
"publicPath": "/thingsgateway-docs/assets/js/runtime~main.bac3ab81.js"
"file": "assets/js/runtime~main.f6da365c.js",
"hash": "4f180d3ee7350e18",
"publicPath": "/thingsgateway-docs/assets/js/runtime~main.f6da365c.js"
}
]
},
"1518": {
"js": [
{
"file": "assets/js/7bbbeda9.fcf3209c.js",
"hash": "64633c4a172c4cee",
"publicPath": "/thingsgateway-docs/assets/js/7bbbeda9.fcf3209c.js"
"file": "assets/js/7bbbeda9.e42a62e7.js",
"hash": "d3bb62434dbdfe90",
"publicPath": "/thingsgateway-docs/assets/js/7bbbeda9.e42a62e7.js"
}
]
},
"1717": {
"js": [
{
"file": "assets/js/76f0de82.3bc61a08.js",
"hash": "e80793f5114b6a26",
"publicPath": "/thingsgateway-docs/assets/js/76f0de82.3bc61a08.js"
"file": "assets/js/76f0de82.40ddc7d3.js",
"hash": "58f2345d278f817e",
"publicPath": "/thingsgateway-docs/assets/js/76f0de82.40ddc7d3.js"
}
]
},
"1822": {
"js": [
{
"file": "assets/js/f05a39b7.77baaf67.js",
"hash": "d2578b4ad9c81e56",
"publicPath": "/thingsgateway-docs/assets/js/f05a39b7.77baaf67.js"
"file": "assets/js/f05a39b7.ba620b20.js",
"hash": "45780fd223d26c99",
"publicPath": "/thingsgateway-docs/assets/js/f05a39b7.ba620b20.js"
}
]
},
@@ -333,7 +333,7 @@
"js": [
{
"file": "assets/js/8aa4b8ad.fcf68c5f.js",
"hash": "b9ad8051f3d1d01c",
"hash": "5b0ed7f462961b64",
"publicPath": "/thingsgateway-docs/assets/js/8aa4b8ad.fcf68c5f.js"
}
]
@@ -341,18 +341,18 @@
"2247": {
"js": [
{
"file": "assets/js/5178350f.a6cdc43d.js",
"hash": "ed73bd243cd4cf99",
"publicPath": "/thingsgateway-docs/assets/js/5178350f.a6cdc43d.js"
"file": "assets/js/5178350f.9fcce9fb.js",
"hash": "e88cc68a10b3fd45",
"publicPath": "/thingsgateway-docs/assets/js/5178350f.9fcce9fb.js"
}
]
},
"2274": {
"js": [
{
"file": "assets/js/74e9e182.0cc07587.js",
"hash": "66398711077dcfc7",
"publicPath": "/thingsgateway-docs/assets/js/74e9e182.0cc07587.js"
"file": "assets/js/74e9e182.9f64165e.js",
"hash": "3bcdaccf33e8f603",
"publicPath": "/thingsgateway-docs/assets/js/74e9e182.9f64165e.js"
}
]
},
@@ -360,7 +360,7 @@
"js": [
{
"file": "assets/js/8ced3e65.1dd2c110.js",
"hash": "e607b67dee492e4d",
"hash": "79c97a1d4cc1564c",
"publicPath": "/thingsgateway-docs/assets/js/8ced3e65.1dd2c110.js"
}
]
@@ -368,18 +368,18 @@
"2419": {
"js": [
{
"file": "assets/js/28e31f38.c9b15f29.js",
"hash": "d6755af997ee5668",
"publicPath": "/thingsgateway-docs/assets/js/28e31f38.c9b15f29.js"
"file": "assets/js/28e31f38.a7b38def.js",
"hash": "6aba83abac32bca0",
"publicPath": "/thingsgateway-docs/assets/js/28e31f38.a7b38def.js"
}
]
},
"2982": {
"js": [
{
"file": "assets/js/637a4551.f0c0e2be.js",
"hash": "a92c64b969fd0c24",
"publicPath": "/thingsgateway-docs/assets/js/637a4551.f0c0e2be.js"
"file": "assets/js/637a4551.67028978.js",
"hash": "b876d35239037d8e",
"publicPath": "/thingsgateway-docs/assets/js/637a4551.67028978.js"
}
]
},
@@ -387,7 +387,7 @@
"js": [
{
"file": "assets/js/8fb2cb35.1e565465.js",
"hash": "d7d8f2c602953c86",
"hash": "a8493df78e634610",
"publicPath": "/thingsgateway-docs/assets/js/8fb2cb35.1e565465.js"
}
]
@@ -395,45 +395,45 @@
"3371": {
"js": [
{
"file": "assets/js/d22033f9.c4eda647.js",
"hash": "829f6d54a273a13d",
"publicPath": "/thingsgateway-docs/assets/js/d22033f9.c4eda647.js"
"file": "assets/js/d22033f9.6a725d32.js",
"hash": "edd7fef77b05ef57",
"publicPath": "/thingsgateway-docs/assets/js/d22033f9.6a725d32.js"
}
]
},
"3381": {
"js": [
{
"file": "assets/js/6a68bc41.ff2e546e.js",
"hash": "4f88d4c13c8cf94e",
"publicPath": "/thingsgateway-docs/assets/js/6a68bc41.ff2e546e.js"
"file": "assets/js/6a68bc41.76107d58.js",
"hash": "945dd0a061fe0aa7",
"publicPath": "/thingsgateway-docs/assets/js/6a68bc41.76107d58.js"
}
]
},
"3477": {
"js": [
{
"file": "assets/js/f22f9b4f.55821957.js",
"hash": "931dbf0b5b4101df",
"publicPath": "/thingsgateway-docs/assets/js/f22f9b4f.55821957.js"
"file": "assets/js/f22f9b4f.cd643d3f.js",
"hash": "f0bb796c762c1f2b",
"publicPath": "/thingsgateway-docs/assets/js/f22f9b4f.cd643d3f.js"
}
]
},
"4124": {
"js": [
{
"file": "assets/js/56125fde.58745ef5.js",
"hash": "faad286e7527652e",
"publicPath": "/thingsgateway-docs/assets/js/56125fde.58745ef5.js"
"file": "assets/js/56125fde.89befd14.js",
"hash": "b93c9ece57288e8c",
"publicPath": "/thingsgateway-docs/assets/js/56125fde.89befd14.js"
}
]
},
"4135": {
"js": [
{
"file": "assets/js/0af5a0e2.281490de.js",
"hash": "116e6ccc2fca551a",
"publicPath": "/thingsgateway-docs/assets/js/0af5a0e2.281490de.js"
"file": "assets/js/0af5a0e2.491bd170.js",
"hash": "bd775ac50ede1523",
"publicPath": "/thingsgateway-docs/assets/js/0af5a0e2.491bd170.js"
}
]
},
@@ -441,26 +441,26 @@
"js": [
{
"file": "assets/js/c4f5d8e4.fe5b6306.js",
"hash": "5a0f4090e4e84cc6",
"hash": "37511712125e1160",
"publicPath": "/thingsgateway-docs/assets/js/c4f5d8e4.fe5b6306.js"
}
]
},
"4875": {
"js": [
{
"file": "assets/js/444af13b.aeeda19d.js",
"hash": "99c5763bf6442fd0",
"publicPath": "/thingsgateway-docs/assets/js/444af13b.aeeda19d.js"
}
]
},
"4954": {
"js": [
{
"file": "assets/js/6f635a3d.1303d271.js",
"hash": "6d80cef34ec86082",
"publicPath": "/thingsgateway-docs/assets/js/6f635a3d.1303d271.js"
"file": "assets/js/6f635a3d.35e7495b.js",
"hash": "ffbdb32100530c74",
"publicPath": "/thingsgateway-docs/assets/js/6f635a3d.35e7495b.js"
}
]
},
"4956": {
"js": [
{
"file": "assets/js/a1b6cb8c.3c23fc2c.js",
"hash": "798f5398a63b5f07",
"publicPath": "/thingsgateway-docs/assets/js/a1b6cb8c.3c23fc2c.js"
}
]
},
@@ -473,7 +473,7 @@
},
{
"file": "assets/js/1be78505.4c7d94a8.js",
"hash": "c7395c13c7c8decc",
"hash": "a444bcbbc15e7bc3",
"publicPath": "/thingsgateway-docs/assets/js/1be78505.4c7d94a8.js"
}
]
@@ -491,26 +491,35 @@
"js": [
{
"file": "assets/js/85214b50.5f392e5f.js",
"hash": "e18493e6324956c7",
"hash": "5035506e85c068cf",
"publicPath": "/thingsgateway-docs/assets/js/85214b50.5f392e5f.js"
}
]
},
"6373": {
"6270": {
"js": [
{
"file": "assets/js/760264af.e41efc53.js",
"hash": "782b1e0bb49755e1",
"publicPath": "/thingsgateway-docs/assets/js/760264af.e41efc53.js"
"file": "assets/js/b792992d.0aee3180.js",
"hash": "534a0473abd48914",
"publicPath": "/thingsgateway-docs/assets/js/b792992d.0aee3180.js"
}
]
},
"6611": {
"js": [
{
"file": "assets/js/3f659ef2.b4b656ef.js",
"hash": "d4dd27a6d6f9d7bc",
"publicPath": "/thingsgateway-docs/assets/js/3f659ef2.b4b656ef.js"
}
]
},
"6815": {
"js": [
{
"file": "assets/js/6b5f52c5.e7d41230.js",
"hash": "6242596fa31dd1da",
"publicPath": "/thingsgateway-docs/assets/js/6b5f52c5.e7d41230.js"
"file": "assets/js/6b5f52c5.72bda3fc.js",
"hash": "3fe46bd3a3270dac",
"publicPath": "/thingsgateway-docs/assets/js/6b5f52c5.72bda3fc.js"
}
]
},
@@ -518,7 +527,7 @@
"js": [
{
"file": "assets/js/abad1c1c.3a5c2084.js",
"hash": "3ba1098d05d3cb61",
"hash": "877b83d0392a8103",
"publicPath": "/thingsgateway-docs/assets/js/abad1c1c.3a5c2084.js"
}
]
@@ -526,9 +535,9 @@
"7128": {
"js": [
{
"file": "assets/js/40146f88.02aef490.js",
"hash": "9866a7ec0620f243",
"publicPath": "/thingsgateway-docs/assets/js/40146f88.02aef490.js"
"file": "assets/js/40146f88.e04e91d9.js",
"hash": "046a806f95f3ef74",
"publicPath": "/thingsgateway-docs/assets/js/40146f88.e04e91d9.js"
}
]
},
@@ -536,7 +545,7 @@
"js": [
{
"file": "assets/js/e80564fa.d689a929.js",
"hash": "ddd73732d07c3d60",
"hash": "2a2f9ee8907a09c1",
"publicPath": "/thingsgateway-docs/assets/js/e80564fa.d689a929.js"
}
]
@@ -545,7 +554,7 @@
"js": [
{
"file": "assets/js/17896441.9c2ea4c3.js",
"hash": "dc4a3a9e76c5b733",
"hash": "a406628d3d05f839",
"publicPath": "/thingsgateway-docs/assets/js/17896441.9c2ea4c3.js"
}
]
@@ -563,26 +572,17 @@
"js": [
{
"file": "assets/js/49c09695.8740c687.js",
"hash": "7593d8d3aca3809a",
"hash": "ca64d17bdeef46ee",
"publicPath": "/thingsgateway-docs/assets/js/49c09695.8740c687.js"
}
]
},
"8175": {
"js": [
{
"file": "assets/js/c361d1eb.73ec1548.js",
"hash": "b41c626f8014c5d2",
"publicPath": "/thingsgateway-docs/assets/js/c361d1eb.73ec1548.js"
}
]
},
"8254": {
"js": [
{
"file": "assets/js/a81fc991.90b7bed8.js",
"hash": "07a8f8823084a06b",
"publicPath": "/thingsgateway-docs/assets/js/a81fc991.90b7bed8.js"
"file": "assets/js/a81fc991.29c1e2c5.js",
"hash": "0b06ffeff42d0003",
"publicPath": "/thingsgateway-docs/assets/js/a81fc991.29c1e2c5.js"
}
]
},
@@ -599,7 +599,7 @@
"js": [
{
"file": "assets/js/5137840a.7e49d21e.js",
"hash": "446d0bcbfbaecac3",
"hash": "09de2e9cb2e711da",
"publicPath": "/thingsgateway-docs/assets/js/5137840a.7e49d21e.js"
}
]
@@ -608,7 +608,7 @@
"js": [
{
"file": "assets/js/4c79e569.3f1e7d8c.js",
"hash": "b39f8286cf1673d6",
"hash": "5ca0c0dec325073e",
"publicPath": "/thingsgateway-docs/assets/js/4c79e569.3f1e7d8c.js"
}
]
@@ -617,7 +617,7 @@
"js": [
{
"file": "assets/js/daef9133.ed8f7f40.js",
"hash": "65a6ffdd7e891d84",
"hash": "81075ab170f3827f",
"publicPath": "/thingsgateway-docs/assets/js/daef9133.ed8f7f40.js"
}
]
@@ -625,36 +625,36 @@
"8881": {
"js": [
{
"file": "assets/js/ab798fff.f80365cf.js",
"hash": "f5c1f662f375150b",
"publicPath": "/thingsgateway-docs/assets/js/ab798fff.f80365cf.js"
"file": "assets/js/ab798fff.f883258d.js",
"hash": "7f847bd148c78a77",
"publicPath": "/thingsgateway-docs/assets/js/ab798fff.f883258d.js"
}
]
},
"9058": {
"js": [
{
"file": "assets/js/9da45bac.a2fea472.js",
"hash": "9e2aa3733970cb63",
"publicPath": "/thingsgateway-docs/assets/js/9da45bac.a2fea472.js"
"file": "assets/js/9da45bac.d4b7ef38.js",
"hash": "92fbf7c9154bdfa9",
"publicPath": "/thingsgateway-docs/assets/js/9da45bac.d4b7ef38.js"
}
]
},
"9223": {
"js": [
{
"file": "assets/js/3546ab43.8b6d0ce2.js",
"hash": "59275babd7a462ca",
"publicPath": "/thingsgateway-docs/assets/js/3546ab43.8b6d0ce2.js"
"file": "assets/js/3546ab43.1b3dada5.js",
"hash": "17cca0649ab9f216",
"publicPath": "/thingsgateway-docs/assets/js/3546ab43.1b3dada5.js"
}
]
},
"9313": {
"js": [
{
"file": "assets/js/7a4cde18.53da6bd5.js",
"hash": "776334f330953d3e",
"publicPath": "/thingsgateway-docs/assets/js/7a4cde18.53da6bd5.js"
"file": "assets/js/7a4cde18.830812d1.js",
"hash": "840c43fcbd9a77b2",
"publicPath": "/thingsgateway-docs/assets/js/7a4cde18.830812d1.js"
}
]
},
@@ -662,7 +662,7 @@
"js": [
{
"file": "assets/js/4c99e3f0.88565af8.js",
"hash": "0825c22372539410",
"hash": "7ccc21a8031bc06b",
"publicPath": "/thingsgateway-docs/assets/js/4c99e3f0.88565af8.js"
}
]
@@ -671,7 +671,7 @@
"js": [
{
"file": "assets/js/a426a3b5.816a1a92.js",
"hash": "466f0fa0f4a9e4ec",
"hash": "38612e27baf58cf8",
"publicPath": "/thingsgateway-docs/assets/js/a426a3b5.816a1a92.js"
}
]
@@ -680,7 +680,7 @@
"js": [
{
"file": "assets/js/9523.37750895.js",
"hash": "7232611dac636c65",
"hash": "53105c9687deea52",
"publicPath": "/thingsgateway-docs/assets/js/9523.37750895.js"
}
]
@@ -689,7 +689,7 @@
"js": [
{
"file": "assets/js/2bc68b86.e769c1d6.js",
"hash": "09a07fc94423623e",
"hash": "42917ee4985d9839",
"publicPath": "/thingsgateway-docs/assets/js/2bc68b86.e769c1d6.js"
}
]
@@ -698,7 +698,7 @@
"js": [
{
"file": "assets/js/e58d351b.64d2c68b.js",
"hash": "dbe3210d148bff23",
"hash": "e116f02a2b72baa5",
"publicPath": "/thingsgateway-docs/assets/js/e58d351b.64d2c68b.js"
}
]

View File

@@ -1,7 +1,7 @@
export default [
require('E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\infima\\dist\\css\\default\\default.css'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\@docusaurus\\theme-classic\\lib\\prism-include-languages'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\@docusaurus\\theme-classic\\lib\\nprogress'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\src\\css\\custom.css'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\docusaurus-plugin-image-zoom\\src\\zoom'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\infima\\dist\\css\\default\\default.css'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\@docusaurus\\theme-classic\\lib\\prism-include-languages'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\@docusaurus\\theme-classic\\lib\\nprogress'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\src\\css\\custom.css'),
require('E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\docusaurus-plugin-image-zoom\\src\\zoom'),
];

View File

@@ -12,8 +12,8 @@
"tags": [],
"version": "current",
"lastUpdatedBy": "Kimdiego2098",
"lastUpdatedAt": 1693810983,
"formattedLastUpdatedAt": "Sep 4, 2023",
"lastUpdatedAt": 1695729838,
"formattedLastUpdatedAt": "Sep 26, 2023",
"frontMatter": {
"id": "enterprise",
"title": "Pro版相关"

View File

@@ -2,7 +2,7 @@
"unversionedId": "foundation/opcda",
"id": "foundation/opcda",
"title": "OPCDAClient",
"description": "待更新",
"description": "查看ThingsGateway.Foundation.DEMO项目代码",
"source": "@site/docs/foundation/opcda.mdx",
"sourceDirName": "foundation",
"slug": "/foundation/opcda",

View File

@@ -2,7 +2,7 @@
"unversionedId": "foundation/opcua",
"id": "foundation/opcua",
"title": "OPCUAClient",
"description": "待更新",
"description": "查看ThingsGateway.Foundation.DEMO项目代码",
"source": "@site/docs/foundation/opcua.mdx",
"sourceDirName": "foundation",
"slug": "/foundation/opcua",

View File

@@ -2,7 +2,7 @@
"unversionedId": "foundation/s7",
"id": "foundation/s7",
"title": "Siemens S7",
"description": "待更新",
"description": "查看ThingsGateway.Foundation.DEMO项目代码",
"source": "@site/docs/foundation/s7.mdx",
"sourceDirName": "foundation",
"slug": "/foundation/s7",

View File

@@ -372,19 +372,19 @@
"foundation/opcda": {
"id": "foundation/opcda",
"title": "OPCDAClient",
"description": "待更新",
"description": "查看ThingsGateway.Foundation.DEMO项目代码",
"sidebar": "docs"
},
"foundation/opcua": {
"id": "foundation/opcua",
"title": "OPCUAClient",
"description": "待更新",
"description": "查看ThingsGateway.Foundation.DEMO项目代码",
"sidebar": "docs"
},
"foundation/s7": {
"id": "foundation/s7",
"title": "Siemens S7",
"description": "待更新",
"description": "查看ThingsGateway.Foundation.DEMO项目代码",
"sidebar": "docs"
},
"hardwareinfo": {

View File

@@ -276,7 +276,7 @@ export default {
"@docusaurus/preset-classic",
{
"docs": {
"sidebarPath": "E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\sidebars.js",
"sidebarPath": "E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\sidebars.js",
"editUrl": "https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/",
"showLastUpdateTime": true,
"showLastUpdateAuthor": true,
@@ -284,13 +284,13 @@ export default {
"sidebarCollapsed": true
},
"theme": {
"customCss": "E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\src\\css\\custom.css"
"customCss": "E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\src\\css\\custom.css"
}
}
]
],
"plugins": [
"E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\docusaurus-plugin-image-zoom\\src\\index.js"
"E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\node_modules\\docusaurus-plugin-image-zoom\\src\\index.js"
],
"themes": [
[

View File

@@ -8,9 +8,9 @@ export default {
'2bc68b86': [() => import(/* webpackChunkName: '2bc68b86' */ '@site/docs/uploaddevice.mdx'), '@site/docs/uploaddevice.mdx', require.resolveWeak('@site/docs/uploaddevice.mdx')],
'3546ab43': [() => import(/* webpackChunkName: '3546ab43' */ '@site/docs/memoryvariable.mdx'), '@site/docs/memoryvariable.mdx', require.resolveWeak('@site/docs/memoryvariable.mdx')],
'39f79d48': [() => import(/* webpackChunkName: '39f79d48' */ '@site/docs/plugindlt6452007.mdx'), '@site/docs/plugindlt6452007.mdx', require.resolveWeak('@site/docs/plugindlt6452007.mdx')],
'3f659ef2': [() => import(/* webpackChunkName: '3f659ef2' */ 'E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json')],
'40146f88': [() => import(/* webpackChunkName: '40146f88' */ '@site/docs/hisdata.mdx'), '@site/docs/hisdata.mdx', require.resolveWeak('@site/docs/hisdata.mdx')],
'43dc5fb8': [() => import(/* webpackChunkName: '43dc5fb8' */ '@site/docs/hisalarm.mdx'), '@site/docs/hisalarm.mdx', require.resolveWeak('@site/docs/hisalarm.mdx')],
'444af13b': [() => import(/* webpackChunkName: '444af13b' */ 'E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json')],
'49c09695': [() => import(/* webpackChunkName: '49c09695' */ '@site/docs/pluginrabbitmqclient.mdx'), '@site/docs/pluginrabbitmqclient.mdx', require.resolveWeak('@site/docs/pluginrabbitmqclient.mdx')],
'4c79e569': [() => import(/* webpackChunkName: '4c79e569' */ '@site/docs/upgrade.mdx'), '@site/docs/upgrade.mdx', require.resolveWeak('@site/docs/upgrade.mdx')],
'4c99e3f0': [() => import(/* webpackChunkName: '4c99e3f0' */ '@site/docs/pluginkafka.mdx'), '@site/docs/pluginkafka.mdx', require.resolveWeak('@site/docs/pluginkafka.mdx')],
@@ -24,7 +24,6 @@ export default {
'6b5f52c5': [() => import(/* webpackChunkName: '6b5f52c5' */ '@site/docs/collectdevice.mdx'), '@site/docs/collectdevice.mdx', require.resolveWeak('@site/docs/collectdevice.mdx')],
'6f635a3d': [() => import(/* webpackChunkName: '6f635a3d' */ '@site/docs/foundation/modbus.mdx'), '@site/docs/foundation/modbus.mdx', require.resolveWeak('@site/docs/foundation/modbus.mdx')],
'74e9e182': [() => import(/* webpackChunkName: '74e9e182' */ '@site/docs/backendlog.mdx'), '@site/docs/backendlog.mdx', require.resolveWeak('@site/docs/backendlog.mdx')],
'760264af': [() => import(/* webpackChunkName: '760264af' */ 'E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json')],
'76f0de82': [() => import(/* webpackChunkName: '76f0de82' */ '@site/docs/otherconfig.mdx'), '@site/docs/otherconfig.mdx', require.resolveWeak('@site/docs/otherconfig.mdx')],
'7a4cde18': [() => import(/* webpackChunkName: '7a4cde18' */ '@site/docs/otherpage.mdx'), '@site/docs/otherpage.mdx', require.resolveWeak('@site/docs/otherpage.mdx')],
'7bbbeda9': [() => import(/* webpackChunkName: '7bbbeda9' */ '@site/docs/realalarm.mdx'), '@site/docs/realalarm.mdx', require.resolveWeak('@site/docs/realalarm.mdx')],
@@ -35,11 +34,12 @@ export default {
'8fb2cb35': [() => import(/* webpackChunkName: '8fb2cb35' */ '@site/docs/pluginsiemens.mdx'), '@site/docs/pluginsiemens.mdx', require.resolveWeak('@site/docs/pluginsiemens.mdx')],
'935f2afb': [() => import(/* webpackChunkName: '935f2afb' */ '~docs/default/version-current-metadata-prop-751.json'), '~docs/default/version-current-metadata-prop-751.json', require.resolveWeak('~docs/default/version-current-metadata-prop-751.json')],
'9da45bac': [() => import(/* webpackChunkName: '9da45bac' */ '@site/docs/foundation/opcda.mdx'), '@site/docs/foundation/opcda.mdx', require.resolveWeak('@site/docs/foundation/opcda.mdx')],
'a1b6cb8c': [() => import(/* webpackChunkName: 'a1b6cb8c' */ 'E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json')],
'a426a3b5': [() => import(/* webpackChunkName: 'a426a3b5' */ '@site/docs/pluginmodbus.mdx'), '@site/docs/pluginmodbus.mdx', require.resolveWeak('@site/docs/pluginmodbus.mdx')],
'a81fc991': [() => import(/* webpackChunkName: 'a81fc991' */ '@site/docs/pluginmqttclient.mdx'), '@site/docs/pluginmqttclient.mdx', require.resolveWeak('@site/docs/pluginmqttclient.mdx')],
'ab798fff': [() => import(/* webpackChunkName: 'ab798fff' */ '@site/docs/foundation/opcua.mdx'), '@site/docs/foundation/opcua.mdx', require.resolveWeak('@site/docs/foundation/opcua.mdx')],
'abad1c1c': [() => import(/* webpackChunkName: 'abad1c1c' */ '@site/docs/pluginopcuaclient.mdx'), '@site/docs/pluginopcuaclient.mdx', require.resolveWeak('@site/docs/pluginopcuaclient.mdx')],
'c361d1eb': [() => import(/* webpackChunkName: 'c361d1eb' */ 'E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json')],
'b792992d': [() => import(/* webpackChunkName: 'b792992d' */ 'E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\ThingsGateway-DEV\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json')],
'c4f5d8e4': [() => import(/* webpackChunkName: 'c4f5d8e4' */ '@site/src/pages/index.js'), '@site/src/pages/index.js', require.resolveWeak('@site/src/pages/index.js')],
'ca43e8da': [() => import(/* webpackChunkName: 'ca43e8da' */ '@site/docs/pluginconfig.mdx'), '@site/docs/pluginconfig.mdx', require.resolveWeak('@site/docs/pluginconfig.mdx')],
'd22033f9': [() => import(/* webpackChunkName: 'd22033f9' */ '@site/docs/donate.mdx'), '@site/docs/donate.mdx', require.resolveWeak('@site/docs/donate.mdx')],

View File

@@ -4,12 +4,12 @@ import ComponentCreator from '@docusaurus/ComponentCreator';
export default [
{
path: '/thingsgateway-docs/search',
component: ComponentCreator('/thingsgateway-docs/search', '738'),
component: ComponentCreator('/thingsgateway-docs/search', '479'),
exact: true
},
{
path: '/thingsgateway-docs/docs',
component: ComponentCreator('/thingsgateway-docs/docs', '688'),
component: ComponentCreator('/thingsgateway-docs/docs', 'b45'),
routes: [
{
path: '/thingsgateway-docs/docs/',
@@ -261,7 +261,7 @@ export default [
},
{
path: '/thingsgateway-docs/',
component: ComponentCreator('/thingsgateway-docs/', '8e0'),
component: ComponentCreator('/thingsgateway-docs/', 'a9f'),
exact: true
},
{

View File

@@ -1,14 +1,14 @@
{
"/thingsgateway-docs/search-738": {
"/thingsgateway-docs/search-479": {
"__comp": "1a4e3797",
"__context": {
"plugin": "444af13b"
"plugin": "b792992d"
}
},
"/thingsgateway-docs/docs-688": {
"/thingsgateway-docs/docs-b45": {
"__comp": "1be78505",
"__context": {
"plugin": "c361d1eb"
"plugin": "3f659ef2"
},
"versionMetadata": "935f2afb"
},
@@ -176,10 +176,10 @@
"__comp": "17896441",
"content": "e58d351b"
},
"/thingsgateway-docs/-8e0": {
"/thingsgateway-docs/-a9f": {
"__comp": "c4f5d8e4",
"__context": {
"plugin": "760264af"
"plugin": "a1b6cb8c"
},
"config": "5e9f5e1a"
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[4135],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),f=o,m=d["".concat(s,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},l),{},{components:n})):r.createElement(m,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var u=2;u<a;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},828:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const a={id:"s7",title:"Siemens S7"},i=void 0,c={unversionedId:"foundation/s7",id:"foundation/s7",title:"Siemens S7",description:"\u5f85\u66f4\u65b0",source:"@site/docs/foundation/s7.mdx",sourceDirName:"foundation",slug:"/foundation/s7",permalink:"/thingsgateway-docs/docs/foundation/s7",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/foundation/s7.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1691392193,formattedLastUpdatedAt:"Aug 7, 2023",frontMatter:{id:"s7",title:"Siemens S7"},sidebar:"docs",previous:{title:"Modbus",permalink:"/thingsgateway-docs/docs/foundation/modbus"},next:{title:"OPCDAClient",permalink:"/thingsgateway-docs/docs/foundation/opcda"}},s={},u=[],l={toc:u};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"\u5f85\u66f4\u65b0"))}p.isMDXComponent=!0}}]);

View File

@@ -0,0 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[4135],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},l=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),l=d(n),f=o,m=l["".concat(s,".").concat(f)]||l[f]||u[f]||a;return n?r.createElement(m,i(i({ref:t},p),{},{components:n})):r.createElement(m,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=l;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=n[d];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}l.displayName="MDXCreateElement"},828:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var r=n(7462),o=(n(7294),n(3905));const a={id:"s7",title:"Siemens S7"},i=void 0,c={unversionedId:"foundation/s7",id:"foundation/s7",title:"Siemens S7",description:"\u67e5\u770bThingsGateway.Foundation.DEMO\u9879\u76ee\u4ee3\u7801",source:"@site/docs/foundation/s7.mdx",sourceDirName:"foundation",slug:"/foundation/s7",permalink:"/thingsgateway-docs/docs/foundation/s7",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/foundation/s7.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1691392193,formattedLastUpdatedAt:"Aug 7, 2023",frontMatter:{id:"s7",title:"Siemens S7"},sidebar:"docs",previous:{title:"Modbus",permalink:"/thingsgateway-docs/docs/foundation/modbus"},next:{title:"OPCDAClient",permalink:"/thingsgateway-docs/docs/foundation/opcda"}},s={},d=[],p={toc:d};function u(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"DEMO")),(0,o.kt)("p",{parentName:"admonition"},"\u67e5\u770bThingsGateway.Foundation.DEMO\u9879\u76ee\u4ee3\u7801")))}u.isMDXComponent=!0}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[2419],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(r),f=a,m=u["".concat(l,".").concat(f)]||u[f]||p[f]||o;return r?n.createElement(m,i(i({ref:t},d),{},{components:r})):n.createElement(m,i({ref:t},d))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},1936:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"hardwareinfo",title:"\u786c\u4ef6\u4fe1\u606f"},i=void 0,c={unversionedId:"hardwareinfo",id:"hardwareinfo",title:"\u786c\u4ef6\u4fe1\u606f",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/hardwareinfo.mdx",sourceDirName:".",slug:"/hardwareinfo",permalink:"/thingsgateway-docs/docs/hardwareinfo",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/hardwareinfo.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"hardwareinfo",title:"\u786c\u4ef6\u4fe1\u606f"},sidebar:"docs",previous:{title:"\u5b9e\u65f6\u62a5\u8b66",permalink:"/thingsgateway-docs/docs/realalarm"},next:{title:"\u5386\u53f2\u6570\u636e",permalink:"/thingsgateway-docs/docs/hisdata"}},l={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5b9e\u65f6\u62a5\u8b66",id:"1\u5b9e\u65f6\u62a5\u8b66",level:3}],d={toc:s};function p(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5b9e\u65f6\u62a5\u8b66"},"1\u3001\u5b9e\u65f6\u62a5\u8b66"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(1219).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("p",null," \u5305\u542b\u8f6f\u4ef6\u73af\u5883\u3001Cpu\u72b6\u6001\u3001\u5185\u5b58\u72b6\u6001\u3001\u5f53\u524d\u78c1\u76d8(\u8f6f\u4ef6\u6240\u5728\u78c1\u76d8/\u5206\u533a)\u72b6\u6001\uff0c\u7f51\u7edc\u72b6\u6001"))}p.isMDXComponent=!0},1219:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/hardwareinfo-1-01fa4a471bad65dfe820fce8223d2608.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[2419],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(r),f=a,m=u["".concat(l,".").concat(f)]||u[f]||p[f]||o;return r?n.createElement(m,i(i({ref:t},d),{},{components:r})):n.createElement(m,i({ref:t},d))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},1936:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"hardwareinfo",title:"\u786c\u4ef6\u4fe1\u606f"},i=void 0,c={unversionedId:"hardwareinfo",id:"hardwareinfo",title:"\u786c\u4ef6\u4fe1\u606f",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/hardwareinfo.mdx",sourceDirName:".",slug:"/hardwareinfo",permalink:"/thingsgateway-docs/docs/hardwareinfo",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/hardwareinfo.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"hardwareinfo",title:"\u786c\u4ef6\u4fe1\u606f"},sidebar:"docs",previous:{title:"\u5b9e\u65f6\u62a5\u8b66",permalink:"/thingsgateway-docs/docs/realalarm"},next:{title:"\u5386\u53f2\u6570\u636e",permalink:"/thingsgateway-docs/docs/hisdata"}},l={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5b9e\u65f6\u62a5\u8b66",id:"1\u5b9e\u65f6\u62a5\u8b66",level:3}],d={toc:s};function p(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5b9e\u65f6\u62a5\u8b66"},"1\u3001\u5b9e\u65f6\u62a5\u8b66"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(7).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("p",null," \u5305\u542b\u8f6f\u4ef6\u73af\u5883\u3001Cpu\u72b6\u6001\u3001\u5185\u5b58\u72b6\u6001\u3001\u5f53\u524d\u78c1\u76d8(\u8f6f\u4ef6\u6240\u5728\u78c1\u76d8/\u5206\u533a)\u72b6\u6001\uff0c\u7f51\u7edc\u72b6\u6001"))}p.isMDXComponent=!0},7:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/hardwareinfo-1-01fa4a471bad65dfe820fce8223d2608.png"}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[8175],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[6611],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[7128],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=l(r),m=a,f=u["".concat(s,".").concat(m)]||u[m]||p[m]||o;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},3569:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={id:"hisdata",title:"\u5386\u53f2\u6570\u636e"},i=void 0,c={unversionedId:"hisdata",id:"hisdata",title:"\u5386\u53f2\u6570\u636e",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/hisdata.mdx",sourceDirName:".",slug:"/hisdata",permalink:"/thingsgateway-docs/docs/hisdata",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/hisdata.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"hisdata",title:"\u5386\u53f2\u6570\u636e"},sidebar:"docs",previous:{title:"\u786c\u4ef6\u4fe1\u606f",permalink:"/thingsgateway-docs/docs/hardwareinfo"},next:{title:"\u5386\u53f2\u62a5\u8b66",permalink:"/thingsgateway-docs/docs/hisalarm"}},s={},l=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5386\u53f2\u6570\u636e",id:"1\u5386\u53f2\u6570\u636e",level:3}],d={toc:l};function p(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5386\u53f2\u6570\u636e"},"1\u3001\u5386\u53f2\u6570\u636e"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(6291).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,a.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u63d0\u793a")),(0,a.kt)("p",{parentName:"admonition"}," \u6ce8\u610f\u5386\u53f2\u53d8\u91cf\u5b58\u50a8\u670d\u52a1\u9700\u8981\u5f00\u542f\uff0c\u4ee5\u53ca\u914d\u7f6e\u53d8\u91cf\u5386\u53f2\u5c5e\u6027")))}p.isMDXComponent=!0},6291:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/hisdata-1-3bad61a2791a6a0c124339b3e81321b9.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[7128],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=l(r),m=a,f=u["".concat(s,".").concat(m)]||u[m]||p[m]||o;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},3569:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={id:"hisdata",title:"\u5386\u53f2\u6570\u636e"},i=void 0,c={unversionedId:"hisdata",id:"hisdata",title:"\u5386\u53f2\u6570\u636e",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/hisdata.mdx",sourceDirName:".",slug:"/hisdata",permalink:"/thingsgateway-docs/docs/hisdata",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/hisdata.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"hisdata",title:"\u5386\u53f2\u6570\u636e"},sidebar:"docs",previous:{title:"\u786c\u4ef6\u4fe1\u606f",permalink:"/thingsgateway-docs/docs/hardwareinfo"},next:{title:"\u5386\u53f2\u62a5\u8b66",permalink:"/thingsgateway-docs/docs/hisalarm"}},s={},l=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5386\u53f2\u6570\u636e",id:"1\u5386\u53f2\u6570\u636e",level:3}],d={toc:l};function p(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5386\u53f2\u6570\u636e"},"1\u3001\u5386\u53f2\u6570\u636e"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(9108).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,a.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u63d0\u793a")),(0,a.kt)("p",{parentName:"admonition"}," \u6ce8\u610f\u5386\u53f2\u53d8\u91cf\u5b58\u50a8\u670d\u52a1\u9700\u8981\u5f00\u542f\uff0c\u4ee5\u53ca\u914d\u7f6e\u53d8\u91cf\u5386\u53f2\u5c5e\u6027")))}p.isMDXComponent=!0},9108:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/hisdata-1-3bad61a2791a6a0c124339b3e81321b9.png"}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[445],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),m=s(r),u=a,f=m["".concat(l,".").concat(u)]||m[u]||d[u]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function u(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},2965:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"hisalarm",title:"\u5386\u53f2\u62a5\u8b66"},i=void 0,c={unversionedId:"hisalarm",id:"hisalarm",title:"\u5386\u53f2\u62a5\u8b66",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/hisalarm.mdx",sourceDirName:".",slug:"/hisalarm",permalink:"/thingsgateway-docs/docs/hisalarm",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/hisalarm.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"hisalarm",title:"\u5386\u53f2\u62a5\u8b66"},sidebar:"docs",previous:{title:"\u5386\u53f2\u6570\u636e",permalink:"/thingsgateway-docs/docs/hisdata"},next:{title:"RPC\u65e5\u5fd7",permalink:"/thingsgateway-docs/docs/rpclog"}},l={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5386\u53f2\u62a5\u8b66",id:"1\u5386\u53f2\u62a5\u8b66",level:3}],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5386\u53f2\u62a5\u8b66"},"1\u3001\u5386\u53f2\u62a5\u8b66"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(4197).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,a.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u63d0\u793a")),(0,a.kt)("p",{parentName:"admonition"}," \u6ce8\u610f\u5386\u53f2\u62a5\u8b66\u5b58\u50a8\u670d\u52a1\u9700\u8981\u5f00\u542f\uff0c\u4ee5\u53ca\u914d\u7f6e\u53d8\u91cf\u62a5\u8b66\u5c5e\u6027")))}d.isMDXComponent=!0},4197:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/hisalarm-1-c655d9dec2689c687f58cfe9d107ff74.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[445],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),m=s(r),u=a,f=m["".concat(l,".").concat(u)]||m[u]||d[u]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function u(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},2965:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"hisalarm",title:"\u5386\u53f2\u62a5\u8b66"},i=void 0,c={unversionedId:"hisalarm",id:"hisalarm",title:"\u5386\u53f2\u62a5\u8b66",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/hisalarm.mdx",sourceDirName:".",slug:"/hisalarm",permalink:"/thingsgateway-docs/docs/hisalarm",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/hisalarm.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"hisalarm",title:"\u5386\u53f2\u62a5\u8b66"},sidebar:"docs",previous:{title:"\u5386\u53f2\u6570\u636e",permalink:"/thingsgateway-docs/docs/hisdata"},next:{title:"RPC\u65e5\u5fd7",permalink:"/thingsgateway-docs/docs/rpclog"}},l={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5386\u53f2\u62a5\u8b66",id:"1\u5386\u53f2\u62a5\u8b66",level:3}],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5386\u53f2\u62a5\u8b66"},"1\u3001\u5386\u53f2\u62a5\u8b66"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(7778).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,a.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u63d0\u793a")),(0,a.kt)("p",{parentName:"admonition"}," \u6ce8\u610f\u5386\u53f2\u62a5\u8b66\u5b58\u50a8\u670d\u52a1\u9700\u8981\u5f00\u542f\uff0c\u4ee5\u53ca\u914d\u7f6e\u53d8\u91cf\u62a5\u8b66\u5c5e\u6027")))}d.isMDXComponent=!0},7778:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/hisalarm-1-c655d9dec2689c687f58cfe9d107ff74.png"}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[4124],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(n),g=o,m=s["".concat(l,".").concat(g)]||s[g]||d[g]||i;return n?r.createElement(m,a(a({ref:t},u),{},{components:n})):r.createElement(m,a({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var p=2;p<i;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}s.displayName="MDXCreateElement"},9612:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={id:"plugindebug",title:"\u63d2\u4ef6\u8c03\u8bd5"},a=void 0,c={unversionedId:"plugindebug",id:"plugindebug",title:"\u63d2\u4ef6\u8c03\u8bd5",description:"\u4e00\u3001\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6",source:"@site/docs/plugindebug.mdx",sourceDirName:".",slug:"/plugindebug",permalink:"/thingsgateway-docs/docs/plugindebug",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/plugindebug.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"plugindebug",title:"\u63d2\u4ef6\u8c03\u8bd5"},sidebar:"docs",previous:{title:"\u63d2\u4ef6\u7ba1\u7406",permalink:"/thingsgateway-docs/docs/pluginconfig"},next:{title:"\u91c7\u96c6\u8bbe\u5907",permalink:"/thingsgateway-docs/docs/collectdevice"}},l={},p=[{value:"\u4e00\u3001\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6",id:"\u4e00\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6",level:2},{value:"\u4e8c\u3001\u6839\u636e\u6587\u672c\u63cf\u8ff0\u8fdb\u884c\u8fde\u63a5\u8c03\u8bd5",id:"\u4e8c\u6839\u636e\u6587\u672c\u63cf\u8ff0\u8fdb\u884c\u8fde\u63a5\u8c03\u8bd5",level:2}],u={toc:p};function d(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,r.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6"},"\u4e00\u3001\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2495).Z,width:"2560",height:"1550"})),(0,o.kt)("h2",{id:"\u4e8c\u6839\u636e\u6587\u672c\u63cf\u8ff0\u8fdb\u884c\u8fde\u63a5\u8c03\u8bd5"},"\u4e8c\u3001\u6839\u636e\u6587\u672c\u63cf\u8ff0\u8fdb\u884c\u8fde\u63a5\u8c03\u8bd5"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u63d0\u793a")),(0,o.kt)("p",{parentName:"admonition"},(0,o.kt)("strong",{parentName:"p"},"\u6ce8\u610f\u53ea\u6709\u90e8\u5206\u63d2\u4ef6\u5f00\u653e\u8c03\u8bd5\u529f\u80fd")),(0,o.kt)("p",{parentName:"admonition"},"\u8c03\u8bd5\u7684\u53c2\u6570\u8bf7\u67e5\u770b\u5bf9\u5e94\u7684\u63d2\u4ef6\u6587\u6863")))}d.isMDXComponent=!0},2495:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/plugindebug-1-81675bf02442d51610ac5b5eb1586276.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[4124],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(n),g=o,m=s["".concat(l,".").concat(g)]||s[g]||d[g]||i;return n?r.createElement(m,a(a({ref:t},u),{},{components:n})):r.createElement(m,a({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var p=2;p<i;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}s.displayName="MDXCreateElement"},9612:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={id:"plugindebug",title:"\u63d2\u4ef6\u8c03\u8bd5"},a=void 0,c={unversionedId:"plugindebug",id:"plugindebug",title:"\u63d2\u4ef6\u8c03\u8bd5",description:"\u4e00\u3001\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6",source:"@site/docs/plugindebug.mdx",sourceDirName:".",slug:"/plugindebug",permalink:"/thingsgateway-docs/docs/plugindebug",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/plugindebug.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"plugindebug",title:"\u63d2\u4ef6\u8c03\u8bd5"},sidebar:"docs",previous:{title:"\u63d2\u4ef6\u7ba1\u7406",permalink:"/thingsgateway-docs/docs/pluginconfig"},next:{title:"\u91c7\u96c6\u8bbe\u5907",permalink:"/thingsgateway-docs/docs/collectdevice"}},l={},p=[{value:"\u4e00\u3001\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6",id:"\u4e00\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6",level:2},{value:"\u4e8c\u3001\u6839\u636e\u6587\u672c\u63cf\u8ff0\u8fdb\u884c\u8fde\u63a5\u8c03\u8bd5",id:"\u4e8c\u6839\u636e\u6587\u672c\u63cf\u8ff0\u8fdb\u884c\u8fde\u63a5\u8c03\u8bd5",level:2}],u={toc:p};function d(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,r.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6"},"\u4e00\u3001\u9009\u62e9\u9a71\u52a8\u63d2\u4ef6"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2163).Z,width:"2560",height:"1550"})),(0,o.kt)("h2",{id:"\u4e8c\u6839\u636e\u6587\u672c\u63cf\u8ff0\u8fdb\u884c\u8fde\u63a5\u8c03\u8bd5"},"\u4e8c\u3001\u6839\u636e\u6587\u672c\u63cf\u8ff0\u8fdb\u884c\u8fde\u63a5\u8c03\u8bd5"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u63d0\u793a")),(0,o.kt)("p",{parentName:"admonition"},(0,o.kt)("strong",{parentName:"p"},"\u6ce8\u610f\u53ea\u6709\u90e8\u5206\u63d2\u4ef6\u5f00\u653e\u8c03\u8bd5\u529f\u80fd")),(0,o.kt)("p",{parentName:"admonition"},"\u8c03\u8bd5\u7684\u53c2\u6570\u8bf7\u67e5\u770b\u5bf9\u5e94\u7684\u63d2\u4ef6\u6587\u6863")))}d.isMDXComponent=!0},2163:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/plugindebug-1-81675bf02442d51610ac5b5eb1586276.png"}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[2982],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),f=a,m=u["".concat(c,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},4877:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"realdata",title:"\u5b9e\u65f6\u6570\u636e"},i=void 0,l={unversionedId:"realdata",id:"realdata",title:"\u5b9e\u65f6\u6570\u636e",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/realdata.mdx",sourceDirName:".",slug:"/realdata",permalink:"/thingsgateway-docs/docs/realdata",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/realdata.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"realdata",title:"\u5b9e\u65f6\u6570\u636e"},sidebar:"docs",previous:{title:"\u8fd0\u884c\u72b6\u6001",permalink:"/thingsgateway-docs/docs/runtimestate"},next:{title:"\u5b9e\u65f6\u62a5\u8b66",permalink:"/thingsgateway-docs/docs/realalarm"}},c={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5b9e\u65f6\u6570\u636e",id:"1\u5b9e\u65f6\u6570\u636e",level:3}],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5b9e\u65f6\u6570\u636e"},"1\u3001\u5b9e\u65f6\u6570\u636e"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(2706).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("p",null," \u5199\u5165\u6570\u636e\u9700\u914d\u7f6e\u53d8\u91cf\u6743\u9650\uff0c\u5426\u5219\u4f1a\u63d0\u793a\u6743\u9650\u4e0d\u8db3"))}d.isMDXComponent=!0},2706:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/realdata-1-528ccc95f7141027e3477eb0a85404b2.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[2982],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),f=a,m=u["".concat(c,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},4877:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"realdata",title:"\u5b9e\u65f6\u6570\u636e"},i=void 0,l={unversionedId:"realdata",id:"realdata",title:"\u5b9e\u65f6\u6570\u636e",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/realdata.mdx",sourceDirName:".",slug:"/realdata",permalink:"/thingsgateway-docs/docs/realdata",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/realdata.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"realdata",title:"\u5b9e\u65f6\u6570\u636e"},sidebar:"docs",previous:{title:"\u8fd0\u884c\u72b6\u6001",permalink:"/thingsgateway-docs/docs/runtimestate"},next:{title:"\u5b9e\u65f6\u62a5\u8b66",permalink:"/thingsgateway-docs/docs/realalarm"}},c={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5b9e\u65f6\u6570\u636e",id:"1\u5b9e\u65f6\u6570\u636e",level:3}],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5b9e\u65f6\u6570\u636e"},"1\u3001\u5b9e\u65f6\u6570\u636e"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(9379).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("p",null," \u5199\u5165\u6570\u636e\u9700\u914d\u7f6e\u53d8\u91cf\u6743\u9650\uff0c\u5426\u5219\u4f1a\u63d0\u793a\u6743\u9650\u4e0d\u8db3"))}d.isMDXComponent=!0},9379:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/realdata-1-528ccc95f7141027e3477eb0a85404b2.png"}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[3381],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,g=d["".concat(l,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(g,c(c({ref:t},s),{},{components:r})):n.createElement(g,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,c[1]=i;for(var p=2;p<a;p++)c[p]=r[p];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},430:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(7462),o=(r(7294),r(3905));const a={id:"rpclog",title:"RPC\u65e5\u5fd7"},c=void 0,i={unversionedId:"rpclog",id:"rpclog",title:"RPC\u65e5\u5fd7",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/rpclog.mdx",sourceDirName:".",slug:"/rpclog",permalink:"/thingsgateway-docs/docs/rpclog",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/rpclog.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"rpclog",title:"RPC\u65e5\u5fd7"},sidebar:"docs",previous:{title:"\u5386\u53f2\u62a5\u8b66",permalink:"/thingsgateway-docs/docs/hisalarm"},next:{title:"\u540e\u53f0\u65e5\u5fd7",permalink:"/thingsgateway-docs/docs/backendlog"}},l={},p=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001RPC\u65e5\u5fd7",id:"1rpc\u65e5\u5fd7",level:3}],s={toc:p};function u(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,o.kt)("h3",{id:"1rpc\u65e5\u5fd7"},"1\u3001RPC\u65e5\u5fd7"),(0,o.kt)("p",null,(0,o.kt)("img",{src:r(9958).Z,width:"2560",height:"1550"})),(0,o.kt)("p",null," RPC\u65e5\u5fd7\u5305\u542b\u4ece\u5404\u4e2a\u6e20\u9053\u901a\u8fc7\u7f51\u5173\u6267\u884c\u5199\u5165\u6216\u5176\u4ed6\u65b9\u6cd5\u7684\u65e5\u5fd7"),(0,o.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"))}u.isMDXComponent=!0},9958:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/rpclog-1-a1252fc51bd77baa0083b40a66e3582b.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[3381],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,g=d["".concat(l,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(g,c(c({ref:t},s),{},{components:r})):n.createElement(g,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,c[1]=i;for(var p=2;p<a;p++)c[p]=r[p];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},430:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(7462),o=(r(7294),r(3905));const a={id:"rpclog",title:"RPC\u65e5\u5fd7"},c=void 0,i={unversionedId:"rpclog",id:"rpclog",title:"RPC\u65e5\u5fd7",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/rpclog.mdx",sourceDirName:".",slug:"/rpclog",permalink:"/thingsgateway-docs/docs/rpclog",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/rpclog.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"rpclog",title:"RPC\u65e5\u5fd7"},sidebar:"docs",previous:{title:"\u5386\u53f2\u62a5\u8b66",permalink:"/thingsgateway-docs/docs/hisalarm"},next:{title:"\u540e\u53f0\u65e5\u5fd7",permalink:"/thingsgateway-docs/docs/backendlog"}},l={},p=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001RPC\u65e5\u5fd7",id:"1rpc\u65e5\u5fd7",level:3}],s={toc:p};function u(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,o.kt)("h3",{id:"1rpc\u65e5\u5fd7"},"1\u3001RPC\u65e5\u5fd7"),(0,o.kt)("p",null,(0,o.kt)("img",{src:r(3328).Z,width:"2560",height:"1550"})),(0,o.kt)("p",null," RPC\u65e5\u5fd7\u5305\u542b\u4ece\u5404\u4e2a\u6e20\u9053\u901a\u8fc7\u7f51\u5173\u6267\u884c\u5199\u5165\u6216\u5176\u4ed6\u65b9\u6cd5\u7684\u65e5\u5fd7"),(0,o.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"))}u.isMDXComponent=!0},3328:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/rpclog-1-a1252fc51bd77baa0083b40a66e3582b.png"}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[2274],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),f=o,g=u["".concat(l,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(g,c(c({ref:t},p),{},{components:r})):n.createElement(g,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,c[1]=i;for(var s=2;s<a;s++)c[s]=r[s];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},526:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const a={id:"backendlog",title:"\u540e\u53f0\u65e5\u5fd7"},c=void 0,i={unversionedId:"backendlog",id:"backendlog",title:"\u540e\u53f0\u65e5\u5fd7",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/backendlog.mdx",sourceDirName:".",slug:"/backendlog",permalink:"/thingsgateway-docs/docs/backendlog",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/backendlog.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"backendlog",title:"\u540e\u53f0\u65e5\u5fd7"},sidebar:"docs",previous:{title:"RPC\u65e5\u5fd7",permalink:"/thingsgateway-docs/docs/rpclog"},next:{title:"\u5176\u4ed6\u9875\u9762",permalink:"/thingsgateway-docs/docs/otherpage"}},l={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u540e\u53f0\u65e5\u5fd7",id:"1\u540e\u53f0\u65e5\u5fd7",level:3}],p={toc:s};function d(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,o.kt)("h3",{id:"1\u540e\u53f0\u65e5\u5fd7"},"1\u3001\u540e\u53f0\u65e5\u5fd7"),(0,o.kt)("p",null,(0,o.kt)("img",{src:r(2764).Z,width:"2560",height:"1550"})),(0,o.kt)("p",null," \u540e\u53f0\u65e5\u5fd7\u5305\u542b\u7f51\u5173\u7684\u8fd0\u884c\u65e5\u5fd7\uff0c\u4f46\u4e0d\u542bNetCore\u6846\u67b6\u65e5\u5fd7"),(0,o.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"))}d.isMDXComponent=!0},2764:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/backendlog-1-306602ca242472184ff116f10f980a49.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[2274],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),f=o,g=u["".concat(l,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(g,c(c({ref:t},p),{},{components:r})):n.createElement(g,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,c[1]=i;for(var s=2;s<a;s++)c[s]=r[s];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},526:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const a={id:"backendlog",title:"\u540e\u53f0\u65e5\u5fd7"},c=void 0,i={unversionedId:"backendlog",id:"backendlog",title:"\u540e\u53f0\u65e5\u5fd7",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/backendlog.mdx",sourceDirName:".",slug:"/backendlog",permalink:"/thingsgateway-docs/docs/backendlog",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/backendlog.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"backendlog",title:"\u540e\u53f0\u65e5\u5fd7"},sidebar:"docs",previous:{title:"RPC\u65e5\u5fd7",permalink:"/thingsgateway-docs/docs/rpclog"},next:{title:"\u5176\u4ed6\u9875\u9762",permalink:"/thingsgateway-docs/docs/otherpage"}},l={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u540e\u53f0\u65e5\u5fd7",id:"1\u540e\u53f0\u65e5\u5fd7",level:3}],p={toc:s};function d(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,o.kt)("h3",{id:"1\u540e\u53f0\u65e5\u5fd7"},"1\u3001\u540e\u53f0\u65e5\u5fd7"),(0,o.kt)("p",null,(0,o.kt)("img",{src:r(729).Z,width:"2560",height:"1550"})),(0,o.kt)("p",null," \u540e\u53f0\u65e5\u5fd7\u5305\u542b\u7f51\u5173\u7684\u8fd0\u884c\u65e5\u5fd7\uff0c\u4f46\u4e0d\u542bNetCore\u6846\u67b6\u65e5\u5fd7"),(0,o.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"))}d.isMDXComponent=!0},729:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/backendlog-1-306602ca242472184ff116f10f980a49.png"}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[1717],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=p(n),f=o,u=m["".concat(l,".").concat(f)]||m[f]||s[f]||i;return n?r.createElement(u,a(a({ref:t},d),{},{components:n})):r.createElement(u,a({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var p=2;p<i;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},2274:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={id:"otherconfig",title:"\u5176\u4ed6\u914d\u7f6e"},a=void 0,c={unversionedId:"otherconfig",id:"otherconfig",title:"\u5176\u4ed6\u914d\u7f6e",description:"\u4e00\u3001\u914d\u7f6e",source:"@site/docs/otherconfig.mdx",sourceDirName:".",slug:"/otherconfig",permalink:"/thingsgateway-docs/docs/otherconfig",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/otherconfig.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"otherconfig",title:"\u5176\u4ed6\u914d\u7f6e"},sidebar:"docs",previous:{title:"\u4e2d\u95f4\u53d8\u91cf",permalink:"/thingsgateway-docs/docs/memoryvariable"},next:{title:"\u8fd0\u884c\u72b6\u6001",permalink:"/thingsgateway-docs/docs/runtimestate"}},l={},p=[{value:"\u4e00\u3001\u914d\u7f6e",id:"\u4e00\u914d\u7f6e",level:2},{value:"1\u3001\u62a5\u8b66\u8f6c\u50a8\u914d\u7f6e",id:"1\u62a5\u8b66\u8f6c\u50a8\u914d\u7f6e",level:3},{value:"2\u3001\u5386\u53f2\u8f6c\u50a8\u914d\u7f6e",id:"2\u5386\u53f2\u8f6c\u50a8\u914d\u7f6e",level:3}],d={toc:p};function s(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,r.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u914d\u7f6e"},"\u4e00\u3001\u914d\u7f6e"),(0,o.kt)("h3",{id:"1\u62a5\u8b66\u8f6c\u50a8\u914d\u7f6e"},"1\u3001\u62a5\u8b66\u8f6c\u50a8\u914d\u7f6e"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(9148).Z,width:"2560",height:"1550"})),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u8bf4\u660e")),(0,o.kt)("p",{parentName:"admonition"},"\u9664\u4e86\u542f\u7528\u62a5\u8b66\u8f6c\u50a8\u670d\u52a1\u5916\uff0c\u8fd8\u9700\u8981\u5355\u72ec\u5bf9\u4e8e\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e")),(0,o.kt)("h3",{id:"2\u5386\u53f2\u8f6c\u50a8\u914d\u7f6e"},"2\u3001\u5386\u53f2\u8f6c\u50a8\u914d\u7f6e"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7365).Z,width:"2560",height:"1550"})),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u8bf4\u660e")),(0,o.kt)("p",{parentName:"admonition"},"\u9664\u4e86\u542f\u7528\u5386\u53f2\u8f6c\u50a8\u670d\u52a1\u5916\uff0c\u8fd8\u9700\u8981\u5355\u72ec\u5bf9\u4e8e\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e")))}s.isMDXComponent=!0},9148:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/otherconfig-1-edf5e7a438e2721843952ef1f9969134.png"},7365:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/otherconfig-2-4d8a24f6f07d734e5ce6f3bf59768a68.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[1717],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=p(n),f=o,u=m["".concat(l,".").concat(f)]||m[f]||s[f]||i;return n?r.createElement(u,a(a({ref:t},d),{},{components:n})):r.createElement(u,a({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var p=2;p<i;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},2274:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={id:"otherconfig",title:"\u5176\u4ed6\u914d\u7f6e"},a=void 0,c={unversionedId:"otherconfig",id:"otherconfig",title:"\u5176\u4ed6\u914d\u7f6e",description:"\u4e00\u3001\u914d\u7f6e",source:"@site/docs/otherconfig.mdx",sourceDirName:".",slug:"/otherconfig",permalink:"/thingsgateway-docs/docs/otherconfig",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/otherconfig.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"otherconfig",title:"\u5176\u4ed6\u914d\u7f6e"},sidebar:"docs",previous:{title:"\u4e2d\u95f4\u53d8\u91cf",permalink:"/thingsgateway-docs/docs/memoryvariable"},next:{title:"\u8fd0\u884c\u72b6\u6001",permalink:"/thingsgateway-docs/docs/runtimestate"}},l={},p=[{value:"\u4e00\u3001\u914d\u7f6e",id:"\u4e00\u914d\u7f6e",level:2},{value:"1\u3001\u62a5\u8b66\u8f6c\u50a8\u914d\u7f6e",id:"1\u62a5\u8b66\u8f6c\u50a8\u914d\u7f6e",level:3},{value:"2\u3001\u5386\u53f2\u8f6c\u50a8\u914d\u7f6e",id:"2\u5386\u53f2\u8f6c\u50a8\u914d\u7f6e",level:3}],d={toc:p};function s(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,r.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u914d\u7f6e"},"\u4e00\u3001\u914d\u7f6e"),(0,o.kt)("h3",{id:"1\u62a5\u8b66\u8f6c\u50a8\u914d\u7f6e"},"1\u3001\u62a5\u8b66\u8f6c\u50a8\u914d\u7f6e"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(1215).Z,width:"2560",height:"1550"})),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u8bf4\u660e")),(0,o.kt)("p",{parentName:"admonition"},"\u9664\u4e86\u542f\u7528\u62a5\u8b66\u8f6c\u50a8\u670d\u52a1\u5916\uff0c\u8fd8\u9700\u8981\u5355\u72ec\u5bf9\u4e8e\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e")),(0,o.kt)("h3",{id:"2\u5386\u53f2\u8f6c\u50a8\u914d\u7f6e"},"2\u3001\u5386\u53f2\u8f6c\u50a8\u914d\u7f6e"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7386).Z,width:"2560",height:"1550"})),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u8bf4\u660e")),(0,o.kt)("p",{parentName:"admonition"},"\u9664\u4e86\u542f\u7528\u5386\u53f2\u8f6c\u50a8\u670d\u52a1\u5916\uff0c\u8fd8\u9700\u8981\u5355\u72ec\u5bf9\u4e8e\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e")))}s.isMDXComponent=!0},1215:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/otherconfig-1-edf5e7a438e2721843952ef1f9969134.png"},7386:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/otherconfig-2-4d8a24f6f07d734e5ce6f3bf59768a68.png"}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[1518],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=a,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=r[s];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},1607:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"realalarm",title:"\u5b9e\u65f6\u62a5\u8b66"},l=void 0,i={unversionedId:"realalarm",id:"realalarm",title:"\u5b9e\u65f6\u62a5\u8b66",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/realalarm.mdx",sourceDirName:".",slug:"/realalarm",permalink:"/thingsgateway-docs/docs/realalarm",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/realalarm.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"realalarm",title:"\u5b9e\u65f6\u62a5\u8b66"},sidebar:"docs",previous:{title:"\u5b9e\u65f6\u6570\u636e",permalink:"/thingsgateway-docs/docs/realdata"},next:{title:"\u786c\u4ef6\u4fe1\u606f",permalink:"/thingsgateway-docs/docs/hardwareinfo"}},c={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5b9e\u65f6\u62a5\u8b66",id:"1\u5b9e\u65f6\u62a5\u8b66",level:3}],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5b9e\u65f6\u62a5\u8b66"},"1\u3001\u5b9e\u65f6\u62a5\u8b66"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(5150).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("p",null," \u5b9e\u65f6\u62a5\u8b66\u9700\u8981\u914d\u7f6e",(0,a.kt)("a",{parentName:"p",href:"/thingsgateway-docs/docs/devicevariable#2%E5%8F%98%E9%87%8F%E6%8A%A5%E8%AD%A6%E5%B1%9E%E6%80%A7"},"\u53d8\u91cf\u62a5\u8b66\u5c5e\u6027")))}d.isMDXComponent=!0},5150:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/realalarm-1-82509e6f228c31200b2e6bc9617218be.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[1518],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=a,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=r[s];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},1607:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"realalarm",title:"\u5b9e\u65f6\u62a5\u8b66"},l=void 0,i={unversionedId:"realalarm",id:"realalarm",title:"\u5b9e\u65f6\u62a5\u8b66",description:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",source:"@site/docs/realalarm.mdx",sourceDirName:".",slug:"/realalarm",permalink:"/thingsgateway-docs/docs/realalarm",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/realalarm.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"realalarm",title:"\u5b9e\u65f6\u62a5\u8b66"},sidebar:"docs",previous:{title:"\u5b9e\u65f6\u6570\u636e",permalink:"/thingsgateway-docs/docs/realdata"},next:{title:"\u786c\u4ef6\u4fe1\u606f",permalink:"/thingsgateway-docs/docs/hardwareinfo"}},c={},s=[{value:"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd",level:2},{value:"1\u3001\u5b9e\u65f6\u62a5\u8b66",id:"1\u5b9e\u65f6\u62a5\u8b66",level:3}],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"},"\u4e00\u3001\u9875\u9762\u529f\u80fd\u4ecb\u7ecd"),(0,a.kt)("h3",{id:"1\u5b9e\u65f6\u62a5\u8b66"},"1\u3001\u5b9e\u65f6\u62a5\u8b66"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(1391).Z,width:"2560",height:"1550"})),(0,a.kt)("p",null," \u4ece\u4e0a\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6bcf\u4e2a\u533a\u57df\u7684\u529f\u80fd"),(0,a.kt)("p",null," \u5b9e\u65f6\u62a5\u8b66\u9700\u8981\u914d\u7f6e",(0,a.kt)("a",{parentName:"p",href:"/thingsgateway-docs/docs/devicevariable#2%E5%8F%98%E9%87%8F%E6%8A%A5%E8%AD%A6%E5%B1%9E%E6%80%A7"},"\u53d8\u91cf\u62a5\u8b66\u5c5e\u6027")))}d.isMDXComponent=!0},1391:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/realalarm-1-82509e6f228c31200b2e6bc9617218be.png"}}]);

View File

@@ -1 +0,0 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[9058],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=l(n),f=o,y=u["".concat(p,".").concat(f)]||u[f]||s[f]||a;return n?r.createElement(y,i(i({ref:t},d),{},{components:n})):r.createElement(y,i({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},1394:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={id:"opcda",title:"OPCDAClient"},i=void 0,c={unversionedId:"foundation/opcda",id:"foundation/opcda",title:"OPCDAClient",description:"\u5f85\u66f4\u65b0",source:"@site/docs/foundation/opcda.mdx",sourceDirName:"foundation",slug:"/foundation/opcda",permalink:"/thingsgateway-docs/docs/foundation/opcda",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/foundation/opcda.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1691392193,formattedLastUpdatedAt:"Aug 7, 2023",frontMatter:{id:"opcda",title:"OPCDAClient"},sidebar:"docs",previous:{title:"Siemens S7",permalink:"/thingsgateway-docs/docs/foundation/s7"},next:{title:"OPCUAClient",permalink:"/thingsgateway-docs/docs/foundation/opcua"}},p={},l=[],d={toc:l};function s(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"\u5f85\u66f4\u65b0"))}s.isMDXComponent=!0}}]);

View File

@@ -0,0 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[9058],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var d=r.createContext({}),p=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(d.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,d=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(n),f=o,m=u["".concat(d,".").concat(f)]||u[f]||s[f]||a;return n?r.createElement(m,i(i({ref:t},l),{},{components:n})):r.createElement(m,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var d in t)hasOwnProperty.call(t,d)&&(c[d]=t[d]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},1394:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const a={id:"opcda",title:"OPCDAClient"},i=void 0,c={unversionedId:"foundation/opcda",id:"foundation/opcda",title:"OPCDAClient",description:"\u67e5\u770bThingsGateway.Foundation.DEMO\u9879\u76ee\u4ee3\u7801",source:"@site/docs/foundation/opcda.mdx",sourceDirName:"foundation",slug:"/foundation/opcda",permalink:"/thingsgateway-docs/docs/foundation/opcda",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/foundation/opcda.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1691392193,formattedLastUpdatedAt:"Aug 7, 2023",frontMatter:{id:"opcda",title:"OPCDAClient"},sidebar:"docs",previous:{title:"Siemens S7",permalink:"/thingsgateway-docs/docs/foundation/s7"},next:{title:"OPCUAClient",permalink:"/thingsgateway-docs/docs/foundation/opcua"}},d={},p=[],l={toc:p};function s(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"DEMO")),(0,o.kt)("p",{parentName:"admonition"},"\u67e5\u770bThingsGateway.Foundation.DEMO\u9879\u76ee\u4ee3\u7801")))}s.isMDXComponent=!0}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[6373],{1386:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[4956],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[8881],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),f=o,y=d["".concat(p,".").concat(f)]||d[f]||s[f]||a;return n?r.createElement(y,i(i({ref:t},l),{},{components:n})):r.createElement(y,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var u=2;u<a;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5501:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const a={id:"opcua",title:"OPCUAClient"},i=void 0,c={unversionedId:"foundation/opcua",id:"foundation/opcua",title:"OPCUAClient",description:"\u5f85\u66f4\u65b0",source:"@site/docs/foundation/opcua.mdx",sourceDirName:"foundation",slug:"/foundation/opcua",permalink:"/thingsgateway-docs/docs/foundation/opcua",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/foundation/opcua.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1691392193,formattedLastUpdatedAt:"Aug 7, 2023",frontMatter:{id:"opcua",title:"OPCUAClient"},sidebar:"docs",previous:{title:"OPCDAClient",permalink:"/thingsgateway-docs/docs/foundation/opcda"}},p={},u=[],l={toc:u};function s(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"\u5f85\u66f4\u65b0"))}s.isMDXComponent=!0}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[8881],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(n),f=o,m=s["".concat(p,".").concat(f)]||s[f]||l[f]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=s;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var u=2;u<a;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}s.displayName="MDXCreateElement"},5501:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const a={id:"opcua",title:"OPCUAClient"},i=void 0,c={unversionedId:"foundation/opcua",id:"foundation/opcua",title:"OPCUAClient",description:"\u67e5\u770bThingsGateway.Foundation.DEMO\u9879\u76ee\u4ee3\u7801",source:"@site/docs/foundation/opcua.mdx",sourceDirName:"foundation",slug:"/foundation/opcua",permalink:"/thingsgateway-docs/docs/foundation/opcua",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/foundation/opcua.mdx",tags:[],version:"current",lastUpdatedBy:"Kimdiego2098",lastUpdatedAt:1691392193,formattedLastUpdatedAt:"Aug 7, 2023",frontMatter:{id:"opcua",title:"OPCUAClient"},sidebar:"docs",previous:{title:"OPCDAClient",permalink:"/thingsgateway-docs/docs/foundation/opcda"}},p={},u=[],d={toc:u};function l(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"DEMO")),(0,o.kt)("p",{parentName:"admonition"},"\u67e5\u770bThingsGateway.Foundation.DEMO\u9879\u76ee\u4ee3\u7801")))}l.isMDXComponent=!0}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[4875],{2776:s=>{s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[6270],{2776:s=>{s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);

View File

@@ -1 +1 @@
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[359],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(n),g=o,f=d["".concat(l,".").concat(g)]||d[g]||u[g]||i;return n?r.createElement(f,a(a({ref:t},s),{},{components:n})):r.createElement(f,a({ref:t},s))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var p=2;p<i;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5326:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={id:"pluginconfig",title:"\u63d2\u4ef6\u7ba1\u7406"},a=void 0,c={unversionedId:"pluginconfig",id:"pluginconfig",title:"\u63d2\u4ef6\u7ba1\u7406",description:"\u66f4\u6539\u91c7\u96c6\u8bbe\u5907/\u53d8\u91cf/\u4e0a\u4f20\u8bbe\u5907/\u63d2\u4ef6\u7b49\uff0c\u9700\u8981\u91cd\u542f\u7ebf\u7a0b\uff08\u7f51\u5173\u72b6\u6001-\u8fd0\u884c\u72b6\u6001-\u5168\u90e8\u91cd\u542f/\u5355\u4e2a\u8bbe\u5907\u91cd\u542f\uff09",source:"@site/docs/pluginconfig.mdx",sourceDirName:".",slug:"/pluginconfig",permalink:"/thingsgateway-docs/docs/pluginconfig",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/pluginconfig.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"pluginconfig",title:"\u63d2\u4ef6\u7ba1\u7406"},sidebar:"docs",previous:{title:"\u5165\u95e8\u6307\u5357",permalink:"/thingsgateway-docs/docs/startguide"},next:{title:"\u63d2\u4ef6\u8c03\u8bd5",permalink:"/thingsgateway-docs/docs/plugindebug"}},l={},p=[{value:"\u4e00\u3001\u6dfb\u52a0/\u66f4\u65b0\u63d2\u4ef6",id:"\u4e00\u6dfb\u52a0\u66f4\u65b0\u63d2\u4ef6",level:2}],s={toc:p};function u(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u914d\u7f6e\u987b\u77e5")),(0,o.kt)("p",{parentName:"admonition"}," \u66f4\u6539\u91c7\u96c6\u8bbe\u5907/\u53d8\u91cf/\u4e0a\u4f20\u8bbe\u5907/\u63d2\u4ef6\u7b49\uff0c\u9700\u8981\u91cd\u542f\u7ebf\u7a0b\uff08\u7f51\u5173\u72b6\u6001-\u8fd0\u884c\u72b6\u6001-\u5168\u90e8\u91cd\u542f/\u5355\u4e2a\u8bbe\u5907\u91cd\u542f\uff09")),(0,o.kt)("h2",{id:"\u4e00\u6dfb\u52a0\u66f4\u65b0\u63d2\u4ef6"},"\u4e00\u3001\u6dfb\u52a0/\u66f4\u65b0\u63d2\u4ef6"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(1427).Z,width:"2312",height:"1457"})),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"\u9009\u62e9\u4e3b\u7a0b\u5e8f\u96c6\uff08\u53ea\u80fd\u4e00\u4e2a\uff0c\u63d2\u4ef6\u7684\u4e3b\u7a0b\u5e8f\u96c6\uff09")),(0,o.kt)("p",null,"\u9009\u62e9\u9644\u5c5e\u7a0b\u5e8f\u96c6\uff08\u53ef\u591a\u4e2a,\u63d2\u4ef6\u4e3b\u7a0b\u5e8f\u96c6\u7684\u5f15\u7528\u7c7b\u5e93\uff09"),(0,o.kt)("p",null,"\u70b9\u51fb\u4fdd\u5b58"))}u.isMDXComponent=!0},1427:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/plugincore-1-165f5df8b8ae51654100cb8e3e856c43.png"}}]);
"use strict";(self.webpackChunkthingsgateway=self.webpackChunkthingsgateway||[]).push([[359],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(n),g=o,f=d["".concat(l,".").concat(g)]||d[g]||u[g]||i;return n?r.createElement(f,a(a({ref:t},s),{},{components:n})):r.createElement(f,a({ref:t},s))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var p=2;p<i;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5326:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={id:"pluginconfig",title:"\u63d2\u4ef6\u7ba1\u7406"},a=void 0,c={unversionedId:"pluginconfig",id:"pluginconfig",title:"\u63d2\u4ef6\u7ba1\u7406",description:"\u66f4\u6539\u91c7\u96c6\u8bbe\u5907/\u53d8\u91cf/\u4e0a\u4f20\u8bbe\u5907/\u63d2\u4ef6\u7b49\uff0c\u9700\u8981\u91cd\u542f\u7ebf\u7a0b\uff08\u7f51\u5173\u72b6\u6001-\u8fd0\u884c\u72b6\u6001-\u5168\u90e8\u91cd\u542f/\u5355\u4e2a\u8bbe\u5907\u91cd\u542f\uff09",source:"@site/docs/pluginconfig.mdx",sourceDirName:".",slug:"/pluginconfig",permalink:"/thingsgateway-docs/docs/pluginconfig",draft:!1,editUrl:"https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/pluginconfig.mdx",tags:[],version:"current",lastUpdatedBy:"2248356998 qq.com",lastUpdatedAt:1689499706,formattedLastUpdatedAt:"Jul 16, 2023",frontMatter:{id:"pluginconfig",title:"\u63d2\u4ef6\u7ba1\u7406"},sidebar:"docs",previous:{title:"\u5165\u95e8\u6307\u5357",permalink:"/thingsgateway-docs/docs/startguide"},next:{title:"\u63d2\u4ef6\u8c03\u8bd5",permalink:"/thingsgateway-docs/docs/plugindebug"}},l={},p=[{value:"\u4e00\u3001\u6dfb\u52a0/\u66f4\u65b0\u63d2\u4ef6",id:"\u4e00\u6dfb\u52a0\u66f4\u65b0\u63d2\u4ef6",level:2}],s={toc:p};function u(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,o.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"\u914d\u7f6e\u987b\u77e5")),(0,o.kt)("p",{parentName:"admonition"}," \u66f4\u6539\u91c7\u96c6\u8bbe\u5907/\u53d8\u91cf/\u4e0a\u4f20\u8bbe\u5907/\u63d2\u4ef6\u7b49\uff0c\u9700\u8981\u91cd\u542f\u7ebf\u7a0b\uff08\u7f51\u5173\u72b6\u6001-\u8fd0\u884c\u72b6\u6001-\u5168\u90e8\u91cd\u542f/\u5355\u4e2a\u8bbe\u5907\u91cd\u542f\uff09")),(0,o.kt)("h2",{id:"\u4e00\u6dfb\u52a0\u66f4\u65b0\u63d2\u4ef6"},"\u4e00\u3001\u6dfb\u52a0/\u66f4\u65b0\u63d2\u4ef6"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4548).Z,width:"2312",height:"1457"})),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"\u9009\u62e9\u4e3b\u7a0b\u5e8f\u96c6\uff08\u53ea\u80fd\u4e00\u4e2a\uff0c\u63d2\u4ef6\u7684\u4e3b\u7a0b\u5e8f\u96c6\uff09")),(0,o.kt)("p",null,"\u9009\u62e9\u9644\u5c5e\u7a0b\u5e8f\u96c6\uff08\u53ef\u591a\u4e2a,\u63d2\u4ef6\u4e3b\u7a0b\u5e8f\u96c6\u7684\u5f15\u7528\u7c7b\u5e93\uff09"),(0,o.kt)("p",null,"\u70b9\u51fb\u4fdd\u5b58"))}u.isMDXComponent=!0},4548:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/plugincore-1-165f5df8b8ae51654100cb8e3e856c43.png"}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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