Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
traffic-signal-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
jinan
traffic-signal-platform
Commits
828e5f1c
Commit
828e5f1c
authored
Apr 24, 2025
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 绿波图红绿灯优化
parent
7450b246
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
9 deletions
+26
-9
HisenseGreenChartTask.java
...c/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
+26
-9
No files found.
signal-optimize-data-compute/src/main/java/net/wanji/opt/task/HisenseGreenChartTask.java
View file @
828e5f1c
...
...
@@ -105,7 +105,12 @@ public class HisenseGreenChartTask {
Integer
indexDir
=
indexDTO
.
getInDir
();
Integer
totalDistance
=
indexDTO
.
getTotalDistance
();
String
greenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexDir
));
String
greenKey
=
null
;
if
(
Objects
.
equals
(
3
,
greenId
))
{
greenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexDir
+
2
));
}
else
{
greenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexDir
));
}
GreenwaveRealtimePO
greenwaveRealtimePO
=
realTimeMap
.
get
(
greenKey
);
Double
speed
=
Objects
.
isNull
(
greenwaveRealtimePO
.
getSpeed
())
?
0
:
greenwaveRealtimePO
.
getSpeed
();
// km/h速度换成m/s
...
...
@@ -122,7 +127,13 @@ public class HisenseGreenChartTask {
List
<
GreenCrossDirDTO
>
backValue
=
value
.
stream
().
sorted
(
Comparator
.
comparingInt
(
GreenCrossDirDTO:
:
getSort
).
reversed
()).
collect
(
Collectors
.
toList
());
List
<
Double
>
backOffsets
=
new
ArrayList
<>();
List
<
Double
>
backDistances
=
new
ArrayList
<>();
String
backGreenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexOutDir
));
String
backGreenKey
=
null
;
if
(
Objects
.
equals
(
3
,
greenId
))
{
backGreenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexOutDir
+
2
));
}
else
{
backGreenKey
=
CommonUtils
.
getStrJoin
(
String
.
valueOf
(
greenId
),
String
.
valueOf
(
indexOutDir
));
}
GreenwaveRealtimePO
backGreenwaveRealtimePO
=
realTimeMap
.
get
(
backGreenKey
);
// km/h速度换成m/s
Double
backSpeed
=
Objects
.
isNull
(
backGreenwaveRealtimePO
.
getSpeed
())
?
0
:
backGreenwaveRealtimePO
.
getSpeed
();
...
...
@@ -353,14 +364,19 @@ public class HisenseGreenChartTask {
crossRedTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenEndTime
,
cycleLen
+
offset
));
}
else
if
(
i
>
0
&&
i
<
cycleSum
)
{
crossRedTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenEndTime
,
cycleIndex
*
(
i
+
1
)
+
offset
));
// 绿灯时间
crossGreenTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenStartTime
,
cycleIndex
+
offset
+
greenEndTime
));
}
else
if
(
i
==
cycleSum
)
{
// a最后一个周期补充相位差
crossRedTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenEndTime
,
cycleIndex
+
offset
+
endCycleExt
));
// 绿灯时间
crossGreenTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenStartTime
,
cycleIndex
+
offset
+
greenEndTime
));
if
(
greenStartTime
>
endCycleExt
)
{
//crossGreenTimes.add(Arrays.asList(cycleIndex + offset + greenStartTime, cycleIndex + offset + endCycleExt));
}
else
{
crossGreenTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenStartTime
,
cycleIndex
+
offset
+
endCycleExt
));
}
}
// 绿灯时间
crossGreenTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenStartTime
,
cycleIndex
+
offset
+
greenEndTime
));
}
else
{
// 红灯结束时间 < 相位差, 相位差包含绿灯,endCycleExt都是红灯
// 相位差中绿灯时间
if
(
i
==
0
)
{
...
...
@@ -374,14 +390,15 @@ public class HisenseGreenChartTask {
}
else
if
(
i
>
0
&&
i
<
cycleSum
)
{
crossRedTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
,
cycleIndex
+
offset
+
greenStartTime
));
crossRedTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenEndTime
,
cycleIndex
*
(
i
+
1
)
+
offset
));
// 绿灯时间
crossGreenTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenStartTime
,
cycleIndex
+
offset
+
greenEndTime
));
}
// 最后一个周期补充相位差
if
(
i
==
cycleSum
)
{
crossRedTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
,
cycleIndex
+
offset
+
greenStartTime
));
crossRedTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenEndTime
,
cycleIndex
+
offset
+
endCycleExt
));
crossRedTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
,
cycleIndex
+
offset
+
endCycleExt
));
//
crossRedTimes.add(Arrays.asList(cycleIndex + offset + greenEndTime, cycleIndex + offset + endCycleExt));
}
// 绿灯时间
crossGreenTimes
.
add
(
Arrays
.
asList
(
cycleIndex
+
offset
+
greenStartTime
,
cycleIndex
+
offset
+
greenEndTime
));
}
}
crossRedTimesMap
.
put
(
crossId
,
crossRedTimes
);
...
...
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