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
signal
traffic-signal-platform
Commits
5df5dfcd
Commit
5df5dfcd
authored
Jun 28, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 下发相位优化
parent
ad3d5989
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
42 additions
and
18 deletions
+42
-18
ControlCommandController.java
...net/wanji/utc/dt/controller/ControlCommandController.java
+1
-1
DTControlCommandServiceImpl.java
.../service/controller/impl/DTControlCommandServiceImpl.java
+41
-17
No files found.
signal-utc-dt-service/src/main/java/net/wanji/utc/dt/controller/ControlCommandController.java
View file @
5df5dfcd
...
...
@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
@RequestMapping
(
"/controlCommand"
)
@RestController
@RequiredArgsConstructor
public
class
ControlCommandController
{
public
class
ControlCommandController
{
private
final
ControlCommandService
controlCommandService
;
...
...
signal-utc-dt-service/src/main/java/net/wanji/utc/dt/service/controller/impl/DTControlCommandServiceImpl.java
View file @
5df5dfcd
...
...
@@ -428,7 +428,7 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
setLights
();
setPhaseLights
();
setPhaseInfo
(
crossInfoPO
,
phaseList
);
return
null
;
return
JsonViewObject
.
newInstance
().
success
()
;
}
private
void
setPhaseLights
()
{
...
...
@@ -438,28 +438,52 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
private
void
setLights
()
{
}
/**
* 东土相位灯组固定,只修改相位绿灯,绿闪,红灯,黄灯,最大最小绿时间
* @param crossInfoPO
* @param phaseList
*/
private
void
setPhaseInfo
(
CrossInfoPO
crossInfoPO
,
List
<
PhaseTimingSendVO
.
Phase
>
phaseList
)
{
String
matchStr
=
"0402%s%s"
;
StringBuffer
sb
=
new
StringBuffer
();
for
(
PhaseTimingSendVO
.
Phase
phase
:
phaseList
)
{
// 绿灯时间 = 阶段时间 - 黄灯 - 红灯 22 - 2 - 3
Integer
phaseNo
=
phase
.
getPhaseNo
();
Integer
yellow
=
phase
.
getYellow
();
Integer
allRed
=
phase
.
getAllred
();
String
greenFlash
=
phase
.
getGreenFlash
();
String
maxGreen
=
phase
.
getMaxGreen
();
String
minGreen
=
phase
.
getMinGreen
();
List
<
PhaseTimingSendVO
.
Phase
.
Lane
>
lanes
=
phase
.
getLanes
();
for
(
int
j
=
1
;
j
<=
16
;
j
++)
{
Integer
yellow
=
0
;
Integer
allRed
=
0
;
Integer
greenFlash
=
0
;
Integer
maxGreen
=
0
;
Integer
minGreen
=
0
;
String
phaseNoHex
=
String
.
format
(
"%02x"
,
j
);
// 下发相位数据
for
(
PhaseTimingSendVO
.
Phase
phase
:
phaseList
)
{
// 绿灯时间 = 阶段时间 - 黄灯 - 红灯 22 - 2 - 3
Integer
phaseNo
=
phase
.
getPhaseNo
();
if
(
j
==
phaseNo
)
{
yellow
=
phase
.
getYellow
();
allRed
=
phase
.
getAllred
();
greenFlash
=
Integer
.
valueOf
(
phase
.
getGreenFlash
());
maxGreen
=
Integer
.
valueOf
(
phase
.
getMaxGreen
());
minGreen
=
Integer
.
valueOf
(
phase
.
getMinGreen
());
}
}
// 原东土相位数据
List
<
PhaseInfoPojo
>
phaseInfoList
=
SignalDataCache
.
phaseInfoCache
.
get
(
crossInfoPO
.
getId
());
PhaseInfoPojo
phaseInfoPojo
=
null
;
for
(
PhaseInfoPojo
element
:
phaseInfoList
)
{
if
(
Objects
.
equals
(
phaseNo
,
element
.
getPhaseId
()))
{
if
(
Objects
.
equals
(
j
,
element
.
getPhaseId
()))
{
phaseInfoPojo
=
element
;
}
}
// 如果时间为0, 使用东土原数据
yellow
=
yellow
==
0
?
phaseInfoPojo
.
getYellowTime
()
:
yellow
;
allRed
=
allRed
==
0
?
phaseInfoPojo
.
getRedTime
()
:
allRed
;
greenFlash
=
greenFlash
==
0
?
phaseInfoPojo
.
getGreenFlashTime
()
:
greenFlash
;
maxGreen
=
maxGreen
==
0
?
phaseInfoPojo
.
getMaxGreenTime
()
:
maxGreen
;
minGreen
=
minGreen
==
0
?
phaseInfoPojo
.
getMinGreenTime
()
:
minGreen
;
for
(
int
i
=
2
;
i
<=
31
;
i
++)
{
sb
.
append
(
String
.
format
(
matchStr
,
String
.
format
(
"%02x"
,
i
),
String
.
format
(
"%02x"
,
phaseNo
)));
if
(
i
<
11
||
(
i
>
26
&&
i
<
30
))
{
sb
.
append
(
String
.
format
(
matchStr
,
String
.
format
(
"%02x"
,
i
),
phaseNoHex
));
}
if
(
i
==
2
)
{
String
phaseHex
=
StringUtils
.
leftPad
(
CommonUtils
.
getBinary
(
phaseNo
),
16
,
"0"
);
String
phaseHex
=
StringUtils
.
leftPad
(
CommonUtils
.
getBinary
(
j
),
16
,
"0"
);
sb
.
append
(
phaseHex
).
append
(
String
.
format
(
"%02x"
,
i
)).
append
(
"05"
);
}
if
(
i
==
3
)
{
...
...
@@ -490,7 +514,7 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
}
if
(
i
==
11
)
{
String
str
=
"04020B%s000B0504020C%s000C0504020D%s000D0504020E%s000E0504020F%s310F05040210%s0A1005040211%s001105040212%s001205040213%s001305040214%s001405040215%s311505040216%s0A1605040217%s001705040218%s001805040219%s00190504021A%s001A06"
;
sb
.
append
(
String
.
format
(
str
,
String
.
format
(
"%02x"
,
phaseNo
)
));
sb
.
append
(
str
.
replaceAll
(
"%s"
,
phaseNoHex
));
}
if
(
i
>
11
&&
i
<=
26
)
{
continue
;
...
...
@@ -504,16 +528,15 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
sb
.
append
(
maxGreenHex
).
append
(
String
.
format
(
"%02x"
,
i
)).
append
(
"06"
);
}
if
(
i
==
30
)
{
sb
.
append
(
String
.
format
(
"04021E%s00031E0C"
,
String
.
format
(
"%02x"
,
phaseNo
)
));
// 延长绿时间
sb
.
append
(
String
.
format
(
"04021E%s00031E0C"
,
phaseNoHex
));
// 延长绿时间
}
if
(
i
==
31
)
{
sb
.
append
(
String
.
format
(
"04021F%s00000000000000001F0C"
,
String
.
format
(
"%02x"
,
phaseNo
)
));
sb
.
append
(
String
.
format
(
"04021F%s00000000000000001F0C"
,
phaseNoHex
));
}
}
}
String
bodyValueLength
=
String
.
format
(
"%02x"
,
phaseList
.
size
()
*
31
);
// 调度数量 * 属性数量
String
message
=
String
.
format
(
Constants
.
COMMAND_SET_COMMON
,
Constants
.
COMMAND_SET
,
bodyValueLength
,
sb
.
substring
(
0
,
sb
.
length
()
-
4
));
String
message
=
String
.
format
(
Constants
.
COMMAND_SET_COMMON
,
Constants
.
COMMAND_SET
,
"ff"
,
sb
.
substring
(
0
,
sb
.
length
()
-
4
));
String
phaseSign
=
StringUtils
.
join
(
Constants
.
COMMAND_SCHME_CONFIG
,
Constants
.
COMMAND_SET_REPLY
);
String
phaseMessage
=
Constants
.
buildMessage
(
message
);
MessageResultPojo
resultPojo
=
NettyClient
.
sendMessage
(
crossInfoPO
.
getIp
(),
crossInfoPO
.
getPort
(),
phaseMessage
,
phaseSign
,
300
);
...
...
@@ -526,4 +549,5 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
public
JsonViewObject
phaseDiffSend
()
{
return
null
;
}
}
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