Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
65c695d9ce | ||
|
|
57253fe46a | ||
|
|
4e5c443440 | ||
|
|
0b3b73d8ec | ||
|
|
921eabc134 | ||
|
|
0faa428751 | ||
|
|
f71a2fdd63 | ||
|
|
4eb9ed8aba | ||
|
|
d7b549abb8 |
@@ -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>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>ModbusDemo</name>
|
||||
<name>DLT645Test</name>
|
||||
</assembly>
|
||||
<members>
|
||||
</members>
|
||||
@@ -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));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>OPCUAClientDemo</name>
|
||||
<name>ModbusTest</name>
|
||||
</assembly>
|
||||
<members>
|
||||
</members>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>OPCUAClientTest</name>
|
||||
</assembly>
|
||||
<members>
|
||||
</members>
|
||||
</doc>
|
||||
@@ -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 }
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -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,
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
/// 获取读取报文
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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类
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
@@ -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="$(SolutionDir)ThingsGateway.Web.Entry\bin\$(Configuration)\$(TargetFramework)\Plugins\$(AssemblyName)"
 if not exist %25dir%25 md %25dir%25 
copy "$(TargetDir)*DLT645*.dll" %25dir%25


" />
|
||||
|
||||
</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>
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
/// 激活订阅
|
||||
|
||||
@@ -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>
|
||||
激活订阅
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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'),
|
||||
];
|
||||
|
||||
@@ -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": "说明",
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"tags": [],
|
||||
"version": "current",
|
||||
"lastUpdatedBy": "Kimdiego2098",
|
||||
"lastUpdatedAt": 1691392193,
|
||||
"lastUpdatedAt": 1691401133,
|
||||
"formattedLastUpdatedAt": "Aug 7, 2023",
|
||||
"frontMatter": {
|
||||
"id": "modbus",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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消息生产",
|
||||
|
||||
@@ -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": [
|
||||
[
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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')],
|
||||
|
||||
@@ -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
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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
1
handbook/build/assets/js/196f2029.36590c94.js
Normal file
1
handbook/build/assets/js/196f2029.36590c94.js
Normal file
File diff suppressed because one or more lines are too long
@@ -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
1
handbook/build/assets/js/39f79d48.84084807.js
Normal file
1
handbook/build/assets/js/39f79d48.84084807.js
Normal file
File diff suppressed because one or more lines are too long
@@ -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"}}]);
|
||||
@@ -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"}}]);
|
||||
@@ -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
1
handbook/build/assets/js/5137840a.7e49d21e.js
Normal file
1
handbook/build/assets/js/5137840a.7e49d21e.js
Normal file
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
@@ -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"}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -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"}}]);
|
||||
@@ -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"}}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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"}}]);
|
||||
@@ -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"}')}}]);
|
||||
@@ -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"}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -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
1
handbook/build/assets/js/935f2afb.a45d7d7b.js
Normal file
1
handbook/build/assets/js/935f2afb.a45d7d7b.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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"}')}}]);
|
||||
@@ -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
1
handbook/build/assets/js/e80564fa.d689a929.js
Normal file
1
handbook/build/assets/js/e80564fa.d689a929.js
Normal file
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
2
handbook/build/assets/js/main.1a3e0b01.js
Normal file
2
handbook/build/assets/js/main.1a3e0b01.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
handbook/build/assets/js/runtime~main.2e8ac0c4.js
Normal file
1
handbook/build/assets/js/runtime~main.2e8ac0c4.js
Normal file
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
Reference in New Issue
Block a user