mirror of
				https://gitee.com/ThingsGateway/ThingsGateway.git
				synced 2025-11-04 17:43:58 +08:00 
			
		
		
		
	添加在线/离线方法参数
This commit is contained in:
		@@ -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();
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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());
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -135,6 +135,11 @@
 | 
			
		||||
            登录密码
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:ThingsGateway.OPCUA.OPCUAClientProperty.CheckDomain">
 | 
			
		||||
            <summary>
 | 
			
		||||
            检查域
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:ThingsGateway.OPCUA.OPCUAClientProperty.IsUseSecurity">
 | 
			
		||||
            <summary>
 | 
			
		||||
            安全策略
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user