添加在线/离线方法参数

This commit is contained in:
Diego2098
2023-08-26 17:18:47 +08:00
parent e7140279ca
commit 3308f916dd
7 changed files with 21 additions and 18 deletions

View File

@@ -82,18 +82,15 @@ public class DeviceVariableRunTime : DeviceVariable
/// </summary>
/// <param name="value"></param>
/// <param name="dateTime"></param>
public OperResult SetValue(object value, DateTime dateTime = default)
/// <param name="isOnline"></param>
public OperResult SetValue(object value, DateTime dateTime = default,bool isOnline=true)
{
try
{
IsOnline = isOnline;
if (value != null)
if (!IsOnline)
{
IsOnline = true;
}
else
{
IsOnline = false;
RawValue = value;
Set(value);
return OperResult.CreateSuccessResult();

View File

@@ -157,7 +157,7 @@ public abstract class CollectBase : DriverBase
{
deviceVariableSourceRead.DeviceVariables.ForEach(it =>
{
var operResult = it.SetValue(null);
var operResult = it.SetValue(null,isOnline:false);
if (!operResult.IsSuccess)
{
_logger.LogWarning("变量值更新失败:" + operResult.Message);

View File

@@ -1601,12 +1601,13 @@
最近一次值
</summary>
</member>
<member name="M:ThingsGateway.Application.DeviceVariableRunTime.SetValue(System.Object,System.DateTime)">
<member name="M:ThingsGateway.Application.DeviceVariableRunTime.SetValue(System.Object,System.DateTime,System.Boolean)">
<summary>
设置变量值与时间设置为null时只更改质量戳状态
</summary>
<param name="value"></param>
<param name="dateTime"></param>
<param name="isOnline"></param>
</member>
<member name="P:ThingsGateway.Application.DeviceVariableRunTime.ChangeTime">
<summary>

View File

@@ -677,9 +677,9 @@ public class CollectDeviceCore
}
else
{
if (isRead)
if (isRead&& !result.IsSuccess)
{
var operResult = deviceVariableMethodSource.DeviceVariable.SetValue(null);
var operResult = deviceVariableMethodSource.DeviceVariable.SetValue(null,isOnline: false);
if (!operResult.IsSuccess)
{
_logger?.LogWarning(operResult.Message, ToString());

View File

@@ -211,7 +211,7 @@ public class OPCDAClient : CollectBase
}
else
{
var operResult = item.SetValue(null, time);
var operResult = item.SetValue(null, time, quality == 192?true:false);
if (!operResult.IsSuccess)
{
LogMessage?.LogWarning(operResult.Message);

View File

@@ -130,10 +130,10 @@ public class OPCUAClient : CollectBase
{
value = data.Item3;
}
var quality = StatusCode.IsGood(data.Item2.StatusCode);
var isGood = StatusCode.IsGood(data.Item2.StatusCode);
var time = data.Item2.SourceTimestamp;
if (value != null && quality)
if (value != null && isGood)
{
var operResult = item.SetValue(value, time);
if (!operResult.IsSuccess)
@@ -143,7 +143,7 @@ public class OPCUAClient : CollectBase
}
else
{
var operResult = item.SetValue(null, time);
var operResult = item.SetValue(null, time, isGood);
if (!operResult.IsSuccess)
{
LogMessage?.LogWarning(operResult.Message);
@@ -252,7 +252,7 @@ public class OPCUAClient : CollectBase
{
value = data.jToken;
}
var quality = StatusCode.IsGood(data.dataValue.StatusCode);
var isGood = StatusCode.IsGood(data.dataValue.StatusCode);
DateTime time = default;
if (driverPropertys.SourceTimestampEnable)
{
@@ -263,7 +263,7 @@ public class OPCUAClient : CollectBase
if (item.DataTypeEnum == DataTypeEnum.Object)
if (type.Namespace.StartsWith("System"))
try { item.DataTypeEnum = Enum.Parse<DataTypeEnum>(type.Name); } catch { }
if (value != null && quality)
if (value != null && isGood)
{
var operResult = item.SetValue(value, time);
if (!operResult.IsSuccess)
@@ -273,7 +273,7 @@ public class OPCUAClient : CollectBase
}
else
{
var operResult = item.SetValue(null, time);
var operResult = item.SetValue(null, time, isGood);
if (!operResult.IsSuccess)
{
LogMessage?.LogWarning(operResult.Message);

View File

@@ -135,6 +135,11 @@
登录密码
</summary>
</member>
<member name="P:ThingsGateway.OPCUA.OPCUAClientProperty.CheckDomain">
<summary>
检查域
</summary>
</member>
<member name="P:ThingsGateway.OPCUA.OPCUAClientProperty.IsUseSecurity">
<summary>
安全策略