Compare commits

...

9 Commits

Author SHA1 Message Date
Kimdiego2098
65c695d9ce 更新版本2.1.0 2023-08-25 19:45:28 +08:00
Kimdiego2098
57253fe46a 更新解决方案 2023-08-25 19:38:47 +08:00
Kimdiego2098
4e5c443440 更新DLT645文档 2023-08-25 19:33:33 +08:00
Kimdiego2098
0b3b73d8ec 添加DLT645_2007协议插件 2023-08-25 19:33:08 +08:00
Kimdiego2098
921eabc134 调整Test位置 2023-08-25 19:32:27 +08:00
Kimdiego2098
0faa428751 调整非主从协议的状态判断策略;OPCUA去除主动连接 2023-08-25 17:23:00 +08:00
Kimdiego2098
f71a2fdd63 crc校验优化 2023-08-22 17:01:10 +08:00
Kimdiego2098
4eb9ed8aba OPCUAClient添加是否使用SourceTime的选项 2023-08-22 16:15:34 +08:00
Kimdiego2098
d7b549abb8 更新文档 2023-08-22 12:21:45 +08:00
146 changed files with 4793 additions and 463 deletions

View File

@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
<Version>2.0.9.3</Version>
<Version>2.1.0.0</Version>
<Authors>Diego</Authors>
<Product>ThingsGateway</Product>
<Copyright>© 2023-present Diego</Copyright>

View File

@@ -9,10 +9,10 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.8.40" />
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.8.40" />
<PackageReference Include="Furion.Pure" Version="4.8.8.40" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.99" />
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.8.41" />
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.8.41" />
<PackageReference Include="Furion.Pure" Version="4.8.8.41" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.102" />
<PackageReference Include="UAParser" Version="3.1.47" />
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
<PackageReference Include="MiniExcel" Version="1.31.2" />

View File

@@ -319,6 +319,39 @@
"UpdateUserId": null,
"SortCode": 0,
"ExtJson": null
},
{
"Id": 442505,
"FileName": "ThingsGateway.DLT645",
"AssembleName": "DLT645_2007",
"DriverTypeEnum": "Collect",
"FilePath": "Plugins/ThingsGateway.DLT645/ThingsGateway.DLT645.dll",
"CreateTime": "2023/8/6 18:22:33",
"CreateUser": "superAdmin",
"CreateUserId": 212725263002001,
"IsDelete": 0,
"UpdateTime": null,
"UpdateUser": null,
"UpdateUserId": null,
"SortCode": 0,
"ExtJson": null
},
{
"Id": 442506,
"FileName": "ThingsGateway.DLT645",
"AssembleName": "DLT645_2007OverTcp",
"DriverTypeEnum": "Collect",
"FilePath": "Plugins/ThingsGateway.DLT645/ThingsGateway.DLT645.dll",
"CreateTime": "2023/8/6 18:22:33",
"CreateUser": "superAdmin",
"CreateUserId": 212725263002001,
"IsDelete": 0,
"UpdateTime": null,
"UpdateUser": null,
"UpdateUserId": null,
"SortCode": 0,
"ExtJson": null
}
]
}

View File

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

View File

@@ -433,11 +433,11 @@ public class CollectDeviceCore
if (_driver.IsConnected())
{
//更新设备活动时间
Device.SetDeviceStatus(SysDateTimeExtensions.CurrentDateTime, 0);
Device.SetDeviceStatus(SysDateTimeExtensions.CurrentDateTime, errorCount: 0);
}
else
{
Device.SetDeviceStatus(SysDateTimeExtensions.CurrentDateTime, 999);
Device.SetDeviceStatus(errorCount: 999);
}
}

View File

@@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ThingsGateway.Foundation.Adapter.Modbus" Version="2.0.9" />
<ProjectReference Include="..\..\Foundataion\ThingsGateway.Foundation.Adapter.DLT645\ThingsGateway.Foundation.Adapter.DLT645.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>ModbusDemo</name>
<name>DLT645Test</name>
</assembly>
<members>
</members>

View File

@@ -0,0 +1,112 @@
using ThingsGateway.Foundation;
using ThingsGateway.Foundation.Adapter.DLT645;
using ThingsGateway.Foundation.Extension.Byte;
using ThingsGateway.Foundation.Serial;
using TouchSocket.Core;
using TouchSocket.Sockets;
namespace DLT645Test
{
internal class Program
{
static async Task Main(string[] args)
{
await DLT645_2007ClientAsync();
Console.ReadLine();
}
private static async Task DLT645_2007ClientAsync()
{
//链路基础配置项
var config = new TouchSocketConfig();
config.SetRemoteIPHost(new IPHost("127.0.0.1:502"))//TCP/UDP链路才需要
.SetSerialProperty(new SerialProperty() //串口链路才需要
{
PortName = "COM1"
}).SetBufferLength(1024);
var serialClient = new SerialClient();//链路对象
serialClient.Setup(config);
//创建协议对象,构造函数需要传入对应链路对象
DLT645_2007 dlt6452007 = new(serialClient)//传入链路
{
//协议配置
DataFormat = DataFormat.ABCD,
FrameTime = 0,
CacheTimeout = 1000,
ConnectTimeOut = 3000,
TimeOut = 3000,
EnableFEHead = true,
};
#region
//测试读取写入
Console.WriteLine("dlt6452007" + dlt6452007.SerialClient.SerialProperty.ToJson());
await TestAsync(dlt6452007);
#endregion
}
private static async Task TestAsync(DLT645_2007 plc)
{
//下面的方法对应PLC读写协议对象都是通用的
//注意下面的方法都带有CancellationToken传播一般是在最后一个参数默认为None
//var bytes02010100Result = await plc.ReadAsync("03010100", 20);
////返回带有是否成功等参数实际数据在data.Content中
//Console.WriteLine("bytes02010100Result" + (bytes02010100Result.IsSuccess ? bytes02010100Result.Content.ToHexString() : bytes02010100Result.Message));
//Console.WriteLine("bytes02010100Result" + (bytes02010100Result.IsSuccess ? plc.ThingsGatewayBitConverter.ToDouble(bytes02010100Result.Content, 0) : bytes02010100Result.Message));
//var bytes02020100Result = await plc.ReadAsync("02020100", 20);
////返回带有是否成功等参数实际数据在data.Content中
//Console.WriteLine("bytes02020100Result" + (bytes02020100Result.IsSuccess ? bytes02020100Result.Content.ToHexString() : bytes02020100Result.Message));
//Console.WriteLine("bytes02020100Result" + (bytes02020100Result.IsSuccess ? plc.ThingsGatewayBitConverter.ToDouble(bytes02020100Result.Content, 0) : bytes02020100Result.Message));
//var bytes02020100Result = await plc.ReadAsync("04000103", 1);
////返回带有是否成功等参数实际数据在data.Content中
//Console.WriteLine("bytes02020100Result" + (bytes02020100Result.IsSuccess ? bytes02020100Result.Content.ToHexString() : bytes02020100Result.Message));
//Console.WriteLine("bytes02020100Result" + (bytes02020100Result.IsSuccess ? plc.ThingsGatewayBitConverter.ToString(bytes02020100Result.Content) : bytes02020100Result.Message));
var test1 = await plc.ReadDeviceStationAsync();
Console.WriteLine("bytes02020100Result" + (test1.IsSuccess ? test1.Content : test1.Message));
var test2 = await plc.WriteDeviceStationAsync("311111111114");
Console.WriteLine("bytes02020100Result" + (test2.IsSuccess ? test2.Message : test2.Message));
plc.BroadcastTime(DateTime.Now);
plc.Station = "311111111114";
var test3 = await plc.WriteBaudRateAsync(19200);
Console.WriteLine("bytes02020100Result" + (test3.IsSuccess ? test3.Message : test3.Message));
var test4 = await plc.FreezeAsync(DateTime.Now);
Console.WriteLine("bytes02020100Result" + (test4.IsSuccess ? test4.Message : test4.Message));
var test5 = await plc.WritePasswordAsync(1, "66666666", "11111111");
Console.WriteLine("bytes02020100Result" + (test5.IsSuccess ? test5.Message : test5.Message));
plc.Password = "11111111";
var bytes02020100Result1 = await plc.ReadAsync("04000403", 1);
//返回带有是否成功等参数实际数据在data.Content中
Console.WriteLine("bytes02020100Result" + (bytes02020100Result1.IsSuccess ? bytes02020100Result1.Content.ToHexString() : bytes02020100Result1.Message));
Console.WriteLine("bytes02020100Result" + (bytes02020100Result1.IsSuccess ? plc.ThingsGatewayBitConverter.ToString(bytes02020100Result1.Content) : bytes02020100Result1.Message));
var test = await plc.WriteAsync("04000403", "33");
//返回带有是否成功等参数实际数据在data.Content中
Console.WriteLine("test" + test.Message);
var bytes02020100Result = await plc.ReadAsync("04000403", 1);
//返回带有是否成功等参数实际数据在data.Content中
Console.WriteLine("bytes02020100Result" + (bytes02020100Result.IsSuccess ? bytes02020100Result.Content.ToHexString() : bytes02020100Result.Message));
Console.WriteLine("bytes02020100Result" + (bytes02020100Result.IsSuccess ? plc.ThingsGatewayBitConverter.ToString(bytes02020100Result.Content) : bytes02020100Result.Message));
}
}
}

View File

@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Foundataion\ThingsGateway.Foundation.Adapter.Modbus\ThingsGateway.Foundation.Adapter.Modbus.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>OPCUAClientDemo</name>
<name>ModbusTest</name>
</assembly>
<members>
</members>

View File

@@ -7,8 +7,9 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ThingsGateway.Foundation.Adapter.OPCUA" Version="2.0.9" />
<ProjectReference Include="..\..\Foundataion\ThingsGateway.Foundation.Adapter.OPCUA\ThingsGateway.Foundation.Adapter.OPCUA.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>OPCUAClientTest</name>
</assembly>
<members>
</members>
</doc>

View File

@@ -19,7 +19,10 @@ namespace ModbusDemo
await oPCUAClient.ConnectAsync();
var testData1 = await oPCUAClient.ReadJTokenValueAsync(new[] { "ns=2;i=2897" });
await oPCUAClient.WriteNodeAsync("ns=2;i=2897", testData1.FirstOrDefault().Item3);
await oPCUAClient.WriteNodeAsync(new()
{
{"ns=2;i=2897", testData1.FirstOrDefault().Item3 }
});
}
}

View File

@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
<Version>2.0.9.3</Version>
<Version>2.1.0.0</Version>
<Authors>Diego</Authors>
<Product>ThingsGateway</Product>
<Copyright>© 2023-present Diego</Copyright>

View File

@@ -0,0 +1,459 @@
#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 System.ComponentModel;
using ThingsGateway.Foundation.Extension.Byte;
using ThingsGateway.Foundation.Extension.Generic;
using ThingsGateway.Foundation.Serial;
namespace ThingsGateway.Foundation.Adapter.DLT645;
/// <summary>
/// DLT645_2007
/// </summary>
public class DLT645_2007 : ReadWriteDevicesSerialBase
{
/// <summary>
/// DLT645_2007
/// </summary>
/// <param name="serialClient"></param>
public DLT645_2007(SerialClient serialClient) : base(serialClient)
{
ThingsGatewayBitConverter = new DLT645_2007BitConverter(EndianType.Big);
RegisterByteLength = 2;
}
/// <summary>
/// 组包缓存时间/ms
/// </summary>
[Description("组包缓存时间ms")]
public int CacheTimeout { get; set; } = 1000;
/// <summary>
/// 增加FE FE FE FE的报文头部
/// </summary>
[Description("前导符报文头")]
public bool EnableFEHead { get; set; }
/// <summary>
/// 帧前时间ms
/// </summary>
[Description("帧前时间ms")]
public int FrameTime { get; set; }
/// <summary>
/// 写入需操作员代码
/// </summary>
[Description("操作员代码")]
public string OperCode { get; set; }
/// <summary>
/// 写入密码
/// </summary>
[Description("写入密码")]
public string Password { get; set; }
/// <summary>
/// 通讯地址BCD码一般应该是12个字符
/// </summary>
[Description("通讯地址")]
public string Station { get; set; }
/// <inheritdoc/>
public override string GetAddressDescription() => base.GetAddressDescription() + Environment.NewLine;
/// <inheritdoc/>
public override async Task<OperResult<byte[]>> ReadAsync(string address, int length, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
var commandResult = DLT645Helper.GetDLT645_2007Command(address, length, (byte)ControlCode.Read, Station);
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
return (MessageBase)result.RequestInfo;
}
else
{
return OperResult.CreateFailedResult<byte[]>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<byte[]>(ex);
}
}
/// <inheritdoc/>
public override void SetDataAdapter()
{
var dataHandleAdapter = new DLT645_2007DataHandleAdapter
{
EnableFEHead = EnableFEHead
};
SerialClient.SetDataHandlingAdapter(dataHandleAdapter);
}
/// <inheritdoc/>
public override async Task<OperResult> WriteAsync(string address, string value, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
Password ??= string.Empty;
OperCode ??= string.Empty;
if (Password.Length < 8)
Password = Password.PadLeft(8, '0');
if (OperCode.Length < 8)
OperCode = OperCode.PadLeft(8, '0');
var data = DataTransUtil.SpliceArray(Password.ByHexStringToBytes(), OperCode.ByHexStringToBytes());
string[] strArray = value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
var commandResult = DLT645Helper.GetDLT645_2007Command(address, 1, (byte)ControlCode.Write, Station, data, strArray);
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
return (MessageBase)result.RequestInfo;
}
else
{
return OperResult.CreateFailedResult<byte[]>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<byte[]>(ex);
}
}
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, byte[] value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, uint value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, byte value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, double value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, float value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, long value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, ulong value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, ushort value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, short value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, int value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, bool[] value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
#region
/// <summary>
/// 广播校时
/// </summary>
/// <param name="dateTime"></param>
/// <param name="token"></param>
/// <returns></returns>
public OperResult BroadcastTime(DateTime dateTime, CancellationToken token = default)
{
try
{
Connect(token);
string str = $"{dateTime.Second:D2}{dateTime.Minute:D2}{dateTime.Hour:D2}{dateTime.Day:D2}{dateTime.Month:D2}{dateTime.Year % 100:D2}";
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.BroadcastTime, str.ByHexStringToBytes().Reverse().ToArray(), "999999999999".ByHexStringToBytes());
if (commandResult.IsSuccess)
{
SerialClient.Send(commandResult.Content);
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 冻结
/// </summary>
/// <param name="dateTime"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult> FreezeAsync(DateTime dateTime, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
string str = $"{dateTime.Minute:D2}{dateTime.Hour:D2}{dateTime.Day:D2}{dateTime.Month:D2}";
if (Station.IsNullOrEmpty()) Station = string.Empty;
if (Station.Length < 12) Station = Station.PadLeft(12, '0');
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.Freeze, str.ByHexStringToBytes().Reverse().ToArray(), Station.ByHexStringToBytes().Reverse().ToArray());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 读取通信地址
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult<string>> ReadDeviceStationAsync(CancellationToken token = default)
{
try
{
await ConnectAsync(token);
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.ReadStation, null, "AAAAAAAAAAAA".ByHexStringToBytes());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
var buffer = result1.Content.SelectMiddle(0, 6).BytesAdd(-0x33);
return OperResult.CreateSuccessResult(buffer.Reverse().ToArray().ToHexString());
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 修改波特率
/// </summary>
/// <param name="baudRate"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult> WriteBaudRateAsync(int baudRate, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
byte baudRateByte;
switch (baudRate)
{
case 600: baudRateByte = 0x02; break;
case 1200: baudRateByte = 0x04; break;
case 2400: baudRateByte = 0x08; break;
case 4800: baudRateByte = 0x10; break;
case 9600: baudRateByte = 0x20; break;
case 19200: baudRateByte = 0x40; break;
default: return new OperResult<string>($"不支持此波特率:{baudRate}");
}
if (Station.IsNullOrEmpty()) Station = string.Empty;
if (Station.Length < 12) Station = Station.PadLeft(12, '0');
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.WriteBaudRate, new byte[] { baudRateByte }, Station.ByHexStringToBytes().Reverse().ToArray());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 更新通信地址
/// </summary>
/// <param name="station"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult> WriteDeviceStationAsync(string station, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.WriteStation, station.ByHexStringToBytes().Reverse().ToArray(), "AAAAAAAAAAAA".ByHexStringToBytes());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 修改密码
/// </summary>
/// <param name="level"></param>
/// <param name="oldPassword"></param>
/// <param name="newPassword"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult> WritePasswordAsync(byte level, string oldPassword, string newPassword, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
if (Station.IsNullOrEmpty()) Station = string.Empty;
if (Station.Length < 12) Station = Station.PadLeft(12, '0');
string str = $"04000C{level:D2}";
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.WritePassword,
str.ByHexStringToBytes().Reverse().ToArray()
.SpliceArray(oldPassword.ByHexStringToBytes().Reverse().ToArray())
.SpliceArray(newPassword.ByHexStringToBytes().Reverse().ToArray())
, Station.ByHexStringToBytes().Reverse().ToArray());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
#endregion
}
/// <summary>
/// 控制码
/// </summary>
public enum ControlCode : byte
{
/// <summary>
/// 读数据
/// </summary>
Read = 0x11,
/// <summary>
/// 读后续数据
/// </summary>
ReadSub = 0x12,
/// <summary>
/// 读站号
/// </summary>
ReadStation = 0x13,
/// <summary>
/// 写数据
/// </summary>
Write = 0x14,
/// <summary>
/// 写站号
/// </summary>
WriteStation = 0x15,
/// <summary>
/// 广播校时
/// </summary>
BroadcastTime = 0x08,
/// <summary>
/// 冻结
/// </summary>
Freeze = 0x16,
/// <summary>
/// 更新波特率
/// </summary>
WriteBaudRate = 0x17,
/// <summary>
/// 更新密码
/// </summary>
WritePassword = 0x18,
}

View File

@@ -0,0 +1,146 @@
#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 System.Text;
using ThingsGateway.Foundation.Extension.Byte;
namespace ThingsGateway.Foundation.Adapter.DLT645;
/// <summary>
/// DLT645_2007Address
/// </summary>
public class DLT645_2007Address : DeviceAddressBase
{
/// <summary>
/// <inheritdoc/>
/// </summary>
public DLT645_2007Address()
{
}
/// <inheritdoc/>
public DLT645_2007Address(string address, ushort len)
{
Parse(address, len);
}
/// <inheritdoc/>
public DLT645_2007Address(string address, byte[] station)
{
Station = station;
Parse(address, 0);
}
/// <summary>
/// 数据标识
/// </summary>
public byte[] DataId { get; set; } = new byte[0];
/// <summary>
/// 反转解析
/// </summary>
public bool Reverse { get; set; } = true;
/// <summary>
/// 站号信息
/// </summary>
public byte[] Station { get; set; } = new byte[0];
/// <inheritdoc/>
public override void Parse(string address, int length)
{
var result = ParseFrom(address, length);
if (result.IsSuccess)
{
Length = result.Content.Length;
AddressStart = result.Content.AddressStart;
DataId = result.Content.DataId;
Station = result.Content.Station;
}
else
{
throw new Exception(result.Message);
}
}
/// <summary>
/// 解析地址
/// </summary>
/// <param name="address"></param>
/// <param name="length"></param>
/// <returns></returns>
public static OperResult<DLT645_2007Address> ParseFrom(string address, int length)
{
try
{
DLT645_2007Address dLT645_2007Address = new();
byte[] array;
array = new byte[0];
dLT645_2007Address.Length = length;
if (address.IndexOf(';') < 0)
{
array = address.ByHexStringToBytes().Reverse().ToArray();
}
else
{
string[] strArray = address.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
for (int index = 0; index < strArray.Length; ++index)
{
if (strArray[index].ToUpper().StartsWith("S="))
{
var station = strArray[index].Substring(2);
if (station.IsNullOrEmpty()) return new OperResult<DLT645_2007Address>("通讯地址不能为空");
if (station.Length < 12)
station = station.PadLeft(12, '0');
dLT645_2007Address.Station = station.ByHexStringToBytes().Reverse().ToArray();
}
else if (!strArray[index].Contains("r="))
{
dLT645_2007Address.Reverse = strArray[index].Substring(2).GetBoolValue();
}
else if (!strArray[index].Contains("="))
{
array = strArray[index].ByHexStringToBytes().Reverse().ToArray();
}
}
}
dLT645_2007Address.DataId = array;
return OperResult.CreateSuccessResult(dLT645_2007Address);
}
catch (Exception ex)
{
return new OperResult<DLT645_2007Address>(ex);
}
}
/// <inheritdoc/>
public override string ToString()
{
StringBuilder stringGeter = new();
if (Station.Length > 0)
{
stringGeter.Append("s=" + Station.Reverse().ToArray().ToHexString() + ";");
}
if (DataId.Length > 0)
{
stringGeter.Append(DataId.Reverse().ToArray().ToHexString() + ";");
}
if (!Reverse)
{
stringGeter.Append("s=" + Reverse.ToString() + ";");
}
return stringGeter.ToString();
}
}

View File

@@ -0,0 +1,106 @@
#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 System.Text;
using ThingsGateway.Foundation.Extension.Byte;
using ThingsGateway.Foundation.Extension.Generic;
namespace ThingsGateway.Foundation.Adapter.DLT645;
/// <summary>
/// DLT645_2007
/// </summary>
public class DLT645_2007BitConverter : ThingsGatewayBitConverter
{
/// <summary>
/// DLT645_2007
/// </summary>
public DLT645_2007BitConverter(EndianType endianType) : base(endianType)
{
}
/// <summary>
/// DLT645协议转换double
/// </summary>
/// <param name="buffer">带数据项标识</param>
/// <param name="offset"></param>
/// <returns></returns>
public override double ToDouble(byte[] buffer, int offset)
{
return Convert.ToDouble(this.ToString(buffer, offset, buffer.Length));
}
/// <inheritdoc/>
public override string ToString(byte[] buffer)
{
return this.ToString(buffer, 0, buffer.Length);
}
/// <inheritdoc/>
public override string ToString(byte[] buffer, int offset, int length)
{
buffer = buffer.SelectMiddle(offset, length);
buffer = buffer.BytesAdd(-0x33);
var dataInfos = DLT645Helper.GetDataInfos(buffer);
StringBuilder stringBuilder = new();
foreach (var dataInfo in dataInfos)
{
//实际数据
var content = buffer.SelectMiddle(4, dataInfo.ByteLength).Reverse().ToArray();
if (dataInfo.IsSigned)//可能为负数
{
if (content[0] > 0x80)//最高位是表示正负
{
content[0] = (byte)(content[0] - 0x80);
if (dataInfo.Digtal == 0)//无小数点
{
stringBuilder.AppendLine($"-{content.ToHexString()}");
}
else
{
stringBuilder.AppendLine((-(Convert.ToDouble(content.ToHexString()) / Math.Pow(10.0, dataInfo.Digtal))).ToString());
}
}
else
{
ToString(stringBuilder, dataInfo, content);
}
}
else
{
ToString(stringBuilder, dataInfo, content);
}
}
return stringBuilder.ToString();
static void ToString(StringBuilder stringBuilder, DataInfo dataInfo, byte[] content)
{
if (dataInfo.Digtal < 0)
{
stringBuilder.AppendLine($"{Encoding.ASCII.GetString(content)}");
}
else if (dataInfo.Digtal == 0)//无小数点
{
stringBuilder.AppendLine($"{content.ToHexString()}");
}
else
{
stringBuilder.AppendLine(((Convert.ToDouble(content.ToHexString()) / Math.Pow(10.0, dataInfo.Digtal))).ToString());
}
}
}
}

View File

@@ -0,0 +1,115 @@
#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 System.ComponentModel;
using ThingsGateway.Foundation.Adapter.Modbus;
using ThingsGateway.Foundation.Extension.Generic;
namespace ThingsGateway.Foundation.Adapter.DLT645;
/// <summary>
/// DLT645_2007DataHandleAdapter
/// </summary>
public class DLT645_2007DataHandleAdapter : ReadWriteDevicesTcpDataHandleAdapter<DLT645_2007Message>
{
/// <summary>
/// 增加FE FE FE FE的报文头部
/// </summary>
[Description("前导符报文头")]
public bool EnableFEHead { get; set; }
/// <inheritdoc/>
public override byte[] PackCommand(byte[] command)
{
//打包时加上4个FE字节
if (EnableFEHead)
{
return DataTransUtil.SpliceArray(new byte[4] { 0xFE, 0xFE, 0xFE, 0xFE }, command);
}
return command;
}
/// <inheritdoc/>
protected override DLT645_2007Message GetInstance()
{
return new DLT645_2007Message();
}
/// <inheritdoc/>
protected override FilterResult UnpackResponse(DLT645_2007Message request, byte[] send, byte[] body, byte[] response)
{
//因为设备可能带有FE前导符开头这里找到0x68的位置
int headCodeIndex = -1;
if (response != null)
{
for (int index = 0; index < response.Length; index++)
{
if (response[index] == 0x68)
{
headCodeIndex = index;
break;
}
}
}
//帧起始符 地址域 帧起始符 控制码 数据域长度共10个字节
if (headCodeIndex < 0 || headCodeIndex + 10 > response.Length)
return FilterResult.Cache;
var len = 10 + response[headCodeIndex + 9] + 2;
if (response.Length - headCodeIndex < len)
{
return FilterResult.Cache;
}
if (response.Length - headCodeIndex >= len && response[len + headCodeIndex - 1] == 0x16)
{
//检查校验码
int sumCheck = 0;
for (int i = headCodeIndex; i < len + headCodeIndex - 2; i++)
sumCheck += response[i];
if ((byte)sumCheck != response[len + headCodeIndex - 2])
{
//校验错误
request.Message = "和校验错误";
request.ResultCode = ResultCode.Fail;
return FilterResult.Success;
}
if ((response[headCodeIndex + 8] & 0x40) == 0x40)//控制码bit6为1时返回错误
{
byte byte1 = (byte)(response[headCodeIndex + 10] - 0x33);
var error = DLT645Helper.Get2007ErrorMessage(byte1);
request.Message = "异常控制码:" + $"0x{response[headCodeIndex + 8]:X2},错误信息:{error}";
request.ResultCode = ResultCode.Fail;
return FilterResult.Success;
}
else
{
request.Content = response.RemoveBegin(headCodeIndex + 10).RemoveLast(response.Length + 2 - len - headCodeIndex);
request.ResultCode = ResultCode.Success;
return FilterResult.Success;
}
}
else
{
request.ResultCode = ResultCode.Error;
return FilterResult.Success;
}
}
}

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
namespace ThingsGateway.Foundation.Adapter.Modbus;
/// <summary>
/// <inheritdoc/>
/// </summary>
public class DLT645_2007Message : MessageBase, IMessage
{
/// <inheritdoc/>
public override int HeadBytesLength => -1;
/// <inheritdoc/>
public override bool CheckHeadBytes(byte[] head)
{
return true;
}
/// <inheritdoc/>
protected override void SendBytesThen()
{
BodyLength = -1;
}
}

View File

@@ -0,0 +1,416 @@
#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 System.ComponentModel;
using ThingsGateway.Foundation.Extension.Byte;
using ThingsGateway.Foundation.Extension.Generic;
namespace ThingsGateway.Foundation.Adapter.DLT645;
/// <summary>
/// DLT645_2007
/// </summary>
public class DLT645_2007OverTcp : ReadWriteDevicesTcpClientBase
{
/// <summary>
/// DLT645_2007
/// </summary>
/// <param name="tcpClient"></param>
public DLT645_2007OverTcp(TcpClientEx tcpClient) : base(tcpClient)
{
ThingsGatewayBitConverter = new DLT645_2007BitConverter(EndianType.Big);
RegisterByteLength = 2;
}
/// <summary>
/// 组包缓存时间/ms
/// </summary>
[Description("组包缓存时间ms")]
public int CacheTimeout { get; set; } = 1000;
/// <summary>
/// 增加FE FE FE FE的报文头部
/// </summary>
[Description("前导符报文头")]
public bool EnableFEHead { get; set; }
/// <summary>
/// 帧前时间ms
/// </summary>
[Description("帧前时间ms")]
public int FrameTime { get; set; }
/// <summary>
/// 写入需操作员代码
/// </summary>
[Description("操作员代码")]
public string OperCode { get; set; }
/// <summary>
/// 写入密码
/// </summary>
[Description("写入密码")]
public string Password { get; set; }
/// <summary>
/// 通讯地址BCD码一般应该是12个字符
/// </summary>
[Description("通讯地址")]
public string Station { get; set; }
/// <inheritdoc/>
public override string GetAddressDescription() => base.GetAddressDescription() + Environment.NewLine;
/// <inheritdoc/>
public override async Task<OperResult<byte[]>> ReadAsync(string address, int length, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
var commandResult = DLT645Helper.GetDLT645_2007Command(address, length, (byte)ControlCode.Read, Station);
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
return (MessageBase)result.RequestInfo;
}
else
{
return OperResult.CreateFailedResult<byte[]>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<byte[]>(ex);
}
}
/// <inheritdoc/>
public override void SetDataAdapter()
{
var dataHandleAdapter = new DLT645_2007DataHandleAdapter
{
EnableFEHead = EnableFEHead
};
TcpClientEx.SetDataHandlingAdapter(dataHandleAdapter);
}
/// <inheritdoc/>
public override async Task<OperResult> WriteAsync(string address, string value, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
Password ??= string.Empty;
OperCode ??= string.Empty;
if (Password.Length < 8)
Password = Password.PadLeft(8, '0');
if (OperCode.Length < 8)
OperCode = OperCode.PadLeft(8, '0');
var data = DataTransUtil.SpliceArray(Password.ByHexStringToBytes(), OperCode.ByHexStringToBytes());
string[] strArray = value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
var commandResult = DLT645Helper.GetDLT645_2007Command(address, 1, (byte)ControlCode.Write, Station, data, strArray);
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
return (MessageBase)result.RequestInfo;
}
else
{
return OperResult.CreateFailedResult<byte[]>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<byte[]>(ex);
}
}
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, byte[] value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, uint value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, byte value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, double value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, float value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, long value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, ulong value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, ushort value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, short value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, int value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
/// <inheritdoc/>
public override Task<OperResult> WriteAsync(string address, bool[] value, CancellationToken token = default) => WriteAsync(address, value.ToString(), token);
#region
/// <summary>
/// 广播校时
/// </summary>
/// <param name="dateTime"></param>
/// <param name="token"></param>
/// <returns></returns>
public OperResult BroadcastTime(DateTime dateTime, CancellationToken token = default)
{
try
{
Connect(token);
string str = $"{dateTime.Second:D2}{dateTime.Minute:D2}{dateTime.Hour:D2}{dateTime.Day:D2}{dateTime.Month:D2}{dateTime.Year % 100:D2}";
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.BroadcastTime, str.ByHexStringToBytes().Reverse().ToArray(), "999999999999".ByHexStringToBytes());
if (commandResult.IsSuccess)
{
TcpClientEx.Send(commandResult.Content);
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 冻结
/// </summary>
/// <param name="dateTime"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult> FreezeAsync(DateTime dateTime, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
string str = $"{dateTime.Minute:D2}{dateTime.Hour:D2}{dateTime.Day:D2}{dateTime.Month:D2}";
if (Station.IsNullOrEmpty()) Station = string.Empty;
if (Station.Length < 12) Station = Station.PadLeft(12, '0');
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.Freeze, str.ByHexStringToBytes().Reverse().ToArray(), Station.ByHexStringToBytes().Reverse().ToArray());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 读取通信地址
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult<string>> ReadDeviceStationAsync(CancellationToken token = default)
{
try
{
await ConnectAsync(token);
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.ReadStation, null, "AAAAAAAAAAAA".ByHexStringToBytes());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
var buffer = result1.Content.SelectMiddle(0, 6).BytesAdd(-0x33);
return OperResult.CreateSuccessResult(buffer.Reverse().ToArray().ToHexString());
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 修改波特率
/// </summary>
/// <param name="baudRate"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult> WriteBaudRateAsync(int baudRate, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
byte baudRateByte;
switch (baudRate)
{
case 600: baudRateByte = 0x02; break;
case 1200: baudRateByte = 0x04; break;
case 2400: baudRateByte = 0x08; break;
case 4800: baudRateByte = 0x10; break;
case 9600: baudRateByte = 0x20; break;
case 19200: baudRateByte = 0x40; break;
default: return new OperResult<string>($"不支持此波特率:{baudRate}");
}
if (Station.IsNullOrEmpty()) Station = string.Empty;
if (Station.Length < 12) Station = Station.PadLeft(12, '0');
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.WriteBaudRate, new byte[] { baudRateByte }, Station.ByHexStringToBytes().Reverse().ToArray());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 更新通信地址
/// </summary>
/// <param name="station"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult> WriteDeviceStationAsync(string station, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.WriteStation, station.ByHexStringToBytes().Reverse().ToArray(), "AAAAAAAAAAAA".ByHexStringToBytes());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
/// <summary>
/// 修改密码
/// </summary>
/// <param name="level"></param>
/// <param name="oldPassword"></param>
/// <param name="newPassword"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<OperResult> WritePasswordAsync(byte level, string oldPassword, string newPassword, CancellationToken token = default)
{
try
{
await ConnectAsync(token);
if (Station.IsNullOrEmpty()) Station = string.Empty;
if (Station.Length < 12) Station = Station.PadLeft(12, '0');
string str = $"04000C{level:D2}";
var commandResult = DLT645Helper.GetDLT645_2007Command((byte)ControlCode.WritePassword,
str.ByHexStringToBytes().Reverse().ToArray()
.SpliceArray(oldPassword.ByHexStringToBytes().Reverse().ToArray())
.SpliceArray(newPassword.ByHexStringToBytes().Reverse().ToArray())
, Station.ByHexStringToBytes().Reverse().ToArray());
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
var result1 = ((MessageBase)result.RequestInfo);
if (result1.IsSuccess)
{
return OperResult.CreateSuccessResult();
}
else
{
return OperResult.CreateFailedResult<string>(result1);
}
}
else
{
return OperResult.CreateFailedResult<string>(commandResult);
}
}
catch (Exception ex)
{
return new OperResult<string>(ex);
}
}
#endregion
}

View File

@@ -0,0 +1,19 @@
#region copyright
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
global using System;
global using System.Linq;
global using System.Threading;
global using System.Threading.Tasks;
global using TouchSocket.Core;
global using TouchSocket.Sockets;

View File

@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!--<GenerateDocumentationFile>True</GenerateDocumentationFile>-->
<TargetFrameworks>net45;netstandard2.0;net6.0;net7.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\ThingsGateway.Foundation\ThingsGateway.Foundation.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,462 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>ThingsGateway.Foundation.Adapter.DLT645</name>
</assembly>
<members>
<member name="T:ThingsGateway.Foundation.Adapter.DLT645.DataInfo">
<summary>
解析参数
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DataInfo.ByteLength">
<summary>
解析长度
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DataInfo.Digtal">
<summary>
小数位
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DataInfo.IsSigned">
<summary>
有符号解析
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645Helper.GetDataInfos(System.Byte[])">
<summary>
获取返回的解析信息
</summary>
<param name="buffer"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645Helper.GetDLT645_2007Command(System.String,System.Int32,System.Byte,System.String,System.Byte[],System.String[])">
<summary>
获取DLT645报文
</summary>
</member>
<member name="T:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007">
<summary>
DLT645_2007
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.#ctor(ThingsGateway.Foundation.Serial.SerialClient)">
<summary>
DLT645_2007
</summary>
<param name="serialClient"></param>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.CacheTimeout">
<summary>
组包缓存时间/ms
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.EnableFEHead">
<summary>
增加FE FE FE FE的报文头部
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.FrameTime">
<summary>
帧前时间ms
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.OperCode">
<summary>
写入需操作员代码
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.Password">
<summary>
写入密码
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.Station">
<summary>
通讯地址BCD码一般应该是12个字符
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.GetAddressDescription">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.ReadAsync(System.String,System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.SetDataAdapter">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.Byte[],System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.UInt32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.Byte,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.Double,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.Single,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.Int64,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.UInt64,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.UInt16,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.Int16,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteAsync(System.String,System.Boolean[],System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.BroadcastTime(System.DateTime,System.Threading.CancellationToken)">
<summary>
广播校时
</summary>
<param name="dateTime"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.FreezeAsync(System.DateTime,System.Threading.CancellationToken)">
<summary>
冻结
</summary>
<param name="dateTime"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.ReadDeviceStationAsync(System.Threading.CancellationToken)">
<summary>
读取通信地址
</summary>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteBaudRateAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
修改波特率
</summary>
<param name="baudRate"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WriteDeviceStationAsync(System.String,System.Threading.CancellationToken)">
<summary>
更新通信地址
</summary>
<param name="station"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007.WritePasswordAsync(System.Byte,System.String,System.String,System.Threading.CancellationToken)">
<summary>
修改密码
</summary>
<param name="level"></param>
<param name="oldPassword"></param>
<param name="newPassword"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="T:ThingsGateway.Foundation.Adapter.DLT645.ControlCode">
<summary>
控制码
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.Read">
<summary>
读数据
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.ReadSub">
<summary>
读后续数据
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.ReadStation">
<summary>
读站号
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.Write">
<summary>
写数据
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.WriteStation">
<summary>
写站号
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.BroadcastTime">
<summary>
广播校时
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.Freeze">
<summary>
冻结
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.WriteBaudRate">
<summary>
更新波特率
</summary>
</member>
<member name="F:ThingsGateway.Foundation.Adapter.DLT645.ControlCode.WritePassword">
<summary>
更新密码
</summary>
</member>
<member name="T:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address">
<summary>
DLT645_2007Address
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.#ctor">
<summary>
<inheritdoc/>
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.#ctor(System.String,System.UInt16)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.#ctor(System.String,System.Byte[])">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.DataId">
<summary>
数据标识
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.Reverse">
<summary>
反转解析
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.Station">
<summary>
站号信息
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.Parse(System.String,System.Int32)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.ParseFrom(System.String,System.Int32)">
<summary>
解析地址
</summary>
<param name="address"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007Address.ToString">
<inheritdoc/>
</member>
<member name="T:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007BitConverter">
<summary>
DLT645_2007
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007BitConverter.#ctor(TouchSocket.Core.EndianType)">
<summary>
DLT645_2007
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007BitConverter.ToDouble(System.Byte[],System.Int32)">
<summary>
DLT645协议转换double
</summary>
<param name="buffer">带数据项标识</param>
<param name="offset"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007BitConverter.ToString(System.Byte[])">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007BitConverter.ToString(System.Byte[],System.Int32,System.Int32)">
<inheritdoc/>
</member>
<member name="T:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007DataHandleAdapter">
<summary>
DLT645_2007DataHandleAdapter
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007DataHandleAdapter.EnableFEHead">
<summary>
增加FE FE FE FE的报文头部
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007DataHandleAdapter.PackCommand(System.Byte[])">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007DataHandleAdapter.GetInstance">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007DataHandleAdapter.UnpackResponse(ThingsGateway.Foundation.Adapter.Modbus.DLT645_2007Message,System.Byte[],System.Byte[],System.Byte[])">
<inheritdoc/>
</member>
<member name="T:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp">
<summary>
DLT645_2007
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.#ctor(ThingsGateway.Foundation.TcpClientEx)">
<summary>
DLT645_2007
</summary>
<param name="tcpClient"></param>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.CacheTimeout">
<summary>
组包缓存时间/ms
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.EnableFEHead">
<summary>
增加FE FE FE FE的报文头部
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.FrameTime">
<summary>
帧前时间ms
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.OperCode">
<summary>
写入需操作员代码
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.Password">
<summary>
写入密码
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.Station">
<summary>
通讯地址BCD码一般应该是12个字符
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.GetAddressDescription">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.ReadAsync(System.String,System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.SetDataAdapter">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.String,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.Byte[],System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.UInt32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.Byte,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.Double,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.Single,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.Int64,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.UInt64,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.UInt16,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.Int16,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteAsync(System.String,System.Boolean[],System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.BroadcastTime(System.DateTime,System.Threading.CancellationToken)">
<summary>
广播校时
</summary>
<param name="dateTime"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.FreezeAsync(System.DateTime,System.Threading.CancellationToken)">
<summary>
冻结
</summary>
<param name="dateTime"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.ReadDeviceStationAsync(System.Threading.CancellationToken)">
<summary>
读取通信地址
</summary>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteBaudRateAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
修改波特率
</summary>
<param name="baudRate"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WriteDeviceStationAsync(System.String,System.Threading.CancellationToken)">
<summary>
更新通信地址
</summary>
<param name="station"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp.WritePasswordAsync(System.Byte,System.String,System.String,System.Threading.CancellationToken)">
<summary>
修改密码
</summary>
<param name="level"></param>
<param name="oldPassword"></param>
<param name="newPassword"></param>
<param name="token"></param>
<returns></returns>
</member>
<member name="T:ThingsGateway.Foundation.Adapter.Modbus.DLT645_2007Message">
<summary>
<inheritdoc/>
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.Modbus.DLT645_2007Message.HeadBytesLength">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.Modbus.DLT645_2007Message.CheckHeadBytes(System.Byte[])">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.Modbus.DLT645_2007Message.SendBytesThen">
<inheritdoc/>
</member>
</members>
</doc>

View File

@@ -124,10 +124,10 @@ internal class ModbusHelper
{
if (response.Length < 3)
return new OperResult<byte[], FilterResult>("数据长度不足" + response.ToHexString()) { Content2 = FilterResult.Cache };
if (crcCheck && !EasyCRC16.CheckCRC16(response))
return new OperResult<byte[], FilterResult>("Crc校验失败" + DataTransUtil.ByteToHexString(response, ' ')) { Content2 = FilterResult.Success };
return GetModbusData(send, response.RemoveLast(2));
var data = response.SelectMiddle(0, response[2] + 5);
if (crcCheck && !EasyCRC16.CheckCRC16(data))
return new OperResult<byte[], FilterResult>("Crc校验失败" + DataTransUtil.ByteToHexString(data, ' ')) { Content2 = FilterResult.Success };
return GetModbusData(send, data.RemoveLast(2));
}
/// <summary>
/// 获取读取报文

View File

@@ -69,7 +69,10 @@ public class OPCUAClient : DisposableObject
private readonly ApplicationInstance m_application = new();
private readonly ApplicationConfiguration m_configuration;
/// <summary>
/// SessionReconnectHandler
/// </summary>
public SessionReconnectHandler ReConnectHandler => m_reConnectHandler;
private SessionReconnectHandler m_reConnectHandler;
private ISession m_session;
/// <summary>

View File

@@ -286,6 +286,11 @@
当前的订阅组,组名称/组
</summary>
</member>
<member name="P:ThingsGateway.Foundation.Adapter.OPCUA.OPCUAClient.ReConnectHandler">
<summary>
SessionReconnectHandler
</summary>
</member>
<member name="M:ThingsGateway.Foundation.Adapter.OPCUA.OPCUAClient.#ctor(TouchSocket.Core.ILog)">
<summary>
默认的构造函数实例化一个新的OPC UA类

View File

@@ -0,0 +1,121 @@
#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 System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using ThingsGateway.Application;
using ThingsGateway.Foundation;
using ThingsGateway.Foundation.Serial;
using TouchSocket.Core;
using TouchSocket.Sockets;
namespace ThingsGateway.DLT645;
/// <inheritdoc/>
public class DLT645_2007 : CollectBase
{
private readonly DLT645_2007Property driverPropertys = new();
/// <inheritdoc/>
protected override IReadWriteDevice PLC => _plc;
private ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007 _plc;
/// <inheritdoc/>
public override Type DriverDebugUIType => typeof(DLT645_2007DebugDriverPage);
/// <inheritdoc/>
public override CollectDriverPropertyBase DriverPropertys => driverPropertys;
/// <summary>
/// <inheritdoc/>
/// </summary>
public override bool IsSupportRequest => true;
/// <inheritdoc/>
public override IThingsGatewayBitConverter ThingsGatewayBitConverter { get => _plc?.ThingsGatewayBitConverter; }
/// <inheritdoc/>
public override Task AfterStopAsync()
{
_plc?.Disconnect();
return Task.CompletedTask;
}
/// <inheritdoc/>
public override async Task BeforStartAsync(CancellationToken token)
{
await _plc?.ConnectAsync(token);
}
/// <inheritdoc/>
protected override void Dispose(bool disposing)
{
_plc?.Disconnect();
_plc?.SafeDispose();
base.Dispose(disposing);
}
/// <inheritdoc/>
public override void InitDataAdapter()
{
_plc.SetDataAdapter();
}
/// <inheritdoc/>
public override bool IsConnected()
{
return _plc?.SerialClient?.CanSend == true;
}
/// <inheritdoc/>
public override List<DeviceVariableSourceRead> LoadSourceRead(List<DeviceVariableRunTime> deviceVariables)
{
return deviceVariables.LoadSourceRead(_plc);
}
/// <inheritdoc/>
protected override void Init(CollectDeviceRunTime device, object client = null)
{
if (client == null)
{
FoundataionConfig.SetSerialProperty(new()
{
PortName = driverPropertys.PortName,
BaudRate = driverPropertys.BaudRate,
DataBits = driverPropertys.DataBits,
Parity = driverPropertys.Parity,
StopBits = driverPropertys.StopBits,
})
.SetBufferLength(1024);
client = new SerialClient();
((SerialClient)client).Setup(FoundataionConfig);
}
//载入配置
_plc = new((SerialClient)client)
{
FrameTime = driverPropertys.FrameTime,
CacheTimeout = driverPropertys.CacheTimeout,
DataFormat = driverPropertys.DataFormat,
EnableFEHead = driverPropertys.EnableFEHead,
OperCode = driverPropertys.OperCode,
Password = driverPropertys.Password,
Station = driverPropertys.Station,
TimeOut = driverPropertys.TimeOut
};
}
/// <inheritdoc/>
protected override async Task<OperResult<byte[]>> ReadAsync(string address, int length, CancellationToken token)
{
return await _plc.ReadAsync(address, length, token);
}
}

View File

@@ -0,0 +1,68 @@
@*
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
*@
@using BlazorComponent;
@using Microsoft.AspNetCore.Components.Web;
@using Microsoft.JSInterop;
@using ThingsGateway.Admin.Core;
@using ThingsGateway.Foundation.Adapter.DLT645;
@using ThingsGateway.Foundation;
@using ThingsGateway.Foundation.Extension;
@using ThingsGateway.Foundation.Serial;
@using ThingsGateway.Blazor;
@namespace ThingsGateway.DLT645
@using Masa.Blazor
@using ThingsGateway.Application;
<DefalutDebugDriverPage Channel="ChannelEnum.SerialPort" @ref=defalutDebugDriverPage>
<MCard Flat Elevation="0">
<MRow Class="my-1" NoGutters Justify="JustifyTypes.SpaceBetween" Align="AlignTypes.Center">
<MCheckbox Class="ma-1" Label=@(_plc.Description(x => x.EnableFEHead)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.EnableFEHead></MCheckbox>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.CacheTimeout)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.CacheTimeout></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.OperCode)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.OperCode></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.Password)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Password></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut></MTextField>
<MSelect Class="ma-1" Style="max-width:200px" @bind-Value="_plc.DataFormat" Outlined Label="@(_plc.Description(x => x.DataFormat))"
Items=@(typeof(DataFormat).GetEnumList())
MenuProps="@(props => { props.Auto = true; props.OffsetY = true; })"
ItemText=@((u) =>u.des)
ItemValue=@(u =>(DataFormat)u.value)
HideDetails=@("auto") Height="30"
Dense>
</MSelect>
</MRow>
</MCard>
</DefalutDebugDriverPage>
@code
{
private DefalutDebugDriverPage defalutDebugDriverPage;
private ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007 _plc;
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
//载入配置
_plc = new ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007((SerialClient)defalutDebugDriverPage.SerialClientPage.GetSerialClient());
defalutDebugDriverPage.Plc = _plc;
}
base.OnAfterRender(firstRender);
}
public override string ToString()
{
return nameof(DLT645_2007);
}
}

View File

@@ -0,0 +1,111 @@
#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 System.IO.Ports;
using ThingsGateway.Application;
using ThingsGateway.Foundation;
namespace ThingsGateway.DLT645;
/// <summary>
/// <inheritdoc/>
/// </summary>
public class DLT645_2007Property : CollectDriverPropertyBase
{
/// <summary>
/// COM口
/// </summary>
[DeviceProperty("COM口", "示例COM1")]
public override string PortName { get; set; } = "COM1";
/// <summary>
/// 波特率
/// </summary>
[DeviceProperty("波特率", "通常为38400/19200/9600/4800")]
public override int BaudRate { get; set; } = 9600;
/// <summary>
/// 数据位
/// </summary>
[DeviceProperty("数据位", "通常为8/7/6")]
public override byte DataBits { get; set; } = 8;
/// <summary>
/// 停止位
/// </summary>
[DeviceProperty("停止位", "示例None/One/Two/OnePointFive")]
public override StopBits StopBits { get; set; } = StopBits.One;
/// <summary>
/// 校验位
/// </summary>
[DeviceProperty("校验位", "示例None/Odd/Even/Mark/Space")]
public override Parity Parity { get; set; } = Parity.None;
/// <summary>
/// 读写超时时间
/// </summary>
[DeviceProperty("读写超时时间", "")]
public ushort TimeOut { get; set; } = 3000;
/// <summary>
/// 默认地址
/// </summary>
[DeviceProperty("默认地址", "")]
public string Station { get; set; }
/// <summary>
/// 密码
/// </summary>
[DeviceProperty("密码", "")]
public string Password { get; set; }
/// <summary>
/// 操作员代码
/// </summary>
[DeviceProperty("操作员代码", "")]
public string OperCode { get; set; }
/// <summary>
/// 前导符报文头
/// </summary>
[DeviceProperty("前导符报文头", "")]
public bool EnableFEHead { get; set; } = true;
/// <summary>
/// 默认解析顺序
/// </summary>
[DeviceProperty("默认解析顺序", "")]
public DataFormat DataFormat { get; set; }
/// <summary>
/// 帧前时间ms
/// </summary>
[DeviceProperty("帧前时间", "某些设备性能较弱,报文间需要间隔较长时间")]
public int FrameTime { get; set; } = 0;
/// <summary>
/// 组包缓存超时ms
/// </summary>
[DeviceProperty("组包缓存超时ms", "某些设备性能较弱报文间需要间隔较长时间可以设置更长的组包缓存默认1s")]
public int CacheTimeout { get; set; } = 1000;
/// <summary>
/// 共享链路
/// </summary>
[DeviceProperty("共享链路", "")]
public override bool IsShareChannel { get; set; } = false;
/// <summary>
/// <inheritdoc/>
/// </summary>
public override ShareChannelEnum ShareChannel => ShareChannelEnum.SerialPort;
}

View File

@@ -0,0 +1,48 @@
#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 System.Collections.Generic;
using ThingsGateway.Application;
using ThingsGateway.Foundation;
namespace ThingsGateway.DLT645;
internal static class DLT645_2007Helper
{
internal static List<DeviceVariableSourceRead> LoadSourceRead(this List<DeviceVariableRunTime> deviceVariables, IReadWriteDevice device)
{
var byteConverter = device.ThingsGatewayBitConverter;
var result = new List<DeviceVariableSourceRead>();
//需要先剔除额外信息比如dataformat等
foreach (var item in deviceVariables)
{
var address = item.VariableAddress;
IThingsGatewayBitConverter transformParameter = ByteTransformUtil.GetTransByAddress(ref address, byteConverter);
item.ThingsGatewayBitConverter = transformParameter;
item.VariableAddress = address;
item.Index = device.GetBitOffset(item.VariableAddress);
result.Add(new()
{
DeviceVariables = new() { item },
Address = address,
Length = 1,
});
}
return result;
}
}

View File

@@ -0,0 +1,107 @@
#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 System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using ThingsGateway.Application;
using ThingsGateway.Foundation;
using TouchSocket.Sockets;
namespace ThingsGateway.DLT645;
/// <inheritdoc/>
public class DLT645_2007OverTcp : CollectBase
{
private readonly ModbusRtuOverTcpProperty driverPropertys = new();
/// <inheritdoc/>
protected override IReadWriteDevice PLC => _plc;
private ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp _plc;
/// <inheritdoc/>
public override Type DriverDebugUIType => typeof(ModbusRtuOverTcpDebugDriverPage);
/// <inheritdoc/>
public override CollectDriverPropertyBase DriverPropertys => driverPropertys;
/// <inheritdoc/>
public override bool IsSupportRequest => true;
/// <inheritdoc/>
public override IThingsGatewayBitConverter ThingsGatewayBitConverter { get => _plc?.ThingsGatewayBitConverter; }
/// <inheritdoc/>
public override Task AfterStopAsync()
{
_plc?.Disconnect();
return Task.CompletedTask;
}
/// <inheritdoc/>
public override async Task BeforStartAsync(CancellationToken token)
{
await _plc?.ConnectAsync(token);
}
/// <inheritdoc/>
public override void InitDataAdapter()
{
_plc.SetDataAdapter();
}
/// <inheritdoc/>
public override bool IsConnected()
{
return _plc?.TcpClientEx?.CanSend == true;
}
/// <inheritdoc/>
public override List<DeviceVariableSourceRead> LoadSourceRead(List<DeviceVariableRunTime> deviceVariables)
{
return deviceVariables.LoadSourceRead(_plc);
}
/// <inheritdoc/>
protected override void Dispose(bool disposing)
{
_plc?.Disconnect();
base.Dispose(disposing);
}
/// <inheritdoc/>
protected override void Init(CollectDeviceRunTime device, object client = null)
{
if (client == null)
{
FoundataionConfig.SetRemoteIPHost(new IPHost($"{driverPropertys.IP}:{driverPropertys.Port}"))
.SetBufferLength(1024);
client = new TcpClientEx();
((TcpClientEx)client).Setup(FoundataionConfig);
}
//载入配置
_plc = new((TcpClientEx)client)
{
FrameTime = driverPropertys.FrameTime,
CacheTimeout = driverPropertys.CacheTimeout,
DataFormat = driverPropertys.DataFormat,
EnableFEHead = driverPropertys.EnableFEHead,
OperCode = driverPropertys.OperCode,
Password = driverPropertys.Password,
Station = driverPropertys.Station,
TimeOut = driverPropertys.TimeOut
};
}
/// <inheritdoc/>
protected override async Task<OperResult<byte[]>> ReadAsync(string address, int length, CancellationToken token)
{
return await _plc.ReadAsync(address, length, token);
}
}

View File

@@ -0,0 +1,68 @@
@*
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
*@
@using BlazorComponent;
@using Microsoft.AspNetCore.Components.Web;
@using Microsoft.JSInterop;
@using ThingsGateway.Admin.Core;
@using ThingsGateway.Foundation.Adapter.Modbus;
@using ThingsGateway.Foundation;
@using ThingsGateway.Foundation.Extension;
@using ThingsGateway.Foundation.Serial;
@using ThingsGateway.Application;
@using Masa.Blazor
@using ThingsGateway.Blazor;
@namespace ThingsGateway.DLT645
<DefalutDebugDriverPage Channel="ChannelEnum.TcpClientEx" @ref=defalutDebugDriverPage>
<MCard Flat Elevation="0">
<MRow Class="my-1" NoGutters Justify="JustifyTypes.SpaceBetween" Align="AlignTypes.Center">
<MCheckbox Class="ma-1" Label=@(_plc.Description(x => x.EnableFEHead)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.EnableFEHead></MCheckbox>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.CacheTimeout)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.CacheTimeout></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.OperCode)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.OperCode></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.Password)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Password></MTextField>
<MTextField Class="ma-1" Label=@(_plc.Description(x => x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut></MTextField>
<MSelect Class="ma-1" Style="max-width:200px" @bind-Value="_plc.DataFormat" Outlined Label="@(_plc.Description(x => x.DataFormat))"
Items=@(typeof(DataFormat).GetEnumList())
MenuProps="@(props => { props.Auto = true; props.OffsetY = true; })"
ItemText=@((u) =>u.des)
ItemValue=@(u =>(DataFormat)u.value)
HideDetails=@("auto") Height="30"
Dense>
</MSelect>
</MRow>
</MCard>
</DefalutDebugDriverPage>
@code
{
private DefalutDebugDriverPage defalutDebugDriverPage;
private ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp _plc;
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
//载入配置
_plc = new ThingsGateway.Foundation.Adapter.DLT645.DLT645_2007OverTcp((TcpClientEx)defalutDebugDriverPage.TcpClientPage.GetTcpClient());
defalutDebugDriverPage.Plc = _plc;
}
base.OnAfterRender(firstRender);
}
public override string ToString()
{
return nameof(DLT645_2007OverTcp);
}
}

View File

@@ -0,0 +1,88 @@
#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 ThingsGateway.Application;
using ThingsGateway.Foundation;
namespace ThingsGateway.DLT645;
/// <summary>
/// <inheritdoc/>
/// </summary>
public class ModbusRtuOverTcpProperty : CollectDriverPropertyBase
{
/// <summary>
/// IP
/// </summary>
[DeviceProperty("IP", "")]
public override string IP { get; set; } = "127.0.0.1";
/// <summary>
/// 端口
/// </summary>
[DeviceProperty("端口", "")]
public override int Port { get; set; } = 502;
/// <summary>
/// 默认解析顺序
/// </summary>
[DeviceProperty("默认解析顺序", "")]
public DataFormat DataFormat { get; set; }
/// <summary>
/// 连接超时时间
/// </summary>
[DeviceProperty("连接超时时间", "")]
public ushort ConnectTimeOut { get; set; } = 3000;
/// <summary>
/// 默认地址
/// </summary>
[DeviceProperty("默认地址", "")]
public string Station { get; set; }
/// <summary>
/// 密码
/// </summary>
[DeviceProperty("密码", "")]
public string Password { get; set; }
/// <summary>
/// 操作员代码
/// </summary>
[DeviceProperty("操作员代码", "")]
public string OperCode { get; set; }
/// <summary>
/// 前导符报文头
/// </summary>
[DeviceProperty("前导符报文头", "")]
public bool EnableFEHead { get; set; } = true;
/// <summary>
/// 读写超时时间
/// </summary>
[DeviceProperty("读写超时时间", "")]
public ushort TimeOut { get; set; } = 3000;
/// <summary>
/// 帧前时间ms
/// </summary>
[DeviceProperty("帧前时间ms", "某些设备性能较弱,报文间需要间隔较长时间")]
public int FrameTime { get; set; } = 0;
/// <summary>
/// 组包缓存超时ms
/// </summary>
[DeviceProperty("组包缓存超时", "某些设备性能较弱报文间需要间隔较长时间可以设置更长的组包缓存默认1s")]
public int CacheTimeout { get; set; } = 1;
/// <summary>
/// 共享链路
/// </summary>
[DeviceProperty("共享链路", "")]
public override bool IsShareChannel { get; set; } = false;
/// <summary>
/// <inheritdoc/>
/// </summary>
public override ShareChannelEnum ShareChannel => ShareChannelEnum.TcpClientEx;
}

View File

@@ -0,0 +1,13 @@
#region copyright
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权除特别声明外的代码归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库https://github.com/kimdiego2098/ThingsGateway
// 使用文档https://diego2098.gitee.io/thingsgateway-docs/
// QQ群605534569
//------------------------------------------------------------------------------
#endregion
global using System;

View File

@@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<!--<GenerateDocumentationFile>True</GenerateDocumentationFile>-->
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command=" set dir=&quot;$(SolutionDir)ThingsGateway.Web.Entry\bin\$(Configuration)\$(TargetFramework)\Plugins\$(AssemblyName)&quot;&#xD;&#xA; if not exist %25dir%25 md %25dir%25 &#xD;&#xA;copy &quot;$(TargetDir)*DLT645*.dll&quot; %25dir%25&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;" />
</Target>
<ItemGroup>
<ProjectReference Include="..\..\ThingsGateway.Blazor\ThingsGateway.Blazor.csproj">
<IncludeAssets>Compile</IncludeAssets>
</ProjectReference>
<ProjectReference Include="..\Foundataion\ThingsGateway.Foundation.Adapter.DLT645\ThingsGateway.Foundation.Adapter.DLT645.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,244 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>ThingsGateway.DLT645</name>
</assembly>
<members>
<member name="T:ThingsGateway.DLT645.DLT645_2007OverTcp">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007OverTcp.PLC">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007OverTcp.DriverDebugUIType">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007OverTcp.DriverPropertys">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007OverTcp.IsSupportRequest">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007OverTcp.ThingsGatewayBitConverter">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007OverTcp.AfterStopAsync">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007OverTcp.BeforStartAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007OverTcp.InitDataAdapter">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007OverTcp.IsConnected">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007OverTcp.LoadSourceRead(System.Collections.Generic.List{ThingsGateway.Application.DeviceVariableRunTime})">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007OverTcp.Dispose(System.Boolean)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007OverTcp.Init(ThingsGateway.Application.CollectDeviceRunTime,System.Object)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007OverTcp.ReadAsync(System.String,System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:ThingsGateway.DLT645.ModbusRtuOverTcpProperty">
<summary>
<inheritdoc/>
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.IP">
<summary>
IP
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.Port">
<summary>
端口
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.DataFormat">
<summary>
默认解析顺序
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.ConnectTimeOut">
<summary>
连接超时时间
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.Station">
<summary>
默认地址
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.Password">
<summary>
密码
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.OperCode">
<summary>
操作员代码
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.EnableFEHead">
<summary>
前导符报文头
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.TimeOut">
<summary>
读写超时时间
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.FrameTime">
<summary>
帧前时间ms
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.CacheTimeout">
<summary>
组包缓存超时ms
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.IsShareChannel">
<summary>
共享链路
</summary>
</member>
<member name="P:ThingsGateway.DLT645.ModbusRtuOverTcpProperty.ShareChannel">
<summary>
<inheritdoc/>
</summary>
</member>
<member name="T:ThingsGateway.DLT645.DLT645_2007">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007.PLC">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007.DriverDebugUIType">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007.DriverPropertys">
<inheritdoc/>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007.IsSupportRequest">
<summary>
<inheritdoc/>
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007.ThingsGatewayBitConverter">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007.AfterStopAsync">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007.BeforStartAsync(System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007.Dispose(System.Boolean)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007.InitDataAdapter">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007.IsConnected">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007.LoadSourceRead(System.Collections.Generic.List{ThingsGateway.Application.DeviceVariableRunTime})">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007.Init(ThingsGateway.Application.CollectDeviceRunTime,System.Object)">
<inheritdoc/>
</member>
<member name="M:ThingsGateway.DLT645.DLT645_2007.ReadAsync(System.String,System.Int32,System.Threading.CancellationToken)">
<inheritdoc/>
</member>
<member name="T:ThingsGateway.DLT645.DLT645_2007Property">
<summary>
<inheritdoc/>
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.PortName">
<summary>
COM口
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.BaudRate">
<summary>
波特率
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.DataBits">
<summary>
数据位
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.StopBits">
<summary>
停止位
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.Parity">
<summary>
校验位
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.TimeOut">
<summary>
读写超时时间
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.Station">
<summary>
默认地址
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.Password">
<summary>
密码
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.OperCode">
<summary>
操作员代码
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.EnableFEHead">
<summary>
前导符报文头
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.DataFormat">
<summary>
默认解析顺序
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.FrameTime">
<summary>
帧前时间ms
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.CacheTimeout">
<summary>
组包缓存超时ms
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.IsShareChannel">
<summary>
共享链路
</summary>
</member>
<member name="P:ThingsGateway.DLT645.DLT645_2007Property.ShareChannel">
<summary>
<inheritdoc/>
</summary>
</member>
</members>
</doc>

View File

@@ -72,7 +72,12 @@ public class OPCDAClient : CollectBase
{
}
/// <inheritdoc/>
public override bool IsConnected() => _plc?.IsConnected == true;
public override bool IsConnected()
{
Device.SetDeviceStatus(SysDateTimeExtensions.CurrentDateTime);
return _plc?.IsConnected == true;
}
/// <inheritdoc/>
public override List<DeviceVariableSourceRead> LoadSourceRead(List<DeviceVariableRunTime> deviceVariables)
{

View File

@@ -22,6 +22,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using ThingsGateway.Admin.Core;
using ThingsGateway.Application;
using ThingsGateway.Foundation;
using ThingsGateway.Foundation.Adapter.OPCUA;
@@ -38,18 +39,10 @@ public class OPCUAClient : CollectBase
{
internal Foundation.Adapter.OPCUA.OPCUAClient _plc = null;
internal CollectDeviceRunTime Device;
readonly PeriodicTimer _periodicTimer = new(TimeSpan.FromSeconds(60));
private readonly OPCUAClientProperty driverPropertys = new();
private List<DeviceVariableRunTime> _deviceVariables = new();
/// <summary>
/// OPCUA客户端
/// </summary>
public OPCUAClient()
{
_ = RunTimerAsync();
}
/// <inheritdoc/>
public override Type DriverDebugUIType => typeof(OPCUAClientDebugDriverPage);
@@ -87,8 +80,11 @@ public class OPCUAClient : CollectBase
/// <inheritdoc/>
public override bool IsConnected()
{
return _plc.Connected;
if (_plc.Session != null)
{
Device.SetDeviceStatus(SysDateTimeExtensions.CurrentDateTime);
}
return _plc?.Connected == true;
}
/// <inheritdoc/>
@@ -184,7 +180,6 @@ public class OPCUAClient : CollectBase
/// <inheritdoc/>
protected override void Dispose(bool disposing)
{
_periodicTimer?.Dispose();
if (_plc != null)
{
_plc.DataChangedHandler -= DataChangedHandler;
@@ -257,8 +252,11 @@ public class OPCUAClient : CollectBase
value = data.jToken;
}
var quality = StatusCode.IsGood(data.dataValue.StatusCode);
var time = data.dataValue.SourceTimestamp.ToLocalTime();
DateTime time = default;
if (driverPropertys.SourceTimestampEnable)
{
time = data.dataValue.SourceTimestamp.ToLocalTime();
}
foreach (var item in itemReads)
{
if (item.DataTypeEnum == DataTypeEnum.Object)
@@ -288,22 +286,4 @@ public class OPCUAClient : CollectBase
}
}
private async Task RunTimerAsync()
{
while (await _periodicTimer.WaitForNextTickAsync())
{
if (_plc != null && _plc.Session == null)
{
try
{
await _plc.ConnectAsync();
}
catch (Exception ex)
{
LogMessage.Exception(ex);
}
}
}
}
}

View File

@@ -43,6 +43,11 @@ public class OPCUAClientProperty : CollectDriverPropertyBase
[DeviceProperty("安全策略", "True为使用安全策略False为无")]
public bool IsUseSecurity { get; set; } = true;
/// <summary>
/// 是否使用SourceTime
/// </summary>
[DeviceProperty("使用SourceTime", "")]
public bool SourceTimestampEnable { get; set; } = true;
/// <summary>
/// 激活订阅

View File

@@ -33,11 +33,6 @@
OPCUA客户端
</summary>
</member>
<member name="M:ThingsGateway.OPCUA.OPCUAClient.#ctor">
<summary>
OPCUA客户端
</summary>
</member>
<member name="P:ThingsGateway.OPCUA.OPCUAClient.DriverDebugUIType">
<inheritdoc/>
</member>
@@ -145,6 +140,11 @@
安全策略
</summary>
</member>
<member name="P:ThingsGateway.OPCUA.OPCUAClientProperty.SourceTimestampEnable">
<summary>
是否使用SourceTime
</summary>
</member>
<member name="P:ThingsGateway.OPCUA.OPCUAClientProperty.ActiveSubscribe">
<summary>
激活订阅

View File

@@ -84,11 +84,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.OPCUA", "Thin
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Foundation.Adapter.OPCUA", "ThingsGateway.Plugin\Foundataion\ThingsGateway.Foundation.Adapter.OPCUA\ThingsGateway.Foundation.Adapter.OPCUA.csproj", "{E1C327FA-C442-45DD-9265-9EA26573B61E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Foundataion.Demo", "Foundataion.Demo", "{E733E483-4823-4BD6-BC29-669426386A96}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModbusTest", "ThingsGateway.Plugin\Foundataion.ConsoleTests\ModbusTest\ModbusTest.csproj", "{BA2AC34C-F640-466E-B2CC-933A8658A16E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModbusDemo", "ThingsGateway.Plugin\Foundataion.Demo\ModbusDemo\ModbusDemo.csproj", "{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dlt645", "Dlt645", "{27B13F0D-2D0D-40C6-AC42-5F4B3BDE4A02}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OPCUAClientDemo", "ThingsGateway.Plugin\Foundataion.Demo\OPCUAClientDemo\OPCUAClientDemo.csproj", "{3F83EF0F-002D-4D06-87A8-739399074DBA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DLT645Test", "ThingsGateway.Plugin\Foundataion.ConsoleTests\DLT645Test\DLT645Test.csproj", "{B9707E29-84E7-474A-8229-B203BC0DC392}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Foundation.Adapter.DLT645", "ThingsGateway.Plugin\Foundataion\ThingsGateway.Foundation.Adapter.DLT645\ThingsGateway.Foundation.Adapter.DLT645.csproj", "{D0B6D912-027D-451C-A8C8-ADC461F4AD99}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.DLT645", "ThingsGateway.Plugin\ThingsGateway.DLT645\ThingsGateway.DLT645.csproj", "{30A7CA70-DDC2-4E5E-8F70-1F2BECE61093}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OPCUAClientTest", "ThingsGateway.Plugin\Foundataion.ConsoleTests\OPCUAClientTest\OPCUAClientTest.csproj", "{0ABC8437-8489-4DE5-A7C6-1C2705D23D53}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -184,14 +190,26 @@ Global
{E1C327FA-C442-45DD-9265-9EA26573B61E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E1C327FA-C442-45DD-9265-9EA26573B61E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1C327FA-C442-45DD-9265-9EA26573B61E}.Release|Any CPU.Build.0 = Release|Any CPU
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}.Release|Any CPU.Build.0 = Release|Any CPU
{3F83EF0F-002D-4D06-87A8-739399074DBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3F83EF0F-002D-4D06-87A8-739399074DBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3F83EF0F-002D-4D06-87A8-739399074DBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3F83EF0F-002D-4D06-87A8-739399074DBA}.Release|Any CPU.Build.0 = Release|Any CPU
{BA2AC34C-F640-466E-B2CC-933A8658A16E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BA2AC34C-F640-466E-B2CC-933A8658A16E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA2AC34C-F640-466E-B2CC-933A8658A16E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA2AC34C-F640-466E-B2CC-933A8658A16E}.Release|Any CPU.Build.0 = Release|Any CPU
{B9707E29-84E7-474A-8229-B203BC0DC392}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9707E29-84E7-474A-8229-B203BC0DC392}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9707E29-84E7-474A-8229-B203BC0DC392}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9707E29-84E7-474A-8229-B203BC0DC392}.Release|Any CPU.Build.0 = Release|Any CPU
{D0B6D912-027D-451C-A8C8-ADC461F4AD99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0B6D912-027D-451C-A8C8-ADC461F4AD99}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0B6D912-027D-451C-A8C8-ADC461F4AD99}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0B6D912-027D-451C-A8C8-ADC461F4AD99}.Release|Any CPU.Build.0 = Release|Any CPU
{30A7CA70-DDC2-4E5E-8F70-1F2BECE61093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30A7CA70-DDC2-4E5E-8F70-1F2BECE61093}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30A7CA70-DDC2-4E5E-8F70-1F2BECE61093}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30A7CA70-DDC2-4E5E-8F70-1F2BECE61093}.Release|Any CPU.Build.0 = Release|Any CPU
{0ABC8437-8489-4DE5-A7C6-1C2705D23D53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0ABC8437-8489-4DE5-A7C6-1C2705D23D53}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0ABC8437-8489-4DE5-A7C6-1C2705D23D53}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0ABC8437-8489-4DE5-A7C6-1C2705D23D53}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -224,9 +242,12 @@ Global
{F2DF3BE7-D497-44B3-9CD6-CDDBC4FBD09C} = {86119A5F-5717-42FF-8888-F034B4136A1B}
{8F21F851-6AAE-4A78-9F11-D0EED0D3E9BE} = {F2DF3BE7-D497-44B3-9CD6-CDDBC4FBD09C}
{E1C327FA-C442-45DD-9265-9EA26573B61E} = {F2DF3BE7-D497-44B3-9CD6-CDDBC4FBD09C}
{E733E483-4823-4BD6-BC29-669426386A96} = {86119A5F-5717-42FF-8888-F034B4136A1B}
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D} = {E733E483-4823-4BD6-BC29-669426386A96}
{3F83EF0F-002D-4D06-87A8-739399074DBA} = {E733E483-4823-4BD6-BC29-669426386A96}
{BA2AC34C-F640-466E-B2CC-933A8658A16E} = {57BB8507-47A8-471E-BD16-19B7C82712E0}
{27B13F0D-2D0D-40C6-AC42-5F4B3BDE4A02} = {86119A5F-5717-42FF-8888-F034B4136A1B}
{B9707E29-84E7-474A-8229-B203BC0DC392} = {27B13F0D-2D0D-40C6-AC42-5F4B3BDE4A02}
{D0B6D912-027D-451C-A8C8-ADC461F4AD99} = {27B13F0D-2D0D-40C6-AC42-5F4B3BDE4A02}
{30A7CA70-DDC2-4E5E-8F70-1F2BECE61093} = {27B13F0D-2D0D-40C6-AC42-5F4B3BDE4A02}
{0ABC8437-8489-4DE5-A7C6-1C2705D23D53} = {F2DF3BE7-D497-44B3-9CD6-CDDBC4FBD09C}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {38B292E0-B3E7-4608-9912-1B057C2A508F}

View File

@@ -1,12 +1,12 @@
import lunr from "E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\node_modules\\lunr\\lunr.js";
require("E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\node_modules\\lunr-languages\\lunr.stemmer.support.js")(lunr);
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);
require("@easyops-cn/docusaurus-search-local/dist/client/shared/lunrLanguageZh").lunrLanguageZh(lunr);
require("E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\node_modules\\lunr-languages\\lunr.multi.js")(lunr);
require("E:\\Tg\\ThingsGateway\\ThingsGateway\\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\\NewThingsGateway\\handbook\\node_modules\\mark.js\\dist\\mark.js"
export const searchIndexUrl = "search-index{dir}.json?_=9bed4e05";
export { default as Mark } from "E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\mark.js\\dist\\mark.js"
export const searchIndexUrl = "search-index{dir}.json?_=04f8b93d";
export const searchResultLimits = 8;
export const searchResultContextMaxLength = 50;
export const explicitSearchResultPath = true;

View File

@@ -49,9 +49,6 @@
532,
4972
],
"25b34da0": [
9974
],
"28e31f38": [
2419
],
@@ -61,12 +58,18 @@
"3546ab43": [
9223
],
"39f79d48": [
229
],
"40146f88": [
7128
],
"43dc5fb8": [
445
],
"444af13b": [
4875
],
"49c09695": [
7929
],
@@ -105,6 +108,9 @@
"74e9e182": [
2274
],
"760264af": [
6373
],
"76f0de82": [
1717
],
@@ -148,14 +154,14 @@
"abad1c1c": [
6950
],
"c361d1eb": [
8175
],
"c4f5d8e4": [
532,
9523,
4195
],
"c776f548": [
9735
],
"ca43e8da": [
359
],
@@ -165,9 +171,6 @@
"daef9133": [
8821
],
"e34e66ef": [
6622
],
"e58d351b": [
9708
],
@@ -203,45 +206,54 @@
"53": {
"js": [
{
"file": "assets/js/935f2afb.0f7e606f.js",
"hash": "481ecc5141990b51",
"publicPath": "/thingsgateway-docs/assets/js/935f2afb.0f7e606f.js"
"file": "assets/js/935f2afb.a45d7d7b.js",
"hash": "b573fe1a5062db80",
"publicPath": "/thingsgateway-docs/assets/js/935f2afb.a45d7d7b.js"
}
]
},
"87": {
"js": [
{
"file": "assets/js/196f2029.09e70668.js",
"hash": "15c3c1e63783865b",
"publicPath": "/thingsgateway-docs/assets/js/196f2029.09e70668.js"
"file": "assets/js/196f2029.36590c94.js",
"hash": "7ad3f212d29df7a4",
"publicPath": "/thingsgateway-docs/assets/js/196f2029.36590c94.js"
}
]
},
"179": {
"js": [
{
"file": "assets/js/main.fe6ca657.js",
"hash": "35b596252fb7aae3",
"publicPath": "/thingsgateway-docs/assets/js/main.fe6ca657.js"
"file": "assets/js/main.1a3e0b01.js",
"hash": "7935904a336f6180",
"publicPath": "/thingsgateway-docs/assets/js/main.1a3e0b01.js"
}
]
},
"229": {
"js": [
{
"file": "assets/js/39f79d48.84084807.js",
"hash": "96fa19b68e78a88f",
"publicPath": "/thingsgateway-docs/assets/js/39f79d48.84084807.js"
}
]
},
"359": {
"js": [
{
"file": "assets/js/ca43e8da.f7ea75f9.js",
"hash": "cd4e7aa6d047a3a5",
"publicPath": "/thingsgateway-docs/assets/js/ca43e8da.f7ea75f9.js"
"file": "assets/js/ca43e8da.52aea27e.js",
"hash": "9e7c6f71b5089e85",
"publicPath": "/thingsgateway-docs/assets/js/ca43e8da.52aea27e.js"
}
]
},
"445": {
"js": [
{
"file": "assets/js/43dc5fb8.f1e80e98.js",
"hash": "c2db873bc6803de1",
"publicPath": "/thingsgateway-docs/assets/js/43dc5fb8.f1e80e98.js"
"file": "assets/js/43dc5fb8.36fb169c.js",
"hash": "21315583cf077da2",
"publicPath": "/thingsgateway-docs/assets/js/43dc5fb8.36fb169c.js"
}
]
},
@@ -257,9 +269,9 @@
"551": {
"js": [
{
"file": "assets/js/5f324ac5.025c2bbe.js",
"hash": "2297ba12361ba4c7",
"publicPath": "/thingsgateway-docs/assets/js/5f324ac5.025c2bbe.js"
"file": "assets/js/5f324ac5.6c44ed2f.js",
"hash": "56afeb3fa211a01b",
"publicPath": "/thingsgateway-docs/assets/js/5f324ac5.6c44ed2f.js"
}
]
},
@@ -267,7 +279,7 @@
"js": [
{
"file": "assets/js/e86f980e.ad719727.js",
"hash": "8577b2eeb8b9c2af",
"hash": "20373a4461873377",
"publicPath": "/thingsgateway-docs/assets/js/e86f980e.ad719727.js"
}
]
@@ -276,7 +288,7 @@
"js": [
{
"file": "assets/js/8e930223.9f8a8e14.js",
"hash": "a749693bf0e5f475",
"hash": "5ebed98490f060e8",
"publicPath": "/thingsgateway-docs/assets/js/8e930223.9f8a8e14.js"
}
]
@@ -284,36 +296,36 @@
"1303": {
"js": [
{
"file": "assets/js/runtime~main.998dd168.js",
"hash": "0b2c7ad12b62da0f",
"publicPath": "/thingsgateway-docs/assets/js/runtime~main.998dd168.js"
"file": "assets/js/runtime~main.2e8ac0c4.js",
"hash": "5ceb0500debc54bc",
"publicPath": "/thingsgateway-docs/assets/js/runtime~main.2e8ac0c4.js"
}
]
},
"1518": {
"js": [
{
"file": "assets/js/7bbbeda9.859b440a.js",
"hash": "f9d4ff8017e8f476",
"publicPath": "/thingsgateway-docs/assets/js/7bbbeda9.859b440a.js"
"file": "assets/js/7bbbeda9.fcf3209c.js",
"hash": "64633c4a172c4cee",
"publicPath": "/thingsgateway-docs/assets/js/7bbbeda9.fcf3209c.js"
}
]
},
"1717": {
"js": [
{
"file": "assets/js/76f0de82.92c390d3.js",
"hash": "ba1a3c91e41f43ea",
"publicPath": "/thingsgateway-docs/assets/js/76f0de82.92c390d3.js"
"file": "assets/js/76f0de82.3bc61a08.js",
"hash": "e80793f5114b6a26",
"publicPath": "/thingsgateway-docs/assets/js/76f0de82.3bc61a08.js"
}
]
},
"1822": {
"js": [
{
"file": "assets/js/f05a39b7.c2e6a6b0.js",
"hash": "dbe13230a95c8ad3",
"publicPath": "/thingsgateway-docs/assets/js/f05a39b7.c2e6a6b0.js"
"file": "assets/js/f05a39b7.1a2db08f.js",
"hash": "25429336b0e231c1",
"publicPath": "/thingsgateway-docs/assets/js/f05a39b7.1a2db08f.js"
}
]
},
@@ -321,7 +333,7 @@
"js": [
{
"file": "assets/js/8aa4b8ad.fcf68c5f.js",
"hash": "6e6d95bb0337d848",
"hash": "b9ad8051f3d1d01c",
"publicPath": "/thingsgateway-docs/assets/js/8aa4b8ad.fcf68c5f.js"
}
]
@@ -329,18 +341,18 @@
"2247": {
"js": [
{
"file": "assets/js/5178350f.7bc23f43.js",
"hash": "cd590c5f24b80417",
"publicPath": "/thingsgateway-docs/assets/js/5178350f.7bc23f43.js"
"file": "assets/js/5178350f.a6cdc43d.js",
"hash": "ed73bd243cd4cf99",
"publicPath": "/thingsgateway-docs/assets/js/5178350f.a6cdc43d.js"
}
]
},
"2274": {
"js": [
{
"file": "assets/js/74e9e182.80f78b97.js",
"hash": "19d794c5860f28cf",
"publicPath": "/thingsgateway-docs/assets/js/74e9e182.80f78b97.js"
"file": "assets/js/74e9e182.0cc07587.js",
"hash": "66398711077dcfc7",
"publicPath": "/thingsgateway-docs/assets/js/74e9e182.0cc07587.js"
}
]
},
@@ -348,7 +360,7 @@
"js": [
{
"file": "assets/js/8ced3e65.1dd2c110.js",
"hash": "be3ef514c9db8807",
"hash": "e607b67dee492e4d",
"publicPath": "/thingsgateway-docs/assets/js/8ced3e65.1dd2c110.js"
}
]
@@ -356,18 +368,18 @@
"2419": {
"js": [
{
"file": "assets/js/28e31f38.c31224e9.js",
"hash": "6849b27ef2c646fe",
"publicPath": "/thingsgateway-docs/assets/js/28e31f38.c31224e9.js"
"file": "assets/js/28e31f38.c9b15f29.js",
"hash": "d6755af997ee5668",
"publicPath": "/thingsgateway-docs/assets/js/28e31f38.c9b15f29.js"
}
]
},
"2982": {
"js": [
{
"file": "assets/js/637a4551.60e25ce1.js",
"hash": "afbb29651ccb1b09",
"publicPath": "/thingsgateway-docs/assets/js/637a4551.60e25ce1.js"
"file": "assets/js/637a4551.f0c0e2be.js",
"hash": "a92c64b969fd0c24",
"publicPath": "/thingsgateway-docs/assets/js/637a4551.f0c0e2be.js"
}
]
},
@@ -375,7 +387,7 @@
"js": [
{
"file": "assets/js/8fb2cb35.1e565465.js",
"hash": "a070e26df25a6b04",
"hash": "d7d8f2c602953c86",
"publicPath": "/thingsgateway-docs/assets/js/8fb2cb35.1e565465.js"
}
]
@@ -383,36 +395,36 @@
"3371": {
"js": [
{
"file": "assets/js/d22033f9.bac63b20.js",
"hash": "7ae14dd99b920d97",
"publicPath": "/thingsgateway-docs/assets/js/d22033f9.bac63b20.js"
"file": "assets/js/d22033f9.c4eda647.js",
"hash": "829f6d54a273a13d",
"publicPath": "/thingsgateway-docs/assets/js/d22033f9.c4eda647.js"
}
]
},
"3381": {
"js": [
{
"file": "assets/js/6a68bc41.33a46316.js",
"hash": "5f7b4fb8b6850264",
"publicPath": "/thingsgateway-docs/assets/js/6a68bc41.33a46316.js"
"file": "assets/js/6a68bc41.ff2e546e.js",
"hash": "4f88d4c13c8cf94e",
"publicPath": "/thingsgateway-docs/assets/js/6a68bc41.ff2e546e.js"
}
]
},
"3477": {
"js": [
{
"file": "assets/js/f22f9b4f.67005bc0.js",
"hash": "f932b4666288b332",
"publicPath": "/thingsgateway-docs/assets/js/f22f9b4f.67005bc0.js"
"file": "assets/js/f22f9b4f.55821957.js",
"hash": "931dbf0b5b4101df",
"publicPath": "/thingsgateway-docs/assets/js/f22f9b4f.55821957.js"
}
]
},
"4124": {
"js": [
{
"file": "assets/js/56125fde.93b0521c.js",
"hash": "81a659346e3c3446",
"publicPath": "/thingsgateway-docs/assets/js/56125fde.93b0521c.js"
"file": "assets/js/56125fde.58745ef5.js",
"hash": "faad286e7527652e",
"publicPath": "/thingsgateway-docs/assets/js/56125fde.58745ef5.js"
}
]
},
@@ -420,7 +432,7 @@
"js": [
{
"file": "assets/js/0af5a0e2.281490de.js",
"hash": "eb4dfacb0b43f43b",
"hash": "116e6ccc2fca551a",
"publicPath": "/thingsgateway-docs/assets/js/0af5a0e2.281490de.js"
}
]
@@ -429,17 +441,26 @@
"js": [
{
"file": "assets/js/c4f5d8e4.fe5b6306.js",
"hash": "57fb9735bba4d65f",
"hash": "5a0f4090e4e84cc6",
"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.034ef8a0.js",
"hash": "f7af1b4b22b00fbe",
"publicPath": "/thingsgateway-docs/assets/js/6f635a3d.034ef8a0.js"
"file": "assets/js/6f635a3d.1303d271.js",
"hash": "6d80cef34ec86082",
"publicPath": "/thingsgateway-docs/assets/js/6f635a3d.1303d271.js"
}
]
},
@@ -452,7 +473,7 @@
},
{
"file": "assets/js/1be78505.4c7d94a8.js",
"hash": "74e2c35eb8a954c9",
"hash": "c7395c13c7c8decc",
"publicPath": "/thingsgateway-docs/assets/js/1be78505.4c7d94a8.js"
}
]
@@ -470,26 +491,26 @@
"js": [
{
"file": "assets/js/85214b50.5f392e5f.js",
"hash": "223000de0037d179",
"hash": "e18493e6324956c7",
"publicPath": "/thingsgateway-docs/assets/js/85214b50.5f392e5f.js"
}
]
},
"6622": {
"6373": {
"js": [
{
"file": "assets/js/e34e66ef.9f892370.js",
"hash": "9ac80b6994c5ce8b",
"publicPath": "/thingsgateway-docs/assets/js/e34e66ef.9f892370.js"
"file": "assets/js/760264af.e41efc53.js",
"hash": "782b1e0bb49755e1",
"publicPath": "/thingsgateway-docs/assets/js/760264af.e41efc53.js"
}
]
},
"6815": {
"js": [
{
"file": "assets/js/6b5f52c5.3f44288c.js",
"hash": "15f107cdcab2d783",
"publicPath": "/thingsgateway-docs/assets/js/6b5f52c5.3f44288c.js"
"file": "assets/js/6b5f52c5.e7d41230.js",
"hash": "6242596fa31dd1da",
"publicPath": "/thingsgateway-docs/assets/js/6b5f52c5.e7d41230.js"
}
]
},
@@ -497,7 +518,7 @@
"js": [
{
"file": "assets/js/abad1c1c.3a5c2084.js",
"hash": "2e9ac1ad7a3ce9a7",
"hash": "3ba1098d05d3cb61",
"publicPath": "/thingsgateway-docs/assets/js/abad1c1c.3a5c2084.js"
}
]
@@ -505,18 +526,18 @@
"7128": {
"js": [
{
"file": "assets/js/40146f88.2945f8c6.js",
"hash": "84b5201e71d61bb5",
"publicPath": "/thingsgateway-docs/assets/js/40146f88.2945f8c6.js"
"file": "assets/js/40146f88.02aef490.js",
"hash": "9866a7ec0620f243",
"publicPath": "/thingsgateway-docs/assets/js/40146f88.02aef490.js"
}
]
},
"7542": {
"js": [
{
"file": "assets/js/e80564fa.d64afbda.js",
"hash": "0421dd7917c2eda6",
"publicPath": "/thingsgateway-docs/assets/js/e80564fa.d64afbda.js"
"file": "assets/js/e80564fa.d689a929.js",
"hash": "ddd73732d07c3d60",
"publicPath": "/thingsgateway-docs/assets/js/e80564fa.d689a929.js"
}
]
},
@@ -524,7 +545,7 @@
"js": [
{
"file": "assets/js/17896441.9c2ea4c3.js",
"hash": "60af9bef9e339c2d",
"hash": "dc4a3a9e76c5b733",
"publicPath": "/thingsgateway-docs/assets/js/17896441.9c2ea4c3.js"
}
]
@@ -542,17 +563,26 @@
"js": [
{
"file": "assets/js/49c09695.8740c687.js",
"hash": "be27f7230a995d99",
"hash": "7593d8d3aca3809a",
"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.4885b391.js",
"hash": "d14250a981eba937",
"publicPath": "/thingsgateway-docs/assets/js/a81fc991.4885b391.js"
"file": "assets/js/a81fc991.90b7bed8.js",
"hash": "07a8f8823084a06b",
"publicPath": "/thingsgateway-docs/assets/js/a81fc991.90b7bed8.js"
}
]
},
@@ -568,18 +598,18 @@
"8494": {
"js": [
{
"file": "assets/js/5137840a.efbb9425.js",
"hash": "b288804baeb0408d",
"publicPath": "/thingsgateway-docs/assets/js/5137840a.efbb9425.js"
"file": "assets/js/5137840a.7e49d21e.js",
"hash": "446d0bcbfbaecac3",
"publicPath": "/thingsgateway-docs/assets/js/5137840a.7e49d21e.js"
}
]
},
"8707": {
"js": [
{
"file": "assets/js/4c79e569.2be1cc3a.js",
"hash": "a853fcd49ab35c08",
"publicPath": "/thingsgateway-docs/assets/js/4c79e569.2be1cc3a.js"
"file": "assets/js/4c79e569.3f1e7d8c.js",
"hash": "b39f8286cf1673d6",
"publicPath": "/thingsgateway-docs/assets/js/4c79e569.3f1e7d8c.js"
}
]
},
@@ -587,7 +617,7 @@
"js": [
{
"file": "assets/js/daef9133.ed8f7f40.js",
"hash": "5fc3e033f2c7caec",
"hash": "65a6ffdd7e891d84",
"publicPath": "/thingsgateway-docs/assets/js/daef9133.ed8f7f40.js"
}
]
@@ -596,7 +626,7 @@
"js": [
{
"file": "assets/js/ab798fff.f80365cf.js",
"hash": "a850ad9b59d4b9f7",
"hash": "f5c1f662f375150b",
"publicPath": "/thingsgateway-docs/assets/js/ab798fff.f80365cf.js"
}
]
@@ -605,7 +635,7 @@
"js": [
{
"file": "assets/js/9da45bac.a2fea472.js",
"hash": "e5b359fc4ce74dcf",
"hash": "9e2aa3733970cb63",
"publicPath": "/thingsgateway-docs/assets/js/9da45bac.a2fea472.js"
}
]
@@ -613,18 +643,18 @@
"9223": {
"js": [
{
"file": "assets/js/3546ab43.d3d1d40f.js",
"hash": "7137b17055b91d8b",
"publicPath": "/thingsgateway-docs/assets/js/3546ab43.d3d1d40f.js"
"file": "assets/js/3546ab43.8b6d0ce2.js",
"hash": "59275babd7a462ca",
"publicPath": "/thingsgateway-docs/assets/js/3546ab43.8b6d0ce2.js"
}
]
},
"9313": {
"js": [
{
"file": "assets/js/7a4cde18.3223c051.js",
"hash": "fba54d7be26cb459",
"publicPath": "/thingsgateway-docs/assets/js/7a4cde18.3223c051.js"
"file": "assets/js/7a4cde18.53da6bd5.js",
"hash": "776334f330953d3e",
"publicPath": "/thingsgateway-docs/assets/js/7a4cde18.53da6bd5.js"
}
]
},
@@ -632,7 +662,7 @@
"js": [
{
"file": "assets/js/4c99e3f0.88565af8.js",
"hash": "4c77befdbbf9011d",
"hash": "0825c22372539410",
"publicPath": "/thingsgateway-docs/assets/js/4c99e3f0.88565af8.js"
}
]
@@ -641,7 +671,7 @@
"js": [
{
"file": "assets/js/a426a3b5.816a1a92.js",
"hash": "3507204ea5d80651",
"hash": "466f0fa0f4a9e4ec",
"publicPath": "/thingsgateway-docs/assets/js/a426a3b5.816a1a92.js"
}
]
@@ -650,7 +680,7 @@
"js": [
{
"file": "assets/js/9523.37750895.js",
"hash": "01a1742e7b227a09",
"hash": "7232611dac636c65",
"publicPath": "/thingsgateway-docs/assets/js/9523.37750895.js"
}
]
@@ -659,7 +689,7 @@
"js": [
{
"file": "assets/js/2bc68b86.e769c1d6.js",
"hash": "307b4639ba5eae9a",
"hash": "09a07fc94423623e",
"publicPath": "/thingsgateway-docs/assets/js/2bc68b86.e769c1d6.js"
}
]
@@ -668,28 +698,10 @@
"js": [
{
"file": "assets/js/e58d351b.64d2c68b.js",
"hash": "40814e1fd44440ae",
"hash": "dbe3210d148bff23",
"publicPath": "/thingsgateway-docs/assets/js/e58d351b.64d2c68b.js"
}
]
},
"9735": {
"js": [
{
"file": "assets/js/c776f548.8b835810.js",
"hash": "ab7683c26c772fc6",
"publicPath": "/thingsgateway-docs/assets/js/c776f548.8b835810.js"
}
]
},
"9974": {
"js": [
{
"file": "assets/js/25b34da0.c091df34.js",
"hash": "afcfb4889b16d399",
"publicPath": "/thingsgateway-docs/assets/js/25b34da0.c091df34.js"
}
]
}
}
}

View File

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

View File

@@ -11,9 +11,9 @@
"editUrl": "https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/description.mdx",
"tags": [],
"version": "current",
"lastUpdatedBy": "2248356998 qq.com",
"lastUpdatedAt": 1689499706,
"formattedLastUpdatedAt": "Jul 16, 2023",
"lastUpdatedBy": "Kimdiego2098",
"lastUpdatedAt": 1691401133,
"formattedLastUpdatedAt": "Aug 7, 2023",
"frontMatter": {
"id": "description",
"title": "说明",

View File

@@ -12,7 +12,7 @@
"tags": [],
"version": "current",
"lastUpdatedBy": "Kimdiego2098",
"lastUpdatedAt": 1691392193,
"lastUpdatedAt": 1691401133,
"formattedLastUpdatedAt": "Aug 7, 2023",
"frontMatter": {
"id": "modbus",

View File

@@ -24,7 +24,7 @@
"permalink": "/thingsgateway-docs/docs/pluginvigorvs"
},
"next": {
"title": "OPCUAServer",
"permalink": "/thingsgateway-docs/docs/pluginopcuaserver"
"title": "DLT645-2007采集插件",
"permalink": "/thingsgateway-docs/docs/plugindlt6452007"
}
}

View File

@@ -0,0 +1,27 @@
{
"unversionedId": "plugindlt6452007",
"id": "plugindlt6452007",
"title": "DLT645-2007采集插件",
"description": "一、设备扩展属性",
"source": "@site/docs/plugindlt6452007.mdx",
"sourceDirName": ".",
"slug": "/plugindlt6452007",
"permalink": "/thingsgateway-docs/docs/plugindlt6452007",
"draft": false,
"editUrl": "https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/plugindlt6452007.mdx",
"tags": [],
"version": "current",
"frontMatter": {
"id": "plugindlt6452007",
"title": "DLT645-2007采集插件"
},
"sidebar": "docs",
"previous": {
"title": "罗克韦尔CIP协议采集插件",
"permalink": "/thingsgateway-docs/docs/pluginabcip"
},
"next": {
"title": "OPCUAServer",
"permalink": "/thingsgateway-docs/docs/pluginopcuaserver"
}
}

View File

@@ -12,8 +12,8 @@
"tags": [],
"version": "current",
"lastUpdatedBy": "Kimdiego2098",
"lastUpdatedAt": 1689760951,
"formattedLastUpdatedAt": "Jul 19, 2023",
"lastUpdatedAt": 1692678105,
"formattedLastUpdatedAt": "Aug 22, 2023",
"frontMatter": {
"id": "pluginmqttserver",
"title": "MqttServer"

View File

@@ -20,8 +20,8 @@
},
"sidebar": "docs",
"previous": {
"title": "罗克韦尔CIP协议采集插件",
"permalink": "/thingsgateway-docs/docs/pluginabcip"
"title": "DLT645-2007采集插件",
"permalink": "/thingsgateway-docs/docs/plugindlt6452007"
},
"next": {
"title": "ModbusServer",

View File

@@ -11,8 +11,8 @@
"editUrl": "https://gitee.com/diego2098/ThingsGateway/tree/master/handbook/docs/upgrade.mdx",
"tags": [],
"version": "current",
"lastUpdatedBy": "Kimdiego2098",
"lastUpdatedAt": 1691392193,
"lastUpdatedBy": "Diego2098",
"lastUpdatedAt": 1691418711,
"formattedLastUpdatedAt": "Aug 7, 2023",
"frontMatter": {
"id": "upgrade",

View File

@@ -206,6 +206,12 @@
"label": "9.6 罗克韦尔CIP",
"href": "/thingsgateway-docs/docs/pluginabcip",
"docId": "pluginabcip"
},
{
"type": "link",
"label": "9.7 DLT645_2007",
"href": "/thingsgateway-docs/docs/plugindlt6452007",
"docId": "plugindlt6452007"
}
],
"collapsed": true,
@@ -441,6 +447,12 @@
"description": "一、选择驱动插件",
"sidebar": "docs"
},
"plugindlt6452007": {
"id": "plugindlt6452007",
"title": "DLT645-2007采集插件",
"description": "一、设备扩展属性",
"sidebar": "docs"
},
"pluginkafka": {
"id": "pluginkafka",
"title": "Kafka消息生产",

View File

@@ -276,7 +276,7 @@ export default {
"@docusaurus/preset-classic",
{
"docs": {
"sidebarPath": "E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\sidebars.js",
"sidebarPath": "E:\\Tg\\ThingsGateway\\ThingsGateway\\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\\NewThingsGateway\\handbook\\src\\css\\custom.css"
"customCss": "E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\src\\css\\custom.css"
}
}
]
],
"plugins": [
"E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\node_modules\\docusaurus-plugin-image-zoom\\src\\index.js"
"E:\\Tg\\ThingsGateway\\ThingsGateway\\handbook\\node_modules\\docusaurus-plugin-image-zoom\\src\\index.js"
],
"themes": [
[

View File

@@ -110,6 +110,11 @@
"path": "/thingsgateway-docs/docs/plugindebug",
"sidebar": "docs"
},
{
"id": "plugindlt6452007",
"path": "/thingsgateway-docs/docs/plugindlt6452007",
"sidebar": "docs"
},
{
"id": "pluginkafka",
"path": "/thingsgateway-docs/docs/pluginkafka",

View File

@@ -4,12 +4,13 @@ export default {
'196f2029': [() => import(/* webpackChunkName: '196f2029' */ '@site/docs/pluginopcuaserver.mdx'), '@site/docs/pluginopcuaserver.mdx', require.resolveWeak('@site/docs/pluginopcuaserver.mdx')],
'1a4e3797': [() => import(/* webpackChunkName: '1a4e3797' */ '@theme/SearchPage'), '@theme/SearchPage', require.resolveWeak('@theme/SearchPage')],
'1be78505': [() => import(/* webpackChunkName: '1be78505' */ '@theme/DocPage'), '@theme/DocPage', require.resolveWeak('@theme/DocPage')],
'25b34da0': [() => import(/* webpackChunkName: '25b34da0' */ 'E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json')],
'28e31f38': [() => import(/* webpackChunkName: '28e31f38' */ '@site/docs/hardwareinfo.mdx'), '@site/docs/hardwareinfo.mdx', require.resolveWeak('@site/docs/hardwareinfo.mdx')],
'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')],
'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')],
@@ -23,6 +24,7 @@ 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')],
@@ -37,12 +39,11 @@ export default {
'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')],
'c4f5d8e4': [() => import(/* webpackChunkName: 'c4f5d8e4' */ '@site/src/pages/index.js'), '@site/src/pages/index.js', require.resolveWeak('@site/src/pages/index.js')],
'c776f548': [() => import(/* webpackChunkName: 'c776f548' */ 'E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json')],
'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')],
'daef9133': [() => import(/* webpackChunkName: 'daef9133' */ '@site/docs/pluginvigorvs.mdx'), '@site/docs/pluginvigorvs.mdx', require.resolveWeak('@site/docs/pluginvigorvs.mdx')],
'e34e66ef': [() => import(/* webpackChunkName: 'e34e66ef' */ 'E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json'), 'E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json', require.resolveWeak('E:\\Tg\\ThingsGateway\\NewThingsGateway\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json')],
'e58d351b': [() => import(/* webpackChunkName: 'e58d351b' */ '@site/docs/windowsrelease.mdx'), '@site/docs/windowsrelease.mdx', require.resolveWeak('@site/docs/windowsrelease.mdx')],
'e80564fa': [() => import(/* webpackChunkName: 'e80564fa' */ '@site/docs/pluginabcip.mdx'), '@site/docs/pluginabcip.mdx', require.resolveWeak('@site/docs/pluginabcip.mdx')],
'e86f980e': [() => import(/* webpackChunkName: 'e86f980e' */ '@site/docs/pluginopcdaclient.mdx'), '@site/docs/pluginopcdaclient.mdx', require.resolveWeak('@site/docs/pluginopcdaclient.mdx')],

View File

@@ -4,12 +4,12 @@ import ComponentCreator from '@docusaurus/ComponentCreator';
export default [
{
path: '/thingsgateway-docs/search',
component: ComponentCreator('/thingsgateway-docs/search', 'ca8'),
component: ComponentCreator('/thingsgateway-docs/search', '738'),
exact: true
},
{
path: '/thingsgateway-docs/docs',
component: ComponentCreator('/thingsgateway-docs/docs', '8b2'),
component: ComponentCreator('/thingsgateway-docs/docs', '688'),
routes: [
{
path: '/thingsgateway-docs/docs/',
@@ -131,6 +131,12 @@ export default [
exact: true,
sidebar: "docs"
},
{
path: '/thingsgateway-docs/docs/plugindlt6452007',
component: ComponentCreator('/thingsgateway-docs/docs/plugindlt6452007', 'a37'),
exact: true,
sidebar: "docs"
},
{
path: '/thingsgateway-docs/docs/pluginkafka',
component: ComponentCreator('/thingsgateway-docs/docs/pluginkafka', '6c4'),
@@ -255,7 +261,7 @@ export default [
},
{
path: '/thingsgateway-docs/',
component: ComponentCreator('/thingsgateway-docs/', 'fc9'),
component: ComponentCreator('/thingsgateway-docs/', '8e0'),
exact: true
},
{

View File

@@ -1,14 +1,14 @@
{
"/thingsgateway-docs/search-ca8": {
"/thingsgateway-docs/search-738": {
"__comp": "1a4e3797",
"__context": {
"plugin": "25b34da0"
"plugin": "444af13b"
}
},
"/thingsgateway-docs/docs-8b2": {
"/thingsgateway-docs/docs-688": {
"__comp": "1be78505",
"__context": {
"plugin": "e34e66ef"
"plugin": "c361d1eb"
},
"versionMetadata": "935f2afb"
},
@@ -92,6 +92,10 @@
"__comp": "17896441",
"content": "56125fde"
},
"/thingsgateway-docs/docs/plugindlt6452007-a37": {
"__comp": "17896441",
"content": "39f79d48"
},
"/thingsgateway-docs/docs/pluginkafka-6c4": {
"__comp": "17896441",
"content": "4c99e3f0"
@@ -172,10 +176,10 @@
"__comp": "17896441",
"content": "e58d351b"
},
"/thingsgateway-docs/-fc9": {
"/thingsgateway-docs/-8e0": {
"__comp": "c4f5d8e4",
"__context": {
"plugin": "c776f548"
"plugin": "760264af"
},
"config": "5e9f5e1a"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +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(3993).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},3993:(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(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"}}]);

File diff suppressed because one or more lines are too long

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(2915).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},2915:(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(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"}}]);

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(6734).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},6734:(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(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"}}]);

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +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(479).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},479:(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(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"}}]);

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(2195).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},2195:(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(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"}}]);

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(201).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},201:(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(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"}}]);

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(389).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},389:(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(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"}}]);

View File

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

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(2602).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(2684).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},2602:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/otherconfig-1-edf5e7a438e2721843952ef1f9969134.png"},2684:(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(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"}}]);

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(2416).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},2416:(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(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"}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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