@foxglove/schemas 1.6.2 → 1.6.3
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 +11 -12
- package/.vscode/settings.json +2 -6
- package/README.md +11 -11
- package/internal/__snapshots__/exportTypeScriptSchemas.test.ts.snap +14 -5
- package/internal/generateFlatbufferSchema.d.ts +2 -2
- package/internal/generateFlatbufferSchema.d.ts.map +1 -1
- package/internal/generateFlatbufferSchema.js +4 -4
- package/internal/generateFlatbufferSchema.js.map +1 -1
- package/internal/generateFlatbufferSchema.test.js +25 -25
- package/internal/generateFlatbufferSchema.test.ts +25 -25
- package/internal/generateFlatbufferSchema.ts +4 -4
- package/internal/generateMarkdown.js +1 -1
- package/internal/generateMarkdown.ts +1 -1
- package/internal/generateRos.js +2 -2
- package/internal/generateRos.js.map +1 -1
- package/internal/generateRos.ts +2 -2
- package/internal/generateTypeScript.d.ts +1 -1
- package/internal/generateTypeScript.ts +1 -1
- package/internal/schemas.d.ts.map +1 -1
- package/internal/schemas.js +5 -5
- package/internal/schemas.js.map +1 -1
- package/internal/schemas.ts +8 -5
- package/package.json +1 -1
- package/python/Makefile +1 -0
- package/python/foxglove-schemas-flatbuffer/README.md +2 -2
- package/python/foxglove-schemas-flatbuffer/setup.cfg +1 -1
- package/python/foxglove-schemas-protobuf/README.md +2 -2
- package/python/foxglove-schemas-protobuf/setup.cfg +1 -1
- package/schemas/README.md +9 -6
- package/schemas/flatbuffer/ArrowPrimitive.fbs +6 -6
- package/schemas/flatbuffer/ByteVector.fbs +1 -1
- package/schemas/flatbuffer/CameraCalibration.fbs +10 -10
- package/schemas/flatbuffer/CircleAnnotation.fbs +8 -7
- package/schemas/flatbuffer/Color.fbs +4 -4
- package/schemas/flatbuffer/CompressedImage.fbs +4 -4
- package/schemas/flatbuffer/CompressedVideo.fbs +5 -5
- package/schemas/flatbuffer/CubePrimitive.fbs +3 -3
- package/schemas/flatbuffer/CylinderPrimitive.fbs +5 -5
- package/schemas/flatbuffer/Duration.fbs +1 -1
- package/schemas/flatbuffer/FrameTransform.fbs +5 -5
- package/schemas/flatbuffer/FrameTransforms.fbs +1 -1
- package/schemas/flatbuffer/GeoJSON.fbs +1 -1
- package/schemas/flatbuffer/Grid.fbs +9 -9
- package/schemas/flatbuffer/ImageAnnotations.fbs +3 -3
- package/schemas/flatbuffer/KeyValuePair.fbs +2 -2
- package/schemas/flatbuffer/LaserScan.fbs +7 -7
- package/schemas/flatbuffer/LinePrimitive.fbs +8 -8
- package/schemas/flatbuffer/LocationFix.fbs +7 -7
- package/schemas/flatbuffer/Log.fbs +6 -6
- package/schemas/flatbuffer/ModelPrimitive.fbs +7 -7
- package/schemas/flatbuffer/PackedElementField.fbs +3 -3
- package/schemas/flatbuffer/Point2.fbs +2 -2
- package/schemas/flatbuffer/Point3.fbs +3 -3
- package/schemas/flatbuffer/PointCloud.fbs +6 -6
- package/schemas/flatbuffer/PointsAnnotation.fbs +9 -8
- package/schemas/flatbuffer/Pose.fbs +2 -2
- package/schemas/flatbuffer/PoseInFrame.fbs +3 -3
- package/schemas/flatbuffer/PosesInFrame.fbs +3 -3
- package/schemas/flatbuffer/Quaternion.fbs +4 -4
- package/schemas/flatbuffer/RawImage.fbs +7 -7
- package/schemas/flatbuffer/SceneEntity.fbs +14 -14
- package/schemas/flatbuffer/SceneEntityDeletion.fbs +3 -3
- package/schemas/flatbuffer/SceneUpdate.fbs +2 -2
- package/schemas/flatbuffer/SpherePrimitive.fbs +3 -3
- package/schemas/flatbuffer/TextAnnotation.fbs +8 -7
- package/schemas/flatbuffer/TextPrimitive.fbs +6 -6
- package/schemas/flatbuffer/TriangleListPrimitive.fbs +5 -5
- package/schemas/flatbuffer/Vector2.fbs +2 -2
- package/schemas/flatbuffer/Vector3.fbs +3 -3
- package/schemas/jsonschema/CameraCalibration.json +1 -1
- package/schemas/jsonschema/CircleAnnotation.json +1 -1
- package/schemas/jsonschema/CompressedVideo.json +1 -1
- package/schemas/jsonschema/ImageAnnotations.json +3 -3
- package/schemas/jsonschema/PointsAnnotation.json +1 -1
- package/schemas/jsonschema/TextAnnotation.json +1 -1
- package/schemas/jsonschema/index.js +8 -8
- package/schemas/jsonschema/index.js.map +1 -1
- package/schemas/jsonschema/index.ts +8 -8
- package/schemas/omgidl/foxglove/CameraCalibration.idl +1 -1
- package/schemas/omgidl/foxglove/CircleAnnotation.idl +2 -1
- package/schemas/omgidl/foxglove/CompressedVideo.idl +1 -1
- package/schemas/omgidl/foxglove/PointsAnnotation.idl +2 -1
- package/schemas/omgidl/foxglove/TextAnnotation.idl +2 -1
- package/schemas/proto/foxglove/CameraCalibration.proto +1 -1
- package/schemas/proto/foxglove/CircleAnnotation.proto +2 -1
- package/schemas/proto/foxglove/CompressedVideo.proto +1 -1
- package/schemas/proto/foxglove/PointsAnnotation.proto +2 -1
- package/schemas/proto/foxglove/TextAnnotation.proto +2 -1
- package/schemas/ros1/CameraCalibration.msg +1 -1
- package/schemas/ros1/CircleAnnotation.msg +2 -1
- package/schemas/ros1/CompressedVideo.msg +1 -1
- package/schemas/ros1/PointsAnnotation.msg +2 -1
- package/schemas/ros1/TextAnnotation.msg +2 -1
- package/schemas/ros2/CameraCalibration.msg +1 -1
- package/schemas/ros2/CircleAnnotation.msg +2 -1
- package/schemas/ros2/CompressedVideo.msg +1 -1
- package/schemas/ros2/PointsAnnotation.msg +2 -1
- package/schemas/ros2/TextAnnotation.msg +2 -1
- package/schemas/typescript/CameraCalibration.d.ts +1 -1
- package/schemas/typescript/CameraCalibration.ts +1 -1
- package/schemas/typescript/CircleAnnotation.d.ts +4 -1
- package/schemas/typescript/CircleAnnotation.d.ts.map +1 -1
- package/schemas/typescript/CircleAnnotation.ts +4 -1
- package/schemas/typescript/CompressedVideo.d.ts +1 -1
- package/schemas/typescript/CompressedVideo.ts +1 -1
- package/schemas/typescript/PointsAnnotation.d.ts +4 -1
- package/schemas/typescript/PointsAnnotation.d.ts.map +1 -1
- package/schemas/typescript/PointsAnnotation.ts +4 -1
- package/schemas/typescript/TextAnnotation.d.ts +4 -1
- package/schemas/typescript/TextAnnotation.d.ts.map +1 -1
- package/schemas/typescript/TextAnnotation.ts +4 -1
package/.github/workflows/ci.yml
CHANGED
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
|
|
48
48
|
- name: Validate Flatbuffer definitions
|
|
49
49
|
run: |
|
|
50
|
-
output=$(flatc --ts -o /dev/null ./schemas/flatbuffer/*.fbs)
|
|
50
|
+
output=$(flatc --require-explicit-ids --ts -o /dev/null ./schemas/flatbuffer/*.fbs)
|
|
51
51
|
if [ -n "$output" ]; then
|
|
52
52
|
echo "::error::Flatbuffer schema compilation had warnings or errors. Fix them to proceed:"
|
|
53
53
|
echo "$output"
|
|
@@ -68,6 +68,8 @@ jobs:
|
|
|
68
68
|
defaults:
|
|
69
69
|
run:
|
|
70
70
|
working-directory: python
|
|
71
|
+
permissions:
|
|
72
|
+
id-token: write
|
|
71
73
|
steps:
|
|
72
74
|
- uses: actions/checkout@v3
|
|
73
75
|
- uses: arduino/setup-protoc@v1
|
|
@@ -93,8 +95,6 @@ jobs:
|
|
|
93
95
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
94
96
|
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }}
|
|
95
97
|
with:
|
|
96
|
-
user: __token__
|
|
97
|
-
password: ${{ secrets.TESTPYPI_API_TOKEN }}
|
|
98
98
|
packages_dir: python/foxglove-schemas-flatbuffer/dist
|
|
99
99
|
repository_url: https://test.pypi.org/legacy/
|
|
100
100
|
skip_existing: true
|
|
@@ -106,16 +106,12 @@ jobs:
|
|
|
106
106
|
startsWith(github.ref, 'refs/tags/releases/python/foxglove-schemas-flatbuffer/v')
|
|
107
107
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
108
108
|
with:
|
|
109
|
-
user: __token__
|
|
110
|
-
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
111
109
|
packages_dir: python/foxglove-schemas-flatbuffer/dist
|
|
112
110
|
|
|
113
111
|
- name: Publish foxglove-schemas-protobuf to TestPyPI
|
|
114
112
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
115
113
|
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }}
|
|
116
114
|
with:
|
|
117
|
-
user: __token__
|
|
118
|
-
password: ${{ secrets.TESTPYPI_API_TOKEN }}
|
|
119
115
|
packages_dir: python/foxglove-schemas-protobuf/dist
|
|
120
116
|
repository_url: https://test.pypi.org/legacy/
|
|
121
117
|
skip_existing: true
|
|
@@ -127,8 +123,6 @@ jobs:
|
|
|
127
123
|
startsWith(github.ref, 'refs/tags/releases/python/foxglove-schemas-protobuf/v')
|
|
128
124
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
129
125
|
with:
|
|
130
|
-
user: __token__
|
|
131
|
-
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
132
126
|
packages_dir: python/foxglove-schemas-protobuf/dist
|
|
133
127
|
|
|
134
128
|
ros:
|
|
@@ -137,9 +131,6 @@ jobs:
|
|
|
137
131
|
fail-fast: false
|
|
138
132
|
matrix:
|
|
139
133
|
include:
|
|
140
|
-
- docker_image: rostooling/setup-ros-docker:ubuntu-bionic-ros-melodic-ros-base-latest
|
|
141
|
-
ros_distribution: melodic
|
|
142
|
-
ros_version: 1
|
|
143
134
|
- docker_image: rostooling/setup-ros-docker:ubuntu-focal-ros-noetic-ros-base-latest
|
|
144
135
|
ros_distribution: noetic
|
|
145
136
|
ros_version: 1
|
|
@@ -152,6 +143,9 @@ jobs:
|
|
|
152
143
|
- docker_image: rostooling/setup-ros-docker:ubuntu-jammy-ros-humble-ros-base-latest
|
|
153
144
|
ros_distribution: humble
|
|
154
145
|
ros_version: 2
|
|
146
|
+
- docker_image: rostooling/setup-ros-docker:ubuntu-jammy-ros-iron-ros-base-latest
|
|
147
|
+
ros_distribution: iron
|
|
148
|
+
ros_version: 2
|
|
155
149
|
- docker_image: rostooling/setup-ros-docker:ubuntu-jammy-ros-rolling-ros-base-latest
|
|
156
150
|
ros_distribution: rolling
|
|
157
151
|
ros_version: 2
|
|
@@ -178,6 +172,11 @@ jobs:
|
|
|
178
172
|
run: |
|
|
179
173
|
sudo pip install pydocstyle==6.1.1
|
|
180
174
|
|
|
175
|
+
- name: Downgrade pytest as a workaround for https://github.com/scientific-python/pytest-doctestplus/issues/240
|
|
176
|
+
if: ${{ matrix.ros_distribution == 'humble' || matrix.ros_distribution == 'iron' || matrix.ros_distribution == 'rolling' }}
|
|
177
|
+
run: |
|
|
178
|
+
sudo pip install pytest==8.0.2
|
|
179
|
+
|
|
181
180
|
- name: build and test ros2
|
|
182
181
|
if: ${{ matrix.ros_version == 2 }}
|
|
183
182
|
uses: ros-tooling/action-ros-ci@master
|
package/.vscode/settings.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// -*- jsonc -*-
|
|
2
2
|
{
|
|
3
3
|
"editor.codeActionsOnSave": {
|
|
4
|
-
"source.fixAll.eslint":
|
|
4
|
+
"source.fixAll.eslint": "explicit"
|
|
5
5
|
},
|
|
6
6
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
7
7
|
"editor.formatOnSave": true,
|
|
@@ -18,12 +18,8 @@
|
|
|
18
18
|
},
|
|
19
19
|
"jest.jestCommandLine": "yarn test",
|
|
20
20
|
|
|
21
|
-
"python.formatting.provider": "black",
|
|
22
21
|
"python.analysis.typeCheckingMode": "strict",
|
|
23
|
-
"python.linting.flake8Enabled": true,
|
|
24
|
-
"python.linting.enabled": true,
|
|
25
|
-
"python.linting.flake8Args": ["--config", "python/.flake8"],
|
|
26
22
|
"[python]": {
|
|
27
|
-
"editor.defaultFormatter": "ms-python.
|
|
23
|
+
"editor.defaultFormatter": "ms-python.black-formatter"
|
|
28
24
|
}
|
|
29
25
|
}
|
package/README.md
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# @foxglove/schemas
|
|
2
2
|
|
|
3
|
-
Message schemas supported by [Foxglove
|
|
3
|
+
Message schemas supported by [Foxglove](https://foxglove.dev)
|
|
4
4
|
|
|
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) |
|
|
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/#iron) [](https://index.ros.org/p/foxglove_msgs/github-foxglove-schemas/#rolling) |
|
|
11
11
|
|
|
12
12
|
## Introduction
|
|
13
13
|
|
|
14
|
-
See [Foxglove Schemas documentation](https://foxglove.dev/docs/
|
|
14
|
+
See [Foxglove Schemas documentation](https://docs.foxglove.dev/docs/visualization/message-schemas/introduction).
|
|
15
15
|
|
|
16
16
|
The [schemas](./schemas) folder contains type definitions generated for ROS 1, ROS 2, Protobuf, JSON Schema, TypeScript, and OMG IDL.
|
|
17
17
|
|
|
18
|
-
These schemas can be used in [MCAP](https://github.com/foxglove/mcap) files or [Foxglove WebSocket](https://github.com/foxglove/ws-protocol) servers to take advantage of Foxglove
|
|
18
|
+
These schemas can be used in [MCAP](https://github.com/foxglove/mcap) files or [Foxglove WebSocket](https://github.com/foxglove/ws-protocol) servers to take advantage of Foxglove's visualizations.
|
|
19
19
|
|
|
20
20
|
## License
|
|
21
21
|
|
|
@@ -54,8 +54,8 @@ The following is a modified version of [bloom release instructions](https://wiki
|
|
|
54
54
|
3. Push the newly created commit and tag
|
|
55
55
|
4. Run `bloom-release foxglove_msgs --ros-distro humble`, for each distro you want to publish the release to. Follow the prompts, and the script will automatically make a PR to the [ros/rosdistro](https://github.com/ros/rosdistro) repo.
|
|
56
56
|
|
|
57
|
-
Packages will be available via apt after the [next sync](https://discourse.ros.org/c/release/16). View package build status prior to the sync at: [melodic](http://repositories.ros.org/status_page/ros_melodic_default.html?q=foxglove), [noetic](http://repositories.ros.org/status_page/ros_noetic_default.html?q=foxglove), [foxy](http://repo.ros2.org/status_page/ros_foxy_default.html?q=foxglove), [galactic](http://repo.ros2.org/status_page/ros_galactic_default.html?q=foxglove), [humble](http://repo.ros2.org/status_page/ros_humble_default.html?q=foxglove), [rolling](http://repo.ros2.org/status_page/ros_rolling_default.html?q=foxglove)
|
|
57
|
+
Packages will be available via apt after the [next sync](https://discourse.ros.org/c/release/16). View package build status prior to the sync at: [melodic](http://repositories.ros.org/status_page/ros_melodic_default.html?q=foxglove), [noetic](http://repositories.ros.org/status_page/ros_noetic_default.html?q=foxglove), [foxy](http://repo.ros2.org/status_page/ros_foxy_default.html?q=foxglove), [galactic](http://repo.ros2.org/status_page/ros_galactic_default.html?q=foxglove), [humble](http://repo.ros2.org/status_page/ros_humble_default.html?q=foxglove), [iron](http://repo.ros2.org/status_page/ros_iron_default.html?q=foxglove), [rolling](http://repo.ros2.org/status_page/ros_rolling_default.html?q=foxglove)
|
|
58
58
|
|
|
59
59
|
## Stay in touch
|
|
60
60
|
|
|
61
|
-
Join our [Slack channel](https://foxglove.dev/
|
|
61
|
+
Join our [Slack channel](https://foxglove.dev/slack) to ask questions, share feedback, and stay up to date on what our team is working on.
|
|
@@ -51,7 +51,7 @@ export type CameraCalibration = {
|
|
|
51
51
|
/**
|
|
52
52
|
* Name of distortion model
|
|
53
53
|
*
|
|
54
|
-
* Supported
|
|
54
|
+
* Supported parameters: \`plumb_bob\` (k1, k2, p1, p2, k3) and \`rational_polynomial\` (k1, k2, p1, p2, k3, k4, k5, k6). Distortion models are based on [OpenCV's](https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html) [pinhole camera model](https://en.wikipedia.org/wiki/Distortion_%28optics%29#Software_correction). This is the same [implementation used by ROS](http://docs.ros.org/en/diamondback/api/image_geometry/html/c++/pinhole__camera__model_8cpp_source.html)
|
|
55
55
|
*/
|
|
56
56
|
distortion_model: string;
|
|
57
57
|
|
|
@@ -122,7 +122,10 @@ export type CircleAnnotation = {
|
|
|
122
122
|
/** Timestamp of circle */
|
|
123
123
|
timestamp: Time;
|
|
124
124
|
|
|
125
|
-
/**
|
|
125
|
+
/**
|
|
126
|
+
* Center of the circle in 2D image coordinates (pixels).
|
|
127
|
+
* The coordinate uses the top-left corner of the top-left pixel of the image as the origin.
|
|
128
|
+
*/
|
|
126
129
|
position: Point2;
|
|
127
130
|
|
|
128
131
|
/** Circle diameter in pixels */
|
|
@@ -200,7 +203,7 @@ export type CompressedVideo = {
|
|
|
200
203
|
/**
|
|
201
204
|
* Compressed video frame data.
|
|
202
205
|
*
|
|
203
|
-
* For packet-based video codecs this data must begin and end on packet boundaries (no partial packets), and must contain enough video packets to decode exactly one image (either a keyframe or delta frame). Note: Foxglove
|
|
206
|
+
* For packet-based video codecs this data must begin and end on packet boundaries (no partial packets), and must contain enough video packets to decode exactly one image (either a keyframe or delta frame). Note: Foxglove does not support video streams that include B frames because they require lookahead.
|
|
204
207
|
*/
|
|
205
208
|
data: Uint8Array;
|
|
206
209
|
|
|
@@ -708,7 +711,10 @@ export type PointsAnnotation = {
|
|
|
708
711
|
/** Type of points annotation to draw */
|
|
709
712
|
type: PointsAnnotationType;
|
|
710
713
|
|
|
711
|
-
/**
|
|
714
|
+
/**
|
|
715
|
+
* Points in 2D image coordinates (pixels).
|
|
716
|
+
* These coordinates use the top-left corner of the top-left pixel of the image as the origin.
|
|
717
|
+
*/
|
|
712
718
|
points: Point2[];
|
|
713
719
|
|
|
714
720
|
/** Outline color */
|
|
@@ -857,7 +863,10 @@ export type TextAnnotation = {
|
|
|
857
863
|
/** Timestamp of annotation */
|
|
858
864
|
timestamp: Time;
|
|
859
865
|
|
|
860
|
-
/**
|
|
866
|
+
/**
|
|
867
|
+
* Bottom-left origin of the text label in 2D image coordinates (pixels).
|
|
868
|
+
* The coordinate uses the top-left corner of the top-left pixel of the image as the origin.
|
|
869
|
+
*/
|
|
861
870
|
position: Point2;
|
|
862
871
|
|
|
863
872
|
/** Text to display */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FoxgloveEnumSchema, FoxgloveSchema } from "./types";
|
|
2
|
-
export declare const BYTE_VECTOR_FB = "\nnamespace foxglove;\n\n/// Used for nesting byte vectors\ntable ByteVector {\n data:[uint8];\n}\nroot_type ByteVector;\n";
|
|
2
|
+
export declare const BYTE_VECTOR_FB = "\nnamespace foxglove;\n\n/// Used for nesting byte vectors\ntable ByteVector {\n data:[uint8] (id: 0);\n}\nroot_type ByteVector;\n";
|
|
3
3
|
export declare const TIME_FB = "\nnamespace foxglove;\n\nstruct Time {\n /// Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z\n sec:uint32;\n /// Nano-second fractions from 0 to 999,999,999 inclusive\n nsec:uint32;\n}\n";
|
|
4
|
-
export declare const DURATION_FB = "\nnamespace foxglove;\n\nstruct Duration {\n /// Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.\n sec:int32;\n /// if sec === 0 : -999,999,999 <= nsec <= +999,999,999
|
|
4
|
+
export declare const DURATION_FB = "\nnamespace foxglove;\n\nstruct Duration {\n /// Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.\n sec:int32;\n /// if sec === 0 : -999,999,999 <= nsec <= +999,999,999\n /// otherwise sign of sec must match sign of nsec or be 0 and abs(nsec) <= 999,999,999\n nsec:int32;\n}\n";
|
|
5
5
|
export declare function generateFlatbuffers(schema: FoxgloveSchema, nestedEnums: FoxgloveEnumSchema[]): string;
|
|
6
6
|
//# sourceMappingURL=generateFlatbufferSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateFlatbufferSchema.d.ts","sourceRoot":"","sources":["generateFlatbufferSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,cAAc,EAAE,MAAM,SAAS,CAAC;AAGhF,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"generateFlatbufferSchema.d.ts","sourceRoot":"","sources":["generateFlatbufferSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,cAAc,EAAE,MAAM,SAAS,CAAC;AAGhF,eAAO,MAAM,cAAc,wIAQ1B,CAAC;AAGF,eAAO,MAAM,OAAO,wNASnB,CAAC;AAEF,eAAO,MAAM,WAAW,8UAUvB,CAAC;AAiBF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,kBAAkB,EAAE,GAChC,MAAM,CAqIR"}
|
|
@@ -7,7 +7,7 @@ namespace foxglove;
|
|
|
7
7
|
|
|
8
8
|
/// Used for nesting byte vectors
|
|
9
9
|
table ByteVector {
|
|
10
|
-
data:[uint8];
|
|
10
|
+
data:[uint8] (id: 0);
|
|
11
11
|
}
|
|
12
12
|
root_type ByteVector;
|
|
13
13
|
`;
|
|
@@ -28,7 +28,7 @@ namespace foxglove;
|
|
|
28
28
|
struct Duration {
|
|
29
29
|
/// Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
|
|
30
30
|
sec:int32;
|
|
31
|
-
/// if sec === 0 : -999,999,999 <= nsec <= +999,999,999
|
|
31
|
+
/// if sec === 0 : -999,999,999 <= nsec <= +999,999,999
|
|
32
32
|
/// otherwise sign of sec must match sign of nsec or be 0 and abs(nsec) <= 999,999,999
|
|
33
33
|
nsec:int32;
|
|
34
34
|
}
|
|
@@ -79,7 +79,7 @@ function generateFlatbuffers(schema, nestedEnums) {
|
|
|
79
79
|
break;
|
|
80
80
|
}
|
|
81
81
|
case "message": {
|
|
82
|
-
const fields = schema.fields.map((field) => {
|
|
82
|
+
const fields = schema.fields.map((field, fieldId) => {
|
|
83
83
|
const isArray = field.array != undefined;
|
|
84
84
|
let type;
|
|
85
85
|
switch (field.type.type) {
|
|
@@ -151,7 +151,7 @@ function generateFlatbuffers(schema, nestedEnums) {
|
|
|
151
151
|
// can't have inline comments, so the lengthComment needs to be above
|
|
152
152
|
lengthComment ?? ""
|
|
153
153
|
// convert field.name to lowercase for flatbuffer compilation compliance
|
|
154
|
-
} ${field.name.toLowerCase()}:${isArray ? `[${type}]` : type}${defaultValue ? ` = ${defaultValue}` : ""};`;
|
|
154
|
+
} ${field.name.toLowerCase()}:${isArray ? `[${type}]` : type}${defaultValue ? ` = ${defaultValue}` : ""} (id: ${fieldId});`;
|
|
155
155
|
});
|
|
156
156
|
definition = `${enumDefinitions.join("\n\n")}/// ${schema.description}\ntable ${schema.name} {\n${fields.join("\n\n")}\n}\n\nroot_type ${schema.name};`;
|
|
157
157
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateFlatbufferSchema.js","sourceRoot":"","sources":["generateFlatbufferSchema.ts"],"names":[],"mappings":";;;AAEA,qDAAqD;AACxC,QAAA,cAAc,GAAG;;;;;;;;CAQ7B,CAAC;AAEF,mCAAmC;AACtB,QAAA,OAAO,GAAG;;;;;;;;;CAStB,CAAC;AAEW,QAAA,WAAW,GAAG;;;;;;;;;;CAU1B,CAAC;AAEF,SAAS,sBAAsB,CAAC,IAAqD;IACnF,QAAQ,IAAI,EAAE;QACZ,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;KACnB;AACH,CAAC;AAED,SAAgB,mBAAmB,CACjC,MAAsB,EACtB,WAAiC;IAEjC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;YACpE,IAAI,WAAW,IAAI,SAAS,EAAE;gBAC5B,OAAO,OAAO,WAAW,OAAO,IAAI,MAAM,KAAK,GAAG,CAAC;aACpD;iBAAM;gBACL,OAAO,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;aAC9B;QACH,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,IAAI;QAClB,oEAAoE;QACpE,OAAO,UAAU,CAAC,WAAW,UAAU,UAAU,CAAC,IAAI,iBAAiB,MAAM,CAAC,IAAI,CAChF,QAAQ,CACT,OAAO,CACT,CAAC;KACH;IAED,IAAI,UAAU,CAAC;IACf,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;gBAChE,IAAI,WAAW,IAAI,SAAS,EAAE;oBAC5B,OAAO,OAAO,WAAW,OAAO,IAAI,MAAM,KAAK,GAAG,CAAC;iBACpD;qBAAM;oBACL,OAAO,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;YAEH,oEAAoE;YACpE,UAAU,GAAG,OAAO,MAAM,CAAC,WAAW,UAAU,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,IAAI,CACrF,QAAQ,CACT,OAAO,CAAC;YACT,MAAM;SACP;QACD,KAAK,SAAS,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"generateFlatbufferSchema.js","sourceRoot":"","sources":["generateFlatbufferSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,83 +25,83 @@ describe("generateFlatbuffers", () => {
|
|
|
25
25
|
/// An example type
|
|
26
26
|
table ExampleMessage {
|
|
27
27
|
/// duration field
|
|
28
|
-
field_duration:Duration;
|
|
28
|
+
field_duration:Duration (id: 0);
|
|
29
29
|
|
|
30
30
|
/// time field
|
|
31
|
-
field_time:Time;
|
|
31
|
+
field_time:Time (id: 1);
|
|
32
32
|
|
|
33
33
|
/// boolean field
|
|
34
|
-
field_boolean:bool = true;
|
|
34
|
+
field_boolean:bool = true (id: 2);
|
|
35
35
|
|
|
36
36
|
/// bytes field
|
|
37
|
-
field_bytes:[uint8];
|
|
37
|
+
field_bytes:[uint8] (id: 3);
|
|
38
38
|
|
|
39
39
|
/// float64 field
|
|
40
|
-
field_float64:double = 1.0;
|
|
40
|
+
field_float64:double = 1.0 (id: 4);
|
|
41
41
|
|
|
42
42
|
/// uint32 field
|
|
43
|
-
field_uint32:uint32 = 5;
|
|
43
|
+
field_uint32:uint32 = 5 (id: 5);
|
|
44
44
|
|
|
45
45
|
/// string field
|
|
46
|
-
field_string:string = "string-type";
|
|
46
|
+
field_string:string = "string-type" (id: 6);
|
|
47
47
|
|
|
48
48
|
/// duration array field
|
|
49
|
-
field_duration_array:[Duration];
|
|
49
|
+
field_duration_array:[Duration] (id: 7);
|
|
50
50
|
|
|
51
51
|
/// time array field
|
|
52
|
-
field_time_array:[Time];
|
|
52
|
+
field_time_array:[Time] (id: 8);
|
|
53
53
|
|
|
54
54
|
/// boolean array field
|
|
55
|
-
field_boolean_array:[bool];
|
|
55
|
+
field_boolean_array:[bool] (id: 9);
|
|
56
56
|
|
|
57
57
|
/// bytes array field
|
|
58
|
-
field_bytes_array:[ByteVector];
|
|
58
|
+
field_bytes_array:[ByteVector] (id: 10);
|
|
59
59
|
|
|
60
60
|
/// float64 array field
|
|
61
|
-
field_float64_array:[double];
|
|
61
|
+
field_float64_array:[double] (id: 11);
|
|
62
62
|
|
|
63
63
|
/// uint32 array field
|
|
64
|
-
field_uint32_array:[uint32];
|
|
64
|
+
field_uint32_array:[uint32] (id: 12);
|
|
65
65
|
|
|
66
66
|
/// string array field
|
|
67
|
-
field_string_array:[string];
|
|
67
|
+
field_string_array:[string] (id: 13);
|
|
68
68
|
|
|
69
69
|
/// duration fixed-length array field
|
|
70
70
|
/// length 3
|
|
71
|
-
field_duration_fixed_array:[Duration];
|
|
71
|
+
field_duration_fixed_array:[Duration] (id: 14);
|
|
72
72
|
|
|
73
73
|
/// time fixed-length array field
|
|
74
74
|
/// length 3
|
|
75
|
-
field_time_fixed_array:[Time];
|
|
75
|
+
field_time_fixed_array:[Time] (id: 15);
|
|
76
76
|
|
|
77
77
|
/// boolean fixed-length array field
|
|
78
78
|
/// length 3
|
|
79
|
-
field_boolean_fixed_array:[bool];
|
|
79
|
+
field_boolean_fixed_array:[bool] (id: 16);
|
|
80
80
|
|
|
81
81
|
/// bytes fixed-length array field
|
|
82
82
|
/// length 3
|
|
83
|
-
field_bytes_fixed_array:[ByteVector];
|
|
83
|
+
field_bytes_fixed_array:[ByteVector] (id: 17);
|
|
84
84
|
|
|
85
85
|
/// float64 fixed-length array field
|
|
86
86
|
/// length 3
|
|
87
|
-
field_float64_fixed_array:[double];
|
|
87
|
+
field_float64_fixed_array:[double] (id: 18);
|
|
88
88
|
|
|
89
89
|
/// uint32 fixed-length array field
|
|
90
90
|
/// length 3
|
|
91
|
-
field_uint32_fixed_array:[uint32];
|
|
91
|
+
field_uint32_fixed_array:[uint32] (id: 19);
|
|
92
92
|
|
|
93
93
|
/// string fixed-length array field
|
|
94
94
|
/// length 3
|
|
95
|
-
field_string_fixed_array:[string];
|
|
95
|
+
field_string_fixed_array:[string] (id: 20);
|
|
96
96
|
|
|
97
97
|
/// An enum field
|
|
98
|
-
field_enum:ExampleEnum;
|
|
98
|
+
field_enum:ExampleEnum (id: 21);
|
|
99
99
|
|
|
100
100
|
/// An enum array field
|
|
101
|
-
field_enum_array:[ExampleEnum];
|
|
101
|
+
field_enum_array:[ExampleEnum] (id: 22);
|
|
102
102
|
|
|
103
103
|
/// A nested field
|
|
104
|
-
field_nested:foxglove.NestedMessage;
|
|
104
|
+
field_nested:foxglove.NestedMessage (id: 23);
|
|
105
105
|
|
|
106
106
|
/// A nested array field
|
|
107
107
|
/// With
|
|
@@ -109,7 +109,7 @@ describe("generateFlatbuffers", () => {
|
|
|
109
109
|
/// very
|
|
110
110
|
/// long
|
|
111
111
|
/// description
|
|
112
|
-
field_nested_array:[foxglove.NestedMessage];
|
|
112
|
+
field_nested_array:[foxglove.NestedMessage] (id: 24);
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
root_type ExampleMessage;
|
|
@@ -24,83 +24,83 @@ describe("generateFlatbuffers", () => {
|
|
|
24
24
|
/// An example type
|
|
25
25
|
table ExampleMessage {
|
|
26
26
|
/// duration field
|
|
27
|
-
field_duration:Duration;
|
|
27
|
+
field_duration:Duration (id: 0);
|
|
28
28
|
|
|
29
29
|
/// time field
|
|
30
|
-
field_time:Time;
|
|
30
|
+
field_time:Time (id: 1);
|
|
31
31
|
|
|
32
32
|
/// boolean field
|
|
33
|
-
field_boolean:bool = true;
|
|
33
|
+
field_boolean:bool = true (id: 2);
|
|
34
34
|
|
|
35
35
|
/// bytes field
|
|
36
|
-
field_bytes:[uint8];
|
|
36
|
+
field_bytes:[uint8] (id: 3);
|
|
37
37
|
|
|
38
38
|
/// float64 field
|
|
39
|
-
field_float64:double = 1.0;
|
|
39
|
+
field_float64:double = 1.0 (id: 4);
|
|
40
40
|
|
|
41
41
|
/// uint32 field
|
|
42
|
-
field_uint32:uint32 = 5;
|
|
42
|
+
field_uint32:uint32 = 5 (id: 5);
|
|
43
43
|
|
|
44
44
|
/// string field
|
|
45
|
-
field_string:string = "string-type";
|
|
45
|
+
field_string:string = "string-type" (id: 6);
|
|
46
46
|
|
|
47
47
|
/// duration array field
|
|
48
|
-
field_duration_array:[Duration];
|
|
48
|
+
field_duration_array:[Duration] (id: 7);
|
|
49
49
|
|
|
50
50
|
/// time array field
|
|
51
|
-
field_time_array:[Time];
|
|
51
|
+
field_time_array:[Time] (id: 8);
|
|
52
52
|
|
|
53
53
|
/// boolean array field
|
|
54
|
-
field_boolean_array:[bool];
|
|
54
|
+
field_boolean_array:[bool] (id: 9);
|
|
55
55
|
|
|
56
56
|
/// bytes array field
|
|
57
|
-
field_bytes_array:[ByteVector];
|
|
57
|
+
field_bytes_array:[ByteVector] (id: 10);
|
|
58
58
|
|
|
59
59
|
/// float64 array field
|
|
60
|
-
field_float64_array:[double];
|
|
60
|
+
field_float64_array:[double] (id: 11);
|
|
61
61
|
|
|
62
62
|
/// uint32 array field
|
|
63
|
-
field_uint32_array:[uint32];
|
|
63
|
+
field_uint32_array:[uint32] (id: 12);
|
|
64
64
|
|
|
65
65
|
/// string array field
|
|
66
|
-
field_string_array:[string];
|
|
66
|
+
field_string_array:[string] (id: 13);
|
|
67
67
|
|
|
68
68
|
/// duration fixed-length array field
|
|
69
69
|
/// length 3
|
|
70
|
-
field_duration_fixed_array:[Duration];
|
|
70
|
+
field_duration_fixed_array:[Duration] (id: 14);
|
|
71
71
|
|
|
72
72
|
/// time fixed-length array field
|
|
73
73
|
/// length 3
|
|
74
|
-
field_time_fixed_array:[Time];
|
|
74
|
+
field_time_fixed_array:[Time] (id: 15);
|
|
75
75
|
|
|
76
76
|
/// boolean fixed-length array field
|
|
77
77
|
/// length 3
|
|
78
|
-
field_boolean_fixed_array:[bool];
|
|
78
|
+
field_boolean_fixed_array:[bool] (id: 16);
|
|
79
79
|
|
|
80
80
|
/// bytes fixed-length array field
|
|
81
81
|
/// length 3
|
|
82
|
-
field_bytes_fixed_array:[ByteVector];
|
|
82
|
+
field_bytes_fixed_array:[ByteVector] (id: 17);
|
|
83
83
|
|
|
84
84
|
/// float64 fixed-length array field
|
|
85
85
|
/// length 3
|
|
86
|
-
field_float64_fixed_array:[double];
|
|
86
|
+
field_float64_fixed_array:[double] (id: 18);
|
|
87
87
|
|
|
88
88
|
/// uint32 fixed-length array field
|
|
89
89
|
/// length 3
|
|
90
|
-
field_uint32_fixed_array:[uint32];
|
|
90
|
+
field_uint32_fixed_array:[uint32] (id: 19);
|
|
91
91
|
|
|
92
92
|
/// string fixed-length array field
|
|
93
93
|
/// length 3
|
|
94
|
-
field_string_fixed_array:[string];
|
|
94
|
+
field_string_fixed_array:[string] (id: 20);
|
|
95
95
|
|
|
96
96
|
/// An enum field
|
|
97
|
-
field_enum:ExampleEnum;
|
|
97
|
+
field_enum:ExampleEnum (id: 21);
|
|
98
98
|
|
|
99
99
|
/// An enum array field
|
|
100
|
-
field_enum_array:[ExampleEnum];
|
|
100
|
+
field_enum_array:[ExampleEnum] (id: 22);
|
|
101
101
|
|
|
102
102
|
/// A nested field
|
|
103
|
-
field_nested:foxglove.NestedMessage;
|
|
103
|
+
field_nested:foxglove.NestedMessage (id: 23);
|
|
104
104
|
|
|
105
105
|
/// A nested array field
|
|
106
106
|
/// With
|
|
@@ -108,7 +108,7 @@ describe("generateFlatbuffers", () => {
|
|
|
108
108
|
/// very
|
|
109
109
|
/// long
|
|
110
110
|
/// description
|
|
111
|
-
field_nested_array:[foxglove.NestedMessage];
|
|
111
|
+
field_nested_array:[foxglove.NestedMessage] (id: 24);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
root_type ExampleMessage;
|
|
@@ -6,7 +6,7 @@ namespace foxglove;
|
|
|
6
6
|
|
|
7
7
|
/// Used for nesting byte vectors
|
|
8
8
|
table ByteVector {
|
|
9
|
-
data:[uint8];
|
|
9
|
+
data:[uint8] (id: 0);
|
|
10
10
|
}
|
|
11
11
|
root_type ByteVector;
|
|
12
12
|
`;
|
|
@@ -29,7 +29,7 @@ namespace foxglove;
|
|
|
29
29
|
struct Duration {
|
|
30
30
|
/// Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
|
|
31
31
|
sec:int32;
|
|
32
|
-
/// if sec === 0 : -999,999,999 <= nsec <= +999,999,999
|
|
32
|
+
/// if sec === 0 : -999,999,999 <= nsec <= +999,999,999
|
|
33
33
|
/// otherwise sign of sec must match sign of nsec or be 0 and abs(nsec) <= 999,999,999
|
|
34
34
|
nsec:int32;
|
|
35
35
|
}
|
|
@@ -90,7 +90,7 @@ export function generateFlatbuffers(
|
|
|
90
90
|
break;
|
|
91
91
|
}
|
|
92
92
|
case "message": {
|
|
93
|
-
const fields = schema.fields.map((field) => {
|
|
93
|
+
const fields = schema.fields.map((field, fieldId) => {
|
|
94
94
|
const isArray = field.array != undefined;
|
|
95
95
|
|
|
96
96
|
let type;
|
|
@@ -162,7 +162,7 @@ export function generateFlatbuffers(
|
|
|
162
162
|
// convert field.name to lowercase for flatbuffer compilation compliance
|
|
163
163
|
} ${field.name.toLowerCase()}:${isArray ? `[${type}]` : type}${
|
|
164
164
|
defaultValue ? ` = ${defaultValue}` : ""
|
|
165
|
-
};`;
|
|
165
|
+
} (id: ${fieldId});`;
|
|
166
166
|
});
|
|
167
167
|
|
|
168
168
|
definition = `${enumDefinitions.join("\n\n")}/// ${schema.description}\ntable ${
|
|
@@ -8,7 +8,7 @@ function generateMarkdown(schemas, enums) {
|
|
|
8
8
|
`\
|
|
9
9
|
# Foxglove schemas
|
|
10
10
|
|
|
11
|
-
See [Foxglove Schemas documentation](https://foxglove.dev/docs/
|
|
11
|
+
See [Foxglove Schemas documentation](https://docs.foxglove.dev/docs/visualization/message-schemas/introduction).
|
|
12
12
|
|
|
13
13
|
All schemas are generated from [schemas.ts](/internal/schemas.ts).`,
|
|
14
14
|
"## Contents",
|
|
@@ -11,7 +11,7 @@ export function generateMarkdown(
|
|
|
11
11
|
`\
|
|
12
12
|
# Foxglove schemas
|
|
13
13
|
|
|
14
|
-
See [Foxglove Schemas documentation](https://foxglove.dev/docs/
|
|
14
|
+
See [Foxglove Schemas documentation](https://docs.foxglove.dev/docs/visualization/message-schemas/introduction).
|
|
15
15
|
|
|
16
16
|
All schemas are generated from [schemas.ts](/internal/schemas.ts).`,
|
|
17
17
|
|
package/internal/generateRos.js
CHANGED
|
@@ -93,8 +93,8 @@ function generateRosMsgDefinition(schema, { rosVersion }) {
|
|
|
93
93
|
let fieldType;
|
|
94
94
|
switch (field.type.type) {
|
|
95
95
|
case "enum": {
|
|
96
|
-
// Add enum constants preceding the field so that
|
|
97
|
-
// https://foxglove.dev/docs/
|
|
96
|
+
// Add enum constants preceding the field so that Foxglove can pick them up:
|
|
97
|
+
// https://docs.foxglove.dev/docs/visualization/annotate-ros-enum-fields
|
|
98
98
|
const enumName = field.type.enum.name;
|
|
99
99
|
const valueType = "uint8";
|
|
100
100
|
fieldType = valueType;
|
|
@@ -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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"}
|