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
b8331bb4
Commit
b8331bb4
authored
Jun 21, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 下发相位
parent
7793515c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
83 additions
and
16 deletions
+83
-16
DTControlCommandServiceImpl.java
.../service/controller/impl/DTControlCommandServiceImpl.java
+61
-15
DTStaticInfoServiceImpl.java
.../com/service/controller/impl/DTStaticInfoServiceImpl.java
+2
-1
CommonUtils.java
...service/src/main/java/net/wanji/com/util/CommonUtils.java
+20
-0
No files found.
signal-utc-dt-service/src/main/java/net/wanji/com/service/controller/impl/DTControlCommandServiceImpl.java
View file @
b8331bb4
...
...
@@ -43,26 +43,36 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
public
JsonViewObject
schemeSend
(
SchemeSendVO
schemeSendVO
)
throws
Exception
{
String
crossId
=
schemeSendVO
.
getCrossCode
();
CrossInfoPO
crossInfoPO
=
crossInfoCache
.
getCrossInfoCache
().
get
(
crossId
);
List
<
SchemeSendVO
.
Pattern
>
patternList
=
schemeSendVO
.
getPatternList
();
StringBuilder
sb
=
new
StringBuilder
();
for
(
SchemeSendVO
.
Pattern
pattern
:
patternList
)
{
sb
.
append
(
buidSchemeHex
(
pattern
));
}
String
bodyValueLeght
=
String
.
format
(
"%02x"
,
patternList
.
size
()
*
6
);
// 调度数量 * 属性数量
String
message
=
String
.
format
(
Constants
.
COMMAND_SET_COMMON
,
Constants
.
COMMAND_SET
,
bodyValueLeght
,
sb
.
toString
());
String
schemeSign
=
StringUtils
.
join
(
Constants
.
COMMAND_SCHME_CONFIG
,
Constants
.
COMMAND_SET_REPLY
);
String
schemeMessageHex
=
Constants
.
buildMessage
(
message
);
MessageResultPojo
resultPojo
=
NettyClient
.
sendMessage
(
crossInfoPO
.
getIp
(),
crossInfoPO
.
getPort
(),
schemeMessageHex
,
schemeSign
,
300
);
if
(
Objects
.
nonNull
(
resultPojo
)
&&
StringUtils
.
isNotBlank
(
resultPojo
.
getHexMessageResult
()))
{
return
JsonViewObject
.
newInstance
().
success
(
"下发方案成功"
);
List
<
SchemeSendVO
.
Pattern
>
schemeVOList
=
schemeSendVO
.
getPatternList
();
setSchemePhaseStageInfo
(
crossInfoPO
,
schemeVOList
);
return
JsonViewObject
.
newInstance
().
success
(
"下发成功异常"
);
}
private
void
setSchemePhaseStageInfo
(
CrossInfoPO
crossInfoPO
,
List
<
SchemeSendVO
.
Pattern
>
schemeVOList
)
{
setPhaseStageInfo
(
crossInfoPO
,
schemeVOList
);
setSchemeInfo
(
crossInfoPO
,
schemeVOList
);
}
private
void
setSchemeInfo
(
CrossInfoPO
crossInfoPO
,
List
<
SchemeSendVO
.
Pattern
>
schemeVOList
)
{
for
(
SchemeSendVO
.
Pattern
schemeVO
:
schemeVOList
)
{
String
schemeNo
=
schemeVO
.
getPatternNo
();
String
cycle
=
schemeVO
.
getCycle
();
String
offset
=
schemeVO
.
getOffset
();
List
<
SchemeSendVO
.
Pattern
.
Ring
>
rings
=
schemeVO
.
getRings
();
for
(
SchemeSendVO
.
Pattern
.
Ring
ring
:
rings
)
{
String
ringNo
=
ring
.
getRingNo
();
List
<
SchemeSendVO
.
Pattern
.
Ring
.
Phase
>
phaseList
=
ring
.
getPhaseList
();
}
}
return
JsonViewObject
.
newInstance
().
success
(
"下发方案异常"
);
}
private
String
buidSchemeHex
(
SchemeSendVO
.
Pattern
pattern
)
{
return
null
;
private
void
setPhaseStageInfo
(
CrossInfoPO
crossInfoPO
,
List
<
SchemeSendVO
.
Pattern
>
schemeVOList
)
{
}
@Override
public
JsonViewObject
planSend
(
PlanSendVO
planSendVO
)
throws
Exception
{
String
crossId
=
planSendVO
.
getCrossCode
();
...
...
@@ -72,6 +82,7 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
for
(
PlanSendVO
.
Plan
plan
:
planList
)
{
sb
.
append
(
buidDailyPlanHex
(
plan
));
}
// 只下发有效计划返回报错
if
(
planList
.
size
()
<
8
)
{
for
(
int
i
=
planList
.
size
()
+
1
;
i
<=
8
-
planList
.
size
();
i
++)
{
PlanSendVO
.
Plan
plan
=
new
PlanSendVO
.
Plan
();
...
...
@@ -282,9 +293,44 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
@Override
public
JsonViewObject
phaseTimingSend
(
PhaseTimingSendVO
phaseTimingSendVO
)
throws
Exception
{
String
crossId
=
phaseTimingSendVO
.
getCrossCode
();
CrossInfoPO
crossInfoPO
=
crossInfoCache
.
getCrossInfoCache
().
get
(
crossId
);
List
<
PhaseTimingSendVO
.
Phase
>
phaseList
=
phaseTimingSendVO
.
getPhaseList
();
setLights
();
setPhaseLights
();
setPhaseInfo
(
crossInfoPO
,
phaseList
);
return
null
;
}
private
void
setPhaseLights
()
{
}
private
void
setLights
()
{
}
private
void
setPhaseInfo
(
CrossInfoPO
crossInfoPO
,
List
<
PhaseTimingSendVO
.
Phase
>
phaseList
)
{
for
(
PhaseTimingSendVO
.
Phase
phase
:
phaseList
)
{
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
();
String
matchStr
=
"0402%s%s"
;
StringBuffer
sb
=
new
StringBuffer
();
for
(
int
i
=
2
;
i
<=
31
;
i
++)
{
sb
.
append
(
String
.
format
(
matchStr
,
String
.
format
(
"%02x"
,
i
),
String
.
format
(
"%02x"
,
phaseNo
)));
if
(
i
==
2
)
{
sb
.
append
(
""
);
}
}
}
}
@Override
public
JsonViewObject
phaseDiffSend
()
{
return
null
;
...
...
signal-utc-dt-service/src/main/java/net/wanji/com/service/controller/impl/DTStaticInfoServiceImpl.java
View file @
b8331bb4
...
...
@@ -136,6 +136,7 @@ public class DTStaticInfoServiceImpl implements StaticInfoService {
for
(
PhaseStageInfoPojo
phaseStageInfoPojo
:
phaseStageInfoPojos
)
{
if
(
Objects
.
equals
(
phaseStageId
,
phaseStageInfoPojo
.
getPhaseStageId
()))
{
List
<
Integer
>
phaseList
=
phaseStageInfoPojo
.
getPhaseList
();
int
ringNo
=
0
;
for
(
Integer
phaseId
:
phaseList
)
{
CrossPhasePO
crossPhasePO
=
new
CrossPhasePO
();
crossPhasePO
.
setCrossId
(
crossId
);
...
...
@@ -144,7 +145,7 @@ public class DTStaticInfoServiceImpl implements StaticInfoService {
++
sort
;
crossPhasePO
.
setSort
(
sort
);
crossPhasePO
.
setPlanId
(
schemeInfoPojo
.
getSchemeId
());
crossPhasePO
.
setRingNo
(
1
);
crossPhasePO
.
setRingNo
(
++
ringNo
);
crossPhasePO
.
setGroupNo
(
1
);
crossPhasePO
.
setPhaseTime
(
phaseStageTime
);
crossPhasePO
.
setControlMode
(
1
);
...
...
signal-utc-dt-service/src/main/java/net/wanji/com/util/CommonUtils.java
View file @
b8331bb4
package
net
.
wanji
.
com
.
util
;
import
cn.hutool.core.util.HexUtil
;
import
freemarker.template.utility.StringUtil
;
/**
* @author duanruiming
...
...
@@ -34,4 +35,23 @@ public class CommonUtils {
String
minute
=
String
.
format
(
"%02x"
,
Integer
.
valueOf
(
split
[
1
]));
return
sb
.
append
(
hour
).
append
(
minute
).
toString
();
}
public
static
String
getBinary
(
Integer
param
)
{
int
[]
array
=
new
int
[
64
];
array
[
param
-
1
]
=
1
;
StringBuffer
resultSb
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
array
.
length
/
8
;
i
++)
{
StringBuffer
sb
=
new
StringBuffer
();
for
(
int
j
=
0
;
j
<
8
;
j
++)
{
sb
.
append
(
array
[
i
*
8
+
j
]);
}
String
hex
=
String
.
format
(
"%02x"
,
Integer
.
parseInt
(
sb
.
reverse
().
toString
(),
2
));
resultSb
.
insert
(
0
,
hex
);
}
return
StringUtil
.
leftPad
(
resultSb
.
toString
(),
16
,
"0"
);
}
public
static
void
main
(
String
[]
args
)
{
System
.
err
.
println
(
getBinary
(
8
));
}
}
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