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)); } }
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); } }