public void BeamOn() { ResetConsoleState(); Keyboard.Press("B"); ServiceConsoleState.Main.Current = MainOptions.BEAM_CTRL; Keyboard.Press("Y"); if (AccessoryHelper.IsEDW(MachineState.Accessory)) { //The jaw moves during the beam on operation MachineState.Y1 = MachineState.Y2 = -5; } }
/// <summary> /// Takes measurements using the electrometer and linac input /// </summary> /// <param name="el"></param> /// <param name="linac"></param> /// <param name="repeatBeam">flags whether or not this is a repeat measurement</param> /// <returns></returns> public double TakeMeasurement(IElectrometer el, CSeriesLinac linac, bool repeatBeam) { if (el != null) { el.StartMeasurement(); } if (linac != null) { var ms = MachineStateRun; if (repeatBeam) { linac.RepeatBeam(); } else { linac.BeamOn(); } Thread.Sleep(linac.WaitMsForMU(ms.MU, ms.Accessory != null && AccessoryHelper.IsEDW(ms.Accessory))); Thread.Sleep(1000); //Extra second to allow electrometer settling } if (el != null) { el.StopMeasurement(); } double val = double.NaN; if (el != null) { val = el.GetValue().Measurement; el.Reset(); } AddMeasurement(val); return(val); }
public static void SetEDW(EDWOptions edwOptions) { if (edwOptions != null) { if (edwOptions.Orientation == EDWOrientation.Y1IN) { ServiceModeSession.Instance.Keyboard.EnterNumber(1); } else { ServiceModeSession.Instance.Keyboard.EnterNumber(2); } ServiceModeSession.Instance.Keyboard.PressEnter(); ServiceModeSession.Instance.Wait(); ServiceModeSession.Instance.Keyboard.EnterNumber(edwOptions.Y1); ServiceModeSession.Instance.Keyboard.PressEnter(); ServiceModeSession.Instance.Wait(); ServiceModeSession.Instance.Keyboard.EnterNumber(edwOptions.Y2); ServiceModeSession.Instance.Keyboard.PressEnter(); ServiceModeSession.Instance.Wait(); int angle; if (!int.TryParse(edwOptions.Angle.ToString().Replace("_", ""), out angle)) { throw new Exception("EDW Angle could not be parsed"); } ServiceModeSession.Instance.Keyboard.EnterNumber(angle); ServiceModeSession.Instance.Keyboard.PressEnter(); ServiceModeSession.Instance.Wait(); //Update machine state ServiceModeSession.Instance.MachineState.Accessory = AccessoryHelper.GetEDWString(edwOptions.Angle, edwOptions.Orientation); } }