@foxglove/ros2idl-parser (英语)
报告2
.idl信件定义解析器
导言
机器人操作系统(ROS) 定义 a 支持的 OMG IDL 子集 用于描述数据类型。 这个库解析了这些消息定义,并可以环绕它们返回到适合校验和生成的犬形字符串格式. 解析后的定义与其他库对接时,对序列化或去序列化有用.
使用量
import { parseRos2idl } from "@foxglove/ros2idl-parser";
const ros2idlDefinitionStr = `
================================================================================
IDL: geometry_msgs/msg/Pose
module geometry_msgs {
module msg {
struct Pose {
geometry_msgs::msg::Point position;
geometry_msgs::msg::Quaternion orientation;
};
};
};
================================================================================
IDL: geometry_msgs/msg/Point
module geometry_msgs {
module msg {
struct Point {
double x;
double y;
double z;
};
};
};
================================================================================
IDL: geometry_msgs/msg/Quaternion
module geometry_msgs {
module msg {
struct Quaternion {
double x;
double y;
double z;
double w;
};
};
};
`;
const messageDefinition = parseRos2idl(ros2idlDefinitionStr);
// print the parsed message definition structure
console.log(JSON.stringify(messageDefinition, null, 2));
指纹 :
[
{
"definitions": [
{
"type": "geometry_msgs/msg/Point",
"isArray": false,
"name": "position",
"isComplex": true
},
{
"type": "geometry_msgs/msg/Quaternion",
"isArray": false,
"name": "orientation",
"isComplex": true
}
]
},
{
"name": "geometry_msgs/msg/Point",
"definitions": [
{
"type": "float64",
"isArray": false,
"name": "x",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "y",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "z",
"isComplex": false
}
]
},
{
"name": "geometry_msgs/msg/Quaternion",
"definitions": [
{
"type": "float64",
"isArray": false,
"name": "x",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "y",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "z",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "w",
"isComplex": false
}
]
}
]
保持联系
加入我们 黑频道 问问题 分享反馈 随时了解我们团队的工作.