quelques fixes

This commit is contained in:
leo 2022-02-14 17:52:27 +01:00
parent 91f55d2970
commit 75e32badd3
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB
3 changed files with 17 additions and 3 deletions

2
Car.py
View File

@ -30,6 +30,7 @@ class Car:
self.index=0 self.index=0
self.laneInd=0 self.laneInd=0
self.route=[] self.route=[]
self.leader=None
self.pos=[0,0] self.pos=[0,0]
self.v=0 self.v=0
@ -94,6 +95,7 @@ class Car:
if(de<df and db<minDist): if(de<df and db<minDist):
minDist=db minDist=db
leader=l leader=l
self.leader=leader
self.conduite(self.vmax,leader,dt) self.conduite(self.vmax,leader,dt)

View File

@ -2,6 +2,7 @@ import sumolib
from Car import Car from Car import Car
from carInfo import Ui_carInfo from carInfo import Ui_carInfo
from PySide6.QtWidgets import QWidget, QLabel from PySide6.QtWidgets import QWidget, QLabel
from PySide6.QtCore import Qt
class carInfo(QWidget): class carInfo(QWidget):
def __init__(self): def __init__(self):
@ -23,6 +24,9 @@ class CarController:
def fromPath(self,path): def fromPath(self,path):
self.cars=[] self.cars=[]
while(self.infoWidget.count() != 0):
self.infoWidget.removeItem(0)
for vehicle in sumolib.xml.parse(path,"vehicle"): for vehicle in sumolib.xml.parse(path,"vehicle"):
route=vehicle.route[0].edges.split() route=vehicle.route[0].edges.split()
wId=self.infoWidget.addItem(carInfo(), vehicle.id) wId=self.infoWidget.addItem(carInfo(), vehicle.id)
@ -47,7 +51,15 @@ class CarController:
car.update(1.0/60) car.update(1.0/60)
def draw(self,painter): def draw(self,painter):
for car in self.cars: for ind,car in enumerate(self.cars):
selectedId = self.infoWidget.currentIndex()
selectedCar = self.cars[selectedId]
if(ind == selectedId):
painter.setPen(Qt.green)
elif(selectedCar.leader is not None and selectedCar.leader.id == car.id):
painter.setPen(Qt.red)
else:
painter.setPen(Qt.white)
car.draw(painter) car.draw(painter)
def setInfoWidget(self, widget): def setInfoWidget(self, widget):

4
DOC.md
View File

@ -7,10 +7,10 @@
### Edge ### Edge
Relie deux nodes, il possède un ID unique le décrivant et les deux ID des nodes composant ses extrémitées. Relie deux nodes, il possède un ID unique le décrivant et les deux ID des nodes composant ses extrémitées.
Il ne possède pas directement d'information concernant le tracé de la route, ces données sont fournis par les [lanes](#lane) Il ne possède pas directement d'information concernant le tracé de la route, ces données sont fournis par les [lanes](#Lane)
Un edge est considéré comme "interne" si il est inclus dans une jonction Un edge est considéré comme "interne" si il est inclus dans une jonction
### Lane {#lane} ### Lane
Comme le nom l'indique, decris une voie de la route. Comme le nom l'indique, decris une voie de la route.
Possède un ID et un index numéroté de droite à gauche, une vitesse maximale autorisé, une longueur. Possède un ID et un index numéroté de droite à gauche, une vitesse maximale autorisé, une longueur.
Le tracé de la route est defini par la propriètée "shape" qui est composée d'une liste de position x,y Le tracé de la route est defini par la propriètée "shape" qui est composée d'une liste de position x,y