Пример #1
0
 /// <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;
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        /// <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();
        }
Пример #7
0
 /// <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);
 }
Пример #8
0
 /// <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);
 }
Пример #9
0
 /// <summary>
 /// Ctor of a data item for inherited ctor.
 /// </summary>
 /// <param name="dataItem"></param>
 protected ContosoDataItem(ContosoDataItem dataItem)
 {
     Time  = dataItem.Time;
     Value = dataItem.Value;
 }
Пример #10
0
 public ContosoKpi2Data(ContosoDataItem dataItem) : base(dataItem)
 {
 }
Пример #11
0
        /// <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;
            }
        }