private void updateGUIForSlaveLaser(SlaveLaser laser, double[] rampData) { double[] laserScanData = laser.LatestScanData; if (laser.Fit != null) { double[] fitPoints = CavityScanFitHelper.CreatePointsFromFit(rampData, laser.Fit); ui.DisplaySlaveData(laser.ParentCavity.Name, laser.Name, rampData, laserScanData, fitPoints); if (laser.LockCount > 0) { ui.SetLaserVoltageTextBox(laser.ParentCavity.Name, laser.Name, laser.CurrentVoltage); bool laserInNormalOperatingRange = laser.CurrentVoltage <laser.UpperVoltageLimit && laser.CurrentVoltage> laser.LowerVoltageLimit; bool laserIsLocked = laser.lState == Laser.LaserState.LOCKED; ui.SetLaserOperatingLED(laser.ParentCavity.Name, laser.Name, laserIsLocked, laserInNormalOperatingRange); List <double> errorList = laser.OldFrequencyErrors; double standardDev = Math.Sqrt(errorList.Average(x => x * x)); ui.SetLaserSDTextBox(laser.ParentCavity.Name, laser.Name, standardDev); ui.AppendToErrorGraph(laser.ParentCavity.Name, laser.Name, laser.LockCount, laser.FrequencyError); } } else { ui.DisplaySlaveData(laser.ParentCavity.Name, laser.Name, rampData, laserScanData); } }