Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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);
            }
        }