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