Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
Z
zhmes-agecal
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
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
耿迪迪
zhmes-agecal
Commits
e4f93e45
Commit
e4f93e45
authored
Jan 08, 2026
by
wanghao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1 当机械臂返回 PPP OK 完成 -1,0,0,0的时候检测不到 完成问题调整
parent
d926ca7e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
4 deletions
+21
-4
RobotArmMessageParser.java
...ain/java/com/zehong/system/udp/RobotArmMessageParser.java
+21
-4
No files found.
zhmes-agecal-system/src/main/java/com/zehong/system/udp/RobotArmMessageParser.java
View file @
e4f93e45
package
com
.
zehong
.
system
.
udp
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
...
...
@@ -9,27 +12,41 @@ import java.util.regex.Pattern;
* @description TODO
*/
public
class
RobotArmMessageParser
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
RobotArmMessageParser
.
class
);
// private static final Pattern STATUS_PATTERN = Pattern.compile(
// "PPP (\\w+) (\\S+)(?: (\\d+),(\\d+),(\\d+),(\\d+),)?"
// );
// 修改正则表达式,支持负数的坐标
private
static
final
Pattern
STATUS_PATTERN
=
Pattern
.
compile
(
"PPP (\\w+) (\\S+)(?: (
\\d+),(\\d+),(\\d+),(
\\d+),)?"
"PPP (\\w+) (\\S+)(?: (
-?\\d+),(-?\\d+),(-?\\d+),(-?
\\d+),)?"
);
// 坐标判定的误差范围(-2到2之间)
private
static
final
int
COORDINATE_TOLERANCE
=
2
;
public
static
RobotArmStatus
parseMessage
(
String
message
)
{
log
.
info
(
"正在解析消息: {}"
,
message
);
Matcher
matcher
=
STATUS_PATTERN
.
matcher
(
message
);
if
(
matcher
.
find
())
{
log
.
info
(
"正则匹配成功:"
);
String
statusCode
=
matcher
.
group
(
1
);
String
statusText
=
matcher
.
group
(
2
);
String
x
=
matcher
.
group
(
3
);
String
y
=
matcher
.
group
(
4
);
String
z
=
matcher
.
group
(
5
);
String
r
=
matcher
.
group
(
6
);
return
new
RobotArmStatus
(
statusCode
,
statusText
,
RobotArmStatus
status
=
new
RobotArmStatus
(
statusCode
,
statusText
,
parseCoord
(
x
),
parseCoord
(
y
),
parseCoord
(
z
),
parseCoord
(
r
));
log
.
debug
(
"解析结果: code={}, text={}, x={}, y={}, z={}, r={}, isFullyIdle={}"
,
statusCode
,
statusText
,
status
.
x
,
status
.
y
,
status
.
z
,
status
.
r
,
status
.
isFullyIdle
());
return
status
;
// return new RobotArmStatus(statusCode, statusText,
// parseCoord(x), parseCoord(y),
// parseCoord(z), parseCoord(r));
}
log
.
info
(
"正则匹配失败,消息格式不正确: {}"
,
message
);
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