def loadVerticies(self): if self.status: from algorithms.Edge import Edge verts = self.dbcon.get_vertices() for vert in verts: self.textEdit.append(vert[1] + "--->" + vert[2] + "\n") self.textEdit.append("*****Blocked Paths*****\n") edgelist = [] vertlist = [] for vert in verts: vertlist.append(Vertex(vert[1])) edges = self.dbcon.get_edges() for edge in edges: id = edge[0] ename = edge[1] w = edge[2] sv = edge[3] tv = edge[4] b = edge[5] for n in vertlist: if sv == n.name: sn = n for nn in vertlist: if tv == nn.name: tn = nn # p = Edge(id,ename,w,sv,tv) edgelist.append(Edge(id, ename, w, sn, tn, b)) edgelist2 = set(edgelist) for edge in edgelist2: if edge.blocked == 1: self.textEdit.append(edge.edgename) else: self.textEdit.setText( """The Network connection is Offline at the Momment\n Please try again sometimes later""")
def calculate2(self): if self.status: from algorithms.Vertex import Vertex from algorithms.Edge import Edge from algorithms.Dijkstra import Dijkstra # db staff dbcon = DbCon() status = dbcon.getConnection() if status: dijkistra = Dijkstra() vertlist2 = [] verts = dbcon.get_vertices() for vert in verts: vertlist2.append(Vertex(vert[1])) edgelist = [] edges = dbcon.get_edges() for edge in edges: id = edge[0] ename = edge[1] w = edge[2] sv = edge[3] tv = edge[4] b = edge[5] for n in vertlist2: if sv == n.name: sn = n for nn in vertlist2: if tv == nn.name: tn = nn # p = Edge(id,ename,w,sv,tv) if b == 0: edgelist.append(Edge(id, ename, w, sn, tn, b)) for edges in edgelist: for sv in edges.startVertex: # print(sv) for n in vertlist2: if sv == n.name: sn = n sn.adjacenciesList.append(edges) # print("--------------") # for edges in edgelist: # for tv in edges.targetVertex: # # print(tv) # for nn in vertlist2: # if tv == nn.name: # tn = nn # tn.adjacenciesList.append(edges) # userinput1 = input("Enter startvertex: ").upper() # userinput2 = input("Enter targetvertex: ").upper() self.start_vertex = self.txt_from.text().upper() self.target_vertex = self.txt_to.text().upper() self.routes = "" self.bool1 = False self.bool2 = False if self.start_vertex != "" and self.target_vertex != "": for vert in vertlist2: if self.start_vertex == vert.name: dijkistra.calculateShrtestPath(vertlist2, vert) self.bool1 = True # else: # self.msg_warning.setText("Vertex {} does not exist on the graph".format(self.start_vertex)) # self.msg_warning.setStandardButtons(QMessageBox.Ok) # self.msg_warning.exec_() for vert in vertlist2: if self.target_vertex == vert.name: path = dijkistra.getShortestPathTo2(vert) self.bool2 = True path.reverse() if vert.minDistance != sys.maxsize: self.routes = "Traversing from {} to {}\n\tDistance ".format( self.start_vertex, self.target_vertex) + str( vert.minDistance) + "m\n\nPath is" for nodes in path: self.routes += "-->" + nodes self.lblpath.setText(self.routes) else: # self.lblpath.selectedText("") self.lblpath.setText( "There is no effective path from {} to {}". format(self.start_vertex, self.target_vertex)) self.msg_warning.setText( "There is no effective path from {} to {}". format(self.start_vertex, self.target_vertex)) self.msg_warning.setStandardButtons( QMessageBox.Ok) self.msg_warning.exec_() # else: # self.msg_warning.setText("Vertex {} does not exist on the graph".format(self.start_vertex)) # self.msg_warning.setStandardButtons(QMessageBox.Ok) # self.msg_warning.exec_() if self.bool1: pass else: self.msg_warning.setText( "Vertex {} does not exist on the graph".format( self.start_vertex)) self.msg_warning.setStandardButtons(QMessageBox.Ok) self.msg_warning.exec_() if self.bool2: pass else: self.msg_warning.setText( "Vertex {} does not exist on the graph".format( self.target_vertex)) self.msg_warning.setStandardButtons(QMessageBox.Ok) self.msg_warning.exec_() else: self.msg_warning.setText("Fill all the input values") self.msg_warning.setStandardButtons(QMessageBox.Ok) self.msg_warning.exec_() else: self.msg_warning.setText("No database Connection") self.msg_warning.setStandardButtons(QMessageBox.Ok) self.msg_warning.exec_()
from algorithms.Vertex import Vertex from algorithms.Edge import Edge from algorithms.Dijkstra import Dijkstra spd = Vertex("SPD") lbb = Vertex("LBB") med = Vertex("MED") mea = Vertex("MEA") lib = Vertex("LIB") mcu = Vertex("MCU") h1 = Vertex("H1") h2 = Vertex("H2") h3 = Vertex("H3") h4 = Vertex("H4") gate = Vertex('GATE') # edge1 = Edge(id=1,weight=1,startVertex=spd,targetVertex=lbb,edgename="edge1") # edge2 = Edge(id=2,weight=13,startVertex=lbb,targetVertex=med,edgename="edge2") # edge3 = Edge(id=3,weight=10.1,startVertex=spd,targetVertex=med, edgename="edge3") # edge4 = Edge(4,'edge4',4,'spd','lbb') edge1 = Edge(1, 'edge1', 12, spd, mea) #spd edge11 = Edge(11, 'edge11', 12, mea, spd) #mea edge2 = Edge(2, 'edge2', 200, spd, h4) #spd edge22 = Edge(22, 'edge22', 200, h4, spd) #h4 edge3 = Edge(3, 'edge3', 3, spd, lbb) #spd edge33 = Edge(33, 'edge33', 3, lbb, spd) #lbb edge4 = Edge(4, 'edge4', 20, spd, med) #spd edge44 = Edge(44, 'edge44', 20, med, spd) #med edge5 = Edge(5, 'edge5', 100, spd, mcu) #mcu edge55 = Edge(55, 'edge55', 100, mcu, spd) #mcu edge6 = Edge(6, 'edge6', 5, lbb, mea) #lbb
# print("Enter Start Vertex id: ") # svertex = int(input()) # print("Enter Target Vertex id: ") # svertex = int(input()) n1 = dbcon.get_vertex(1)[1] n2 = dbcon.get_vertex(2)[1] n3 = dbcon.get_vertex(3)[1] e1 = dbcon.get_edge(1) e2 = dbcon.get_edge(2) e3 = dbcon.get_edge(34) # nv1 = Vertex(n1) # nv2 = Vertex(n2) # nv3 = Vertex(n3) nv1 = Vertex('SPD') nv2 = Vertex('LBB') nv3 = Vertex('MCU') # path1 = Edge(e1[0], e1[1], e1[4], nv1,nv2) # path2 = Edge(e2[0], e2[1], e2[4], nv2,nv3) # path3 = Edge(e3[0], e3[1], e3[4], nv1,nv3) path1 = Edge(e1[0], e1[1], e1[4], nv1, nv2) path2 = Edge(e2[0], e2[1], e2[4], nv2, nv3) path3 = Edge(e3[0], e3[1], e3[4], nv1, nv3) nv1.adjacenciesList.append(path1) nv1.adjacenciesList.append(path3) nv2.adjacenciesList.append(path2) vertexList = {nv1, nv2, nv3}
dbcon = DbCon() status = dbcon.getConnection() if status: # print("Enter Start Vertex id: ") # svertex = int(input()) # print("Enter Target Vertex id: ") # svertex = int(input()) n1 = dbcon.get_vertex(1)[1] n2 = dbcon.get_vertex(2)[1] n3 = dbcon.get_vertex(3)[1] e1 = dbcon.get_edge(1) e2 = dbcon.get_edge(2) e3 = dbcon.get_edge(3) nv1 = Vertex(n1) # nv1 = Vertex(dbcon.get_vertex(svertex)[1]) nv2 = Vertex(n2) nv3 = Vertex(n3) path1 = Edge(e1[0], e1[1], e1[2], nv1, nv2) path2 = Edge(e2[0], e2[1], e2[2], nv2, nv3) path3 = Edge(e3[0], e3[1], e3[2], nv1, nv3) # path1 = Edge(e1[0], e1[1], e1[2], Vertex(1), Vertex(2)) # path2 = Edge(e2[0], e2[1], e2[2], Vertex(2), Vertex(3)) # path3 = Edge(e3[0], e3[1], e3[2], Vertex(1), Vertex(3)) nv1.adjacenciesList.append(path1) nv3.adjacenciesList.append(path3) nv2.adjacenciesList.append(path2)
print("Attempting database connection ........") dbcon = DbCon() status = dbcon.getConnection() if status: # print("Enter Start Vertex id: ") # svertex = int(input()) # print("Enter Target Vertex id: ") # svertex = int(input()) dijkistra = Dijkstra() vertlist2 = [] verts = dbcon.get_vertices() for vert in verts: vertlist2.append(Vertex(vert[1])) edgelist = [] edges = dbcon.get_edges() for edge in edges: # id = edge[0] ename = edge[0] w = edge[1] sv = edge[2] tv = edge[3] for n in vertlist2: if sv == n.name: sn = n for nn in vertlist2: if tv == nn.name: tn = nn # p = Edge(id,ename,w,sv,tv)