@foxglove/schemas 1.2.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +6 -0
- package/README.md +6 -5
- package/internal/generateRos.d.ts +3 -1
- package/internal/generateRos.d.ts.map +1 -1
- package/internal/generateRos.js +25 -11
- package/internal/generateRos.js.map +1 -1
- package/internal/generateRos.test.js +8 -8
- package/internal/generateRos.test.js.map +1 -1
- package/internal/generateRos.test.ts +8 -6
- package/internal/generateRos.ts +34 -17
- package/internal/schemas.d.ts +1 -0
- package/internal/schemas.d.ts.map +1 -1
- package/internal/schemas.js +62 -0
- package/internal/schemas.js.map +1 -1
- package/internal/schemas.ts +64 -0
- package/package.json +1 -1
- package/python/foxglove-schemas-flatbuffer/setup.cfg +1 -1
- package/python/foxglove-schemas-protobuf/setup.cfg +1 -1
- package/schemas/README.md +130 -0
- package/schemas/flatbuffer/ImageAnnotations.fbs +4 -0
- package/schemas/flatbuffer/LocationFix.fbs +8 -0
- package/schemas/flatbuffer/TextAnnotation.fbs +30 -0
- package/schemas/jsonschema/ImageAnnotations.json +96 -0
- package/schemas/jsonschema/LocationFix.json +20 -0
- package/schemas/jsonschema/TextAnnotation.json +93 -0
- package/schemas/jsonschema/index.d.ts +209 -0
- package/schemas/jsonschema/index.d.ts.map +1 -1
- package/schemas/jsonschema/index.js +210 -1
- package/schemas/jsonschema/index.js.map +1 -1
- package/schemas/jsonschema/index.ts +210 -0
- package/schemas/proto/foxglove/ImageAnnotations.proto +4 -0
- package/schemas/proto/foxglove/LocationFix.proto +8 -0
- package/schemas/proto/foxglove/TextAnnotation.proto +30 -0
- package/schemas/ros1/ImageAnnotations.msg +3 -0
- package/schemas/ros1/LocationFix.msg +6 -0
- package/schemas/ros1/TextAnnotation.msg +22 -0
- package/schemas/ros2/ImageAnnotations.msg +3 -0
- package/schemas/ros2/LocationFix.msg +6 -0
- package/schemas/ros2/TextAnnotation.msg +22 -0
- package/schemas/typescript/ImageAnnotations.d.ts +3 -0
- package/schemas/typescript/ImageAnnotations.d.ts.map +1 -1
- package/schemas/typescript/ImageAnnotations.ts +4 -0
- package/schemas/typescript/LocationFix.d.ts +5 -0
- package/schemas/typescript/LocationFix.d.ts.map +1 -1
- package/schemas/typescript/LocationFix.ts +7 -0
- package/schemas/typescript/TextAnnotation.d.ts +19 -0
- package/schemas/typescript/TextAnnotation.d.ts.map +1 -0
- package/schemas/typescript/TextAnnotation.js +4 -0
- package/schemas/typescript/TextAnnotation.js.map +1 -0
- package/schemas/typescript/TextAnnotation.ts +26 -0
- package/schemas/typescript/index.d.ts +1 -0
- package/schemas/typescript/index.d.ts.map +1 -1
- package/schemas/typescript/index.js +1 -0
- package/schemas/typescript/index.js.map +1 -1
- package/schemas/typescript/index.ts +1 -0
- package/scripts/updateGeneratedFiles.js +6 -2
- package/scripts/updateGeneratedFiles.js.map +1 -1
- package/scripts/updateGeneratedFiles.ts +6 -2
package/.github/workflows/ci.yml
CHANGED
|
@@ -168,6 +168,12 @@ jobs:
|
|
|
168
168
|
package-name: foxglove_msgs
|
|
169
169
|
target-ros1-distro: ${{ matrix.ros_distribution }}
|
|
170
170
|
vcs-repo-file-url: ""
|
|
171
|
+
|
|
172
|
+
- name: Downgrade pydocstyle as a workaround for ament_lint error https://github.com/ament/ament_lint/pull/428
|
|
173
|
+
if: ${{ matrix.ros_distribution == 'galactic' }}
|
|
174
|
+
run: |
|
|
175
|
+
sudo pip install pydocstyle==6.1.1
|
|
176
|
+
|
|
171
177
|
- name: build and test ros2
|
|
172
178
|
if: ${{ matrix.ros_version == 2 }}
|
|
173
179
|
uses: ros-tooling/action-ros-ci@master
|
package/README.md
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Message schemas supported by [Foxglove Studio](https://studio.foxglove.dev)
|
|
4
4
|
|
|
5
|
-
| Language/Framework | Package name
|
|
6
|
-
| --------------------- |
|
|
7
|
-
| JavaScript/TypeScript | `@foxglove/schemas`
|
|
8
|
-
| Python + Protobuf | `foxglove-schemas-protobuf`
|
|
9
|
-
|
|
|
5
|
+
| Language/Framework | Package name | Version |
|
|
6
|
+
| --------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
7
|
+
| JavaScript/TypeScript | `@foxglove/schemas` | [](https://www.npmjs.com/package/@foxglove/schemas) |
|
|
8
|
+
| Python + Protobuf | `foxglove-schemas-protobuf` | [](https://pypi.org/project/foxglove-schemas-protobuf/) |
|
|
9
|
+
| Python + FlatBuffers | `foxglove-schemas-flatbuffer` | [](https://pypi.org/project/foxglove-schemas-flatbuffer/) |
|
|
10
|
+
| ROS | `foxglove_msgs` | [](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#melodic) [](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#noetic) [](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#foxy) [](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#galactic) [](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#humble) [](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#rolling) |
|
|
10
11
|
|
|
11
12
|
## Introduction
|
|
12
13
|
|
|
@@ -12,7 +12,9 @@ type RosMsgDefinitionWithDescription = {
|
|
|
12
12
|
rosFullInterfaceName: string;
|
|
13
13
|
fields: RosMsgFieldWithDescription[];
|
|
14
14
|
};
|
|
15
|
-
export declare function generateRosMsg(def: RosMsgDefinitionWithDescription
|
|
15
|
+
export declare function generateRosMsg(def: RosMsgDefinitionWithDescription, { rosVersion }: {
|
|
16
|
+
rosVersion: 1 | 2;
|
|
17
|
+
}): string;
|
|
16
18
|
export declare function generateRosMsgDefinition(schema: FoxgloveMessageSchema, { rosVersion }: {
|
|
17
19
|
rosVersion: 1 | 2;
|
|
18
20
|
}): RosMsgDefinitionWithDescription;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRos.d.ts","sourceRoot":"","sources":["generateRos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG9F,OAAO,EAAE,qBAAqB,EAAqB,MAAM,SAAS,CAAC;AAEnE,KAAK,0BAA0B,GAAG,sBAAsB,GAAG;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8GAA8G;IAC9G,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,0BAA0B,EAAE,CAAC;CACtC,CAAC;
|
|
1
|
+
{"version":3,"file":"generateRos.d.ts","sourceRoot":"","sources":["generateRos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG9F,OAAO,EAAE,qBAAqB,EAAqB,MAAM,SAAS,CAAC;AAEnE,KAAK,0BAA0B,GAAG,sBAAsB,GAAG;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8GAA8G;IAC9G,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,0BAA0B,EAAE,CAAC;CACtC,CAAC;AAuBF,wBAAgB,cAAc,CAC5B,GAAG,EAAE,+BAA+B,EACpC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,GACpC,MAAM,CAsCR;AAmCD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,qBAAqB,EAC7B,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,GACpC,+BAA+B,CA0FjC;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,qBAAqB,EAC7B,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,GACpC,MAAM,CA+BR"}
|
package/internal/generateRos.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateRosMsgMergedSchema = exports.generateRosMsgDefinition = exports.generateRosMsg = void 0;
|
|
4
4
|
const rosmsg_msgs_common_1 = require("@foxglove/rosmsg-msgs-common");
|
|
5
|
-
function primitiveToRos(type
|
|
5
|
+
function primitiveToRos(type) {
|
|
6
6
|
switch (type) {
|
|
7
7
|
case "string":
|
|
8
8
|
return "string";
|
|
@@ -10,13 +10,17 @@ function primitiveToRos(type, { rosVersion }) {
|
|
|
10
10
|
return "bool";
|
|
11
11
|
case "float64":
|
|
12
12
|
return "float64";
|
|
13
|
-
case "time":
|
|
14
|
-
return rosVersion === 2 ? "builtin_interfaces/Time" : "time";
|
|
15
|
-
case "duration":
|
|
16
|
-
return rosVersion === 2 ? "builtin_interfaces/Duration" : "duration";
|
|
17
13
|
}
|
|
18
14
|
}
|
|
19
|
-
function
|
|
15
|
+
function timeDurationToRos(type, { rosVersion }) {
|
|
16
|
+
if (type === "time") {
|
|
17
|
+
return rosVersion === 2 ? "builtin_interfaces/Time" : "time";
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return rosVersion === 2 ? "builtin_interfaces/Duration" : "duration";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function generateRosMsg(def, { rosVersion }) {
|
|
20
24
|
let source = "";
|
|
21
25
|
source += `# ${def.rosFullInterfaceName}\n`;
|
|
22
26
|
if (def.description != undefined) {
|
|
@@ -44,7 +48,11 @@ function generateRosMsg(def) {
|
|
|
44
48
|
}
|
|
45
49
|
constant = `=${field.valueText}`;
|
|
46
50
|
}
|
|
47
|
-
|
|
51
|
+
let type = field.type;
|
|
52
|
+
if (type === "time" || type === "duration") {
|
|
53
|
+
type = timeDurationToRos(type, { rosVersion });
|
|
54
|
+
}
|
|
55
|
+
source += `${type}${field.isArray === true ? `[${field.arrayLength ?? ""}]` : ""} ${field.name}${constant}\n`;
|
|
48
56
|
}
|
|
49
57
|
return source;
|
|
50
58
|
}
|
|
@@ -134,8 +142,14 @@ function generateRosMsgDefinition(schema, { rosVersion }) {
|
|
|
134
142
|
else if (field.type.name === "uint32") {
|
|
135
143
|
fieldType = "uint32";
|
|
136
144
|
}
|
|
145
|
+
else if (field.type.name === "time") {
|
|
146
|
+
fieldType = "time";
|
|
147
|
+
}
|
|
148
|
+
else if (field.type.name === "duration") {
|
|
149
|
+
fieldType = "duration";
|
|
150
|
+
}
|
|
137
151
|
else {
|
|
138
|
-
fieldType = primitiveToRos(field.type.name
|
|
152
|
+
fieldType = primitiveToRos(field.type.name);
|
|
139
153
|
}
|
|
140
154
|
break;
|
|
141
155
|
}
|
|
@@ -164,7 +178,7 @@ function generateRosMsgMergedSchema(schema, { rosVersion }) {
|
|
|
164
178
|
dependencies.push(dep);
|
|
165
179
|
}
|
|
166
180
|
}
|
|
167
|
-
let result = generateRosMsg(generateRosMsgDefinition(schema, { rosVersion }));
|
|
181
|
+
let result = generateRosMsg(generateRosMsgDefinition(schema, { rosVersion }), { rosVersion });
|
|
168
182
|
for (const dep of dependencies) {
|
|
169
183
|
let name;
|
|
170
184
|
let source;
|
|
@@ -175,12 +189,12 @@ function generateRosMsgMergedSchema(schema, { rosVersion }) {
|
|
|
175
189
|
rosMsgInterfaceName: dep.name,
|
|
176
190
|
rosFullInterfaceName: dep.name,
|
|
177
191
|
fields: rosmsg_msgs_common_1.ros1[dep.name].definitions,
|
|
178
|
-
});
|
|
192
|
+
}, { rosVersion });
|
|
179
193
|
}
|
|
180
194
|
else {
|
|
181
195
|
const definition = generateRosMsgDefinition(dep.schema, { rosVersion });
|
|
182
196
|
name = definition.rosMsgInterfaceName;
|
|
183
|
-
source = generateRosMsg(definition);
|
|
197
|
+
source = generateRosMsg(definition, { rosVersion });
|
|
184
198
|
}
|
|
185
199
|
result += `================================================================================\nMSG: ${name}\n${source}`;
|
|
186
200
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRos.js","sourceRoot":"","sources":["generateRos.ts"],"names":[],"mappings":";;;AACA,qEAAoD;AAiBpD,SAAS,cAAc,CACrB,
|
|
1
|
+
{"version":3,"file":"generateRos.js","sourceRoot":"","sources":["generateRos.ts"],"names":[],"mappings":"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"}
|
|
@@ -235,7 +235,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
235
235
|
"isArray": false,
|
|
236
236
|
"isComplex": false,
|
|
237
237
|
"name": "field_duration",
|
|
238
|
-
"type": "
|
|
238
|
+
"type": "duration",
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
241
|
"arrayLength": undefined,
|
|
@@ -243,7 +243,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
243
243
|
"isArray": false,
|
|
244
244
|
"isComplex": false,
|
|
245
245
|
"name": "field_time",
|
|
246
|
-
"type": "
|
|
246
|
+
"type": "time",
|
|
247
247
|
},
|
|
248
248
|
{
|
|
249
249
|
"arrayLength": undefined,
|
|
@@ -291,7 +291,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
291
291
|
"isArray": true,
|
|
292
292
|
"isComplex": false,
|
|
293
293
|
"name": "field_duration_array",
|
|
294
|
-
"type": "
|
|
294
|
+
"type": "duration",
|
|
295
295
|
},
|
|
296
296
|
{
|
|
297
297
|
"arrayLength": undefined,
|
|
@@ -299,7 +299,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
299
299
|
"isArray": true,
|
|
300
300
|
"isComplex": false,
|
|
301
301
|
"name": "field_time_array",
|
|
302
|
-
"type": "
|
|
302
|
+
"type": "time",
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
"arrayLength": undefined,
|
|
@@ -339,7 +339,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
339
339
|
"isArray": true,
|
|
340
340
|
"isComplex": false,
|
|
341
341
|
"name": "field_duration_fixed_array",
|
|
342
|
-
"type": "
|
|
342
|
+
"type": "duration",
|
|
343
343
|
},
|
|
344
344
|
{
|
|
345
345
|
"arrayLength": 3,
|
|
@@ -347,7 +347,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
347
347
|
"isArray": true,
|
|
348
348
|
"isComplex": false,
|
|
349
349
|
"name": "field_time_fixed_array",
|
|
350
|
-
"type": "
|
|
350
|
+
"type": "time",
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"arrayLength": 3,
|
|
@@ -446,7 +446,7 @@ describe("generateRosMsg", () => {
|
|
|
446
446
|
it("generates msg file for ROS 1", () => {
|
|
447
447
|
expect((0, generateRos_1.generateRosMsg)((0, generateRos_1.generateRosMsgDefinition)(testFixtures_1.exampleMessageWithoutArrayOfBytes, {
|
|
448
448
|
rosVersion: 1,
|
|
449
|
-
}))).toMatchInlineSnapshot(`
|
|
449
|
+
}), { rosVersion: 1 })).toMatchInlineSnapshot(`
|
|
450
450
|
"# foxglove_msgs/ExampleMessage
|
|
451
451
|
# An example type
|
|
452
452
|
|
|
@@ -537,7 +537,7 @@ describe("generateRosMsg", () => {
|
|
|
537
537
|
it("generates msg file for ROS 2", () => {
|
|
538
538
|
expect((0, generateRos_1.generateRosMsg)((0, generateRos_1.generateRosMsgDefinition)(testFixtures_1.exampleMessageWithoutArrayOfBytes, {
|
|
539
539
|
rosVersion: 2,
|
|
540
|
-
}))).toMatchInlineSnapshot(`
|
|
540
|
+
}), { rosVersion: 2 })).toMatchInlineSnapshot(`
|
|
541
541
|
"# foxglove_msgs/msg/ExampleMessage
|
|
542
542
|
# An example type
|
|
543
543
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRos.test.js","sourceRoot":"","sources":["generateRos.test.ts"],"names":[],"mappings":";;AAAA,6CAAmE;AAEnE,+CAIuB;AACvB,uCAAmD;AACnD,iDAAmE;AAEnE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,IAAA,sCAAwB,EAAC,gDAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;aACnF,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsNxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,IAAA,sCAAwB,EAAC,gDAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;aACnF,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsNxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CACJ,IAAA,4BAAc,EACZ,IAAA,sCAAwB,EAAC,gDAAiC,EAAE;YAC1D,UAAU,EAAE,CAAC;SACd,CAAC,
|
|
1
|
+
{"version":3,"file":"generateRos.test.js","sourceRoot":"","sources":["generateRos.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,7 +239,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
239
239
|
"isArray": false,
|
|
240
240
|
"isComplex": false,
|
|
241
241
|
"name": "field_duration",
|
|
242
|
-
"type": "
|
|
242
|
+
"type": "duration",
|
|
243
243
|
},
|
|
244
244
|
{
|
|
245
245
|
"arrayLength": undefined,
|
|
@@ -247,7 +247,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
247
247
|
"isArray": false,
|
|
248
248
|
"isComplex": false,
|
|
249
249
|
"name": "field_time",
|
|
250
|
-
"type": "
|
|
250
|
+
"type": "time",
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
253
|
"arrayLength": undefined,
|
|
@@ -295,7 +295,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
295
295
|
"isArray": true,
|
|
296
296
|
"isComplex": false,
|
|
297
297
|
"name": "field_duration_array",
|
|
298
|
-
"type": "
|
|
298
|
+
"type": "duration",
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"arrayLength": undefined,
|
|
@@ -303,7 +303,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
303
303
|
"isArray": true,
|
|
304
304
|
"isComplex": false,
|
|
305
305
|
"name": "field_time_array",
|
|
306
|
-
"type": "
|
|
306
|
+
"type": "time",
|
|
307
307
|
},
|
|
308
308
|
{
|
|
309
309
|
"arrayLength": undefined,
|
|
@@ -343,7 +343,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
343
343
|
"isArray": true,
|
|
344
344
|
"isComplex": false,
|
|
345
345
|
"name": "field_duration_fixed_array",
|
|
346
|
-
"type": "
|
|
346
|
+
"type": "duration",
|
|
347
347
|
},
|
|
348
348
|
{
|
|
349
349
|
"arrayLength": 3,
|
|
@@ -351,7 +351,7 @@ describe("generateRosMsgDefinition", () => {
|
|
|
351
351
|
"isArray": true,
|
|
352
352
|
"isComplex": false,
|
|
353
353
|
"name": "field_time_fixed_array",
|
|
354
|
-
"type": "
|
|
354
|
+
"type": "time",
|
|
355
355
|
},
|
|
356
356
|
{
|
|
357
357
|
"arrayLength": 3,
|
|
@@ -454,6 +454,7 @@ describe("generateRosMsg", () => {
|
|
|
454
454
|
generateRosMsgDefinition(exampleMessageWithoutArrayOfBytes, {
|
|
455
455
|
rosVersion: 1,
|
|
456
456
|
}),
|
|
457
|
+
{ rosVersion: 1 },
|
|
457
458
|
),
|
|
458
459
|
).toMatchInlineSnapshot(`
|
|
459
460
|
"# foxglove_msgs/ExampleMessage
|
|
@@ -550,6 +551,7 @@ describe("generateRosMsg", () => {
|
|
|
550
551
|
generateRosMsgDefinition(exampleMessageWithoutArrayOfBytes, {
|
|
551
552
|
rosVersion: 2,
|
|
552
553
|
}),
|
|
554
|
+
{ rosVersion: 2 },
|
|
553
555
|
),
|
|
554
556
|
).toMatchInlineSnapshot(`
|
|
555
557
|
"# foxglove_msgs/msg/ExampleMessage
|
package/internal/generateRos.ts
CHANGED
|
@@ -17,8 +17,7 @@ type RosMsgDefinitionWithDescription = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
function primitiveToRos(
|
|
20
|
-
type: Exclude<FoxglovePrimitive, "uint32" | "bytes">,
|
|
21
|
-
{ rosVersion }: { rosVersion: 1 | 2 },
|
|
20
|
+
type: Exclude<FoxglovePrimitive, "uint32" | "bytes" | "time" | "duration">,
|
|
22
21
|
) {
|
|
23
22
|
switch (type) {
|
|
24
23
|
case "string":
|
|
@@ -27,14 +26,21 @@ function primitiveToRos(
|
|
|
27
26
|
return "bool";
|
|
28
27
|
case "float64":
|
|
29
28
|
return "float64";
|
|
30
|
-
case "time":
|
|
31
|
-
return rosVersion === 2 ? "builtin_interfaces/Time" : "time";
|
|
32
|
-
case "duration":
|
|
33
|
-
return rosVersion === 2 ? "builtin_interfaces/Duration" : "duration";
|
|
34
29
|
}
|
|
35
30
|
}
|
|
36
31
|
|
|
37
|
-
|
|
32
|
+
function timeDurationToRos(type: "time" | "duration", { rosVersion }: { rosVersion: 1 | 2 }) {
|
|
33
|
+
if (type === "time") {
|
|
34
|
+
return rosVersion === 2 ? "builtin_interfaces/Time" : "time";
|
|
35
|
+
} else {
|
|
36
|
+
return rosVersion === 2 ? "builtin_interfaces/Duration" : "duration";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function generateRosMsg(
|
|
41
|
+
def: RosMsgDefinitionWithDescription,
|
|
42
|
+
{ rosVersion }: { rosVersion: 1 | 2 },
|
|
43
|
+
): string {
|
|
38
44
|
let source = "";
|
|
39
45
|
source += `# ${def.rosFullInterfaceName}\n`;
|
|
40
46
|
if (def.description != undefined) {
|
|
@@ -63,7 +69,11 @@ export function generateRosMsg(def: RosMsgDefinitionWithDescription): string {
|
|
|
63
69
|
}
|
|
64
70
|
constant = `=${field.valueText}`;
|
|
65
71
|
}
|
|
66
|
-
|
|
72
|
+
let type = field.type;
|
|
73
|
+
if (type === "time" || type === "duration") {
|
|
74
|
+
type = timeDurationToRos(type, { rosVersion });
|
|
75
|
+
}
|
|
76
|
+
source += `${type}${field.isArray === true ? `[${field.arrayLength ?? ""}]` : ""} ${
|
|
67
77
|
field.name
|
|
68
78
|
}${constant}\n`;
|
|
69
79
|
}
|
|
@@ -169,8 +179,12 @@ export function generateRosMsgDefinition(
|
|
|
169
179
|
isArray = true;
|
|
170
180
|
} else if (field.type.name === "uint32") {
|
|
171
181
|
fieldType = "uint32";
|
|
182
|
+
} else if (field.type.name === "time") {
|
|
183
|
+
fieldType = "time";
|
|
184
|
+
} else if (field.type.name === "duration") {
|
|
185
|
+
fieldType = "duration";
|
|
172
186
|
} else {
|
|
173
|
-
fieldType = primitiveToRos(field.type.name
|
|
187
|
+
fieldType = primitiveToRos(field.type.name);
|
|
174
188
|
}
|
|
175
189
|
break;
|
|
176
190
|
}
|
|
@@ -205,22 +219,25 @@ export function generateRosMsgMergedSchema(
|
|
|
205
219
|
}
|
|
206
220
|
}
|
|
207
221
|
|
|
208
|
-
let result = generateRosMsg(generateRosMsgDefinition(schema, { rosVersion }));
|
|
222
|
+
let result = generateRosMsg(generateRosMsgDefinition(schema, { rosVersion }), { rosVersion });
|
|
209
223
|
for (const dep of dependencies) {
|
|
210
224
|
let name: string;
|
|
211
225
|
let source: string;
|
|
212
226
|
if (dep.type === "ros") {
|
|
213
227
|
name = dep.name;
|
|
214
|
-
source = generateRosMsg(
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
228
|
+
source = generateRosMsg(
|
|
229
|
+
{
|
|
230
|
+
originalName: dep.name,
|
|
231
|
+
rosMsgInterfaceName: dep.name,
|
|
232
|
+
rosFullInterfaceName: dep.name,
|
|
233
|
+
fields: ros1[dep.name].definitions,
|
|
234
|
+
},
|
|
235
|
+
{ rosVersion },
|
|
236
|
+
);
|
|
220
237
|
} else {
|
|
221
238
|
const definition = generateRosMsgDefinition(dep.schema, { rosVersion });
|
|
222
239
|
name = definition.rosMsgInterfaceName;
|
|
223
|
-
source = generateRosMsg(definition);
|
|
240
|
+
source = generateRosMsg(definition, { rosVersion });
|
|
224
241
|
}
|
|
225
242
|
result += `================================================================================\nMSG: ${name}\n${source}`;
|
|
226
243
|
}
|
package/internal/schemas.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export declare const foxgloveMessageSchemas: {
|
|
|
32
32
|
Quaternion: FoxgloveMessageSchema;
|
|
33
33
|
RawImage: FoxgloveMessageSchema;
|
|
34
34
|
SpherePrimitive: FoxgloveMessageSchema;
|
|
35
|
+
TextAnnotation: FoxgloveMessageSchema;
|
|
35
36
|
TextPrimitive: FoxgloveMessageSchema;
|
|
36
37
|
TriangleListPrimitive: FoxgloveMessageSchema;
|
|
37
38
|
Vector2: FoxgloveMessageSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA64CpE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsClC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAC"}
|
package/internal/schemas.js
CHANGED
|
@@ -1076,6 +1076,44 @@ const PointsAnnotation = {
|
|
|
1076
1076
|
},
|
|
1077
1077
|
],
|
|
1078
1078
|
};
|
|
1079
|
+
const TextAnnotation = {
|
|
1080
|
+
type: "message",
|
|
1081
|
+
name: "TextAnnotation",
|
|
1082
|
+
description: "A text label on a 2D image",
|
|
1083
|
+
fields: [
|
|
1084
|
+
{
|
|
1085
|
+
name: "timestamp",
|
|
1086
|
+
type: { type: "primitive", name: "time" },
|
|
1087
|
+
description: "Timestamp of annotation",
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
name: "position",
|
|
1091
|
+
type: { type: "nested", schema: Point2 },
|
|
1092
|
+
description: "Bottom-left origin of the text label in 2D image coordinates (pixels)",
|
|
1093
|
+
},
|
|
1094
|
+
{
|
|
1095
|
+
name: "text",
|
|
1096
|
+
type: { type: "primitive", name: "string" },
|
|
1097
|
+
description: "Text to display",
|
|
1098
|
+
},
|
|
1099
|
+
{
|
|
1100
|
+
name: "font_size",
|
|
1101
|
+
type: { type: "primitive", name: "float64" },
|
|
1102
|
+
description: "Font size in pixels",
|
|
1103
|
+
defaultValue: 12.0,
|
|
1104
|
+
},
|
|
1105
|
+
{
|
|
1106
|
+
name: "text_color",
|
|
1107
|
+
type: { type: "nested", schema: Color },
|
|
1108
|
+
description: "Text color",
|
|
1109
|
+
},
|
|
1110
|
+
{
|
|
1111
|
+
name: "background_color",
|
|
1112
|
+
type: { type: "nested", schema: Color },
|
|
1113
|
+
description: "Background fill color",
|
|
1114
|
+
},
|
|
1115
|
+
],
|
|
1116
|
+
};
|
|
1079
1117
|
const ImageAnnotations = {
|
|
1080
1118
|
type: "message",
|
|
1081
1119
|
name: "ImageAnnotations",
|
|
@@ -1093,6 +1131,12 @@ const ImageAnnotations = {
|
|
|
1093
1131
|
description: "Points annotations",
|
|
1094
1132
|
array: true,
|
|
1095
1133
|
},
|
|
1134
|
+
{
|
|
1135
|
+
name: "texts",
|
|
1136
|
+
type: { type: "nested", schema: TextAnnotation },
|
|
1137
|
+
description: "Text annotations",
|
|
1138
|
+
array: true,
|
|
1139
|
+
},
|
|
1096
1140
|
],
|
|
1097
1141
|
};
|
|
1098
1142
|
const PositionCovarianceType = {
|
|
@@ -1113,31 +1157,48 @@ const LocationFix = {
|
|
|
1113
1157
|
name: "LocationFix",
|
|
1114
1158
|
description: "A navigation satellite fix for any Global Navigation Satellite System",
|
|
1115
1159
|
fields: [
|
|
1160
|
+
{
|
|
1161
|
+
name: "timestamp",
|
|
1162
|
+
type: { type: "primitive", name: "time" },
|
|
1163
|
+
description: "Timestamp of the message",
|
|
1164
|
+
protobufFieldNumber: 6,
|
|
1165
|
+
},
|
|
1166
|
+
{
|
|
1167
|
+
name: "frame_id",
|
|
1168
|
+
type: { type: "primitive", name: "string" },
|
|
1169
|
+
description: "Frame for the sensor. Latitude and longitude readings are at the origin of the frame.",
|
|
1170
|
+
protobufFieldNumber: 7,
|
|
1171
|
+
},
|
|
1116
1172
|
{
|
|
1117
1173
|
name: "latitude",
|
|
1118
1174
|
type: { type: "primitive", name: "float64" },
|
|
1119
1175
|
description: "Latitude in degrees",
|
|
1176
|
+
protobufFieldNumber: 1,
|
|
1120
1177
|
},
|
|
1121
1178
|
{
|
|
1122
1179
|
name: "longitude",
|
|
1123
1180
|
type: { type: "primitive", name: "float64" },
|
|
1124
1181
|
description: "Longitude in degrees",
|
|
1182
|
+
protobufFieldNumber: 2,
|
|
1125
1183
|
},
|
|
1126
1184
|
{
|
|
1127
1185
|
name: "altitude",
|
|
1128
1186
|
type: { type: "primitive", name: "float64" },
|
|
1129
1187
|
description: "Altitude in meters",
|
|
1188
|
+
protobufFieldNumber: 3,
|
|
1130
1189
|
},
|
|
1131
1190
|
{
|
|
1132
1191
|
name: "position_covariance",
|
|
1133
1192
|
type: { type: "primitive", name: "float64" },
|
|
1134
1193
|
description: "Position covariance (m^2) defined relative to a tangential plane through the reported position. The components are East, North, and Up (ENU), in row-major order.",
|
|
1135
1194
|
array: 9,
|
|
1195
|
+
protobufFieldNumber: 4,
|
|
1136
1196
|
},
|
|
1137
1197
|
{
|
|
1138
1198
|
name: "position_covariance_type",
|
|
1139
1199
|
type: { type: "enum", enum: PositionCovarianceType },
|
|
1140
1200
|
description: "If `position_covariance` is available, `position_covariance_type` must be set to indicate the type of covariance.",
|
|
1201
|
+
protobufFieldNumber: 5,
|
|
1141
1202
|
},
|
|
1142
1203
|
],
|
|
1143
1204
|
};
|
|
@@ -1308,6 +1369,7 @@ exports.foxgloveMessageSchemas = {
|
|
|
1308
1369
|
Quaternion,
|
|
1309
1370
|
RawImage,
|
|
1310
1371
|
SpherePrimitive,
|
|
1372
|
+
TextAnnotation,
|
|
1311
1373
|
TextPrimitive,
|
|
1312
1374
|
TriangleListPrimitive,
|
|
1313
1375
|
Vector2,
|