Exemplo n.º 1
0
        public void Update(Alarm alarm)
        {
            int i = AlarmPanels.ToList().FindIndex(o => o.DataItemId == alarm.DataItemId);

            if (i >= 0)
            {
                AlarmPanels[i] = new AlarmPanel(alarm);
            }
            else
            {
                AlarmPanels.Add(new AlarmPanel(alarm));
            }
        }
Exemplo n.º 2
0
        public void Update(Sample sample)
        {
            // Availability
            if (sample.Id == AvailabilityId)
            {
                Availability = sample.CDATA;
            }

            // Emergency Stop
            if (sample.Id == EmergencyStopId)
            {
                EmergencyStop = sample.CDATA;
            }

            // Execution
            if (sample.Id == ExecutionId)
            {
                Execution = sample.CDATA;
            }

            // ControllerMode
            if (sample.Id == ControllerModeId)
            {
                ControllerMode = sample.CDATA;
            }

            // Message
            if (sample.Id == MessageId)
            {
                Message = sample.CDATA;
            }

            // Program
            if (sample.Id == ProgramNameId)
            {
                ProgramName = sample.CDATA;
            }

            // Clear Alarms if found
            foreach (var alarmId in AlarmIds)
            {
                int i = AlarmPanels.ToList().FindIndex(o => o.DataItemId == sample.Id);
                if (i >= 0 && (sample.Condition == "NORMAL" || sample.Condition == "UNAVAILABLE"))
                {
                    AlarmPanels.RemoveAt(i);
                }
            }

            // Feedrate Override
            if (sample.Id == FeedrateOverrideId)
            {
                if (sample.CDATA != "UNAVAILABLE")
                {
                    double ovr = 0;
                    if (double.TryParse(sample.CDATA, out ovr))
                    {
                        FeedrateOverride = ovr / 100;
                    }
                }
                else
                {
                    FeedrateOverride = -1;
                }

                if (FeedrateOverride > 0.90)
                {
                    FeedrateOverrideStatus = 3;
                }
                else if (FeedrateOverride > 0.50)
                {
                    FeedrateOverrideStatus = 2;
                }
                else if (FeedrateOverride > 0)
                {
                    FeedrateOverrideStatus = 1;
                }
                else
                {
                    FeedrateOverrideStatus = 0;
                }
            }

            foreach (var pathPanel in PathPanels)
            {
                pathPanel.Update(sample);
            }
        }