Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
integrated-scheduling-v3
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张晓彤
integrated-scheduling-v3
Commits
b24f8dab
Commit
b24f8dab
authored
Feb 23, 2025
by
Allvey
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add comment to topo generate module
parent
1f92d3c0
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
2 deletions
+27
-2
topo_graph.py
graph/topo_graph.py
+26
-1
realtime_dispatch.py
realtime_dispatch.py
+1
-1
No files found.
graph/topo_graph.py
View file @
b24f8dab
...
@@ -7,6 +7,7 @@ import time
...
@@ -7,6 +7,7 @@ import time
import
matplotlib.pyplot
as
plt
import
matplotlib.pyplot
as
plt
# from path_plan.path_plannner import *
# from path_plan.path_plannner import *
import
networkx
as
nx
import
networkx
as
nx
from
settings
import
*
class
Topo
():
class
Topo
():
...
@@ -145,6 +146,9 @@ class Topo():
...
@@ -145,6 +146,9 @@ class Topo():
self
.
unload_G
.
add_node
(
Exitnode_for_digging
,
name
=
'digging'
,
type
=
digging_name
)
self
.
unload_G
.
add_node
(
Exitnode_for_digging
,
name
=
'digging'
,
type
=
digging_name
)
self
.
unload_G
.
add_node
(
Entrancenode_for_dump
,
name
=
'group_dumps'
,
type
=
dump_name
)
self
.
unload_G
.
add_node
(
Entrancenode_for_dump
,
name
=
'group_dumps'
,
type
=
dump_name
)
logger
.
info
(
f
'unload route start digging name:
%
s'
%
digging_name
)
logger
.
info
(
f
'unload route end dump name:
%
s'
%
dump_name
)
# path_node_for_trip.append(Exitnode_for_digging) # add start node for trip
# path_node_for_trip.append(Exitnode_for_digging) # add start node for trip
# find the exitnodeid for diggingarea, find the entrancenodeid for dumparea
# find the exitnodeid for diggingarea, find the entrancenodeid for dumparea
...
@@ -154,12 +158,15 @@ class Topo():
...
@@ -154,12 +158,15 @@ class Topo():
if
Entrancenode_for_dump
not
in
self
.
unload_G_all_nodes
:
if
Entrancenode_for_dump
not
in
self
.
unload_G_all_nodes
:
self
.
unload_G_all_nodes
.
append
(
Entrancenode_for_dump
)
self
.
unload_G_all_nodes
.
append
(
Entrancenode_for_dump
)
self
.
unload_G_dump_nodes
.
append
(
Entrancenode_for_dump
)
self
.
unload_G_dump_nodes
.
append
(
Entrancenode_for_dump
)
try
:
try
:
unload_saved_lane
=
[]
unload_saved_lane
=
[]
for
lane_id
in
item
[
1
]:
# for each lane in a to_unload route
for
lane_id
in
item
[
1
]:
# for each lane in a to_unload route
lane_startpoint
=
str
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
Id
=
lane_id
)
.
first
()
.
StartNodeId
)
lane_startpoint
=
str
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
Id
=
lane_id
)
.
first
()
.
StartNodeId
)
lane_endpoint
=
str
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
Id
=
lane_id
)
.
first
()
.
EndNodeId
)
lane_endpoint
=
str
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
Id
=
lane_id
)
.
first
()
.
EndNodeId
)
logger
.
info
(
f
'unload route lane id:
%
s'
%
lane_id
)
# add [start_point, end_point, length, lane_id] to unload_saved_lane
# add [start_point, end_point, length, lane_id] to unload_saved_lane
unload_saved_lane
.
append
([
str
(
lane_startpoint
),
str
(
lane_endpoint
),
unload_saved_lane
.
append
([
str
(
lane_startpoint
),
str
(
lane_endpoint
),
float
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
Id
=
lane_id
)
.
first
()
.
Length
),
float
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
Id
=
lane_id
)
.
first
()
.
Length
),
...
@@ -184,6 +191,10 @@ class Topo():
...
@@ -184,6 +191,10 @@ class Topo():
locked_distance
=
sum
(
value
[
1
]
for
value
in
lanes
.
values
()),
lane
=
lanes
)
locked_distance
=
sum
(
value
[
1
]
for
value
in
lanes
.
values
()),
lane
=
lanes
)
self
.
unload_G
.
add_node
(
unload_saved_lane
[
0
][
0
])
self
.
unload_G
.
add_node
(
unload_saved_lane
[
0
][
0
])
self
.
unload_G
.
add_node
(
unload_saved_lane
[
-
1
][
1
])
self
.
unload_G
.
add_node
(
unload_saved_lane
[
-
1
][
1
])
logger
.
info
(
f
'unload route cross node:
%
s'
%
unload_saved_lane
[
0
][
0
])
logger
.
info
(
f
'unload route cross node:
%
s'
%
unload_saved_lane
[
-
1
][
1
])
# self.unload_G_land_edges_map[lanes] = [unload_saved_lane[0][0], unload_saved_lane[-1][1]]
# self.unload_G_land_edges_map[lanes] = [unload_saved_lane[0][0], unload_saved_lane[-1][1]]
# if [unload_saved_lane[0][0], unload_saved_lane[-1][1]] not in self.unload_G_edges:
# if [unload_saved_lane[0][0], unload_saved_lane[-1][1]] not in self.unload_G_edges:
# self.unload_G_edges.append([unload_saved_lane[0][0], unload_saved_lane[-1][1]])
# self.unload_G_edges.append([unload_saved_lane[0][0], unload_saved_lane[-1][1]])
...
@@ -208,6 +219,9 @@ class Topo():
...
@@ -208,6 +219,9 @@ class Topo():
Exitnode_for_dump
=
str
(
session_postgre
.
query
(
DumpArea
)
.
filter_by
(
Id
=
item
[
0
][
1
])
.
first
()
.
ExitNodeId
)
Exitnode_for_dump
=
str
(
session_postgre
.
query
(
DumpArea
)
.
filter_by
(
Id
=
item
[
0
][
1
])
.
first
()
.
ExitNodeId
)
dump_name
=
str
(
session_postgre
.
query
(
DumpArea
)
.
filter_by
(
Id
=
item
[
0
][
1
])
.
first
()
.
Name
)
dump_name
=
str
(
session_postgre
.
query
(
DumpArea
)
.
filter_by
(
Id
=
item
[
0
][
1
])
.
first
()
.
Name
)
logger
.
info
(
f
'load route start dump name:
%
s'
%
dump_name
)
logger
.
info
(
f
'load route end digging name:
%
s'
%
digging_name
)
# find the exit node_id for digging_area, entrance node_id for dumparea,
# find the exit node_id for digging_area, entrance node_id for dumparea,
if
Exitnode_for_dump
not
in
self
.
load_G_all_nodes
:
if
Exitnode_for_dump
not
in
self
.
load_G_all_nodes
:
self
.
load_G_all_nodes
.
append
(
Exitnode_for_dump
)
self
.
load_G_all_nodes
.
append
(
Exitnode_for_dump
)
...
@@ -233,6 +247,8 @@ class Topo():
...
@@ -233,6 +247,8 @@ class Topo():
# son_lane_num = sum(1 for truck_id in session_postgre.query(Lane).filter_by(StartNodeId = lane_endpoint).all())
# son_lane_num = sum(1 for truck_id in session_postgre.query(Lane).filter_by(StartNodeId = lane_endpoint).all())
son_lane_num
=
len
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
StartNodeId
=
lane_endpoint
)
.
all
())
son_lane_num
=
len
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
StartNodeId
=
lane_endpoint
)
.
all
())
logger
.
info
(
f
'load route lane id:
%
s'
%
lane_id
)
nodes
=
list
(
self
.
load_G
.
nodes
)
nodes
=
list
(
self
.
load_G
.
nodes
)
# 可以添加的节点:分叉口或终点
# 可以添加的节点:分叉口或终点
if
son_lane_num
>
1
or
lane_endpoint
in
self
.
load_G_digging_nodes
or
lane_endpoint
in
nodes
:
if
son_lane_num
>
1
or
lane_endpoint
in
self
.
load_G_digging_nodes
or
lane_endpoint
in
nodes
:
...
@@ -250,6 +266,10 @@ class Topo():
...
@@ -250,6 +266,10 @@ class Topo():
locked_distance
=
sum
(
value
[
-
1
]
for
value
in
lanes
.
values
()),
lane
=
lanes
)
locked_distance
=
sum
(
value
[
-
1
]
for
value
in
lanes
.
values
()),
lane
=
lanes
)
self
.
load_G
.
add_node
(
load_saved_lane
[
0
][
0
])
self
.
load_G
.
add_node
(
load_saved_lane
[
0
][
0
])
self
.
load_G
.
add_node
(
load_saved_lane
[
-
1
][
1
])
self
.
load_G
.
add_node
(
load_saved_lane
[
-
1
][
1
])
logger
.
info
(
f
'load route cross node:
%
s'
%
load_saved_lane
[
0
][
0
])
logger
.
info
(
f
'load route cross node:
%
s'
%
load_saved_lane
[
-
1
][
1
])
# self.load_G_land_edges_map[lanes] = [load_saved_lane[0][0], load_saved_lane[-1][1]]
# self.load_G_land_edges_map[lanes] = [load_saved_lane[0][0], load_saved_lane[-1][1]]
# if [load_saved_lane[0][0], load_saved_lane[-1][1]] not in self.load_G_edges:
# if [load_saved_lane[0][0], load_saved_lane[-1][1]] not in self.load_G_edges:
# self.load_G_edges.append([load_saved_lane[0][0], load_saved_lane[-1][1]])
# self.load_G_edges.append([load_saved_lane[0][0], load_saved_lane[-1][1]])
...
@@ -268,7 +288,6 @@ class Topo():
...
@@ -268,7 +288,6 @@ class Topo():
# park_to_load_G
# park_to_load_G
for
k
in
park_trip
:
for
k
in
park_trip
:
try
:
try
:
load_saved_lane
=
[]
load_saved_lane
=
[]
...
@@ -281,6 +300,8 @@ class Topo():
...
@@ -281,6 +300,8 @@ class Topo():
# son_lane_num = sum(1 for truck_id in session_postgre.query(Lane).filter_by(StartNodeId = load_i_endpoint).all())
# son_lane_num = sum(1 for truck_id in session_postgre.query(Lane).filter_by(StartNodeId = load_i_endpoint).all())
son_lane_num
=
len
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
StartNodeId
=
load_i_endpoint
)
.
all
())
son_lane_num
=
len
(
session_postgre
.
query
(
Lane
)
.
filter_by
(
StartNodeId
=
load_i_endpoint
)
.
all
())
logger
.
info
(
f
'park route lane id:
%
s'
%
i
)
nodes
=
list
(
self
.
load_G
.
nodes
)
nodes
=
list
(
self
.
load_G
.
nodes
)
# 可以添加的节点:分叉口或终点
# 可以添加的节点:分叉口或终点
if
son_lane_num
>
1
or
load_i_endpoint
in
self
.
load_G_digging_nodes
or
load_i_endpoint
in
nodes
:
if
son_lane_num
>
1
or
load_i_endpoint
in
self
.
load_G_digging_nodes
or
load_i_endpoint
in
nodes
:
...
@@ -298,6 +319,10 @@ class Topo():
...
@@ -298,6 +319,10 @@ class Topo():
locked_distance
=
sum
(
value
[
-
1
]
for
value
in
lanes
.
values
()),
lane
=
lanes
)
locked_distance
=
sum
(
value
[
-
1
]
for
value
in
lanes
.
values
()),
lane
=
lanes
)
self
.
load_G
.
add_node
(
load_saved_lane
[
0
][
0
])
self
.
load_G
.
add_node
(
load_saved_lane
[
0
][
0
])
self
.
load_G
.
add_node
(
load_saved_lane
[
-
1
][
1
])
self
.
load_G
.
add_node
(
load_saved_lane
[
-
1
][
1
])
logger
.
info
(
f
'park route cross node:
%
s'
%
load_saved_lane
[
0
][
0
])
logger
.
info
(
f
'park route cross node:
%
s'
%
load_saved_lane
[
-
1
][
1
])
# self.load_G_land_edges_map[lanes] = [load_saved_lane[0][0], load_saved_lane[-1][1]]
# self.load_G_land_edges_map[lanes] = [load_saved_lane[0][0], load_saved_lane[-1][1]]
# if [load_saved_lane[0][0], load_saved_lane[-1][1]] not in self.load_G_edges:
# if [load_saved_lane[0][0], load_saved_lane[-1][1]] not in self.load_G_edges:
# self.load_G_edges.append([load_saved_lane[0][0], load_saved_lane[-1][1]])
# self.load_G_edges.append([load_saved_lane[0][0], load_saved_lane[-1][1]])
...
...
realtime_dispatch.py
View file @
b24f8dab
...
@@ -166,4 +166,4 @@ if __name__ == "__main__":
...
@@ -166,4 +166,4 @@ if __name__ == "__main__":
logger
.
info
(
" "
)
logger
.
info
(
" "
)
logger
.
info
(
"调度系统启动"
)
logger
.
info
(
"调度系统启动"
)
main
(
2
0
,
dispatcher
)
main
(
3
0
,
dispatcher
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment