public override TestResult Execute() { if (string.IsNullOrEmpty(Session)) { return(TestResult.ParameterMissing("Session")); } DaSession session = GetProperty(Session) as DaSession; if (session == null) { return(TestResult.ParameterInvalid("Session")); } try { DaSubscription subscription = new DaSubscription(UpdateRate, session); if (!subscription.Valid) { return(TestResult.Failed("DaSubscription not Valid")); } if (RequestedKeepAliveTime.HasValue) { subscription.RequestedKeepAliveTime = RequestedKeepAliveTime.Value; } // set the global property anyhow. SetProperty(Property, subscription); if (Connect) { int result = subscription.Connect(Deep, Active, null); if (ResultCode.FAILED(result)) { EnumResultCode resCode = (EnumResultCode)Enum.Parse(typeof(EnumResultCode), result.ToString()); return(TestResult.Failed(string.Format("Call returned: {0} ({1})", resCode.ToString(), result))); } } if (Deadband.HasValue) { subscription.Deadband = Deadband.Value; } } catch (Exception ex) { if (ExpectedSuccess) { return(new TestResult(ex)); } } return(TestResult.Success()); }
public override TestResult Execute() { if (string.IsNullOrEmpty(Session)) { return(TestResult.ParameterMissing("Session")); } DaSession session = GetProperty(Session) as DaSession; if (session == null) { return(TestResult.ParameterInvalid("Session")); } if (string.IsNullOrEmpty(NodeSetId)) { return(TestResult.ParameterMissing("NodeSetId")); } string nodeSetId = GetProperty(NodeSetId) as string; if (nodeSetId == null) { return(TestResult.ParameterInvalid("NodeSetId")); } try { DaSubscription subscription = new DaSubscription(UpdateRate, session); if (!subscription.Valid) { return(TestResult.Failed("DaSubscription not Valid")); } int result = subscription.Connect(true, true, null); if (ResultCode.SUCCEEDED(result)) { // subscription created ExecutionOptions executionOptions = new ExecutionOptions(EnumExecutionType.SYNCHRONOUS, 0); List <DaItem> items = new List <DaItem>(); // create items for (uint i = 0; i < Count; i++) { string itemId = String.Format("{0}, {1}, {2}", nodeSetId, m_variableNodeIdPrefix, i); DaItem item = new DaItem(itemId, subscription); if (!item.Valid) { return(TestResult.Failed("Item not Valid")); } result = item.Connect(false, true, executionOptions); if (ResultCode.FAILED(result)) { EnumResultCode resCode = (EnumResultCode)Enum.Parse(typeof(EnumResultCode), result.ToString()); return(TestResult.Failed(string.Format("Call returned: {0} ({1})", resCode.ToString(), result))); } items.Add(item); } SetProperty(Property, items.ToArray()); SetProperty(SubscriptionProperty, subscription); return(TestResult.Success()); } else { EnumResultCode resCode = (EnumResultCode)Enum.Parse(typeof(EnumResultCode), result.ToString()); return(TestResult.Failed(string.Format("Call returned: {0} ({1})", resCode.ToString(), result))); } } catch (Exception ex) { return(new TestResult(ex)); } }