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); } } } }
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(); } } }
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); } } } } } }