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
0163c08a
Commit
0163c08a
authored
Nov 15, 2022
by
张晓彤
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
仿真测试问题优化
parent
728a06ca
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
33 additions
and
32 deletions
+33
-32
dispatcher.py
core/dispatcher.py
+1
-0
dispatchInfo.py
data/dispatchInfo.py
+11
-5
para_config.py
data/para_config.py
+7
-14
dump.py
equipment/dump.py
+4
-1
truck.py
equipment/truck.py
+10
-12
No files found.
core/dispatcher.py
View file @
0163c08a
...
@@ -62,6 +62,7 @@ class Dispatcher:
...
@@ -62,6 +62,7 @@ class Dispatcher:
if
group_id
not
in
self
.
group_list
:
if
group_id
not
in
self
.
group_list
:
group
=
Group
(
group_id
,
self
.
truck
,
self
.
pre_sch
,
self
.
excavator
,
self
.
dump
,
self
.
topo
)
group
=
Group
(
group_id
,
self
.
truck
,
self
.
pre_sch
,
self
.
excavator
,
self
.
dump
,
self
.
topo
)
group
.
info_update
()
group
.
info_update
()
if
len
(
group
.
group_trucks
)
!=
0
:
self
.
group_list
[
group_id
]
=
group
self
.
group_list
[
group_id
]
=
group
def
group_info_update
(
self
):
def
group_info_update
(
self
):
...
...
data/dispatchInfo.py
View file @
0163c08a
...
@@ -370,11 +370,15 @@ class DispatchInfo:
...
@@ -370,11 +370,15 @@ class DispatchInfo:
for
dump_id
in
cls
.
group_dump_dict
[
item
]:
for
dump_id
in
cls
.
group_dump_dict
[
item
]:
unload_area_id
=
cls
.
dump_unload_area_dict
[
dump_id
]
unload_area_id
=
cls
.
dump_unload_area_dict
[
dump_id
]
load_area_id
=
cls
.
excavator_load_dict
[
excavator_id
]
load_area_id
=
cls
.
excavator_load_dict
[
excavator_id
]
distance
=
int
(
session_postgre
.
query
(
WalkTime
)
.
filter_by
(
distance
=
session_postgre
.
query
(
WalkTime
)
.
filter_by
(
unload_area_id
=
unload_area_id
,
unload_area_id
=
unload_area_id
,
load_area_id
=
load_area_id
)
.
first
()
.
to_load_distance
)
load_area_id
=
load_area_id
)
.
first
()
unload_load_distance
[
group_dump_count
][
group_excavator_count
]
=
distance
if
distance
is
not
None
:
logger
.
warning
(
f
'装载区 {load_area_id} 与 卸载区 {unload_area_id} 间路网不通'
)
unload_load_distance
[
group_dump_count
][
group_excavator_count
]
=
float
(
distance
.
to_load_distance
)
else
:
unload_load_distance
[
group_dump_count
][
group_excavator_count
]
=
1000000
if
excavator_id
not
in
group_excavator_uuid_to_index
:
if
excavator_id
not
in
group_excavator_uuid_to_index
:
group_excavator_uuid_to_index
[
excavator_id
]
=
group_excavator_count
group_excavator_uuid_to_index
[
excavator_id
]
=
group_excavator_count
...
@@ -419,8 +423,10 @@ class DispatchInfo:
...
@@ -419,8 +423,10 @@ class DispatchInfo:
load_unload_distance
=
np
.
zeros
((
len
(
load_areas
),
len
(
unload_areas
)))
load_unload_distance
=
np
.
zeros
((
len
(
load_areas
),
len
(
unload_areas
)))
for
i
in
range
(
len
(
load_areas
)):
for
i
in
range
(
len
(
load_areas
)):
for
j
in
range
(
len
(
unload_areas
)):
for
j
in
range
(
len
(
unload_areas
)):
distance
=
int
(
session_postgre
.
query
(
WalkTime
)
.
filter_by
(
load_area_id
=
load_areas
[
i
],
unload_area_id
=
unload_areas
[
j
])
.
first
()
.
to_unload_distance
)
distance
=
session_postgre
.
query
(
WalkTime
)
.
filter_by
(
load_area_id
=
load_areas
[
i
],
load_unload_distance
[
i
][
j
]
=
distance
unload_area_id
=
unload_areas
[
j
])
.
first
()
if
distance
is
not
None
:
load_unload_distance
[
i
][
j
]
=
float
(
distance
.
to_unload_distance
)
cls
.
unload_distance
[
item
]
=
load_unload_distance
cls
.
unload_distance
[
item
]
=
load_unload_distance
except
Exception
as
es
:
except
Exception
as
es
:
...
...
data/para_config.py
View file @
0163c08a
...
@@ -379,12 +379,9 @@ class WalkManage(DeviceMap):
...
@@ -379,12 +379,9 @@ class WalkManage(DeviceMap):
park_area
=
str
(
item
.
park_area_id
)
park_area
=
str
(
item
.
park_area_id
)
load_area_index
=
load_area_uuid_to_index_dict
[
load_area
]
load_area_index
=
load_area_uuid_to_index_dict
[
load_area
]
park_index
=
park_uuid_to_index_dict
[
park_area
]
park_index
=
park_uuid_to_index_dict
[
park_area
]
cls
.
distance_park_to_load_area
[
park_index
][
load_area_index
]
=
float
(
cls
.
distance_park_to_load_area
[
park_index
][
load_area_index
]
=
float
(
item
.
park_load_distance
)
item
.
park_load_distance
cls
.
walk_time_park_to_load_area
[
park_index
][
load_area_index
]
=
\
)
float
(
60
/
1000
*
item
.
park_load_distance
/
empty_speed
)
cls
.
walk_time_park_to_load_area
[
park_index
][
load_area_index
]
=
float
(
60
/
1000
*
item
.
park_load_distance
/
empty_speed
)
except
Exception
as
es
:
except
Exception
as
es
:
logger
.
error
(
"备停区路网信息异常"
)
logger
.
error
(
"备停区路网信息异常"
)
logger
.
error
(
es
)
logger
.
error
(
es
)
...
@@ -393,14 +390,10 @@ class WalkManage(DeviceMap):
...
@@ -393,14 +390,10 @@ class WalkManage(DeviceMap):
try
:
try
:
for
i
in
range
(
park_num
):
for
i
in
range
(
park_num
):
for
j
in
range
(
dynamic_excavator_num
):
for
j
in
range
(
dynamic_excavator_num
):
cls
.
distance_park_to_excavator
[
i
][
j
]
=
cls
.
distance_park_to_load_area
[
cls
.
distance_park_to_excavator
[
i
][
j
]
=
\
i
cls
.
distance_park_to_load_area
[
i
][
cls
.
excavator_index_to_load_area_index_dict
[
j
]]
][
cls
.
excavator_index_to_load_area_index_dict
[
j
]]
cls
.
walk_time_park_to_excavator
[
i
][
j
]
=
\
cls
.
walk_time_park_to_excavator
[
i
][
cls
.
walk_time_park_to_load_area
[
i
][
cls
.
excavator_index_to_load_area_index_dict
[
j
]]
j
]
=
cls
.
walk_time_park_to_load_area
[
i
][
cls
.
excavator_index_to_load_area_index_dict
[
j
]
]
except
Exception
as
es
:
except
Exception
as
es
:
logger
.
error
(
"备停区设备路网信息异常"
)
logger
.
error
(
"备停区设备路网信息异常"
)
logger
.
error
(
es
)
logger
.
error
(
es
)
...
...
equipment/dump.py
View file @
0163c08a
...
@@ -171,11 +171,14 @@ class DumpInfo(WalkManage):
...
@@ -171,11 +171,14 @@ class DumpInfo(WalkManage):
self
.
logger
.
error
(
es
)
self
.
logger
.
error
(
es
)
session_mysql
.
rollback
()
session_mysql
.
rollback
()
session_postgre
.
rollback
()
session_postgre
.
rollback
()
self
.
dump_strength
[
dump_index
]
=
unload_ability
# 卸载设备最大卸载能力,单位吨/小时
unload_ability
=
200
if
unload_ability
<
200
:
if
unload_ability
<
200
:
self
.
dump_strength
[
dump_index
]
=
200
raise
Exception
(
"卸载点卸载能力异常"
)
raise
Exception
(
"卸载点卸载能力异常"
)
else
:
else
:
self
.
dump_strength
[
dump_index
]
=
unload_ability
# 卸载设备最大卸载能力,单位吨/小时
else
:
self
.
dump_strength
=
np
.
full
(
self
.
dynamic_dump_num
,
5000
)
self
.
dump_strength
=
np
.
full
(
self
.
dynamic_dump_num
,
5000
)
except
Exception
as
es
:
except
Exception
as
es
:
...
...
equipment/truck.py
View file @
0163c08a
...
@@ -520,14 +520,14 @@ class TruckInfo(WalkManage):
...
@@ -520,14 +520,14 @@ class TruckInfo(WalkManage):
:return: truck_locate_dict
:return: truck_locate_dict
"""
"""
try
:
truck_uuid_to_name_dict
=
get_value
(
"truck_uuid_to_name_dict"
)
truck_name_to_uuid_dict
=
get_value
(
"truck_name_to_uuid_dict"
)
self
.
truck_locate_dict
=
{}
self
.
truck_locate_dict
=
{}
device_name_set
=
redis2
.
keys
()
for
truck_id
in
self
.
dynamic_truck_set
:
for
item
in
device_name_set
:
try
:
item
=
item
.
decode
(
encoding
=
'utf-8'
)
# item = item.decode(encoding='utf-8')
key_value_dict
=
redis2
.
hgetall
(
item
)
truck_name
=
truck_uuid_to_name_dict
[
truck_id
]
key_value_dict
=
redis2
.
hgetall
(
truck_name
)
device_type
=
key_value_dict
[
str_to_byte
(
'type'
)]
device_type
=
key_value_dict
[
str_to_byte
(
'type'
)]
is_online
=
key_value_dict
[
str_to_byte
(
'online'
)]
is_online
=
key_value_dict
[
str_to_byte
(
'online'
)]
key_set
=
key_value_dict
.
keys
()
key_set
=
key_value_dict
.
keys
()
...
@@ -537,18 +537,16 @@ class TruckInfo(WalkManage):
...
@@ -537,18 +537,16 @@ class TruckInfo(WalkManage):
and
(
str_to_byte
(
'laneId'
)
in
key_set
):
and
(
str_to_byte
(
'laneId'
)
in
key_set
):
truck_locate
=
key_value_dict
[
str_to_byte
(
'laneId'
)]
truck_locate
=
key_value_dict
[
str_to_byte
(
'laneId'
)]
if
eval
(
truck_locate
)
is
not
''
:
if
eval
(
truck_locate
)
is
not
''
:
self
.
truck_locate_dict
[
truck_name_to_uuid_dict
[
item
]]
=
eval
(
truck_locate
)
self
.
truck_locate_dict
[
truck_id
]
=
eval
(
truck_locate
)
except
Exception
as
es
:
except
Exception
as
es
:
logger
.
error
(
"车辆所在路段读取异常"
)
self
.
logger
.
error
(
es
)
logger
.
error
(
es
)
self
.
logger
.
error
(
f
'车辆 {truck_id} 位置信息丢失'
)
return
{}
################################################ long term update ################################################
################################################ long term update ################################################
# 更新矿卡实际容量
# 更新矿卡实际容量
def
update_truck_payload
(
self
):
def
update_truck_payload
(
self
):
self
.
payload
=
np
.
full
(
self
.
dynamic_truck_num
,
220
)
;
self
.
payload
=
np
.
full
(
self
.
dynamic_truck_num
,
220
)
# try:
# try:
# self.payload = np.zeros(self.dynamic_truck_num)
# self.payload = np.zeros(self.dynamic_truck_num)
# for truck_id in self.dynamic_truck_set:
# for truck_id in self.dynamic_truck_set:
...
...
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