diff --git a/.gitignore b/.gitignore index 1d580f6d..18401b7a 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ Train_Controller_SW/__pycache__/NonVital.cpython-312.pyc Train_Controller_SW/__pycache__/Power.cpython-312.pyc Train_Controller_SW/__pycache__/Speed.cpython-312.pyc Train_Controller_SW/__pycache__/TrainController.cpython-312. +Wayside_SW/__pycache__/WaysideSWandTB.cpython-312.pyc diff --git a/CTC/__pycache__/CTC_Maintenance.cpython-312.pyc b/CTC/__pycache__/CTC_Maintenance.cpython-312.pyc index 35c8a271..3a783464 100644 Binary files a/CTC/__pycache__/CTC_Maintenance.cpython-312.pyc and b/CTC/__pycache__/CTC_Maintenance.cpython-312.pyc differ diff --git a/CTC/__pycache__/CTC_Testbench.cpython-312.pyc b/CTC/__pycache__/CTC_Testbench.cpython-312.pyc index 6ef6216c..72e2c0a5 100644 Binary files a/CTC/__pycache__/CTC_Testbench.cpython-312.pyc and b/CTC/__pycache__/CTC_Testbench.cpython-312.pyc differ diff --git a/CTC/__pycache__/CTC_UI.cpython-312.pyc b/CTC/__pycache__/CTC_UI.cpython-312.pyc index b0be64e0..c1b8f3ff 100644 Binary files a/CTC/__pycache__/CTC_UI.cpython-312.pyc and b/CTC/__pycache__/CTC_UI.cpython-312.pyc differ diff --git a/CTC/__pycache__/OccupiedBlocks.cpython-312.pyc b/CTC/__pycache__/OccupiedBlocks.cpython-312.pyc index a7bce055..104a4b8f 100644 Binary files a/CTC/__pycache__/OccupiedBlocks.cpython-312.pyc and b/CTC/__pycache__/OccupiedBlocks.cpython-312.pyc differ diff --git a/CTC/__pycache__/Schedule.cpython-312.pyc b/CTC/__pycache__/Schedule.cpython-312.pyc index b569dd12..6842d564 100644 Binary files a/CTC/__pycache__/Schedule.cpython-312.pyc and b/CTC/__pycache__/Schedule.cpython-312.pyc differ diff --git a/CTC/__pycache__/TempData.cpython-312.pyc b/CTC/__pycache__/TempData.cpython-312.pyc index 2bdf12ac..023098ac 100644 Binary files a/CTC/__pycache__/TempData.cpython-312.pyc and b/CTC/__pycache__/TempData.cpython-312.pyc differ diff --git a/CTC/__pycache__/Throughput.cpython-312.pyc b/CTC/__pycache__/Throughput.cpython-312.pyc index f8174b1e..0ebd108d 100644 Binary files a/CTC/__pycache__/Throughput.cpython-312.pyc and b/CTC/__pycache__/Throughput.cpython-312.pyc differ diff --git a/MainSimulation.py b/MainSimulation.py index 11051a55..11962add 100644 --- a/MainSimulation.py +++ b/MainSimulation.py @@ -27,27 +27,40 @@ from Train_Model.app_trainmodel_tb import * -#Utility function to initialize clock +#Utility function to update the clock def clock(): global time - time = time.addSecs(60) - + time = time.addSecs(1) current_time = time.toString("hh:mm") - #Pulling clock data for CTC UI + + #Pulling clock data for CTC and Track Model MainWindow.CTCwindow.displayClock(current_time) MainWindow.TrackModelWindow.set_clock(current_time) MainWindow.TrackModelWindow.get_time(time) - + #Pulling clock data for each train in existance for train in MainWindow.currentTrains: train.update_time(time) - - +#Modifies speed of simulation based of slider on the main UI def updateClockSpeed(): - #MainWindow.horizontalSlider. - print("temp") - #timer0.setInterval(1000) + SliderValue = MainWindow.SpeedSlider.value() + + timer.setInterval(int(1000 / SliderValue)) + timer.timeout.connect(clock) + timer.start() + + MainWindow.CurrentSpeedLabel.setText("Current Speed: "+str(SliderValue)+"x") + +#Pauses simulation as a toggle function from button on the main UI +def pauseSim(): + if MainWindow.PauseButton.isChecked(): + timer.stop() + MainWindow.PauseButton.setText("Unpause Simulation") + else: + timer.start() + MainWindow.PauseButton.setText("Pause Simulation") + #Starting PyQt application UI_window = QtWidgets.QApplication(sys.argv) @@ -65,7 +78,7 @@ def updateClockSpeed(): MainWindow.CTCwindow.sendDispatchInfo.connect(MainWindow.CTC_tb.showDispatchInfo) #CTC to Wayside - +MainWindow.CTCwindow.sendDispatchInfo.connect(MainWindow.WaysideSWwindow.receiveSpeedAuth) #CTC to MainWindow MainWindow.CTCwindow.create_a_train.connect(MainWindow.create_new_train) @@ -98,16 +111,18 @@ def updateClockSpeed(): """Clock Initialization""" #Initializing Qtimer for clock -timer0 = QtCore.QTimer() +global timer +timer = QtCore.QTimer() time = QtCore.QTime(0, 0, 0) #Hours, Minutes, Second -timer0.setInterval(100) #Interval in ms -timer0.timeout.connect(clock) -timer0.start() +timer.setInterval(1000) #Interval in ms +timer.timeout.connect(clock) +timer.start() QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling) -#Initializing Time Slider -#MainWindow.horizontalSlider.SliderRealeased(updateClockSpeed) +#Connecting Main UI functionality signals +MainWindow.SpeedSlider.sliderReleased.connect(updateClockSpeed) +MainWindow.PauseButton.clicked.connect(pauseSim) sys.exit(UI_window.exec_()) diff --git a/MainUI.ui b/MainUI.ui index 73372deb..a38631a0 100644 --- a/MainUI.ui +++ b/MainUI.ui @@ -6,8 +6,8 @@ 0 0 - 400 - 394 + 424 + 455 @@ -20,8 +20,8 @@ - 30 - 30 + 20 + 50 61 61 @@ -43,9 +43,9 @@ - 100 - 20 - 241 + 40 + 10 + 351 16 @@ -65,8 +65,8 @@ 100 40 - 242 - 49 + 261 + 81 @@ -78,7 +78,7 @@ Simulation Speed Control - + @@ -99,18 +99,24 @@ - 0x Speed + 1x Speed - + background-color: white; + + 1 + + + 10 + Qt::Horizontal @@ -131,15 +137,39 @@ + + + + + + Start Simulation + + + true + + + true + + + + + + + Current Speed: 1x + + + + + - 110 - 90 + 120 + 130 221 - 271 + 292 @@ -162,8 +192,8 @@ - - + + background-color: white; @@ -171,12 +201,12 @@ - Train Model + Wayside HW - - + + background-color: white; @@ -184,7 +214,7 @@ - Wayside HW + Train Model @@ -241,8 +271,8 @@ - - + + background-color: white; @@ -250,12 +280,12 @@ - Track Model + CTC - - + + background-color: white; @@ -263,7 +293,7 @@ - CTC + Track Model diff --git a/Main_UI.py b/Main_UI.py index 7ded384d..512fac1f 100644 --- a/Main_UI.py +++ b/Main_UI.py @@ -104,6 +104,7 @@ def create_new_train(self, TrainID): #self.currentTrains[-1].sendSignalToTrack.(self.TrackModelWindow.recieveSignalFromTrain) + """ UI_window = QtWidgets.QApplication(sys.argv) window = MainUI() diff --git a/PLC_Files/__pycache__/Parser.cpython-312.pyc b/PLC_Files/__pycache__/Parser.cpython-312.pyc index 042d7cbb..4ecbe517 100644 Binary files a/PLC_Files/__pycache__/Parser.cpython-312.pyc and b/PLC_Files/__pycache__/Parser.cpython-312.pyc differ diff --git a/PLC_Files/__pycache__/__init__.cpython-312.pyc b/PLC_Files/__pycache__/__init__.cpython-312.pyc index fcae5275..08bcff89 100644 Binary files a/PLC_Files/__pycache__/__init__.cpython-312.pyc and b/PLC_Files/__pycache__/__init__.cpython-312.pyc differ diff --git a/Track_Model/__pycache__/TrackModel.cpython-312.pyc b/Track_Model/__pycache__/TrackModel.cpython-312.pyc index 0ecac3fe..0cb69943 100644 Binary files a/Track_Model/__pycache__/TrackModel.cpython-312.pyc and b/Track_Model/__pycache__/TrackModel.cpython-312.pyc differ diff --git a/Track_Resources/__pycache__/Block.cpython-312.pyc b/Track_Resources/__pycache__/Block.cpython-312.pyc index 7617da99..554b40f6 100644 Binary files a/Track_Resources/__pycache__/Block.cpython-312.pyc and b/Track_Resources/__pycache__/Block.cpython-312.pyc differ diff --git a/Track_Resources/__pycache__/__init__.cpython-312.pyc b/Track_Resources/__pycache__/__init__.cpython-312.pyc index c0d13d92..0424f6ba 100644 Binary files a/Track_Resources/__pycache__/__init__.cpython-312.pyc and b/Track_Resources/__pycache__/__init__.cpython-312.pyc differ diff --git a/Train_Controller_SW/__pycache__/Authority.cpython-312.pyc b/Train_Controller_SW/__pycache__/Authority.cpython-312.pyc index 168766d3..7093a8ca 100644 Binary files a/Train_Controller_SW/__pycache__/Authority.cpython-312.pyc and b/Train_Controller_SW/__pycache__/Authority.cpython-312.pyc differ diff --git a/Train_Controller_SW/__pycache__/Failure.cpython-312.pyc b/Train_Controller_SW/__pycache__/Failure.cpython-312.pyc index 24f7670d..9cee6d18 100644 Binary files a/Train_Controller_SW/__pycache__/Failure.cpython-312.pyc and b/Train_Controller_SW/__pycache__/Failure.cpython-312.pyc differ diff --git a/Train_Controller_SW/__pycache__/NonVital.cpython-312.pyc b/Train_Controller_SW/__pycache__/NonVital.cpython-312.pyc index 54b5705b..e7e5a51b 100644 Binary files a/Train_Controller_SW/__pycache__/NonVital.cpython-312.pyc and b/Train_Controller_SW/__pycache__/NonVital.cpython-312.pyc differ diff --git a/Train_Controller_SW/__pycache__/Power.cpython-312.pyc b/Train_Controller_SW/__pycache__/Power.cpython-312.pyc index 44ae5782..46d6fa3f 100644 Binary files a/Train_Controller_SW/__pycache__/Power.cpython-312.pyc and b/Train_Controller_SW/__pycache__/Power.cpython-312.pyc differ diff --git a/Train_Controller_SW/__pycache__/Speed.cpython-312.pyc b/Train_Controller_SW/__pycache__/Speed.cpython-312.pyc index 080f9490..238abd6e 100644 Binary files a/Train_Controller_SW/__pycache__/Speed.cpython-312.pyc and b/Train_Controller_SW/__pycache__/Speed.cpython-312.pyc differ diff --git a/Train_Controller_SW/__pycache__/TrainController.cpython-312.pyc b/Train_Controller_SW/__pycache__/TrainController.cpython-312.pyc index 0e730c91..526be565 100644 Binary files a/Train_Controller_SW/__pycache__/TrainController.cpython-312.pyc and b/Train_Controller_SW/__pycache__/TrainController.cpython-312.pyc differ diff --git a/Train_Controller_SW/__pycache__/mainControl.cpython-312.pyc b/Train_Controller_SW/__pycache__/mainControl.cpython-312.pyc index 445bca0a..ad1b8b4b 100644 Binary files a/Train_Controller_SW/__pycache__/mainControl.cpython-312.pyc and b/Train_Controller_SW/__pycache__/mainControl.cpython-312.pyc differ diff --git a/Train_Model/__pycache__/app_trainmodel_tb.cpython-312.pyc b/Train_Model/__pycache__/app_trainmodel_tb.cpython-312.pyc index 5351d15f..d090c5ae 100644 Binary files a/Train_Model/__pycache__/app_trainmodel_tb.cpython-312.pyc and b/Train_Model/__pycache__/app_trainmodel_tb.cpython-312.pyc differ diff --git a/Train_Model/__pycache__/app_trainmodel_ui.cpython-312.pyc b/Train_Model/__pycache__/app_trainmodel_ui.cpython-312.pyc index 52d907f2..150d11dc 100644 Binary files a/Train_Model/__pycache__/app_trainmodel_ui.cpython-312.pyc and b/Train_Model/__pycache__/app_trainmodel_ui.cpython-312.pyc differ diff --git a/Train_Model/__pycache__/clock_test.cpython-312.pyc b/Train_Model/__pycache__/clock_test.cpython-312.pyc index 44f07369..efbaa8be 100644 Binary files a/Train_Model/__pycache__/clock_test.cpython-312.pyc and b/Train_Model/__pycache__/clock_test.cpython-312.pyc differ diff --git a/Wayside_HW/__pycache__/TrackController_HW.cpython-312.pyc b/Wayside_HW/__pycache__/TrackController_HW.cpython-312.pyc index 623616ce..9fa9f73d 100644 Binary files a/Wayside_HW/__pycache__/TrackController_HW.cpython-312.pyc and b/Wayside_HW/__pycache__/TrackController_HW.cpython-312.pyc differ diff --git a/Wayside_HW/__pycache__/TrackController_HW_TB.cpython-312.pyc b/Wayside_HW/__pycache__/TrackController_HW_TB.cpython-312.pyc index 5af9e27e..6bb01f61 100644 Binary files a/Wayside_HW/__pycache__/TrackController_HW_TB.cpython-312.pyc and b/Wayside_HW/__pycache__/TrackController_HW_TB.cpython-312.pyc differ diff --git a/Wayside_HW/__pycache__/readTrackFile.cpython-312.pyc b/Wayside_HW/__pycache__/readTrackFile.cpython-312.pyc index b888ca3b..6ede4452 100644 Binary files a/Wayside_HW/__pycache__/readTrackFile.cpython-312.pyc and b/Wayside_HW/__pycache__/readTrackFile.cpython-312.pyc differ diff --git a/Wayside_SW/__pycache__/WaysideSWandTB.cpython-312.pyc b/Wayside_SW/__pycache__/WaysideSWandTB.cpython-312.pyc index 2a5faac4..0b6d2526 100644 Binary files a/Wayside_SW/__pycache__/WaysideSWandTB.cpython-312.pyc and b/Wayside_SW/__pycache__/WaysideSWandTB.cpython-312.pyc differ diff --git a/__pycache__/Main_UI.cpython-312.pyc b/__pycache__/Main_UI.cpython-312.pyc index 1fbcaade..a52ae510 100644 Binary files a/__pycache__/Main_UI.cpython-312.pyc and b/__pycache__/Main_UI.cpython-312.pyc differ