/// <summary> /// Ctor for a Contoso OPC UA node, specifying alert related information. /// </summary> public ContosoOpcUaNode( string opcUaNodeId, string opcUaSymbolicName, List <ContosoPerformanceRelevance> opcUaNodeRelevance, ContosoOpcNodeOpCode opCode, string units, bool visible, double?constValue, double?minimum, double?maximum, List <ContosoAlertActionDefinition> minimumAlertActionDefinitions, List <ContosoAlertActionDefinition> maximumAlertActionDefinitions, ContosoPushPinCoordinates imagePushpin, string warning ) : base(opcUaNodeId, opcUaSymbolicName) { Relevance = opcUaNodeRelevance; OpCode = opCode; Units = units; Visible = visible; ConstValue = constValue; Minimum = minimum; Maximum = maximum; MinimumAlertActions = minimumAlertActionDefinitions; MaximumAlertActions = maximumAlertActionDefinitions; Last = new ContosoDataItem(); ImagePushpin = imagePushpin; WarningValue = warning; }
public override void AddStation(ContosoDataItem dataItem) { ContosoOeeQualityData x = dataItem as ContosoOeeQualityData; _bad += x.Bad; Good = (Good == 0) ? x.Good : Math.Min(Good, x.Good); Time = new DateTime(Math.Max(Time.Ticks, dataItem.Time.Ticks), DateTimeKind.Utc); }
public override void Add(ContosoDataItem dataItem) { ContosoOeeQualityData x = dataItem as ContosoOeeQualityData; _bad += x.Bad; Good += x.Good; Time = new DateTime(Math.Max(Time.Ticks, dataItem.Time.Ticks), DateTimeKind.Utc); }
public override void Add(ContosoDataItem dataItem) { ContosoOeePerformanceData x = dataItem as ContosoOeePerformanceData; _idealCycleTime += x.IdealCycleTime; ActualCycleTime += x.ActualCycleTime; Time = new DateTime(Math.Max(Time.Ticks, dataItem.Time.Ticks), DateTimeKind.Utc); }
public override void Add(ContosoDataItem dataItem) { ContosoOeeAvailabilityData x = dataItem as ContosoOeeAvailabilityData; _overallRunningTime += x.OverallRunningTime; OverallFaultTime += x.OverallFaultTime; Time = new DateTime(Math.Max(Time.Ticks, dataItem.Time.Ticks), DateTimeKind.Utc); }
/// <summary> /// Ctor for a Contoso OPC UA node, using alert related descriptions. /// </summary> public ContosoOpcUaNode( string opcUaNodeId, string opcUaSymbolicName, List <ContosoPerformanceRelevance> opcUaNodeRelevance, ContosoOpcNodeDescription opcNodeDescription) : base(opcUaNodeId, opcUaSymbolicName) { Relevance = opcUaNodeRelevance; OpCode = opcNodeDescription.OpCode; Units = opcNodeDescription.Units; Visible = opcNodeDescription.Visible; ConstValue = opcNodeDescription.ConstValue; Minimum = opcNodeDescription.Minimum; Maximum = opcNodeDescription.Maximum; MinimumAlertActions = new List <ContosoAlertActionDefinition>(); MinimumAlertActions.AddRange(ContosoAlertActionDefinition.Init(opcNodeDescription.MinimumAlertActions)); MaximumAlertActions = new List <ContosoAlertActionDefinition>(); MaximumAlertActions.AddRange(ContosoAlertActionDefinition.Init(opcNodeDescription.MaximumAlertActions)); Last = new ContosoDataItem(); }
/// <summary> /// Default add operation when adding a station data item. /// Overloaded in inherited classes. By default using Add. /// </summary> /// <param name="dataItem"></param> public virtual void AddStation(ContosoDataItem dataItem) { Add(dataItem); }
/// <summary> /// Default add operation for data item. /// Overloaded in inherited classes /// </summary> /// <param name="dataItem"></param> public virtual void Add(ContosoDataItem dataItem) { Value += dataItem.Value; Time = new DateTime(Math.Max(Time.Ticks, dataItem.Time.Ticks), DateTimeKind.Utc); }
/// <summary> /// Ctor of a data item for inherited ctor. /// </summary> /// <param name="dataItem"></param> protected ContosoDataItem(ContosoDataItem dataItem) { Time = dataItem.Time; Value = dataItem.Value; }
public ContosoKpi2Data(ContosoDataItem dataItem) : base(dataItem) { }
/// <summary> /// Callback for a query to update the relevance data of a topology node. /// </summary> public void UpdateRelevanceItem(ContosoAggregatedOeeKpiTimeSpan topologyNode, ContosoPerformanceRelevance relevance, ContosoDataItem data) { switch (relevance) { case ContosoPerformanceRelevance.Kpi2: topologyNode.Kpi2.Kpi = data.Value; topologyNode.Kpi2.Time = data.Time; break; case ContosoPerformanceRelevance.Kpi1: topologyNode.Kpi1.Kpi = data.Value; topologyNode.Kpi1.Time = data.Time; break; case ContosoPerformanceRelevance.OeeQuality_Bad: topologyNode.OeeQuality.Bad = data.Value; topologyNode.OeeQuality.Time = new DateTime(Math.Max(topologyNode.OeeQuality.Time.Ticks, data.Time.Ticks), DateTimeKind.Utc); topologyNode.OeeOverall.Quality = topologyNode.OeeQuality.OeeQuality; break; case ContosoPerformanceRelevance.OeeQuality_Good: topologyNode.OeeQuality.Good = data.Value; topologyNode.OeeQuality.Time = new DateTime(Math.Max(topologyNode.OeeQuality.Time.Ticks, data.Time.Ticks), DateTimeKind.Utc); topologyNode.OeeOverall.Quality = topologyNode.OeeQuality.OeeQuality; break; case ContosoPerformanceRelevance.OeePerformance_Ideal: topologyNode.OeePerformance.IdealCycleTime = data.Value; topologyNode.OeePerformance.Time = new DateTime(Math.Max(topologyNode.OeePerformance.Time.Ticks, data.Time.Ticks), DateTimeKind.Utc); topologyNode.OeeOverall.Performance = topologyNode.OeePerformance.OeePerformance; break; case ContosoPerformanceRelevance.OeePerformance_Actual: topologyNode.OeePerformance.ActualCycleTime = data.Value; topologyNode.OeePerformance.Time = new DateTime(Math.Max(topologyNode.OeePerformance.Time.Ticks, data.Time.Ticks), DateTimeKind.Utc); topologyNode.OeeOverall.Performance = topologyNode.OeePerformance.OeePerformance; break; case ContosoPerformanceRelevance.OeeAvailability_Running: topologyNode.OeeAvailability.OverallRunningTime = data.Value; topologyNode.OeeAvailability.Time = new DateTime(Math.Max(topologyNode.OeeAvailability.Time.Ticks, data.Time.Ticks), DateTimeKind.Utc); topologyNode.OeeOverall.Availability = topologyNode.OeeAvailability.OeeAvailability; break; case ContosoPerformanceRelevance.OeeAvailability_Fault: topologyNode.OeeAvailability.OverallFaultTime = data.Value; topologyNode.OeeAvailability.Time = new DateTime(Math.Max(topologyNode.OeeAvailability.Time.Ticks, data.Time.Ticks), DateTimeKind.Utc); topologyNode.OeeOverall.Availability = topologyNode.OeeAvailability.OeeAvailability; break; } }