fix bug, reload net
This commit is contained in:
parent
9b2546bfd6
commit
b6f4b22bd2
18
mainLoop.py
18
mainLoop.py
@ -4,10 +4,12 @@ from Map import Map
|
|||||||
from CarController import CarController
|
from CarController import CarController
|
||||||
|
|
||||||
from PySide6.QtWidgets import QFileDialog, QToolBox
|
from PySide6.QtWidgets import QFileDialog, QToolBox
|
||||||
from PySide6.QtCore import QElapsedTimer, QTimer, QElapsedTimer, QObject, Signal, Slot
|
from PySide6.QtCore import QElapsedTimer, QTimer, QElapsedTimer, QObject, Signal, Slot, QThread, QMutex
|
||||||
|
|
||||||
class mainLoop(QObject):
|
class mainLoop(QObject):
|
||||||
updateFPS = Signal(int)
|
updateFPS = Signal(int)
|
||||||
|
mutex = QMutex()
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
@ -30,16 +32,26 @@ class mainLoop(QObject):
|
|||||||
self.fpsTimer = QElapsedTimer()
|
self.fpsTimer = QElapsedTimer()
|
||||||
self.updateFPS.connect(self.parent.updatePhysicsFps)
|
self.updateFPS.connect(self.parent.updatePhysicsFps)
|
||||||
|
|
||||||
|
def threadSafe(func):
|
||||||
|
def inner(*args, **kwargs):
|
||||||
|
args[0].mutex.lock()
|
||||||
|
func(*args, **kwargs)
|
||||||
|
args[0].mutex.unlock()
|
||||||
|
return inner
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.fpsTimer.start()
|
self.fpsTimer.start()
|
||||||
|
self.stopSignal.connect(self.timer.stop)
|
||||||
|
|
||||||
|
@threadSafe
|
||||||
def update(self):
|
def update(self):
|
||||||
try:
|
try:
|
||||||
self.controller.update()
|
self.controller.update()
|
||||||
except:
|
except:
|
||||||
(type, value, traceback) = sys.exc_info()
|
(type, value, traceback) = sys.exc_info()
|
||||||
print(type, value, traceback)
|
print(type, value, traceback)
|
||||||
|
|
||||||
|
@threadSafe
|
||||||
def openNetwork(self, filename):
|
def openNetwork(self, filename):
|
||||||
if filename == '':
|
if filename == '':
|
||||||
return
|
return
|
||||||
@ -48,6 +60,7 @@ class mainLoop(QObject):
|
|||||||
|
|
||||||
self.controller.prepareRoute()
|
self.controller.prepareRoute()
|
||||||
|
|
||||||
|
@threadSafe
|
||||||
def openVehicles(self, filename):
|
def openVehicles(self, filename):
|
||||||
if filename == '':
|
if filename == '':
|
||||||
return
|
return
|
||||||
@ -55,6 +68,7 @@ class mainLoop(QObject):
|
|||||||
if self.map.isLoaded():
|
if self.map.isLoaded():
|
||||||
self.controller.prepareRoute()
|
self.controller.prepareRoute()
|
||||||
|
|
||||||
|
@threadSafe
|
||||||
def quickLoad(self):
|
def quickLoad(self):
|
||||||
self.map.fromPath("test2.net.xml")
|
self.map.fromPath("test2.net.xml")
|
||||||
self.painter.generateTransform()
|
self.painter.generateTransform()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user