コード例 #1
0
 private void NextInputPath()
 {
     inputPathMode            = false;
     inputPathCorrectnessMode = true;
     Klub_u.SetInfo("Признак правильности пути = " + (CorrectPath ? "1" : "0") + " ");
     Klub_u.SetPathNumber(PathNumber, CorrectPath);
 }
コード例 #2
0
 public override void ManualChangeCoordinate(int coordinzte)
 {
     if (ManualCoordinateControl)
     {
         Coordinate = coordinzte;
     }
     Klub_u.SetCoordinate(Coordinate);
 }
コード例 #3
0
        public override void PressButtonK()
        {
            inputInfoMode            = false;
            inputPathMode            = false;
            inputPathCorrectnessMode = false;
            Klub_u.SetInfo(Info);

            inputCommandMode = true;
            inputNumberTool.Reset();
        }
コード例 #4
0
        public override void PressButtonRMP()
        {
            if (ActualSpeed == 0 && HasCassette)
            {
                MovingMode++;
                MovingMode %= 3;
                if (MovingMode == 0 && Trafficlights[2] || Trafficlights[3] || (Trafficlights[0] && Trafficlights[8]))
                {
                    MovingMode++;
                }

                // TODO в течение 30 с после одновременного нажатия РБ и РБП
                if (MovingMode == 2 && Trafficlights[2] || Trafficlights[3] || (Trafficlights[0] && Trafficlights[8]))
                {
                    MovingMode = 0;
                }

                switch (MovingMode)
                {
                case 0:     // Maneurng mode
                    //TODO Прием сигналов АЛСН не производится
                    //TODO На блоке индикации горит белый огонь
                    AllowableSpeed = 60;
                    //TODO Проверка бдительности в начале движения не производится
                    Klub_u.OffTrainModeIndicator();
                    Klub_u.OffDoubleTractionModeIndicator();
                    Klub_u.OnManeuringModeIndicator();
                    break;

                case 1:     //Train mode
                    Klub_u.OffManeuringModeIndicator();
                    Klub_u.OffDoubleTractionModeIndicator();
                    Klub_u.OnTrainModeIndicator();
                    break;

                case 2:     //Double traction mode
                    //TODO не осуществляет прием кодов АЛСН,
                    //TODO не осуществляет прием кодов светофоров от цифрового радиоканала
                    //     (на БИЛ и БИЛ-ПОМ индицируется сигнал «Б»);
                    //TODO обеспечивает изменение скорости движения по сигналу «Б» после ввода команды «К799»
                    //TODO не производит экстренное торможение посредством блока КОН;
                    //TODO не осуществляет однократную проверку бдительности при трогании,
                    //     контроль скатывания и контроль исправности ДПС;
                    //TODO формирует на БИЛ информацию о впередилежащих местах ограничения скорости,
                    //     не производя при этом фактической отработки Vцел и Vдоп по данным ограничениям.
                    Klub_u.OffManeuringModeIndicator();
                    Klub_u.OffTrainModeIndicator();
                    Klub_u.OnDoubleTractionModeIndicator();
                    break;

                default: MessageBox.Show("Error when switching the travel mode"); break;
                }
            }
        }
コード例 #5
0
        private void OnOrOffTrafficLight(int number, bool status)
        {
            if (status)
            {
                switch (number)
                {
                case 0: Klub_u.OnTrafficLight0Indicator(); break;

                case 1: Klub_u.OnTrafficLight1Indicator(); break;

                case 2: Klub_u.OnTrafficLight2Indicator(); break;

                case 3: Klub_u.OnTrafficLight3Indicator(); break;

                case 4: Klub_u.OnTrafficLight4Indicator(); break;

                case 5: Klub_u.OnTrafficLight5Indicator(); break;

                case 6: Klub_u.OnTrafficLight6Indicator(); break;

                case 7: Klub_u.OnTrafficLight7Indicator(); break;

                case 8: Klub_u.OnTrafficLight0BlinkIndicator(); break;

                default: MessageBox.Show("ERROR: On TrafficLight Indicator " + number.ToString()); break;
                }
            }
            else
            {
                switch (number)
                {
                case 0: Klub_u.OffTrafficLight0Indicator(); break;

                case 1: Klub_u.OffTrafficLight1Indicator(); break;

                case 2: Klub_u.OffTrafficLight2Indicator(); break;

                case 3: Klub_u.OffTrafficLight3Indicator(); break;

                case 4: Klub_u.OffTrafficLight4Indicator(); break;

                case 5: Klub_u.OffTrafficLight5Indicator(); break;

                case 6: Klub_u.OffTrafficLight6Indicator(); break;

                case 7: Klub_u.OffTrafficLight7Indicator(); break;

                case 8: Klub_u.OffTrafficLight0BlinkIndicator(); break;

                default: MessageBox.Show("ERROR: Off TrafficLight Indicator " + number.ToString()); break;
                }
            }
        }
コード例 #6
0
 private void NextInputInfo()
 {
     inputInfoParametr++;
     if (inputInfoParametr >= 5)
     {
         inputInfoMode = false;
         Klub_u.SetInfo(Info);
         return;
     }
     else
     {
         Klub_u.SetInfo(InputInfoParametrs[inputInfoParametr] + " - " + TrainParametrs[inputInfoParametr] + " ");
     }
 }
コード例 #7
0
        public override void PressButtonL()
        {
            inputCommandMode         = false;
            inputPathMode            = false;
            inputPathCorrectnessMode = false;

            if (inputInfoMode)
            {
                NextInputInfo();
            }
            else if (ActualSpeed == 0 && HasCassette)
            {
                inputInfoMode     = true;
                inputInfoParametr = 0;
                Klub_u.SetInfo(InputInfoParametrs[inputInfoParametr] + " - " + TrainParametrs[inputInfoParametr] + " ");
            }
        }
コード例 #8
0
 // a = +1 if press button plus and a = -1 if press minus
 private void PlusOrMinusParametr(int a)
 {
     if (inputInfoMode)
     {
         TrainParametrs[inputInfoParametr] += a;
         Klub_u.SetInfo(InputInfoParametrs[inputInfoParametr] + " - " + TrainParametrs[inputInfoParametr].ToString() + " ");
     }
     else if (inputPathMode)
     {
         PathNumber += (byte)a;
         Klub_u.SetInfo("Номер пути = " + PathNumber.ToString() + " ");
     }
     else if (inputPathCorrectnessMode)
     {
         CorrectPath = !CorrectPath;
         Klub_u.SetInfo("Признак правильности пути = " + (CorrectPath ? "1" : "0") + " ");
     }
 }
コード例 #9
0
 public override void PressButtonP()
 {
     if (inputPathMode)
     {
         NextInputPath();
     }
     else
     {
         if (inputPathCorrectnessMode)
         {
             NextInputPathCorrectness();
         }
         else
         {
             inputCommandMode = false;
             inputInfoMode    = false;
             inputPathMode    = true;
             Klub_u.SetInfo("Номер пути = " + PathNumber.ToString() + " ");
         }
     }
 }
コード例 #10
0
 private void PressNumberButtonN(byte n)
 {
     if (inputInfoMode)
     {
         TrainParametrs[inputInfoParametr] = TrainParametrs[inputInfoParametr] * 10 + n;
         Klub_u.SetInfo(InputInfoParametrs[inputInfoParametr] + " - " + TrainParametrs[inputInfoParametr].ToString() + " ");
     }
     else if (inputPathMode)
     {
         PathNumber = (byte)(PathNumber * 10 + n);
         Klub_u.SetInfo("Номер пути = " + PathNumber.ToString() + " ");
     }
     else if (inputPathCorrectnessMode)
     {
         CorrectPath = n == 1;
         Klub_u.SetInfo("Признак правильности пути = " + (CorrectPath ? "1" : "0") + " ");
     }
     else
     {
         inputNumberTool.AddSimvol(n);
     }
 }
コード例 #11
0
 public override void UninstallCassette()
 {
     HasCassette = false;
     Klub_u.OffRegisterIndicatorIndicator();
 }
コード例 #12
0
 public override void InstallCassette()
 {
     HasCassette = true;
     Klub_u.OnRegisterIndicatorIndicator();
 }
コード例 #13
0
 public override void OnManualTrafficlightsControlMode()
 {
     ManualCoordinateControl = true; Klub_u.SetManualTrafficLightsControl(Trafficlights);
 }
コード例 #14
0
 private void NextInputPathCorrectness()
 {
     inputPathCorrectnessMode = false;
     Klub_u.SetInfo(Info);
     Klub_u.SetPathNumber(PathNumber, CorrectPath);
 }
コード例 #15
0
 public override void PressButtonF()
 {
     Frequency %= 75;
     Frequency += 25;
     Klub_u.SetFrequency(Frequency);
 }