@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.
Files changed (58) hide show
  1. package/.github/workflows/ci.yml +6 -0
  2. package/README.md +6 -5
  3. package/internal/generateRos.d.ts +3 -1
  4. package/internal/generateRos.d.ts.map +1 -1
  5. package/internal/generateRos.js +25 -11
  6. package/internal/generateRos.js.map +1 -1
  7. package/internal/generateRos.test.js +8 -8
  8. package/internal/generateRos.test.js.map +1 -1
  9. package/internal/generateRos.test.ts +8 -6
  10. package/internal/generateRos.ts +34 -17
  11. package/internal/schemas.d.ts +1 -0
  12. package/internal/schemas.d.ts.map +1 -1
  13. package/internal/schemas.js +62 -0
  14. package/internal/schemas.js.map +1 -1
  15. package/internal/schemas.ts +64 -0
  16. package/package.json +1 -1
  17. package/python/foxglove-schemas-flatbuffer/setup.cfg +1 -1
  18. package/python/foxglove-schemas-protobuf/setup.cfg +1 -1
  19. package/schemas/README.md +130 -0
  20. package/schemas/flatbuffer/ImageAnnotations.fbs +4 -0
  21. package/schemas/flatbuffer/LocationFix.fbs +8 -0
  22. package/schemas/flatbuffer/TextAnnotation.fbs +30 -0
  23. package/schemas/jsonschema/ImageAnnotations.json +96 -0
  24. package/schemas/jsonschema/LocationFix.json +20 -0
  25. package/schemas/jsonschema/TextAnnotation.json +93 -0
  26. package/schemas/jsonschema/index.d.ts +209 -0
  27. package/schemas/jsonschema/index.d.ts.map +1 -1
  28. package/schemas/jsonschema/index.js +210 -1
  29. package/schemas/jsonschema/index.js.map +1 -1
  30. package/schemas/jsonschema/index.ts +210 -0
  31. package/schemas/proto/foxglove/ImageAnnotations.proto +4 -0
  32. package/schemas/proto/foxglove/LocationFix.proto +8 -0
  33. package/schemas/proto/foxglove/TextAnnotation.proto +30 -0
  34. package/schemas/ros1/ImageAnnotations.msg +3 -0
  35. package/schemas/ros1/LocationFix.msg +6 -0
  36. package/schemas/ros1/TextAnnotation.msg +22 -0
  37. package/schemas/ros2/ImageAnnotations.msg +3 -0
  38. package/schemas/ros2/LocationFix.msg +6 -0
  39. package/schemas/ros2/TextAnnotation.msg +22 -0
  40. package/schemas/typescript/ImageAnnotations.d.ts +3 -0
  41. package/schemas/typescript/ImageAnnotations.d.ts.map +1 -1
  42. package/schemas/typescript/ImageAnnotations.ts +4 -0
  43. package/schemas/typescript/LocationFix.d.ts +5 -0
  44. package/schemas/typescript/LocationFix.d.ts.map +1 -1
  45. package/schemas/typescript/LocationFix.ts +7 -0
  46. package/schemas/typescript/TextAnnotation.d.ts +19 -0
  47. package/schemas/typescript/TextAnnotation.d.ts.map +1 -0
  48. package/schemas/typescript/TextAnnotation.js +4 -0
  49. package/schemas/typescript/TextAnnotation.js.map +1 -0
  50. package/schemas/typescript/TextAnnotation.ts +26 -0
  51. package/schemas/typescript/index.d.ts +1 -0
  52. package/schemas/typescript/index.d.ts.map +1 -1
  53. package/schemas/typescript/index.js +1 -0
  54. package/schemas/typescript/index.js.map +1 -1
  55. package/schemas/typescript/index.ts +1 -0
  56. package/scripts/updateGeneratedFiles.js +6 -2
  57. package/scripts/updateGeneratedFiles.js.map +1 -1
  58. package/scripts/updateGeneratedFiles.ts +6 -2
@@ -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 | Version |
6
- | --------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
7
- | JavaScript/TypeScript | `@foxglove/schemas` | [![npm version](https://img.shields.io/npm/v/@foxglove/schemas)](https://www.npmjs.com/package/@foxglove/schemas) |
8
- | Python + Protobuf | `foxglove-schemas-protobuf` | [![pypi version](https://shields.io/pypi/v/foxglove-schemas-protobuf)](https://pypi.org/project/foxglove-schemas-protobuf/) |
9
- | ROS | `foxglove_msgs` | [![ROS Melodic version](https://img.shields.io/ros/v/melodic/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#melodic) [![ROS Noetic version](https://img.shields.io/ros/v/noetic/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#noetic) [![ROS Foxy version](https://img.shields.io/ros/v/foxy/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#foxy) [![ROS Galactic version](https://img.shields.io/ros/v/galactic/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#galactic) [![ROS Humble version](https://img.shields.io/ros/v/humble/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#humble) [![ROS Rolling version](https://img.shields.io/ros/v/rolling/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#rolling) |
5
+ | Language/Framework | Package name | Version |
6
+ | --------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
7
+ | JavaScript/TypeScript | `@foxglove/schemas` | [![npm version](https://img.shields.io/npm/v/@foxglove/schemas)](https://www.npmjs.com/package/@foxglove/schemas) |
8
+ | Python + Protobuf | `foxglove-schemas-protobuf` | [![pypi version](https://shields.io/pypi/v/foxglove-schemas-protobuf)](https://pypi.org/project/foxglove-schemas-protobuf/) |
9
+ | Python + FlatBuffers | `foxglove-schemas-flatbuffer` | [![pypi version](https://shields.io/pypi/v/foxglove-schemas-flatbuffer)](https://pypi.org/project/foxglove-schemas-flatbuffer/) |
10
+ | ROS | `foxglove_msgs` | [![ROS Melodic version](https://img.shields.io/ros/v/melodic/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#melodic) [![ROS Noetic version](https://img.shields.io/ros/v/noetic/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#noetic) [![ROS Foxy version](https://img.shields.io/ros/v/foxy/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#foxy) [![ROS Galactic version](https://img.shields.io/ros/v/galactic/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#galactic) [![ROS Humble version](https://img.shields.io/ros/v/humble/foxglove_msgs)](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#humble) [![ROS Rolling version](https://img.shields.io/ros/v/rolling/foxglove_msgs)](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): string;
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;AAoBF,wBAAgB,cAAc,CAAC,GAAG,EAAE,+BAA+B,GAAG,MAAM,CAkC3E;AAmCD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,qBAAqB,EAC7B,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,GACpC,+BAA+B,CAsFjC;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,qBAAqB,EAC7B,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,GACpC,MAAM,CA4BR"}
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"}
@@ -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, { rosVersion }) {
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 generateRosMsg(def) {
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
- source += `${field.type}${field.isArray === true ? `[${field.arrayLength ?? ""}]` : ""} ${field.name}${constant}\n`;
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, { rosVersion });
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":"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"}
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": "builtin_interfaces/Duration",
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": "builtin_interfaces/Time",
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": "builtin_interfaces/Duration",
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": "builtin_interfaces/Time",
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": "builtin_interfaces/Duration",
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": "builtin_interfaces/Time",
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":"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"}
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": "builtin_interfaces/Duration",
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": "builtin_interfaces/Time",
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": "builtin_interfaces/Duration",
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": "builtin_interfaces/Time",
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": "builtin_interfaces/Duration",
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": "builtin_interfaces/Time",
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
@@ -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
- export function generateRosMsg(def: RosMsgDefinitionWithDescription): string {
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
- source += `${field.type}${field.isArray === true ? `[${field.arrayLength ?? ""}]` : ""} ${
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, { rosVersion });
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
- originalName: dep.name,
216
- rosMsgInterfaceName: dep.name,
217
- rosFullInterfaceName: dep.name,
218
- fields: ros1[dep.name].definitions,
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
  }
@@ -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;AA80CpE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqClC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,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"}
@@ -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,