예제 #1
0
        private void ConsoleOut(TrainInfo trainInfo, InfoSendToATP infoSendToATP, bool isComplete)
        {
            if (MainWindow.IsShowLog)
            {
                string content = null;
                if (!isComplete)
                {
                    content = "Receive from ATP:"
                              + "\r\n" + "NID_Train:" + trainInfo.NIDTrain +
                              " NC_Train:" + trainInfo.NcTrain +
                              " HeadPosition:" + (trainInfo.HeadPosition is Section ? trainInfo.HeadPosition.Name : ((trainInfo.HeadPosition as RailSwitch).SectionName + "-" + (trainInfo.HeadPosition as RailSwitch).Name)) + "+" + trainInfo.HeadOffset +
                              " TailPosition:" + (trainInfo.TailPosition is Section ? trainInfo.TailPosition.Name : ((trainInfo.TailPosition as RailSwitch).SectionName + "-" + (trainInfo.TailPosition as RailSwitch).Name)) + "+" + trainInfo.TailOffset +
                              " Speed:" + trainInfo.Speed + " Direction:" + (trainInfo.TrainDirection == TrainDir.Right ? "Up" : "Down") + " PSDoor:" + (trainInfo.PSDoor ? "Open" : "Close") +
                              "\r\n";
                    MainWindow.AllocConsole();
                    if (content != consoleFromATP)
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine(content);
                        consoleFromATP = content;
                        OutPutLogs(consoleFromATP);
                    }
                }
                else
                {
                    content = "Send to ATP:" + "\r\n" +
                              "NC_ZC:" + infoSendToATP.atpPackage.NC_ZC + " MALength:" + infoSendToATP.atpPackage.N_Length +
                              " EndMA:" + (infoSendToATP.MA.MAEndDevice is Section ? infoSendToATP.MA.MAEndDevice.Name :(infoSendToATP.MA.MAEndDevice == null? "null":((infoSendToATP.MA.MAEndDevice as RailSwitch).SectionName) + "-" + infoSendToATP.MA.MAEndDevice.Name)) +
                              " EndMAOffset:" + infoSendToATP.atpPackage.D_MATailOff +
                              " NumOfObstacle:" + infoSendToATP.atpPackage.N_Obstacle + "  {  ";
                    foreach (var item in infoSendToATP.atpPackage.Obstacle)
                    {
                        RailSwitch obsta = MainWindow.stationElements_.Elements.Find((GraphicElement element) =>
                        {
                            if (element is RailSwitch)
                            {
                                return((element as RailSwitch).ID == item.NID_Obstacle);
                            }
                            return(false);
                        }) as RailSwitch;

                        content += obsta.SectionName + "-" + obsta.Name + "(" + item.Q_Obstacle_Now + ")  ";
                    }
                    content = content + "}";
                    MainWindow.AllocConsole();
                    if (content != consoleConcentToATP)
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine(content);
                        consoleConcentToATP = content;
                        OutPutLogs(consoleConcentToATP);
                    }
                }
            }
        }
예제 #2
0
        private void CheckSectionSwitches(RailSwitch rs_1, RailSwitch rs_2)
        {
            if (rs_1.IsLeft != rs_2.IsLeft)
            {
                if (rs_1.IsLeft)
                {
                    rs_1.InsuLine = null;
                    rs_1.InvalidateVisual();
                }

                if (rs_2.IsLeft)
                {
                    rs_2.InsuLine = null;
                    rs_2.InvalidateVisual();
                }
            }
        }
예제 #3
0
 internal void CheckSectionSwitches()
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         if (Elements[i] is RailSwitch)
         {
             RailSwitch rs_1 = Elements[i] as RailSwitch;
             for (int j = i + 1; j < Elements.Count; j++)
             {
                 if (Elements[j] is RailSwitch)
                 {
                     RailSwitch rs_2 = Elements[j] as RailSwitch;
                     if (rs_1.StationID == rs_2.StationID && rs_1.SectionID == rs_2.SectionID)
                     {
                         CheckSectionSwitches(rs_1, rs_2);
                     }
                 }
             }
         }
     }
 }