diff --git a/Car.py b/Car.py
index 9b57e4b..f6c31ed 100644
--- a/Car.py
+++ b/Car.py
@@ -57,6 +57,9 @@ class Car():
self.vmax=0
+ self.S = 5
+ self.T = 0.3
+
self.vroom = 0
self.rawRoute = route
@@ -162,8 +165,8 @@ class Car():
vbar=(self.v+vleader)/2
bbar=(bleader+self.b)/2
- S=5
- T=0.3
+ S=self.S
+ T=self.T
vsec=vleader+(S-vmax*T)/(vbar/bbar+T)
vd=min(self.v+self.a*dt,vmax) #,vsec)
self.v=max(0,vd)
diff --git a/CarController.py b/CarController.py
index ff91fb5..0aef228 100644
--- a/CarController.py
+++ b/CarController.py
@@ -2,7 +2,8 @@ import sumolib
from Car import Car
from Flow import Flow
from carInfo import Ui_carInfo
-from PySide6.QtWidgets import QWidget, QLabel
+from varEdit import Ui_varEdit
+from PySide6.QtWidgets import QWidget, QLabel, QToolBox
from PySide6.QtCore import Qt, Slot, Signal, QThread
from PySide6.QtCharts import QChart, QSplineSeries, QLineSeries
from math import ceil
@@ -75,14 +76,36 @@ class carInfo(QWidget):
obj.setText(f"{key} : {val}")
obj.update()
+class varEdit(QWidget):
+ def __init__(self, parent, carController, varName, value):
+ super().__init__()
+ self.ui = Ui_varEdit()
+ self.ui.setupUi(self)
+
+ self.hookName = varName
+ self.ui.name.setText(varName)
+ self.ui.value.setValue(value)
+
+ self.CC = carController
+
+ self.ui.value.valueChanged.connect(self.valueChanged)
+
+ def valueChanged(self):
+ value = self.ui.value.value()
+ self.CC.updateConstant(self.hookName, value)
+
class CarController:
- def __init__(self,parentMap):
+ def __init__(self, parentMap, mainWindow):
self.map=parentMap
self.cars=[]
self.flows=[]
self.t=0
- self.infoWidget=None
+ self.infoWidget=mainWindow.findChild(QToolBox, "carInfos")
+ varWidget = mainWindow.ui.constEdit
+ varWidget.addWidget(varEdit(varWidget, self, "S", 5))
+ varWidget.addWidget(varEdit(varWidget, self, "T", 0.3))
+
def fromPath(self,path):
self.cars=[]
self.t=0
@@ -134,5 +157,6 @@ class CarController:
painter.setPen(Qt.white)
car.draw(painter)
- def setInfoWidget(self, widget):
- self.infoWidget = widget
+ def updateConstant(self, name, val):
+ for car in self.cars:
+ car.__dict__[name] = val
diff --git a/mainLoop.py b/mainLoop.py
index 4a5cbc1..92c6711 100644
--- a/mainLoop.py
+++ b/mainLoop.py
@@ -17,9 +17,7 @@ class mainLoop(QObject):
self.map = Map()
- self.controller = CarController(self.map)
-
- self.controller.setInfoWidget(parent.findChild(QToolBox,"carInfos"))
+ self.controller = CarController(self.map, parent)
self.painter.addMap(self.map)
self.painter.addCarController(self.controller)
diff --git a/varEdit.py b/varEdit.py
new file mode 100644
index 0000000..523b3bd
--- /dev/null
+++ b/varEdit.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'varEdit.ui'
+##
+## Created by: Qt User Interface Compiler version 6.2.3
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QApplication, QDoubleSpinBox, QHBoxLayout, QLabel,
+ QSizePolicy, QWidget)
+
+class Ui_varEdit(object):
+ def setupUi(self, varEdit):
+ if not varEdit.objectName():
+ varEdit.setObjectName(u"varEdit")
+ varEdit.resize(400, 300)
+ self.horizontalLayout = QHBoxLayout(varEdit)
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.name = QLabel(varEdit)
+ self.name.setObjectName(u"name")
+
+ self.horizontalLayout.addWidget(self.name)
+
+ self.value = QDoubleSpinBox(varEdit)
+ self.value.setObjectName(u"value")
+
+ self.horizontalLayout.addWidget(self.value)
+
+
+ self.retranslateUi(varEdit)
+
+ QMetaObject.connectSlotsByName(varEdit)
+ # setupUi
+
+ def retranslateUi(self, varEdit):
+ varEdit.setWindowTitle(QCoreApplication.translate("varEdit", u"Form", None))
+ self.name.setText(QCoreApplication.translate("varEdit", u"TextLabel", None))
+ # retranslateUi
+
diff --git a/varEdit.ui b/varEdit.ui
new file mode 100644
index 0000000..00341cd
--- /dev/null
+++ b/varEdit.ui
@@ -0,0 +1,31 @@
+
+
+ varEdit
+
+
+
+ 0
+ 0
+ 400
+ 300
+
+
+
+ Form
+
+
+ -
+
+
+ TextLabel
+
+
+
+ -
+
+
+
+
+
+
+
diff --git a/window.py b/window.py
index 405062c..843d99b 100644
--- a/window.py
+++ b/window.py
@@ -48,6 +48,11 @@ class Ui_MainWindow(object):
self.verticalLayout = QVBoxLayout()
self.verticalLayout.setObjectName(u"verticalLayout")
self.verticalLayout.setSizeConstraint(QLayout.SetDefaultConstraint)
+ self.constEdit = QVBoxLayout()
+ self.constEdit.setObjectName(u"constEdit")
+
+ self.verticalLayout.addLayout(self.constEdit)
+
self.generalInfos = QVBoxLayout()
self.generalInfos.setObjectName(u"generalInfos")
self.horizontalLayout_3 = QHBoxLayout()
@@ -118,7 +123,8 @@ class Ui_MainWindow(object):
self.verticalLayout.addWidget(self.carInfos)
self.verticalLayout.setStretch(0, 1)
- self.verticalLayout.setStretch(1, 5)
+ self.verticalLayout.setStretch(1, 1)
+ self.verticalLayout.setStretch(2, 5)
self.horizontalLayout.addLayout(self.verticalLayout)
diff --git a/window.ui b/window.ui
index 362f33d..95cc3df 100644
--- a/window.ui
+++ b/window.ui
@@ -34,10 +34,13 @@
-
-
+
QLayout::SetDefaultConstraint
+
-
+
+
-
-