From 93a8b0aef83d358069f00d7df348464b676dddb4 Mon Sep 17 00:00:00 2001 From: asmithie13 Date: Mon, 25 Mar 2024 17:11:45 -0400 Subject: [PATCH 1/5] Sending all block names to testbench. --- PLC_Files/__pycache__/Parser.cpython-312.pyc | Bin 2667 -> 2670 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 174 -> 177 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 180 -> 183 bytes Wayside_SW/WaysideSWandTB.py | 23 +++++++++++++++++- 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/PLC_Files/__pycache__/Parser.cpython-312.pyc b/PLC_Files/__pycache__/Parser.cpython-312.pyc index 042d7cbbf928534f47bbd6abb106b8ddeca10db7..edc15ef7ec71cb4d60f2b126b3ee017f30b59ca0 100644 GIT binary patch delta 76 zcmaDY@=k>NG%qg~0}x0k|K7+g%w*)3Y!wq)oLW>IQ&OCpSrX%)m+DfKS(X~(l3JWy el3x&GR+6C*oSK_jT#{N8V`yk%u-TVMjspO!CK%}e delta 73 zcmaDS@>+!ZG%qg~0}u$W`LmH*m`UF|*(xTqIJKxaCL}ShEK?yYwJ0|+#wE2lyClCL bCZs4aGp|@7D77HJII|?bsB&`vlN<*CcrY0h diff --git a/PLC_Files/__pycache__/__init__.cpython-312.pyc b/PLC_Files/__pycache__/__init__.cpython-312.pyc index fcae52759362ef0817a4ac64119d9aa6e3b05faa..998348daa92aed237ce3dbed58e49304541273bb 100644 GIT binary patch delta 73 zcmZ3-xRH_jG%qg~0}yPHxG<61*eD>`DkiizwWv6zq&PRTB*s54)ukx2EH%a@wK%&Z bzaYk}Bts!MH8-`mB(*5U(9pzSVy+_qV4oPq delta 70 zcmdnUxQ>zgG%qg~0}z;Oy*!cISl>6 Date: Tue, 26 Mar 2024 11:01:10 -0400 Subject: [PATCH 2/5] Sending blocks to testbench for accurate names. --- Wayside_SW/WaysideSWandTB.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Wayside_SW/WaysideSWandTB.py b/Wayside_SW/WaysideSWandTB.py index ac76013c..a160c9f7 100644 --- a/Wayside_SW/WaysideSWandTB.py +++ b/Wayside_SW/WaysideSWandTB.py @@ -251,10 +251,6 @@ def checkLine(self): checkGreen = self.selectGreenLine.isChecked() checkRed = self.selectRedLine.isChecked() - self.sendAllBlocks.emit(self.greenWayside2Blocks) - self.sendAllBlocks.emit(self.redWayside1Blocks) - self.sendAllBlocks.emit(self.redWayside2Blocks) - if checkGreen: self.selectRedLine.setDisabled(True) self.waysideMenu.clear() @@ -304,6 +300,8 @@ def selectWayside(self): self.blockMenu.addItems([block.ID]) self.FileParser = Parser(None,self.greenCrossingTriplesIDS,self.allGreenBlocks) + self.sendAllBlocks.emit(self.greenWayside2Blocks) + if selectedIndex == 0 and self.selectRedLine.isChecked(): self.currentBlocks = self.redWayside1Blocks @@ -318,6 +316,7 @@ def selectWayside(self): self.currentSwitchBlocksNums = self.redCrossingTriplesIDS self.FileParser = Parser(None,self.redCrossingTriplesIDS,self.allRedBlocks) + self.sendAllBlocks.emit(self.redWayside1Blocks) if selectedIndex == 1 and self.selectRedLine.isChecked(): self.currentBlocks = self.redWayside2Blocks @@ -332,6 +331,7 @@ def selectWayside(self): self.currentSwitchBlocksNums = self.redCrossingTriplesIDS self.FileParser = Parser(None,self.redCrossingTriplesIDS,self.allRedBlocks) + self.sendAllBlocks.emit(self.redWayside2Blocks) def blockActions(self): selectedIndex = self.blockMenu.currentIndex() @@ -523,9 +523,6 @@ def __init__(self): self.removeBlock.returnPressed.connect(self.remBlockOcc) self.tbBlockMenu.currentIndexChanged.connect(self.updateBlockStates) - #Menu - self.tbBlockMenu.addItems(['A1','A2','A3','A4','A5','B6','B7','B8','B9','B10','C11','C12','C13','C14','C15']) - #Backend vars self.OccupiedBlocks = [] #Is sent to the UI self.specialBlocks = [] #Is sent from the UI @@ -586,7 +583,7 @@ def updateBlockStates(self, arr): else: - if arr > len(self.specialBlocks) - 1: return + if arr > len(self.specialBlocks) - 1 or arr == -1: return selectedBlock = self.specialBlocks[arr] self.comSpeed.setText(str(selectedBlock.speedLimit)) @@ -629,12 +626,16 @@ def receiveMode(self,mode): self.label_16.setText("AUTOMATIC") def receiveBlocks(self,blocks): + self.tbBlockMenu.clear() if blocks[0].Wayside == "W2" and blocks[0].lineColor == "Green": self.greenW2Blocks = blocks + for block in self.greenW2Blocks: self.tbBlockMenu.addItems([block.ID]) elif blocks[0].Wayside == "W1" and blocks[0].lineColor == "Red": self.redW1Blocks = blocks + for block in self.redW1Blocks: self.tbBlockMenu.addItems([block.ID]) elif blocks[0].Wayside == "W2" and blocks[0].lineColor == "Red": self.redW2Blocks = blocks + for block in self.redW2Blocks: self.tbBlockMenu.addItems([block.ID]) if __name__ == "__main__": From f220bdb1c80e98504857e1f1bcd7617ac6e5dabc Mon Sep 17 00:00:00 2001 From: asmithie13 Date: Tue, 26 Mar 2024 16:13:10 -0400 Subject: [PATCH 3/5] Corrected speed and authority been sent as a list. --- MainSimulation.py | 14 +++++++++++--- Main_UI.py | 6 +++--- Track_Resources/Block.py | 2 +- Wayside_SW/WaysideSWandTB.py | 24 ++++++++++++++++++------ 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/MainSimulation.py b/MainSimulation.py index 15e448a6..c998ed5f 100644 --- a/MainSimulation.py +++ b/MainSimulation.py @@ -22,9 +22,9 @@ from Track_Model.TrackModel import * #Train Model Imports -import Train_Model -from Train_Model.app_trainmodel_ui import * -from Train_Model.app_trainmodel_tb import * +#import Train_Model +#from Train_Model.app_trainmodel_ui import * +#from Train_Model.app_trainmodel_tb import * #Utility function to initialize clock @@ -42,6 +42,14 @@ def clock(): #Initializing Main Window global MainWindow MainWindow = Main_UI() + +MainWindow.TrackModelWindow.setGeometry(0, 0, 400, 300) # Set the geometry to half of the original size + +# Scale down fonts +font = MainWindow.TrackModelWindow.font() +font.setPointSize(font.pointSize() // 2) +MainWindow.TrackModelWindow.setFont(font) + MainWindow.show() """CTC Signals""" diff --git a/Main_UI.py b/Main_UI.py index 1cd27b15..1f014c76 100644 --- a/Main_UI.py +++ b/Main_UI.py @@ -25,9 +25,9 @@ from Track_Model.TrackModel import * #Train Model Imports -import Train_Model -from Train_Model.app_trainmodel_ui import * -from Train_Model.app_trainmodel_tb import * +#import Train_Model +#from Train_Model.app_trainmodel_ui import * +#from Train_Model.app_trainmodel_tb import * class Main_UI(QtWidgets.QMainWindow): diff --git a/Track_Resources/Block.py b/Track_Resources/Block.py index 07252ebe..087abcd7 100644 --- a/Track_Resources/Block.py +++ b/Track_Resources/Block.py @@ -13,7 +13,7 @@ def __init__(self, lineColor, blockSection, blockNum, hasLight, hasCrossing, has self.occupied = False self.ID = id self.speedLimit = None - self.authority = None + self.authority = True self.blockLength = None self.Wayside = None diff --git a/Wayside_SW/WaysideSWandTB.py b/Wayside_SW/WaysideSWandTB.py index a160c9f7..a560c6c6 100644 --- a/Wayside_SW/WaysideSWandTB.py +++ b/Wayside_SW/WaysideSWandTB.py @@ -492,7 +492,8 @@ def updateBlocks(self,new_data): blockNum = int(block[1:]) for x in (self.green5blocks[blockNum - 1]): if self.allGreenBlocks[x - 1].occupied: - self.sendTrainSpeedAuth.emit(0,0,0) + self.sendTrainSpeedAuth.emit([0,0,0]) + self.allGreenBlocks[x - 1].authority = False self.BlockOcc.setText(" ".join(sentBlocks)) if self.label_7.text() == "AUTOMATIC" : self.FileParser.parsePLC() @@ -510,6 +511,7 @@ class TestBench(QMainWindow): tbChangeMode = pyqtSignal() #Fliping mode ctcSpeed = pyqtSignal(Block) #sending updated block with speed ctcAuthority = pyqtSignal(Block) #sending updated block with authority + ctcIDSpeedAuthority = pyqtSignal(list) def __init__(self): super().__init__() @@ -522,6 +524,7 @@ def __init__(self): self.addBlock.returnPressed.connect(self.addBlockOcc) self.removeBlock.returnPressed.connect(self.remBlockOcc) self.tbBlockMenu.currentIndexChanged.connect(self.updateBlockStates) + self.lineEdit.returnPressed.connect(self.receiveInitialIDSpeedAuth) #Backend vars self.OccupiedBlocks = [] #Is sent to the UI @@ -532,6 +535,9 @@ def __init__(self): self.redW1Blocks = [] self.redW2Blocks = [] + #train id, speed, authority to send + self.idSpeedAuthority = [] + def sendSpeed(self): speed = self.speedInput.text() self.comSpeed.setText(speed) @@ -613,11 +619,11 @@ def updateBlockStates(self, arr): if selectedBlock.switchState: self.label_19.setText("") self.label_22.setText("") - self.label_24.setText("B6") + self.label_24.setText("LEFT") else: self.label_19.setText("") self.label_22.setText("") - self.label_24.setText("C11") + self.label_24.setText("RIGHT") def receiveMode(self,mode): if mode == True: @@ -636,7 +642,14 @@ def receiveBlocks(self,blocks): elif blocks[0].Wayside == "W2" and blocks[0].lineColor == "Red": self.redW2Blocks = blocks for block in self.redW2Blocks: self.tbBlockMenu.addItems([block.ID]) - + + def receiveInitialIDSpeedAuth(self): + text = self.lineEdit.text() + splits = text.split(", ") + self.comSpeed.setText(splits[1]) + self.authOut.setText(splits[2]) + self.ctcIDSpeedAuthority.emit(splits) + if __name__ == "__main__": app = QApplication(sys.argv) @@ -651,8 +664,7 @@ def receiveBlocks(self,blocks): #Signal: Window 2 window2.OccBlocksChanged.connect(window.updateBlocks) window2.tbChangeMode.connect(window.changeMode) - window2.ctcSpeed.connect(window.receiveSpeedAuth) - window2.ctcAuthority.connect(window.receiveSpeedAuth) + window2.ctcIDSpeedAuthority.connect(window.receiveSpeedAuth) window.show() window2.show() From be78567317698caacf9e57f8ca56e24f09010b92 Mon Sep 17 00:00:00 2001 From: asmithie13 Date: Tue, 26 Mar 2024 16:15:02 -0400 Subject: [PATCH 4/5] Fixed comment error. --- MainSimulation.py | 6 +++--- Main_UI.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MainSimulation.py b/MainSimulation.py index c998ed5f..4119769f 100644 --- a/MainSimulation.py +++ b/MainSimulation.py @@ -22,9 +22,9 @@ from Track_Model.TrackModel import * #Train Model Imports -#import Train_Model -#from Train_Model.app_trainmodel_ui import * -#from Train_Model.app_trainmodel_tb import * +import Train_Model +from Train_Model.app_trainmodel_ui import * +from Train_Model.app_trainmodel_tb import * #Utility function to initialize clock diff --git a/Main_UI.py b/Main_UI.py index 1f014c76..1cd27b15 100644 --- a/Main_UI.py +++ b/Main_UI.py @@ -25,9 +25,9 @@ from Track_Model.TrackModel import * #Train Model Imports -#import Train_Model -#from Train_Model.app_trainmodel_ui import * -#from Train_Model.app_trainmodel_tb import * +import Train_Model +from Train_Model.app_trainmodel_ui import * +from Train_Model.app_trainmodel_tb import * class Main_UI(QtWidgets.QMainWindow): From b1144cbe7525e484974b976914fa7635b8821c4a Mon Sep 17 00:00:00 2001 From: asmithie13 Date: Tue, 26 Mar 2024 16:15:45 -0400 Subject: [PATCH 5/5] Fixed wrong dimensions. --- MainSimulation.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/MainSimulation.py b/MainSimulation.py index 4119769f..15e448a6 100644 --- a/MainSimulation.py +++ b/MainSimulation.py @@ -42,14 +42,6 @@ def clock(): #Initializing Main Window global MainWindow MainWindow = Main_UI() - -MainWindow.TrackModelWindow.setGeometry(0, 0, 400, 300) # Set the geometry to half of the original size - -# Scale down fonts -font = MainWindow.TrackModelWindow.font() -font.setPointSize(font.pointSize() // 2) -MainWindow.TrackModelWindow.setFont(font) - MainWindow.show() """CTC Signals"""