diff --git a/HOWTO.md b/HOWTO.md index 41d0687772..6a2cd3b39b 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -1,23 +1,26 @@ -libsbp Development Procedures -============================= +# libsbp Development Procedures -- [Adding and Testing New Messages](#adding-and-testing-new-messages) - * [Generating missing tests](#generating-missing-tests) -- [Message Guidelines](#message-guidelines) -- [Releasing New Versions of the Library](#releasing-new-versions-of-the-library) - * [Using Docker](#using-docker) - * [The Process](#the-process) -- [Installing QuickType](#installing-quicktype) -- [Distributing Rust](#distributing-rust) -- [Distributing Python](#distributing-python) - * [Troubleshooting](#troubleshooting) - + [Error: `!!! No Python wheel (.whl) file found...`](#error--no-python-wheel-whl-file-found) - + [Tox error: `ERROR: FAIL could not package project`](#tox-error-error-fail-could-not-package-project) - + [Tox error: `ERROR: cowardly refusing to delete envdir`](#tox-error-error-cowardly-refusing-to-delete-envdir) -- [Distributing Java](#distributing-java) -- [Contributions](#contributions) +- [libsbp Development Procedures](#libsbp-development-procedures) + - [Adding and Testing New Messages](#adding-and-testing-new-messages) + - [Generating missing tests](#generating-missing-tests) + - [Existing Messages](#existing-messages) + - [New Messages](#new-messages) + - [Message Guidelines](#message-guidelines) + - [Releasing New Versions of the Library](#releasing-new-versions-of-the-library) + - [Using Docker](#using-docker) + - [The Process](#the-process) + - [Installing QuickType](#installing-quicktype) + - [Distributing Rust](#distributing-rust) + - [Distributing Python](#distributing-python) + - [Troubleshooting](#troubleshooting) + - [Error: `!!! No Python wheel (.whl) file found...`](#error--no-python-wheel-whl-file-found) + - [Tox error: `ERROR: FAIL could not package project`](#tox-error-error-fail-could-not-package-project) + - [Tox error: `ERROR: cowardly refusing to delete envdir`](#tox-error-error-cowardly-refusing-to-delete-envdir) + - [Distributing Java](#distributing-java) + - [Generating GPG key for Java](#generating-gpg-key-for-java) + - [Contributions](#contributions) @@ -25,7 +28,7 @@ This document summarizes some practices around contributions to this library. These instructions don't come with a warranty yet, so please feel free to update it to mirror reality. -# Adding and Testing New Messages +## Adding and Testing New Messages Adding new SBP messages is currently a very organic, social process. This is likely to change in the future. @@ -41,8 +44,8 @@ process. This is likely to change in the future. by the corresponding number of new messages. 3. If adding a new "group" of messages (adding a new YAML file to - `spec/yaml/swiftnav/sbp`), add the new message group to - `python/sbp/table.py` and `javascript/sbp/msg.js`. + `spec/yaml/swiftnav/sbp`), add the new message group to + `python/sbp/table.py` and `javascript/sbp/msg.js`. 4. Generate new clients and documentation by running `make all`. Verify that the generated code, which isn't too complicated, @@ -66,14 +69,16 @@ process. This is likely to change in the future. new message, deploy the updated Python client first, and then the C client. We haven't quite decided on the details of this process. -## Generating missing tests +### Generating missing tests + There are some tools that can assist with generating YAML based tests, like the ones already defined in the [`test`](spec/tests/yaml/swiftnav/sbp) directory. These YAML files are used to generate tests in the various languages that libsbp supports, to ensure that serializing and deserializing messages works as intended -### Existing Messages +#### Existing Messages + For messages that are already being sent (eg: by Starling, or by a Piksi), the `generator/missing.py` script can be used to connect to a socket and automatically generate tests for any received messages that do not already have @@ -81,11 +86,12 @@ tests. Usage for `missing`: -```shell +```sh python missing.py --host [HOST] --port [PORT] ``` -### New Messages +#### New Messages + The `json2test` script can be used to automatically generate tests for newly defined messages. The json2test script uses [uv](https://docs.astral.sh/uv/) to manage its dependencies, which can be installed following the instructions on that @@ -106,7 +112,7 @@ form: And then generate a test for using `json2test` with: -```shell +```sh uv -n run json2test.py --input heartbeat.json --output ../spec/tests/yaml/swiftnav/sbp/system/test_MsgHeartbeat.yaml ``` @@ -118,14 +124,14 @@ caching is turned off. Usage for `json2test` -```shell +```sh uv -n run json2test --input [PATH_TO_JSON_IN] --output [PATH_TO_YAML_OUT] ``` -* The `msg_type` can also be provided through a CLI parameter, with `--msg-id +- The `msg_type` can also be provided through a CLI parameter, with `--msg-id [MESSAGE_ID]` -# Message Guidelines +## Message Guidelines Some thoughts to consider when adding a new message: @@ -156,23 +162,27 @@ Some thoughts to consider when adding a new message: contents is fine, as long as the migrating consumers is a well-understood process. -# Releasing New Versions of the Library +## Releasing New Versions of the Library -## Using Docker +### Using Docker It's highly recommended to use the docker container to run the release process, the docker container can be pulled from DockerHub and launched via this command: - docker run -v $PWD:/mnt/workspace -i -t swiftnav/libsbp-build:2025-02-10 +```sh +docker run -v $PWD:/mnt/workspace -i -t swiftnav/libsbp-build:2025-02-10 +``` You can invoke individual stages like so: - docker run -v $PWD:/mnt/workspace -i -t swiftnav/libsbp-build:2025-02-10 \ - /bin/bash -c "make python" +```sh +docker run -v $PWD:/mnt/workspace -i -t swiftnav/libsbp-build:2025-02-10 \ + /bin/bash -c "make python" +``` Check this [link](https://hub.docker.com/r/swiftnav/libsbp-build/tags) for newer tags. -## The Process +### The Process Oh boy, so you've decided to release a new version of libsbp. It's recommended this process is performed using the above docker container. You'll likely want @@ -181,27 +191,27 @@ inside the container (so you don't have to setup git inside the docker container This process describes running `make ` in multiple places. These targets will both regenerate the language bindings and then build and run any test suites. -Skipping tests should not be done by default, but most languages have a "gen" target -available - `make gen-` - which will only regenerate the bindings without +Skipping tests should not be done by default, but most languages have a "gen" target +available - `make gen-` - which will only regenerate the bindings without running tests. This can be used to split or speed up the process should any errors occur and something needs to be repeated. 1. It's easiest to do this on the master branch. Start by tagging the release version: - ```shell + ```sh # Produces most recent tag (e.g., v2.7.5) git describe --abbrev=0 --tags # Increment that value, create a new one (e.g, v2.7.6) git tag -a -m "Version of libsbp." ``` - For library versions (i.e. ``) we try to follow + For library versions (i.e. ``) we try to follow [SemVer](https://semver.org/). For message versioning refer to this [document on versioning](./VERSIONING.md). - + 2. Make sure that the repo is reported as clean, e.g. - ```shell + ```sh git describe --tags --dirty --always ``` @@ -210,7 +220,7 @@ and something needs to be repeated. 3. Run make targets for each language and re-tag. For python: - ```shell + ```sh make python git add python/sbp/RELEASE-VERSION git commit -m 'Release ' @@ -220,22 +230,22 @@ and something needs to be repeated. For Java, jsonschema, and Protobuf (these should not require bumping the git tag, unless the generated files are out of date): - ```shell + ```sh make java jsonschema protobuf ``` For C, Haskell and JavaScript (JavaScript, make needs to be run twice to update the package information): - ```shell + ```sh make c haskell javascript rust git add c/include/libsbp/version.h haskell/sbp.cabal rust/sbp/Cargo.toml git commit --amend -a -m 'Release ' git tag -f -a INCREMENTED_TAG -m "Version INCREMENTED_TAG of libsbp." ``` - For JavaScript, needs to be run twice to update the package information - ```shell + + ```sh make javascript make javascript git add javascript/sbp/RELEASE-VERSION package.json package-lock.json @@ -244,7 +254,7 @@ and something needs to be repeated. For Kaitai - ```shell + ```sh make kaitai git add kaitai/ksy/sbp.ksy git commit --amend -a -m 'Release ' @@ -252,17 +262,17 @@ and something needs to be repeated. 4. Build the docs: - ```shell + ```sh make docs ``` - + Be sure to inspect the [docs](docs/sbp.pdf) manually, as LaTeX sometimes needs to be run multiple - times to compile properly. If something looks off with the docs, run `make docs` repeatedly until + times to compile properly. If something looks off with the docs, run `make docs` repeatedly until the issue is fixed. Then commit the docs and re-tag: - ```shell + ```sh git add docs/sbp.pdf git commit --amend -a -m 'Release ' git tag -f -a INCREMENTED_TAG -m "Version INCREMENTED_TAG of libsbp." @@ -281,7 +291,8 @@ and something needs to be repeated. documentation are consistent. 7. Push the release to GitHub: - ```shell + + ```sh git push origin master ``` @@ -302,7 +313,7 @@ and something needs to be repeated. Again, javascript needs to be built twice to get the correct package versions - ``` + ```sh git commit --allow-empty -m "prep for next release #no_auto_pr" make all make javascript @@ -311,28 +322,28 @@ and something needs to be repeated. git push origin master ``` -9. Distribute release packages. You can attempt to run all releases - with `make dist` -- this will likely not work through... it is - advisable to run each dist target separately. In particular: +10. Distribute release packages. You can attempt to run all releases + with `make dist` -- this will likely not work through... it is + advisable to run each dist target separately. In particular: - - `make dist-javascript` - - `make dist-haskell` - - `make dist-rust` (see section on Rust below) - - `make dist-python` (see section on Python below) - - `make dist-java` (see section on Java below) + - `make dist-javascript` + - `make dist-haskell` + - `make dist-rust` (see section on Rust below) + - `make dist-python` (see section on Python below) + - `make dist-java` (see section on Java below) - You may need credentials on the appropriate package repositories. Ignore the - GPG error in `stack`, the package will get uploaded correctly anyway. If - the release is a Python only change it may be appropriate to just publish to - PyPI with `make dist-python` (see section on Python below) -- we typically - update all other supported languages when we make an official firmware - release. + You may need credentials on the appropriate package repositories. Ignore the + GPG error in `stack`, the package will get uploaded correctly anyway. If + the release is a Python only change it may be appropriate to just publish to + PyPI with `make dist-python` (see section on Python below) -- we typically + update all other supported languages when we make an official firmware + release. -10. Releases are not only never perfect, they never really end. Please +11. Releases are not only never perfect, they never really end. Please pay special attention to any downstream projects or users that may have issues or regressions as a consequence of the release version. -# Installing QuickType +## Installing QuickType For web clients we generate JSON schema definitions of the SBP message. This allows web clients to build "native" objects out of SBP JSON. @@ -343,36 +354,36 @@ In order to run the `make quicktype-*` target you need to install the quicktype tool first. No particular version of this tool is required at the moment. -# Distributing Rust +## Distributing Rust To distribute Rust. Use the `cargo-release` tool: -``` +```sh cargo install cargo-release ``` Once you have logged in to crates.io with `cargo`: -```shell +```sh cargo release --allow-branch HEAD --execute ``` Then rollback any commits that are created: -``` +```sh git reset --hard v ``` -# Distributing Python +## Distributing Python The build of the libsbp wheel can be done via the `libsbp-build` container described above. You must have the correct token set in your environment to publish to PyPI. -## Troubleshooting +### Troubleshooting -### Error: `!!! No Python wheel (.whl) file found...` +#### Error: `!!! No Python wheel (.whl) file found...` This usually means the git checkout you're building from is not in a "clean" state. The build scripts will use the git command `git describe --tag --always --dirty` to generate @@ -380,47 +391,55 @@ a version. Either temporarily force update the tag with `git tag -f vM.N.X` (do push this unintentionally) and/or make sure you're submodule are up-to-date with `git submodule update --init --checkout --recursive`. -### Tox error: `ERROR: FAIL could not package project` +#### Tox error: `ERROR: FAIL could not package project` Tox needs to be run with the Python it was installed with (and apparently must run with Python 2) otherwise you'll get an error similar to: +```sh ERROR: FAIL could not package project - v = InvocationError('/home/ubuntu/dev/libsbp/python/.tox/.tox/bin/python setup.py sdist --formats=zip --dist-dir /home/ubuntu/dev/libsbp/python/.tox/dist', -11) +``` Tox also seems to have issues interacting with conda environments. The easiest way to work around this is to remove conda from your path and make sure tox is installed with a Python2 version of the interpreter. -### Tox error: `ERROR: cowardly refusing to delete envdir` +#### Tox error: `ERROR: cowardly refusing to delete envdir` Tox may fail with the following error: +```sh ERROR: cowardly refusing to delete `envdir` (it does not look like a virtualenv): /home/ubuntu/dev/libsbp/python/.tox/py38-nojit +``` -There's an open tox issue for this: https://github.com/tox-dev/tox/issues/1354 +There's an open tox issue for this: -- the only workaround that resolved this was to downgrade tox: +```sh pip install --upgrade --force-reinstall tox==3.12.1 +``` -# Distributing Java +## Distributing Java To distribute java, ensure you have the correct credentials and prerequisites + - Gradle 7+ - gradle.properties - Sonatype deployer account - Your own GPG key -## Generating GPG key for Java +### Generating GPG key for Java SonaType open source repo requires a GPG key for signatures. Generate GPG key via: -```shell +```sh gpg --gen-key gpg --export-secret-keys >keys.gpg ``` Export your public key -``` + +```sh gpg --export -a > pub.key ``` @@ -428,7 +447,7 @@ Go to [https://keyserver.ubuntu.com/#submitKey](https://keyserver.ubuntu.com/#su To locate the value for `signing.keyId` (needed below) run: -```shell +```sh ❯ gpg --list-keys --keyid-format short (base) /home/ubuntu/.gnupg/pubring.kbx ------------------------------- @@ -442,8 +461,7 @@ The `signing.keyId` value to use from above is `BB59B113`. The `/keys` folder to should map to location where your gpg key will be stored. Then, create `gradle.properties` in the `java` directory as follows: - -```shell +```sh # last 8 digit of gpg key signing.keyId=xxx # password for gpg key @@ -466,7 +484,7 @@ For more info see: -- [Installing sbp2json, json2sbp, json2json and related tools](#installing-sbp2json-json2sbp-json2json-and-related-tools) -- [Building / installing](#building--installing) - * [Using Docker](#using-docker) - + [Fetching the prebuilt image from DockerHub](#fetching-the-prebuilt-image-from-dockerhub) - + [Creating your own image](#creating-your-own-image) - + [Using the docker image](#using-the-docker-image) - * [Installing from package managers](#installing-from-package-managers) - * [Installing development Python versions](#installing-development-python-versions) - * [Adding development version as a pip dependency](#adding-development-version-as-a-pip-dependency) - * [Installing from source](#installing-from-source) -- [SBP Development Procedures](#sbp-development-procedures) -- [SBP Protocol Specification](#sbp-protocol-specification) -- [JSON Schema Definitions](#json-schema-definitions) -- [Kaitai Struct Format Descriptions](#kaitai-struct-format-descriptions) -- [LICENSE](#license) +- [Specification and Bindings for Swift Binary Protocol](#specification-and-bindings-for-swift-binary-protocol) + - [Installing sbp2json, json2sbp, json2json and related tools](#installing-sbp2json-json2sbp-json2json-and-related-tools) + - [Building / installing](#building--installing) + - [Using Docker](#using-docker) + - [Fetching the prebuilt image from DockerHub](#fetching-the-prebuilt-image-from-dockerhub) + - [Creating your own image](#creating-your-own-image) + - [Using the docker image](#using-the-docker-image) + - [Installing from package managers](#installing-from-package-managers) + - [Installing development Python versions](#installing-development-python-versions) + - [Adding development version as a pip dependency](#adding-development-version-as-a-pip-dependency) + - [Installing from source](#installing-from-source) + - [SBP Development Procedures](#sbp-development-procedures) + - [SBP Protocol Specification](#sbp-protocol-specification) + - [JSON Schema Definitions](#json-schema-definitions) + - [Kaitai Struct Format Descriptions](#kaitai-struct-format-descriptions) + - [Notes on python bindings](#notes-on-python-bindings) + - [LICENSE](#license) @@ -32,19 +34,19 @@ messages used with SBP, a compiler for generating message bindings, and client libraries in a variety of languages. This repository is organized into the following directory structure: -* [`docs`](./docs): Protocol documentation and message definitions. -* [`spec`](./spec): Machine readable protocol specification in +- [`docs`](./docs): Protocol documentation and message definitions. +- [`spec`](./spec): Machine readable protocol specification in [YAML](http://en.wikipedia.org/wiki/YAML). -* [`generator`](./generator): Simple, template-based generator for +- [`generator`](./generator): Simple, template-based generator for different languages. -* [`python`](./python): Python client and examples. -* [`c`](./c): C client library and examples. -* [`haskell`](./haskell): Haskell client and examples. -* [`java`](./java): Java client library and examples. -* [`javascript`](./javascript): JavaScript client library and examples. -* [`rust`](./rust): Rust client library and examples. -* [`sbpjson`](./sbpjson): Tools for parsing SBP-JSON. -* [`kaitai`](./kaitai): Kaitai Struct Format Description and generated code. +- [`python`](./python): Python client and examples. +- [`c`](./c): C client library and examples. +- [`haskell`](./haskell): Haskell client and examples. +- [`java`](./java): Java client library and examples. +- [`javascript`](./javascript): JavaScript client library and examples. +- [`rust`](./rust): Rust client library and examples. +- [`sbpjson`](./sbpjson): Tools for parsing SBP-JSON. +- [`kaitai`](./kaitai): Kaitai Struct Format Description and generated code. Except for the `generator`, all of the above are generated and should not be modified directly. @@ -72,7 +74,7 @@ your platform. To install from source, you can use Rust's cargo tool (first [install Rust](https://www.rust-lang.org/tools/install)), then run: -``` +```sh cargo install --git https://github.com/swift-nav/libsbp.git --bins ``` @@ -87,13 +89,13 @@ tool as well as a `sbp2prettyjson` tool. Finally, a Python version of the `sbp2json` tool exists, which is installable on any platform that supports Python via pip, e.g.: -``` +```sh pip3 install sbp ``` The tool can then be invoked as follows: -``` +```sh python3 -m sbp2json #egg=sbp&subdirectory=python" ``` Or add this to `requirements.txt`: -``` + +```sh git+https://github.com/swift-nav/libsbp@#egg=sbp&subdirectory=python ``` ### Installing from source + You can build one binding at a time or update all at once: -``` +```sh make python ``` or -``` +```sh make all ``` are both valid. To see a list of all valid targets, run `make help`. **Python version notes:** + 1. By default the Python targets `make python` and `make test-python` (as well as `make all`) run tests on all Python versions officially supported by *the libsbp Python bindings*, currently **3.6-3.9**, skipping any versions not @@ -256,7 +279,7 @@ detection. Please see [the docs](docs/sbp.pdf) for a full description of the packet structure and the message types. Developer documentation for the -language-specific sbp libraries is [here](http://swift-nav.github.io/libsbp/). +language-specific sbp libraries is available at [http://swift-nav.github.io/libsbp/](http://swift-nav.github.io/libsbp/). Please refer to [the changelog](CHANGELOG.md) for more information about the evolution of the library and its messages. @@ -281,19 +304,19 @@ respectively. The Kaitai Struct format description files can also potentially be used to generate bindings for the following targets: -* graphviz -* csharp -* rust -* java -* go -* cpp_stl -* php -* lua -* nim -* html -* ruby -* construct -* javascript +- graphviz +- csharp +- rust +- java +- go +- cpp_stl +- php +- lua +- nim +- html +- ruby +- construct +- javascript ### Notes on python bindings diff --git a/c/include/libsbp/cpp/message_traits.h b/c/include/libsbp/cpp/message_traits.h index 85a3d2d97b..7dbfc9f9ce 100644 --- a/c/include/libsbp/cpp/message_traits.h +++ b/c/include/libsbp/cpp/message_traits.h @@ -6438,6 +6438,44 @@ struct MessageTraits { } }; +template <> +struct MessageTraits { + static constexpr sbp_msg_type_t id = SbpMsgSsrFlagHighLevelDepA; + static constexpr const char *name = "MSG_SSR_FLAG_HIGH_LEVEL_DEP_A"; + static const sbp_msg_ssr_flag_high_level_dep_a_t &get(const sbp_msg_t &msg) { + return msg.ssr_flag_high_level_dep_a; + } + static sbp_msg_ssr_flag_high_level_dep_a_t &get(sbp_msg_t &msg) { + return msg.ssr_flag_high_level_dep_a; + } + static void to_sbp_msg(const sbp_msg_ssr_flag_high_level_dep_a_t &msg, + sbp_msg_t *sbp_msg) { + sbp_msg->ssr_flag_high_level_dep_a = msg; + } + static sbp_msg_t to_sbp_msg(const sbp_msg_ssr_flag_high_level_dep_a_t &msg) { + sbp_msg_t sbp_msg; + sbp_msg.ssr_flag_high_level_dep_a = msg; + return sbp_msg; + } + static s8 send(sbp_state_t *state, u16 sender_id, + const sbp_msg_ssr_flag_high_level_dep_a_t &msg, + sbp_write_fn_t write) { + return sbp_msg_ssr_flag_high_level_dep_a_send(state, sender_id, &msg, + write); + } + static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_ssr_flag_high_level_dep_a_t &msg) { + return sbp_msg_ssr_flag_high_level_dep_a_encode(buf, len, n_written, &msg); + } + static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_ssr_flag_high_level_dep_a_t *msg) { + return sbp_msg_ssr_flag_high_level_dep_a_decode(buf, len, n_read, msg); + } + static size_t encoded_len(const sbp_msg_ssr_flag_high_level_dep_a_t &msg) { + return sbp_msg_ssr_flag_high_level_dep_a_encoded_len(&msg); + } +}; + template <> struct MessageTraits { static constexpr sbp_msg_type_t id = SbpMsgSsrFlagHighLevel; diff --git a/c/include/libsbp/integrity.h b/c/include/libsbp/integrity.h index 2d2ff792e7..8ab8a8be95 100644 --- a/c/include/libsbp/integrity.h +++ b/c/include/libsbp/integrity.h @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/c/include/libsbp/integrity/MSG_SSR_FLAG_HIGH_LEVEL.h b/c/include/libsbp/integrity/MSG_SSR_FLAG_HIGH_LEVEL.h index a11c0aeffb..b880a2e20b 100644 --- a/c/include/libsbp/integrity/MSG_SSR_FLAG_HIGH_LEVEL.h +++ b/c/include/libsbp/integrity/MSG_SSR_FLAG_HIGH_LEVEL.h @@ -72,9 +72,14 @@ typedef struct { sbp_gps_time_sec_t obs_time; /** - * GNSS reference time of the correction associated to the flag. + * GNSS reference time of the ionospheric correction associated to the flag. */ - sbp_gps_time_sec_t corr_time; + sbp_gps_time_sec_t iono_corr_time; + + /** + * GNSS reference time of the satellite correction associated to the flag. + */ + sbp_gps_time_sec_t sat_corr_time; /** * SSR Solution ID. diff --git a/c/include/libsbp/integrity/MSG_SSR_FLAG_HIGH_LEVEL_DEP_A.h b/c/include/libsbp/integrity/MSG_SSR_FLAG_HIGH_LEVEL_DEP_A.h new file mode 100644 index 0000000000..455fd31f88 --- /dev/null +++ b/c/include/libsbp/integrity/MSG_SSR_FLAG_HIGH_LEVEL_DEP_A.h @@ -0,0 +1,254 @@ +/* + * Copyright (C) 2015-2021 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ + +/***************************************************************************** + * Automatically generated from yaml/swiftnav/sbp/integrity.yaml + * with generate.py. Please do not hand edit! + *****************************************************************************/ + +#ifndef LIBSBP_INTEGRITY_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_H +#define LIBSBP_INTEGRITY_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_H + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * + * SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A + * + *****************************************************************************/ +/** Deprecated + * + * Deprecated. + */ +typedef struct { + /** + * GNSS reference time of the observation used to generate the flag. + */ + sbp_gps_time_sec_t obs_time; + + /** + * GNSS reference time of the correction associated to the flag. + */ + sbp_gps_time_sec_t corr_time; + + /** + * SSR Solution ID. + */ + u8 ssr_sol_id; + + /** + * Unique identifier of the set this tile belongs to. + */ + u16 tile_set_id; + + /** + * Unique identifier of this tile in the tile set. + */ + u16 tile_id; + + /** + * Chain and type of flag. + */ + u8 chain_id; + + /** + * Use GPS satellites. + */ + u8 use_gps_sat; + + /** + * Use GAL satellites. + */ + u8 use_gal_sat; + + /** + * Use BDS satellites. + */ + u8 use_bds_sat; + + /** + * Use QZSS satellites. + */ + u8 use_qzss_sat; + + /** + * Reserved + */ + u8 reserved[SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_RESERVED_MAX]; + + /** + * Use tropo grid points. + */ + u8 use_tropo_grid_points; + + /** + * Use iono grid points. + */ + u8 use_iono_grid_points; + + /** + * Use iono tile satellite LoS. + */ + u8 use_iono_tile_sat_los; + + /** + * Use iono grid point satellite LoS. + */ + u8 use_iono_grid_point_sat_los; +} sbp_msg_ssr_flag_high_level_dep_a_t; + +/** + * Get encoded size of an instance of sbp_msg_ssr_flag_high_level_dep_a_t + * + * @param msg sbp_msg_ssr_flag_high_level_dep_a_t instance + * @return Length of on-wire representation + */ +static inline size_t sbp_msg_ssr_flag_high_level_dep_a_encoded_len( + const sbp_msg_ssr_flag_high_level_dep_a_t *msg) { + (void)msg; + return SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_ENCODED_LEN; +} + +/** + * Encode an instance of sbp_msg_ssr_flag_high_level_dep_a_t to wire + * representation + * + * This function encodes the given instance in to the user provided buffer. The + * buffer provided to this function must be large enough to store the encoded + * message otherwise it will return SBP_ENCODE_ERROR without writing anything to + * the buffer. + * + * Specify the length of the destination buffer in the \p len parameter. If + * non-null the number of bytes written to the buffer will be returned in \p + * n_written. + * + * @param buf Destination buffer + * @param len Length of \p buf + * @param n_written If not null, on success will be set to the number of bytes + * written to \p buf + * @param msg Instance of sbp_msg_ssr_flag_high_level_dep_a_t to encode + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 sbp_msg_ssr_flag_high_level_dep_a_encode( + uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_ssr_flag_high_level_dep_a_t *msg); + +/** + * Decode an instance of sbp_msg_ssr_flag_high_level_dep_a_t from wire + * representation + * + * This function decodes the wire representation of a + * sbp_msg_ssr_flag_high_level_dep_a_t message to the given instance. The caller + * must specify the length of the buffer in the \p len parameter. If non-null + * the number of bytes read from the buffer will be returned in \p n_read. + * + * @param buf Wire representation of the sbp_msg_ssr_flag_high_level_dep_a_t + * instance + * @param len Length of \p buf + * @param n_read If not null, on success will be set to the number of bytes read + * from \p buf + * @param msg Destination + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 sbp_msg_ssr_flag_high_level_dep_a_decode( + const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_ssr_flag_high_level_dep_a_t *msg); +/** + * Send an instance of sbp_msg_ssr_flag_high_level_dep_a_t with the given write + * function + * + * An equivalent of #sbp_message_send which operates specifically on + * sbp_msg_ssr_flag_high_level_dep_a_t + * + * The given message will be encoded to wire representation and passed in to the + * given write function callback. The write callback will be called several + * times for each invocation of this function. + * + * @param s SBP state + * @param sender_id SBP sender id + * @param msg Message to send + * @param write Write function + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 sbp_msg_ssr_flag_high_level_dep_a_send( + sbp_state_t *s, u16 sender_id, + const sbp_msg_ssr_flag_high_level_dep_a_t *msg, sbp_write_fn_t write); + +/** + * Compare two instances of sbp_msg_ssr_flag_high_level_dep_a_t + * + * The two instances will be compared and a value returned consistent with the + * return codes of comparison functions from the C standard library + * + * 0 will be returned if \p a and \p b are considered equal + * A value less than 0 will be returned if \p a is considered to be less than \p + * b A value greater than 0 will be returned if \p b is considered to be greater + * than \p b + * + * @param a sbp_msg_ssr_flag_high_level_dep_a_t instance + * @param b sbp_msg_ssr_flag_high_level_dep_a_t instance + * @return 0, <0, >0 + */ +SBP_EXPORT int sbp_msg_ssr_flag_high_level_dep_a_cmp( + const sbp_msg_ssr_flag_high_level_dep_a_t *a, + const sbp_msg_ssr_flag_high_level_dep_a_t *b); + +#ifdef __cplusplus +} + +static inline bool operator==(const sbp_msg_ssr_flag_high_level_dep_a_t &lhs, + const sbp_msg_ssr_flag_high_level_dep_a_t &rhs) { + return sbp_msg_ssr_flag_high_level_dep_a_cmp(&lhs, &rhs) == 0; +} + +static inline bool operator!=(const sbp_msg_ssr_flag_high_level_dep_a_t &lhs, + const sbp_msg_ssr_flag_high_level_dep_a_t &rhs) { + return sbp_msg_ssr_flag_high_level_dep_a_cmp(&lhs, &rhs) != 0; +} + +static inline bool operator<(const sbp_msg_ssr_flag_high_level_dep_a_t &lhs, + const sbp_msg_ssr_flag_high_level_dep_a_t &rhs) { + return sbp_msg_ssr_flag_high_level_dep_a_cmp(&lhs, &rhs) < 0; +} + +static inline bool operator<=(const sbp_msg_ssr_flag_high_level_dep_a_t &lhs, + const sbp_msg_ssr_flag_high_level_dep_a_t &rhs) { + return sbp_msg_ssr_flag_high_level_dep_a_cmp(&lhs, &rhs) <= 0; +} + +static inline bool operator>(const sbp_msg_ssr_flag_high_level_dep_a_t &lhs, + const sbp_msg_ssr_flag_high_level_dep_a_t &rhs) { + return sbp_msg_ssr_flag_high_level_dep_a_cmp(&lhs, &rhs) > 0; +} + +static inline bool operator>=(const sbp_msg_ssr_flag_high_level_dep_a_t &lhs, + const sbp_msg_ssr_flag_high_level_dep_a_t &rhs) { + return sbp_msg_ssr_flag_high_level_dep_a_cmp(&lhs, &rhs) >= 0; +} + +#endif // ifdef __cplusplus + +#endif /* LIBSBP_INTEGRITY_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_H */ diff --git a/c/include/libsbp/integrity_macros.h b/c/include/libsbp/integrity_macros.h index e565900f08..83f3df97f1 100644 --- a/c/include/libsbp/integrity_macros.h +++ b/c/include/libsbp/integrity_macros.h @@ -23,6 +23,193 @@ */ #define SBP_INTEGRITY_SSR_HEADER_ENCODED_LEN 14u +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_MASK (0x7u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_SHIFT (0u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_GET(flags) \ + ((u8)((u8)((flags) >> \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_SHIFT) & \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_MASK)) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_SET(flags, val) \ + do { \ + (flags) = (u8)( \ + (flags & \ + (~(SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_MASK \ + << SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_SHIFT))) | \ + (((val) & (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_MASK)) \ + << (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_SHIFT))); \ + } while (0) + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_NOMINAL (0) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_WARNING (1) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_ALERT (2) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GPS_SATELLITES_NOT_MONITORED (3) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_MASK (0x7u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_SHIFT (0u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_GET(flags) \ + ((u8)((u8)((flags) >> \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_SHIFT) & \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_MASK)) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_SET(flags, val) \ + do { \ + (flags) = (u8)( \ + (flags & \ + (~(SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_MASK \ + << SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_SHIFT))) | \ + (((val) & (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_MASK)) \ + << (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_SHIFT))); \ + } while (0) + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_NOMINAL (0) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_WARNING (1) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_ALERT (2) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_GAL_SATELLITES_NOT_MONITORED (3) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_MASK (0x7u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_SHIFT (0u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_GET(flags) \ + ((u8)((u8)((flags) >> \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_SHIFT) & \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_MASK)) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_SET(flags, val) \ + do { \ + (flags) = (u8)( \ + (flags & \ + (~(SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_MASK \ + << SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_SHIFT))) | \ + (((val) & (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_MASK)) \ + << (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_SHIFT))); \ + } while (0) + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_NOMINAL (0) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_WARNING (1) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_ALERT (2) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_BDS_SATELLITES_NOT_MONITORED (3) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_MASK (0x7u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_SHIFT (0u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_GET(flags) \ + ((u8)((u8)((flags) >> \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_SHIFT) & \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_MASK)) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_SET(flags, val) \ + do { \ + (flags) = (u8)( \ + (flags & \ + (~(SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_MASK \ + << SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_SHIFT))) | \ + (((val) & (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_MASK)) \ + << (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_SHIFT))); \ + } while (0) + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_NOMINAL (0) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_WARNING (1) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_ALERT (2) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_QZSS_SATELLITES_NOT_MONITORED (3) +/** + * The maximum number of items that can be stored in + * sbp_msg_ssr_flag_high_level_dep_a_t::reserved before the maximum SBP message + * size is exceeded + */ +#define SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_RESERVED_MAX 5u + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_MASK (0x7u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_SHIFT (0u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_GET(flags) \ + ((u8)((u8)((flags) >> \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_SHIFT) & \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_MASK)) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_SET(flags, val) \ + do { \ + (flags) = (u8)( \ + (flags & \ + (~(SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_MASK \ + << SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_SHIFT))) | \ + (((val) & (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_MASK)) \ + << (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_SHIFT))); \ + } while (0) + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_NOMINAL (0) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_WARNING (1) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_ALERT (2) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_TROPO_GRID_POINTS_NOT_MONITORED (3) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_MASK (0x7u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_SHIFT (0u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_GET(flags) \ + ((u8)((u8)((flags) >> \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_SHIFT) & \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_MASK)) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_SET(flags, val) \ + do { \ + (flags) = (u8)( \ + (flags & \ + (~(SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_MASK \ + << SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_SHIFT))) | \ + (((val) & (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_MASK)) \ + << (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_SHIFT))); \ + } while (0) + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_NOMINAL (0) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_WARNING (1) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_ALERT (2) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINTS_NOT_MONITORED (3) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_MASK (0x7u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_SHIFT (0u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_GET(flags) \ + ((u8)( \ + (u8)((flags) >> \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_SHIFT) & \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_MASK)) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_SET(flags, \ + val) \ + do { \ + (flags) = (u8)( \ + (flags & \ + (~(SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_MASK \ + << SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_SHIFT))) | \ + (((val) & \ + (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_MASK)) \ + << (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_SHIFT))); \ + } while (0) + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_NOMINAL (0) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_WARNING (1) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_ALERT (2) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_TILE_SATELLITE_LOS_NOT_MONITORED \ + (3) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_MASK \ + (0x7u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_SHIFT \ + (0u) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_GET( \ + flags) \ + ((u8)( \ + (u8)( \ + (flags) >> \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_SHIFT) & \ + SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_MASK)) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_SET( \ + flags, val) \ + do { \ + (flags) = (u8)( \ + (flags & \ + (~(SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_MASK \ + << SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_SHIFT))) | \ + (((val) & \ + (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_MASK)) \ + << (SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_SHIFT))); \ + } while (0) + +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_NOMINAL \ + (0) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_WARNING \ + (1) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_ALERT \ + (2) +#define SBP_SSR_FLAG_HIGH_LEVEL_DEP_A_USE_IONO_GRID_POINT_SATELLITE_LOS_NOT_MONITORED \ + (3) +/** + * Encoded length of sbp_msg_ssr_flag_high_level_dep_a_t + */ +#define SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_ENCODED_LEN 31u + #define SBP_SSR_FLAG_HIGH_LEVEL_USE_GPS_SATELLITES_MASK (0x7u) #define SBP_SSR_FLAG_HIGH_LEVEL_USE_GPS_SATELLITES_SHIFT (0u) #define SBP_SSR_FLAG_HIGH_LEVEL_USE_GPS_SATELLITES_GET(flags) \ @@ -186,7 +373,7 @@ /** * Encoded length of sbp_msg_ssr_flag_high_level_t */ -#define SBP_MSG_SSR_FLAG_HIGH_LEVEL_ENCODED_LEN 31u +#define SBP_MSG_SSR_FLAG_HIGH_LEVEL_ENCODED_LEN 37u /** * The maximum number of items that can be stored in diff --git a/c/include/libsbp/sbp_msg.h b/c/include/libsbp/sbp_msg.h index 754aeb8e79..16b29dcf84 100644 --- a/c/include/libsbp/sbp_msg.h +++ b/c/include/libsbp/sbp_msg.h @@ -237,6 +237,7 @@ typedef union { sbp_msg_specan_t specan; sbp_msg_ssr_code_biases_t ssr_code_biases; sbp_msg_ssr_code_phase_biases_bounds_t ssr_code_phase_biases_bounds; + sbp_msg_ssr_flag_high_level_dep_a_t ssr_flag_high_level_dep_a; sbp_msg_ssr_flag_high_level_t ssr_flag_high_level; sbp_msg_ssr_flag_iono_grid_point_sat_los_t ssr_flag_iono_grid_point_sat_los; sbp_msg_ssr_flag_iono_grid_points_t ssr_flag_iono_grid_points; @@ -800,6 +801,9 @@ static inline s8 sbp_message_encode(uint8_t *buf, uint8_t len, case SbpMsgSsrCodePhaseBiasesBounds: return sbp_msg_ssr_code_phase_biases_bounds_encode( buf, len, n_written, &msg->ssr_code_phase_biases_bounds); + case SbpMsgSsrFlagHighLevelDepA: + return sbp_msg_ssr_flag_high_level_dep_a_encode( + buf, len, n_written, &msg->ssr_flag_high_level_dep_a); case SbpMsgSsrFlagHighLevel: return sbp_msg_ssr_flag_high_level_encode(buf, len, n_written, &msg->ssr_flag_high_level); @@ -1469,6 +1473,9 @@ static inline s8 sbp_message_decode(const uint8_t *buf, uint8_t len, case SbpMsgSsrCodePhaseBiasesBounds: return sbp_msg_ssr_code_phase_biases_bounds_decode( buf, len, n_read, &msg->ssr_code_phase_biases_bounds); + case SbpMsgSsrFlagHighLevelDepA: + return sbp_msg_ssr_flag_high_level_dep_a_decode( + buf, len, n_read, &msg->ssr_flag_high_level_dep_a); case SbpMsgSsrFlagHighLevel: return sbp_msg_ssr_flag_high_level_decode(buf, len, n_read, &msg->ssr_flag_high_level); @@ -2045,6 +2052,9 @@ static inline size_t sbp_message_encoded_len(sbp_msg_type_t msg_type, case SbpMsgSsrCodePhaseBiasesBounds: return sbp_msg_ssr_code_phase_biases_bounds_encoded_len( &msg->ssr_code_phase_biases_bounds); + case SbpMsgSsrFlagHighLevelDepA: + return sbp_msg_ssr_flag_high_level_dep_a_encoded_len( + &msg->ssr_flag_high_level_dep_a); case SbpMsgSsrFlagHighLevel: return sbp_msg_ssr_flag_high_level_encoded_len(&msg->ssr_flag_high_level); case SbpMsgSsrFlagIonoGridPointSatLos: @@ -2659,6 +2669,9 @@ static inline int sbp_message_cmp(sbp_msg_type_t msg_type, const sbp_msg_t *a, case SbpMsgSsrCodePhaseBiasesBounds: return sbp_msg_ssr_code_phase_biases_bounds_cmp( &a->ssr_code_phase_biases_bounds, &b->ssr_code_phase_biases_bounds); + case SbpMsgSsrFlagHighLevelDepA: + return sbp_msg_ssr_flag_high_level_dep_a_cmp( + &a->ssr_flag_high_level_dep_a, &b->ssr_flag_high_level_dep_a); case SbpMsgSsrFlagHighLevel: return sbp_msg_ssr_flag_high_level_cmp(&a->ssr_flag_high_level, &b->ssr_flag_high_level); diff --git a/c/include/libsbp/sbp_msg_type.h b/c/include/libsbp/sbp_msg_type.h index a098bfc013..7e6a7ffe67 100644 --- a/c/include/libsbp/sbp_msg_type.h +++ b/c/include/libsbp/sbp_msg_type.h @@ -228,7 +228,8 @@ typedef enum { SbpMsgSpecan = 0x0051, SbpMsgSsrCodeBiases = 0x05E1, SbpMsgSsrCodePhaseBiasesBounds = 0x05EC, - SbpMsgSsrFlagHighLevel = 0x0BB9, + SbpMsgSsrFlagHighLevelDepA = 0x0BB9, + SbpMsgSsrFlagHighLevel = 0x0BBA, SbpMsgSsrFlagIonoGridPointSatLos = 0x0BD1, SbpMsgSsrFlagIonoGridPoints = 0x0BC7, SbpMsgSsrFlagIonoTileSatLos = 0x0BCD, @@ -650,6 +651,8 @@ static inline const char *sbp_msg_type_to_string(sbp_msg_type_t msg_type) { return "MSG_SSR_CODE_BIASES"; case SbpMsgSsrCodePhaseBiasesBounds: return "MSG_SSR_CODE_PHASE_BIASES_BOUNDS"; + case SbpMsgSsrFlagHighLevelDepA: + return "MSG_SSR_FLAG_HIGH_LEVEL_DEP_A"; case SbpMsgSsrFlagHighLevel: return "MSG_SSR_FLAG_HIGH_LEVEL"; case SbpMsgSsrFlagIonoGridPointSatLos: diff --git a/c/src/include/libsbp/internal/integrity.h b/c/src/include/libsbp/internal/integrity.h index 470067bd0d..c1f4c01cfe 100644 --- a/c/src/include/libsbp/internal/integrity.h +++ b/c/src/include/libsbp/internal/integrity.h @@ -48,6 +48,26 @@ bool sbp_integrity_ssr_header_encode_internal( bool sbp_integrity_ssr_header_decode_internal(sbp_decode_ctx_t *ctx, sbp_integrity_ssr_header_t *msg); +/** + * Internal function to encode an SBP type to a buffer + * + * @param ctx Encode context + * @param msg SBP type instance + * @return true on success, false otherwise + */ +bool sbp_msg_ssr_flag_high_level_dep_a_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_ssr_flag_high_level_dep_a_t *msg); + +/** + * Internal function to decode an SBP type from a buffer + * + * @param ctx Decode context + * @param msg SBP type instance + * @return true on success, false otherwise + */ +bool sbp_msg_ssr_flag_high_level_dep_a_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_ssr_flag_high_level_dep_a_t *msg); + /** * Internal function to encode an SBP type to a buffer * diff --git a/c/src/integrity.c b/c/src/integrity.c index 290ee862dd..fa0bac3ce1 100644 --- a/c/src/integrity.c +++ b/c/src/integrity.c @@ -139,12 +139,250 @@ int sbp_integrity_ssr_header_cmp(const sbp_integrity_ssr_header_t *a, return ret; } +bool sbp_msg_ssr_flag_high_level_dep_a_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_ssr_flag_high_level_dep_a_t *msg) { + if (!sbp_gps_time_sec_encode_internal(ctx, &msg->obs_time)) { + return false; + } + if (!sbp_gps_time_sec_encode_internal(ctx, &msg->corr_time)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->ssr_sol_id)) { + return false; + } + if (!sbp_u16_encode(ctx, &msg->tile_set_id)) { + return false; + } + if (!sbp_u16_encode(ctx, &msg->tile_id)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->chain_id)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->use_gps_sat)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->use_gal_sat)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->use_bds_sat)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->use_qzss_sat)) { + return false; + } + for (size_t i = 0; i < SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_RESERVED_MAX; i++) { + if (!sbp_u8_encode(ctx, &msg->reserved[i])) { + return false; + } + } + if (!sbp_u8_encode(ctx, &msg->use_tropo_grid_points)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->use_iono_grid_points)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->use_iono_tile_sat_los)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->use_iono_grid_point_sat_los)) { + return false; + } + return true; +} + +s8 sbp_msg_ssr_flag_high_level_dep_a_encode( + uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_ssr_flag_high_level_dep_a_t *msg) { + sbp_encode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_ssr_flag_high_level_dep_a_encode_internal(&ctx, msg)) { + return SBP_ENCODE_ERROR; + } + if (n_written != NULL) { + *n_written = (uint8_t)ctx.offset; + } + return SBP_OK; +} + +bool sbp_msg_ssr_flag_high_level_dep_a_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_ssr_flag_high_level_dep_a_t *msg) { + if (!sbp_gps_time_sec_decode_internal(ctx, &msg->obs_time)) { + return false; + } + if (!sbp_gps_time_sec_decode_internal(ctx, &msg->corr_time)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->ssr_sol_id)) { + return false; + } + if (!sbp_u16_decode(ctx, &msg->tile_set_id)) { + return false; + } + if (!sbp_u16_decode(ctx, &msg->tile_id)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->chain_id)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->use_gps_sat)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->use_gal_sat)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->use_bds_sat)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->use_qzss_sat)) { + return false; + } + for (uint8_t i = 0; i < SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_RESERVED_MAX; i++) { + if (!sbp_u8_decode(ctx, &msg->reserved[i])) { + return false; + } + } + if (!sbp_u8_decode(ctx, &msg->use_tropo_grid_points)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->use_iono_grid_points)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->use_iono_tile_sat_los)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->use_iono_grid_point_sat_los)) { + return false; + } + return true; +} + +s8 sbp_msg_ssr_flag_high_level_dep_a_decode( + const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_ssr_flag_high_level_dep_a_t *msg) { + sbp_decode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_ssr_flag_high_level_dep_a_decode_internal(&ctx, msg)) { + return SBP_DECODE_ERROR; + } + if (n_read != NULL) { + *n_read = (uint8_t)ctx.offset; + } + return SBP_OK; +} + +s8 sbp_msg_ssr_flag_high_level_dep_a_send( + sbp_state_t *s, u16 sender_id, + const sbp_msg_ssr_flag_high_level_dep_a_t *msg, sbp_write_fn_t write) { + uint8_t payload[SBP_MAX_PAYLOAD_LEN]; + uint8_t payload_len; + s8 ret = sbp_msg_ssr_flag_high_level_dep_a_encode(payload, sizeof(payload), + &payload_len, msg); + if (ret != SBP_OK) { + return ret; + } + return sbp_internal_forward_payload(s, SbpMsgSsrFlagHighLevelDepA, sender_id, + payload_len, payload, write); +} + +int sbp_msg_ssr_flag_high_level_dep_a_cmp( + const sbp_msg_ssr_flag_high_level_dep_a_t *a, + const sbp_msg_ssr_flag_high_level_dep_a_t *b) { + int ret = 0; + + ret = sbp_gps_time_sec_cmp(&a->obs_time, &b->obs_time); + if (ret != 0) { + return ret; + } + + ret = sbp_gps_time_sec_cmp(&a->corr_time, &b->corr_time); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->ssr_sol_id, &b->ssr_sol_id); + if (ret != 0) { + return ret; + } + + ret = sbp_u16_cmp(&a->tile_set_id, &b->tile_set_id); + if (ret != 0) { + return ret; + } + + ret = sbp_u16_cmp(&a->tile_id, &b->tile_id); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->chain_id, &b->chain_id); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->use_gps_sat, &b->use_gps_sat); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->use_gal_sat, &b->use_gal_sat); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->use_bds_sat, &b->use_bds_sat); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->use_qzss_sat, &b->use_qzss_sat); + if (ret != 0) { + return ret; + } + + for (uint8_t i = 0; i < SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A_RESERVED_MAX; i++) { + ret = sbp_u8_cmp(&a->reserved[i], &b->reserved[i]); + if (ret != 0) { + return ret; + } + } + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->use_tropo_grid_points, &b->use_tropo_grid_points); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->use_iono_grid_points, &b->use_iono_grid_points); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->use_iono_tile_sat_los, &b->use_iono_tile_sat_los); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->use_iono_grid_point_sat_los, + &b->use_iono_grid_point_sat_los); + return ret; +} + bool sbp_msg_ssr_flag_high_level_encode_internal( sbp_encode_ctx_t *ctx, const sbp_msg_ssr_flag_high_level_t *msg) { if (!sbp_gps_time_sec_encode_internal(ctx, &msg->obs_time)) { return false; } - if (!sbp_gps_time_sec_encode_internal(ctx, &msg->corr_time)) { + if (!sbp_gps_time_sec_encode_internal(ctx, &msg->iono_corr_time)) { + return false; + } + if (!sbp_gps_time_sec_encode_internal(ctx, &msg->sat_corr_time)) { return false; } if (!sbp_u8_encode(ctx, &msg->ssr_sol_id)) { @@ -212,7 +450,10 @@ bool sbp_msg_ssr_flag_high_level_decode_internal( if (!sbp_gps_time_sec_decode_internal(ctx, &msg->obs_time)) { return false; } - if (!sbp_gps_time_sec_decode_internal(ctx, &msg->corr_time)) { + if (!sbp_gps_time_sec_decode_internal(ctx, &msg->iono_corr_time)) { + return false; + } + if (!sbp_gps_time_sec_decode_internal(ctx, &msg->sat_corr_time)) { return false; } if (!sbp_u8_decode(ctx, &msg->ssr_sol_id)) { @@ -298,7 +539,12 @@ int sbp_msg_ssr_flag_high_level_cmp(const sbp_msg_ssr_flag_high_level_t *a, return ret; } - ret = sbp_gps_time_sec_cmp(&a->corr_time, &b->corr_time); + ret = sbp_gps_time_sec_cmp(&a->iono_corr_time, &b->iono_corr_time); + if (ret != 0) { + return ret; + } + + ret = sbp_gps_time_sec_cmp(&a->sat_corr_time, &b->sat_corr_time); if (ret != 0) { return ret; } diff --git a/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevel.c b/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevel.c index 68ec2a2e64..b9b9b7a16e 100644 --- a/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevel.c +++ b/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevel.c @@ -90,13 +90,13 @@ START_TEST(test_auto_check_sbp_integrity_MsgSsrFlagHighLevel) { logging_reset(); - sbp_callback_register(&sbp_state, 3001, &msg_callback, + sbp_callback_register(&sbp_state, 3002, &msg_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); u8 encoded_frame[] = { - 85, 185, 11, 66, 0, 31, 180, 0, 0, 0, 3, 0, 104, - 1, 0, 0, 6, 0, 10, 20, 0, 30, 0, 40, 1, 2, - 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 105, 3, + 85, 186, 11, 66, 0, 37, 180, 0, 0, 0, 3, 0, 109, 1, 0, + 0, 6, 0, 104, 1, 0, 0, 6, 0, 10, 20, 0, 30, 0, 40, + 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 177, 238, }; dummy_reset(); @@ -106,9 +106,9 @@ START_TEST(test_auto_check_sbp_integrity_MsgSsrFlagHighLevel) { test_msg.ssr_flag_high_level.chain_id = 40; - test_msg.ssr_flag_high_level.corr_time.tow = 360; + test_msg.ssr_flag_high_level.iono_corr_time.tow = 365; - test_msg.ssr_flag_high_level.corr_time.wn = 6; + test_msg.ssr_flag_high_level.iono_corr_time.wn = 6; test_msg.ssr_flag_high_level.obs_time.tow = 180; @@ -124,6 +124,10 @@ START_TEST(test_auto_check_sbp_integrity_MsgSsrFlagHighLevel) { test_msg.ssr_flag_high_level.reserved[4] = 0; + test_msg.ssr_flag_high_level.sat_corr_time.tow = 360; + + test_msg.ssr_flag_high_level.sat_corr_time.wn = 6; + test_msg.ssr_flag_high_level.ssr_sol_id = 10; test_msg.ssr_flag_high_level.tile_id = 30; @@ -176,17 +180,17 @@ START_TEST(test_auto_check_sbp_integrity_MsgSsrFlagHighLevel) { "expected 40, is %" PRId64, (int64_t)last_msg.msg.ssr_flag_high_level.chain_id); - ck_assert_msg( - last_msg.msg.ssr_flag_high_level.corr_time.tow == 360, - "incorrect value for last_msg.msg.ssr_flag_high_level.corr_time.tow, " - "expected 360, is %" PRId64, - (int64_t)last_msg.msg.ssr_flag_high_level.corr_time.tow); + ck_assert_msg(last_msg.msg.ssr_flag_high_level.iono_corr_time.tow == 365, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level.iono_corr_time.tow, " + "expected 365, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level.iono_corr_time.tow); - ck_assert_msg( - last_msg.msg.ssr_flag_high_level.corr_time.wn == 6, - "incorrect value for last_msg.msg.ssr_flag_high_level.corr_time.wn, " - "expected 6, is %" PRId64, - (int64_t)last_msg.msg.ssr_flag_high_level.corr_time.wn); + ck_assert_msg(last_msg.msg.ssr_flag_high_level.iono_corr_time.wn == 6, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level.iono_corr_time.wn, " + "expected 6, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level.iono_corr_time.wn); ck_assert_msg( last_msg.msg.ssr_flag_high_level.obs_time.tow == 180, @@ -226,6 +230,18 @@ START_TEST(test_auto_check_sbp_integrity_MsgSsrFlagHighLevel) { "expected 0, is %" PRId64, (int64_t)last_msg.msg.ssr_flag_high_level.reserved[4]); + ck_assert_msg(last_msg.msg.ssr_flag_high_level.sat_corr_time.tow == 360, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level.sat_corr_time.tow, " + "expected 360, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level.sat_corr_time.tow); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level.sat_corr_time.wn == 6, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level.sat_corr_time.wn, expected " + "6, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level.sat_corr_time.wn); + ck_assert_msg( last_msg.msg.ssr_flag_high_level.ssr_sol_id == 10, "incorrect value for last_msg.msg.ssr_flag_high_level.ssr_sol_id, " diff --git a/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.c b/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.c new file mode 100644 index 0000000000..6c17005808 --- /dev/null +++ b/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.c @@ -0,0 +1,313 @@ +/* + * Copyright (C) 2015-2021 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ + +// This file was auto-generated from +// spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml by +// generate.py. Do not modify by hand! + +#include +#include +#include +#include // for debugging +#include // for malloc + +static struct { + u32 n_callbacks_logged; + u16 sender_id; + sbp_msg_type_t msg_type; + sbp_msg_t msg; + void *context; +} last_msg; + +static size_t dummy_wr = 0; +static size_t dummy_rd = 0; +static u8 dummy_buff[1024]; +static void *last_io_context; + +static void *DUMMY_MEMORY_FOR_CALLBACKS = (void *)0xdeadbeef; +static void *DUMMY_MEMORY_FOR_IO = (void *)0xdead0000; + +static void dummy_reset() { + dummy_rd = dummy_wr = 0; + memset(dummy_buff, 0, sizeof(dummy_buff)); +} + +static s32 dummy_write(u8 *buff, u32 n, void *context) { + last_io_context = context; + size_t real_n = n; //(dummy_n > n) ? n : dummy_n; + memcpy(dummy_buff + dummy_wr, buff, real_n); + dummy_wr += real_n; + return (s32)real_n; +} + +static s32 dummy_read(u8 *buff, u32 n, void *context) { + last_io_context = context; + size_t real_n = n; //(dummy_n > n) ? n : dummy_n; + memcpy(buff, dummy_buff + dummy_rd, real_n); + dummy_rd += real_n; + return (s32)real_n; +} + +static void logging_reset() { memset(&last_msg, 0, sizeof(last_msg)); } + +static void msg_callback(u16 sender_id, sbp_msg_type_t msg_type, + const sbp_msg_t *msg, void *context) { + last_msg.n_callbacks_logged++; + last_msg.sender_id = sender_id; + last_msg.msg_type = msg_type; + last_msg.msg = *msg; + last_msg.context = context; +} + +START_TEST(test_auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA) { + static sbp_msg_callbacks_node_t n; + + // State of the SBP message parser. + // Must be statically allocated. + sbp_state_t sbp_state; + + // + // Run tests: + // + // Test successful parsing of a message + { + // SBP parser state must be initialized before sbp_process is called. + // We re-initialize before every test so that callbacks for the same message + // types can be + // allocated multiple times across different tests. + sbp_state_init(&sbp_state); + + sbp_state_set_io_context(&sbp_state, &DUMMY_MEMORY_FOR_IO); + + logging_reset(); + + sbp_callback_register(&sbp_state, 3001, &msg_callback, + &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 encoded_frame[] = { + 85, 185, 11, 66, 0, 31, 180, 0, 0, 0, 3, 0, 104, + 1, 0, 0, 6, 0, 10, 20, 0, 30, 0, 40, 1, 2, + 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 105, 3, + }; + + dummy_reset(); + + sbp_msg_t test_msg; + memset(&test_msg, 0, sizeof(test_msg)); + + test_msg.ssr_flag_high_level_dep_a.chain_id = 40; + + test_msg.ssr_flag_high_level_dep_a.corr_time.tow = 360; + + test_msg.ssr_flag_high_level_dep_a.corr_time.wn = 6; + + test_msg.ssr_flag_high_level_dep_a.obs_time.tow = 180; + + test_msg.ssr_flag_high_level_dep_a.obs_time.wn = 3; + + test_msg.ssr_flag_high_level_dep_a.reserved[0] = 0; + + test_msg.ssr_flag_high_level_dep_a.reserved[1] = 0; + + test_msg.ssr_flag_high_level_dep_a.reserved[2] = 0; + + test_msg.ssr_flag_high_level_dep_a.reserved[3] = 0; + + test_msg.ssr_flag_high_level_dep_a.reserved[4] = 0; + + test_msg.ssr_flag_high_level_dep_a.ssr_sol_id = 10; + + test_msg.ssr_flag_high_level_dep_a.tile_id = 30; + + test_msg.ssr_flag_high_level_dep_a.tile_set_id = 20; + + test_msg.ssr_flag_high_level_dep_a.use_bds_sat = 3; + + test_msg.ssr_flag_high_level_dep_a.use_gal_sat = 2; + + test_msg.ssr_flag_high_level_dep_a.use_gps_sat = 1; + + test_msg.ssr_flag_high_level_dep_a.use_iono_grid_point_sat_los = 8; + + test_msg.ssr_flag_high_level_dep_a.use_iono_grid_points = 6; + + test_msg.ssr_flag_high_level_dep_a.use_iono_tile_sat_los = 7; + + test_msg.ssr_flag_high_level_dep_a.use_qzss_sat = 4; + + test_msg.ssr_flag_high_level_dep_a.use_tropo_grid_points = 5; + + sbp_message_send(&sbp_state, SbpMsgSsrFlagHighLevelDepA, 66, &test_msg, + &dummy_write); + + ck_assert_msg(dummy_wr == sizeof(encoded_frame), + "not enough data was written to dummy_buff (expected: %zu, " + "actual: %zu)", + sizeof(encoded_frame), dummy_wr); + ck_assert_msg(memcmp(dummy_buff, encoded_frame, sizeof(encoded_frame)) == 0, + "frame was not encoded properly"); + + while (dummy_rd < dummy_wr) { + ck_assert_msg(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + ck_assert_msg(last_msg.n_callbacks_logged == 1, + "msg_callback: one callback should have been logged"); + ck_assert_msg(last_msg.sender_id == 66, + "msg_callback: sender_id decoded incorrectly"); + + ck_assert_msg(sbp_message_cmp(SbpMsgSsrFlagHighLevelDepA, &last_msg.msg, + &test_msg) == 0, + "Sent and received messages did not compare equal"); + + ck_assert_msg( + last_msg.msg.ssr_flag_high_level_dep_a.chain_id == 40, + "incorrect value for last_msg.msg.ssr_flag_high_level_dep_a.chain_id, " + "expected 40, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.chain_id); + + ck_assert_msg( + last_msg.msg.ssr_flag_high_level_dep_a.corr_time.tow == 360, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.corr_time.tow, expected 360, " + "is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.corr_time.tow); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.corr_time.wn == 6, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.corr_time.wn, " + "expected 6, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.corr_time.wn); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.obs_time.tow == 180, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.obs_time.tow, " + "expected 180, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.obs_time.tow); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.obs_time.wn == 3, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.obs_time.wn, " + "expected 3, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.obs_time.wn); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.reserved[0] == 0, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.reserved[0], " + "expected 0, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.reserved[0]); + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.reserved[1] == 0, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.reserved[1], " + "expected 0, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.reserved[1]); + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.reserved[2] == 0, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.reserved[2], " + "expected 0, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.reserved[2]); + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.reserved[3] == 0, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.reserved[3], " + "expected 0, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.reserved[3]); + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.reserved[4] == 0, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.reserved[4], " + "expected 0, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.reserved[4]); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.ssr_sol_id == 10, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.ssr_sol_id, expected " + "10, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.ssr_sol_id); + + ck_assert_msg( + last_msg.msg.ssr_flag_high_level_dep_a.tile_id == 30, + "incorrect value for last_msg.msg.ssr_flag_high_level_dep_a.tile_id, " + "expected 30, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.tile_id); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.tile_set_id == 20, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.tile_set_id, " + "expected 20, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.tile_set_id); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.use_bds_sat == 3, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.use_bds_sat, " + "expected 3, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.use_bds_sat); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.use_gal_sat == 2, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.use_gal_sat, " + "expected 2, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.use_gal_sat); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.use_gps_sat == 1, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.use_gps_sat, " + "expected 1, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.use_gps_sat); + + ck_assert_msg( + last_msg.msg.ssr_flag_high_level_dep_a.use_iono_grid_point_sat_los == 8, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.use_iono_grid_point_sat_los, " + "expected 8, is %" PRId64, + (int64_t) + last_msg.msg.ssr_flag_high_level_dep_a.use_iono_grid_point_sat_los); + + ck_assert_msg( + last_msg.msg.ssr_flag_high_level_dep_a.use_iono_grid_points == 6, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.use_iono_grid_points, expected " + "6, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.use_iono_grid_points); + + ck_assert_msg( + last_msg.msg.ssr_flag_high_level_dep_a.use_iono_tile_sat_los == 7, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.use_iono_tile_sat_los, " + "expected 7, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.use_iono_tile_sat_los); + + ck_assert_msg(last_msg.msg.ssr_flag_high_level_dep_a.use_qzss_sat == 4, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.use_qzss_sat, " + "expected 4, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.use_qzss_sat); + + ck_assert_msg( + last_msg.msg.ssr_flag_high_level_dep_a.use_tropo_grid_points == 5, + "incorrect value for " + "last_msg.msg.ssr_flag_high_level_dep_a.use_tropo_grid_points, " + "expected 5, is %" PRId64, + (int64_t)last_msg.msg.ssr_flag_high_level_dep_a.use_tropo_grid_points); + } +} +END_TEST + +Suite *auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA_suite(void) { + Suite *s = suite_create( + "SBP generated test suite: " + "auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA"); + TCase *tc_acq = tcase_create( + "Automated_Suite_auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA"); + tcase_add_test(tc_acq, test_auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA); + suite_add_tcase(s, tc_acq); + return s; +} diff --git a/c/test/check_main.c b/c/test/check_main.c index 02127b32c5..a714e2bce2 100644 --- a/c/test/check_main.c +++ b/c/test/check_main.c @@ -63,6 +63,8 @@ int main(void) { srunner_add_suite(sr, auto_check_sbp_imu_MsgImuRaw_suite()); srunner_add_suite(sr, auto_check_sbp_integrity_MsgAcknowledge_suite()); srunner_add_suite(sr, auto_check_sbp_integrity_MsgSsrFlagHighLevel_suite()); + srunner_add_suite(sr, + auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA_suite()); srunner_add_suite( sr, auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos_suite()); srunner_add_suite(sr, diff --git a/c/test/check_suites.h b/c/test/check_suites.h index 47b58ebc12..887bab1cfc 100644 --- a/c/test/check_suites.h +++ b/c/test/check_suites.h @@ -53,6 +53,7 @@ Suite* auto_check_sbp_imu_MsgImuComp_suite(void); Suite* auto_check_sbp_imu_MsgImuRaw_suite(void); Suite* auto_check_sbp_integrity_MsgAcknowledge_suite(void); Suite* auto_check_sbp_integrity_MsgSsrFlagHighLevel_suite(void); +Suite* auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA_suite(void); Suite* auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos_suite(void); Suite* auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints_suite(void); Suite* auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos_suite(void); diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevel.cc b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevel.cc index 0c7bc59ff4..663b9ddac2 100644 --- a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevel.cc +++ b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevel.cc @@ -31,8 +31,8 @@ class Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0 public: Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0() { assign(test_msg_.chain_id, 40); - assign(test_msg_.corr_time.tow, 360); - assign(test_msg_.corr_time.wn, 6); + assign(test_msg_.iono_corr_time.tow, 365); + assign(test_msg_.iono_corr_time.wn, 6); assign(test_msg_.obs_time.tow, 180); assign(test_msg_.obs_time.wn, 3); @@ -45,6 +45,8 @@ class Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0 assign(test_msg_.reserved[3], 0); assign(test_msg_.reserved[4], 0); + assign(test_msg_.sat_corr_time.tow, 360); + assign(test_msg_.sat_corr_time.wn, 6); assign(test_msg_.ssr_sol_id, 10); assign(test_msg_.tile_id, 30); assign(test_msg_.tile_set_id, 20); @@ -297,11 +299,11 @@ class Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0 info.msg_type = static_cast(SbpMsgSsrFlagHighLevel); info.sender_id = 66; info.preamble = 0x55; - info.crc = 0x0369; + info.crc = 0xEEB1; info.encoded_frame = encoded_frame_; info.frame_len = sizeof(encoded_frame_); info.encoded_payload = encoded_payload_; - info.payload_len = 31; + info.payload_len = 37; return info; } @@ -401,13 +403,14 @@ class Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0 private: sbp_msg_ssr_flag_high_level_t test_msg_{}; - uint8_t encoded_frame_[31 + 8] = { - 85, 185, 11, 66, 0, 31, 180, 0, 0, 0, 3, 0, 104, 1, 0, 0, 6, 0, 10, 20, - 0, 30, 0, 40, 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 105, 3, + uint8_t encoded_frame_[37 + 8] = { + 85, 186, 11, 66, 0, 37, 180, 0, 0, 0, 3, 0, 109, 1, 0, + 0, 6, 0, 104, 1, 0, 0, 6, 0, 10, 20, 0, 30, 0, 40, + 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 177, 238, }; - uint8_t encoded_payload_[31] = { - 180, 0, 0, 0, 3, 0, 104, 1, 0, 0, 6, 0, 10, 20, 0, 30, - 0, 40, 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, + uint8_t encoded_payload_[37] = { + 180, 0, 0, 0, 3, 0, 109, 1, 0, 0, 6, 0, 104, 1, 0, 0, 6, 0, 10, + 20, 0, 30, 0, 40, 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, }; }; @@ -423,39 +426,39 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, EncodedLen) { TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, EncodeToBuf) { auto info = get_test_msg_info(); - uint8_t buf[31]; + uint8_t buf[37]; uint8_t n_written; EXPECT_EQ(sbp_msg_ssr_flag_high_level_encode(&buf[0], sizeof(buf), &n_written, &info.test_msg), SBP_OK); - EXPECT_EQ(n_written, 31); - EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 31), 0); + EXPECT_EQ(n_written, 37); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 37), 0); memset(&buf[0], 0, sizeof(buf)); EXPECT_EQ(sbp_message_encode(&buf[0], sizeof(buf), &n_written, SbpMsgSsrFlagHighLevel, &info.test_msg_wrapped), SBP_OK); - EXPECT_EQ(n_written, 31); - EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 31), 0); + EXPECT_EQ(n_written, 37); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 37), 0); } TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, EncodeToBufWithoutNwritten) { auto info = get_test_msg_info(); - uint8_t buf[31]; + uint8_t buf[37]; EXPECT_EQ(sbp_msg_ssr_flag_high_level_encode(&buf[0], sizeof(buf), nullptr, &info.test_msg), SBP_OK); - EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 31), 0); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 37), 0); } TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, EncodedToBufUnderflow) { auto info = get_test_msg_info(); - uint8_t buf[31]; + uint8_t buf[37]; - for (uint8_t i = 0; i < 31; i++) { + for (uint8_t i = 0; i < 37; i++) { EXPECT_EQ( sbp_msg_ssr_flag_high_level_encode(&buf[0], i, nullptr, &info.test_msg), SBP_ENCODE_ERROR); @@ -470,14 +473,14 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, DecodeFromBuf) { EXPECT_EQ(sbp_msg_ssr_flag_high_level_decode(&info.encoded_payload[0], info.payload_len, &n_read, &msg), SBP_OK); - EXPECT_EQ(n_read, 31); + EXPECT_EQ(n_read, 37); EXPECT_EQ(msg, info.test_msg); sbp_msg_t wrapped_msg{}; EXPECT_EQ(sbp_message_decode(&info.encoded_payload[0], info.payload_len, &n_read, SbpMsgSsrFlagHighLevel, &wrapped_msg), SBP_OK); - EXPECT_EQ(n_read, 31); + EXPECT_EQ(n_read, 37); EXPECT_EQ(msg, info.test_msg); } @@ -669,13 +672,13 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, Comparison) { { sbp_msg_ssr_flag_high_level_t lesser = info.test_msg; sbp_msg_ssr_flag_high_level_t greater = info.test_msg; - make_lesser_greater(lesser.corr_time.tow, greater.corr_time.tow); + make_lesser_greater(lesser.iono_corr_time.tow, greater.iono_corr_time.tow); comparison_tests(lesser, greater); } { sbp_msg_ssr_flag_high_level_t lesser = info.test_msg; sbp_msg_ssr_flag_high_level_t greater = info.test_msg; - make_lesser_greater(lesser.corr_time.wn, greater.corr_time.wn); + make_lesser_greater(lesser.iono_corr_time.wn, greater.iono_corr_time.wn); comparison_tests(lesser, greater); } { @@ -725,6 +728,18 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, Comparison) { make_lesser_greater(lesser.reserved[4], greater.reserved[4]); comparison_tests(lesser, greater); } + { + sbp_msg_ssr_flag_high_level_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_t greater = info.test_msg; + make_lesser_greater(lesser.sat_corr_time.tow, greater.sat_corr_time.tow); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_t greater = info.test_msg; + make_lesser_greater(lesser.sat_corr_time.wn, greater.sat_corr_time.wn); + comparison_tests(lesser, greater); + } { sbp_msg_ssr_flag_high_level_t lesser = info.test_msg; sbp_msg_ssr_flag_high_level_t greater = info.test_msg; @@ -861,14 +876,14 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, CppTraitsEncodeToBuf) { auto info = get_test_msg_info(); - uint8_t buf[31]; + uint8_t buf[37]; uint8_t n_written; EXPECT_EQ(sbp::MessageTraits::encode( &buf[0], sizeof(buf), &n_written, info.test_msg), SBP_OK); - EXPECT_EQ(n_written, 31); - EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 31), 0); + EXPECT_EQ(n_written, 37); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 37), 0); } TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, @@ -880,7 +895,7 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, EXPECT_EQ(sbp::MessageTraits::decode( &info.encoded_payload[0], info.payload_len, &n_read, &msg), SBP_OK); - EXPECT_EQ(n_read, 31); + EXPECT_EQ(n_read, 37); EXPECT_EQ(msg, info.test_msg); } diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.cc b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.cc new file mode 100644 index 0000000000..46103eae00 --- /dev/null +++ b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.cc @@ -0,0 +1,962 @@ +/* + * Copyright (C) 2015-2021 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ + +// This file was auto-generated from +// spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml by +// generate.py. Do not modify by hand! + +#include +#include +#include +#include +#include + +namespace { + +template +void assign(T &dest, const U &source) { + dest = static_cast(source); +} +class Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0 + : public ::testing::Test { + public: + Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0() { + assign(test_msg_.chain_id, 40); + assign(test_msg_.corr_time.tow, 360); + assign(test_msg_.corr_time.wn, 6); + assign(test_msg_.obs_time.tow, 180); + assign(test_msg_.obs_time.wn, 3); + + assign(test_msg_.reserved[0], 0); + + assign(test_msg_.reserved[1], 0); + + assign(test_msg_.reserved[2], 0); + + assign(test_msg_.reserved[3], 0); + + assign(test_msg_.reserved[4], 0); + assign(test_msg_.ssr_sol_id, 10); + assign(test_msg_.tile_id, 30); + assign(test_msg_.tile_set_id, 20); + assign(test_msg_.use_bds_sat, 3); + assign(test_msg_.use_gal_sat, 2); + assign(test_msg_.use_gps_sat, 1); + assign(test_msg_.use_iono_grid_point_sat_los, 8); + assign(test_msg_.use_iono_grid_points, 6); + assign(test_msg_.use_iono_tile_sat_los, 7); + assign(test_msg_.use_qzss_sat, 4); + assign(test_msg_.use_tropo_grid_points, 5); + } + + class SlowReader final : public sbp::IReader { + public: + SlowReader(const uint8_t *buf, uint32_t len) + : sbp::IReader(), buf_{buf}, len_{len} {} + + s32 read(uint8_t *buf, const uint32_t n) override { + if (n == 0) { + return 0; + } + if (remaining() == 0) { + return -1; + } + skip_next_read = !skip_next_read; + if (skip_next_read) { + return 0; + } + uint32_t real_n = std::min(n, 1u); + memcpy(buf, buf_ + offset_, real_n); + offset_ += real_n; + return static_cast(real_n); + } + + uint32_t remaining() const noexcept { return len_ - offset_; } + + static s32 read_static(uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->read(buf, len); + } + + private: + const uint8_t *buf_; + uint32_t len_; + uint32_t offset_{}; + bool skip_next_read{}; + }; + + class Reader final : public sbp::IReader { + public: + Reader(const uint8_t *buf, uint32_t len) + : sbp::IReader(), buf_{buf}, len_{len} {} + + s32 read(uint8_t *buf, const uint32_t n) override { + if (n == 0) { + return 0; + } + uint32_t real_n = std::min(n, remaining()); + if (real_n == 0) { + return -1; + } + memcpy(buf, buf_ + offset_, real_n); + offset_ += real_n; + return static_cast(real_n); + } + + uint32_t remaining() const noexcept { return len_ - offset_; } + + static s32 read_static(uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->read(buf, len); + } + + private: + const uint8_t *buf_; + uint32_t len_; + uint32_t offset_{}; + }; + + class SlowWriter final : public sbp::IWriter { + public: + explicit SlowWriter(uint32_t max_len = cMaxLen) + : IWriter(), max_len_{max_len} {} + static constexpr uint32_t cMaxLen = SBP_MAX_FRAME_LEN; + + s32 write(const uint8_t *buf, uint32_t n) override { + if (n == 0) { + return 0; + } + uint32_t real_n = std::min(n, 1u); + if (real_n == 0) { + return -1; + } + memcpy(buf_ + offset_, buf, real_n); + offset_ += real_n; + return static_cast(real_n); + } + + uint32_t remaining() const noexcept { return max_len_ - offset_; } + + const uint8_t *data() const noexcept { return buf_; } + + uint32_t len() const noexcept { return offset_; } + + static s32 write_static(const uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->write(buf, len); + } + + static s32 write_c(uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->write(buf, len); + } + + private: + uint8_t buf_[cMaxLen]; + uint32_t max_len_; + uint32_t offset_{}; + }; + + class Writer final : public sbp::IWriter { + public: + explicit Writer(uint32_t max_len = cMaxLen) + : IWriter(), max_len_{max_len} {} + static constexpr uint32_t cMaxLen = SBP_MAX_FRAME_LEN; + + s32 write(const uint8_t *buf, uint32_t n) override { + if (n == 0) { + return 0; + } + uint32_t real_n = std::min(n, remaining()); + if (real_n == 0) { + return -1; + } + memcpy(buf_ + offset_, buf, real_n); + offset_ += real_n; + return static_cast(real_n); + } + + uint32_t remaining() const noexcept { return max_len_ - offset_; } + + const uint8_t *data() const noexcept { return buf_; } + + uint32_t len() const noexcept { return offset_; } + + static s32 write_static(const uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->write(buf, len); + } + + static s32 write_c(uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->write(buf, len); + } + + private: + uint8_t buf_[cMaxLen]; + uint32_t max_len_; + uint32_t offset_{}; + }; + + struct CppHandler final + : public sbp::MessageHandler { + using sbp::MessageHandler< + sbp_msg_ssr_flag_high_level_dep_a_t>::MessageHandler; + + struct Output final { + uint16_t sender_id; + sbp_msg_ssr_flag_high_level_dep_a_t msg; + }; + + std::vector outputs{}; + + protected: + void handle_sbp_msg( + uint16_t sender_id, + const sbp_msg_ssr_flag_high_level_dep_a_t &msg) override { + outputs.emplace_back(); + outputs.back().sender_id = sender_id; + memcpy(&outputs.back().msg, &msg, sizeof(msg)); + } + }; + + struct CHandler final { + explicit CHandler(sbp_state_t *state) : state_{state} { + sbp_callback_register(state, SbpMsgSsrFlagHighLevelDepA, + &CHandler::callback_static, this, &node_); + } + + ~CHandler() { sbp_remove_callback(state_, &node_); } + + struct Output final { + uint16_t sender_id; + sbp_msg_ssr_flag_high_level_dep_a_t msg; + }; + + std::vector outputs{}; + + private: + void callback(uint16_t sender_id, sbp_msg_type_t msg_type, + const sbp_msg_t *msg) { + ASSERT_EQ(msg_type, SbpMsgSsrFlagHighLevelDepA); + outputs.emplace_back(); + outputs.back().sender_id = sender_id; + memcpy(&outputs.back().msg, &msg->ssr_flag_high_level_dep_a, + sizeof(msg->ssr_flag_high_level_dep_a)); + } + + static void callback_static(uint16_t sender_id, sbp_msg_type_t msg_type, + const sbp_msg_t *msg, void *ctx) { + static_cast(ctx)->callback(sender_id, msg_type, msg); + } + + sbp_msg_callbacks_node_t node_{}; + sbp_state_t *state_; + }; + + struct TestMsgInfo { + sbp_msg_ssr_flag_high_level_dep_a_t test_msg; + sbp_msg_t test_msg_wrapped; + sbp_msg_type_t msg_type; + uint16_t sender_id; + uint8_t preamble; + uint16_t crc; + const uint8_t *encoded_frame; + uint32_t frame_len; + const uint8_t *encoded_payload; + uint8_t payload_len; + + Reader get_frame_reader() const noexcept { + return Reader{encoded_frame, frame_len}; + } + + Reader get_frame_reader(uint32_t max) const noexcept { + assert(max <= frame_len); + return Reader{encoded_frame, max}; + } + + SlowReader get_slow_frame_reader() const noexcept { + return SlowReader{encoded_frame, frame_len}; + } + + Writer get_frame_writer() const noexcept { return Writer{frame_len}; } + + Writer get_frame_writer(uint32_t max) const noexcept { return Writer{max}; } + + SlowWriter get_slow_frame_writer() const noexcept { + return SlowWriter{frame_len}; + } + }; + + TestMsgInfo get_test_msg_info() const noexcept { + TestMsgInfo info; + memcpy(&info.test_msg, &test_msg_, sizeof(test_msg_)); + memcpy(&info.test_msg_wrapped.ssr_flag_high_level_dep_a, &test_msg_, + sizeof(test_msg_)); + info.msg_type = static_cast(SbpMsgSsrFlagHighLevelDepA); + info.sender_id = 66; + info.preamble = 0x55; + info.crc = 0x0369; + info.encoded_frame = encoded_frame_; + info.frame_len = sizeof(encoded_frame_); + info.encoded_payload = encoded_payload_; + info.payload_len = 31; + + return info; + } + + protected: + void comparison_tests(const sbp_msg_ssr_flag_high_level_dep_a_t &lesser, + const sbp_msg_ssr_flag_high_level_dep_a_t &greater) { + sbp_msg_t wrapped_lesser = + sbp::MessageTraits::to_sbp_msg( + lesser); + sbp_msg_t wrapped_greater = + sbp::MessageTraits::to_sbp_msg( + greater); + + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_cmp(&lesser, &lesser), 0); + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_cmp(&greater, &greater), 0); + EXPECT_LE(sbp_msg_ssr_flag_high_level_dep_a_cmp(&lesser, &greater), 0); + EXPECT_GT(sbp_msg_ssr_flag_high_level_dep_a_cmp(&greater, &lesser), 0); + + EXPECT_EQ(sbp_message_cmp(SbpMsgSsrFlagHighLevelDepA, &wrapped_lesser, + &wrapped_lesser), + 0); + EXPECT_EQ(sbp_message_cmp(SbpMsgSsrFlagHighLevelDepA, &wrapped_greater, + &wrapped_greater), + 0); + EXPECT_LE(sbp_message_cmp(SbpMsgSsrFlagHighLevelDepA, &wrapped_lesser, + &wrapped_greater), + 0); + EXPECT_GT(sbp_message_cmp(SbpMsgSsrFlagHighLevelDepA, &wrapped_greater, + &wrapped_lesser), + 0); + + // lesser vs lesser + EXPECT_TRUE(lesser == lesser); + EXPECT_FALSE(lesser != lesser); + EXPECT_FALSE(lesser < lesser); + EXPECT_TRUE(lesser <= lesser); + EXPECT_FALSE(lesser > lesser); + EXPECT_TRUE(lesser >= lesser); + + // greater vs greater + EXPECT_TRUE(greater == greater); + EXPECT_FALSE(greater != greater); + EXPECT_FALSE(greater < greater); + EXPECT_TRUE(greater <= greater); + EXPECT_FALSE(greater > greater); + EXPECT_TRUE(greater >= greater); + + // lesser vs greater + EXPECT_FALSE(lesser == greater); + EXPECT_TRUE(lesser != greater); + EXPECT_TRUE(lesser < greater); + EXPECT_TRUE(lesser <= greater); + EXPECT_FALSE(lesser > greater); + EXPECT_FALSE(lesser >= greater); + + // greater vs lesser + EXPECT_FALSE(greater == lesser); + EXPECT_TRUE(greater != lesser); + EXPECT_FALSE(greater < lesser); + EXPECT_FALSE(greater <= lesser); + EXPECT_TRUE(greater > lesser); + EXPECT_TRUE(greater >= lesser); + } + + template ::value, bool> = true> + void make_lesser_greater(T &lesser, T &greater) { + if (lesser > std::numeric_limits::min()) { + lesser--; + } else { + greater++; + } + } + + template ::value, bool> = true> + void make_lesser_greater(T &lesser, T &greater) { + (void)lesser; + greater += static_cast(1.0); + } + + void make_lesser_greater(sbp_string_t &lesser, sbp_string_t &greater) { + if (greater.data[0] == 'z') { + lesser.data[0]--; + } else { + greater.data[0]++; + } + } + + template + void make_lesser_greater(char (&lesser)[N], char (&greater)[N]) { + if (lesser[0] == 'z') { + lesser[0]--; + } else { + greater[0]++; + } + } + + private: + sbp_msg_ssr_flag_high_level_dep_a_t test_msg_{}; + uint8_t encoded_frame_[31 + 8] = { + 85, 185, 11, 66, 0, 31, 180, 0, 0, 0, 3, 0, 104, 1, 0, 0, 6, 0, 10, 20, + 0, 30, 0, 40, 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 105, 3, + }; + uint8_t encoded_payload_[31] = { + 180, 0, 0, 0, 3, 0, 104, 1, 0, 0, 6, 0, 10, 20, 0, 30, + 0, 40, 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, + }; +}; + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, EncodedLen) { + auto info = get_test_msg_info(); + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_encoded_len(&info.test_msg), + info.payload_len); + + EXPECT_EQ(sbp_message_encoded_len(SbpMsgSsrFlagHighLevelDepA, + &info.test_msg_wrapped), + info.payload_len); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, EncodeToBuf) { + auto info = get_test_msg_info(); + uint8_t buf[31]; + uint8_t n_written; + + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_encode( + &buf[0], sizeof(buf), &n_written, &info.test_msg), + SBP_OK); + EXPECT_EQ(n_written, 31); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 31), 0); + + memset(&buf[0], 0, sizeof(buf)); + EXPECT_EQ( + sbp_message_encode(&buf[0], sizeof(buf), &n_written, + SbpMsgSsrFlagHighLevelDepA, &info.test_msg_wrapped), + SBP_OK); + EXPECT_EQ(n_written, 31); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 31), 0); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + EncodeToBufWithoutNwritten) { + auto info = get_test_msg_info(); + uint8_t buf[31]; + + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_encode(&buf[0], sizeof(buf), + nullptr, &info.test_msg), + SBP_OK); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 31), 0); +} +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + EncodedToBufUnderflow) { + auto info = get_test_msg_info(); + uint8_t buf[31]; + + for (uint8_t i = 0; i < 31; i++) { + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_encode(&buf[0], i, nullptr, + &info.test_msg), + SBP_ENCODE_ERROR); + } +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, DecodeFromBuf) { + auto info = get_test_msg_info(); + sbp_msg_ssr_flag_high_level_dep_a_t msg{}; + uint8_t n_read; + + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_decode( + &info.encoded_payload[0], info.payload_len, &n_read, &msg), + SBP_OK); + EXPECT_EQ(n_read, 31); + EXPECT_EQ(msg, info.test_msg); + + sbp_msg_t wrapped_msg{}; + EXPECT_EQ( + sbp_message_decode(&info.encoded_payload[0], info.payload_len, &n_read, + SbpMsgSsrFlagHighLevelDepA, &wrapped_msg), + SBP_OK); + EXPECT_EQ(n_read, 31); + EXPECT_EQ(msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + DecodeFromBufWithoutNread) { + auto info = get_test_msg_info(); + sbp_msg_ssr_flag_high_level_dep_a_t msg{}; + + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_decode( + &info.encoded_payload[0], info.payload_len, nullptr, &msg), + SBP_OK); + EXPECT_EQ(msg, info.test_msg); +} +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + DecodeFromBufUnderflow) { + auto info = get_test_msg_info(); + sbp_msg_ssr_flag_high_level_dep_a_t msg{}; + + for (uint8_t i = 0; i < info.payload_len; i++) { + int expected_return = SBP_DECODE_ERROR; + + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_decode(&info.encoded_payload[0], + i, nullptr, &msg), + expected_return); + } +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + ReceiveThroughSbpState) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto reader = info.get_frame_reader(); + sbp_state_set_io_context(&state, &reader); + + CHandler handler{&state}; + + while (reader.remaining() > 0) { + EXPECT_GE(sbp_process(&state, &Reader::read_static), SBP_OK); + } + + EXPECT_EQ(handler.outputs.size(), 1); + EXPECT_EQ(handler.outputs[0].sender_id, info.sender_id); + EXPECT_EQ(handler.outputs[0].msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + ReceiveThroughSbpStateUnderflow) { + auto info = get_test_msg_info(); + + for (uint32_t i = 0; i < info.frame_len; i++) { + sbp_state_t state; + sbp_state_init(&state); + + auto reader = info.get_frame_reader(i); + sbp_state_set_io_context(&state, &reader); + + CHandler handler(&state); + + int most_recent_return = sbp_process(&state, &Reader::read_static); + while (most_recent_return == SBP_OK || reader.remaining() > 0) { + most_recent_return = sbp_process(&state, &Reader::read_static); + } + + EXPECT_NE(most_recent_return, SBP_OK); + EXPECT_EQ(reader.remaining(), 0); + + EXPECT_EQ(handler.outputs.size(), 0); + } +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, SlowRead) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto reader = info.get_slow_frame_reader(); + sbp_state_set_io_context(&state, &reader); + + CHandler handler{&state}; + + while (reader.remaining() > 0) { + EXPECT_GE(sbp_process(&state, &SlowReader::read_static), SBP_OK); + } + + EXPECT_EQ(handler.outputs.size(), 1); + EXPECT_EQ(handler.outputs[0].sender_id, info.sender_id); + EXPECT_EQ(handler.outputs[0].msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, BadCRC) { + auto info = get_test_msg_info(); + uint8_t buf[SBP_MAX_FRAME_LEN]; + memcpy(&buf[0], info.encoded_frame, info.frame_len); + + // Introduce a CRC error which should cause an error return and no callback + buf[info.frame_len - 1]++; + + sbp_state_t state; + sbp_state_init(&state); + + Reader reader{buf, info.frame_len}; + sbp_state_set_io_context(&state, &reader); + + CHandler handler{&state}; + + while (reader.remaining() > 0) { + int res = sbp_process(&state, &Reader::read_static); + EXPECT_EQ(res, reader.remaining() == 0 ? SBP_CRC_ERROR : SBP_OK); + } + + EXPECT_EQ(handler.outputs.size(), 0); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + SendThroughSbpState) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_frame_writer(); + sbp_state_set_io_context(&state, &writer); + + EXPECT_EQ(sbp_msg_ssr_flag_high_level_dep_a_send( + &state, info.sender_id, &info.test_msg, &Writer::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), &info.encoded_frame[0], writer.len()), 0); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + SendWrappedThroughSbpState) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_frame_writer(); + sbp_state_set_io_context(&state, &writer); + + EXPECT_EQ(sbp_message_send(&state, SbpMsgSsrFlagHighLevelDepA, info.sender_id, + &info.test_msg_wrapped, &Writer::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + SendThroughSbpStateUnderflow) { + auto info = get_test_msg_info(); + + for (uint32_t i = 0; i < info.frame_len; i++) { + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_frame_writer(i); + sbp_state_set_io_context(&state, &writer); + + EXPECT_NE( + sbp_message_send(&state, SbpMsgSsrFlagHighLevelDepA, info.sender_id, + &info.test_msg_wrapped, &Writer::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), i); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, i), 0); + } +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + DISABLED_SlowWrite) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_slow_frame_writer(); + sbp_state_set_io_context(&state, &writer); + + EXPECT_EQ(sbp_message_send(&state, SbpMsgSsrFlagHighLevelDepA, info.sender_id, + &info.test_msg_wrapped, &SlowWriter::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, Comparison) { + auto info = get_test_msg_info(); + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.chain_id, greater.chain_id); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.corr_time.tow, greater.corr_time.tow); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.corr_time.wn, greater.corr_time.wn); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.obs_time.tow, greater.obs_time.tow); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.obs_time.wn, greater.obs_time.wn); + comparison_tests(lesser, greater); + } + + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.reserved[0], greater.reserved[0]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.reserved[1], greater.reserved[1]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.reserved[2], greater.reserved[2]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.reserved[3], greater.reserved[3]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.reserved[4], greater.reserved[4]); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.ssr_sol_id, greater.ssr_sol_id); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.tile_id, greater.tile_id); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.tile_set_id, greater.tile_set_id); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.use_bds_sat, greater.use_bds_sat); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.use_gal_sat, greater.use_gal_sat); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.use_gps_sat, greater.use_gps_sat); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.use_iono_grid_point_sat_los, + greater.use_iono_grid_point_sat_los); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.use_iono_grid_points, + greater.use_iono_grid_points); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.use_iono_tile_sat_los, + greater.use_iono_tile_sat_los); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.use_qzss_sat, greater.use_qzss_sat); + comparison_tests(lesser, greater); + } + { + sbp_msg_ssr_flag_high_level_dep_a_t lesser = info.test_msg; + sbp_msg_ssr_flag_high_level_dep_a_t greater = info.test_msg; + make_lesser_greater(lesser.use_tropo_grid_points, + greater.use_tropo_grid_points); + comparison_tests(lesser, greater); + } +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + CppTraitsProperties) { + // EXPECT_EQ(sbp::MessageTraits::id, + // SbpMsgSsrFlagHighLevelDepA); + EXPECT_STREQ(sbp::MessageTraits::name, + "MSG_SSR_FLAG_HIGH_LEVEL_DEP_A"); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + CppTraitsFromSbpMsgT) { + auto info = get_test_msg_info(); + + const sbp_msg_t &const_sbp_msg_t = info.test_msg_wrapped; + sbp_msg_t &non_const_sbp_msg_t = info.test_msg_wrapped; + + const sbp_msg_ssr_flag_high_level_dep_a_t &const_unwrapped = + sbp::MessageTraits::get( + const_sbp_msg_t); + sbp_msg_ssr_flag_high_level_dep_a_t &non_const_unwrapped = + sbp::MessageTraits::get( + non_const_sbp_msg_t); + + EXPECT_EQ((const void *)&const_sbp_msg_t, (const void *)&const_unwrapped); + EXPECT_EQ((void *)&non_const_sbp_msg_t, (void *)&non_const_unwrapped); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + CppTraitsToSbpMsgT) { + auto info = get_test_msg_info(); + + sbp_msg_t msg1 = + sbp::MessageTraits::to_sbp_msg( + info.test_msg); + EXPECT_EQ(msg1.ssr_flag_high_level_dep_a, info.test_msg); + + sbp_msg_t msg2; + sbp::MessageTraits::to_sbp_msg( + info.test_msg, &msg2); + EXPECT_EQ(msg2.ssr_flag_high_level_dep_a, info.test_msg); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + CppTraitsEncodedLen) { + auto info = get_test_msg_info(); + EXPECT_EQ( + sbp::MessageTraits::encoded_len( + info.test_msg), + info.payload_len); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + CppTraitsSendThroughSbpState) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_frame_writer(); + sbp_state_set_io_context(&state, &writer); + + EXPECT_EQ(sbp::MessageTraits::send( + &state, info.sender_id, info.test_msg, &Writer::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), &info.encoded_frame[0], writer.len()), 0); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + CppTraitsEncodeToBuf) { + auto info = get_test_msg_info(); + uint8_t buf[31]; + uint8_t n_written; + + EXPECT_EQ(sbp::MessageTraits::encode( + &buf[0], sizeof(buf), &n_written, info.test_msg), + SBP_OK); + EXPECT_EQ(n_written, 31); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 31), 0); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + CppTraitsDecodeFromBuf) { + auto info = get_test_msg_info(); + sbp_msg_ssr_flag_high_level_dep_a_t msg{}; + uint8_t n_read; + + EXPECT_EQ(sbp::MessageTraits::decode( + &info.encoded_payload[0], info.payload_len, &n_read, &msg), + SBP_OK); + EXPECT_EQ(n_read, 31); + EXPECT_EQ(msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + ReceiveThroughMessageHandler) { + auto info = get_test_msg_info(); + auto reader = info.get_frame_reader(); + + sbp::State state{}; + state.set_reader(&reader); + + CppHandler handler{&state}; + + while (reader.remaining() > 0) { + EXPECT_GE(state.process(), SBP_OK); + } + + EXPECT_EQ(handler.outputs.size(), 1); + EXPECT_EQ(handler.outputs[0].sender_id, info.sender_id); + EXPECT_EQ(handler.outputs[0].msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + ProcessSbpMsgTThroughMessageHandler) { + auto info = get_test_msg_info(); + sbp::State state{}; + CppHandler handler(&state); + + state.process_message(info.sender_id, SbpMsgSsrFlagHighLevelDepA, + &info.test_msg_wrapped); + + EXPECT_EQ(handler.outputs.size(), 1); + EXPECT_EQ(handler.outputs[0].sender_id, info.sender_id); + EXPECT_EQ(handler.outputs[0].msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + SendThroughCppState) { + auto info = get_test_msg_info(); + auto writer = info.get_frame_writer(); + + sbp::State state{}; + state.set_writer(&writer); + + EXPECT_EQ(state.send_message(info.sender_id, info.test_msg), SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); +} + +TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevelDepA0, + SendWrappedSbpMsgTThroughCppState) { + auto info = get_test_msg_info(); + auto writer = info.get_frame_writer(); + + sbp::State state{}; + state.set_writer(&writer); + + EXPECT_EQ(state.send_message(info.sender_id, SbpMsgSsrFlagHighLevelDepA, + info.test_msg_wrapped), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); +} + +} // namespace diff --git a/docs/sbp.pdf b/docs/sbp.pdf index 0b9a1a38e4..3ca6df813d 100644 Binary files a/docs/sbp.pdf and b/docs/sbp.pdf differ diff --git a/haskell/src/SwiftNav/SBP/Integrity.hs b/haskell/src/SwiftNav/SBP/Integrity.hs index f4782d9d5a..d278c06d43 100644 --- a/haskell/src/SwiftNav/SBP/Integrity.hs +++ b/haskell/src/SwiftNav/SBP/Integrity.hs @@ -76,10 +76,89 @@ instance Binary IntegritySSRHeader where $(makeJSON "_integritySSRHeader_" ''IntegritySSRHeader) $(makeLenses ''IntegritySSRHeader) +msgSsrFlagHighLevelDepA :: Word16 +msgSsrFlagHighLevelDepA = 0x0BB9 + +-- | SBP class for message MSG_SSR_FLAG_HIGH_LEVEL_DEP_A (0x0BB9). +-- +-- Deprecated. +data MsgSsrFlagHighLevelDepA = MsgSsrFlagHighLevelDepA + { _msgSsrFlagHighLevelDepA_obs_time :: !GpsTimeSec + -- ^ GNSS reference time of the observation used to generate the flag. + , _msgSsrFlagHighLevelDepA_corr_time :: !GpsTimeSec + -- ^ GNSS reference time of the correction associated to the flag. + , _msgSsrFlagHighLevelDepA_ssr_sol_id :: !Word8 + -- ^ SSR Solution ID. + , _msgSsrFlagHighLevelDepA_tile_set_id :: !Word16 + -- ^ Unique identifier of the set this tile belongs to. + , _msgSsrFlagHighLevelDepA_tile_id :: !Word16 + -- ^ Unique identifier of this tile in the tile set. + , _msgSsrFlagHighLevelDepA_chain_id :: !Word8 + -- ^ Chain and type of flag. + , _msgSsrFlagHighLevelDepA_use_gps_sat :: !Word8 + -- ^ Use GPS satellites. + , _msgSsrFlagHighLevelDepA_use_gal_sat :: !Word8 + -- ^ Use GAL satellites. + , _msgSsrFlagHighLevelDepA_use_bds_sat :: !Word8 + -- ^ Use BDS satellites. + , _msgSsrFlagHighLevelDepA_use_qzss_sat :: !Word8 + -- ^ Use QZSS satellites. + , _msgSsrFlagHighLevelDepA_reserved :: ![Word8] + -- ^ Reserved + , _msgSsrFlagHighLevelDepA_use_tropo_grid_points :: !Word8 + -- ^ Use tropo grid points. + , _msgSsrFlagHighLevelDepA_use_iono_grid_points :: !Word8 + -- ^ Use iono grid points. + , _msgSsrFlagHighLevelDepA_use_iono_tile_sat_los :: !Word8 + -- ^ Use iono tile satellite LoS. + , _msgSsrFlagHighLevelDepA_use_iono_grid_point_sat_los :: !Word8 + -- ^ Use iono grid point satellite LoS. + } deriving ( Show, Read, Eq ) + +instance Binary MsgSsrFlagHighLevelDepA where + get = do + _msgSsrFlagHighLevelDepA_obs_time <- get + _msgSsrFlagHighLevelDepA_corr_time <- get + _msgSsrFlagHighLevelDepA_ssr_sol_id <- getWord8 + _msgSsrFlagHighLevelDepA_tile_set_id <- getWord16le + _msgSsrFlagHighLevelDepA_tile_id <- getWord16le + _msgSsrFlagHighLevelDepA_chain_id <- getWord8 + _msgSsrFlagHighLevelDepA_use_gps_sat <- getWord8 + _msgSsrFlagHighLevelDepA_use_gal_sat <- getWord8 + _msgSsrFlagHighLevelDepA_use_bds_sat <- getWord8 + _msgSsrFlagHighLevelDepA_use_qzss_sat <- getWord8 + _msgSsrFlagHighLevelDepA_reserved <- replicateM 5 getWord8 + _msgSsrFlagHighLevelDepA_use_tropo_grid_points <- getWord8 + _msgSsrFlagHighLevelDepA_use_iono_grid_points <- getWord8 + _msgSsrFlagHighLevelDepA_use_iono_tile_sat_los <- getWord8 + _msgSsrFlagHighLevelDepA_use_iono_grid_point_sat_los <- getWord8 + pure MsgSsrFlagHighLevelDepA {..} + + put MsgSsrFlagHighLevelDepA {..} = do + put _msgSsrFlagHighLevelDepA_obs_time + put _msgSsrFlagHighLevelDepA_corr_time + putWord8 _msgSsrFlagHighLevelDepA_ssr_sol_id + putWord16le _msgSsrFlagHighLevelDepA_tile_set_id + putWord16le _msgSsrFlagHighLevelDepA_tile_id + putWord8 _msgSsrFlagHighLevelDepA_chain_id + putWord8 _msgSsrFlagHighLevelDepA_use_gps_sat + putWord8 _msgSsrFlagHighLevelDepA_use_gal_sat + putWord8 _msgSsrFlagHighLevelDepA_use_bds_sat + putWord8 _msgSsrFlagHighLevelDepA_use_qzss_sat + mapM_ putWord8 _msgSsrFlagHighLevelDepA_reserved + putWord8 _msgSsrFlagHighLevelDepA_use_tropo_grid_points + putWord8 _msgSsrFlagHighLevelDepA_use_iono_grid_points + putWord8 _msgSsrFlagHighLevelDepA_use_iono_tile_sat_los + putWord8 _msgSsrFlagHighLevelDepA_use_iono_grid_point_sat_los + +$(makeSBP 'msgSsrFlagHighLevelDepA ''MsgSsrFlagHighLevelDepA) +$(makeJSON "_msgSsrFlagHighLevelDepA_" ''MsgSsrFlagHighLevelDepA) +$(makeLenses ''MsgSsrFlagHighLevelDepA) + msgSsrFlagHighLevel :: Word16 -msgSsrFlagHighLevel = 0x0BB9 +msgSsrFlagHighLevel = 0x0BBA --- | SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BB9). +-- | SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BBA). -- -- Integrity monitoring flags for multiple aggregated elements. An element -- could be a satellite, SSR grid point, or SSR tile. A group of aggregated @@ -109,8 +188,11 @@ msgSsrFlagHighLevel = 0x0BB9 data MsgSsrFlagHighLevel = MsgSsrFlagHighLevel { _msgSsrFlagHighLevel_obs_time :: !GpsTimeSec -- ^ GNSS reference time of the observation used to generate the flag. - , _msgSsrFlagHighLevel_corr_time :: !GpsTimeSec - -- ^ GNSS reference time of the correction associated to the flag. + , _msgSsrFlagHighLevel_iono_corr_time :: !GpsTimeSec + -- ^ GNSS reference time of the ionospheric correction associated to the + -- flag. + , _msgSsrFlagHighLevel_sat_corr_time :: !GpsTimeSec + -- ^ GNSS reference time of the satellite correction associated to the flag. , _msgSsrFlagHighLevel_ssr_sol_id :: !Word8 -- ^ SSR Solution ID. , _msgSsrFlagHighLevel_tile_set_id :: !Word16 @@ -142,7 +224,8 @@ data MsgSsrFlagHighLevel = MsgSsrFlagHighLevel instance Binary MsgSsrFlagHighLevel where get = do _msgSsrFlagHighLevel_obs_time <- get - _msgSsrFlagHighLevel_corr_time <- get + _msgSsrFlagHighLevel_iono_corr_time <- get + _msgSsrFlagHighLevel_sat_corr_time <- get _msgSsrFlagHighLevel_ssr_sol_id <- getWord8 _msgSsrFlagHighLevel_tile_set_id <- getWord16le _msgSsrFlagHighLevel_tile_id <- getWord16le @@ -160,7 +243,8 @@ instance Binary MsgSsrFlagHighLevel where put MsgSsrFlagHighLevel {..} = do put _msgSsrFlagHighLevel_obs_time - put _msgSsrFlagHighLevel_corr_time + put _msgSsrFlagHighLevel_iono_corr_time + put _msgSsrFlagHighLevel_sat_corr_time putWord8 _msgSsrFlagHighLevel_ssr_sol_id putWord16le _msgSsrFlagHighLevel_tile_set_id putWord16le _msgSsrFlagHighLevel_tile_id diff --git a/haskell/src/SwiftNav/SBP/Msg.hs b/haskell/src/SwiftNav/SBP/Msg.hs index cbd229261f..06b92befa7 100644 --- a/haskell/src/SwiftNav/SBP/Msg.hs +++ b/haskell/src/SwiftNav/SBP/Msg.hs @@ -237,6 +237,7 @@ data SBPMsg = | SBPMsgSsrCodeBiases MsgSsrCodeBiases Msg | SBPMsgSsrCodePhaseBiasesBounds MsgSsrCodePhaseBiasesBounds Msg | SBPMsgSsrFlagHighLevel MsgSsrFlagHighLevel Msg + | SBPMsgSsrFlagHighLevelDepA MsgSsrFlagHighLevelDepA Msg | SBPMsgSsrFlagIonoGridPointSatLos MsgSsrFlagIonoGridPointSatLos Msg | SBPMsgSsrFlagIonoGridPoints MsgSsrFlagIonoGridPoints Msg | SBPMsgSsrFlagIonoTileSatLos MsgSsrFlagIonoTileSatLos Msg @@ -489,6 +490,7 @@ instance Binary SBPMsg where | _msgSBPType == msgSsrCodeBiases = SBPMsgSsrCodeBiases (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrCodePhaseBiasesBounds = SBPMsgSsrCodePhaseBiasesBounds (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrFlagHighLevel = SBPMsgSsrFlagHighLevel (decode (fromStrict (unBytes _msgSBPPayload))) m + | _msgSBPType == msgSsrFlagHighLevelDepA = SBPMsgSsrFlagHighLevelDepA (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrFlagIonoGridPointSatLos = SBPMsgSsrFlagIonoGridPointSatLos (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrFlagIonoGridPoints = SBPMsgSsrFlagIonoGridPoints (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrFlagIonoTileSatLos = SBPMsgSsrFlagIonoTileSatLos (decode (fromStrict (unBytes _msgSBPPayload))) m @@ -733,6 +735,7 @@ instance Binary SBPMsg where encoder (SBPMsgSsrCodeBiases _ m) = put m encoder (SBPMsgSsrCodePhaseBiasesBounds _ m) = put m encoder (SBPMsgSsrFlagHighLevel _ m) = put m + encoder (SBPMsgSsrFlagHighLevelDepA _ m) = put m encoder (SBPMsgSsrFlagIonoGridPointSatLos _ m) = put m encoder (SBPMsgSsrFlagIonoGridPoints _ m) = put m encoder (SBPMsgSsrFlagIonoTileSatLos _ m) = put m @@ -981,6 +984,7 @@ instance FromJSON SBPMsg where | msgType == msgSsrCodeBiases = SBPMsgSsrCodeBiases <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrCodePhaseBiasesBounds = SBPMsgSsrCodePhaseBiasesBounds <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrFlagHighLevel = SBPMsgSsrFlagHighLevel <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj + | msgType == msgSsrFlagHighLevelDepA = SBPMsgSsrFlagHighLevelDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrFlagIonoGridPointSatLos = SBPMsgSsrFlagIonoGridPointSatLos <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrFlagIonoGridPoints = SBPMsgSsrFlagIonoGridPoints <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrFlagIonoTileSatLos = SBPMsgSsrFlagIonoTileSatLos <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj @@ -1230,6 +1234,7 @@ instance ToJSON SBPMsg where toJSON (SBPMsgSsrCodeBiases n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrCodePhaseBiasesBounds n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrFlagHighLevel n m) = toJSON n <<>> toJSON m + toJSON (SBPMsgSsrFlagHighLevelDepA n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrFlagIonoGridPointSatLos n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrFlagIonoGridPoints n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrFlagIonoTileSatLos n m) = toJSON n <<>> toJSON m @@ -1473,6 +1478,7 @@ instance HasMsg SBPMsg where msg f (SBPMsgSsrCodeBiases n m) = SBPMsgSsrCodeBiases n <$> f m msg f (SBPMsgSsrCodePhaseBiasesBounds n m) = SBPMsgSsrCodePhaseBiasesBounds n <$> f m msg f (SBPMsgSsrFlagHighLevel n m) = SBPMsgSsrFlagHighLevel n <$> f m + msg f (SBPMsgSsrFlagHighLevelDepA n m) = SBPMsgSsrFlagHighLevelDepA n <$> f m msg f (SBPMsgSsrFlagIonoGridPointSatLos n m) = SBPMsgSsrFlagIonoGridPointSatLos n <$> f m msg f (SBPMsgSsrFlagIonoGridPoints n m) = SBPMsgSsrFlagIonoGridPoints n <$> f m msg f (SBPMsgSsrFlagIonoTileSatLos n m) = SBPMsgSsrFlagIonoTileSatLos n <$> f m diff --git a/java/src/com/swiftnav/sbp/client/MessageTable.java b/java/src/com/swiftnav/sbp/client/MessageTable.java index 9a992a1ccb..098d3d7311 100644 --- a/java/src/com/swiftnav/sbp/client/MessageTable.java +++ b/java/src/com/swiftnav/sbp/client/MessageTable.java @@ -50,6 +50,7 @@ import com.swiftnav.sbp.imu.MsgImuRaw; import com.swiftnav.sbp.integrity.MsgAcknowledge; import com.swiftnav.sbp.integrity.MsgSsrFlagHighLevel; +import com.swiftnav.sbp.integrity.MsgSsrFlagHighLevelDepA; import com.swiftnav.sbp.integrity.MsgSsrFlagIonoGridPointSatLos; import com.swiftnav.sbp.integrity.MsgSsrFlagIonoGridPoints; import com.swiftnav.sbp.integrity.MsgSsrFlagIonoTileSatLos; @@ -326,6 +327,8 @@ static SBPMessage dispatch(SBPMessage msg) throws SBPBinaryException { return new MsgImuAux(msg); case MsgImuComp.TYPE: return new MsgImuComp(msg); + case MsgSsrFlagHighLevelDepA.TYPE: + return new MsgSsrFlagHighLevelDepA(msg); case MsgSsrFlagHighLevel.TYPE: return new MsgSsrFlagHighLevel(msg); case MsgSsrFlagSatellites.TYPE: diff --git a/java/src/com/swiftnav/sbp/integrity/MsgSsrFlagHighLevel.java b/java/src/com/swiftnav/sbp/integrity/MsgSsrFlagHighLevel.java index 1c722941d8..c736892d72 100644 --- a/java/src/com/swiftnav/sbp/integrity/MsgSsrFlagHighLevel.java +++ b/java/src/com/swiftnav/sbp/integrity/MsgSsrFlagHighLevel.java @@ -21,7 +21,7 @@ import org.json.JSONObject; /** - * SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BB9). + * SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BBA). * *

You can have MSG_SSR_FLAG_HIGH_LEVEL inherent its fields directly from an inherited SBP * object, or construct it inline using a dict of its fields. @@ -52,13 +52,16 @@ * group. */ public class MsgSsrFlagHighLevel extends SBPMessage { - public static final int TYPE = 0x0BB9; + public static final int TYPE = 0x0BBA; /** GNSS reference time of the observation used to generate the flag. */ public GPSTimeSec obs_time; - /** GNSS reference time of the correction associated to the flag. */ - public GPSTimeSec corr_time; + /** GNSS reference time of the ionospheric correction associated to the flag. */ + public GPSTimeSec iono_corr_time; + + /** GNSS reference time of the satellite correction associated to the flag. */ + public GPSTimeSec sat_corr_time; /** SSR Solution ID. */ public int ssr_sol_id; @@ -111,14 +114,15 @@ public MsgSsrFlagHighLevel(SBPMessage msg) throws SBPBinaryException { super(msg); if (msg.type != TYPE) throw new SBPBinaryException( - "Type mismatch for MsgSsrFlagHighLevel, expected 3001, actual " + msg.type); + "Type mismatch for MsgSsrFlagHighLevel, expected 3002, actual " + msg.type); } @Override protected void parse(Parser parser) throws SBPBinaryException { /* Parse fields from binary */ obs_time = new GPSTimeSec().parse(parser); - corr_time = new GPSTimeSec().parse(parser); + iono_corr_time = new GPSTimeSec().parse(parser); + sat_corr_time = new GPSTimeSec().parse(parser); ssr_sol_id = parser.getU8(); tile_set_id = parser.getU16(); tile_id = parser.getU16(); @@ -137,7 +141,8 @@ protected void parse(Parser parser) throws SBPBinaryException { @Override protected void build(Builder builder) { obs_time.build(builder); - corr_time.build(builder); + iono_corr_time.build(builder); + sat_corr_time.build(builder); builder.putU8(ssr_sol_id); builder.putU16(tile_set_id); builder.putU16(tile_id); @@ -157,7 +162,8 @@ protected void build(Builder builder) { public JSONObject toJSON() { JSONObject obj = super.toJSON(); obj.put("obs_time", obs_time.toJSON()); - obj.put("corr_time", corr_time.toJSON()); + obj.put("iono_corr_time", iono_corr_time.toJSON()); + obj.put("sat_corr_time", sat_corr_time.toJSON()); obj.put("ssr_sol_id", ssr_sol_id); obj.put("tile_set_id", tile_set_id); obj.put("tile_id", tile_id); diff --git a/java/src/com/swiftnav/sbp/integrity/MsgSsrFlagHighLevelDepA.java b/java/src/com/swiftnav/sbp/integrity/MsgSsrFlagHighLevelDepA.java new file mode 100644 index 0000000000..cd42303ec5 --- /dev/null +++ b/java/src/com/swiftnav/sbp/integrity/MsgSsrFlagHighLevelDepA.java @@ -0,0 +1,158 @@ +/* Copyright (C) 2015-2022 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ +package com.swiftnav.sbp.integrity; + +// This file was auto-generated from yaml/swiftnav/sbp/integrity.yaml by generate.py. +// Do not modify by hand! + + +import com.swiftnav.sbp.SBPBinaryException; +import com.swiftnav.sbp.SBPMessage; +import com.swiftnav.sbp.gnss.*; +import org.json.JSONArray; +import org.json.JSONObject; + +/** + * SBP class for message MSG_SSR_FLAG_HIGH_LEVEL_DEP_A (0x0BB9). + * + *

You can have MSG_SSR_FLAG_HIGH_LEVEL_DEP_A inherent its fields directly from an inherited SBP + * object, or construct it inline using a dict of its fields. + * + *

Deprecated. + */ +public class MsgSsrFlagHighLevelDepA extends SBPMessage { + public static final int TYPE = 0x0BB9; + + /** GNSS reference time of the observation used to generate the flag. */ + public GPSTimeSec obs_time; + + /** GNSS reference time of the correction associated to the flag. */ + public GPSTimeSec corr_time; + + /** SSR Solution ID. */ + public int ssr_sol_id; + + /** Unique identifier of the set this tile belongs to. */ + public int tile_set_id; + + /** Unique identifier of this tile in the tile set. */ + public int tile_id; + + /** Chain and type of flag. */ + public int chain_id; + + /** Use GPS satellites. */ + public int use_gps_sat; + + /** Use GAL satellites. */ + public int use_gal_sat; + + /** Use BDS satellites. */ + public int use_bds_sat; + + /** Use QZSS satellites. */ + public int use_qzss_sat; + + /** Reserved */ + public int[] reserved; + + /** Use tropo grid points. */ + public int use_tropo_grid_points; + + /** Use iono grid points. */ + public int use_iono_grid_points; + + /** Use iono tile satellite LoS. */ + public int use_iono_tile_sat_los; + + /** Use iono grid point satellite LoS. */ + public int use_iono_grid_point_sat_los; + + public MsgSsrFlagHighLevelDepA(int sender) { + super(sender, TYPE); + } + + public MsgSsrFlagHighLevelDepA() { + super(TYPE); + } + + public MsgSsrFlagHighLevelDepA(SBPMessage msg) throws SBPBinaryException { + super(msg); + if (msg.type != TYPE) + throw new SBPBinaryException( + "Type mismatch for MsgSsrFlagHighLevelDepA, expected 3001, actual " + msg.type); + } + + @Override + protected void parse(Parser parser) throws SBPBinaryException { + /* Parse fields from binary */ + obs_time = new GPSTimeSec().parse(parser); + corr_time = new GPSTimeSec().parse(parser); + ssr_sol_id = parser.getU8(); + tile_set_id = parser.getU16(); + tile_id = parser.getU16(); + chain_id = parser.getU8(); + use_gps_sat = parser.getU8(); + use_gal_sat = parser.getU8(); + use_bds_sat = parser.getU8(); + use_qzss_sat = parser.getU8(); + reserved = parser.getArrayofU8(5); + use_tropo_grid_points = parser.getU8(); + use_iono_grid_points = parser.getU8(); + use_iono_tile_sat_los = parser.getU8(); + use_iono_grid_point_sat_los = parser.getU8(); + } + + @Override + protected void build(Builder builder) { + obs_time.build(builder); + corr_time.build(builder); + builder.putU8(ssr_sol_id); + builder.putU16(tile_set_id); + builder.putU16(tile_id); + builder.putU8(chain_id); + builder.putU8(use_gps_sat); + builder.putU8(use_gal_sat); + builder.putU8(use_bds_sat); + builder.putU8(use_qzss_sat); + builder.putArrayofU8(reserved, 5); + builder.putU8(use_tropo_grid_points); + builder.putU8(use_iono_grid_points); + builder.putU8(use_iono_tile_sat_los); + builder.putU8(use_iono_grid_point_sat_los); + } + + @Override + public JSONObject toJSON() { + JSONObject obj = super.toJSON(); + obj.put("obs_time", obs_time.toJSON()); + obj.put("corr_time", corr_time.toJSON()); + obj.put("ssr_sol_id", ssr_sol_id); + obj.put("tile_set_id", tile_set_id); + obj.put("tile_id", tile_id); + obj.put("chain_id", chain_id); + obj.put("use_gps_sat", use_gps_sat); + obj.put("use_gal_sat", use_gal_sat); + obj.put("use_bds_sat", use_bds_sat); + obj.put("use_qzss_sat", use_qzss_sat); + obj.put("reserved", new JSONArray(reserved)); + obj.put("use_tropo_grid_points", use_tropo_grid_points); + obj.put("use_iono_grid_points", use_iono_grid_points); + obj.put("use_iono_tile_sat_los", use_iono_tile_sat_los); + obj.put("use_iono_grid_point_sat_los", use_iono_grid_point_sat_los); + return obj; + } + + @Override + public String getFriendlyName() { + return "SSR FLAG HIGH LEVEL DEP A"; + } +} diff --git a/java/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepATest.java b/java/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepATest.java new file mode 100644 index 0000000000..56d5f592c5 --- /dev/null +++ b/java/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepATest.java @@ -0,0 +1,285 @@ +/* Copyright (C) 2015-2022 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ +package com.swiftnav.sbp.test; + +// This file was auto-generated from +// spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml by generate.py. Do not +// modify by hand! + + +import com.swiftnav.sbp.SBPMessage; +import com.swiftnav.sbp.integrity.MsgSsrFlagHighLevelDepA; +import java.math.BigInteger; +import org.json.JSONObject; +import org.junit.Test; + +public class auto_check_sbp_integrity_MsgSsrFlagHighLevelDepATest { + + public static boolean debug = false; + private static final double DELTA = 1e-15; + + @Test + public void test1() throws Throwable { + if (debug) + System.out.format( + "%n%s%n", "auto_check_sbp_integrity_MsgSsrFlagHighLevelDepATest.test1"); + byte[] payload = + new byte[] { + (byte) 180, + (byte) 0, + (byte) 0, + (byte) 0, + (byte) 3, + (byte) 0, + (byte) 104, + (byte) 1, + (byte) 0, + (byte) 0, + (byte) 6, + (byte) 0, + (byte) 10, + (byte) 20, + (byte) 0, + (byte) 30, + (byte) 0, + (byte) 40, + (byte) 1, + (byte) 2, + (byte) 3, + (byte) 4, + (byte) 0, + (byte) 0, + (byte) 0, + (byte) 0, + (byte) 0, + (byte) 5, + (byte) 6, + (byte) 7, + (byte) 8, + }; + SBPMessage sbp = new SBPMessage(0x0042, 0x0BB9, payload); + MsgSsrFlagHighLevelDepA msg = new MsgSsrFlagHighLevelDepA(sbp); + JSONObject json = msg.toJSON(); + Number value; + Number expected; + value = msg.chain_id; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.chain_id + "' != '" + 40 + "'", + value.equals(BigInteger.valueOf(40L))); + } else { + value = value.longValue(); + expected = 40L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.corr_time.tow; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.corr_time.tow + "' != '" + 360 + "'", + value.equals(BigInteger.valueOf(360L))); + } else { + value = value.longValue(); + expected = 360L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.corr_time.wn; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.corr_time.wn + "' != '" + 6 + "'", + value.equals(BigInteger.valueOf(6L))); + } else { + value = value.longValue(); + expected = 6L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.obs_time.tow; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.obs_time.tow + "' != '" + 180 + "'", + value.equals(BigInteger.valueOf(180L))); + } else { + value = value.longValue(); + expected = 180L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.obs_time.wn; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.obs_time.wn + "' != '" + 3 + "'", + value.equals(BigInteger.valueOf(3L))); + } else { + value = value.longValue(); + expected = 3L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.reserved[0]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.reserved[0] + "' != '" + 0 + "'", + value.equals(BigInteger.valueOf(0L))); + } else { + value = value.longValue(); + expected = 0L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.reserved[1]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.reserved[1] + "' != '" + 0 + "'", + value.equals(BigInteger.valueOf(0L))); + } else { + value = value.longValue(); + expected = 0L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.reserved[2]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.reserved[2] + "' != '" + 0 + "'", + value.equals(BigInteger.valueOf(0L))); + } else { + value = value.longValue(); + expected = 0L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.reserved[3]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.reserved[3] + "' != '" + 0 + "'", + value.equals(BigInteger.valueOf(0L))); + } else { + value = value.longValue(); + expected = 0L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.reserved[4]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.reserved[4] + "' != '" + 0 + "'", + value.equals(BigInteger.valueOf(0L))); + } else { + value = value.longValue(); + expected = 0L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.ssr_sol_id; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.ssr_sol_id + "' != '" + 10 + "'", + value.equals(BigInteger.valueOf(10L))); + } else { + value = value.longValue(); + expected = 10L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.tile_id; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.tile_id + "' != '" + 30 + "'", value.equals(BigInteger.valueOf(30L))); + } else { + value = value.longValue(); + expected = 30L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.tile_set_id; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.tile_set_id + "' != '" + 20 + "'", + value.equals(BigInteger.valueOf(20L))); + } else { + value = value.longValue(); + expected = 20L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.use_bds_sat; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.use_bds_sat + "' != '" + 3 + "'", + value.equals(BigInteger.valueOf(3L))); + } else { + value = value.longValue(); + expected = 3L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.use_gal_sat; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.use_gal_sat + "' != '" + 2 + "'", + value.equals(BigInteger.valueOf(2L))); + } else { + value = value.longValue(); + expected = 2L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.use_gps_sat; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.use_gps_sat + "' != '" + 1 + "'", + value.equals(BigInteger.valueOf(1L))); + } else { + value = value.longValue(); + expected = 1L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.use_iono_grid_point_sat_los; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.use_iono_grid_point_sat_los + "' != '" + 8 + "'", + value.equals(BigInteger.valueOf(8L))); + } else { + value = value.longValue(); + expected = 8L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.use_iono_grid_points; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.use_iono_grid_points + "' != '" + 6 + "'", + value.equals(BigInteger.valueOf(6L))); + } else { + value = value.longValue(); + expected = 6L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.use_iono_tile_sat_los; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.use_iono_tile_sat_los + "' != '" + 7 + "'", + value.equals(BigInteger.valueOf(7L))); + } else { + value = value.longValue(); + expected = 7L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.use_qzss_sat; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.use_qzss_sat + "' != '" + 4 + "'", + value.equals(BigInteger.valueOf(4L))); + } else { + value = value.longValue(); + expected = 4L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.use_tropo_grid_points; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.use_tropo_grid_points + "' != '" + 5 + "'", + value.equals(BigInteger.valueOf(5L))); + } else { + value = value.longValue(); + expected = 5L; + org.junit.Assert.assertEquals(value, expected); + } + + org.junit.Assert.assertNotEquals("", msg.getFriendlyName()); + } +} diff --git a/java/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelTest.java b/java/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelTest.java index 0579248903..c035eedb7f 100644 --- a/java/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelTest.java +++ b/java/test/auto_check_sbp_integrity_MsgSsrFlagHighLevelTest.java @@ -38,6 +38,12 @@ public void test1() throws Throwable { (byte) 0, (byte) 3, (byte) 0, + (byte) 109, + (byte) 1, + (byte) 0, + (byte) 0, + (byte) 6, + (byte) 0, (byte) 104, (byte) 1, (byte) 0, @@ -64,7 +70,7 @@ public void test1() throws Throwable { (byte) 7, (byte) 8, }; - SBPMessage sbp = new SBPMessage(0x0042, 0x0BB9, payload); + SBPMessage sbp = new SBPMessage(0x0042, 0x0BBA, payload); MsgSsrFlagHighLevel msg = new MsgSsrFlagHighLevel(sbp); JSONObject json = msg.toJSON(); Number value; @@ -79,20 +85,20 @@ public void test1() throws Throwable { expected = 40L; org.junit.Assert.assertEquals(value, expected); } - value = msg.corr_time.tow; + value = msg.iono_corr_time.tow; if (value instanceof BigInteger) { org.junit.Assert.assertTrue( - "'" + msg.corr_time.tow + "' != '" + 360 + "'", - value.equals(BigInteger.valueOf(360L))); + "'" + msg.iono_corr_time.tow + "' != '" + 365 + "'", + value.equals(BigInteger.valueOf(365L))); } else { value = value.longValue(); - expected = 360L; + expected = 365L; org.junit.Assert.assertEquals(value, expected); } - value = msg.corr_time.wn; + value = msg.iono_corr_time.wn; if (value instanceof BigInteger) { org.junit.Assert.assertTrue( - "'" + msg.corr_time.wn + "' != '" + 6 + "'", + "'" + msg.iono_corr_time.wn + "' != '" + 6 + "'", value.equals(BigInteger.valueOf(6L))); } else { value = value.longValue(); @@ -169,6 +175,26 @@ public void test1() throws Throwable { expected = 0L; org.junit.Assert.assertEquals(value, expected); } + value = msg.sat_corr_time.tow; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.sat_corr_time.tow + "' != '" + 360 + "'", + value.equals(BigInteger.valueOf(360L))); + } else { + value = value.longValue(); + expected = 360L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.sat_corr_time.wn; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.sat_corr_time.wn + "' != '" + 6 + "'", + value.equals(BigInteger.valueOf(6L))); + } else { + value = value.longValue(); + expected = 6L; + org.junit.Assert.assertEquals(value, expected); + } value = msg.ssr_sol_id; if (value instanceof BigInteger) { org.junit.Assert.assertTrue( diff --git a/javascript/sbp.bundle.js b/javascript/sbp.bundle.js index dba6f3ed5e..408309f92e 100644 --- a/javascript/sbp.bundle.js +++ b/javascript/sbp.bundle.js @@ -1,2 +1,2 @@ /*! For license information please see sbp.bundle.js.LICENSE.txt */ -(()=>{var e={3322:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=p(278).GnssSignalDep,n=(p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT",this.fields=t||this.parser.parse(e.payload),this});(n.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT",n.prototype.msg_type=47,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:i.prototype.parser}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),n.prototype.fieldSpec.push(["cp","writeFloatLE",4]),n.prototype.fieldSpec.push(["cf","writeFloatLE",4]),n.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_C",a.prototype.msg_type=31,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),a.prototype.fieldSpec.push(["cp","writeFloatLE",4]),a.prototype.fieldSpec.push(["cf","writeFloatLE",4]),a.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_B",l.prototype.msg_type=20,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["snr","writeFloatLE",4]),l.prototype.fieldSpec.push(["cp","writeFloatLE",4]),l.prototype.fieldSpec.push(["cf","writeFloatLE",4]),l.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_A",c.prototype.msg_type=21,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").uint8("prn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["snr","writeFloatLE",4]),c.prototype.fieldSpec.push(["cp","writeFloatLE",4]),c.prototype.fieldSpec.push(["cf","writeFloatLE",4]),c.prototype.fieldSpec.push(["prn","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="AcqSvProfile",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="AcqSvProfile",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:i.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["job_type","writeUInt8",1]),u.prototype.fieldSpec.push(["status","writeUInt8",1]),u.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),u.prototype.fieldSpec.push(["int_time","writeUInt8",1]),u.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),u.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),u.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),u.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf","writeInt32LE",4]),u.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="AcqSvProfileDep",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="AcqSvProfileDep",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:s.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["job_type","writeUInt8",1]),y.prototype.fieldSpec.push(["status","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),y.prototype.fieldSpec.push(["int_time","writeUInt8",1]),y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),y.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),y.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),y.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf","writeInt32LE",4]),y.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE",f.prototype.msg_type=46,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:u.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["acq_sv_profile","array",u.prototype.fieldSpec,function(){return this.fields.array.length},null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",d.prototype.msg_type=30,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["acq_sv_profile","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={47:n,MsgAcqResult:n,31:a,MsgAcqResultDepC:a,20:l,MsgAcqResultDepB:l,21:c,MsgAcqResultDepA:c,AcqSvProfile:u,AcqSvProfileDep:y,46:f,MsgAcqSvProfile:f,30:d,MsgAcqSvProfileDep:d}},6053:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",i.prototype.msg_type=179,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",s.prototype.msg_type=180,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("flags").string("version",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt32LE",4]),s.prototype.fieldSpec.push(["version","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_JUMP_TO_APP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_JUMP_TO_APP",n.prototype.msg_type=177,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("jump"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["jump","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_REQ",a.prototype.msg_type=222,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little"),a.prototype.fieldSpec=[];let l=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_RESP",l.prototype.msg_type=221,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("dna",{length:8,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["dna","array","writeUInt8",function(){return 1},8]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",c.prototype.msg_type=176,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").array("handshake",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["handshake","array","writeUInt8",function(){return 1},null]),e.exports={179:i,MsgBootloaderHandshakeReq:i,180:s,MsgBootloaderHandshakeResp:s,177:n,MsgBootloaderJumpToApp:n,222:a,MsgNapDeviceDnaReq:a,221:l,MsgNapDeviceDnaResp:l,176:c,MsgBootloaderHandshakeDepA:c}},7224:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_EXT_EVENT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_EXT_EVENT",i.prototype.msg_type=257,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags").uint8("pin"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]),i.prototype.fieldSpec.push(["pin","writeUInt8",1]),e.exports={257:i,MsgExtEvent:i}},8986:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_REQ",i.prototype.msg_type=168,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").uint8("chunk_size").string("filename",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),i.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),i.prototype.fieldSpec.push(["chunk_size","writeUInt8",1]),i.prototype.fieldSpec.push(["filename","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_RESP",s.prototype.msg_type=163,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("sequence").array("contents",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),s.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_REQ",n.prototype.msg_type=169,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("dirname",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),n.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),n.prototype.fieldSpec.push(["dirname","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_RESP",a.prototype.msg_type=170,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("sequence").string("contents",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),a.prototype.fieldSpec.push(["contents","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_REMOVE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_REMOVE",l.prototype.msg_type=172,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("filename",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["filename","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_REQ",c.prototype.msg_type=173,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("filename",{greedy:!0}).array("data",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),c.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),c.prototype.fieldSpec.push(["filename","string",null]),c.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_RESP",u.prototype.msg_type=171,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sequence"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_REQ",y.prototype.msg_type=4097,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sequence"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_RESP",f.prototype.msg_type=4098,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("window_size").uint32("batch_size").uint32("fileio_version"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),f.prototype.fieldSpec.push(["window_size","writeUInt32LE",4]),f.prototype.fieldSpec.push(["batch_size","writeUInt32LE",4]),f.prototype.fieldSpec.push(["fileio_version","writeUInt32LE",4]),e.exports={168:i,MsgFileioReadReq:i,163:s,MsgFileioReadResp:s,169:n,MsgFileioReadDirReq:n,170:a,MsgFileioReadDirResp:a,172:l,MsgFileioRemove:l,173:c,MsgFileioWriteReq:c,171:u,MsgFileioWriteResp:u,4097:y,MsgFileioConfigReq:y,4098:f,MsgFileioConfigResp:f}},6667:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_PROGRAM",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_PROGRAM",i.prototype.msg_type=230,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len").array("data",{type:"uint8",length:"addr_len"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["target","writeUInt8",1]),i.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),i.prototype.fieldSpec.push(["addr_len","writeUInt8",1]),i.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},"addr_len"]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_DONE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_DONE",s.prototype.msg_type=224,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("response"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["response","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_REQ",n.prototype.msg_type=231,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["target","writeUInt8",1]),n.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),n.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_RESP",a.prototype.msg_type=225,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["target","writeUInt8",1]),a.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),a.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_ERASE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_ERASE",l.prototype.msg_type=226,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("target").uint32("sector_num"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["target","writeUInt8",1]),l.prototype.fieldSpec.push(["sector_num","writeUInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_LOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_LOCK_SECTOR",c.prototype.msg_type=227,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sector"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_UNLOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_UNLOCK_SECTOR",u.prototype.msg_type=228,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sector"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_REQ",y.prototype.msg_type=232,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_RESP",f.prototype.msg_type=229,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("stm_id",{length:12,type:"uint8"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["stm_id","array","writeUInt8",function(){return 1},12]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",d.prototype.msg_type=243,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["status","array","writeUInt8",function(){return 1},1]),e.exports={230:i,MsgFlashProgram:i,224:s,MsgFlashDone:s,231:n,MsgFlashReadReq:n,225:a,MsgFlashReadResp:a,226:l,MsgFlashErase:l,227:c,MsgStmFlashLockSector:c,228:u,MsgStmFlashUnlockSector:u,232:y,MsgStmUniqueIdReq:y,229:f,MsgStmUniqueIdResp:f,243:d,MsgM25FlashWriteStatus:d}},278:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="GnssSignal",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="GnssSignal",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sat").uint8("code"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sat","writeUInt8",1]),i.prototype.fieldSpec.push(["code","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="SvId",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="SvId",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("satId").uint8("constellation"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["satId","writeUInt8",1]),s.prototype.fieldSpec.push(["constellation","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="GnssSignalDep",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="GnssSignalDep",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("sat").uint8("code").uint8("reserved"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sat","writeUInt16LE",2]),n.prototype.fieldSpec.push(["code","writeUInt8",1]),n.prototype.fieldSpec.push(["reserved","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="GPSTimeDep",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GPSTimeDep",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").uint16("wn"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);let l=function(e,t){return r.call(this,e),this.messageType="GPSTimeSec",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="GPSTimeSec",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("wn"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);let c=function(e,t){return r.call(this,e),this.messageType="GPSTime",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="GPSTime",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").int32("ns_residual").uint16("wn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),c.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);let u=function(e,t){return r.call(this,e),this.messageType="CarrierPhase",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="CarrierPhase",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["i","writeInt32LE",4]),u.prototype.fieldSpec.push(["f","writeUInt8",1]),e.exports={GnssSignal:i,SvId:s,GnssSignalDep:n,GPSTimeDep:a,GPSTimeSec:l,GPSTime:c,CarrierPhase:u}},3276:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_IMU_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_IMU_RAW",i.prototype.msg_type=2304,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("acc_x").int16("acc_y").int16("acc_z").int16("gyr_x").int16("gyr_y").int16("gyr_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["acc_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_z","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_z","writeInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_IMU_AUX",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_IMU_AUX",s.prototype.msg_type=2305,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("imu_type").int16("temp").uint8("imu_conf"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["imu_type","writeUInt8",1]),s.prototype.fieldSpec.push(["temp","writeInt16LE",2]),s.prototype.fieldSpec.push(["imu_conf","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_IMU_COMP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_IMU_COMP",n.prototype.msg_type=2309,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint64("time").uint16("flags").int32("acc_comp_x").int32("acc_comp_y").int32("acc_comp_z").int32("gyr_comp_x").int32("gyr_comp_y").int32("gyr_comp_z"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["time","writeUInt64LE",8]),n.prototype.fieldSpec.push(["flags","writeUInt16LE",2]),n.prototype.fieldSpec.push(["acc_comp_x","writeInt32LE",4]),n.prototype.fieldSpec.push(["acc_comp_y","writeInt32LE",4]),n.prototype.fieldSpec.push(["acc_comp_z","writeInt32LE",4]),n.prototype.fieldSpec.push(["gyr_comp_x","writeInt32LE",4]),n.prototype.fieldSpec.push(["gyr_comp_y","writeInt32LE",4]),n.prototype.fieldSpec.push(["gyr_comp_z","writeInt32LE",4]),e.exports={2304:i,MsgImuRaw:i,2305:s,MsgImuAux:s,2309:n,MsgImuComp:n}},8958:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal,p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec),s=p(278).SvId,n=function(e,t){return r.call(this,e),this.messageType="IntegritySSRHeader",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="IntegritySSRHeader",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),n.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),n.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),n.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),n.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["chain_id","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_HIGH_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_HIGH_LEVEL",a.prototype.msg_type=3001,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).nest("corr_time",{type:i.prototype.parser}).uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id").uint8("use_gps_sat").uint8("use_gal_sat").uint8("use_bds_sat").uint8("use_qzss_sat").array("reserved",{length:5,type:"uint8"}).uint8("use_tropo_grid_points").uint8("use_iono_grid_points").uint8("use_iono_tile_sat_los").uint8("use_iono_grid_point_sat_los"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["corr_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),a.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gps_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gal_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_bds_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_qzss_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},5]),a.prototype.fieldSpec.push(["use_tropo_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_tile_sat_los","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_point_sat_los","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_SATELLITES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_SATELLITES",l.prototype.msg_type=3005,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint8("chain_id").uint8("const_id").uint8("n_faulty_sats").array("faulty_sats",{type:"uint8",length:"n_faulty_sats"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),l.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),l.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),l.prototype.fieldSpec.push(["const_id","writeUInt8",1]),l.prototype.fieldSpec.push(["n_faulty_sats","writeUInt8",1]),l.prototype.fieldSpec.push(["faulty_sats","array","writeUInt8",function(){return 1},"n_faulty_sats"]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",c.prototype.msg_type=3011,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),c.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),c.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",u.prototype.msg_type=3015,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),u.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",y.prototype.msg_type=3021,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),y.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",f.prototype.msg_type=3025,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint16("grid_point_id").uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),f.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),f.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),f.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ACKNOWLEDGE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ACKNOWLEDGE",d.prototype.msg_type=3026,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("request_id").uint32("area_id").uint8("response_code").uint16("correction_mask_on_demand").uint16("correction_mask_stream").uint8("solution_id"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["request_id","writeUInt8",1]),d.prototype.fieldSpec.push(["area_id","writeUInt32LE",4]),d.prototype.fieldSpec.push(["response_code","writeUInt8",1]),d.prototype.fieldSpec.push(["correction_mask_on_demand","writeUInt16LE",2]),d.prototype.fieldSpec.push(["correction_mask_stream","writeUInt16LE",2]),d.prototype.fieldSpec.push(["solution_id","writeUInt8",1]),e.exports={IntegritySSRHeader:n,3001:a,MsgSsrFlagHighLevel:a,3005:l,MsgSsrFlagSatellites:l,3011:c,MsgSsrFlagTropoGridPoints:c,3015:u,MsgSsrFlagIonoGridPoints:u,3021:y,MsgSsrFlagIonoTileSatLos:y,3025:f,MsgSsrFlagIonoGridPointSatLos:f,3026:d,MsgAcknowledge:d}},6747:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE_DEP_A",i.prototype.msg_type=32512,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").string("tname",{length:15}).string("cmdline",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["index","writeUInt8",1]),i.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),i.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),i.prototype.fieldSpec.push(["tname","string",15]),i.prototype.fieldSpec.push(["cmdline","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE_DEP_A",s.prototype.msg_type=32513,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").string("tname",{length:15}).string("cmdline",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["index","writeUInt8",1]),s.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),s.prototype.fieldSpec.push(["pmem","writeUInt8",1]),s.prototype.fieldSpec.push(["tname","string",15]),s.prototype.fieldSpec.push(["cmdline","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE_DEP_A",n.prototype.msg_type=32514,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),n.prototype.fieldSpec.push(["pmem","writeUInt8",1]),n.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),n.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",a.prototype.msg_type=32515,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("socket_count").uint16("socket_types").uint16("socket_states").string("cmdline",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["index","writeUInt8",1]),a.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_count","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),a.prototype.fieldSpec.push(["cmdline","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",l.prototype.msg_type=32516,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("recv_queued").uint16("send_queued").uint16("socket_types").uint16("socket_states").string("address_of_largest",{length:64}).string("cmdline",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["index","writeUInt8",1]),l.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),l.prototype.fieldSpec.push(["recv_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["send_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),l.prototype.fieldSpec.push(["address_of_largest","string",64]),l.prototype.fieldSpec.push(["cmdline","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SOCKET_USAGE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SOCKET_USAGE",c.prototype.msg_type=32517,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("avg_queue_depth").uint32("max_queue_depth").array("socket_state_counts",{length:16,type:"uint16le"}).array("socket_type_counts",{length:16,type:"uint16le"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["avg_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["max_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["socket_state_counts","array","writeUInt16LE",function(){return 2},16]),c.prototype.fieldSpec.push(["socket_type_counts","array","writeUInt16LE",function(){return 2},16]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_COUNT",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_COUNT",u.prototype.msg_type=32518,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("fd_count").string("cmdline",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt8",1]),u.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),u.prototype.fieldSpec.push(["fd_count","writeUInt16LE",2]),u.prototype.fieldSpec.push(["cmdline","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_SUMMARY",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_SUMMARY",y.prototype.msg_type=32519,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sys_fd_count").string("most_opened",{greedy:!0}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sys_fd_count","writeUInt32LE",4]),y.prototype.fieldSpec.push(["most_opened","string",null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE",f.prototype.msg_type=32520,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["index","writeUInt8",1]),f.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),f.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),f.prototype.fieldSpec.push(["time","writeUInt32LE",4]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["tname","string",15]),f.prototype.fieldSpec.push(["cmdline","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE",d.prototype.msg_type=32521,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["index","writeUInt8",1]),d.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pmem","writeUInt8",1]),d.prototype.fieldSpec.push(["time","writeUInt32LE",4]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]),d.prototype.fieldSpec.push(["tname","string",15]),d.prototype.fieldSpec.push(["cmdline","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE",h.prototype.msg_type=32522,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count").uint32("time").uint8("flags"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),h.prototype.fieldSpec.push(["pmem","writeUInt8",1]),h.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),h.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]),h.prototype.fieldSpec.push(["time","writeUInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={32512:i,MsgLinuxCpuStateDepA:i,32513:s,MsgLinuxMemStateDepA:s,32514:n,MsgLinuxSysStateDepA:n,32515:a,MsgLinuxProcessSocketCounts:a,32516:l,MsgLinuxProcessSocketQueues:l,32517:c,MsgLinuxSocketUsage:c,32518:u,MsgLinuxProcessFdCount:u,32519:y,MsgLinuxProcessFdSummary:y,32520:f,MsgLinuxCpuState:f,32521:d,MsgLinuxMemState:d,32522:h,MsgLinuxSysState:h}},8556:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LOG",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LOG",i.prototype.msg_type=1025,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("level").string("text",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["level","writeUInt8",1]),i.prototype.fieldSpec.push(["text","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FWD",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FWD",s.prototype.msg_type=1026,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("source").uint8("protocol").array("fwd_payload",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["protocol","writeUInt8",1]),s.prototype.fieldSpec.push(["fwd_payload","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PRINT_DEP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PRINT_DEP",n.prototype.msg_type=16,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").string("text",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["text","string",null]),e.exports={1025:i,MsgLog:i,1026:s,MsgFwd:s,16:n,MsgPrintDep:n}},3574:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MAG_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MAG_RAW",i.prototype.msg_type=2306,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("mag_x").int16("mag_y").int16("mag_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["mag_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_z","writeInt16LE",2]),e.exports={2306:i,MsgMagRaw:i}},8248:(e,t,p)=>{e=p.nmd(e);var r=p(7052).i,o=(p(3627),p(4789),p(7238)),i=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920],s=function(e,t){for(var p in t)t.hasOwnProperty(p)&&(e[p]=t[p]);return e};function n(e){this.name="ParameterValidationError",this.message=e,this.stack=(new Error).stack}function a(e){this.name="BufferTooShortError",this.message=e,this.stack=(new Error).stack}function l(e){this.name="BufferCorruptError",this.message=e,this.stack=(new Error).stack}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,l.prototype=Object.create(Error.prototype),l.prototype.constructor=l;var c={acquisition:p(3322),bootload:p(6053),ext_events:p(7224),file_io:p(8986),flash:p(6667),gnss:p(278),imu:p(3276),integrity:p(8958),linux:p(6747),logging:p(8556),mag:p(3574),navigation:p(4539),ndb:p(309),observation:p(4399),orientation:p(2623),piksi:p(9757),profiling:p(2827),sbas:p(5232),settings:p(4120),signings:p(9286),solution_meta:p(848),ssr:p(9269),system:p(2644),tracking:p(752),user:p(5562),vehicle:p(7293),telemetry:p(3894)},u=Object.keys(c).reduce((function(e,t){var p=c[t],r={};return Object.keys(p).forEach((function(e){parseInt(e)==e&&(r[e]=p[e])})),s(e,r)}),{}),y=Object.keys(c).reduce((function(e,t){var p=c[t],r={};return Object.keys(p).forEach((function(e){if(parseInt(e)!=e){var t=p[e].prototype.messageType||e;r[t]=p[e]}})),s(e,r)}),{}),f=(new r).endianess("little").uint8("preamble").uint16("msg_type").uint16("sender").uint8("length").buffer("payload",{length:"length"}).uint16("crc");function d(e,t){t=t||0;for(let p of e)t=t<<8&65535^i[t>>8&255^255&p],t&=65535;return t}e.exports={preambleByte:85,crc16:d,sbpIdTable:u,sbpMessageTypesTable:y,decode:function(e){var t=f.parse(e),p=u[t.msg_type];return void 0===p?(console.log("Unknown message type: ",t.msg_type),new o(t)):new p(t)},dispatch:function(t,p,r){var o,i,s=new Buffer(0);if(void 0===r&&"function"==typeof p?o=p:(o=r,i=p),i&&!Array.isArray(i)&&-1===["function","number"].indexOf(typeof i))throw n("dispatch: messageWhitelist must be function, number, or array");var c=function(p){t.pause();try{if((s=Buffer.concat([s,p])).length<2)return;var r=function(){var t,p,r,o,n,c,u;for(u=0;us.length)throw new a;t=s.slice(u+1,u+6),r=s.readUInt16LE(u+1),_=s.readUInt16LE(u+3),o=s.readUInt8(u+5);var y=i&&Array.isArray(i)&&-1!==i.indexOf(r),f=i&&"number"==typeof i&&i&r,h=i&&"function"==typeof i&&i(r);if(i&&!(y||f||h))return s=s.slice(u+6+o+2),null;if(u+8+o>s.length)throw new a;c=d(s.slice(u+6,u+6+o),d(t)),n=s.readUInt16LE(u+6+o);var S=s.slice(u,u+6+o+2);if(n===c)return s=s.slice(u+6+o+2),[e.exports.decode(S),S];throw s=s.slice(u+1),new l}();if(null===r)return;var n=r[0],u=r[1];o(null,n,u)}catch(e){if(!(e instanceof a||e instanceof l))throw e}finally{t.resume(),s.length>0&&setTimeout((function(){c(new Buffer(0))}),0)}};t.on("data",c)}},function(r){var o={function:!0,object:!0},i=o[typeof window]&&window||this,s=o[typeof t]&&t&&!t.nodeType&&t,n=o.object&&e&&!e.nodeType&&e,a=s&&n&&"object"==typeof p.g&&p.g;!a||a.global!==a&&a.window!==a&&a.self!==a||(i=a),i.SBP=r}(e.exports)},4539:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME",i.prototype.msg_type=258,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_GNSS",s.prototype.msg_type=260,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME",n.prototype.msg_type=259,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["year","writeUInt16LE",2]),n.prototype.fieldSpec.push(["month","writeUInt8",1]),n.prototype.fieldSpec.push(["day","writeUInt8",1]),n.prototype.fieldSpec.push(["hours","writeUInt8",1]),n.prototype.fieldSpec.push(["minutes","writeUInt8",1]),n.prototype.fieldSpec.push(["seconds","writeUInt8",1]),n.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME_GNSS",a.prototype.msg_type=261,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]),a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["year","writeUInt16LE",2]),a.prototype.fieldSpec.push(["month","writeUInt8",1]),a.prototype.fieldSpec.push(["day","writeUInt8",1]),a.prototype.fieldSpec.push(["hours","writeUInt8",1]),a.prototype.fieldSpec.push(["minutes","writeUInt8",1]),a.prototype.fieldSpec.push(["seconds","writeUInt8",1]),a.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_DOPS",l.prototype.msg_type=520,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF",c.prototype.msg_type=521,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["x","writeDoubleLE",8]),c.prototype.fieldSpec.push(["y","writeDoubleLE",8]),c.prototype.fieldSpec.push(["z","writeDoubleLE",8]),c.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV",u.prototype.msg_type=532,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["x","writeDoubleLE",8]),u.prototype.fieldSpec.push(["y","writeDoubleLE",8]),u.prototype.fieldSpec.push(["z","writeDoubleLE",8]),u.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),u.prototype.fieldSpec.push(["flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH",y.prototype.msg_type=522,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),y.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),y.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),y.prototype.fieldSpec.push(["height","writeDoubleLE",8]),y.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV",f.prototype.msg_type=529,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),f.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),f.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),f.prototype.fieldSpec.push(["height","writeDoubleLE",8]),f.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="EstimatedHorizontalErrorEllipse",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="EstimatedHorizontalErrorEllipse",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").floatle("semi_major").floatle("semi_minor").floatle("orientation"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["semi_major","writeFloatLE",4]),d.prototype.fieldSpec.push(["semi_minor","writeFloatLE",4]),d.prototype.fieldSpec.push(["orientation","writeFloatLE",4]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_ACC",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_ACC",h.prototype.msg_type=536,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").doublele("orthometric_height").floatle("h_accuracy").floatle("v_accuracy").floatle("ct_accuracy").floatle("at_accuracy").nest("h_ellipse",{type:d.prototype.parser}).uint8("confidence_and_geoid").uint8("n_sats").uint8("flags"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),h.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),h.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),h.prototype.fieldSpec.push(["height","writeDoubleLE",8]),h.prototype.fieldSpec.push(["orthometric_height","writeDoubleLE",8]),h.prototype.fieldSpec.push(["h_accuracy","writeFloatLE",4]),h.prototype.fieldSpec.push(["v_accuracy","writeFloatLE",4]),h.prototype.fieldSpec.push(["ct_accuracy","writeFloatLE",4]),h.prototype.fieldSpec.push(["at_accuracy","writeFloatLE",4]),h.prototype.fieldSpec.push(["h_ellipse",d.prototype.fieldSpec]),h.prototype.fieldSpec.push(["confidence_and_geoid","writeUInt8",1]),h.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF",_.prototype.msg_type=523,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),_.prototype.fieldSpec.push(["x","writeInt32LE",4]),_.prototype.fieldSpec.push(["y","writeInt32LE",4]),_.prototype.fieldSpec.push(["z","writeInt32LE",4]),_.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED",S.prototype.msg_type=524,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),S.prototype.fieldSpec.push(["n","writeInt32LE",4]),S.prototype.fieldSpec.push(["e","writeInt32LE",4]),S.prototype.fieldSpec.push(["d","writeInt32LE",4]),S.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF",g.prototype.msg_type=525,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),g.prototype.fieldSpec.push(["x","writeInt32LE",4]),g.prototype.fieldSpec.push(["y","writeInt32LE",4]),g.prototype.fieldSpec.push(["z","writeInt32LE",4]),g.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),g.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV",w.prototype.msg_type=533,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),w.prototype.fieldSpec.push(["x","writeInt32LE",4]),w.prototype.fieldSpec.push(["y","writeInt32LE",4]),w.prototype.fieldSpec.push(["z","writeInt32LE",4]),w.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED",E.prototype.msg_type=526,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),E.prototype.fieldSpec.push(["n","writeInt32LE",4]),E.prototype.fieldSpec.push(["e","writeInt32LE",4]),E.prototype.fieldSpec.push(["d","writeInt32LE",4]),E.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),E.prototype.fieldSpec.push(["flags","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV",m.prototype.msg_type=530,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),m.prototype.fieldSpec.push(["n","writeInt32LE",4]),m.prototype.fieldSpec.push(["e","writeInt32LE",4]),m.prototype.fieldSpec.push(["d","writeInt32LE",4]),m.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),m.prototype.fieldSpec.push(["flags","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_GNSS",b.prototype.msg_type=553,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),b.prototype.fieldSpec.push(["x","writeDoubleLE",8]),b.prototype.fieldSpec.push(["y","writeDoubleLE",8]),b.prototype.fieldSpec.push(["z","writeDoubleLE",8]),b.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["flags","writeUInt8",1]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV_GNSS",I.prototype.msg_type=564,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),I.prototype.fieldSpec.push(["x","writeDoubleLE",8]),I.prototype.fieldSpec.push(["y","writeDoubleLE",8]),I.prototype.fieldSpec.push(["z","writeDoubleLE",8]),I.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),I.prototype.fieldSpec.push(["flags","writeUInt8",1]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_GNSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_GNSS",L.prototype.msg_type=554,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),L.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),L.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),L.prototype.fieldSpec.push(["height","writeDoubleLE",8]),L.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),L.prototype.fieldSpec.push(["flags","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV_GNSS",T.prototype.msg_type=561,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),T.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),T.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),T.prototype.fieldSpec.push(["height","writeDoubleLE",8]),T.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["flags","writeUInt8",1]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_GNSS",v.prototype.msg_type=557,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),v.prototype.fieldSpec.push(["x","writeInt32LE",4]),v.prototype.fieldSpec.push(["y","writeInt32LE",4]),v.prototype.fieldSpec.push(["z","writeInt32LE",4]),v.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),v.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),v.prototype.fieldSpec.push(["flags","writeUInt8",1]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV_GNSS",U.prototype.msg_type=565,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),U.prototype.fieldSpec.push(["x","writeInt32LE",4]),U.prototype.fieldSpec.push(["y","writeInt32LE",4]),U.prototype.fieldSpec.push(["z","writeInt32LE",4]),U.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_GNSS",O.prototype.msg_type=558,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["n","writeInt32LE",4]),O.prototype.fieldSpec.push(["e","writeInt32LE",4]),O.prototype.fieldSpec.push(["d","writeInt32LE",4]),O.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),O.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV_GNSS",M.prototype.msg_type=562,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),M.prototype.fieldSpec.push(["n","writeInt32LE",4]),M.prototype.fieldSpec.push(["e","writeInt32LE",4]),M.prototype.fieldSpec.push(["d","writeInt32LE",4]),M.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),M.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),M.prototype.fieldSpec.push(["flags","writeUInt8",1]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_VEL_BODY",D.prototype.msg_type=531,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["x","writeInt32LE",4]),D.prototype.fieldSpec.push(["y","writeInt32LE",4]),D.prototype.fieldSpec.push(["z","writeInt32LE",4]),D.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),D.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),D.prototype.fieldSpec.push(["flags","writeUInt8",1]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_COG",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_VEL_COG",A.prototype.msg_type=540,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").uint32("cog").uint32("sog").int32("v_up").uint32("cog_accuracy").uint32("sog_accuracy").uint32("v_up_accuracy").uint16("flags"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),A.prototype.fieldSpec.push(["cog","writeUInt32LE",4]),A.prototype.fieldSpec.push(["sog","writeUInt32LE",4]),A.prototype.fieldSpec.push(["v_up","writeInt32LE",4]),A.prototype.fieldSpec.push(["cog_accuracy","writeUInt32LE",4]),A.prototype.fieldSpec.push(["sog_accuracy","writeUInt32LE",4]),A.prototype.fieldSpec.push(["v_up_accuracy","writeUInt32LE",4]),A.prototype.fieldSpec.push(["flags","writeUInt16LE",2]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_AGE_CORRECTIONS",G.prototype.msg_type=528,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["age","writeUInt16LE",2]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_DEP_A",C.prototype.msg_type=256,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),C.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),C.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),C.prototype.fieldSpec.push(["flags","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_DOPS_DEP_A",j.prototype.msg_type=518,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),j.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),j.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),j.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),j.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_DEP_A",P.prototype.msg_type=512,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),P.prototype.fieldSpec.push(["x","writeDoubleLE",8]),P.prototype.fieldSpec.push(["y","writeDoubleLE",8]),P.prototype.fieldSpec.push(["z","writeDoubleLE",8]),P.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),P.prototype.fieldSpec.push(["flags","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_DEP_A",R.prototype.msg_type=513,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),R.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),R.prototype.fieldSpec.push(["height","writeDoubleLE",8]),R.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),R.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),R.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),R.prototype.fieldSpec.push(["flags","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",N.prototype.msg_type=514,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["x","writeInt32LE",4]),N.prototype.fieldSpec.push(["y","writeInt32LE",4]),N.prototype.fieldSpec.push(["z","writeInt32LE",4]),N.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED_DEP_A",x.prototype.msg_type=515,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),x.prototype.fieldSpec.push(["n","writeInt32LE",4]),x.prototype.fieldSpec.push(["e","writeInt32LE",4]),x.prototype.fieldSpec.push(["d","writeInt32LE",4]),x.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),x.prototype.fieldSpec.push(["flags","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_DEP_A",F.prototype.msg_type=516,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),F.prototype.fieldSpec.push(["x","writeInt32LE",4]),F.prototype.fieldSpec.push(["y","writeInt32LE",4]),F.prototype.fieldSpec.push(["z","writeInt32LE",4]),F.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),F.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),F.prototype.fieldSpec.push(["flags","writeUInt8",1]);let k=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_DEP_A",k.prototype.msg_type=517,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),k.prototype.fieldSpec.push(["n","writeInt32LE",4]),k.prototype.fieldSpec.push(["e","writeInt32LE",4]),k.prototype.fieldSpec.push(["d","writeInt32LE",4]),k.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),k.prototype.fieldSpec.push(["flags","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING_DEP_A",B.prototype.msg_type=519,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),B.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["flags","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL_DEP_A",q.prototype.msg_type=534,q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("tow").uint16("vpl").uint16("hpl").doublele("lat").doublele("lon").doublele("height").uint8("flags"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),q.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),q.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),q.prototype.fieldSpec.push(["height","writeDoubleLE",8]),q.prototype.fieldSpec.push(["flags","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL",z.prototype.msg_type=535,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("tow").int16("wn").uint16("hpl").uint16("vpl").uint16("atpl").uint16("ctpl").uint16("hvpl").uint16("vvpl").uint16("hopl").uint16("popl").uint16("ropl").doublele("lat").doublele("lon").doublele("height").int32("v_x").int32("v_y").int32("v_z").int32("roll").int32("pitch").int32("heading").uint32("flags"),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),z.prototype.fieldSpec.push(["wn","writeInt16LE",2]),z.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["atpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ctpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hopl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["popl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ropl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),z.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),z.prototype.fieldSpec.push(["height","writeDoubleLE",8]),z.prototype.fieldSpec.push(["v_x","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_y","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_z","writeInt32LE",4]),z.prototype.fieldSpec.push(["roll","writeInt32LE",4]),z.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),z.prototype.fieldSpec.push(["heading","writeInt32LE",4]),z.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_LEAP_SECOND",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_UTC_LEAP_SECOND",V.prototype.msg_type=570,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").int16("reserved_0").int16("reserved_1").int8("reserved_2").int8("count_before").uint16("reserved_3").uint16("reserved_4").uint16("ref_wn").uint8("ref_dn").int8("count_after"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["reserved_0","writeInt16LE",2]),V.prototype.fieldSpec.push(["reserved_1","writeInt16LE",2]),V.prototype.fieldSpec.push(["reserved_2","writeInt8",1]),V.prototype.fieldSpec.push(["count_before","writeInt8",1]),V.prototype.fieldSpec.push(["reserved_3","writeUInt16LE",2]),V.prototype.fieldSpec.push(["reserved_4","writeUInt16LE",2]),V.prototype.fieldSpec.push(["ref_wn","writeUInt16LE",2]),V.prototype.fieldSpec.push(["ref_dn","writeUInt8",1]),V.prototype.fieldSpec.push(["count_after","writeInt8",1]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_REFERENCE_FRAME_PARAM",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_REFERENCE_FRAME_PARAM",H.prototype.msg_type=580,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint8("ssr_iod").string("sn",{length:32}).string("tn",{length:32}).uint8("sin").uint16("utn").uint16("re_t0").int32("delta_X0").int32("delta_Y0").int32("delta_Z0").int32("theta_01").int32("theta_02").int32("theta_03").int32("scale").int32("dot_delta_X0").int32("dot_delta_Y0").int32("dot_delta_Z0").int32("dot_theta_01").int32("dot_theta_02").int32("dot_theta_03").int16("dot_scale"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),H.prototype.fieldSpec.push(["sn","string",32]),H.prototype.fieldSpec.push(["tn","string",32]),H.prototype.fieldSpec.push(["sin","writeUInt8",1]),H.prototype.fieldSpec.push(["utn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["re_t0","writeUInt16LE",2]),H.prototype.fieldSpec.push(["delta_X0","writeInt32LE",4]),H.prototype.fieldSpec.push(["delta_Y0","writeInt32LE",4]),H.prototype.fieldSpec.push(["delta_Z0","writeInt32LE",4]),H.prototype.fieldSpec.push(["theta_01","writeInt32LE",4]),H.prototype.fieldSpec.push(["theta_02","writeInt32LE",4]),H.prototype.fieldSpec.push(["theta_03","writeInt32LE",4]),H.prototype.fieldSpec.push(["scale","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_delta_X0","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_delta_Y0","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_delta_Z0","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_theta_01","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_theta_02","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_theta_03","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_scale","writeInt16LE",2]);let $=function(e,t){return r.call(this,e),this.messageType="MSG_POSE_RELATIVE",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_POSE_RELATIVE",$.prototype.msg_type=581,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").uint32("tow").uint8("sensor_id").uint32("timestamp_1").uint32("timestamp_2").array("trans",{length:3,type:"int32le"}).int32("w").int32("x").int32("y").int32("z").floatle("cov_r_x_x").floatle("cov_r_x_y").floatle("cov_r_x_z").floatle("cov_r_y_y").floatle("cov_r_y_z").floatle("cov_r_z_z").floatle("cov_c_x_x").floatle("cov_c_x_y").floatle("cov_c_x_z").floatle("cov_c_y_y").floatle("cov_c_y_z").floatle("cov_c_z_z").uint8("flags"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),$.prototype.fieldSpec.push(["sensor_id","writeUInt8",1]),$.prototype.fieldSpec.push(["timestamp_1","writeUInt32LE",4]),$.prototype.fieldSpec.push(["timestamp_2","writeUInt32LE",4]),$.prototype.fieldSpec.push(["trans","array","writeInt32LE",function(){return 4},3]),$.prototype.fieldSpec.push(["w","writeInt32LE",4]),$.prototype.fieldSpec.push(["x","writeInt32LE",4]),$.prototype.fieldSpec.push(["y","writeInt32LE",4]),$.prototype.fieldSpec.push(["z","writeInt32LE",4]),$.prototype.fieldSpec.push(["cov_r_x_x","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_x_y","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_x_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_y_y","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_y_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_z_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_x_x","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_x_y","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_x_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_y_y","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_y_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_z_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={258:i,MsgGpsTime:i,260:s,MsgGpsTimeGnss:s,259:n,MsgUtcTime:n,261:a,MsgUtcTimeGnss:a,520:l,MsgDops:l,521:c,MsgPosEcef:c,532:u,MsgPosEcefCov:u,522:y,MsgPosLlh:y,529:f,MsgPosLlhCov:f,EstimatedHorizontalErrorEllipse:d,536:h,MsgPosLlhAcc:h,523:_,MsgBaselineEcef:_,524:S,MsgBaselineNed:S,525:g,MsgVelEcef:g,533:w,MsgVelEcefCov:w,526:E,MsgVelNed:E,530:m,MsgVelNedCov:m,553:b,MsgPosEcefGnss:b,564:I,MsgPosEcefCovGnss:I,554:L,MsgPosLlhGnss:L,561:T,MsgPosLlhCovGnss:T,557:v,MsgVelEcefGnss:v,565:U,MsgVelEcefCovGnss:U,558:O,MsgVelNedGnss:O,562:M,MsgVelNedCovGnss:M,531:D,MsgVelBody:D,540:A,MsgVelCog:A,528:G,MsgAgeCorrections:G,256:C,MsgGpsTimeDepA:C,518:j,MsgDopsDepA:j,512:P,MsgPosEcefDepA:P,513:R,MsgPosLlhDepA:R,514:N,MsgBaselineEcefDepA:N,515:x,MsgBaselineNedDepA:x,516:F,MsgVelEcefDepA:F,517:k,MsgVelNedDepA:k,519:B,MsgBaselineHeadingDepA:B,534:q,MsgProtectionLevelDepA:q,535:z,MsgProtectionLevel:z,570:V,MsgUtcLeapSecond:V,580:H,MsgReferenceFrameParam:H,581:$,MsgPoseRelative:$}},309:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=(p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_NDB_EVENT",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_NDB_EVENT",s.prototype.msg_type=1024,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("recv_time").uint8("event").uint8("object_type").uint8("result").uint8("data_source").nest("object_sid",{type:i.prototype.parser}).nest("src_sid",{type:i.prototype.parser}).uint16("original_sender"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["event","writeUInt8",1]),s.prototype.fieldSpec.push(["object_type","writeUInt8",1]),s.prototype.fieldSpec.push(["result","writeUInt8",1]),s.prototype.fieldSpec.push(["data_source","writeUInt8",1]),s.prototype.fieldSpec.push(["object_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["src_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["original_sender","writeUInt16LE",2]),e.exports={1024:s,MsgNdbEvent:s}},4399:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase),s=p(278).GnssSignal,n=p(278).GnssSignalDep,a=p(278).GPSTime,l=p(278).GPSTimeDep,c=p(278).GPSTimeSec,u=(p(278).SvId,function(e,t){return r.call(this,e),this.messageType="ObservationHeader",this.fields=t||this.parser.parse(e.payload),this});(u.prototype=Object.create(r.prototype)).messageType="ObservationHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("t",{type:a.prototype.parser}).uint8("n_obs"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="Doppler",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="Doppler",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").int16("i").uint8("f"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["i","writeInt16LE",2]),y.prototype.fieldSpec.push(["f","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="PackedObsContent",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="PackedObsContent",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).nest("D",{type:y.prototype.parser}).uint8("cn0").uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["P","writeUInt32LE",4]),f.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["D",y.prototype.fieldSpec]),f.prototype.fieldSpec.push(["cn0","writeUInt8",1]),f.prototype.fieldSpec.push(["lock","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let d=function(e,t){return r.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="PackedOsrContent",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}).uint16("iono_std").uint16("tropo_std").uint16("range_std"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["P","writeUInt32LE",4]),d.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),d.prototype.fieldSpec.push(["lock","writeUInt8",1]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]),d.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),d.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),d.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),d.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_OBS",h.prototype.msg_type=74,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:f.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),h.prototype.fieldSpec.push(["obs","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_LLH",_.prototype.msg_type=68,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").doublele("lat").doublele("lon").doublele("height"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),_.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),_.prototype.fieldSpec.push(["height","writeDoubleLE",8]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_ECEF",S.prototype.msg_type=72,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").doublele("x").doublele("y").doublele("z"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["x","writeDoubleLE",8]),S.prototype.fieldSpec.push(["y","writeDoubleLE",8]),S.prototype.fieldSpec.push(["z","writeDoubleLE",8]);let g=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContent",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContent",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).floatle("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),g.prototype.fieldSpec.push(["ura","writeFloatLE",4]),g.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),g.prototype.fieldSpec.push(["valid","writeUInt8",1]),g.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepB",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepB",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),w.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),w.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),w.prototype.fieldSpec.push(["valid","writeUInt8",1]),w.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepA",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepA",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toe",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["toe",l.prototype.fieldSpec]),E.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),E.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),E.prototype.fieldSpec.push(["valid","writeUInt8",1]),E.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_E",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_E",m.prototype.msg_type=129,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:l.prototype.parser}).uint8("iode").uint16("iodc"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),m.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),m.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["w","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),m.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),m.prototype.fieldSpec.push(["iode","writeUInt8",1]),m.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_F",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_F",b.prototype.msg_type=134,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),b.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),b.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),b.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["w","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),b.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),b.prototype.fieldSpec.push(["iode","writeUInt8",1]),b.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS",I.prototype.msg_type=138,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),I.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),I.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),I.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["w","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["af0","writeFloatLE",4]),I.prototype.fieldSpec.push(["af1","writeFloatLE",4]),I.prototype.fieldSpec.push(["af2","writeFloatLE",4]),I.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),I.prototype.fieldSpec.push(["iode","writeUInt8",1]),I.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_QZSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_QZSS",L.prototype.msg_type=142,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),L.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),L.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),L.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["w","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["af0","writeFloatLE",4]),L.prototype.fieldSpec.push(["af1","writeFloatLE",4]),L.prototype.fieldSpec.push(["af2","writeFloatLE",4]),L.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),L.prototype.fieldSpec.push(["iode","writeUInt8",1]),L.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_BDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_BDS",T.prototype.msg_type=137,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd1").floatle("tgd2").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tgd1","writeFloatLE",4]),T.prototype.fieldSpec.push(["tgd2","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),T.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),T.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["w","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af1","writeFloatLE",4]),T.prototype.fieldSpec.push(["af2","writeFloatLE",4]),T.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),T.prototype.fieldSpec.push(["iode","writeUInt8",1]),T.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",v.prototype.msg_type=149,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),v.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),v.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),v.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),v.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["w","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af2","writeFloatLE",4]),v.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),v.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),v.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL",U.prototype.msg_type=141,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc").uint8("source"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),U.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),U.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),U.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),U.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["w","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af2","writeFloatLE",4]),U.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),U.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),U.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),U.prototype.fieldSpec.push(["source","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",O.prototype.msg_type=130,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),O.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),O.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_A",M.prototype.msg_type=131,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),M.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),M.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),M.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_B",D.prototype.msg_type=132,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),D.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),D.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS",A.prototype.msg_type=140,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"floatle"}).array("acc",{length:3,type:"floatle"}).floatle("a_gf0").floatle("a_gf1"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),A.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["vel","array","writeFloatLE",function(){return 4},3]),A.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),A.prototype.fieldSpec.push(["a_gf0","writeFloatLE",4]),A.prototype.fieldSpec.push(["a_gf1","writeFloatLE",4]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_B",G.prototype.msg_type=133,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),G.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),G.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),G.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_C",C.prototype.msg_type=135,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),C.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),C.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["fcn","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",j.prototype.msg_type=136,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn").uint8("iod"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),j.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),j.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),j.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),j.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),j.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),j.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),j.prototype.fieldSpec.push(["fcn","writeUInt8",1]),j.prototype.fieldSpec.push(["iod","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO",P.prototype.msg_type=139,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("gamma").floatle("tau").floatle("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"floatle"}).uint8("fcn").uint8("iod"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),P.prototype.fieldSpec.push(["gamma","writeFloatLE",4]),P.prototype.fieldSpec.push(["tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["d_tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),P.prototype.fieldSpec.push(["fcn","writeUInt8",1]),P.prototype.fieldSpec.push(["iod","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_D",R.prototype.msg_type=128,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),R.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),R.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),R.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),R.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),R.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),R.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),R.prototype.fieldSpec.push(["w","writeDoubleLE",8]),R.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),R.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),R.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),R.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),R.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),R.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),R.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),R.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),R.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),R.prototype.fieldSpec.push(["valid","writeUInt8",1]),R.prototype.fieldSpec.push(["healthy","writeUInt8",1]),R.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),R.prototype.fieldSpec.push(["iode","writeUInt8",1]),R.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),R.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_A",N.prototype.msg_type=26,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),N.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),N.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["w","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["valid","writeUInt8",1]),N.prototype.fieldSpec.push(["healthy","writeUInt8",1]),N.prototype.fieldSpec.push(["prn","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_B",x.prototype.msg_type=70,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn").uint8("iode"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),x.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),x.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["w","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["valid","writeUInt8",1]),x.prototype.fieldSpec.push(["healthy","writeUInt8",1]),x.prototype.fieldSpec.push(["prn","writeUInt8",1]),x.prototype.fieldSpec.push(["iode","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_C",F.prototype.msg_type=71,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),F.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),F.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),F.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),F.prototype.fieldSpec.push(["w","writeDoubleLE",8]),F.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),F.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),F.prototype.fieldSpec.push(["valid","writeUInt8",1]),F.prototype.fieldSpec.push(["healthy","writeUInt8",1]),F.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),F.prototype.fieldSpec.push(["iode","writeUInt8",1]),F.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),F.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let k=function(e,t){return r.call(this,e),this.messageType="ObservationHeaderDep",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="ObservationHeaderDep",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").nest("t",{type:l.prototype.parser}).uint8("n_obs"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["t",l.prototype.fieldSpec]),k.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="CarrierPhaseDepA",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="CarrierPhaseDepA",B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["i","writeInt32LE",4]),B.prototype.fieldSpec.push(["f","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepA",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepA",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").uint8("prn"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["P","writeUInt32LE",4]),q.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),q.prototype.fieldSpec.push(["cn0","writeUInt8",1]),q.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),q.prototype.fieldSpec.push(["prn","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepB",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepB",z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["P","writeUInt32LE",4]),z.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),z.prototype.fieldSpec.push(["cn0","writeUInt8",1]),z.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),z.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let V=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepC",V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["P","writeUInt32LE",4]),V.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),V.prototype.fieldSpec.push(["cn0","writeUInt8",1]),V.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),V.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_A",H.prototype.msg_type=69,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:q.prototype.parser,readUntil:"eof"}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),H.prototype.fieldSpec.push(["obs","array",q.prototype.fieldSpec,function(){return this.fields.array.length},null]);let $=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_B",$.prototype.msg_type=67,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),$.prototype.fieldSpec.push(["obs","array",z.prototype.fieldSpec,function(){return this.fields.array.length},null]);let W=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(W.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_C",W.prototype.msg_type=73,W.prototype.constructor=W,W.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:V.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",V.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Q=function(e,t){return r.call(this,e),this.messageType="MSG_IONO",this.fields=t||this.parser.parse(e.payload),this};(Q.prototype=Object.create(r.prototype)).messageType="MSG_IONO",Q.prototype.msg_type=144,Q.prototype.constructor=Q,Q.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).doublele("a0").doublele("a1").doublele("a2").doublele("a3").doublele("b0").doublele("b1").doublele("b2").doublele("b3"),Q.prototype.fieldSpec=[],Q.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),Q.prototype.fieldSpec.push(["a0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a3","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b3","writeDoubleLE",8]);let K=function(e,t){return r.call(this,e),this.messageType="MSG_SV_CONFIGURATION_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(K.prototype=Object.create(r.prototype)).messageType="MSG_SV_CONFIGURATION_GPS_DEP",K.prototype.msg_type=145,K.prototype.constructor=K,K.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).uint32("l2c_mask"),K.prototype.fieldSpec=[],K.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),K.prototype.fieldSpec.push(["l2c_mask","writeUInt32LE",4]);let X=function(e,t){return r.call(this,e),this.messageType="GnssCapb",this.fields=t||this.parser.parse(e.payload),this};(X.prototype=Object.create(r.prototype)).messageType="GnssCapb",X.prototype.constructor=X,X.prototype.parser=(new o).endianess("little").uint64("gps_active").uint64("gps_l2c").uint64("gps_l5").uint32("glo_active").uint32("glo_l2of").uint32("glo_l3").uint64("sbas_active").uint64("sbas_l5").uint64("bds_active").uint64("bds_d2nav").uint64("bds_b2").uint64("bds_b2a").uint32("qzss_active").uint64("gal_active").uint64("gal_e5"),X.prototype.fieldSpec=[],X.prototype.fieldSpec.push(["gps_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l2c","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["glo_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l2of","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l3","writeUInt32LE",4]),X.prototype.fieldSpec.push(["sbas_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["sbas_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_d2nav","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2a","writeUInt64LE",8]),X.prototype.fieldSpec.push(["qzss_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["gal_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gal_e5","writeUInt64LE",8]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_CAPB",Y.prototype.msg_type=150,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).nest("gc",{type:X.prototype.parser}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),Y.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);let J=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",J.prototype.msg_type=146,J.prototype.constructor=J,J.prototype.parser=(new o).endianess("little").nest("t_op",{type:l.prototype.parser}).uint8("prn").uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),J.prototype.fieldSpec.push(["prn","writeUInt8",1]),J.prototype.fieldSpec.push(["valid","writeUInt8",1]),J.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),J.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),J.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let Z=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",Z.prototype.msg_type=147,Z.prototype.constructor=Z,Z.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:n.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),Z.prototype.fieldSpec=[],Z.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["valid","writeUInt8",1]),Z.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let ee=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY",this.fields=t||this.parser.parse(e.payload),this};(ee.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY",ee.prototype.msg_type=148,ee.prototype.constructor=ee,ee.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:s.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),ee.prototype.fieldSpec=[],ee.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["valid","writeUInt8",1]),ee.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let te=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContent",this.fields=t||this.parser.parse(e.payload),this};(te.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContent",te.prototype.constructor=te,te.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),te.prototype.fieldSpec=[],te.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),te.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),te.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),te.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),te.prototype.fieldSpec.push(["valid","writeUInt8",1]),te.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let pe=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContentDep",this.fields=t||this.parser.parse(e.payload),this};(pe.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContentDep",pe.prototype.constructor=pe,pe.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),pe.prototype.fieldSpec=[],pe.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),pe.prototype.fieldSpec.push(["valid","writeUInt8",1]),pe.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let re=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(re.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS_DEP",re.prototype.msg_type=112,re.prototype.constructor=re,re.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),re.prototype.fieldSpec=[],re.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),re.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),re.prototype.fieldSpec.push(["w","writeDoubleLE",8]),re.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let oe=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS",this.fields=t||this.parser.parse(e.payload),this};(oe.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS",oe.prototype.msg_type=114,oe.prototype.constructor=oe,oe.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),oe.prototype.fieldSpec=[],oe.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),oe.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["w","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let ie=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO_DEP",this.fields=t||this.parser.parse(e.payload),this};(ie.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO_DEP",ie.prototype.msg_type=113,ie.prototype.constructor=ie,ie.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),ie.prototype.fieldSpec=[],ie.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),ie.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["i","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let se=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO",this.fields=t||this.parser.parse(e.payload),this};(se.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO",se.prototype.msg_type=115,se.prototype.constructor=se,se.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),se.prototype.fieldSpec=[],se.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),se.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["i","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),se.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),se.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let ne=function(e,t){return r.call(this,e),this.messageType="MSG_GLO_BIASES",this.fields=t||this.parser.parse(e.payload),this};(ne.prototype=Object.create(r.prototype)).messageType="MSG_GLO_BIASES",ne.prototype.msg_type=117,ne.prototype.constructor=ne,ne.prototype.parser=(new o).endianess("little").uint8("mask").int16("l1ca_bias").int16("l1p_bias").int16("l2ca_bias").int16("l2p_bias"),ne.prototype.fieldSpec=[],ne.prototype.fieldSpec.push(["mask","writeUInt8",1]),ne.prototype.fieldSpec.push(["l1ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l1p_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2p_bias","writeInt16LE",2]);let ae=function(e,t){return r.call(this,e),this.messageType="SvAzEl",this.fields=t||this.parser.parse(e.payload),this};(ae.prototype=Object.create(r.prototype)).messageType="SvAzEl",ae.prototype.constructor=ae,ae.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("az").int8("el"),ae.prototype.fieldSpec=[],ae.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ae.prototype.fieldSpec.push(["az","writeUInt8",1]),ae.prototype.fieldSpec.push(["el","writeInt8",1]);let le=function(e,t){return r.call(this,e),this.messageType="MSG_SV_AZ_EL",this.fields=t||this.parser.parse(e.payload),this};(le.prototype=Object.create(r.prototype)).messageType="MSG_SV_AZ_EL",le.prototype.msg_type=151,le.prototype.constructor=le,le.prototype.parser=(new o).endianess("little").array("azel",{type:ae.prototype.parser,readUntil:"eof"}),le.prototype.fieldSpec=[],le.prototype.fieldSpec.push(["azel","array",ae.prototype.fieldSpec,function(){return this.fields.array.length},null]);let ce=function(e,t){return r.call(this,e),this.messageType="MSG_OSR",this.fields=t||this.parser.parse(e.payload),this};(ce.prototype=Object.create(r.prototype)).messageType="MSG_OSR",ce.prototype.msg_type=1600,ce.prototype.constructor=ce,ce.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:d.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:f,PackedOsrContent:d,74:h,MsgObs:h,68:_,MsgBasePosLlh:_,72:S,MsgBasePosEcef:S,EphemerisCommonContent:g,EphemerisCommonContentDepB:w,EphemerisCommonContentDepA:E,129:m,MsgEphemerisGpsDepE:m,134:b,MsgEphemerisGpsDepF:b,138:I,MsgEphemerisGps:I,142:L,MsgEphemerisQzss:L,137:T,MsgEphemerisBds:T,149:v,MsgEphemerisGalDepA:v,141:U,MsgEphemerisGal:U,130:O,MsgEphemerisSbasDepA:O,131:M,MsgEphemerisGloDepA:M,132:D,MsgEphemerisSbasDepB:D,140:A,MsgEphemerisSbas:A,133:G,MsgEphemerisGloDepB:G,135:C,MsgEphemerisGloDepC:C,136:j,MsgEphemerisGloDepD:j,139:P,MsgEphemerisGlo:P,128:R,MsgEphemerisDepD:R,26:N,MsgEphemerisDepA:N,70:x,MsgEphemerisDepB:x,71:F,MsgEphemerisDepC:F,ObservationHeaderDep:k,CarrierPhaseDepA:B,PackedObsContentDepA:q,PackedObsContentDepB:z,PackedObsContentDepC:V,69:H,MsgObsDepA:H,67:$,MsgObsDepB:$,73:W,MsgObsDepC:W,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:Y,MsgGnssCapb:Y,146:J,MsgGroupDelayDepA:J,147:Z,MsgGroupDelayDepB:Z,148:ee,MsgGroupDelay:ee,AlmanacCommonContent:te,AlmanacCommonContentDep:pe,112:re,MsgAlmanacGpsDep:re,114:oe,MsgAlmanacGps:oe,113:ie,MsgAlmanacGloDep:ie,115:se,MsgAlmanacGlo:se,117:ne,MsgGloBiases:ne,SvAzEl:ae,151:le,MsgSvAzEl:le,1600:ce,MsgOsr:ce}},2623:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING",i.prototype.msg_type=527,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),i.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_QUAT",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_QUAT",s.prototype.msg_type=544,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("tow").int32("w").int32("x").int32("y").int32("z").floatle("w_accuracy").floatle("x_accuracy").floatle("y_accuracy").floatle("z_accuracy").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["w","writeInt32LE",4]),s.prototype.fieldSpec.push(["x","writeInt32LE",4]),s.prototype.fieldSpec.push(["y","writeInt32LE",4]),s.prototype.fieldSpec.push(["z","writeInt32LE",4]),s.prototype.fieldSpec.push(["w_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["x_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["y_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["z_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_EULER",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_EULER",n.prototype.msg_type=545,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").int32("roll").int32("pitch").int32("yaw").floatle("roll_accuracy").floatle("pitch_accuracy").floatle("yaw_accuracy").uint8("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["roll","writeInt32LE",4]),n.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),n.prototype.fieldSpec.push(["yaw","writeInt32LE",4]),n.prototype.fieldSpec.push(["roll_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["pitch_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["yaw_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ANGULAR_RATE",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ANGULAR_RATE",a.prototype.msg_type=546,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["x","writeInt32LE",4]),a.prototype.fieldSpec.push(["y","writeInt32LE",4]),a.prototype.fieldSpec.push(["z","writeInt32LE",4]),a.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={527:i,MsgBaselineHeading:i,544:s,MsgOrientQuat:s,545:n,MsgOrientEuler:n,546:a,MsgAngularRate:a}},7978:(e,t,p)=>{var r=p(7052).i;r.prototype.uint64=function(e,t){return this.setNextParser("uint64",e,Object.assign({},t,{formatter:function(e){var t=p(7898).UINT64,r=buffer.readUInt32LE(offset);offset+=4;var o=buffer.readUInt32LE(offset);return offset+=4,new t(r,o)}}))},r.prototype.compile=function(){var e=this.getCode();this.compiled=function(t,r,o){return"undefined"!=typeof window&&void 0===window.Buffer&&(window.Buffer=Buffer),new Function("buffer","callback","constructorFn","require",e).call(this,t,r,o,(function(e){if("cuint"===e)return p(7898);throw new Error("Unknown module required: "+e)}))}},e.exports=r},9757:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=p(278).GnssSignalDep,n=p(278).GPSTime,a=p(278).GPSTimeDep,l=(p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC",this.fields=t||this.parser.parse(e.payload),this});(l.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC",l.prototype.msg_type=105,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little"),l.prototype.fieldSpec=[];let c=function(e,t){return r.call(this,e),this.messageType="MSG_SET_TIME",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SET_TIME",c.prototype.msg_type=104,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little"),c.prototype.fieldSpec=[];let u=function(e,t){return r.call(this,e),this.messageType="MSG_RESET",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_RESET",u.prototype.msg_type=182,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_DEP",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_RESET_DEP",y.prototype.msg_type=178,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_CW_RESULTS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CW_RESULTS",f.prototype.msg_type=192,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little"),f.prototype.fieldSpec=[];let d=function(e,t){return r.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_CW_START",d.prototype.msg_type=193,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little"),d.prototype.fieldSpec=[];let h=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_RESET_FILTERS",h.prototype.msg_type=34,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("filter"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["filter","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_INIT_BASE_DEP",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_INIT_BASE_DEP",_.prototype.msg_type=35,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little"),_.prototype.fieldSpec=[];let S=function(e,t){return r.call(this,e),this.messageType="MSG_THREAD_STATE",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_THREAD_STATE",S.prototype.msg_type=23,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").string("name",{length:20}).uint16("cpu").uint32("stack_free"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["name","string",20]),S.prototype.fieldSpec.push(["cpu","writeUInt16LE",2]),S.prototype.fieldSpec.push(["stack_free","writeUInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="UARTChannel",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="UARTChannel",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").floatle("tx_throughput").floatle("rx_throughput").uint16("crc_error_count").uint16("io_error_count").uint8("tx_buffer_level").uint8("rx_buffer_level"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["rx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["crc_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["io_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["tx_buffer_level","writeUInt8",1]),g.prototype.fieldSpec.push(["rx_buffer_level","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="Period",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="Period",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").int32("avg").int32("pmin").int32("pmax").int32("current"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["avg","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmin","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmax","writeInt32LE",4]),w.prototype.fieldSpec.push(["current","writeInt32LE",4]);let E=function(e,t){return r.call(this,e),this.messageType="Latency",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="Latency",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").int32("avg").int32("lmin").int32("lmax").int32("current"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["avg","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmin","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmax","writeInt32LE",4]),E.prototype.fieldSpec.push(["current","writeInt32LE",4]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE",m.prototype.msg_type=29,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}).nest("obs_period",{type:w.prototype.parser}),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["obs_period",w.prototype.fieldSpec]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE_DEPA",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE_DEPA",b.prototype.msg_type=24,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_IAR_STATE",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_IAR_STATE",I.prototype.msg_type=25,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("num_hyps"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["num_hyps","writeUInt32LE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE",L.prototype.msg_type=43,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:i.prototype.parser}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["mask","writeUInt8",1]),L.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE_DEP",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE_DEP",T.prototype.msg_type=27,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:s.prototype.parser}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["mask","writeUInt8",1]),T.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_DEVICE_MONITOR",v.prototype.msg_type=181,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),v.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_REQ",U.prototype.msg_type=184,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),U.prototype.fieldSpec.push(["command","string",null]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_RESP",O.prototype.msg_type=185,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),O.prototype.fieldSpec.push(["code","writeInt32LE",4]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_OUTPUT",M.prototype.msg_type=188,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").string("line",{greedy:!0}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["line","string",null]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_REQ",D.prototype.msg_type=186,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little"),D.prototype.fieldSpec=[];let A=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_RESP",A.prototype.msg_type=187,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").array("ipv4_address",{length:4,type:"uint8"}).uint8("ipv4_mask_size").array("ipv6_address",{length:16,type:"uint8"}).uint8("ipv6_mask_size").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}).uint32("flags"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["ipv4_address","array","writeUInt8",function(){return 1},4]),A.prototype.fieldSpec.push(["ipv4_mask_size","writeUInt8",1]),A.prototype.fieldSpec.push(["ipv6_address","array","writeUInt8",function(){return 1},16]),A.prototype.fieldSpec.push(["ipv6_mask_size","writeUInt8",1]),A.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["interface_name","string",16]),A.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let G=function(e,t){return r.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="NetworkUsage",G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").uint64("duration").uint64("total_bytes").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["duration","writeUInt64LE",8]),G.prototype.fieldSpec.push(["total_bytes","writeUInt64LE",8]),G.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["interface_name","string",16]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_BANDWIDTH_USAGE",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_BANDWIDTH_USAGE",C.prototype.msg_type=189,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").array("interfaces",{type:G.prototype.parser,readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["interfaces","array",G.prototype.fieldSpec,function(){return this.fields.array.length},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_CELL_MODEM_STATUS",j.prototype.msg_type=190,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),j.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),j.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},null]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN_DEP",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN_DEP",P.prototype.msg_type=80,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:a.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),P.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),P.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN",R.prototype.msg_type=81,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:n.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),R.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),R.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),R.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),R.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),R.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),R.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_FRONT_END_GAIN",N.prototype.msg_type=191,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").array("rf_gain",{length:8,type:"int8"}).array("if_gain",{length:8,type:"int8"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["rf_gain","array","writeInt8",function(){return 1},8]),N.prototype.fieldSpec.push(["if_gain","array","writeInt8",function(){return 1},8]),e.exports={105:l,MsgAlmanac:l,104:c,MsgSetTime:c,182:u,MsgReset:u,178:y,MsgResetDep:y,192:f,MsgCwResults:f,193:d,MsgCwStart:d,34:h,MsgResetFilters:h,35:_,MsgInitBaseDep:_,23:S,MsgThreadState:S,UARTChannel:g,Period:w,Latency:E,29:m,MsgUartState:m,24:b,MsgUartStateDepa:b,25:I,MsgIarState:I,43:L,MsgMaskSatellite:L,27:T,MsgMaskSatelliteDep:T,181:v,MsgDeviceMonitor:v,184:U,MsgCommandReq:U,185:O,MsgCommandResp:O,188:M,MsgCommandOutput:M,186:D,MsgNetworkStateReq:D,187:A,MsgNetworkStateResp:A,NetworkUsage:G,189:C,MsgNetworkBandwidthUsage:C,190:j,MsgCellModemStatus:j,80:P,MsgSpecanDep:P,81:R,MsgSpecan:R,191:N,MsgFrontEndGain:N}},2827:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_POINT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_POINT",i.prototype.msg_type=52992,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("total_time").uint16("num_executions").uint32("min").uint32("max").uint64("return_addr").uint64("id").uint64("slice_time").uint16("line").string("func",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["total_time","writeUInt32LE",4]),i.prototype.fieldSpec.push(["num_executions","writeUInt16LE",2]),i.prototype.fieldSpec.push(["min","writeUInt32LE",4]),i.prototype.fieldSpec.push(["max","writeUInt32LE",4]),i.prototype.fieldSpec.push(["return_addr","writeUInt64LE",8]),i.prototype.fieldSpec.push(["id","writeUInt64LE",8]),i.prototype.fieldSpec.push(["slice_time","writeUInt64LE",8]),i.prototype.fieldSpec.push(["line","writeUInt16LE",2]),i.prototype.fieldSpec.push(["func","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_SYSTEM_INFO",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_SYSTEM_INFO",s.prototype.msg_type=52993,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("total_cpu_time").uint64("age").uint8("n_threads").uint32("heap_usage"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["total_cpu_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["age","writeUInt64LE",8]),s.prototype.fieldSpec.push(["n_threads","writeUInt8",1]),s.prototype.fieldSpec.push(["heap_usage","writeUInt32LE",4]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_THREAD_INFO",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_THREAD_INFO",n.prototype.msg_type=52994,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint64("total_cpu_time").uint64("age").uint8("state").uint32("stack_size").uint32("stack_usage").string("name",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["total_cpu_time","writeUInt64LE",8]),n.prototype.fieldSpec.push(["age","writeUInt64LE",8]),n.prototype.fieldSpec.push(["state","writeUInt8",1]),n.prototype.fieldSpec.push(["stack_size","writeUInt32LE",4]),n.prototype.fieldSpec.push(["stack_usage","writeUInt32LE",4]),n.prototype.fieldSpec.push(["name","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="ResourceBucket",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="ResourceBucket",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("name",{length:21}).uint8("thread").uint8("mutex").uint8("cv").uint8("io").uint32("heap_bytes_alloc").uint32("heap_bytes_free").uint32("io_write").uint32("io_read"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["name","string",21]),a.prototype.fieldSpec.push(["thread","writeUInt8",1]),a.prototype.fieldSpec.push(["mutex","writeUInt8",1]),a.prototype.fieldSpec.push(["cv","writeUInt8",1]),a.prototype.fieldSpec.push(["io","writeUInt8",1]),a.prototype.fieldSpec.push(["heap_bytes_alloc","writeUInt32LE",4]),a.prototype.fieldSpec.push(["heap_bytes_free","writeUInt32LE",4]),a.prototype.fieldSpec.push(["io_write","writeUInt32LE",4]),a.prototype.fieldSpec.push(["io_read","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_RESOURCE_COUNTER",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_RESOURCE_COUNTER",l.prototype.msg_type=52995,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("seq_no").uint8("seq_len").array("buckets",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["seq_no","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_len","writeUInt8",1]),l.prototype.fieldSpec.push(["buckets","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={52992:i,MsgMeasurementPoint:i,52993:s,MsgProfilingSystemInfo:s,52994:n,MsgProfilingThreadInfo:n,ResourceBucket:a,52995:l,MsgProfilingResourceCounter:l}},5232:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=(p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_SBAS_RAW",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_SBAS_RAW",s.prototype.msg_type=30583,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint32("tow").uint8("message_type").array("data",{length:27,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["message_type","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},27]),e.exports={30583:s,MsgSbasRaw:s}},7238:(e,t,p)=>{var r=p(4148),o=(p(6468),p(7898).UINT64),i=function(e,t,p,r){var o=new Buffer(e);return o[t](p,r||0),o};function s(e){return this.messageType="raw",this.sbp=e||{},this.fields={},this}o.prototype.toJSON=function(){return this.toString()},s.prototype.fieldSpec=[],s.prototype.payloadToBuffer=function(e,t){var p=[];for(var i in e=e||this.fieldSpec,t=t||this.fields,e){var s=e[i],n=s[0],a=s[1],l=function(e){return"function"==typeof e?e.apply(this):e}.bind(this);if("string"==typeof a&&0===a.indexOf("write")){var c=l(s[2]);if("writeUInt64LE"===a){r(t[n]instanceof o,"uint64 type must be represented by cuint.UINT64");var u=t[n].clone().shiftRight(32).and(new o(4294967295,0)).toNumber(),y=t[n].clone().and(new o(4294967295,0)).toNumber();let e=new Buffer(8);e.writeUInt32LE(y),e.writeUInt32LE(u,4),p.push(e)}else{let e=new Buffer(c);e[a](t[n],0),p.push(e)}}else if("string"===a){let e=new Buffer(t[n].length);e.write(t[n],0,"utf8"),p.push(e)}else if("array"===a){var f=s[2];for(var d in t[n]){var h=t[n][d];if(Array.isArray(f))p=p.concat(this.payloadToBuffer(f,h));else{let e=new Buffer(l(s[3]));e[f](h,0),p.push(e)}}}else p=p.concat(this.payloadToBuffer(a,t[n]))}return Buffer.concat(p)},s.prototype.getLengthBuffer=function(){return i(1,"writeUInt8",this.length||this.sbp.length,0)},s.prototype.getSenderBuffer=function(){return i(2,"writeUInt16LE",this.sender||this.sbp.sender,0)},s.prototype.getPreambleBuffer=function(){return i(1,"writeUInt8",this.preamble||this.sbp.preamble,0)},s.prototype.getMsgTypeBuffer=function(){return i(2,"writeUInt16LE",this.msg_type||this.sbp.msg_type,0)},s.prototype.toBuffer=function(){var e=this.payloadToBuffer(),t=i(2,"writeUInt16LE",this.crc||this.sbp.crc,0),p=[this.getPreambleBuffer(),this.getMsgTypeBuffer(),this.getSenderBuffer(),this.getLengthBuffer()];return Buffer.concat(p.concat(e).concat(t))},s.prototype.toJSON=function(){var e={};return Object.keys(this.sbp).forEach(function(t){this.sbp[t]instanceof Buffer?e[t]=this.sbp[t].toString("base64"):e[t]=this.sbp[t]}.bind(this)),Object.keys(this.fields).forEach(function(t){e[t]=this.fields[t]}.bind(this)),e},s.prototype.toBase64=function(){return this.toBuffer().toString("base64")},e.exports=s},4120:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_SAVE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_SAVE",i.prototype.msg_type=161,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE",s.prototype.msg_type=160,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["setting","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE_RESP",n.prototype.msg_type=175,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["status","writeUInt8",1]),n.prototype.fieldSpec.push(["setting","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_REQ",a.prototype.msg_type=164,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["setting","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_RESP",l.prototype.msg_type=165,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["setting","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",c.prototype.msg_type=162,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("index"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["index","writeUInt16LE",2]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",u.prototype.msg_type=167,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("index").string("setting",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt16LE",2]),u.prototype.fieldSpec.push(["setting","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",y.prototype.msg_type=166,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER",f.prototype.msg_type=174,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["setting","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",d.prototype.msg_type=431,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["status","writeUInt8",1]),d.prototype.fieldSpec.push(["setting","string",null]),e.exports={161:i,MsgSettingsSave:i,160:s,MsgSettingsWrite:s,175:n,MsgSettingsWriteResp:n,164:a,MsgSettingsReadReq:a,165:l,MsgSettingsReadResp:l,162:c,MsgSettingsReadByIndexReq:c,167:u,MsgSettingsReadByIndexResp:u,166:y,MsgSettingsReadByIndexDone:y,174:f,MsgSettingsRegister:f,431:d,MsgSettingsRegisterResp:d}},9286:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="UtcTime",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="UtcTime",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["year","writeUInt16LE",2]),i.prototype.fieldSpec.push(["month","writeUInt8",1]),i.prototype.fieldSpec.push(["day","writeUInt8",1]),i.prototype.fieldSpec.push(["hours","writeUInt8",1]),i.prototype.fieldSpec.push(["minutes","writeUInt8",1]),i.prototype.fieldSpec.push(["seconds","writeUInt8",1]),i.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let s=function(e,t){return r.call(this,e),this.messageType="ECDSASignature",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="ECDSASignature",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("len").array("data",{length:72,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["len","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},72]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_CERTIFICATE",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_CERTIFICATE",n.prototype.msg_type=3076,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("n_msg").array("certificate_id",{length:4,type:"uint8"}).uint8("flags").array("certificate_bytes",{type:"uint8",readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),n.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_CERTIFICATE_CHAIN",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_CERTIFICATE_CHAIN",a.prototype.msg_type=3081,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").array("root_certificate",{length:20,type:"uint8"}).array("intermediate_certificate",{length:20,type:"uint8"}).array("corrections_certificate",{length:20,type:"uint8"}).nest("expiration",{type:i.prototype.parser}).nest("signature",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["root_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["intermediate_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["corrections_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["expiration",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["signature",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_CERTIFICATE_CHAIN_DEP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_CERTIFICATE_CHAIN_DEP",l.prototype.msg_type=3077,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("root_certificate",{length:20,type:"uint8"}).array("intermediate_certificate",{length:20,type:"uint8"}).array("corrections_certificate",{length:20,type:"uint8"}).nest("expiration",{type:i.prototype.parser}).array("signature",{length:64,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["root_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["intermediate_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["corrections_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["expiration",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_AES_CMAC_SIGNATURE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_AES_CMAC_SIGNATURE",c.prototype.msg_type=3088,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).array("signature",{length:16,type:"uint8"}).uint8("flags").array("signed_messages",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),c.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),c.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),c.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},16]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]),c.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE",u.prototype.msg_type=3080,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).nest("signature",{type:s.prototype.parser}).array("signed_messages",{type:"uint8",readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt8",1]),u.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),u.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),u.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),u.prototype.fieldSpec.push(["signature",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE_DEP_B",y.prototype.msg_type=3079,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).uint8("n_signature_bytes").array("signature",{length:72,type:"uint8"}).array("signed_messages",{type:"uint8",readUntil:"eof"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt8",1]),y.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),y.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),y.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),y.prototype.fieldSpec.push(["n_signature_bytes","writeUInt8",1]),y.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},72]),y.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE_DEP_A",f.prototype.msg_type=3078,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).array("signature",{length:64,type:"uint8"}).array("signed_messages",{type:"uint8",readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),f.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),f.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),f.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),f.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_CERTIFICATE_DEP",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_CERTIFICATE_DEP",d.prototype.msg_type=3074,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("n_msg").array("fingerprint",{length:20,type:"uint8"}).array("certificate_bytes",{type:"uint8",readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),d.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),d.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_A",h.prototype.msg_type=3073,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("signature",{length:64,type:"uint8"}).array("fingerprint",{length:20,type:"uint8"}).array("signed_messages",{type:"uint32le",readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),h.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),h.prototype.fieldSpec.push(["signed_messages","array","writeUInt32LE",function(){return 4},null]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_B",_.prototype.msg_type=3075,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint8("stream_counter").uint8("on_demand_counter").array("signature",{length:64,type:"uint8"}).array("fingerprint",{length:20,type:"uint8"}).array("signed_messages",{type:"uint32le",readUntil:"eof"}),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),_.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),_.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),_.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),_.prototype.fieldSpec.push(["signed_messages","array","writeUInt32LE",function(){return 4},null]),e.exports={UtcTime:i,ECDSASignature:s,3076:n,MsgEcdsaCertificate:n,3081:a,MsgCertificateChain:a,3077:l,MsgCertificateChainDep:l,3088:c,MsgAesCmacSignature:c,3080:u,MsgEcdsaSignature:u,3079:y,MsgEcdsaSignatureDepB:y,3078:f,MsgEcdsaSignatureDepA:f,3074:d,MsgEd25519CertificateDep:d,3073:h,MsgEd25519SignatureDepA:h,3075:_,MsgEd25519SignatureDepB:_}},848:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="SolutionInputType",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="SolutionInputType",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sensor_type").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META_DEP_A",s.prototype.msg_type=65295,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("pdop").uint16("hdop").uint16("vdop").uint8("n_sats").uint16("age_corrections").uint8("alignment_status").uint32("last_used_gnss_pos_tow").uint32("last_used_gnss_vel_tow").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),s.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),s.prototype.fieldSpec.push(["alignment_status","writeUInt8",1]),s.prototype.fieldSpec.push(["last_used_gnss_pos_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["last_used_gnss_vel_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META",n.prototype.msg_type=65294,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").uint16("pdop").uint16("hdop").uint16("vdop").uint16("age_corrections").uint32("age_gnss").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_gnss","writeUInt32LE",4]),n.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let a=function(e,t){return r.call(this,e),this.messageType="GNSSInputType",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GNSSInputType",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="IMUInputType",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="IMUInputType",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="OdoInputType",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="OdoInputType",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={SolutionInputType:i,65295:s,MsgSolnMetaDepA:s,65294:n,MsgSolnMeta:n,GNSSInputType:a,IMUInputType:l,OdoInputType:c}},9269:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=(p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec),n=p(278).SvId,a=function(e,t){return r.call(this,e),this.messageType="CodeBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="CodeBiasesContent",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("code").int16("value"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["code","writeUInt8",1]),a.prototype.fieldSpec.push(["value","writeInt16LE",2]);let l=function(e,t){return r.call(this,e),this.messageType="PhaseBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="PhaseBiasesContent",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("code").uint8("integer_indicator").uint8("widelane_integer_indicator").uint8("discontinuity_counter").int32("bias"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["code","writeUInt8",1]),l.prototype.fieldSpec.push(["integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["widelane_integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["discontinuity_counter","writeUInt8",1]),l.prototype.fieldSpec.push(["bias","writeInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="STECHeader",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="STECHeader",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),c.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),c.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),c.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeader",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),u.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),u.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),u.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),u.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="STECSatElement",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="STECSatElement",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).uint8("stec_quality_indicator").array("stec_coeff",{length:4,type:"int16le"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["stec_quality_indicator","writeUInt8",1]),y.prototype.fieldSpec.push(["stec_coeff","array","writeInt16LE",function(){return 2},4]);let f=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrectionNoStd",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrectionNoStd",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),f.prototype.fieldSpec.push(["wet","writeInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrection",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),d.prototype.fieldSpec.push(["wet","writeInt8",1]),d.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="STECResidualNoStd",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),h.prototype.fieldSpec.push(["residual","writeInt16LE",2]);let _=function(e,t){return r.call(this,e),this.messageType="STECResidual",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="STECResidual",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual").uint8("stddev"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),_.prototype.fieldSpec.push(["residual","writeInt16LE",2]),_.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK",S.prototype.msg_type=1501,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint32("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),S.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),S.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),S.prototype.fieldSpec.push(["iod","writeUInt32LE",4]),S.prototype.fieldSpec.push(["radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["along","writeInt32LE",4]),S.prototype.fieldSpec.push(["cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["c0","writeInt32LE",4]),S.prototype.fieldSpec.push(["c1","writeInt32LE",4]),S.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_BIASES",g.prototype.msg_type=1505,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").array("biases",{type:a.prototype.parser,readUntil:"eof"}),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),g.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),g.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),g.prototype.fieldSpec.push(["biases","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_PHASE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_SSR_PHASE_BIASES",w.prototype.msg_type=1510,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("dispersive_bias").uint8("mw_consistency").uint16("yaw").int8("yaw_rate").array("biases",{type:l.prototype.parser,readUntil:"eof"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),w.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),w.prototype.fieldSpec.push(["dispersive_bias","writeUInt8",1]),w.prototype.fieldSpec.push(["mw_consistency","writeUInt8",1]),w.prototype.fieldSpec.push(["yaw","writeUInt16LE",2]),w.prototype.fieldSpec.push(["yaw_rate","writeInt8",1]),w.prototype.fieldSpec.push(["biases","array",l.prototype.fieldSpec,function(){return this.fields.array.length},null]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP",E.prototype.msg_type=1531,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("header",{type:c.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["header",c.prototype.fieldSpec]),E.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let m=function(e,t){return r.call(this,e),this.messageType="BoundsHeader",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="BoundsHeader",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("sol_id"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),m.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),m.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),m.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),m.prototype.fieldSpec.push(["sol_id","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION",b.prototype.msg_type=1533,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("n_sats").array("stec_sat_list",{type:y.prototype.parser,length:"n_sats"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),b.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),b.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION",I.prototype.msg_type=1532,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:d.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),I.prototype.fieldSpec.push(["index","writeUInt16LE",2]),I.prototype.fieldSpec.push(["tropo_delay_correction",d.prototype.fieldSpec]),I.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let L=function(e,t){return r.call(this,e),this.messageType="STECSatElementIntegrity",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="STECSatElementIntegrity",L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("stec_residual",{type:_.prototype.parser}).uint8("stec_bound_mu").uint8("stec_bound_sig").uint8("stec_bound_mu_dot").uint8("stec_bound_sig_dot"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["stec_residual",_.prototype.fieldSpec]),L.prototype.fieldSpec.push(["stec_bound_mu","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_mu_dot","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig_dot","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",T.prototype.msg_type=1534,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("tropo_qi").uint16("grid_point_id").nest("tropo_delay_correction",{type:d.prototype.parser}).uint8("tropo_v_hydro_bound_mu").uint8("tropo_v_hydro_bound_sig").uint8("tropo_v_wet_bound_mu").uint8("tropo_v_wet_bound_sig").uint8("n_sats").array("stec_sat_list",{type:L.prototype.parser,length:"n_sats"}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),T.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),T.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_qi","writeUInt8",1]),T.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_delay_correction",d.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["stec_sat_list","array",L.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_A",v.prototype.msg_type=1526,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),v.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),v.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),v.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_B",U.prototype.msg_type=1527,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),U.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),U.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),U.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),U.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION",O.prototype.msg_type=1528,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_atmo").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),O.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),O.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),O.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),O.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),O.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),O.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),O.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),O.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),O.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),O.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),O.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),O.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let M=function(e,t){return r.call(this,e),this.messageType="SatelliteAPC",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="SatelliteAPC",M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("sat_info").uint16("svn").array("pco",{length:3,type:"int16le"}).array("pcv",{length:21,type:"int8"}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),M.prototype.fieldSpec.push(["sat_info","writeUInt8",1]),M.prototype.fieldSpec.push(["svn","writeUInt16LE",2]),M.prototype.fieldSpec.push(["pco","array","writeInt16LE",function(){return 2},3]),M.prototype.fieldSpec.push(["pcv","array","writeInt8",function(){return 1},21]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC_DEP",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC_DEP",D.prototype.msg_type=1540,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").array("apc",{type:M.prototype.parser,readUntil:"eof"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["apc","array",M.prototype.fieldSpec,function(){return this.fields.array.length},null]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC",A.prototype.msg_type=1541,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_ssr").array("apc",{type:M.prototype.parser,readUntil:"eof"}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),A.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),A.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),A.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),A.prototype.fieldSpec.push(["apc","array",M.prototype.fieldSpec,function(){return this.fields.array.length},null]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",G.prototype.msg_type=1500,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),G.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),G.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),G.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),G.prototype.fieldSpec.push(["iod","writeUInt8",1]),G.prototype.fieldSpec.push(["radial","writeInt32LE",4]),G.prototype.fieldSpec.push(["along","writeInt32LE",4]),G.prototype.fieldSpec.push(["cross","writeInt32LE",4]),G.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),G.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),G.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),G.prototype.fieldSpec.push(["c0","writeInt32LE",4]),G.prototype.fieldSpec.push(["c1","writeInt32LE",4]),G.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let C=function(e,t){return r.call(this,e),this.messageType="STECHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="STECHeaderDepA",C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),C.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),C.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),C.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),C.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeaderDepA",j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),j.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),j.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),j.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),j.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),j.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="GridDefinitionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="GridDefinitionHeaderDepA",P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint8("region_size_inverse").uint16("area_width").uint16("lat_nw_corner_enc").uint16("lon_nw_corner_enc").uint8("num_msgs").uint8("seq_num"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["region_size_inverse","writeUInt8",1]),P.prototype.fieldSpec.push(["area_width","writeUInt16LE",2]),P.prototype.fieldSpec.push(["lat_nw_corner_enc","writeUInt16LE",2]),P.prototype.fieldSpec.push(["lon_nw_corner_enc","writeUInt16LE",2]),P.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),P.prototype.fieldSpec.push(["seq_num","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP_A",R.prototype.msg_type=1515,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("header",{type:C.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["header",C.prototype.fieldSpec]),R.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",N.prototype.msg_type=1520,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").nest("header",{type:j.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:h.prototype.parser,readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["header",j.prototype.fieldSpec]),N.prototype.fieldSpec.push(["index","writeUInt16LE",2]),N.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),N.prototype.fieldSpec.push(["stec_residuals","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",x.prototype.msg_type=1530,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").nest("header",{type:j.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:d.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["header",j.prototype.fieldSpec]),x.prototype.fieldSpec.push(["index","writeUInt16LE",2]),x.prototype.fieldSpec.push(["tropo_delay_correction",d.prototype.fieldSpec]),x.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRID_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRID_DEFINITION_DEP_A",F.prototype.msg_type=1525,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").nest("header",{type:P.prototype.parser}).array("rle_list",{type:"uint8",readUntil:"eof"}),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["header",P.prototype.fieldSpec]),F.prototype.fieldSpec.push(["rle_list","array","writeUInt8",function(){return 1},null]);let k=function(e,t){return r.call(this,e),this.messageType="OrbitClockBound",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="OrbitClockBound",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("orb_radial_bound_mu").uint8("orb_along_bound_mu").uint8("orb_cross_bound_mu").uint8("orb_radial_bound_sig").uint8("orb_along_bound_sig").uint8("orb_cross_bound_sig").uint8("clock_bound_mu").uint8("clock_bound_sig"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_radial_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_along_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_cross_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_radial_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_along_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_cross_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["clock_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["clock_bound_sig","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",B.prototype.msg_type=1502,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats").array("orbit_clock_bounds",{type:k.prototype.parser,length:"n_sats"}),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),B.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),B.prototype.fieldSpec.push(["const_id","writeUInt8",1]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["orbit_clock_bounds","array",k.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let q=function(e,t){return r.call(this,e),this.messageType="CodePhaseBiasesSatSig",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="CodePhaseBiasesSatSig",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("signal_id").uint8("code_bias_bound_mu").uint8("code_bias_bound_sig").uint8("phase_bias_bound_mu").uint8("phase_bias_bound_sig"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),q.prototype.fieldSpec.push(["signal_id","writeUInt8",1]),q.prototype.fieldSpec.push(["code_bias_bound_mu","writeUInt8",1]),q.prototype.fieldSpec.push(["code_bias_bound_sig","writeUInt8",1]),q.prototype.fieldSpec.push(["phase_bias_bound_mu","writeUInt8",1]),q.prototype.fieldSpec.push(["phase_bias_bound_sig","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",z.prototype.msg_type=1516,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats_signals").array("satellites_signals",{type:q.prototype.parser,length:"n_sats_signals"}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),z.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),z.prototype.fieldSpec.push(["const_id","writeUInt8",1]),z.prototype.fieldSpec.push(["n_sats_signals","writeUInt8",1]),z.prototype.fieldSpec.push(["satellites_signals","array",q.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats_signals"]);let V=function(e,t){return r.call(this,e),this.messageType="OrbitClockBoundDegradation",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="OrbitClockBoundDegradation",V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").uint8("orb_radial_bound_mu_dot").uint8("orb_along_bound_mu_dot").uint8("orb_cross_bound_mu_dot").uint8("orb_radial_bound_sig_dot").uint8("orb_along_bound_sig_dot").uint8("orb_cross_bound_sig_dot").uint8("clock_bound_mu_dot").uint8("clock_bound_sig_dot"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["orb_radial_bound_mu_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_along_bound_mu_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_cross_bound_mu_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_radial_bound_sig_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_along_bound_sig_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_cross_bound_sig_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["clock_bound_mu_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["clock_bound_sig_dot","writeUInt8",1]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",H.prototype.msg_type=1503,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint64("sat_bitmask").nest("orbit_clock_bounds_degradation",{type:V.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),H.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),H.prototype.fieldSpec.push(["const_id","writeUInt8",1]),H.prototype.fieldSpec.push(["sat_bitmask","writeUInt64LE",8]),H.prototype.fieldSpec.push(["orbit_clock_bounds_degradation",V.prototype.fieldSpec]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:f,TroposphericDelayCorrection:d,STECResidualNoStd:h,STECResidual:_,1501:S,MsgSsrOrbitClock:S,1505:g,MsgSsrCodeBiases:g,1510:w,MsgSsrPhaseBiases:w,1531:E,MsgSsrStecCorrectionDep:E,BoundsHeader:m,1533:b,MsgSsrStecCorrection:b,1532:I,MsgSsrGriddedCorrection:I,STECSatElementIntegrity:L,1534:T,MsgSsrGriddedCorrectionBounds:T,1526:v,MsgSsrTileDefinitionDepA:v,1527:U,MsgSsrTileDefinitionDepB:U,1528:O,MsgSsrTileDefinition:O,SatelliteAPC:M,1540:D,MsgSsrSatelliteApcDep:D,1541:A,MsgSsrSatelliteApc:A,1500:G,MsgSsrOrbitClockDepA:G,STECHeaderDepA:C,GriddedCorrectionHeaderDepA:j,GridDefinitionHeaderDepA:P,1515:R,MsgSsrStecCorrectionDepA:R,1520:N,MsgSsrGriddedCorrectionNoStdDepA:N,1530:x,MsgSsrGriddedCorrectionDepA:x,1525:F,MsgSsrGridDefinitionDepA:F,OrbitClockBound:k,1502:B,MsgSsrOrbitClockBounds:B,CodePhaseBiasesSatSig:q,1516:z,MsgSsrCodePhaseBiasesBounds:z,OrbitClockBoundDegradation:V,1503:H,MsgSsrOrbitClockBoundsDegradation:H}},2644:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_STARTUP",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_STARTUP",i.prototype.msg_type=65280,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("cause").uint8("startup_type").uint16("reserved"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["cause","writeUInt8",1]),i.prototype.fieldSpec.push(["startup_type","writeUInt8",1]),i.prototype.fieldSpec.push(["reserved","writeUInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_DGNSS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_DGNSS_STATUS",s.prototype.msg_type=65282,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("flags").uint16("latency").uint8("num_signals").string("source",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["latency","writeUInt16LE",2]),s.prototype.fieldSpec.push(["num_signals","writeUInt8",1]),s.prototype.fieldSpec.push(["source","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_HEARTBEAT",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_HEARTBEAT",n.prototype.msg_type=65535,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="SubSystemReport",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="SubSystemReport",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint16("component").uint8("generic").uint8("specific"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["component","writeUInt16LE",2]),a.prototype.fieldSpec.push(["generic","writeUInt8",1]),a.prototype.fieldSpec.push(["specific","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_REPORT",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_REPORT",l.prototype.msg_type=65534,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("sequence").uint32("uptime").array("status",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),l.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),l.prototype.fieldSpec.push(["status","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let c=function(e,t){return r.call(this,e),this.messageType="StatusJournalItem",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="StatusJournalItem",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("uptime").nest("report",{type:a.prototype.parser}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["report",a.prototype.fieldSpec]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_JOURNAL",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_JOURNAL",u.prototype.msg_type=65533,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("total_status_reports").uint8("sequence_descriptor").array("journal",{type:c.prototype.parser,readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),u.prototype.fieldSpec.push(["total_status_reports","writeUInt32LE",4]),u.prototype.fieldSpec.push(["sequence_descriptor","writeUInt8",1]),u.prototype.fieldSpec.push(["journal","array",c.prototype.fieldSpec,function(){return this.fields.array.length},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_INS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_INS_STATUS",y.prototype.msg_type=65283,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY",f.prototype.msg_type=65284,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["id","writeUInt8",1]),f.prototype.fieldSpec.push(["telemetry","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",d.prototype.msg_type=65285,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["id","writeUInt8",1]),d.prototype.fieldSpec.push(["telemetry_labels","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_INS_UPDATES",h.prototype.msg_type=65286,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),h.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),h.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),h.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),h.prototype.fieldSpec.push(["speed","writeUInt8",1]),h.prototype.fieldSpec.push(["nhc","writeUInt8",1]),h.prototype.fieldSpec.push(["zerovel","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_TIME_OFFSET",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_TIME_OFFSET",_.prototype.msg_type=65287,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("weeks").int32("milliseconds").int16("microseconds").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["weeks","writeInt16LE",2]),_.prototype.fieldSpec.push(["milliseconds","writeInt32LE",4]),_.prototype.fieldSpec.push(["microseconds","writeInt16LE",2]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_PPS_TIME",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_PPS_TIME",S.prototype.msg_type=65288,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time","writeUInt64LE",8]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SENSOR_AID_EVENT",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SENSOR_AID_EVENT",g.prototype.msg_type=65289,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("time").uint8("sensor_type").uint16("sensor_id").uint8("sensor_state").uint8("n_available_meas").uint8("n_attempted_meas").uint8("n_accepted_meas").uint32("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time","writeUInt32LE",4]),g.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),g.prototype.fieldSpec.push(["sensor_id","writeUInt16LE",2]),g.prototype.fieldSpec.push(["sensor_state","writeUInt8",1]),g.prototype.fieldSpec.push(["n_available_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_attempted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_accepted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_META",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_META",w.prototype.msg_type=65290,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("group_id").uint8("flags").uint8("n_group_msgs").array("group_msgs",{type:"uint16le",length:"n_group_msgs"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["group_id","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]),w.prototype.fieldSpec.push(["n_group_msgs","writeUInt8",1]),w.prototype.fieldSpec.push(["group_msgs","array","writeUInt16LE",function(){return 2},"n_group_msgs"]),e.exports={65280:i,MsgStartup:i,65282:s,MsgDgnssStatus:s,65535:n,MsgHeartbeat:n,SubSystemReport:a,65534:l,MsgStatusReport:l,StatusJournalItem:c,65533:u,MsgStatusJournal:u,65283:y,MsgInsStatus:y,65284:f,MsgCsacTelemetry:f,65285:d,MsgCsacTelemetryLabels:d,65286:h,MsgInsUpdates:h,65287:_,MsgGnssTimeOffset:_,65288:S,MsgPpsTime:S,65289:g,MsgSensorAidEvent:g,65290:w,MsgGroupMeta:w}},3894:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=(p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="TelemetrySV",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="TelemetrySV",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("az").int8("el").uint8("availability_flags").int16("pseudorange_residual").int16("phase_residual").uint8("outlier_flags").uint8("ephemeris_flags").uint8("correction_flags").nest("sid",{type:i.prototype.parser}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["az","writeUInt8",1]),s.prototype.fieldSpec.push(["el","writeInt8",1]),s.prototype.fieldSpec.push(["availability_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["pseudorange_residual","writeInt16LE",2]),s.prototype.fieldSpec.push(["phase_residual","writeInt16LE",2]),s.prototype.fieldSpec.push(["outlier_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["ephemeris_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["correction_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_TEL_SV",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_TEL_SV",n.prototype.msg_type=288,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").uint8("n_obs").uint8("origin_flags").array("sv_tel",{type:s.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["n_obs","writeUInt8",1]),n.prototype.fieldSpec.push(["origin_flags","writeUInt8",1]),n.prototype.fieldSpec.push(["sv_tel","array",s.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={TelemetrySV:s,288:n,MsgTelSv:n}},752:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase),s=p(278).GnssSignal,n=p(278).GnssSignalDep,a=p(278).GPSTime,l=p(278).GPSTimeDep,c=(p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(c.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",c.prototype.msg_type=33,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:a.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:s.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),c.prototype.fieldSpec.push(["tot",a.prototype.fieldSpec]),c.prototype.fieldSpec.push(["P","writeUInt32LE",4]),c.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),c.prototype.fieldSpec.push(["cn0","writeUInt8",1]),c.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),c.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),c.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),c.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),c.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),c.prototype.fieldSpec.push(["acceleration","writeInt8",1]),c.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP",u.prototype.msg_type=17,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:l.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),u.prototype.fieldSpec.push(["tot",l.prototype.fieldSpec]),u.prototype.fieldSpec.push(["P","writeUInt32LE",4]),u.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["cn0","writeUInt8",1]),u.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),u.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),u.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),u.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),u.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),u.prototype.fieldSpec.push(["acceleration","writeInt8",1]),u.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="TrackingChannelState",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="TrackingChannelState",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("fcn").uint8("cn0"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["fcn","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE",f.prototype.msg_type=65,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("states",{type:y.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["states","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let d=function(e,t){return r.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MeasurementState",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("mesid",{type:s.prototype.parser}).uint8("cn0"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["mesid",s.prototype.fieldSpec]),d.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_STATE",h.prototype.msg_type=97,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("states",{type:d.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["states","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelation",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelation",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("I").int16("Q"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["I","writeInt16LE",2]),_.prototype.fieldSpec.push(["Q","writeInt16LE",2]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ",S.prototype.msg_type=45,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:_.prototype.parser}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["channel","writeUInt8",1]),S.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["corrs","array",_.prototype.fieldSpec,function(){return this.fields.array.length},3]);let g=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelationDep",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelationDep",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").int32("I").int32("Q"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["I","writeInt32LE",4]),g.prototype.fieldSpec.push(["Q","writeInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_B",w.prototype.msg_type=44,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["channel","writeUInt8",1]),w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_A",E.prototype.msg_type=28,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:n.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["channel","writeUInt8",1]),E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let m=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepA",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepA",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint8("state").uint8("prn").floatle("cn0"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["state","writeUInt8",1]),m.prototype.fieldSpec.push(["prn","writeUInt8",1]),m.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_A",b.prototype.msg_type=22,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").array("states",{type:m.prototype.parser,readUntil:"eof"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["states","array",m.prototype.fieldSpec,function(){return this.fields.array.length},null]);let I=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepB",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepB",I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint8("state").nest("sid",{type:n.prototype.parser}).floatle("cn0"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["state","writeUInt8",1]),I.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),I.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_B",L.prototype.msg_type=19,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").array("states",{type:I.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["states","array",I.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={33:c,MsgTrackingStateDetailedDepA:c,17:u,MsgTrackingStateDetailedDep:u,TrackingChannelState:y,65:f,MsgTrackingState:f,MeasurementState:d,97:h,MsgMeasurementState:h,TrackingChannelCorrelation:_,45:S,MsgTrackingIq:S,TrackingChannelCorrelationDep:g,44:w,MsgTrackingIqDepB:w,28:E,MsgTrackingIqDepA:E,TrackingChannelStateDepA:m,22:b,MsgTrackingStateDepA:b,TrackingChannelStateDepB:I,19:L,MsgTrackingStateDepB:L}},5562:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_USER_DATA",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_USER_DATA",i.prototype.msg_type=2048,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").array("contents",{type:"uint8",readUntil:"eof"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]),e.exports={2048:i,MsgUserData:i}},7293:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_ODOMETRY",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_ODOMETRY",i.prototype.msg_type=2307,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").int32("velocity").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["velocity","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_WHEELTICK",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_WHEELTICK",s.prototype.msg_type=2308,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags").uint8("source").int32("ticks"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["ticks","writeInt32LE",4]),e.exports={2307:i,MsgOdometry:i,2308:s,MsgWheeltick:s}},4148:(e,t,p)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){for(var p=0;p1?p-1:0),o=1;o1?p-1:0),o=1;o1?p-1:0),o=1;o1?p-1:0),o=1;o{"use strict";function r(e,t){var p=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),p.push.apply(p,r)}return p}function o(e){for(var t=1;te.length)&&(p=e.length),e.substring(p-t.length,p)===t}var g="",w="",E="",m="",b={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function I(e){var t=Object.keys(e),p=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){p[t]=e[t]})),Object.defineProperty(p,"message",{value:e.message}),p}function L(e){return h(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var T=function(e,t){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&y(e,t)}(T,e);var p,r,s,l,c=(p=T,r=u(),function(){var e,t=f(p);if(r){var o=f(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return n(this,e)});function T(e){var t;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,T),"object"!==d(e)||null===e)throw new _("options","Object",e);var p=e.message,r=e.operator,o=e.stackStartFn,i=e.actual,s=e.expected,l=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=p)t=c.call(this,String(p));else if(process.stderr&&process.stderr.isTTY&&(process.stderr&&process.stderr.getColorDepth&&1!==process.stderr.getColorDepth()?(g="",w="",m="",E=""):(g="",w="",m="",E="")),"object"===d(i)&&null!==i&&"object"===d(s)&&null!==s&&"stack"in i&&i instanceof Error&&"stack"in s&&s instanceof Error&&(i=I(i),s=I(s)),"deepStrictEqual"===r||"strictEqual"===r)t=c.call(this,function(e,t,p){var r="",o="",i=0,s="",n=!1,a=L(e),l=a.split("\n"),c=L(t).split("\n"),u=0,y="";if("strictEqual"===p&&"object"===d(e)&&"object"===d(t)&&null!==e&&null!==t&&(p="strictEqualObject"),1===l.length&&1===c.length&&l[0]!==c[0]){var f=l[0].length+c[0].length;if(f<=10){if(!("object"===d(e)&&null!==e||"object"===d(t)&&null!==t||0===e&&0===t))return"".concat(b[p],"\n\n")+"".concat(l[0]," !== ").concat(c[0],"\n")}else if("strictEqualObject"!==p&&f<(process.stderr&&process.stderr.isTTY?process.stderr.columns:80)){for(;l[0][u]===c[0][u];)u++;u>2&&(y="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var p=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,p-e.length)}(" ",u),"^"),u=0)}}for(var h=l[l.length-1],_=c[c.length-1];h===_&&(u++<2?s="\n ".concat(h).concat(s):r=h,l.pop(),c.pop(),0!==l.length&&0!==c.length);)h=l[l.length-1],_=c[c.length-1];var I=Math.max(l.length,c.length);if(0===I){var T=a.split("\n");if(T.length>30)for(T[26]="".concat(g,"...").concat(m);T.length>27;)T.pop();return"".concat(b.notIdentical,"\n\n").concat(T.join("\n"),"\n")}u>3&&(s="\n".concat(g,"...").concat(m).concat(s),n=!0),""!==r&&(s="\n ".concat(r).concat(s),r="");var v=0,U=b[p]+"\n".concat(w,"+ actual").concat(m," ").concat(E,"- expected").concat(m),O=" ".concat(g,"...").concat(m," Lines skipped");for(u=0;u1&&u>2&&(M>4?(o+="\n".concat(g,"...").concat(m),n=!0):M>3&&(o+="\n ".concat(c[u-2]),v++),o+="\n ".concat(c[u-1]),v++),i=u,r+="\n".concat(E,"-").concat(m," ").concat(c[u]),v++;else if(c.length1&&u>2&&(M>4?(o+="\n".concat(g,"...").concat(m),n=!0):M>3&&(o+="\n ".concat(l[u-2]),v++),o+="\n ".concat(l[u-1]),v++),i=u,o+="\n".concat(w,"+").concat(m," ").concat(l[u]),v++;else{var D=c[u],A=l[u],G=A!==D&&(!S(A,",")||A.slice(0,-1)!==D);G&&S(D,",")&&D.slice(0,-1)===A&&(G=!1,A+=","),G?(M>1&&u>2&&(M>4?(o+="\n".concat(g,"...").concat(m),n=!0):M>3&&(o+="\n ".concat(l[u-2]),v++),o+="\n ".concat(l[u-1]),v++),i=u,o+="\n".concat(w,"+").concat(m," ").concat(A),r+="\n".concat(E,"-").concat(m," ").concat(D),v+=2):(o+=r,r="",1!==M&&0!==u||(o+="\n ".concat(A),v++))}if(v>20&&u30)for(y[26]="".concat(g,"...").concat(m);y.length>27;)y.pop();t=1===y.length?c.call(this,"".concat(u," ").concat(y[0])):c.call(this,"".concat(u,"\n\n").concat(y.join("\n"),"\n"))}else{var f=L(i),h="",v=b[r];"notDeepEqual"===r||"notEqual"===r?(f="".concat(b[r],"\n\n").concat(f)).length>1024&&(f="".concat(f.slice(0,1021),"...")):(h="".concat(L(s)),f.length>512&&(f="".concat(f.slice(0,509),"...")),h.length>512&&(h="".concat(h.slice(0,509),"...")),"deepEqual"===r||"equal"===r?f="".concat(v,"\n\n").concat(f,"\n\nshould equal\n\n"):h=" ".concat(r," ").concat(h)),t=c.call(this,"".concat(f).concat(h))}return Error.stackTraceLimit=l,t.generatedMessage=!p,Object.defineProperty(a(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=i,t.expected=s,t.operator=r,Error.captureStackTrace&&Error.captureStackTrace(a(t),o),t.stack,t.name="AssertionError",n(t)}return s=T,(l=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return h(this,o(o({},t),{},{customInspect:!1,depth:0}))}}])&&i(s.prototype,l),Object.defineProperty(s,"prototype",{writable:!1}),T}(l(Error),h.custom);e.exports=T},9597:(e,t,p)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}var s,n,a={};function l(e,t,p){p||(p=Error);var s=function(p){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&o(e,t)}(c,p);var s,n,a,l=(n=c,a=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=i(n);if(a){var p=i(this).constructor;e=Reflect.construct(t,arguments,p)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,e)});function c(p,r,o){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),i=l.call(this,function(e,p,r){return"string"==typeof t?t:t(e,p,r)}(p,r,o)),i.code=e,i}return s=c,Object.defineProperty(s,"prototype",{writable:!1}),s}(p);a[e]=s}function c(e,t){if(Array.isArray(e)){var p=e.length;return e=e.map((function(e){return String(e)})),p>2?"one of ".concat(t," ").concat(e.slice(0,p-1).join(", "),", or ")+e[p-1]:2===p?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}l("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),l("ERR_INVALID_ARG_TYPE",(function(e,t,o){var i,n,a,l,u;if(void 0===s&&(s=p(4148)),s("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(n="not ",t.substr(0,4)===n)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,p){return(void 0===p||p>e.length)&&(p=e.length),e.substring(p-9,p)===t}(e," argument"))a="The ".concat(e," ").concat(i," ").concat(c(t,"type"));else{var y=("number"!=typeof u&&(u=0),u+1>(l=e).length||-1===l.indexOf(".",u)?"argument":"property");a='The "'.concat(e,'" ').concat(y," ").concat(i," ").concat(c(t,"type"))}return a+". Received type ".concat(r(o))}),TypeError),l("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===n&&(n=p(4591));var o=n.inspect(t);return o.length>128&&(o="".concat(o.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(o)}),TypeError,RangeError),l("ERR_INVALID_RETURN_VALUE",(function(e,t,p){var o;return o=p&&p.constructor&&p.constructor.name?"instance of ".concat(p.constructor.name):"type ".concat(r(p)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(o,".")}),TypeError),l("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0,"At least one arg needs to be specified");var o="The ",i=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),i){case 1:o+="".concat(t[0]," argument");break;case 2:o+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:o+=t.slice(0,i-1).join(", "),o+=", and ".concat(t[i-1]," arguments")}return"".concat(o," must be specified")}),TypeError),e.exports.codes=a},2299:(e,t,p)=>{"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var p=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=p){var r,o,i,s,n=[],a=!0,l=!1;try{if(i=(p=p.call(e)).next,0===t){if(Object(p)!==p)return;a=!1}else for(;!(a=(r=i.call(p)).done)&&(n.push(r.value),n.length!==t);a=!0);}catch(e){l=!0,o=e}finally{try{if(!a&&null!=p.return&&(s=p.return(),Object(s)!==s))return}finally{if(l)throw o}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var p=Object.prototype.toString.call(e).slice(8,-1);return"Object"===p&&e.constructor&&(p=e.constructor.name),"Map"===p||"Set"===p?Array.from(e):"Arguments"===p||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var p=0,r=new Array(t);p10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function C(e){return Object.keys(e).filter(G).concat(c(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function j(e,t){if(e===t)return 0;for(var p=e.length,r=t.length,o=0,i=Math.min(p,r);o{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},2078:(e,t,p)=>{"use strict";var r=p(7244),o=p(8184),i=p(5767),s=p(5680);function n(e){return e.call.bind(e)}var a="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,c=n(Object.prototype.toString),u=n(Number.prototype.valueOf),y=n(String.prototype.valueOf),f=n(Boolean.prototype.valueOf);if(a)var d=n(BigInt.prototype.valueOf);if(l)var h=n(Symbol.prototype.valueOf);function _(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function S(e){return"[object Map]"===c(e)}function g(e){return"[object Set]"===c(e)}function w(e){return"[object WeakMap]"===c(e)}function E(e){return"[object WeakSet]"===c(e)}function m(e){return"[object ArrayBuffer]"===c(e)}function b(e){return"undefined"!=typeof ArrayBuffer&&(m.working?m(e):e instanceof ArrayBuffer)}function I(e){return"[object DataView]"===c(e)}function L(e){return"undefined"!=typeof DataView&&(I.working?I(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=o,t.isTypedArray=s,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):s(e)||L(e)},t.isUint8Array=function(e){return"Uint8Array"===i(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===i(e)},t.isUint16Array=function(e){return"Uint16Array"===i(e)},t.isUint32Array=function(e){return"Uint32Array"===i(e)},t.isInt8Array=function(e){return"Int8Array"===i(e)},t.isInt16Array=function(e){return"Int16Array"===i(e)},t.isInt32Array=function(e){return"Int32Array"===i(e)},t.isFloat32Array=function(e){return"Float32Array"===i(e)},t.isFloat64Array=function(e){return"Float64Array"===i(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===i(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===i(e)},S.working="undefined"!=typeof Map&&S(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(S.working?S(e):e instanceof Map)},g.working="undefined"!=typeof Set&&g(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(g.working?g(e):e instanceof Set)},w.working="undefined"!=typeof WeakMap&&w(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(w.working?w(e):e instanceof WeakMap)},E.working="undefined"!=typeof WeakSet&&E(new WeakSet),t.isWeakSet=function(e){return E(e)},m.working="undefined"!=typeof ArrayBuffer&&m(new ArrayBuffer),t.isArrayBuffer=b,I.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&I(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=L;var T="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function v(e){return"[object SharedArrayBuffer]"===c(e)}function U(e){return void 0!==T&&(void 0===v.working&&(v.working=v(new T)),v.working?v(e):e instanceof T)}function O(e){return _(e,u)}function M(e){return _(e,y)}function D(e){return _(e,f)}function A(e){return a&&_(e,d)}function G(e){return l&&_(e,h)}t.isSharedArrayBuffer=U,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===c(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===c(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===c(e)},t.isGeneratorObject=function(e){return"[object Generator]"===c(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===c(e)},t.isNumberObject=O,t.isStringObject=M,t.isBooleanObject=D,t.isBigIntObject=A,t.isSymbolObject=G,t.isBoxedPrimitive=function(e){return O(e)||M(e)||D(e)||A(e)||G(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(b(e)||U(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},4591:(e,t,p)=>{var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),p={},r=0;r=i)return e;switch(e){case"%s":return String(r[p++]);case"%d":return Number(r[p++]);case"%j":try{return JSON.stringify(r[p++])}catch(e){return"[Circular]"}default:return e}})),n=r[p];p=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),h(p)?r.showHidden=p:p&&t._extend(r,p),w(r.showHidden)&&(r.showHidden=!1),w(r.depth)&&(r.depth=2),w(r.colors)&&(r.colors=!1),w(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),u(r,e,r.depth)}function l(e,t){var p=a.styles[t];return p?"["+a.colors[p][0]+"m"+e+"["+a.colors[p][1]+"m":e}function c(e,t){return e}function u(e,p,r){if(e.customInspect&&p&&L(p.inspect)&&p.inspect!==t.inspect&&(!p.constructor||p.constructor.prototype!==p)){var o=p.inspect(r,e);return g(o)||(o=u(e,o,r)),o}var i=function(e,t){if(w(t))return e.stylize("undefined","undefined");if(g(t)){var p="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(p,"string")}return S(t)?e.stylize(""+t,"number"):h(t)?e.stylize(""+t,"boolean"):_(t)?e.stylize("null","null"):void 0}(e,p);if(i)return i;var s=Object.keys(p),n=function(e){var t={};return e.forEach((function(e,p){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(p)),I(p)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return y(p);if(0===s.length){if(L(p)){var a=p.name?": "+p.name:"";return e.stylize("[Function"+a+"]","special")}if(E(p))return e.stylize(RegExp.prototype.toString.call(p),"regexp");if(b(p))return e.stylize(Date.prototype.toString.call(p),"date");if(I(p))return y(p)}var l,c="",m=!1,T=["{","}"];return d(p)&&(m=!0,T=["[","]"]),L(p)&&(c=" [Function"+(p.name?": "+p.name:"")+"]"),E(p)&&(c=" "+RegExp.prototype.toString.call(p)),b(p)&&(c=" "+Date.prototype.toUTCString.call(p)),I(p)&&(c=" "+y(p)),0!==s.length||m&&0!=p.length?r<0?E(p)?e.stylize(RegExp.prototype.toString.call(p),"regexp"):e.stylize("[Object]","special"):(e.seen.push(p),l=m?function(e,t,p,r,o){for(var i=[],s=0,n=t.length;s60?p[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+p[1]:p[0]+t+" "+e.join(", ")+" "+p[1]}(l,c,T)):T[0]+c+T[1]}function y(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,p,r,o,i){var s,n,a;if((a=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?n=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(n=e.stylize("[Setter]","special")),O(r,o)||(s="["+o+"]"),n||(e.seen.indexOf(a.value)<0?(n=_(p)?u(e,a.value,null):u(e,a.value,p-1)).indexOf("\n")>-1&&(n=i?n.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+n.split("\n").map((function(e){return" "+e})).join("\n")):n=e.stylize("[Circular]","special")),w(s)){if(i&&o.match(/^\d+$/))return n;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.slice(1,-1),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+n}function d(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function _(e){return null===e}function S(e){return"number"==typeof e}function g(e){return"string"==typeof e}function w(e){return void 0===e}function E(e){return m(e)&&"[object RegExp]"===T(e)}function m(e){return"object"==typeof e&&null!==e}function b(e){return m(e)&&"[object Date]"===T(e)}function I(e){return m(e)&&("[object Error]"===T(e)||e instanceof Error)}function L(e){return"function"==typeof e}function T(e){return Object.prototype.toString.call(e)}function v(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!i[e])if(s.test(e)){var p=process.pid;i[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,p,r)}}else i[e]=function(){};return i[e]},t.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=p(2078),t.isArray=d,t.isBoolean=h,t.isNull=_,t.isNullOrUndefined=function(e){return null==e},t.isNumber=S,t.isString=g,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=w,t.isRegExp=E,t.types.isRegExp=E,t.isObject=m,t.isDate=b,t.types.isDate=b,t.isError=I,t.types.isNativeError=I,t.isFunction=L,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=p(3845);var U=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,p;console.log("%s - %s",(p=[v((e=new Date).getHours()),v(e.getMinutes()),v(e.getSeconds())].join(":"),[e.getDate(),U[e.getMonth()],p].join(" ")),t.format.apply(t,arguments))},t.inherits=p(6698),t._extend=function(e,t){if(!t||!m(t))return e;for(var p=Object.keys(t),r=p.length;r--;)e[p[r]]=t[p[r]];return e};var M="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function D(e,t){if(!e){var p=new Error("Promise was rejected with a falsy value");p.reason=e,e=p}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(M&&e[M]){var t;if("function"!=typeof(t=e[M]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,M,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,p,r=new Promise((function(e,r){t=e,p=r})),o=[],i=0;i{"use strict";t.i=void 0,p(9160);var r=p(5682),o={},i="___parser_",s={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},n={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},a={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1},l=function(){function e(){this.varName="",this.type="",this.options={},this.next=null,this.head=null,this.compiled=null,this.endian="be",this.constructorFn=null,this.alias=null}return e.start=function(){return new e},e.prototype.primitiveGenerateN=function(e,t){var p=n[e],r=a[e];t.pushCode(t.generateVariable(this.varName)+" = dataView.get"+p+"(offset, "+r+");"),t.pushCode("offset += "+s[e]+";")},e.prototype.primitiveN=function(e,t,p){return this.setNextParser(e,t,p)},e.prototype.useThisEndian=function(e){return e+this.endian.toLowerCase()},e.prototype.uint8=function(e,t){return this.primitiveN("uint8",e,t)},e.prototype.uint16=function(e,t){return this.primitiveN(this.useThisEndian("uint16"),e,t)},e.prototype.uint16le=function(e,t){return this.primitiveN("uint16le",e,t)},e.prototype.uint16be=function(e,t){return this.primitiveN("uint16be",e,t)},e.prototype.uint32=function(e,t){return this.primitiveN(this.useThisEndian("uint32"),e,t)},e.prototype.uint32le=function(e,t){return this.primitiveN("uint32le",e,t)},e.prototype.uint32be=function(e,t){return this.primitiveN("uint32be",e,t)},e.prototype.int8=function(e,t){return this.primitiveN("int8",e,t)},e.prototype.int16=function(e,t){return this.primitiveN(this.useThisEndian("int16"),e,t)},e.prototype.int16le=function(e,t){return this.primitiveN("int16le",e,t)},e.prototype.int16be=function(e,t){return this.primitiveN("int16be",e,t)},e.prototype.int32=function(e,t){return this.primitiveN(this.useThisEndian("int32"),e,t)},e.prototype.int32le=function(e,t){return this.primitiveN("int32le",e,t)},e.prototype.int32be=function(e,t){return this.primitiveN("int32be",e,t)},e.prototype.bigIntVersionCheck=function(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported in this runtime")},e.prototype.int64=function(e,t){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),e,t)},e.prototype.int64be=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("int64be",e,t)},e.prototype.int64le=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("int64le",e,t)},e.prototype.uint64=function(e,t){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),e,t)},e.prototype.uint64be=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("uint64be",e,t)},e.prototype.uint64le=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("uint64le",e,t)},e.prototype.floatle=function(e,t){return this.primitiveN("floatle",e,t)},e.prototype.floatbe=function(e,t){return this.primitiveN("floatbe",e,t)},e.prototype.doublele=function(e,t){return this.primitiveN("doublele",e,t)},e.prototype.doublebe=function(e,t){return this.primitiveN("doublebe",e,t)},e.prototype.bitN=function(e,t,p){return p||(p={}),p.length=e,this.setNextParser("bit",t,p)},e.prototype.bit1=function(e,t){return this.bitN(1,e,t)},e.prototype.bit2=function(e,t){return this.bitN(2,e,t)},e.prototype.bit3=function(e,t){return this.bitN(3,e,t)},e.prototype.bit4=function(e,t){return this.bitN(4,e,t)},e.prototype.bit5=function(e,t){return this.bitN(5,e,t)},e.prototype.bit6=function(e,t){return this.bitN(6,e,t)},e.prototype.bit7=function(e,t){return this.bitN(7,e,t)},e.prototype.bit8=function(e,t){return this.bitN(8,e,t)},e.prototype.bit9=function(e,t){return this.bitN(9,e,t)},e.prototype.bit10=function(e,t){return this.bitN(10,e,t)},e.prototype.bit11=function(e,t){return this.bitN(11,e,t)},e.prototype.bit12=function(e,t){return this.bitN(12,e,t)},e.prototype.bit13=function(e,t){return this.bitN(13,e,t)},e.prototype.bit14=function(e,t){return this.bitN(14,e,t)},e.prototype.bit15=function(e,t){return this.bitN(15,e,t)},e.prototype.bit16=function(e,t){return this.bitN(16,e,t)},e.prototype.bit17=function(e,t){return this.bitN(17,e,t)},e.prototype.bit18=function(e,t){return this.bitN(18,e,t)},e.prototype.bit19=function(e,t){return this.bitN(19,e,t)},e.prototype.bit20=function(e,t){return this.bitN(20,e,t)},e.prototype.bit21=function(e,t){return this.bitN(21,e,t)},e.prototype.bit22=function(e,t){return this.bitN(22,e,t)},e.prototype.bit23=function(e,t){return this.bitN(23,e,t)},e.prototype.bit24=function(e,t){return this.bitN(24,e,t)},e.prototype.bit25=function(e,t){return this.bitN(25,e,t)},e.prototype.bit26=function(e,t){return this.bitN(26,e,t)},e.prototype.bit27=function(e,t){return this.bitN(27,e,t)},e.prototype.bit28=function(e,t){return this.bitN(28,e,t)},e.prototype.bit29=function(e,t){return this.bitN(29,e,t)},e.prototype.bit30=function(e,t){return this.bitN(30,e,t)},e.prototype.bit31=function(e,t){return this.bitN(31,e,t)},e.prototype.bit32=function(e,t){return this.bitN(32,e,t)},e.prototype.namely=function(e){return o[e]=this,this.alias=e,this},e.prototype.skip=function(e,t){return this.seek(e,t)},e.prototype.seek=function(e,t){if(t&&t.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:e})},e.prototype.string=function(e,t){if(!t.zeroTerminated&&!t.length&&!t.greedy)throw new Error("Neither length, zeroTerminated, nor greedy is defined for string.");if((t.zeroTerminated||t.length)&&t.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(t.stripNull&&!t.length&&!t.greedy)throw new Error("Length or greedy must be defined if stripNull is defined.");return t.encoding=t.encoding||"utf8",this.setNextParser("string",e,t)},e.prototype.buffer=function(e,t){if(!t.length&&!t.readUntil)throw new Error("Length nor readUntil is defined in buffer parser");return this.setNextParser("buffer",e,t)},e.prototype.wrapped=function(e,t){if(!t.length&&!t.readUntil)throw new Error("Length nor readUntil is defined in buffer parser");if(!t.wrapper||!t.type)throw new Error("Both wrapper and type must be defined in wrapper parser");return this.setNextParser("wrapper",e,t)},e.prototype.array=function(e,t){if(!t.readUntil&&!t.length&&!t.lengthInBytes)throw new Error("Length option of array is not defined.");if(!t.type)throw new Error("Type option of array is not defined.");if("string"==typeof t.type&&!o[t.type]&&Object.keys(s).indexOf(t.type)<0)throw new Error('Specified primitive type "'+t.type+'" is not supported.');return this.setNextParser("array",e,t)},e.prototype.choice=function(e,t){if("object"!=typeof t&&"object"==typeof e&&(t=e,e=null),!t.tag)throw new Error("Tag option of array is not defined.");if(!t.choices)throw new Error("Choices option of array is not defined.");return Object.keys(t.choices).forEach((function(p){var r=parseInt(p,10),i=t.choices[r];if(isNaN(r))throw new Error("Key of choices must be a number.");if(!i)throw new Error("Choice Case "+p+" of "+e+" is not valid.");if("string"==typeof i&&!o[i]&&Object.keys(s).indexOf(i)<0)throw new Error('Specified primitive type "'+i+'" is not supported.')})),this.setNextParser("choice",e,t)},e.prototype.nest=function(t,p){if("object"!=typeof p&&"object"==typeof t&&(p=t,t=null),!p.type)throw new Error("Type option of nest is not defined.");if(!(p.type instanceof e||o[p.type]))throw new Error("Type option of nest must be a Parser object.");if(!(p.type instanceof e||t))throw new Error("options.type must be a object if variable name is omitted.");return this.setNextParser("nest",t,p)},e.prototype.pointer=function(t,p){if(!p.offset)throw new Error("Offset option of pointer is not defined.");if(!p.type)throw new Error("Type option of pointer is not defined.");if("string"==typeof p.type){if(Object.keys(s).indexOf(p.type)<0&&!o[p.type])throw new Error('Specified type "'+p.type+'" is not supported.')}else if(!(p.type instanceof e))throw new Error("Type option of pointer must be a string or a Parser object.");return this.setNextParser("pointer",t,p)},e.prototype.saveOffset=function(e,t){return this.setNextParser("saveOffset",e,t)},e.prototype.endianess=function(e){switch(e.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error("Invalid endianess: "+e)}return this},e.prototype.create=function(e){if(!(e instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=e,this},e.prototype.getContext=function(e){var t=new r.Context(e);return t.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(t),t.pushCode("return "+(i+this.alias)+"(0).result;")):this.addRawCode(t),t},e.prototype.getCode=function(){return this.getContext().code},e.prototype.addRawCode=function(e){e.pushCode("var offset = 0;"),e.pushCode("var vars = "+(this.constructorFn?"new constructorFn()":"{}")+";"),e.pushCode("vars.$parent = null;"),e.pushCode("vars.$root = vars;"),this.generate(e),this.resolveReferences(e),e.pushCode("delete vars.$parent;"),e.pushCode("delete vars.$root;"),e.pushCode("return vars;")},e.prototype.addAliasedCode=function(e){return e.pushCode("function "+(i+this.alias)+"(offset, context) {"),e.pushCode("var vars = "+(this.constructorFn?"new constructorFn()":"{}")+";"),e.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),e.pushCode("vars = Object.assign(vars, ctx);"),this.generate(e),e.markResolved(this.alias),this.resolveReferences(e),e.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),e.pushCode("return { offset: offset, result: vars };"),e.pushCode("}"),e},e.prototype.resolveReferences=function(e){var t=e.getUnresolvedReferences();e.markRequested(t),t.forEach((function(t){o[t].addAliasedCode(e)}))},e.prototype.compile=function(){var e="imports",t=this.getContext(e);this.compiled=new Function(e,"TextDecoder","return function (buffer, constructorFn) { "+t.code+" };")(t.imports,TextDecoder)},e.prototype.sizeOf=function(){var t=NaN;if(Object.keys(s).indexOf(this.type)>=0)t=s[this.type];else if("string"===this.type&&"number"==typeof this.options.length)t=this.options.length;else if("buffer"===this.type&&"number"==typeof this.options.length)t=this.options.length;else if("array"===this.type&&"number"==typeof this.options.length){var p=NaN;"string"==typeof this.options.type?p=s[this.options.type]:this.options.type instanceof e&&(p=this.options.type.sizeOf()),t=this.options.length*p}else"seek"===this.type?t=this.options.length:"nest"===this.type?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t},e.prototype.parse=function(e){return this.compiled||this.compile(),this.compiled(e,this.constructorFn)},e.prototype.setNextParser=function(t,p,r){var o=new e;return o.type=t,o.varName=p,o.options=r||o.options,o.endian=this.endian,this.head?this.head.next=o:this.next=o,this.head=o,this},e.prototype.generate=function(e){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,e);break;case"bit":this.generateBit(e);break;case"string":this.generateString(e);break;case"buffer":this.generateBuffer(e);break;case"seek":this.generateSeek(e);break;case"nest":this.generateNest(e);break;case"array":this.generateArray(e);break;case"choice":this.generateChoice(e);break;case"pointer":this.generatePointer(e);break;case"saveOffset":this.generateSaveOffset(e);break;case"wrapper":this.generateWrapper(e)}this.generateAssert(e)}var t=e.generateVariable(this.varName);return this.options.formatter&&this.generateFormatter(e,t,this.options.formatter),this.generateNext(e)},e.prototype.generateAssert=function(e){if(this.options.assert){var t=e.generateVariable(this.varName);switch(typeof this.options.assert){case"function":var p=e.addImport(this.options.assert);e.pushCode("if (!"+p+".call(vars, "+t+")) {");break;case"number":e.pushCode("if ("+this.options.assert+" !== "+t+") {");break;case"string":e.pushCode('if ("'+this.options.assert+'" !== '+t+") {");break;default:throw new Error("Assert option supports only strings, numbers and assert functions.")}e.generateError('"Assert error: '+t+' is " + '+this.options.assert),e.pushCode("}")}},e.prototype.generateNext=function(e){return this.next&&(e=this.next.generate(e)),e},e.prototype.generateBit=function(e){var t=JSON.parse(JSON.stringify(this));if(t.varName=e.generateVariable(t.varName),e.bitFields.push(t),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){var p=0;e.bitFields.forEach((function(e){return p+=e.options.length}));var r=e.generateTmpVariable();if(p<=8)e.pushCode("var "+r+" = dataView.getUint8(offset);"),p=8;else if(p<=16)e.pushCode("var "+r+" = dataView.getUint16(offset);"),p=16;else if(p<=24){var o=e.generateTmpVariable(),i=e.generateTmpVariable();e.pushCode("var "+o+" = dataView.getUint16(offset);"),e.pushCode("var "+i+" = dataView.getUint8(offset + 2);"),e.pushCode("var "+r+" = ("+o+" << 8) | "+i+";"),p=24}else{if(!(p<=32))throw new Error("Currently, bit field sequence longer than 4-bytes is not supported.");e.pushCode("var "+r+" = dataView.getUint32(offset);"),p=32}e.pushCode("offset += "+p/8+";");var s=0,n="be"===this.endian;e.bitFields.forEach((function(t){var o=t.options.length,i=n?p-s-o:s,a=(1<> "+i+" & "+a+";"),s+=o})),e.bitFields=[]}},e.prototype.generateSeek=function(e){var t=e.generateOption(this.options.length);e.pushCode("offset += "+t+";")},e.prototype.generateString=function(e){var t=e.generateVariable(this.varName),p=e.generateTmpVariable(),r=this.options.encoding,o="hex"===r.toLowerCase(),i='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){var s=this.options.length;e.pushCode("var "+p+" = offset;"),e.pushCode("while(dataView.getUint8(offset++) !== 0 && offset - "+p+" < "+s+");");var n="offset - "+p+" < "+s+" ? offset - 1 : offset";e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", "+n+"), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", "+n+"));")}else this.options.length?(s=e.generateOption(this.options.length),e.pushCode(o?t+" = Array.from(buffer.subarray(offset, offset + "+s+"), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray(offset, offset + "+s+"));"),e.pushCode("offset += "+s+";")):this.options.zeroTerminated?(e.pushCode("var "+p+" = offset;"),e.pushCode("while(dataView.getUint8(offset++) !== 0);"),e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", offset - 1), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", offset - 1));")):this.options.greedy&&(e.pushCode("var "+p+" = offset;"),e.pushCode("while(buffer.length > offset++);"),e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", offset), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", offset));"));this.options.stripNull&&e.pushCode(t+" = "+t+".replace(/\\x00+$/g, '')")},e.prototype.generateBuffer=function(e){var t=e.generateVariable(this.varName);if("function"==typeof this.options.readUntil){var p=this.options.readUntil,r=e.generateTmpVariable(),o=e.generateTmpVariable();e.pushCode("var "+r+" = offset;"),e.pushCode("var "+o+" = 0;"),e.pushCode("while (offset < buffer.length) {"),e.pushCode(o+" = dataView.getUint8(offset);");var i=e.addImport(p);e.pushCode("if ("+i+".call("+e.generateVariable()+", "+o+", buffer.subarray(offset))) break;"),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(t+" = buffer.subarray("+r+", offset);")}else if("eof"===this.options.readUntil)e.pushCode(t+" = buffer.subarray(offset);");else{var s=e.generateOption(this.options.length);e.pushCode(t+" = buffer.subarray(offset, offset + "+s+");"),e.pushCode("offset += "+s+";")}this.options.clone&&e.pushCode(t+" = buffer.constructor.from("+t+");")},e.prototype.generateArray=function(t){var p=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),l=this.options.type,c=t.generateTmpVariable(),u=t.generateVariable(this.varName),y=t.generateTmpVariable(),f=this.options.key,d="string"==typeof f;if(d?t.pushCode(u+" = {};"):t.pushCode(u+" = [];"),"function"==typeof this.options.readUntil?t.pushCode("do {"):"eof"===this.options.readUntil?t.pushCode("for (var "+c+" = 0; offset < buffer.length; "+c+"++) {"):void 0!==r?t.pushCode("for (var "+c+" = offset + "+r+"; offset < "+c+"; ) {"):t.pushCode("for (var "+c+" = "+p+"; "+c+" > 0; "+c+"--) {"),"string"==typeof l)if(o[l]){var h=t.generateVariable(),_=t.generateTmpVariable();t.pushCode("var "+_+" = "+(i+l)+"(offset, {"),t.pushCode("$parent: "+h+","),t.pushCode("$root: "+h+".$root,"),this.options.readUntil||void 0!==r||t.pushCode("$index: "+p+" - "+c+","),t.pushCode("});"),t.pushCode("var "+y+" = "+_+".result; offset = "+_+".offset;"),l!==this.alias&&t.addReference(l)}else{var S=n[l],g=a[l];t.pushCode("var "+y+" = dataView.get"+S+"(offset, "+g+");"),t.pushCode("offset += "+s[l]+";")}else l instanceof e&&(h=t.generateVariable(),t.pushCode("var "+y+" = {};"),t.pushScope(y),t.pushCode(y+".$parent = "+h+";"),t.pushCode(y+".$root = "+h+".$root;"),this.options.readUntil||void 0!==r||t.pushCode(y+".$index = "+p+" - "+c+";"),l.generate(t),t.pushCode("delete "+y+".$parent;"),t.pushCode("delete "+y+".$root;"),t.pushCode("delete "+y+".$index;"),t.popScope());if(d?t.pushCode(u+"["+y+"."+f+"] = "+y+";"):t.pushCode(u+".push("+y+");"),t.pushCode("}"),"function"==typeof this.options.readUntil){var w=this.options.readUntil,E=t.addImport(w);t.pushCode("while (!"+E+".call("+t.generateVariable()+", "+y+", buffer.subarray(offset)));")}},e.prototype.generateChoiceCase=function(t,p,r){if("string"==typeof r){var l=t.generateVariable(this.varName);if(o[r]){var c=t.generateTmpVariable();t.pushCode("var "+c+" = "+(i+r)+"(offset, {"),t.pushCode("$parent: "+l+".$parent,"),t.pushCode("$root: "+l+".$root,"),t.pushCode("});"),t.pushCode(l+" = "+c+".result; offset = "+c+".offset;"),r!==this.alias&&t.addReference(r)}else{var u=n[r],y=a[r];t.pushCode(l+" = dataView.get"+u+"(offset, "+y+");"),t.pushCode("offset += "+s[r])}}else r instanceof e&&(t.pushPath(p),r.generate(t),t.popPath(p))},e.prototype.generateChoice=function(e){var t=this,p=e.generateOption(this.options.tag),r=e.generateVariable(this.varName);if(this.varName){e.pushCode(r+" = {};");var o=e.generateVariable();e.pushCode(r+".$parent = "+o+";"),e.pushCode(r+".$root = "+o+".$root;")}e.pushCode("switch("+p+") {"),Object.keys(this.options.choices).forEach((function(p){var r=t.options.choices[parseInt(p,10)];e.pushCode("case "+p+":"),t.generateChoiceCase(e,t.varName,r),e.pushCode("break;")})),e.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(e,this.varName,this.options.defaultChoice):e.generateError('"Met undefined tag value " + '+p+' + " at choice"'),e.pushCode("}"),this.varName&&(e.pushCode("delete "+r+".$parent;"),e.pushCode("delete "+r+".$root;"))},e.prototype.generateNest=function(t){var p=t.generateVariable(this.varName);if(this.options.type instanceof e){if(this.varName){var r=t.generateVariable();t.pushCode(p+" = {};"),t.pushCode(p+".$parent = "+r+";"),t.pushCode(p+".$root = "+r+".$root;")}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&(t.pushCode("delete "+p+".$parent;"),t.pushCode("delete "+p+".$root;"))}else if(o[this.options.type]){r=t.generateVariable();var s=t.generateTmpVariable();t.pushCode("var "+s+" = "+(i+this.options.type)+"(offset, {"),t.pushCode("$parent: "+r+","),t.pushCode("$root: "+r+".$root,"),t.pushCode("});"),t.pushCode(p+" = "+s+".result; offset = "+s+".offset;"),this.options.type!==this.alias&&t.addReference(this.options.type)}},e.prototype.generateWrapper=function(t){var p=t.generateVariable(this.varName),r=t.generateTmpVariable();if("function"==typeof this.options.readUntil){var s=this.options.readUntil,n=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode("var "+n+" = offset;"),t.pushCode("var "+a+" = 0;"),t.pushCode("while (offset < buffer.length) {"),t.pushCode(a+" = dataView.getUint8(offset);");var l=t.addImport(s);t.pushCode("if ("+l+".call("+t.generateVariable()+", "+a+", buffer.subarray(offset))) break;"),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(r+" = buffer.subarray("+n+", offset);")}else if("eof"===this.options.readUntil)t.pushCode(r+" = buffer.subarray(offset);");else{var c=t.generateOption(this.options.length);t.pushCode(r+" = buffer.subarray(offset, offset + "+c+");"),t.pushCode("offset += "+c+";")}this.options.clone&&t.pushCode(r+" = buffer.constructor.from("+r+");");var u=t.generateTmpVariable(),y=t.generateTmpVariable(),f=t.generateTmpVariable(),d=t.addImport(this.options.wrapper);if(t.pushCode(r+" = "+d+".call(this, "+r+").subarray(0);"),t.pushCode("var "+u+" = buffer;"),t.pushCode("var "+y+" = offset;"),t.pushCode("var "+f+" = dataView;"),t.pushCode("buffer = "+r+";"),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof e)this.varName&&t.pushCode(p+" = {};"),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(o[this.options.type]){var h=t.generateTmpVariable();t.pushCode("var "+h+" = "+(i+this.options.type)+"(0);"),t.pushCode(p+" = "+h+".result;"),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode("buffer = "+u+";"),t.pushCode("dataView = "+f+";"),t.pushCode("offset = "+y+";")},e.prototype.generateFormatter=function(e,t,p){if("function"==typeof p){var r=e.addImport(p);e.pushCode(t+" = "+r+".call("+e.generateVariable()+", "+t+");")}},e.prototype.generatePointer=function(t){var p=this.options.type,r=t.generateOption(this.options.offset),l=t.generateTmpVariable(),c=t.generateVariable(this.varName);if(t.pushCode("var "+l+" = offset;"),t.pushCode("offset = "+r+";"),this.options.type instanceof e){var u=t.generateVariable();t.pushCode(c+" = {};"),t.pushCode(c+".$parent = "+u+";"),t.pushCode(c+".$root = "+u+".$root;"),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.pushCode("delete "+c+".$parent;"),t.pushCode("delete "+c+".$root;")}else if(o[this.options.type]){u=t.generateVariable();var y=t.generateTmpVariable();t.pushCode("var "+y+" = "+(i+this.options.type)+"(offset, {"),t.pushCode("$parent: "+u+","),t.pushCode("$root: "+u+".$root,"),t.pushCode("});"),t.pushCode(c+" = "+y+".result; offset = "+y+".offset;"),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(s).indexOf(this.options.type)>=0){var f=n[p],d=a[p];t.pushCode(c+" = dataView.get"+f+"(offset, "+d+");"),t.pushCode("offset += "+s[p]+";")}t.pushCode("offset = "+l+";")},e.prototype.generateSaveOffset=function(e){var t=e.generateVariable(this.varName);e.pushCode(t+" = offset")},e}();t.i=l},5682:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;var p=function(){function e(e){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references={},this.imports=[],this.reverseImports=new Map,this.importPath=e}return e.prototype.generateVariable=function(e){var t=[],p=this.scopes[this.scopes.length-1];return t.push.apply(t,p),e&&t.push(e),t.join(".")},e.prototype.generateOption=function(e){switch(typeof e){case"number":return e.toString();case"string":return this.generateVariable(e);case"function":return this.addImport(e)+".call("+this.generateVariable()+", vars)"}},e.prototype.generateError=function(e){this.pushCode("throw new Error("+e+");")},e.prototype.generateTmpVariable=function(){return"$tmp"+this.tmpVariableCount++},e.prototype.pushCode=function(e){this.code+=e+"\n"},e.prototype.pushPath=function(e){e&&this.scopes[this.scopes.length-1].push(e)},e.prototype.popPath=function(e){e&&this.scopes[this.scopes.length-1].pop()},e.prototype.pushScope=function(e){this.scopes.push([e])},e.prototype.popScope=function(){this.scopes.pop()},e.prototype.addImport=function(e){if(!this.importPath)return"("+e+")";var t=this.reverseImports.get(e);return t||(t=this.imports.push(e)-1,this.reverseImports.set(e,t)),this.importPath+"["+t+"]"},e.prototype.addReference=function(e){this.references[e]||(this.references[e]={resolved:!1,requested:!1})},e.prototype.markResolved=function(e){this.references[e].resolved=!0},e.prototype.markRequested=function(e){var t=this;e.forEach((function(e){t.references[e].requested=!0}))},e.prototype.getUnresolvedReferences=function(){var e=this.references;return Object.keys(this.references).filter((function(t){return!e[t].resolved&&!e[t].requested}))},e}();t.Context=p},3144:(e,t,p)=>{"use strict";var r=p(6743),o=p(1002),i=p(76),s=p(7119);e.exports=s||r.call(i,o)},2205:(e,t,p)=>{"use strict";var r=p(6743),o=p(1002),i=p(3144);e.exports=function(){return i(r,o,arguments)}},1002:e=>{"use strict";e.exports=Function.prototype.apply},76:e=>{"use strict";e.exports=Function.prototype.call},3126:(e,t,p)=>{"use strict";var r=p(6743),o=p(9675),i=p(76),s=p(3144);e.exports=function(e){if(e.length<1||"function"!=typeof e[0])throw new o("a function is required");return s(r,i,e)}},7119:e=>{"use strict";e.exports="undefined"!=typeof Reflect&&Reflect&&Reflect.apply},8075:(e,t,p)=>{"use strict";var r=p(453),o=p(487),i=o(r("String.prototype.indexOf"));e.exports=function(e,t){var p=r(e,!!t);return"function"==typeof p&&i(e,".prototype.")>-1?o(p):p}},487:(e,t,p)=>{"use strict";var r=p(6897),o=p(655),i=p(3126),s=p(2205);e.exports=function(e){var t=i(arguments),p=e.length-(arguments.length-1);return r(t,1+(p>0?p:0),!0)},o?o(e.exports,"apply",{value:s}):e.exports.apply=s},6556:(e,t,p)=>{"use strict";var r=p(453),o=p(3126),i=o([r("%String.prototype.indexOf%")]);e.exports=function(e,t){var p=r(e,!!t);return"function"==typeof p&&i(e,".prototype.")>-1?o([p]):p}},5971:e=>{function t(e){if(e)return function(e){return Object.assign(e,t.prototype),e._callbacks=new Map,e}(e);this._callbacks=new Map}t.prototype.on=function(e,t){const p=this._callbacks.get(e)??[];return p.push(t),this._callbacks.set(e,p),this},t.prototype.once=function(e,t){const p=(...r)=>{this.off(e,p),t.apply(this,r)};return p.fn=t,this.on(e,p),this},t.prototype.off=function(e,t){if(void 0===e&&void 0===t)return this._callbacks.clear(),this;if(void 0===t)return this._callbacks.delete(e),this;const p=this._callbacks.get(e);if(p){for(const[e,r]of p.entries())if(r===t||r.fn===t){p.splice(e,1);break}0===p.length?this._callbacks.delete(e):this._callbacks.set(e,p)}return this},t.prototype.emit=function(e,...t){const p=this._callbacks.get(e);if(p){const e=[...p];for(const p of e)p.apply(this,t)}return this},t.prototype.listeners=function(e){return this._callbacks.get(e)??[]},t.prototype.listenerCount=function(e){if(e)return this.listeners(e).length;let t=0;for(const e of this._callbacks.values())t+=e.length;return t},t.prototype.hasListeners=function(e){return this.listenerCount(e)>0},t.prototype.addEventListener=t.prototype.on,t.prototype.removeListener=t.prototype.off,t.prototype.removeEventListener=t.prototype.off,t.prototype.removeAllListeners=t.prototype.off,e.exports=t},7898:(e,t,p)=>{t.UINT32=p(741),t.UINT64=p(174)},741:function(e,t){var p;!function(){function r(e,t){return this instanceof r?(this._low=0,this._high=0,this.remainder=null,void 0===t?i.call(this,e):"string"==typeof e?s.call(this,e,t):void o.call(this,e,t)):new r(e,t)}function o(e,t){return this._low=0|e,this._high=0|t,this}function i(e){return this._low=65535&e,this._high=e>>>16,this}function s(e,t){var p=parseInt(e,t||10);return this._low=65535&p,this._high=p>>>16,this}r(Math.pow(36,5)),r(Math.pow(16,7)),r(Math.pow(10,9)),r(Math.pow(2,30)),r(36),r(16),r(10),r(2),r.prototype.fromBits=o,r.prototype.fromNumber=i,r.prototype.fromString=s,r.prototype.toNumber=function(){return 65536*this._high+this._low},r.prototype.toString=function(e){return this.toNumber().toString(e||10)},r.prototype.add=function(e){var t=this._low+e._low,p=t>>>16;return p+=this._high+e._high,this._low=65535&t,this._high=65535&p,this},r.prototype.subtract=function(e){return this.add(e.clone().negate())},r.prototype.multiply=function(e){var t,p,r=this._high,o=this._low,i=e._high,s=e._low;return t=(p=o*s)>>>16,t+=r*s,t&=65535,t+=o*i,this._low=65535&p,this._high=65535&t,this},r.prototype.div=function(e){if(0==e._low&&0==e._high)throw Error("division by zero");if(0==e._high&&1==e._low)return this.remainder=new r(0),this;if(e.gt(this))return this.remainder=this.clone(),this._low=0,this._high=0,this;if(this.eq(e))return this.remainder=new r(0),this._low=1,this._high=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._low=0,this._high=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=16?this._high|=1<>>16)&65535,this},r.prototype.equals=r.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},r.prototype.greaterThan=r.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},r.prototype.lessThan=r.prototype.lt=function(e){return this._highe._high)&&this._low16?(this._low=this._high>>e-16,this._high=0):16==e?(this._low=this._high,this._high=0):(this._low=this._low>>e|this._high<<16-e&65535,this._high>>=e),this},r.prototype.shiftLeft=r.prototype.shiftl=function(e,t){return e>16?(this._high=this._low<>16-e,this._low=this._low<>>32-e,this._low=65535&t,this._high=t>>>16,this},r.prototype.rotateRight=r.prototype.rotr=function(e){var t=this._high<<16|this._low;return t=t>>>e|t<<32-e,this._low=65535&t,this._high=t>>>16,this},r.prototype.clone=function(){return new r(this._low,this._high)},void 0===(p=function(){return r}.apply(t,[]))||(e.exports=p)}()},174:function(e,t){var p;!function(){var r={16:i(Math.pow(16,5)),10:i(Math.pow(10,5)),2:i(Math.pow(2,5))},o={16:i(16),10:i(10),2:i(2)};function i(e,t,p,r){return this instanceof i?(this.remainder=null,"string"==typeof e?a.call(this,e,t):void 0===t?n.call(this,e):void s.apply(this,arguments)):new i(e,t,p,r)}function s(e,t,p,r){return void 0===p?(this._a00=65535&e,this._a16=e>>>16,this._a32=65535&t,this._a48=t>>>16,this):(this._a00=0|e,this._a16=0|t,this._a32=0|p,this._a48=0|r,this)}function n(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function a(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var p=r[t]||new i(Math.pow(t,5)),o=0,s=e.length;o=0&&(p.div(t),r[s]=p.remainder.toNumber().toString(e),p.gt(t));s--);return r[s-1]=p.toNumber().toString(e),r.join("")},i.prototype.add=function(e){var t=this._a00+e._a00,p=t>>>16,r=(p+=this._a16+e._a16)>>>16,o=(r+=this._a32+e._a32)>>>16;return o+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&p,this._a32=65535&r,this._a48=65535&o,this},i.prototype.subtract=function(e){return this.add(e.clone().negate())},i.prototype.multiply=function(e){var t=this._a00,p=this._a16,r=this._a32,o=this._a48,i=e._a00,s=e._a16,n=e._a32,a=t*i,l=a>>>16,c=(l+=t*s)>>>16;l&=65535,c+=(l+=p*i)>>>16;var u=(c+=t*n)>>>16;return c&=65535,u+=(c+=p*s)>>>16,c&=65535,u+=(c+=r*i)>>>16,u+=t*e._a48,u&=65535,u+=p*n,u&=65535,u+=r*s,u&=65535,u+=o*i,this._a00=65535&a,this._a16=65535&l,this._a32=65535&c,this._a48=65535&u,this},i.prototype.div=function(e){if(0==e._a16&&0==e._a32&&0==e._a48){if(0==e._a00)throw Error("division by zero");if(1==e._a00)return this.remainder=new i(0),this}if(e.gt(this))return this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0,this;if(this.eq(e))return this.remainder=new i(0),this._a00=1,this._a16=0,this._a32=0,this._a48=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=48?this._a48|=1<=32?this._a32|=1<=16?this._a16|=1<>>16),this._a16=65535&e,e=(65535&~this._a32)+(e>>>16),this._a32=65535&e,this._a48=~this._a48+(e>>>16)&65535,this},i.prototype.equals=i.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},i.prototype.greaterThan=i.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},i.prototype.lessThan=i.prototype.lt=function(e){return this._a48e._a48)&&(this._a32e._a32)&&(this._a16e._a16)&&this._a00=48?(this._a00=this._a48>>e-48,this._a16=0,this._a32=0,this._a48=0):e>=32?(e-=32,this._a00=65535&(this._a32>>e|this._a48<<16-e),this._a16=this._a48>>e&65535,this._a32=0,this._a48=0):e>=16?(e-=16,this._a00=65535&(this._a16>>e|this._a32<<16-e),this._a16=65535&(this._a32>>e|this._a48<<16-e),this._a32=this._a48>>e&65535,this._a48=0):(this._a00=65535&(this._a00>>e|this._a16<<16-e),this._a16=65535&(this._a16>>e|this._a32<<16-e),this._a32=65535&(this._a32>>e|this._a48<<16-e),this._a48=this._a48>>e&65535),this},i.prototype.shiftLeft=i.prototype.shiftl=function(e,t){return(e%=64)>=48?(this._a48=this._a00<=32?(e-=32,this._a48=this._a16<>16-e,this._a32=this._a00<=16?(e-=16,this._a48=this._a32<>16-e,this._a32=65535&(this._a16<>16-e),this._a16=this._a00<>16-e,this._a32=65535&(this._a32<>16-e),this._a16=65535&(this._a16<>16-e),this._a00=this._a00<=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p<>>32-e,i=r<>>32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},i.prototype.rotateRight=i.prototype.rotr=function(e){if(0==(e%=64))return this;if(e>=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p>>>e|r<<32-e,i=r>>>e|p<<32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},i.prototype.clone=function(){return new i(this._a00,this._a16,this._a32,this._a48)},void 0===(p=function(){return i}.apply(t,[]))||(e.exports=p)}()},41:(e,t,p)=>{"use strict";var r=p(655),o=p(8068),i=p(9675),s=p(5795);e.exports=function(e,t,p){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new i("`obj` must be an object or a function`");if("string"!=typeof t&&"symbol"!=typeof t)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var n=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,c=arguments.length>6&&arguments[6],u=!!s&&s(e,t);if(r)r(e,t,{configurable:null===l&&u?u.configurable:!l,enumerable:null===n&&u?u.enumerable:!n,value:p,writable:null===a&&u?u.writable:!a});else{if(!c&&(n||a||l))throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=p}}},8452:(e,t,p)=>{"use strict";var r=p(1189),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,s=Array.prototype.concat,n=p(41),a=p(592)(),l=function(e,t,p,r){if(t in e)if(!0===r){if(e[t]===p)return}else if("function"!=typeof(o=r)||"[object Function]"!==i.call(o)||!r())return;var o;a?n(e,t,p,!0):n(e,t,p)},c=function(e,t){var p=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=s.call(i,Object.getOwnPropertySymbols(t)));for(var n=0;n{"use strict";var r,o=p(3126),i=p(5795);try{r=[].__proto__===Array.prototype}catch(e){if(!e||"object"!=typeof e||!("code"in e)||"ERR_PROTO_ACCESS"!==e.code)throw e}var s=!!r&&i&&i(Object.prototype,"__proto__"),n=Object,a=n.getPrototypeOf;e.exports=s&&"function"==typeof s.get?o([s.get]):"function"==typeof a&&function(e){return a(null==e?e:n(e))}},655:e=>{"use strict";var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch(e){t=!1}e.exports=t},1237:e=>{"use strict";e.exports=EvalError},9383:e=>{"use strict";e.exports=Error},9290:e=>{"use strict";e.exports=RangeError},9538:e=>{"use strict";e.exports=ReferenceError},8068:e=>{"use strict";e.exports=SyntaxError},9675:e=>{"use strict";e.exports=TypeError},5345:e=>{"use strict";e.exports=URIError},9612:e=>{"use strict";e.exports=Object},9160:function(e,t,p){!function(e){"use strict";function t(e){for(var t=0,p=Math.min(65536,e.length+1),r=new Uint16Array(p),o=[],i=0;;){var s=t=p-1){var n=r.subarray(0,i);if(o.push(String.fromCharCode.apply(null,n)),!s)return o.join("");e=e.subarray(t),t=0,i=0}var a=e[t++];if(128&a){if(192==(224&a)){var l=63&e[t++];r[i++]=(31&a)<<6|l}else if(224==(240&a)){l=63&e[t++];var c=63&e[t++];r[i++]=(31&a)<<12|l<<6|c}else if(240==(248&a)){var u=(7&a)<<18|(l=63&e[t++])<<12|(c=63&e[t++])<<6|63&e[t++];u>65535&&(u-=65536,r[i++]=u>>>10&1023|55296,u=56320|1023&u),r[i++]=u}}else r[i++]=a}}var p="Failed to ",r=function(e,t,r){if(e)throw new Error("".concat(p).concat(t,": the '").concat(r,"' option is unsupported."))},o="function"==typeof Buffer&&Buffer.from,i=o?function(e){return Buffer.from(e)}:function(e){for(var t=0,p=e.length,r=0,o=Math.max(32,p+(p>>>1)+7),i=new Uint8Array(o>>>3<<3);t=55296&&s<=56319){if(t=55296&&s<=56319)continue}if(r+4>i.length){o+=8,o=(o*=1+t/e.length*2)>>>3<<3;var a=new Uint8Array(o);a.set(i),i=a}if(4294967168&s){if(4294965248&s)if(4294901760&s){if(4292870144&s)continue;i[r++]=s>>>18&7|240,i[r++]=s>>>12&63|128,i[r++]=s>>>6&63|128}else i[r++]=s>>>12&15|224,i[r++]=s>>>6&63|128;else i[r++]=s>>>6&31|192;i[r++]=63&s|128}else i[r++]=s}return i.slice?i.slice(0,r):i.subarray(0,r)};function s(){this.encoding="utf-8"}s.prototype.encode=function(e,t){return r(t&&t.stream,"encode","stream"),i(e)};var n=!o&&"function"==typeof Blob&&"function"==typeof URL&&"function"==typeof URL.createObjectURL,a=["utf-8","utf8","unicode-1-1-utf-8"],l=t;o?l=function(e,t){return(e instanceof Buffer?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength)).toString(t)}:n&&(l=function(e){try{return function(e){var t;try{var p=new Blob([e],{type:"text/plain;charset=UTF-8"});t=URL.createObjectURL(p);var r=new XMLHttpRequest;return r.open("GET",t,!1),r.send(),r.responseText}finally{t&&URL.revokeObjectURL(t)}}(e)}catch(p){return t(e)}});var c="construct 'TextDecoder'",u="".concat(p," ").concat(c,": the ");function y(e,t){if(r(t&&t.fatal,c,"fatal"),e=e||"utf-8",!(o?Buffer.isEncoding(e):-1!==a.indexOf(e.toLowerCase())))throw new RangeError("".concat(u," encoding label provided ('").concat(e,"') is invalid."));this.encoding=e,this.fatal=!1,this.ignoreBOM=!1}y.prototype.decode=function(e,t){var p;return r(t&&t.stream,"decode","stream"),p=e instanceof Uint8Array?e:e.buffer instanceof ArrayBuffer?new Uint8Array(e.buffer):new Uint8Array(e),l(p,this.encoding)},e.TextEncoder=e.TextEncoder||s,e.TextDecoder=e.TextDecoder||y}("undefined"!=typeof window?window:void 0!==p.g?p.g:this)},2682:(e,t,p)=>{"use strict";var r=p(9600),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty;e.exports=function(e,t,p){if(!r(t))throw new TypeError("iterator must be a function");var s;arguments.length>=3&&(s=p),"[object Array]"===o.call(e)?function(e,t,p){for(var r=0,o=e.length;r{"use strict";var t=Object.prototype.toString,p=Math.max,r=function(e,t){for(var p=[],r=0;r{"use strict";var r=p(9353);e.exports=Function.prototype.bind||r},453:(e,t,p)=>{"use strict";var r,o=p(9612),i=p(9383),s=p(1237),n=p(9290),a=p(9538),l=p(8068),c=p(9675),u=p(5345),y=p(1514),f=p(8968),d=p(6188),h=p(8002),_=p(5880),S=p(414),g=p(3093),w=Function,E=function(e){try{return w('"use strict"; return ('+e+").constructor;")()}catch(e){}},m=p(5795),b=p(655),I=function(){throw new c},L=m?function(){try{return I}catch(e){try{return m(arguments,"callee").get}catch(e){return I}}}():I,T=p(4039)(),v=p(3628),U=p(1064),O=p(8648),M=p(1002),D=p(76),A={},G="undefined"!=typeof Uint8Array&&v?v(Uint8Array):r,C={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":T&&v?v([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":A,"%AsyncGenerator%":A,"%AsyncGeneratorFunction%":A,"%AsyncIteratorPrototype%":A,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":s,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":w,"%GeneratorFunction%":A,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":T&&v?v(v([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&T&&v?v((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":o,"%Object.getOwnPropertyDescriptor%":m,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":n,"%ReferenceError%":a,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&T&&v?v((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":T&&v?v(""[Symbol.iterator]()):r,"%Symbol%":T?Symbol:r,"%SyntaxError%":l,"%ThrowTypeError%":L,"%TypedArray%":G,"%TypeError%":c,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":u,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet,"%Function.prototype.call%":D,"%Function.prototype.apply%":M,"%Object.defineProperty%":b,"%Object.getPrototypeOf%":U,"%Math.abs%":y,"%Math.floor%":f,"%Math.max%":d,"%Math.min%":h,"%Math.pow%":_,"%Math.round%":S,"%Math.sign%":g,"%Reflect.getPrototypeOf%":O};if(v)try{null.error}catch(e){var j=v(v(e));C["%Error.prototype%"]=j}var P=function e(t){var p;if("%AsyncFunction%"===t)p=E("async function () {}");else if("%GeneratorFunction%"===t)p=E("function* () {}");else if("%AsyncGeneratorFunction%"===t)p=E("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(p=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&v&&(p=v(o.prototype))}return C[t]=p,p},R={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},N=p(6743),x=p(9957),F=N.call(D,Array.prototype.concat),k=N.call(M,Array.prototype.splice),B=N.call(D,String.prototype.replace),q=N.call(D,String.prototype.slice),z=N.call(D,RegExp.prototype.exec),V=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,H=/\\(\\)?/g,$=function(e,t){var p,r=e;if(x(R,r)&&(r="%"+(p=R[r])[0]+"%"),x(C,r)){var o=C[r];if(o===A&&(o=P(r)),void 0===o&&!t)throw new c("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:p,name:r,value:o}}throw new l("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new c('"allowMissing" argument must be a boolean');if(null===z(/^%?[^%]*%?$/,e))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var p=function(e){var t=q(e,0,1),p=q(e,-1);if("%"===t&&"%"!==p)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===p&&"%"!==t)throw new l("invalid intrinsic syntax, expected opening `%`");var r=[];return B(e,V,(function(e,t,p,o){r[r.length]=p?B(o,H,"$1"):t||e})),r}(e),r=p.length>0?p[0]:"",o=$("%"+r+"%",t),i=o.name,s=o.value,n=!1,a=o.alias;a&&(r=a[0],k(p,F([0,1],a)));for(var u=1,y=!0;u=p.length){var _=m(s,f);s=(y=!!_)&&"get"in _&&!("originalValue"in _.get)?_.get:s[f]}else y=x(s,f),s=s[f];y&&!n&&(C[i]=s)}}return s}},1064:(e,t,p)=>{"use strict";var r=p(9612);e.exports=r.getPrototypeOf||null},8648:e=>{"use strict";e.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},3628:(e,t,p)=>{"use strict";var r=p(8648),o=p(1064),i=p(7176);e.exports=r?function(e){return r(e)}:o?function(e){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("getProto: not an object");return o(e)}:i?function(e){return i(e)}:null},6549:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},5795:(e,t,p)=>{"use strict";var r=p(6549);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},592:(e,t,p)=>{"use strict";var r=p(655),o=function(){return!!r};o.hasArrayLengthDefineBug=function(){if(!r)return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=o},4039:(e,t,p)=>{"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=p(1333);e.exports=function(){return"function"==typeof r&&"function"==typeof Symbol&&"symbol"==typeof r("foo")&&"symbol"==typeof Symbol("bar")&&o()}},1333:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),p=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(p))return!1;for(var r in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var o=Object.getOwnPropertySymbols(e);if(1!==o.length||o[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},9092:(e,t,p)=>{"use strict";var r=p(1333);e.exports=function(){return r()&&!!Symbol.toStringTag}},9957:(e,t,p)=>{"use strict";var r=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=p(6743);e.exports=i.call(r,o)},6698:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var p=function(){};p.prototype=t.prototype,e.prototype=new p,e.prototype.constructor=e}}},7244:(e,t,p)=>{"use strict";var r=p(9092)(),o=p(6556)("Object.prototype.toString"),i=function(e){return!(r&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===o(e)},s=function(e){return!!i(e)||null!==e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==o(e)&&"callee"in e&&"[object Function]"===o(e.callee)},n=function(){return i(arguments)}();i.isLegacyArguments=s,e.exports=n?i:s},9600:e=>{"use strict";var t,p,r=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw p}}),p={},o((function(){throw 42}),null,t)}catch(e){e!==p&&(o=null)}else o=null;var i=/^\s*class\b/,s=function(e){try{var t=r.call(e);return i.test(t)}catch(e){return!1}},n=function(e){try{return!s(e)&&(r.call(e),!0)}catch(e){return!1}},a=Object.prototype.toString,l="function"==typeof Symbol&&!!Symbol.toStringTag,c=!(0 in[,]),u=function(){return!1};if("object"==typeof document){var y=document.all;a.call(y)===a.call(document.all)&&(u=function(e){if((c||!e)&&(void 0===e||"object"==typeof e))try{var t=a.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=o?function(e){if(u(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{o(e,null,t)}catch(e){if(e!==p)return!1}return!s(e)&&n(e)}:function(e){if(u(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(l)return n(e);if(s(e))return!1;var t=a.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&n(e)}},8184:(e,t,p)=>{"use strict";var r,o=p(6556),i=p(9721)(/^\s*(?:function)?\*/),s=p(9092)(),n=p(3628),a=o("Object.prototype.toString"),l=o("Function.prototype.toString");e.exports=function(e){if("function"!=typeof e)return!1;if(i(l(e)))return!0;if(!s)return"[object GeneratorFunction]"===a(e);if(!n)return!1;if(void 0===r){var t=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(e){}}();r=!!t&&n(t)}return n(e)===r}},3003:e=>{"use strict";e.exports=function(e){return e!=e}},4133:(e,t,p)=>{"use strict";var r=p(487),o=p(8452),i=p(3003),s=p(6642),n=p(2464),a=r(s(),Number);o(a,{getPolyfill:s,implementation:i,shim:n}),e.exports=a},6642:(e,t,p)=>{"use strict";var r=p(3003);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:r}},2464:(e,t,p)=>{"use strict";var r=p(8452),o=p(6642);e.exports=function(){var e=o();return r(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},4035:(e,t,p)=>{"use strict";var r,o=p(6556),i=p(9092)(),s=p(9957),n=p(5795);if(i){var a=o("RegExp.prototype.exec"),l={},c=function(){throw l},u={toString:c,valueOf:c};"symbol"==typeof Symbol.toPrimitive&&(u[Symbol.toPrimitive]=c),r=function(e){if(!e||"object"!=typeof e)return!1;var t=n(e,"lastIndex");if(!t||!s(t,"value"))return!1;try{a(e,u)}catch(e){return e===l}}}else{var y=o("Object.prototype.toString");r=function(e){return!(!e||"object"!=typeof e&&"function"!=typeof e)&&"[object RegExp]"===y(e)}}e.exports=r},5680:(e,t,p)=>{"use strict";var r=p(5767);e.exports=function(e){return!!r(e)}},1514:e=>{"use strict";e.exports=Math.abs},8968:e=>{"use strict";e.exports=Math.floor},4459:e=>{"use strict";e.exports=Number.isNaN||function(e){return e!=e}},6188:e=>{"use strict";e.exports=Math.max},8002:e=>{"use strict";e.exports=Math.min},5880:e=>{"use strict";e.exports=Math.pow},414:e=>{"use strict";e.exports=Math.round},3093:(e,t,p)=>{"use strict";var r=p(4459);e.exports=function(e){return r(e)||0===e?e:e<0?-1:1}},6468:e=>{for(var t=4294967296,p=[],r=0;r<256;r++)p[r]=(r>15?"":"0")+r.toString(16);var o=e.exports=function(e,t){e instanceof Buffer?(this.buffer=e,this.offset=t||0):"[object Uint8Array]"==Object.prototype.toString.call(e)?(this.buffer=new Buffer(e),this.offset=t||0):(this.buffer=this.buffer||new Buffer(8),this.offset=0,this.setValue.apply(this,arguments))};o.MAX_INT=Math.pow(2,53),o.MIN_INT=-Math.pow(2,53),o.prototype={constructor:o,_2scomp:function(){for(var e=this.buffer,t=this.offset,p=1,r=t+7;r>=t;r--){var o=(255^e[r])+p;e[r]=255&o,p=o>>8}},setValue:function(e,p){var r=!1;if(1==arguments.length)if("number"==typeof e){if(r=e<0,p=(e=Math.abs(e))%t,(e/=t)>t)throw new RangeError(e+" is outside Int64 range");e|=0}else{if("string"!=typeof e)throw new Error(e+" must be a Number or String");p=(e=(e+"").replace(/^0x/,"")).substr(-8),e=e.length>8?e.substr(0,e.length-8):"",e=parseInt(e,16),p=parseInt(p,16)}for(var o=this.buffer,i=this.offset,s=7;s>=0;s--)o[i+s]=255&p,p=4==s?e:p>>>8;r&&this._2scomp()},toNumber:function(e){for(var t=this.buffer,p=this.offset,r=128&t[p],i=0,s=1,n=7,a=1;n>=0;n--,a*=256){var l=t[p+n];r&&(s=(l=(255^l)+s)>>8,l&=255),i+=l*a}return!e&&i>=o.MAX_INT?r?-1/0:1/0:r?-i:i},valueOf:function(){return this.toNumber(!1)},toString:function(e){return this.valueOf().toString(e||10)},toOctetString:function(e){for(var t=new Array(8),r=this.buffer,o=this.offset,i=0;i<8;i++)t[i]=p[r[o+i]];return t.join(e||"")},toBuffer:function(e){if(e&&0===this.offset)return this.buffer;var t=new Buffer(8);return this.buffer.copy(t,0,this.offset,this.offset+8),t},copy:function(e,t){this.buffer.copy(e,t||0,this.offset,this.offset+8)},compare:function(e){if((128&this.buffer[this.offset])!=(128&e.buffer[e.offset]))return e.buffer[e.offset]-this.buffer[this.offset];for(var t=0;t<8;t++)if(this.buffer[this.offset+t]!==e.buffer[e.offset+t])return this.buffer[this.offset+t]-e.buffer[e.offset+t];return 0},equals:function(e){return 0===this.compare(e)},inspect:function(){return"[Int64 value:"+this+" octets:"+this.toOctetString(" ")+"]"}}},9211:e=>{"use strict";var t=function(e){return e!=e};e.exports=function(e,p){return 0===e&&0===p?1/e==1/p:e===p||!(!t(e)||!t(p))}},7653:(e,t,p)=>{"use strict";var r=p(8452),o=p(487),i=p(9211),s=p(9394),n=p(6576),a=o(s(),Object);r(a,{getPolyfill:s,implementation:i,shim:n}),e.exports=a},9394:(e,t,p)=>{"use strict";var r=p(9211);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},6576:(e,t,p)=>{"use strict";var r=p(9394),o=p(8452);e.exports=function(){var e=r();return o(Object,{is:e},{is:function(){return Object.is!==e}}),e}},8875:(e,t,p)=>{"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,s=p(1093),n=Object.prototype.propertyIsEnumerable,a=!n.call({toString:null},"toString"),l=n.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(e){var t=e.constructor;return t&&t.prototype===e},y={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!y["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{u(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,p="[object Function]"===i.call(e),r=s(e),n=t&&"[object String]"===i.call(e),y=[];if(!t&&!p&&!r)throw new TypeError("Object.keys called on a non-object");var d=l&&p;if(n&&e.length>0&&!o.call(e,0))for(var h=0;h0)for(var _=0;_{"use strict";var r=Array.prototype.slice,o=p(1093),i=Object.keys,s=i?function(e){return i(e)}:p(8875),n=Object.keys;s.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?n(r.call(e)):n(e)})}else Object.keys=s;return Object.keys||s},e.exports=s},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var p=t.call(e),r="[object Arguments]"===p;return r||(r="[object Array]"!==p&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},8403:(e,t,p)=>{"use strict";var r=p(1189),o=p(1333)(),i=p(6556),s=p(9612),n=i("Array.prototype.push"),a=i("Object.prototype.propertyIsEnumerable"),l=o?s.getOwnPropertySymbols:null;e.exports=function(e,t){if(null==e)throw new TypeError("target must be an object");var p=s(e);if(1===arguments.length)return p;for(var i=1;i{"use strict";var r=p(8403);e.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),p={},r=0;r{"use strict";var r="win32"===process.platform,o=p(537);function i(e,t){for(var p=[],r=0;r=0&&!e[r];r--);return 0===p&&r===t?e:p>r?[]:e.slice(p,r+1)}var n=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,a=/^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/,l={};function c(e){var t=n.exec(e),p=(t[1]||"")+(t[2]||""),r=t[3]||"",o=a.exec(r);return[p,o[1],o[2],o[3]]}function u(e){var t=n.exec(e),p=t[1]||"",r=!!p&&":"!==p[1];return{device:p,isUnc:r,isAbsolute:r||!!t[2],tail:t[3]}}function y(e){return"\\\\"+e.replace(/^[\\\/]+/,"").replace(/[\\\/]+/g,"\\")}l.resolve=function(){for(var e="",t="",p=!1,r=arguments.length-1;r>=-1;r--){var s;if(r>=0?s=arguments[r]:e?(s=process.env["="+e])&&s.substr(0,3).toLowerCase()===e.toLowerCase()+"\\"||(s=e+"\\"):s=process.cwd(),!o.isString(s))throw new TypeError("Arguments to path.resolve must be strings");if(s){var n=u(s),a=n.device,l=n.isUnc,c=n.isAbsolute,f=n.tail;if((!a||!e||a.toLowerCase()===e.toLowerCase())&&(e||(e=a),p||(t=f+"\\"+t,p=c),e&&p))break}}return l&&(e=y(e)),e+(p?"\\":"")+(t=i(t.split(/[\\\/]+/),!p).join("\\"))||"."},l.normalize=function(e){var t=u(e),p=t.device,r=t.isUnc,o=t.isAbsolute,s=t.tail,n=/[\\\/]$/.test(s);return(s=i(s.split(/[\\\/]+/),!o).join("\\"))||o||(s="."),s&&n&&(s+="\\"),r&&(p=y(p)),p+(o?"\\":"")+s},l.isAbsolute=function(e){return u(e).isAbsolute},l.join=function(){for(var e=[],t=0;t=-1&&!t;p--){var r=p>=0?arguments[p]:process.cwd();if(!o.isString(r))throw new TypeError("Arguments to path.resolve must be strings");r&&(e=r+"/"+e,t="/"===r[0])}return(t?"/":"")+(e=i(e.split("/"),!t).join("/"))||"."},d.normalize=function(e){var t=d.isAbsolute(e),p=e&&"/"===e[e.length-1];return(e=i(e.split("/"),!t).join("/"))||t||(e="."),e&&p&&(e+="/"),(t?"/":"")+e},d.isAbsolute=function(e){return"/"===e.charAt(0)},d.join=function(){for(var e="",t=0;t{"use strict";e.exports=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]},9721:(e,t,p)=>{"use strict";var r=p(6556),o=p(4035),i=r("RegExp.prototype.exec"),s=p(9675);e.exports=function(e){if(!o(e))throw new s("`regex` must be a RegExp");return function(t){return null!==i(e,t)}}},6897:(e,t,p)=>{"use strict";var r=p(453),o=p(41),i=p(592)(),s=p(5795),n=p(9675),a=r("%Math.floor%");e.exports=function(e,t){if("function"!=typeof e)throw new n("`fn` is not a function");if("number"!=typeof t||t<0||t>4294967295||a(t)!==t)throw new n("`length` must be a positive 32-bit integer");var p=arguments.length>2&&!!arguments[2],r=!0,l=!0;if("length"in e&&s){var c=s(e,"length");c&&!c.configurable&&(r=!1),c&&!c.writable&&(l=!1)}return(r||l||!p)&&(i?o(e,"length",t,!0,!0):o(e,"length",t)),e}},4789:(e,t,p)=>{var r=p(5971);function o(){r.call(this)}o.prototype=new r,e.exports=o,o.Stream=o,o.prototype.pipe=function(e,t){var p=this;function r(t){e.writable&&!1===e.write(t)&&p.pause&&p.pause()}function o(){p.readable&&p.resume&&p.resume()}p.on("data",r),e.on("drain",o),e._isStdio||t&&!1===t.end||(p.on("end",s),p.on("close",n));var i=!1;function s(){i||(i=!0,e.end())}function n(){i||(i=!0,"function"==typeof e.destroy&&e.destroy())}function a(e){if(l(),!this.hasListeners("error"))throw e}function l(){p.off("data",r),e.off("drain",o),p.off("end",s),p.off("close",n),p.off("error",a),e.off("error",a),p.off("end",l),p.off("close",l),e.off("end",l),e.off("close",l)}return p.on("error",a),e.on("error",a),p.on("end",l),p.on("close",l),e.on("end",l),e.on("close",l),e.emit("pipe",p),e}},6622:e=>{"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var p=function(){};p.prototype=t.prototype,e.prototype=new p,e.prototype.constructor=e}},1135:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},537:(e,t,p)=>{var r=/%[sdj%]/g;t.format=function(e){if(!_(e)){for(var t=[],p=0;p=i)return e;switch(e){case"%s":return String(o[p++]);case"%d":return Number(o[p++]);case"%j":try{return JSON.stringify(o[p++])}catch(e){return"[Circular]"}default:return e}})),a=o[p];p=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),f(p)?r.showHidden=p:p&&t._extend(r,p),S(r.showHidden)&&(r.showHidden=!1),S(r.depth)&&(r.depth=2),S(r.colors)&&(r.colors=!1),S(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=n),l(r,e,r.depth)}function n(e,t){var p=s.styles[t];return p?"["+s.colors[p][0]+"m"+e+"["+s.colors[p][1]+"m":e}function a(e,t){return e}function l(e,p,r){if(e.customInspect&&p&&b(p.inspect)&&p.inspect!==t.inspect&&(!p.constructor||p.constructor.prototype!==p)){var o=p.inspect(r,e);return _(o)||(o=l(e,o,r)),o}var i=function(e,t){if(S(t))return e.stylize("undefined","undefined");if(_(t)){var p="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(p,"string")}return h(t)?e.stylize(""+t,"number"):f(t)?e.stylize(""+t,"boolean"):d(t)?e.stylize("null","null"):void 0}(e,p);if(i)return i;var s=Object.keys(p),n=function(e){var t={};return e.forEach((function(e,p){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(p)),m(p)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return c(p);if(0===s.length){if(b(p)){var a=p.name?": "+p.name:"";return e.stylize("[Function"+a+"]","special")}if(g(p))return e.stylize(RegExp.prototype.toString.call(p),"regexp");if(E(p))return e.stylize(Date.prototype.toString.call(p),"date");if(m(p))return c(p)}var w,I="",L=!1,T=["{","}"];return y(p)&&(L=!0,T=["[","]"]),b(p)&&(I=" [Function"+(p.name?": "+p.name:"")+"]"),g(p)&&(I=" "+RegExp.prototype.toString.call(p)),E(p)&&(I=" "+Date.prototype.toUTCString.call(p)),m(p)&&(I=" "+c(p)),0!==s.length||L&&0!=p.length?r<0?g(p)?e.stylize(RegExp.prototype.toString.call(p),"regexp"):e.stylize("[Object]","special"):(e.seen.push(p),w=L?function(e,t,p,r,o){for(var i=[],s=0,n=t.length;s60?p[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+p[1]:p[0]+t+" "+e.join(", ")+" "+p[1]}(w,I,T)):T[0]+I+T[1]}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function u(e,t,p,r,o,i){var s,n,a;if((a=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?n=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(n=e.stylize("[Setter]","special")),v(r,o)||(s="["+o+"]"),n||(e.seen.indexOf(a.value)<0?(n=d(p)?l(e,a.value,null):l(e,a.value,p-1)).indexOf("\n")>-1&&(n=i?n.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+n.split("\n").map((function(e){return" "+e})).join("\n")):n=e.stylize("[Circular]","special")),S(s)){if(i&&o.match(/^\d+$/))return n;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+n}function y(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function d(e){return null===e}function h(e){return"number"==typeof e}function _(e){return"string"==typeof e}function S(e){return void 0===e}function g(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function m(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function b(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function L(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(S(o)&&(o=process.env.NODE_DEBUG||""),e=e.toUpperCase(),!i[e])if(new RegExp("\\b"+e+"\\b","i").test(o)){var p=process.pid;i[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,p,r)}}else i[e]=function(){};return i[e]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=y,t.isBoolean=f,t.isNull=d,t.isNullOrUndefined=function(e){return null==e},t.isNumber=h,t.isString=_,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=S,t.isRegExp=g,t.isObject=w,t.isDate=E,t.isError=m,t.isFunction=b,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=p(1135);var T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function v(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,p;console.log("%s - %s",(p=[L((e=new Date).getHours()),L(e.getMinutes()),L(e.getSeconds())].join(":"),[e.getDate(),T[e.getMonth()],p].join(" ")),t.format.apply(t,arguments))},t.inherits=p(6622),t._extend=function(e,t){if(!t||!w(t))return e;for(var p=Object.keys(t),r=p.length;r--;)e[p[r]]=t[p[r]];return e}},5767:(e,t,p)=>{"use strict";var r=p(2682),o=p(9209),i=p(487),s=p(6556),n=p(5795),a=s("Object.prototype.toString"),l=p(9092)(),c="undefined"==typeof globalThis?p.g:globalThis,u=o(),y=s("String.prototype.slice"),f=Object.getPrototypeOf,d=s("Array.prototype.indexOf",!0)||function(e,t){for(var p=0;p-1?t:"Object"===t&&function(e){var t=!1;return r(h,(function(p,r){if(!t)try{p(e),t=y(r,1)}catch(e){}})),t}(e)}return n?function(e){var t=!1;return r(h,(function(p,r){if(!t)try{"$"+p(e)===r&&(t=y(r,1))}catch(e){}})),t}(e):null}},9209:(e,t,p)=>{"use strict";var r=p(6578),o="undefined"==typeof globalThis?p.g:globalThis;e.exports=function(){for(var e=[],t=0;t(e.paths=[],e.children||(e.children=[]),e),p(8248)})(); \ No newline at end of file +(()=>{var e={3322:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=p(278).GnssSignalDep,n=(p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT",this.fields=t||this.parser.parse(e.payload),this});(n.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT",n.prototype.msg_type=47,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:i.prototype.parser}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),n.prototype.fieldSpec.push(["cp","writeFloatLE",4]),n.prototype.fieldSpec.push(["cf","writeFloatLE",4]),n.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_C",a.prototype.msg_type=31,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),a.prototype.fieldSpec.push(["cp","writeFloatLE",4]),a.prototype.fieldSpec.push(["cf","writeFloatLE",4]),a.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_B",l.prototype.msg_type=20,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["snr","writeFloatLE",4]),l.prototype.fieldSpec.push(["cp","writeFloatLE",4]),l.prototype.fieldSpec.push(["cf","writeFloatLE",4]),l.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_A",c.prototype.msg_type=21,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").uint8("prn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["snr","writeFloatLE",4]),c.prototype.fieldSpec.push(["cp","writeFloatLE",4]),c.prototype.fieldSpec.push(["cf","writeFloatLE",4]),c.prototype.fieldSpec.push(["prn","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="AcqSvProfile",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="AcqSvProfile",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:i.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["job_type","writeUInt8",1]),u.prototype.fieldSpec.push(["status","writeUInt8",1]),u.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),u.prototype.fieldSpec.push(["int_time","writeUInt8",1]),u.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),u.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),u.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),u.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf","writeInt32LE",4]),u.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="AcqSvProfileDep",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="AcqSvProfileDep",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:s.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["job_type","writeUInt8",1]),y.prototype.fieldSpec.push(["status","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),y.prototype.fieldSpec.push(["int_time","writeUInt8",1]),y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),y.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),y.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),y.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf","writeInt32LE",4]),y.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE",f.prototype.msg_type=46,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:u.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["acq_sv_profile","array",u.prototype.fieldSpec,function(){return this.fields.array.length},null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",d.prototype.msg_type=30,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["acq_sv_profile","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={47:n,MsgAcqResult:n,31:a,MsgAcqResultDepC:a,20:l,MsgAcqResultDepB:l,21:c,MsgAcqResultDepA:c,AcqSvProfile:u,AcqSvProfileDep:y,46:f,MsgAcqSvProfile:f,30:d,MsgAcqSvProfileDep:d}},6053:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",i.prototype.msg_type=179,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",s.prototype.msg_type=180,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("flags").string("version",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt32LE",4]),s.prototype.fieldSpec.push(["version","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_JUMP_TO_APP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_JUMP_TO_APP",n.prototype.msg_type=177,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("jump"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["jump","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_REQ",a.prototype.msg_type=222,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little"),a.prototype.fieldSpec=[];let l=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_RESP",l.prototype.msg_type=221,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("dna",{length:8,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["dna","array","writeUInt8",function(){return 1},8]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",c.prototype.msg_type=176,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").array("handshake",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["handshake","array","writeUInt8",function(){return 1},null]),e.exports={179:i,MsgBootloaderHandshakeReq:i,180:s,MsgBootloaderHandshakeResp:s,177:n,MsgBootloaderJumpToApp:n,222:a,MsgNapDeviceDnaReq:a,221:l,MsgNapDeviceDnaResp:l,176:c,MsgBootloaderHandshakeDepA:c}},7224:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_EXT_EVENT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_EXT_EVENT",i.prototype.msg_type=257,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags").uint8("pin"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]),i.prototype.fieldSpec.push(["pin","writeUInt8",1]),e.exports={257:i,MsgExtEvent:i}},8986:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_REQ",i.prototype.msg_type=168,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").uint8("chunk_size").string("filename",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),i.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),i.prototype.fieldSpec.push(["chunk_size","writeUInt8",1]),i.prototype.fieldSpec.push(["filename","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_RESP",s.prototype.msg_type=163,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("sequence").array("contents",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),s.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_REQ",n.prototype.msg_type=169,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("dirname",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),n.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),n.prototype.fieldSpec.push(["dirname","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_RESP",a.prototype.msg_type=170,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("sequence").string("contents",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),a.prototype.fieldSpec.push(["contents","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_REMOVE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_REMOVE",l.prototype.msg_type=172,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("filename",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["filename","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_REQ",c.prototype.msg_type=173,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("filename",{greedy:!0}).array("data",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),c.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),c.prototype.fieldSpec.push(["filename","string",null]),c.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_RESP",u.prototype.msg_type=171,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sequence"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_REQ",y.prototype.msg_type=4097,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sequence"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_RESP",f.prototype.msg_type=4098,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("window_size").uint32("batch_size").uint32("fileio_version"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),f.prototype.fieldSpec.push(["window_size","writeUInt32LE",4]),f.prototype.fieldSpec.push(["batch_size","writeUInt32LE",4]),f.prototype.fieldSpec.push(["fileio_version","writeUInt32LE",4]),e.exports={168:i,MsgFileioReadReq:i,163:s,MsgFileioReadResp:s,169:n,MsgFileioReadDirReq:n,170:a,MsgFileioReadDirResp:a,172:l,MsgFileioRemove:l,173:c,MsgFileioWriteReq:c,171:u,MsgFileioWriteResp:u,4097:y,MsgFileioConfigReq:y,4098:f,MsgFileioConfigResp:f}},6667:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_PROGRAM",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_PROGRAM",i.prototype.msg_type=230,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len").array("data",{type:"uint8",length:"addr_len"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["target","writeUInt8",1]),i.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),i.prototype.fieldSpec.push(["addr_len","writeUInt8",1]),i.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},"addr_len"]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_DONE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_DONE",s.prototype.msg_type=224,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("response"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["response","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_REQ",n.prototype.msg_type=231,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["target","writeUInt8",1]),n.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),n.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_RESP",a.prototype.msg_type=225,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["target","writeUInt8",1]),a.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),a.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_ERASE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_ERASE",l.prototype.msg_type=226,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("target").uint32("sector_num"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["target","writeUInt8",1]),l.prototype.fieldSpec.push(["sector_num","writeUInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_LOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_LOCK_SECTOR",c.prototype.msg_type=227,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sector"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_UNLOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_UNLOCK_SECTOR",u.prototype.msg_type=228,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sector"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_REQ",y.prototype.msg_type=232,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_RESP",f.prototype.msg_type=229,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("stm_id",{length:12,type:"uint8"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["stm_id","array","writeUInt8",function(){return 1},12]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",d.prototype.msg_type=243,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["status","array","writeUInt8",function(){return 1},1]),e.exports={230:i,MsgFlashProgram:i,224:s,MsgFlashDone:s,231:n,MsgFlashReadReq:n,225:a,MsgFlashReadResp:a,226:l,MsgFlashErase:l,227:c,MsgStmFlashLockSector:c,228:u,MsgStmFlashUnlockSector:u,232:y,MsgStmUniqueIdReq:y,229:f,MsgStmUniqueIdResp:f,243:d,MsgM25FlashWriteStatus:d}},278:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="GnssSignal",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="GnssSignal",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sat").uint8("code"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sat","writeUInt8",1]),i.prototype.fieldSpec.push(["code","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="SvId",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="SvId",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("satId").uint8("constellation"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["satId","writeUInt8",1]),s.prototype.fieldSpec.push(["constellation","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="GnssSignalDep",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="GnssSignalDep",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("sat").uint8("code").uint8("reserved"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sat","writeUInt16LE",2]),n.prototype.fieldSpec.push(["code","writeUInt8",1]),n.prototype.fieldSpec.push(["reserved","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="GPSTimeDep",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GPSTimeDep",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").uint16("wn"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);let l=function(e,t){return r.call(this,e),this.messageType="GPSTimeSec",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="GPSTimeSec",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("wn"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);let c=function(e,t){return r.call(this,e),this.messageType="GPSTime",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="GPSTime",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").int32("ns_residual").uint16("wn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),c.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);let u=function(e,t){return r.call(this,e),this.messageType="CarrierPhase",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="CarrierPhase",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["i","writeInt32LE",4]),u.prototype.fieldSpec.push(["f","writeUInt8",1]),e.exports={GnssSignal:i,SvId:s,GnssSignalDep:n,GPSTimeDep:a,GPSTimeSec:l,GPSTime:c,CarrierPhase:u}},3276:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_IMU_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_IMU_RAW",i.prototype.msg_type=2304,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("acc_x").int16("acc_y").int16("acc_z").int16("gyr_x").int16("gyr_y").int16("gyr_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["acc_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_z","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_z","writeInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_IMU_AUX",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_IMU_AUX",s.prototype.msg_type=2305,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("imu_type").int16("temp").uint8("imu_conf"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["imu_type","writeUInt8",1]),s.prototype.fieldSpec.push(["temp","writeInt16LE",2]),s.prototype.fieldSpec.push(["imu_conf","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_IMU_COMP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_IMU_COMP",n.prototype.msg_type=2309,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint64("time").uint16("flags").int32("acc_comp_x").int32("acc_comp_y").int32("acc_comp_z").int32("gyr_comp_x").int32("gyr_comp_y").int32("gyr_comp_z"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["time","writeUInt64LE",8]),n.prototype.fieldSpec.push(["flags","writeUInt16LE",2]),n.prototype.fieldSpec.push(["acc_comp_x","writeInt32LE",4]),n.prototype.fieldSpec.push(["acc_comp_y","writeInt32LE",4]),n.prototype.fieldSpec.push(["acc_comp_z","writeInt32LE",4]),n.prototype.fieldSpec.push(["gyr_comp_x","writeInt32LE",4]),n.prototype.fieldSpec.push(["gyr_comp_y","writeInt32LE",4]),n.prototype.fieldSpec.push(["gyr_comp_z","writeInt32LE",4]),e.exports={2304:i,MsgImuRaw:i,2305:s,MsgImuAux:s,2309:n,MsgImuComp:n}},8958:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal,p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec),s=p(278).SvId,n=function(e,t){return r.call(this,e),this.messageType="IntegritySSRHeader",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="IntegritySSRHeader",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),n.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),n.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),n.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),n.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["chain_id","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_HIGH_LEVEL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_HIGH_LEVEL_DEP_A",a.prototype.msg_type=3001,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).nest("corr_time",{type:i.prototype.parser}).uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id").uint8("use_gps_sat").uint8("use_gal_sat").uint8("use_bds_sat").uint8("use_qzss_sat").array("reserved",{length:5,type:"uint8"}).uint8("use_tropo_grid_points").uint8("use_iono_grid_points").uint8("use_iono_tile_sat_los").uint8("use_iono_grid_point_sat_los"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["corr_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),a.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gps_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gal_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_bds_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_qzss_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},5]),a.prototype.fieldSpec.push(["use_tropo_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_tile_sat_los","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_point_sat_los","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_HIGH_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_HIGH_LEVEL",l.prototype.msg_type=3002,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).nest("iono_corr_time",{type:i.prototype.parser}).nest("sat_corr_time",{type:i.prototype.parser}).uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id").uint8("use_gps_sat").uint8("use_gal_sat").uint8("use_bds_sat").uint8("use_qzss_sat").array("reserved",{length:5,type:"uint8"}).uint8("use_tropo_grid_points").uint8("use_iono_grid_points").uint8("use_iono_tile_sat_los").uint8("use_iono_grid_point_sat_los"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["iono_corr_time",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["sat_corr_time",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),l.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),l.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),l.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),l.prototype.fieldSpec.push(["use_gps_sat","writeUInt8",1]),l.prototype.fieldSpec.push(["use_gal_sat","writeUInt8",1]),l.prototype.fieldSpec.push(["use_bds_sat","writeUInt8",1]),l.prototype.fieldSpec.push(["use_qzss_sat","writeUInt8",1]),l.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},5]),l.prototype.fieldSpec.push(["use_tropo_grid_points","writeUInt8",1]),l.prototype.fieldSpec.push(["use_iono_grid_points","writeUInt8",1]),l.prototype.fieldSpec.push(["use_iono_tile_sat_los","writeUInt8",1]),l.prototype.fieldSpec.push(["use_iono_grid_point_sat_los","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_SATELLITES",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_SATELLITES",c.prototype.msg_type=3005,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint8("chain_id").uint8("const_id").uint8("n_faulty_sats").array("faulty_sats",{type:"uint8",length:"n_faulty_sats"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),c.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),c.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),c.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),c.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),c.prototype.fieldSpec.push(["const_id","writeUInt8",1]),c.prototype.fieldSpec.push(["n_faulty_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["faulty_sats","array","writeUInt8",function(){return 1},"n_faulty_sats"]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",u.prototype.msg_type=3011,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),u.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",y.prototype.msg_type=3015,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),y.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",f.prototype.msg_type=3021,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),f.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),f.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",d.prototype.msg_type=3025,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint16("grid_point_id").uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),d.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),d.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),d.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ACKNOWLEDGE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACKNOWLEDGE",h.prototype.msg_type=3026,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("request_id").uint32("area_id").uint8("response_code").uint16("correction_mask_on_demand").uint16("correction_mask_stream").uint8("solution_id"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["request_id","writeUInt8",1]),h.prototype.fieldSpec.push(["area_id","writeUInt32LE",4]),h.prototype.fieldSpec.push(["response_code","writeUInt8",1]),h.prototype.fieldSpec.push(["correction_mask_on_demand","writeUInt16LE",2]),h.prototype.fieldSpec.push(["correction_mask_stream","writeUInt16LE",2]),h.prototype.fieldSpec.push(["solution_id","writeUInt8",1]),e.exports={IntegritySSRHeader:n,3001:a,MsgSsrFlagHighLevelDepA:a,3002:l,MsgSsrFlagHighLevel:l,3005:c,MsgSsrFlagSatellites:c,3011:u,MsgSsrFlagTropoGridPoints:u,3015:y,MsgSsrFlagIonoGridPoints:y,3021:f,MsgSsrFlagIonoTileSatLos:f,3025:d,MsgSsrFlagIonoGridPointSatLos:d,3026:h,MsgAcknowledge:h}},6747:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE_DEP_A",i.prototype.msg_type=32512,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").string("tname",{length:15}).string("cmdline",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["index","writeUInt8",1]),i.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),i.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),i.prototype.fieldSpec.push(["tname","string",15]),i.prototype.fieldSpec.push(["cmdline","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE_DEP_A",s.prototype.msg_type=32513,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").string("tname",{length:15}).string("cmdline",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["index","writeUInt8",1]),s.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),s.prototype.fieldSpec.push(["pmem","writeUInt8",1]),s.prototype.fieldSpec.push(["tname","string",15]),s.prototype.fieldSpec.push(["cmdline","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE_DEP_A",n.prototype.msg_type=32514,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),n.prototype.fieldSpec.push(["pmem","writeUInt8",1]),n.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),n.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",a.prototype.msg_type=32515,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("socket_count").uint16("socket_types").uint16("socket_states").string("cmdline",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["index","writeUInt8",1]),a.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_count","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),a.prototype.fieldSpec.push(["cmdline","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",l.prototype.msg_type=32516,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("recv_queued").uint16("send_queued").uint16("socket_types").uint16("socket_states").string("address_of_largest",{length:64}).string("cmdline",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["index","writeUInt8",1]),l.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),l.prototype.fieldSpec.push(["recv_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["send_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),l.prototype.fieldSpec.push(["address_of_largest","string",64]),l.prototype.fieldSpec.push(["cmdline","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SOCKET_USAGE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SOCKET_USAGE",c.prototype.msg_type=32517,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("avg_queue_depth").uint32("max_queue_depth").array("socket_state_counts",{length:16,type:"uint16le"}).array("socket_type_counts",{length:16,type:"uint16le"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["avg_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["max_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["socket_state_counts","array","writeUInt16LE",function(){return 2},16]),c.prototype.fieldSpec.push(["socket_type_counts","array","writeUInt16LE",function(){return 2},16]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_COUNT",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_COUNT",u.prototype.msg_type=32518,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("fd_count").string("cmdline",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt8",1]),u.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),u.prototype.fieldSpec.push(["fd_count","writeUInt16LE",2]),u.prototype.fieldSpec.push(["cmdline","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_SUMMARY",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_SUMMARY",y.prototype.msg_type=32519,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sys_fd_count").string("most_opened",{greedy:!0}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sys_fd_count","writeUInt32LE",4]),y.prototype.fieldSpec.push(["most_opened","string",null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE",f.prototype.msg_type=32520,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["index","writeUInt8",1]),f.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),f.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),f.prototype.fieldSpec.push(["time","writeUInt32LE",4]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["tname","string",15]),f.prototype.fieldSpec.push(["cmdline","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE",d.prototype.msg_type=32521,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["index","writeUInt8",1]),d.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pmem","writeUInt8",1]),d.prototype.fieldSpec.push(["time","writeUInt32LE",4]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]),d.prototype.fieldSpec.push(["tname","string",15]),d.prototype.fieldSpec.push(["cmdline","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE",h.prototype.msg_type=32522,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count").uint32("time").uint8("flags"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),h.prototype.fieldSpec.push(["pmem","writeUInt8",1]),h.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),h.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]),h.prototype.fieldSpec.push(["time","writeUInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={32512:i,MsgLinuxCpuStateDepA:i,32513:s,MsgLinuxMemStateDepA:s,32514:n,MsgLinuxSysStateDepA:n,32515:a,MsgLinuxProcessSocketCounts:a,32516:l,MsgLinuxProcessSocketQueues:l,32517:c,MsgLinuxSocketUsage:c,32518:u,MsgLinuxProcessFdCount:u,32519:y,MsgLinuxProcessFdSummary:y,32520:f,MsgLinuxCpuState:f,32521:d,MsgLinuxMemState:d,32522:h,MsgLinuxSysState:h}},8556:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LOG",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LOG",i.prototype.msg_type=1025,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("level").string("text",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["level","writeUInt8",1]),i.prototype.fieldSpec.push(["text","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FWD",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FWD",s.prototype.msg_type=1026,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("source").uint8("protocol").array("fwd_payload",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["protocol","writeUInt8",1]),s.prototype.fieldSpec.push(["fwd_payload","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PRINT_DEP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PRINT_DEP",n.prototype.msg_type=16,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").string("text",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["text","string",null]),e.exports={1025:i,MsgLog:i,1026:s,MsgFwd:s,16:n,MsgPrintDep:n}},3574:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MAG_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MAG_RAW",i.prototype.msg_type=2306,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("mag_x").int16("mag_y").int16("mag_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["mag_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_z","writeInt16LE",2]),e.exports={2306:i,MsgMagRaw:i}},8248:(e,t,p)=>{e=p.nmd(e);var r=p(7052).i,o=(p(3627),p(4789),p(7238)),i=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920],s=function(e,t){for(var p in t)t.hasOwnProperty(p)&&(e[p]=t[p]);return e};function n(e){this.name="ParameterValidationError",this.message=e,this.stack=(new Error).stack}function a(e){this.name="BufferTooShortError",this.message=e,this.stack=(new Error).stack}function l(e){this.name="BufferCorruptError",this.message=e,this.stack=(new Error).stack}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,l.prototype=Object.create(Error.prototype),l.prototype.constructor=l;var c={acquisition:p(3322),bootload:p(6053),ext_events:p(7224),file_io:p(8986),flash:p(6667),gnss:p(278),imu:p(3276),integrity:p(8958),linux:p(6747),logging:p(8556),mag:p(3574),navigation:p(4539),ndb:p(309),observation:p(4399),orientation:p(2623),piksi:p(9757),profiling:p(2827),sbas:p(5232),settings:p(4120),signings:p(9286),solution_meta:p(848),ssr:p(9269),system:p(2644),tracking:p(752),user:p(5562),vehicle:p(7293),telemetry:p(3894)},u=Object.keys(c).reduce((function(e,t){var p=c[t],r={};return Object.keys(p).forEach((function(e){parseInt(e)==e&&(r[e]=p[e])})),s(e,r)}),{}),y=Object.keys(c).reduce((function(e,t){var p=c[t],r={};return Object.keys(p).forEach((function(e){if(parseInt(e)!=e){var t=p[e].prototype.messageType||e;r[t]=p[e]}})),s(e,r)}),{}),f=(new r).endianess("little").uint8("preamble").uint16("msg_type").uint16("sender").uint8("length").buffer("payload",{length:"length"}).uint16("crc");function d(e,t){t=t||0;for(let p of e)t=t<<8&65535^i[t>>8&255^255&p],t&=65535;return t}e.exports={preambleByte:85,crc16:d,sbpIdTable:u,sbpMessageTypesTable:y,decode:function(e){var t=f.parse(e),p=u[t.msg_type];return void 0===p?(console.log("Unknown message type: ",t.msg_type),new o(t)):new p(t)},dispatch:function(t,p,r){var o,i,s=new Buffer(0);if(void 0===r&&"function"==typeof p?o=p:(o=r,i=p),i&&!Array.isArray(i)&&-1===["function","number"].indexOf(typeof i))throw n("dispatch: messageWhitelist must be function, number, or array");var c=function(p){t.pause();try{if((s=Buffer.concat([s,p])).length<2)return;var r=function(){var t,p,r,o,n,c,u;for(u=0;us.length)throw new a;t=s.slice(u+1,u+6),r=s.readUInt16LE(u+1),_=s.readUInt16LE(u+3),o=s.readUInt8(u+5);var y=i&&Array.isArray(i)&&-1!==i.indexOf(r),f=i&&"number"==typeof i&&i&r,h=i&&"function"==typeof i&&i(r);if(i&&!(y||f||h))return s=s.slice(u+6+o+2),null;if(u+8+o>s.length)throw new a;c=d(s.slice(u+6,u+6+o),d(t)),n=s.readUInt16LE(u+6+o);var S=s.slice(u,u+6+o+2);if(n===c)return s=s.slice(u+6+o+2),[e.exports.decode(S),S];throw s=s.slice(u+1),new l}();if(null===r)return;var n=r[0],u=r[1];o(null,n,u)}catch(e){if(!(e instanceof a||e instanceof l))throw e}finally{t.resume(),s.length>0&&setTimeout((function(){c(new Buffer(0))}),0)}};t.on("data",c)}},function(r){var o={function:!0,object:!0},i=o[typeof window]&&window||this,s=o[typeof t]&&t&&!t.nodeType&&t,n=o.object&&e&&!e.nodeType&&e,a=s&&n&&"object"==typeof p.g&&p.g;!a||a.global!==a&&a.window!==a&&a.self!==a||(i=a),i.SBP=r}(e.exports)},4539:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME",i.prototype.msg_type=258,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_GNSS",s.prototype.msg_type=260,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME",n.prototype.msg_type=259,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["year","writeUInt16LE",2]),n.prototype.fieldSpec.push(["month","writeUInt8",1]),n.prototype.fieldSpec.push(["day","writeUInt8",1]),n.prototype.fieldSpec.push(["hours","writeUInt8",1]),n.prototype.fieldSpec.push(["minutes","writeUInt8",1]),n.prototype.fieldSpec.push(["seconds","writeUInt8",1]),n.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME_GNSS",a.prototype.msg_type=261,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]),a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["year","writeUInt16LE",2]),a.prototype.fieldSpec.push(["month","writeUInt8",1]),a.prototype.fieldSpec.push(["day","writeUInt8",1]),a.prototype.fieldSpec.push(["hours","writeUInt8",1]),a.prototype.fieldSpec.push(["minutes","writeUInt8",1]),a.prototype.fieldSpec.push(["seconds","writeUInt8",1]),a.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_DOPS",l.prototype.msg_type=520,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF",c.prototype.msg_type=521,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["x","writeDoubleLE",8]),c.prototype.fieldSpec.push(["y","writeDoubleLE",8]),c.prototype.fieldSpec.push(["z","writeDoubleLE",8]),c.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV",u.prototype.msg_type=532,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["x","writeDoubleLE",8]),u.prototype.fieldSpec.push(["y","writeDoubleLE",8]),u.prototype.fieldSpec.push(["z","writeDoubleLE",8]),u.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),u.prototype.fieldSpec.push(["flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH",y.prototype.msg_type=522,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),y.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),y.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),y.prototype.fieldSpec.push(["height","writeDoubleLE",8]),y.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV",f.prototype.msg_type=529,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),f.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),f.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),f.prototype.fieldSpec.push(["height","writeDoubleLE",8]),f.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="EstimatedHorizontalErrorEllipse",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="EstimatedHorizontalErrorEllipse",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").floatle("semi_major").floatle("semi_minor").floatle("orientation"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["semi_major","writeFloatLE",4]),d.prototype.fieldSpec.push(["semi_minor","writeFloatLE",4]),d.prototype.fieldSpec.push(["orientation","writeFloatLE",4]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_ACC",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_ACC",h.prototype.msg_type=536,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").doublele("orthometric_height").floatle("h_accuracy").floatle("v_accuracy").floatle("ct_accuracy").floatle("at_accuracy").nest("h_ellipse",{type:d.prototype.parser}).uint8("confidence_and_geoid").uint8("n_sats").uint8("flags"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),h.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),h.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),h.prototype.fieldSpec.push(["height","writeDoubleLE",8]),h.prototype.fieldSpec.push(["orthometric_height","writeDoubleLE",8]),h.prototype.fieldSpec.push(["h_accuracy","writeFloatLE",4]),h.prototype.fieldSpec.push(["v_accuracy","writeFloatLE",4]),h.prototype.fieldSpec.push(["ct_accuracy","writeFloatLE",4]),h.prototype.fieldSpec.push(["at_accuracy","writeFloatLE",4]),h.prototype.fieldSpec.push(["h_ellipse",d.prototype.fieldSpec]),h.prototype.fieldSpec.push(["confidence_and_geoid","writeUInt8",1]),h.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF",_.prototype.msg_type=523,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),_.prototype.fieldSpec.push(["x","writeInt32LE",4]),_.prototype.fieldSpec.push(["y","writeInt32LE",4]),_.prototype.fieldSpec.push(["z","writeInt32LE",4]),_.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED",S.prototype.msg_type=524,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),S.prototype.fieldSpec.push(["n","writeInt32LE",4]),S.prototype.fieldSpec.push(["e","writeInt32LE",4]),S.prototype.fieldSpec.push(["d","writeInt32LE",4]),S.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF",g.prototype.msg_type=525,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),g.prototype.fieldSpec.push(["x","writeInt32LE",4]),g.prototype.fieldSpec.push(["y","writeInt32LE",4]),g.prototype.fieldSpec.push(["z","writeInt32LE",4]),g.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),g.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV",w.prototype.msg_type=533,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),w.prototype.fieldSpec.push(["x","writeInt32LE",4]),w.prototype.fieldSpec.push(["y","writeInt32LE",4]),w.prototype.fieldSpec.push(["z","writeInt32LE",4]),w.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED",E.prototype.msg_type=526,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),E.prototype.fieldSpec.push(["n","writeInt32LE",4]),E.prototype.fieldSpec.push(["e","writeInt32LE",4]),E.prototype.fieldSpec.push(["d","writeInt32LE",4]),E.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),E.prototype.fieldSpec.push(["flags","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV",m.prototype.msg_type=530,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),m.prototype.fieldSpec.push(["n","writeInt32LE",4]),m.prototype.fieldSpec.push(["e","writeInt32LE",4]),m.prototype.fieldSpec.push(["d","writeInt32LE",4]),m.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),m.prototype.fieldSpec.push(["flags","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_GNSS",b.prototype.msg_type=553,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),b.prototype.fieldSpec.push(["x","writeDoubleLE",8]),b.prototype.fieldSpec.push(["y","writeDoubleLE",8]),b.prototype.fieldSpec.push(["z","writeDoubleLE",8]),b.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["flags","writeUInt8",1]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV_GNSS",I.prototype.msg_type=564,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),I.prototype.fieldSpec.push(["x","writeDoubleLE",8]),I.prototype.fieldSpec.push(["y","writeDoubleLE",8]),I.prototype.fieldSpec.push(["z","writeDoubleLE",8]),I.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),I.prototype.fieldSpec.push(["flags","writeUInt8",1]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_GNSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_GNSS",L.prototype.msg_type=554,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),L.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),L.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),L.prototype.fieldSpec.push(["height","writeDoubleLE",8]),L.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),L.prototype.fieldSpec.push(["flags","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV_GNSS",T.prototype.msg_type=561,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),T.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),T.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),T.prototype.fieldSpec.push(["height","writeDoubleLE",8]),T.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["flags","writeUInt8",1]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_GNSS",v.prototype.msg_type=557,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),v.prototype.fieldSpec.push(["x","writeInt32LE",4]),v.prototype.fieldSpec.push(["y","writeInt32LE",4]),v.prototype.fieldSpec.push(["z","writeInt32LE",4]),v.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),v.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),v.prototype.fieldSpec.push(["flags","writeUInt8",1]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV_GNSS",U.prototype.msg_type=565,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),U.prototype.fieldSpec.push(["x","writeInt32LE",4]),U.prototype.fieldSpec.push(["y","writeInt32LE",4]),U.prototype.fieldSpec.push(["z","writeInt32LE",4]),U.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_GNSS",O.prototype.msg_type=558,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["n","writeInt32LE",4]),O.prototype.fieldSpec.push(["e","writeInt32LE",4]),O.prototype.fieldSpec.push(["d","writeInt32LE",4]),O.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),O.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV_GNSS",M.prototype.msg_type=562,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),M.prototype.fieldSpec.push(["n","writeInt32LE",4]),M.prototype.fieldSpec.push(["e","writeInt32LE",4]),M.prototype.fieldSpec.push(["d","writeInt32LE",4]),M.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),M.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),M.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),M.prototype.fieldSpec.push(["flags","writeUInt8",1]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_VEL_BODY",D.prototype.msg_type=531,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["x","writeInt32LE",4]),D.prototype.fieldSpec.push(["y","writeInt32LE",4]),D.prototype.fieldSpec.push(["z","writeInt32LE",4]),D.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),D.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),D.prototype.fieldSpec.push(["flags","writeUInt8",1]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_COG",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_VEL_COG",A.prototype.msg_type=540,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").uint32("cog").uint32("sog").int32("v_up").uint32("cog_accuracy").uint32("sog_accuracy").uint32("v_up_accuracy").uint16("flags"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),A.prototype.fieldSpec.push(["cog","writeUInt32LE",4]),A.prototype.fieldSpec.push(["sog","writeUInt32LE",4]),A.prototype.fieldSpec.push(["v_up","writeInt32LE",4]),A.prototype.fieldSpec.push(["cog_accuracy","writeUInt32LE",4]),A.prototype.fieldSpec.push(["sog_accuracy","writeUInt32LE",4]),A.prototype.fieldSpec.push(["v_up_accuracy","writeUInt32LE",4]),A.prototype.fieldSpec.push(["flags","writeUInt16LE",2]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_AGE_CORRECTIONS",G.prototype.msg_type=528,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["age","writeUInt16LE",2]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_DEP_A",C.prototype.msg_type=256,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),C.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),C.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),C.prototype.fieldSpec.push(["flags","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_DOPS_DEP_A",j.prototype.msg_type=518,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),j.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),j.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),j.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),j.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_DEP_A",P.prototype.msg_type=512,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),P.prototype.fieldSpec.push(["x","writeDoubleLE",8]),P.prototype.fieldSpec.push(["y","writeDoubleLE",8]),P.prototype.fieldSpec.push(["z","writeDoubleLE",8]),P.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),P.prototype.fieldSpec.push(["flags","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_DEP_A",R.prototype.msg_type=513,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),R.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),R.prototype.fieldSpec.push(["height","writeDoubleLE",8]),R.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),R.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),R.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),R.prototype.fieldSpec.push(["flags","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",N.prototype.msg_type=514,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["x","writeInt32LE",4]),N.prototype.fieldSpec.push(["y","writeInt32LE",4]),N.prototype.fieldSpec.push(["z","writeInt32LE",4]),N.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED_DEP_A",x.prototype.msg_type=515,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),x.prototype.fieldSpec.push(["n","writeInt32LE",4]),x.prototype.fieldSpec.push(["e","writeInt32LE",4]),x.prototype.fieldSpec.push(["d","writeInt32LE",4]),x.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),x.prototype.fieldSpec.push(["flags","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_DEP_A",F.prototype.msg_type=516,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),F.prototype.fieldSpec.push(["x","writeInt32LE",4]),F.prototype.fieldSpec.push(["y","writeInt32LE",4]),F.prototype.fieldSpec.push(["z","writeInt32LE",4]),F.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),F.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),F.prototype.fieldSpec.push(["flags","writeUInt8",1]);let k=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_DEP_A",k.prototype.msg_type=517,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),k.prototype.fieldSpec.push(["n","writeInt32LE",4]),k.prototype.fieldSpec.push(["e","writeInt32LE",4]),k.prototype.fieldSpec.push(["d","writeInt32LE",4]),k.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),k.prototype.fieldSpec.push(["flags","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING_DEP_A",B.prototype.msg_type=519,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),B.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["flags","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL_DEP_A",q.prototype.msg_type=534,q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("tow").uint16("vpl").uint16("hpl").doublele("lat").doublele("lon").doublele("height").uint8("flags"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),q.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),q.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),q.prototype.fieldSpec.push(["height","writeDoubleLE",8]),q.prototype.fieldSpec.push(["flags","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL",z.prototype.msg_type=535,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("tow").int16("wn").uint16("hpl").uint16("vpl").uint16("atpl").uint16("ctpl").uint16("hvpl").uint16("vvpl").uint16("hopl").uint16("popl").uint16("ropl").doublele("lat").doublele("lon").doublele("height").int32("v_x").int32("v_y").int32("v_z").int32("roll").int32("pitch").int32("heading").uint32("flags"),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),z.prototype.fieldSpec.push(["wn","writeInt16LE",2]),z.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["atpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ctpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hopl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["popl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ropl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),z.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),z.prototype.fieldSpec.push(["height","writeDoubleLE",8]),z.prototype.fieldSpec.push(["v_x","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_y","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_z","writeInt32LE",4]),z.prototype.fieldSpec.push(["roll","writeInt32LE",4]),z.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),z.prototype.fieldSpec.push(["heading","writeInt32LE",4]),z.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_LEAP_SECOND",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_UTC_LEAP_SECOND",V.prototype.msg_type=570,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").int16("reserved_0").int16("reserved_1").int8("reserved_2").int8("count_before").uint16("reserved_3").uint16("reserved_4").uint16("ref_wn").uint8("ref_dn").int8("count_after"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["reserved_0","writeInt16LE",2]),V.prototype.fieldSpec.push(["reserved_1","writeInt16LE",2]),V.prototype.fieldSpec.push(["reserved_2","writeInt8",1]),V.prototype.fieldSpec.push(["count_before","writeInt8",1]),V.prototype.fieldSpec.push(["reserved_3","writeUInt16LE",2]),V.prototype.fieldSpec.push(["reserved_4","writeUInt16LE",2]),V.prototype.fieldSpec.push(["ref_wn","writeUInt16LE",2]),V.prototype.fieldSpec.push(["ref_dn","writeUInt8",1]),V.prototype.fieldSpec.push(["count_after","writeInt8",1]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_REFERENCE_FRAME_PARAM",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_REFERENCE_FRAME_PARAM",H.prototype.msg_type=580,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint8("ssr_iod").string("sn",{length:32}).string("tn",{length:32}).uint8("sin").uint16("utn").uint16("re_t0").int32("delta_X0").int32("delta_Y0").int32("delta_Z0").int32("theta_01").int32("theta_02").int32("theta_03").int32("scale").int32("dot_delta_X0").int32("dot_delta_Y0").int32("dot_delta_Z0").int32("dot_theta_01").int32("dot_theta_02").int32("dot_theta_03").int16("dot_scale"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),H.prototype.fieldSpec.push(["sn","string",32]),H.prototype.fieldSpec.push(["tn","string",32]),H.prototype.fieldSpec.push(["sin","writeUInt8",1]),H.prototype.fieldSpec.push(["utn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["re_t0","writeUInt16LE",2]),H.prototype.fieldSpec.push(["delta_X0","writeInt32LE",4]),H.prototype.fieldSpec.push(["delta_Y0","writeInt32LE",4]),H.prototype.fieldSpec.push(["delta_Z0","writeInt32LE",4]),H.prototype.fieldSpec.push(["theta_01","writeInt32LE",4]),H.prototype.fieldSpec.push(["theta_02","writeInt32LE",4]),H.prototype.fieldSpec.push(["theta_03","writeInt32LE",4]),H.prototype.fieldSpec.push(["scale","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_delta_X0","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_delta_Y0","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_delta_Z0","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_theta_01","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_theta_02","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_theta_03","writeInt32LE",4]),H.prototype.fieldSpec.push(["dot_scale","writeInt16LE",2]);let $=function(e,t){return r.call(this,e),this.messageType="MSG_POSE_RELATIVE",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_POSE_RELATIVE",$.prototype.msg_type=581,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").uint32("tow").uint8("sensor_id").uint32("timestamp_1").uint32("timestamp_2").array("trans",{length:3,type:"int32le"}).int32("w").int32("x").int32("y").int32("z").floatle("cov_r_x_x").floatle("cov_r_x_y").floatle("cov_r_x_z").floatle("cov_r_y_y").floatle("cov_r_y_z").floatle("cov_r_z_z").floatle("cov_c_x_x").floatle("cov_c_x_y").floatle("cov_c_x_z").floatle("cov_c_y_y").floatle("cov_c_y_z").floatle("cov_c_z_z").uint8("flags"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),$.prototype.fieldSpec.push(["sensor_id","writeUInt8",1]),$.prototype.fieldSpec.push(["timestamp_1","writeUInt32LE",4]),$.prototype.fieldSpec.push(["timestamp_2","writeUInt32LE",4]),$.prototype.fieldSpec.push(["trans","array","writeInt32LE",function(){return 4},3]),$.prototype.fieldSpec.push(["w","writeInt32LE",4]),$.prototype.fieldSpec.push(["x","writeInt32LE",4]),$.prototype.fieldSpec.push(["y","writeInt32LE",4]),$.prototype.fieldSpec.push(["z","writeInt32LE",4]),$.prototype.fieldSpec.push(["cov_r_x_x","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_x_y","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_x_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_y_y","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_y_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_r_z_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_x_x","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_x_y","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_x_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_y_y","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_y_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["cov_c_z_z","writeFloatLE",4]),$.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={258:i,MsgGpsTime:i,260:s,MsgGpsTimeGnss:s,259:n,MsgUtcTime:n,261:a,MsgUtcTimeGnss:a,520:l,MsgDops:l,521:c,MsgPosEcef:c,532:u,MsgPosEcefCov:u,522:y,MsgPosLlh:y,529:f,MsgPosLlhCov:f,EstimatedHorizontalErrorEllipse:d,536:h,MsgPosLlhAcc:h,523:_,MsgBaselineEcef:_,524:S,MsgBaselineNed:S,525:g,MsgVelEcef:g,533:w,MsgVelEcefCov:w,526:E,MsgVelNed:E,530:m,MsgVelNedCov:m,553:b,MsgPosEcefGnss:b,564:I,MsgPosEcefCovGnss:I,554:L,MsgPosLlhGnss:L,561:T,MsgPosLlhCovGnss:T,557:v,MsgVelEcefGnss:v,565:U,MsgVelEcefCovGnss:U,558:O,MsgVelNedGnss:O,562:M,MsgVelNedCovGnss:M,531:D,MsgVelBody:D,540:A,MsgVelCog:A,528:G,MsgAgeCorrections:G,256:C,MsgGpsTimeDepA:C,518:j,MsgDopsDepA:j,512:P,MsgPosEcefDepA:P,513:R,MsgPosLlhDepA:R,514:N,MsgBaselineEcefDepA:N,515:x,MsgBaselineNedDepA:x,516:F,MsgVelEcefDepA:F,517:k,MsgVelNedDepA:k,519:B,MsgBaselineHeadingDepA:B,534:q,MsgProtectionLevelDepA:q,535:z,MsgProtectionLevel:z,570:V,MsgUtcLeapSecond:V,580:H,MsgReferenceFrameParam:H,581:$,MsgPoseRelative:$}},309:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=(p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_NDB_EVENT",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_NDB_EVENT",s.prototype.msg_type=1024,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("recv_time").uint8("event").uint8("object_type").uint8("result").uint8("data_source").nest("object_sid",{type:i.prototype.parser}).nest("src_sid",{type:i.prototype.parser}).uint16("original_sender"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["event","writeUInt8",1]),s.prototype.fieldSpec.push(["object_type","writeUInt8",1]),s.prototype.fieldSpec.push(["result","writeUInt8",1]),s.prototype.fieldSpec.push(["data_source","writeUInt8",1]),s.prototype.fieldSpec.push(["object_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["src_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["original_sender","writeUInt16LE",2]),e.exports={1024:s,MsgNdbEvent:s}},4399:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase),s=p(278).GnssSignal,n=p(278).GnssSignalDep,a=p(278).GPSTime,l=p(278).GPSTimeDep,c=p(278).GPSTimeSec,u=(p(278).SvId,function(e,t){return r.call(this,e),this.messageType="ObservationHeader",this.fields=t||this.parser.parse(e.payload),this});(u.prototype=Object.create(r.prototype)).messageType="ObservationHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("t",{type:a.prototype.parser}).uint8("n_obs"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="Doppler",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="Doppler",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").int16("i").uint8("f"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["i","writeInt16LE",2]),y.prototype.fieldSpec.push(["f","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="PackedObsContent",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="PackedObsContent",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).nest("D",{type:y.prototype.parser}).uint8("cn0").uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["P","writeUInt32LE",4]),f.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["D",y.prototype.fieldSpec]),f.prototype.fieldSpec.push(["cn0","writeUInt8",1]),f.prototype.fieldSpec.push(["lock","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let d=function(e,t){return r.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="PackedOsrContent",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}).uint16("iono_std").uint16("tropo_std").uint16("range_std"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["P","writeUInt32LE",4]),d.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),d.prototype.fieldSpec.push(["lock","writeUInt8",1]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]),d.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),d.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),d.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),d.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_OBS",h.prototype.msg_type=74,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:f.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),h.prototype.fieldSpec.push(["obs","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_LLH",_.prototype.msg_type=68,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").doublele("lat").doublele("lon").doublele("height"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),_.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),_.prototype.fieldSpec.push(["height","writeDoubleLE",8]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_ECEF",S.prototype.msg_type=72,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").doublele("x").doublele("y").doublele("z"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["x","writeDoubleLE",8]),S.prototype.fieldSpec.push(["y","writeDoubleLE",8]),S.prototype.fieldSpec.push(["z","writeDoubleLE",8]);let g=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContent",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContent",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).floatle("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),g.prototype.fieldSpec.push(["ura","writeFloatLE",4]),g.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),g.prototype.fieldSpec.push(["valid","writeUInt8",1]),g.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepB",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepB",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),w.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),w.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),w.prototype.fieldSpec.push(["valid","writeUInt8",1]),w.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepA",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepA",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toe",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["toe",l.prototype.fieldSpec]),E.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),E.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),E.prototype.fieldSpec.push(["valid","writeUInt8",1]),E.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_E",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_E",m.prototype.msg_type=129,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:l.prototype.parser}).uint8("iode").uint16("iodc"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),m.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),m.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["w","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),m.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),m.prototype.fieldSpec.push(["iode","writeUInt8",1]),m.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_F",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_F",b.prototype.msg_type=134,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),b.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),b.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),b.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["w","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),b.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),b.prototype.fieldSpec.push(["iode","writeUInt8",1]),b.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS",I.prototype.msg_type=138,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),I.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),I.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),I.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["w","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["af0","writeFloatLE",4]),I.prototype.fieldSpec.push(["af1","writeFloatLE",4]),I.prototype.fieldSpec.push(["af2","writeFloatLE",4]),I.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),I.prototype.fieldSpec.push(["iode","writeUInt8",1]),I.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_QZSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_QZSS",L.prototype.msg_type=142,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),L.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),L.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),L.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["w","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["af0","writeFloatLE",4]),L.prototype.fieldSpec.push(["af1","writeFloatLE",4]),L.prototype.fieldSpec.push(["af2","writeFloatLE",4]),L.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),L.prototype.fieldSpec.push(["iode","writeUInt8",1]),L.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_BDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_BDS",T.prototype.msg_type=137,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd1").floatle("tgd2").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tgd1","writeFloatLE",4]),T.prototype.fieldSpec.push(["tgd2","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),T.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),T.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["w","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af1","writeFloatLE",4]),T.prototype.fieldSpec.push(["af2","writeFloatLE",4]),T.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),T.prototype.fieldSpec.push(["iode","writeUInt8",1]),T.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",v.prototype.msg_type=149,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),v.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),v.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),v.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),v.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["w","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af2","writeFloatLE",4]),v.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),v.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),v.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL",U.prototype.msg_type=141,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc").uint8("source"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),U.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),U.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),U.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),U.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["w","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af2","writeFloatLE",4]),U.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),U.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),U.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),U.prototype.fieldSpec.push(["source","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",O.prototype.msg_type=130,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),O.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),O.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_A",M.prototype.msg_type=131,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),M.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),M.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),M.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_B",D.prototype.msg_type=132,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),D.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),D.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS",A.prototype.msg_type=140,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"floatle"}).array("acc",{length:3,type:"floatle"}).floatle("a_gf0").floatle("a_gf1"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),A.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["vel","array","writeFloatLE",function(){return 4},3]),A.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),A.prototype.fieldSpec.push(["a_gf0","writeFloatLE",4]),A.prototype.fieldSpec.push(["a_gf1","writeFloatLE",4]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_B",G.prototype.msg_type=133,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),G.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),G.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),G.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_C",C.prototype.msg_type=135,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),C.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),C.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["fcn","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",j.prototype.msg_type=136,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn").uint8("iod"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),j.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),j.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),j.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),j.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),j.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),j.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),j.prototype.fieldSpec.push(["fcn","writeUInt8",1]),j.prototype.fieldSpec.push(["iod","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO",P.prototype.msg_type=139,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("gamma").floatle("tau").floatle("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"floatle"}).uint8("fcn").uint8("iod"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),P.prototype.fieldSpec.push(["gamma","writeFloatLE",4]),P.prototype.fieldSpec.push(["tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["d_tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),P.prototype.fieldSpec.push(["fcn","writeUInt8",1]),P.prototype.fieldSpec.push(["iod","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_D",R.prototype.msg_type=128,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),R.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),R.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),R.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),R.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),R.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),R.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),R.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),R.prototype.fieldSpec.push(["w","writeDoubleLE",8]),R.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),R.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),R.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),R.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),R.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),R.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),R.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),R.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),R.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),R.prototype.fieldSpec.push(["valid","writeUInt8",1]),R.prototype.fieldSpec.push(["healthy","writeUInt8",1]),R.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),R.prototype.fieldSpec.push(["iode","writeUInt8",1]),R.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),R.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_A",N.prototype.msg_type=26,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),N.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),N.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["w","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["valid","writeUInt8",1]),N.prototype.fieldSpec.push(["healthy","writeUInt8",1]),N.prototype.fieldSpec.push(["prn","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_B",x.prototype.msg_type=70,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn").uint8("iode"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),x.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),x.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["w","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["valid","writeUInt8",1]),x.prototype.fieldSpec.push(["healthy","writeUInt8",1]),x.prototype.fieldSpec.push(["prn","writeUInt8",1]),x.prototype.fieldSpec.push(["iode","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_C",F.prototype.msg_type=71,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),F.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),F.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),F.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),F.prototype.fieldSpec.push(["w","writeDoubleLE",8]),F.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),F.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),F.prototype.fieldSpec.push(["valid","writeUInt8",1]),F.prototype.fieldSpec.push(["healthy","writeUInt8",1]),F.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),F.prototype.fieldSpec.push(["iode","writeUInt8",1]),F.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),F.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let k=function(e,t){return r.call(this,e),this.messageType="ObservationHeaderDep",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="ObservationHeaderDep",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").nest("t",{type:l.prototype.parser}).uint8("n_obs"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["t",l.prototype.fieldSpec]),k.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="CarrierPhaseDepA",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="CarrierPhaseDepA",B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["i","writeInt32LE",4]),B.prototype.fieldSpec.push(["f","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepA",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepA",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").uint8("prn"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["P","writeUInt32LE",4]),q.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),q.prototype.fieldSpec.push(["cn0","writeUInt8",1]),q.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),q.prototype.fieldSpec.push(["prn","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepB",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepB",z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["P","writeUInt32LE",4]),z.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),z.prototype.fieldSpec.push(["cn0","writeUInt8",1]),z.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),z.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let V=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepC",V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["P","writeUInt32LE",4]),V.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),V.prototype.fieldSpec.push(["cn0","writeUInt8",1]),V.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),V.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_A",H.prototype.msg_type=69,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:q.prototype.parser,readUntil:"eof"}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),H.prototype.fieldSpec.push(["obs","array",q.prototype.fieldSpec,function(){return this.fields.array.length},null]);let $=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_B",$.prototype.msg_type=67,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),$.prototype.fieldSpec.push(["obs","array",z.prototype.fieldSpec,function(){return this.fields.array.length},null]);let W=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(W.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_C",W.prototype.msg_type=73,W.prototype.constructor=W,W.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:V.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",V.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Q=function(e,t){return r.call(this,e),this.messageType="MSG_IONO",this.fields=t||this.parser.parse(e.payload),this};(Q.prototype=Object.create(r.prototype)).messageType="MSG_IONO",Q.prototype.msg_type=144,Q.prototype.constructor=Q,Q.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).doublele("a0").doublele("a1").doublele("a2").doublele("a3").doublele("b0").doublele("b1").doublele("b2").doublele("b3"),Q.prototype.fieldSpec=[],Q.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),Q.prototype.fieldSpec.push(["a0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a3","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b3","writeDoubleLE",8]);let K=function(e,t){return r.call(this,e),this.messageType="MSG_SV_CONFIGURATION_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(K.prototype=Object.create(r.prototype)).messageType="MSG_SV_CONFIGURATION_GPS_DEP",K.prototype.msg_type=145,K.prototype.constructor=K,K.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).uint32("l2c_mask"),K.prototype.fieldSpec=[],K.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),K.prototype.fieldSpec.push(["l2c_mask","writeUInt32LE",4]);let X=function(e,t){return r.call(this,e),this.messageType="GnssCapb",this.fields=t||this.parser.parse(e.payload),this};(X.prototype=Object.create(r.prototype)).messageType="GnssCapb",X.prototype.constructor=X,X.prototype.parser=(new o).endianess("little").uint64("gps_active").uint64("gps_l2c").uint64("gps_l5").uint32("glo_active").uint32("glo_l2of").uint32("glo_l3").uint64("sbas_active").uint64("sbas_l5").uint64("bds_active").uint64("bds_d2nav").uint64("bds_b2").uint64("bds_b2a").uint32("qzss_active").uint64("gal_active").uint64("gal_e5"),X.prototype.fieldSpec=[],X.prototype.fieldSpec.push(["gps_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l2c","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["glo_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l2of","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l3","writeUInt32LE",4]),X.prototype.fieldSpec.push(["sbas_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["sbas_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_d2nav","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2a","writeUInt64LE",8]),X.prototype.fieldSpec.push(["qzss_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["gal_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gal_e5","writeUInt64LE",8]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_CAPB",Y.prototype.msg_type=150,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).nest("gc",{type:X.prototype.parser}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),Y.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);let J=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",J.prototype.msg_type=146,J.prototype.constructor=J,J.prototype.parser=(new o).endianess("little").nest("t_op",{type:l.prototype.parser}).uint8("prn").uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),J.prototype.fieldSpec.push(["prn","writeUInt8",1]),J.prototype.fieldSpec.push(["valid","writeUInt8",1]),J.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),J.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),J.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let Z=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",Z.prototype.msg_type=147,Z.prototype.constructor=Z,Z.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:n.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),Z.prototype.fieldSpec=[],Z.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["valid","writeUInt8",1]),Z.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let ee=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY",this.fields=t||this.parser.parse(e.payload),this};(ee.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY",ee.prototype.msg_type=148,ee.prototype.constructor=ee,ee.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:s.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),ee.prototype.fieldSpec=[],ee.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["valid","writeUInt8",1]),ee.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let te=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContent",this.fields=t||this.parser.parse(e.payload),this};(te.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContent",te.prototype.constructor=te,te.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),te.prototype.fieldSpec=[],te.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),te.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),te.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),te.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),te.prototype.fieldSpec.push(["valid","writeUInt8",1]),te.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let pe=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContentDep",this.fields=t||this.parser.parse(e.payload),this};(pe.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContentDep",pe.prototype.constructor=pe,pe.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),pe.prototype.fieldSpec=[],pe.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),pe.prototype.fieldSpec.push(["valid","writeUInt8",1]),pe.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let re=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(re.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS_DEP",re.prototype.msg_type=112,re.prototype.constructor=re,re.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),re.prototype.fieldSpec=[],re.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),re.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),re.prototype.fieldSpec.push(["w","writeDoubleLE",8]),re.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let oe=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS",this.fields=t||this.parser.parse(e.payload),this};(oe.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS",oe.prototype.msg_type=114,oe.prototype.constructor=oe,oe.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),oe.prototype.fieldSpec=[],oe.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),oe.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["w","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let ie=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO_DEP",this.fields=t||this.parser.parse(e.payload),this};(ie.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO_DEP",ie.prototype.msg_type=113,ie.prototype.constructor=ie,ie.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),ie.prototype.fieldSpec=[],ie.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),ie.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["i","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let se=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO",this.fields=t||this.parser.parse(e.payload),this};(se.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO",se.prototype.msg_type=115,se.prototype.constructor=se,se.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),se.prototype.fieldSpec=[],se.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),se.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["i","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),se.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),se.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let ne=function(e,t){return r.call(this,e),this.messageType="MSG_GLO_BIASES",this.fields=t||this.parser.parse(e.payload),this};(ne.prototype=Object.create(r.prototype)).messageType="MSG_GLO_BIASES",ne.prototype.msg_type=117,ne.prototype.constructor=ne,ne.prototype.parser=(new o).endianess("little").uint8("mask").int16("l1ca_bias").int16("l1p_bias").int16("l2ca_bias").int16("l2p_bias"),ne.prototype.fieldSpec=[],ne.prototype.fieldSpec.push(["mask","writeUInt8",1]),ne.prototype.fieldSpec.push(["l1ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l1p_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2p_bias","writeInt16LE",2]);let ae=function(e,t){return r.call(this,e),this.messageType="SvAzEl",this.fields=t||this.parser.parse(e.payload),this};(ae.prototype=Object.create(r.prototype)).messageType="SvAzEl",ae.prototype.constructor=ae,ae.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("az").int8("el"),ae.prototype.fieldSpec=[],ae.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ae.prototype.fieldSpec.push(["az","writeUInt8",1]),ae.prototype.fieldSpec.push(["el","writeInt8",1]);let le=function(e,t){return r.call(this,e),this.messageType="MSG_SV_AZ_EL",this.fields=t||this.parser.parse(e.payload),this};(le.prototype=Object.create(r.prototype)).messageType="MSG_SV_AZ_EL",le.prototype.msg_type=151,le.prototype.constructor=le,le.prototype.parser=(new o).endianess("little").array("azel",{type:ae.prototype.parser,readUntil:"eof"}),le.prototype.fieldSpec=[],le.prototype.fieldSpec.push(["azel","array",ae.prototype.fieldSpec,function(){return this.fields.array.length},null]);let ce=function(e,t){return r.call(this,e),this.messageType="MSG_OSR",this.fields=t||this.parser.parse(e.payload),this};(ce.prototype=Object.create(r.prototype)).messageType="MSG_OSR",ce.prototype.msg_type=1600,ce.prototype.constructor=ce,ce.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:d.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:f,PackedOsrContent:d,74:h,MsgObs:h,68:_,MsgBasePosLlh:_,72:S,MsgBasePosEcef:S,EphemerisCommonContent:g,EphemerisCommonContentDepB:w,EphemerisCommonContentDepA:E,129:m,MsgEphemerisGpsDepE:m,134:b,MsgEphemerisGpsDepF:b,138:I,MsgEphemerisGps:I,142:L,MsgEphemerisQzss:L,137:T,MsgEphemerisBds:T,149:v,MsgEphemerisGalDepA:v,141:U,MsgEphemerisGal:U,130:O,MsgEphemerisSbasDepA:O,131:M,MsgEphemerisGloDepA:M,132:D,MsgEphemerisSbasDepB:D,140:A,MsgEphemerisSbas:A,133:G,MsgEphemerisGloDepB:G,135:C,MsgEphemerisGloDepC:C,136:j,MsgEphemerisGloDepD:j,139:P,MsgEphemerisGlo:P,128:R,MsgEphemerisDepD:R,26:N,MsgEphemerisDepA:N,70:x,MsgEphemerisDepB:x,71:F,MsgEphemerisDepC:F,ObservationHeaderDep:k,CarrierPhaseDepA:B,PackedObsContentDepA:q,PackedObsContentDepB:z,PackedObsContentDepC:V,69:H,MsgObsDepA:H,67:$,MsgObsDepB:$,73:W,MsgObsDepC:W,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:Y,MsgGnssCapb:Y,146:J,MsgGroupDelayDepA:J,147:Z,MsgGroupDelayDepB:Z,148:ee,MsgGroupDelay:ee,AlmanacCommonContent:te,AlmanacCommonContentDep:pe,112:re,MsgAlmanacGpsDep:re,114:oe,MsgAlmanacGps:oe,113:ie,MsgAlmanacGloDep:ie,115:se,MsgAlmanacGlo:se,117:ne,MsgGloBiases:ne,SvAzEl:ae,151:le,MsgSvAzEl:le,1600:ce,MsgOsr:ce}},2623:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING",i.prototype.msg_type=527,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),i.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_QUAT",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_QUAT",s.prototype.msg_type=544,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("tow").int32("w").int32("x").int32("y").int32("z").floatle("w_accuracy").floatle("x_accuracy").floatle("y_accuracy").floatle("z_accuracy").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["w","writeInt32LE",4]),s.prototype.fieldSpec.push(["x","writeInt32LE",4]),s.prototype.fieldSpec.push(["y","writeInt32LE",4]),s.prototype.fieldSpec.push(["z","writeInt32LE",4]),s.prototype.fieldSpec.push(["w_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["x_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["y_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["z_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_EULER",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_EULER",n.prototype.msg_type=545,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").int32("roll").int32("pitch").int32("yaw").floatle("roll_accuracy").floatle("pitch_accuracy").floatle("yaw_accuracy").uint8("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["roll","writeInt32LE",4]),n.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),n.prototype.fieldSpec.push(["yaw","writeInt32LE",4]),n.prototype.fieldSpec.push(["roll_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["pitch_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["yaw_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ANGULAR_RATE",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ANGULAR_RATE",a.prototype.msg_type=546,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["x","writeInt32LE",4]),a.prototype.fieldSpec.push(["y","writeInt32LE",4]),a.prototype.fieldSpec.push(["z","writeInt32LE",4]),a.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={527:i,MsgBaselineHeading:i,544:s,MsgOrientQuat:s,545:n,MsgOrientEuler:n,546:a,MsgAngularRate:a}},7978:(e,t,p)=>{var r=p(7052).i;r.prototype.uint64=function(e,t){return this.setNextParser("uint64",e,Object.assign({},t,{formatter:function(e){var t=p(7898).UINT64,r=buffer.readUInt32LE(offset);offset+=4;var o=buffer.readUInt32LE(offset);return offset+=4,new t(r,o)}}))},r.prototype.compile=function(){var e=this.getCode();this.compiled=function(t,r,o){return"undefined"!=typeof window&&void 0===window.Buffer&&(window.Buffer=Buffer),new Function("buffer","callback","constructorFn","require",e).call(this,t,r,o,(function(e){if("cuint"===e)return p(7898);throw new Error("Unknown module required: "+e)}))}},e.exports=r},9757:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=p(278).GnssSignalDep,n=p(278).GPSTime,a=p(278).GPSTimeDep,l=(p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC",this.fields=t||this.parser.parse(e.payload),this});(l.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC",l.prototype.msg_type=105,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little"),l.prototype.fieldSpec=[];let c=function(e,t){return r.call(this,e),this.messageType="MSG_SET_TIME",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SET_TIME",c.prototype.msg_type=104,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little"),c.prototype.fieldSpec=[];let u=function(e,t){return r.call(this,e),this.messageType="MSG_RESET",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_RESET",u.prototype.msg_type=182,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_DEP",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_RESET_DEP",y.prototype.msg_type=178,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_CW_RESULTS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CW_RESULTS",f.prototype.msg_type=192,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little"),f.prototype.fieldSpec=[];let d=function(e,t){return r.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_CW_START",d.prototype.msg_type=193,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little"),d.prototype.fieldSpec=[];let h=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_RESET_FILTERS",h.prototype.msg_type=34,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("filter"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["filter","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_INIT_BASE_DEP",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_INIT_BASE_DEP",_.prototype.msg_type=35,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little"),_.prototype.fieldSpec=[];let S=function(e,t){return r.call(this,e),this.messageType="MSG_THREAD_STATE",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_THREAD_STATE",S.prototype.msg_type=23,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").string("name",{length:20}).uint16("cpu").uint32("stack_free"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["name","string",20]),S.prototype.fieldSpec.push(["cpu","writeUInt16LE",2]),S.prototype.fieldSpec.push(["stack_free","writeUInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="UARTChannel",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="UARTChannel",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").floatle("tx_throughput").floatle("rx_throughput").uint16("crc_error_count").uint16("io_error_count").uint8("tx_buffer_level").uint8("rx_buffer_level"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["rx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["crc_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["io_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["tx_buffer_level","writeUInt8",1]),g.prototype.fieldSpec.push(["rx_buffer_level","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="Period",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="Period",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").int32("avg").int32("pmin").int32("pmax").int32("current"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["avg","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmin","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmax","writeInt32LE",4]),w.prototype.fieldSpec.push(["current","writeInt32LE",4]);let E=function(e,t){return r.call(this,e),this.messageType="Latency",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="Latency",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").int32("avg").int32("lmin").int32("lmax").int32("current"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["avg","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmin","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmax","writeInt32LE",4]),E.prototype.fieldSpec.push(["current","writeInt32LE",4]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE",m.prototype.msg_type=29,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}).nest("obs_period",{type:w.prototype.parser}),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["obs_period",w.prototype.fieldSpec]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE_DEPA",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE_DEPA",b.prototype.msg_type=24,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_IAR_STATE",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_IAR_STATE",I.prototype.msg_type=25,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("num_hyps"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["num_hyps","writeUInt32LE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE",L.prototype.msg_type=43,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:i.prototype.parser}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["mask","writeUInt8",1]),L.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE_DEP",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE_DEP",T.prototype.msg_type=27,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:s.prototype.parser}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["mask","writeUInt8",1]),T.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_DEVICE_MONITOR",v.prototype.msg_type=181,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),v.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_REQ",U.prototype.msg_type=184,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),U.prototype.fieldSpec.push(["command","string",null]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_RESP",O.prototype.msg_type=185,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),O.prototype.fieldSpec.push(["code","writeInt32LE",4]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_OUTPUT",M.prototype.msg_type=188,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").string("line",{greedy:!0}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["line","string",null]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_REQ",D.prototype.msg_type=186,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little"),D.prototype.fieldSpec=[];let A=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_RESP",A.prototype.msg_type=187,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").array("ipv4_address",{length:4,type:"uint8"}).uint8("ipv4_mask_size").array("ipv6_address",{length:16,type:"uint8"}).uint8("ipv6_mask_size").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}).uint32("flags"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["ipv4_address","array","writeUInt8",function(){return 1},4]),A.prototype.fieldSpec.push(["ipv4_mask_size","writeUInt8",1]),A.prototype.fieldSpec.push(["ipv6_address","array","writeUInt8",function(){return 1},16]),A.prototype.fieldSpec.push(["ipv6_mask_size","writeUInt8",1]),A.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["interface_name","string",16]),A.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let G=function(e,t){return r.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="NetworkUsage",G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").uint64("duration").uint64("total_bytes").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["duration","writeUInt64LE",8]),G.prototype.fieldSpec.push(["total_bytes","writeUInt64LE",8]),G.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["interface_name","string",16]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_BANDWIDTH_USAGE",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_BANDWIDTH_USAGE",C.prototype.msg_type=189,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").array("interfaces",{type:G.prototype.parser,readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["interfaces","array",G.prototype.fieldSpec,function(){return this.fields.array.length},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_CELL_MODEM_STATUS",j.prototype.msg_type=190,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),j.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),j.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},null]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN_DEP",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN_DEP",P.prototype.msg_type=80,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:a.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),P.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),P.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN",R.prototype.msg_type=81,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:n.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),R.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),R.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),R.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),R.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),R.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),R.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_FRONT_END_GAIN",N.prototype.msg_type=191,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").array("rf_gain",{length:8,type:"int8"}).array("if_gain",{length:8,type:"int8"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["rf_gain","array","writeInt8",function(){return 1},8]),N.prototype.fieldSpec.push(["if_gain","array","writeInt8",function(){return 1},8]),e.exports={105:l,MsgAlmanac:l,104:c,MsgSetTime:c,182:u,MsgReset:u,178:y,MsgResetDep:y,192:f,MsgCwResults:f,193:d,MsgCwStart:d,34:h,MsgResetFilters:h,35:_,MsgInitBaseDep:_,23:S,MsgThreadState:S,UARTChannel:g,Period:w,Latency:E,29:m,MsgUartState:m,24:b,MsgUartStateDepa:b,25:I,MsgIarState:I,43:L,MsgMaskSatellite:L,27:T,MsgMaskSatelliteDep:T,181:v,MsgDeviceMonitor:v,184:U,MsgCommandReq:U,185:O,MsgCommandResp:O,188:M,MsgCommandOutput:M,186:D,MsgNetworkStateReq:D,187:A,MsgNetworkStateResp:A,NetworkUsage:G,189:C,MsgNetworkBandwidthUsage:C,190:j,MsgCellModemStatus:j,80:P,MsgSpecanDep:P,81:R,MsgSpecan:R,191:N,MsgFrontEndGain:N}},2827:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_POINT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_POINT",i.prototype.msg_type=52992,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("total_time").uint16("num_executions").uint32("min").uint32("max").uint64("return_addr").uint64("id").uint64("slice_time").uint16("line").string("func",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["total_time","writeUInt32LE",4]),i.prototype.fieldSpec.push(["num_executions","writeUInt16LE",2]),i.prototype.fieldSpec.push(["min","writeUInt32LE",4]),i.prototype.fieldSpec.push(["max","writeUInt32LE",4]),i.prototype.fieldSpec.push(["return_addr","writeUInt64LE",8]),i.prototype.fieldSpec.push(["id","writeUInt64LE",8]),i.prototype.fieldSpec.push(["slice_time","writeUInt64LE",8]),i.prototype.fieldSpec.push(["line","writeUInt16LE",2]),i.prototype.fieldSpec.push(["func","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_SYSTEM_INFO",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_SYSTEM_INFO",s.prototype.msg_type=52993,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("total_cpu_time").uint64("age").uint8("n_threads").uint32("heap_usage"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["total_cpu_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["age","writeUInt64LE",8]),s.prototype.fieldSpec.push(["n_threads","writeUInt8",1]),s.prototype.fieldSpec.push(["heap_usage","writeUInt32LE",4]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_THREAD_INFO",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_THREAD_INFO",n.prototype.msg_type=52994,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint64("total_cpu_time").uint64("age").uint8("state").uint32("stack_size").uint32("stack_usage").string("name",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["total_cpu_time","writeUInt64LE",8]),n.prototype.fieldSpec.push(["age","writeUInt64LE",8]),n.prototype.fieldSpec.push(["state","writeUInt8",1]),n.prototype.fieldSpec.push(["stack_size","writeUInt32LE",4]),n.prototype.fieldSpec.push(["stack_usage","writeUInt32LE",4]),n.prototype.fieldSpec.push(["name","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="ResourceBucket",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="ResourceBucket",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("name",{length:21}).uint8("thread").uint8("mutex").uint8("cv").uint8("io").uint32("heap_bytes_alloc").uint32("heap_bytes_free").uint32("io_write").uint32("io_read"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["name","string",21]),a.prototype.fieldSpec.push(["thread","writeUInt8",1]),a.prototype.fieldSpec.push(["mutex","writeUInt8",1]),a.prototype.fieldSpec.push(["cv","writeUInt8",1]),a.prototype.fieldSpec.push(["io","writeUInt8",1]),a.prototype.fieldSpec.push(["heap_bytes_alloc","writeUInt32LE",4]),a.prototype.fieldSpec.push(["heap_bytes_free","writeUInt32LE",4]),a.prototype.fieldSpec.push(["io_write","writeUInt32LE",4]),a.prototype.fieldSpec.push(["io_read","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_RESOURCE_COUNTER",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_RESOURCE_COUNTER",l.prototype.msg_type=52995,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("seq_no").uint8("seq_len").array("buckets",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["seq_no","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_len","writeUInt8",1]),l.prototype.fieldSpec.push(["buckets","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={52992:i,MsgMeasurementPoint:i,52993:s,MsgProfilingSystemInfo:s,52994:n,MsgProfilingThreadInfo:n,ResourceBucket:a,52995:l,MsgProfilingResourceCounter:l}},5232:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=(p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_SBAS_RAW",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_SBAS_RAW",s.prototype.msg_type=30583,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint32("tow").uint8("message_type").array("data",{length:27,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["message_type","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},27]),e.exports={30583:s,MsgSbasRaw:s}},7238:(e,t,p)=>{var r=p(4148),o=(p(6468),p(7898).UINT64),i=function(e,t,p,r){var o=new Buffer(e);return o[t](p,r||0),o};function s(e){return this.messageType="raw",this.sbp=e||{},this.fields={},this}o.prototype.toJSON=function(){return this.toString()},s.prototype.fieldSpec=[],s.prototype.payloadToBuffer=function(e,t){var p=[];for(var i in e=e||this.fieldSpec,t=t||this.fields,e){var s=e[i],n=s[0],a=s[1],l=function(e){return"function"==typeof e?e.apply(this):e}.bind(this);if("string"==typeof a&&0===a.indexOf("write")){var c=l(s[2]);if("writeUInt64LE"===a){r(t[n]instanceof o,"uint64 type must be represented by cuint.UINT64");var u=t[n].clone().shiftRight(32).and(new o(4294967295,0)).toNumber(),y=t[n].clone().and(new o(4294967295,0)).toNumber();let e=new Buffer(8);e.writeUInt32LE(y),e.writeUInt32LE(u,4),p.push(e)}else{let e=new Buffer(c);e[a](t[n],0),p.push(e)}}else if("string"===a){let e=new Buffer(t[n].length);e.write(t[n],0,"utf8"),p.push(e)}else if("array"===a){var f=s[2];for(var d in t[n]){var h=t[n][d];if(Array.isArray(f))p=p.concat(this.payloadToBuffer(f,h));else{let e=new Buffer(l(s[3]));e[f](h,0),p.push(e)}}}else p=p.concat(this.payloadToBuffer(a,t[n]))}return Buffer.concat(p)},s.prototype.getLengthBuffer=function(){return i(1,"writeUInt8",this.length||this.sbp.length,0)},s.prototype.getSenderBuffer=function(){return i(2,"writeUInt16LE",this.sender||this.sbp.sender,0)},s.prototype.getPreambleBuffer=function(){return i(1,"writeUInt8",this.preamble||this.sbp.preamble,0)},s.prototype.getMsgTypeBuffer=function(){return i(2,"writeUInt16LE",this.msg_type||this.sbp.msg_type,0)},s.prototype.toBuffer=function(){var e=this.payloadToBuffer(),t=i(2,"writeUInt16LE",this.crc||this.sbp.crc,0),p=[this.getPreambleBuffer(),this.getMsgTypeBuffer(),this.getSenderBuffer(),this.getLengthBuffer()];return Buffer.concat(p.concat(e).concat(t))},s.prototype.toJSON=function(){var e={};return Object.keys(this.sbp).forEach(function(t){this.sbp[t]instanceof Buffer?e[t]=this.sbp[t].toString("base64"):e[t]=this.sbp[t]}.bind(this)),Object.keys(this.fields).forEach(function(t){e[t]=this.fields[t]}.bind(this)),e},s.prototype.toBase64=function(){return this.toBuffer().toString("base64")},e.exports=s},4120:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_SAVE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_SAVE",i.prototype.msg_type=161,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE",s.prototype.msg_type=160,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["setting","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE_RESP",n.prototype.msg_type=175,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["status","writeUInt8",1]),n.prototype.fieldSpec.push(["setting","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_REQ",a.prototype.msg_type=164,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["setting","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_RESP",l.prototype.msg_type=165,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["setting","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",c.prototype.msg_type=162,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("index"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["index","writeUInt16LE",2]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",u.prototype.msg_type=167,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("index").string("setting",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt16LE",2]),u.prototype.fieldSpec.push(["setting","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",y.prototype.msg_type=166,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER",f.prototype.msg_type=174,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["setting","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",d.prototype.msg_type=431,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["status","writeUInt8",1]),d.prototype.fieldSpec.push(["setting","string",null]),e.exports={161:i,MsgSettingsSave:i,160:s,MsgSettingsWrite:s,175:n,MsgSettingsWriteResp:n,164:a,MsgSettingsReadReq:a,165:l,MsgSettingsReadResp:l,162:c,MsgSettingsReadByIndexReq:c,167:u,MsgSettingsReadByIndexResp:u,166:y,MsgSettingsReadByIndexDone:y,174:f,MsgSettingsRegister:f,431:d,MsgSettingsRegisterResp:d}},9286:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="UtcTime",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="UtcTime",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["year","writeUInt16LE",2]),i.prototype.fieldSpec.push(["month","writeUInt8",1]),i.prototype.fieldSpec.push(["day","writeUInt8",1]),i.prototype.fieldSpec.push(["hours","writeUInt8",1]),i.prototype.fieldSpec.push(["minutes","writeUInt8",1]),i.prototype.fieldSpec.push(["seconds","writeUInt8",1]),i.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let s=function(e,t){return r.call(this,e),this.messageType="ECDSASignature",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="ECDSASignature",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("len").array("data",{length:72,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["len","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},72]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_CERTIFICATE",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_CERTIFICATE",n.prototype.msg_type=3076,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("n_msg").array("certificate_id",{length:4,type:"uint8"}).uint8("flags").array("certificate_bytes",{type:"uint8",readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),n.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_CERTIFICATE_CHAIN",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_CERTIFICATE_CHAIN",a.prototype.msg_type=3081,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").array("root_certificate",{length:20,type:"uint8"}).array("intermediate_certificate",{length:20,type:"uint8"}).array("corrections_certificate",{length:20,type:"uint8"}).nest("expiration",{type:i.prototype.parser}).nest("signature",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["root_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["intermediate_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["corrections_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["expiration",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["signature",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_CERTIFICATE_CHAIN_DEP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_CERTIFICATE_CHAIN_DEP",l.prototype.msg_type=3077,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("root_certificate",{length:20,type:"uint8"}).array("intermediate_certificate",{length:20,type:"uint8"}).array("corrections_certificate",{length:20,type:"uint8"}).nest("expiration",{type:i.prototype.parser}).array("signature",{length:64,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["root_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["intermediate_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["corrections_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["expiration",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_AES_CMAC_SIGNATURE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_AES_CMAC_SIGNATURE",c.prototype.msg_type=3088,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).array("signature",{length:16,type:"uint8"}).uint8("flags").array("signed_messages",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),c.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),c.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),c.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},16]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]),c.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE",u.prototype.msg_type=3080,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).nest("signature",{type:s.prototype.parser}).array("signed_messages",{type:"uint8",readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt8",1]),u.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),u.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),u.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),u.prototype.fieldSpec.push(["signature",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE_DEP_B",y.prototype.msg_type=3079,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).uint8("n_signature_bytes").array("signature",{length:72,type:"uint8"}).array("signed_messages",{type:"uint8",readUntil:"eof"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt8",1]),y.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),y.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),y.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),y.prototype.fieldSpec.push(["n_signature_bytes","writeUInt8",1]),y.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},72]),y.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE_DEP_A",f.prototype.msg_type=3078,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).array("signature",{length:64,type:"uint8"}).array("signed_messages",{type:"uint8",readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),f.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),f.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),f.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),f.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_CERTIFICATE_DEP",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_CERTIFICATE_DEP",d.prototype.msg_type=3074,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("n_msg").array("fingerprint",{length:20,type:"uint8"}).array("certificate_bytes",{type:"uint8",readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),d.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),d.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_A",h.prototype.msg_type=3073,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("signature",{length:64,type:"uint8"}).array("fingerprint",{length:20,type:"uint8"}).array("signed_messages",{type:"uint32le",readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),h.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),h.prototype.fieldSpec.push(["signed_messages","array","writeUInt32LE",function(){return 4},null]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_B",_.prototype.msg_type=3075,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint8("stream_counter").uint8("on_demand_counter").array("signature",{length:64,type:"uint8"}).array("fingerprint",{length:20,type:"uint8"}).array("signed_messages",{type:"uint32le",readUntil:"eof"}),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),_.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),_.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),_.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),_.prototype.fieldSpec.push(["signed_messages","array","writeUInt32LE",function(){return 4},null]),e.exports={UtcTime:i,ECDSASignature:s,3076:n,MsgEcdsaCertificate:n,3081:a,MsgCertificateChain:a,3077:l,MsgCertificateChainDep:l,3088:c,MsgAesCmacSignature:c,3080:u,MsgEcdsaSignature:u,3079:y,MsgEcdsaSignatureDepB:y,3078:f,MsgEcdsaSignatureDepA:f,3074:d,MsgEd25519CertificateDep:d,3073:h,MsgEd25519SignatureDepA:h,3075:_,MsgEd25519SignatureDepB:_}},848:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="SolutionInputType",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="SolutionInputType",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sensor_type").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META_DEP_A",s.prototype.msg_type=65295,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("pdop").uint16("hdop").uint16("vdop").uint8("n_sats").uint16("age_corrections").uint8("alignment_status").uint32("last_used_gnss_pos_tow").uint32("last_used_gnss_vel_tow").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),s.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),s.prototype.fieldSpec.push(["alignment_status","writeUInt8",1]),s.prototype.fieldSpec.push(["last_used_gnss_pos_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["last_used_gnss_vel_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META",n.prototype.msg_type=65294,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").uint16("pdop").uint16("hdop").uint16("vdop").uint16("age_corrections").uint32("age_gnss").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_gnss","writeUInt32LE",4]),n.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let a=function(e,t){return r.call(this,e),this.messageType="GNSSInputType",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GNSSInputType",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="IMUInputType",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="IMUInputType",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="OdoInputType",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="OdoInputType",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={SolutionInputType:i,65295:s,MsgSolnMetaDepA:s,65294:n,MsgSolnMeta:n,GNSSInputType:a,IMUInputType:l,OdoInputType:c}},9269:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=(p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec),n=p(278).SvId,a=function(e,t){return r.call(this,e),this.messageType="CodeBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="CodeBiasesContent",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("code").int16("value"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["code","writeUInt8",1]),a.prototype.fieldSpec.push(["value","writeInt16LE",2]);let l=function(e,t){return r.call(this,e),this.messageType="PhaseBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="PhaseBiasesContent",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("code").uint8("integer_indicator").uint8("widelane_integer_indicator").uint8("discontinuity_counter").int32("bias"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["code","writeUInt8",1]),l.prototype.fieldSpec.push(["integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["widelane_integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["discontinuity_counter","writeUInt8",1]),l.prototype.fieldSpec.push(["bias","writeInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="STECHeader",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="STECHeader",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),c.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),c.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),c.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeader",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),u.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),u.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),u.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),u.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="STECSatElement",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="STECSatElement",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).uint8("stec_quality_indicator").array("stec_coeff",{length:4,type:"int16le"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["stec_quality_indicator","writeUInt8",1]),y.prototype.fieldSpec.push(["stec_coeff","array","writeInt16LE",function(){return 2},4]);let f=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrectionNoStd",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrectionNoStd",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),f.prototype.fieldSpec.push(["wet","writeInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrection",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),d.prototype.fieldSpec.push(["wet","writeInt8",1]),d.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="STECResidualNoStd",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),h.prototype.fieldSpec.push(["residual","writeInt16LE",2]);let _=function(e,t){return r.call(this,e),this.messageType="STECResidual",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="STECResidual",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual").uint8("stddev"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),_.prototype.fieldSpec.push(["residual","writeInt16LE",2]),_.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK",S.prototype.msg_type=1501,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint32("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),S.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),S.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),S.prototype.fieldSpec.push(["iod","writeUInt32LE",4]),S.prototype.fieldSpec.push(["radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["along","writeInt32LE",4]),S.prototype.fieldSpec.push(["cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["c0","writeInt32LE",4]),S.prototype.fieldSpec.push(["c1","writeInt32LE",4]),S.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_BIASES",g.prototype.msg_type=1505,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").array("biases",{type:a.prototype.parser,readUntil:"eof"}),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),g.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),g.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),g.prototype.fieldSpec.push(["biases","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_PHASE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_SSR_PHASE_BIASES",w.prototype.msg_type=1510,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("dispersive_bias").uint8("mw_consistency").uint16("yaw").int8("yaw_rate").array("biases",{type:l.prototype.parser,readUntil:"eof"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),w.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),w.prototype.fieldSpec.push(["dispersive_bias","writeUInt8",1]),w.prototype.fieldSpec.push(["mw_consistency","writeUInt8",1]),w.prototype.fieldSpec.push(["yaw","writeUInt16LE",2]),w.prototype.fieldSpec.push(["yaw_rate","writeInt8",1]),w.prototype.fieldSpec.push(["biases","array",l.prototype.fieldSpec,function(){return this.fields.array.length},null]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP",E.prototype.msg_type=1531,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("header",{type:c.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["header",c.prototype.fieldSpec]),E.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let m=function(e,t){return r.call(this,e),this.messageType="BoundsHeader",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="BoundsHeader",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("sol_id"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),m.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),m.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),m.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),m.prototype.fieldSpec.push(["sol_id","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION",b.prototype.msg_type=1533,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("n_sats").array("stec_sat_list",{type:y.prototype.parser,length:"n_sats"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),b.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),b.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION",I.prototype.msg_type=1532,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:d.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),I.prototype.fieldSpec.push(["index","writeUInt16LE",2]),I.prototype.fieldSpec.push(["tropo_delay_correction",d.prototype.fieldSpec]),I.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let L=function(e,t){return r.call(this,e),this.messageType="STECSatElementIntegrity",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="STECSatElementIntegrity",L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("stec_residual",{type:_.prototype.parser}).uint8("stec_bound_mu").uint8("stec_bound_sig").uint8("stec_bound_mu_dot").uint8("stec_bound_sig_dot"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["stec_residual",_.prototype.fieldSpec]),L.prototype.fieldSpec.push(["stec_bound_mu","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_mu_dot","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig_dot","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",T.prototype.msg_type=1534,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("tropo_qi").uint16("grid_point_id").nest("tropo_delay_correction",{type:d.prototype.parser}).uint8("tropo_v_hydro_bound_mu").uint8("tropo_v_hydro_bound_sig").uint8("tropo_v_wet_bound_mu").uint8("tropo_v_wet_bound_sig").uint8("n_sats").array("stec_sat_list",{type:L.prototype.parser,length:"n_sats"}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),T.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),T.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_qi","writeUInt8",1]),T.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_delay_correction",d.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["stec_sat_list","array",L.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_A",v.prototype.msg_type=1526,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),v.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),v.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),v.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_B",U.prototype.msg_type=1527,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),U.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),U.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),U.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),U.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION",O.prototype.msg_type=1528,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_atmo").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),O.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),O.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),O.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),O.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),O.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),O.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),O.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),O.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),O.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),O.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),O.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),O.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let M=function(e,t){return r.call(this,e),this.messageType="SatelliteAPC",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="SatelliteAPC",M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("sat_info").uint16("svn").array("pco",{length:3,type:"int16le"}).array("pcv",{length:21,type:"int8"}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),M.prototype.fieldSpec.push(["sat_info","writeUInt8",1]),M.prototype.fieldSpec.push(["svn","writeUInt16LE",2]),M.prototype.fieldSpec.push(["pco","array","writeInt16LE",function(){return 2},3]),M.prototype.fieldSpec.push(["pcv","array","writeInt8",function(){return 1},21]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC_DEP",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC_DEP",D.prototype.msg_type=1540,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").array("apc",{type:M.prototype.parser,readUntil:"eof"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["apc","array",M.prototype.fieldSpec,function(){return this.fields.array.length},null]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC",A.prototype.msg_type=1541,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_ssr").array("apc",{type:M.prototype.parser,readUntil:"eof"}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),A.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),A.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),A.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),A.prototype.fieldSpec.push(["apc","array",M.prototype.fieldSpec,function(){return this.fields.array.length},null]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",G.prototype.msg_type=1500,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),G.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),G.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),G.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),G.prototype.fieldSpec.push(["iod","writeUInt8",1]),G.prototype.fieldSpec.push(["radial","writeInt32LE",4]),G.prototype.fieldSpec.push(["along","writeInt32LE",4]),G.prototype.fieldSpec.push(["cross","writeInt32LE",4]),G.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),G.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),G.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),G.prototype.fieldSpec.push(["c0","writeInt32LE",4]),G.prototype.fieldSpec.push(["c1","writeInt32LE",4]),G.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let C=function(e,t){return r.call(this,e),this.messageType="STECHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="STECHeaderDepA",C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),C.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),C.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),C.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),C.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeaderDepA",j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),j.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),j.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),j.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),j.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),j.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="GridDefinitionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="GridDefinitionHeaderDepA",P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint8("region_size_inverse").uint16("area_width").uint16("lat_nw_corner_enc").uint16("lon_nw_corner_enc").uint8("num_msgs").uint8("seq_num"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["region_size_inverse","writeUInt8",1]),P.prototype.fieldSpec.push(["area_width","writeUInt16LE",2]),P.prototype.fieldSpec.push(["lat_nw_corner_enc","writeUInt16LE",2]),P.prototype.fieldSpec.push(["lon_nw_corner_enc","writeUInt16LE",2]),P.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),P.prototype.fieldSpec.push(["seq_num","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP_A",R.prototype.msg_type=1515,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("header",{type:C.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["header",C.prototype.fieldSpec]),R.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",N.prototype.msg_type=1520,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").nest("header",{type:j.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:h.prototype.parser,readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["header",j.prototype.fieldSpec]),N.prototype.fieldSpec.push(["index","writeUInt16LE",2]),N.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),N.prototype.fieldSpec.push(["stec_residuals","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",x.prototype.msg_type=1530,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").nest("header",{type:j.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:d.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["header",j.prototype.fieldSpec]),x.prototype.fieldSpec.push(["index","writeUInt16LE",2]),x.prototype.fieldSpec.push(["tropo_delay_correction",d.prototype.fieldSpec]),x.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRID_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRID_DEFINITION_DEP_A",F.prototype.msg_type=1525,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").nest("header",{type:P.prototype.parser}).array("rle_list",{type:"uint8",readUntil:"eof"}),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["header",P.prototype.fieldSpec]),F.prototype.fieldSpec.push(["rle_list","array","writeUInt8",function(){return 1},null]);let k=function(e,t){return r.call(this,e),this.messageType="OrbitClockBound",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="OrbitClockBound",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("orb_radial_bound_mu").uint8("orb_along_bound_mu").uint8("orb_cross_bound_mu").uint8("orb_radial_bound_sig").uint8("orb_along_bound_sig").uint8("orb_cross_bound_sig").uint8("clock_bound_mu").uint8("clock_bound_sig"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_radial_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_along_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_cross_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_radial_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_along_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_cross_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["clock_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["clock_bound_sig","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",B.prototype.msg_type=1502,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats").array("orbit_clock_bounds",{type:k.prototype.parser,length:"n_sats"}),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),B.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),B.prototype.fieldSpec.push(["const_id","writeUInt8",1]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["orbit_clock_bounds","array",k.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let q=function(e,t){return r.call(this,e),this.messageType="CodePhaseBiasesSatSig",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="CodePhaseBiasesSatSig",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("signal_id").uint8("code_bias_bound_mu").uint8("code_bias_bound_sig").uint8("phase_bias_bound_mu").uint8("phase_bias_bound_sig"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),q.prototype.fieldSpec.push(["signal_id","writeUInt8",1]),q.prototype.fieldSpec.push(["code_bias_bound_mu","writeUInt8",1]),q.prototype.fieldSpec.push(["code_bias_bound_sig","writeUInt8",1]),q.prototype.fieldSpec.push(["phase_bias_bound_mu","writeUInt8",1]),q.prototype.fieldSpec.push(["phase_bias_bound_sig","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",z.prototype.msg_type=1516,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats_signals").array("satellites_signals",{type:q.prototype.parser,length:"n_sats_signals"}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),z.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),z.prototype.fieldSpec.push(["const_id","writeUInt8",1]),z.prototype.fieldSpec.push(["n_sats_signals","writeUInt8",1]),z.prototype.fieldSpec.push(["satellites_signals","array",q.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats_signals"]);let V=function(e,t){return r.call(this,e),this.messageType="OrbitClockBoundDegradation",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="OrbitClockBoundDegradation",V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").uint8("orb_radial_bound_mu_dot").uint8("orb_along_bound_mu_dot").uint8("orb_cross_bound_mu_dot").uint8("orb_radial_bound_sig_dot").uint8("orb_along_bound_sig_dot").uint8("orb_cross_bound_sig_dot").uint8("clock_bound_mu_dot").uint8("clock_bound_sig_dot"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["orb_radial_bound_mu_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_along_bound_mu_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_cross_bound_mu_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_radial_bound_sig_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_along_bound_sig_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["orb_cross_bound_sig_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["clock_bound_mu_dot","writeUInt8",1]),V.prototype.fieldSpec.push(["clock_bound_sig_dot","writeUInt8",1]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",H.prototype.msg_type=1503,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint64("sat_bitmask").nest("orbit_clock_bounds_degradation",{type:V.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),H.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),H.prototype.fieldSpec.push(["const_id","writeUInt8",1]),H.prototype.fieldSpec.push(["sat_bitmask","writeUInt64LE",8]),H.prototype.fieldSpec.push(["orbit_clock_bounds_degradation",V.prototype.fieldSpec]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:f,TroposphericDelayCorrection:d,STECResidualNoStd:h,STECResidual:_,1501:S,MsgSsrOrbitClock:S,1505:g,MsgSsrCodeBiases:g,1510:w,MsgSsrPhaseBiases:w,1531:E,MsgSsrStecCorrectionDep:E,BoundsHeader:m,1533:b,MsgSsrStecCorrection:b,1532:I,MsgSsrGriddedCorrection:I,STECSatElementIntegrity:L,1534:T,MsgSsrGriddedCorrectionBounds:T,1526:v,MsgSsrTileDefinitionDepA:v,1527:U,MsgSsrTileDefinitionDepB:U,1528:O,MsgSsrTileDefinition:O,SatelliteAPC:M,1540:D,MsgSsrSatelliteApcDep:D,1541:A,MsgSsrSatelliteApc:A,1500:G,MsgSsrOrbitClockDepA:G,STECHeaderDepA:C,GriddedCorrectionHeaderDepA:j,GridDefinitionHeaderDepA:P,1515:R,MsgSsrStecCorrectionDepA:R,1520:N,MsgSsrGriddedCorrectionNoStdDepA:N,1530:x,MsgSsrGriddedCorrectionDepA:x,1525:F,MsgSsrGridDefinitionDepA:F,OrbitClockBound:k,1502:B,MsgSsrOrbitClockBounds:B,CodePhaseBiasesSatSig:q,1516:z,MsgSsrCodePhaseBiasesBounds:z,OrbitClockBoundDegradation:V,1503:H,MsgSsrOrbitClockBoundsDegradation:H}},2644:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_STARTUP",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_STARTUP",i.prototype.msg_type=65280,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("cause").uint8("startup_type").uint16("reserved"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["cause","writeUInt8",1]),i.prototype.fieldSpec.push(["startup_type","writeUInt8",1]),i.prototype.fieldSpec.push(["reserved","writeUInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_DGNSS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_DGNSS_STATUS",s.prototype.msg_type=65282,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("flags").uint16("latency").uint8("num_signals").string("source",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["latency","writeUInt16LE",2]),s.prototype.fieldSpec.push(["num_signals","writeUInt8",1]),s.prototype.fieldSpec.push(["source","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_HEARTBEAT",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_HEARTBEAT",n.prototype.msg_type=65535,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="SubSystemReport",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="SubSystemReport",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint16("component").uint8("generic").uint8("specific"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["component","writeUInt16LE",2]),a.prototype.fieldSpec.push(["generic","writeUInt8",1]),a.prototype.fieldSpec.push(["specific","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_REPORT",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_REPORT",l.prototype.msg_type=65534,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("sequence").uint32("uptime").array("status",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),l.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),l.prototype.fieldSpec.push(["status","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let c=function(e,t){return r.call(this,e),this.messageType="StatusJournalItem",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="StatusJournalItem",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("uptime").nest("report",{type:a.prototype.parser}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["report",a.prototype.fieldSpec]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_JOURNAL",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_JOURNAL",u.prototype.msg_type=65533,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("total_status_reports").uint8("sequence_descriptor").array("journal",{type:c.prototype.parser,readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),u.prototype.fieldSpec.push(["total_status_reports","writeUInt32LE",4]),u.prototype.fieldSpec.push(["sequence_descriptor","writeUInt8",1]),u.prototype.fieldSpec.push(["journal","array",c.prototype.fieldSpec,function(){return this.fields.array.length},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_INS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_INS_STATUS",y.prototype.msg_type=65283,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY",f.prototype.msg_type=65284,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["id","writeUInt8",1]),f.prototype.fieldSpec.push(["telemetry","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",d.prototype.msg_type=65285,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["id","writeUInt8",1]),d.prototype.fieldSpec.push(["telemetry_labels","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_INS_UPDATES",h.prototype.msg_type=65286,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),h.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),h.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),h.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),h.prototype.fieldSpec.push(["speed","writeUInt8",1]),h.prototype.fieldSpec.push(["nhc","writeUInt8",1]),h.prototype.fieldSpec.push(["zerovel","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_TIME_OFFSET",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_TIME_OFFSET",_.prototype.msg_type=65287,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("weeks").int32("milliseconds").int16("microseconds").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["weeks","writeInt16LE",2]),_.prototype.fieldSpec.push(["milliseconds","writeInt32LE",4]),_.prototype.fieldSpec.push(["microseconds","writeInt16LE",2]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_PPS_TIME",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_PPS_TIME",S.prototype.msg_type=65288,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time","writeUInt64LE",8]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SENSOR_AID_EVENT",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SENSOR_AID_EVENT",g.prototype.msg_type=65289,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("time").uint8("sensor_type").uint16("sensor_id").uint8("sensor_state").uint8("n_available_meas").uint8("n_attempted_meas").uint8("n_accepted_meas").uint32("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time","writeUInt32LE",4]),g.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),g.prototype.fieldSpec.push(["sensor_id","writeUInt16LE",2]),g.prototype.fieldSpec.push(["sensor_state","writeUInt8",1]),g.prototype.fieldSpec.push(["n_available_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_attempted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_accepted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_META",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_META",w.prototype.msg_type=65290,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("group_id").uint8("flags").uint8("n_group_msgs").array("group_msgs",{type:"uint16le",length:"n_group_msgs"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["group_id","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]),w.prototype.fieldSpec.push(["n_group_msgs","writeUInt8",1]),w.prototype.fieldSpec.push(["group_msgs","array","writeUInt16LE",function(){return 2},"n_group_msgs"]),e.exports={65280:i,MsgStartup:i,65282:s,MsgDgnssStatus:s,65535:n,MsgHeartbeat:n,SubSystemReport:a,65534:l,MsgStatusReport:l,StatusJournalItem:c,65533:u,MsgStatusJournal:u,65283:y,MsgInsStatus:y,65284:f,MsgCsacTelemetry:f,65285:d,MsgCsacTelemetryLabels:d,65286:h,MsgInsUpdates:h,65287:_,MsgGnssTimeOffset:_,65288:S,MsgPpsTime:S,65289:g,MsgSensorAidEvent:g,65290:w,MsgGroupMeta:w}},3894:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase,p(278).GnssSignal),s=(p(278).GnssSignalDep,p(278).GPSTime,p(278).GPSTimeDep,p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="TelemetrySV",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="TelemetrySV",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("az").int8("el").uint8("availability_flags").int16("pseudorange_residual").int16("phase_residual").uint8("outlier_flags").uint8("ephemeris_flags").uint8("correction_flags").nest("sid",{type:i.prototype.parser}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["az","writeUInt8",1]),s.prototype.fieldSpec.push(["el","writeInt8",1]),s.prototype.fieldSpec.push(["availability_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["pseudorange_residual","writeInt16LE",2]),s.prototype.fieldSpec.push(["phase_residual","writeInt16LE",2]),s.prototype.fieldSpec.push(["outlier_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["ephemeris_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["correction_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_TEL_SV",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_TEL_SV",n.prototype.msg_type=288,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").uint8("n_obs").uint8("origin_flags").array("sv_tel",{type:s.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["n_obs","writeUInt8",1]),n.prototype.fieldSpec.push(["origin_flags","writeUInt8",1]),n.prototype.fieldSpec.push(["sv_tel","array",s.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={TelemetrySV:s,288:n,MsgTelSv:n}},752:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,p(278).CarrierPhase),s=p(278).GnssSignal,n=p(278).GnssSignalDep,a=p(278).GPSTime,l=p(278).GPSTimeDep,c=(p(278).GPSTimeSec,p(278).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(c.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",c.prototype.msg_type=33,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:a.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:s.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),c.prototype.fieldSpec.push(["tot",a.prototype.fieldSpec]),c.prototype.fieldSpec.push(["P","writeUInt32LE",4]),c.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),c.prototype.fieldSpec.push(["cn0","writeUInt8",1]),c.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),c.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),c.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),c.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),c.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),c.prototype.fieldSpec.push(["acceleration","writeInt8",1]),c.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP",u.prototype.msg_type=17,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:l.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),u.prototype.fieldSpec.push(["tot",l.prototype.fieldSpec]),u.prototype.fieldSpec.push(["P","writeUInt32LE",4]),u.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["cn0","writeUInt8",1]),u.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),u.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),u.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),u.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),u.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),u.prototype.fieldSpec.push(["acceleration","writeInt8",1]),u.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="TrackingChannelState",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="TrackingChannelState",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("fcn").uint8("cn0"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["fcn","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE",f.prototype.msg_type=65,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("states",{type:y.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["states","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let d=function(e,t){return r.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MeasurementState",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("mesid",{type:s.prototype.parser}).uint8("cn0"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["mesid",s.prototype.fieldSpec]),d.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_STATE",h.prototype.msg_type=97,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("states",{type:d.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["states","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelation",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelation",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("I").int16("Q"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["I","writeInt16LE",2]),_.prototype.fieldSpec.push(["Q","writeInt16LE",2]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ",S.prototype.msg_type=45,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:_.prototype.parser}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["channel","writeUInt8",1]),S.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["corrs","array",_.prototype.fieldSpec,function(){return this.fields.array.length},3]);let g=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelationDep",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelationDep",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").int32("I").int32("Q"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["I","writeInt32LE",4]),g.prototype.fieldSpec.push(["Q","writeInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_B",w.prototype.msg_type=44,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["channel","writeUInt8",1]),w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_A",E.prototype.msg_type=28,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:n.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["channel","writeUInt8",1]),E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let m=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepA",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepA",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint8("state").uint8("prn").floatle("cn0"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["state","writeUInt8",1]),m.prototype.fieldSpec.push(["prn","writeUInt8",1]),m.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_A",b.prototype.msg_type=22,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").array("states",{type:m.prototype.parser,readUntil:"eof"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["states","array",m.prototype.fieldSpec,function(){return this.fields.array.length},null]);let I=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepB",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepB",I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint8("state").nest("sid",{type:n.prototype.parser}).floatle("cn0"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["state","writeUInt8",1]),I.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),I.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_B",L.prototype.msg_type=19,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").array("states",{type:I.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["states","array",I.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={33:c,MsgTrackingStateDetailedDepA:c,17:u,MsgTrackingStateDetailedDep:u,TrackingChannelState:y,65:f,MsgTrackingState:f,MeasurementState:d,97:h,MsgMeasurementState:h,TrackingChannelCorrelation:_,45:S,MsgTrackingIq:S,TrackingChannelCorrelationDep:g,44:w,MsgTrackingIqDepB:w,28:E,MsgTrackingIqDepA:E,TrackingChannelStateDepA:m,22:b,MsgTrackingStateDepA:b,TrackingChannelStateDepB:I,19:L,MsgTrackingStateDepB:L}},5562:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_USER_DATA",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_USER_DATA",i.prototype.msg_type=2048,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").array("contents",{type:"uint8",readUntil:"eof"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]),e.exports={2048:i,MsgUserData:i}},7293:(e,t,p)=>{let r=p(7238),o=p(7978),i=(p(6468),p(7898).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_ODOMETRY",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_ODOMETRY",i.prototype.msg_type=2307,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").int32("velocity").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["velocity","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_WHEELTICK",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_WHEELTICK",s.prototype.msg_type=2308,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags").uint8("source").int32("ticks"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["ticks","writeInt32LE",4]),e.exports={2307:i,MsgOdometry:i,2308:s,MsgWheeltick:s}},4148:(e,t,p)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){for(var p=0;p1?p-1:0),o=1;o1?p-1:0),o=1;o1?p-1:0),o=1;o1?p-1:0),o=1;o{"use strict";function r(e,t){var p=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),p.push.apply(p,r)}return p}function o(e){for(var t=1;te.length)&&(p=e.length),e.substring(p-t.length,p)===t}var g="",w="",E="",m="",b={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function I(e){var t=Object.keys(e),p=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){p[t]=e[t]})),Object.defineProperty(p,"message",{value:e.message}),p}function L(e){return h(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var T=function(e,t){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&y(e,t)}(T,e);var p,r,s,l,c=(p=T,r=u(),function(){var e,t=f(p);if(r){var o=f(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return n(this,e)});function T(e){var t;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,T),"object"!==d(e)||null===e)throw new _("options","Object",e);var p=e.message,r=e.operator,o=e.stackStartFn,i=e.actual,s=e.expected,l=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=p)t=c.call(this,String(p));else if(process.stderr&&process.stderr.isTTY&&(process.stderr&&process.stderr.getColorDepth&&1!==process.stderr.getColorDepth()?(g="",w="",m="",E=""):(g="",w="",m="",E="")),"object"===d(i)&&null!==i&&"object"===d(s)&&null!==s&&"stack"in i&&i instanceof Error&&"stack"in s&&s instanceof Error&&(i=I(i),s=I(s)),"deepStrictEqual"===r||"strictEqual"===r)t=c.call(this,function(e,t,p){var r="",o="",i=0,s="",n=!1,a=L(e),l=a.split("\n"),c=L(t).split("\n"),u=0,y="";if("strictEqual"===p&&"object"===d(e)&&"object"===d(t)&&null!==e&&null!==t&&(p="strictEqualObject"),1===l.length&&1===c.length&&l[0]!==c[0]){var f=l[0].length+c[0].length;if(f<=10){if(!("object"===d(e)&&null!==e||"object"===d(t)&&null!==t||0===e&&0===t))return"".concat(b[p],"\n\n")+"".concat(l[0]," !== ").concat(c[0],"\n")}else if("strictEqualObject"!==p&&f<(process.stderr&&process.stderr.isTTY?process.stderr.columns:80)){for(;l[0][u]===c[0][u];)u++;u>2&&(y="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var p=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,p-e.length)}(" ",u),"^"),u=0)}}for(var h=l[l.length-1],_=c[c.length-1];h===_&&(u++<2?s="\n ".concat(h).concat(s):r=h,l.pop(),c.pop(),0!==l.length&&0!==c.length);)h=l[l.length-1],_=c[c.length-1];var I=Math.max(l.length,c.length);if(0===I){var T=a.split("\n");if(T.length>30)for(T[26]="".concat(g,"...").concat(m);T.length>27;)T.pop();return"".concat(b.notIdentical,"\n\n").concat(T.join("\n"),"\n")}u>3&&(s="\n".concat(g,"...").concat(m).concat(s),n=!0),""!==r&&(s="\n ".concat(r).concat(s),r="");var v=0,U=b[p]+"\n".concat(w,"+ actual").concat(m," ").concat(E,"- expected").concat(m),O=" ".concat(g,"...").concat(m," Lines skipped");for(u=0;u1&&u>2&&(M>4?(o+="\n".concat(g,"...").concat(m),n=!0):M>3&&(o+="\n ".concat(c[u-2]),v++),o+="\n ".concat(c[u-1]),v++),i=u,r+="\n".concat(E,"-").concat(m," ").concat(c[u]),v++;else if(c.length1&&u>2&&(M>4?(o+="\n".concat(g,"...").concat(m),n=!0):M>3&&(o+="\n ".concat(l[u-2]),v++),o+="\n ".concat(l[u-1]),v++),i=u,o+="\n".concat(w,"+").concat(m," ").concat(l[u]),v++;else{var D=c[u],A=l[u],G=A!==D&&(!S(A,",")||A.slice(0,-1)!==D);G&&S(D,",")&&D.slice(0,-1)===A&&(G=!1,A+=","),G?(M>1&&u>2&&(M>4?(o+="\n".concat(g,"...").concat(m),n=!0):M>3&&(o+="\n ".concat(l[u-2]),v++),o+="\n ".concat(l[u-1]),v++),i=u,o+="\n".concat(w,"+").concat(m," ").concat(A),r+="\n".concat(E,"-").concat(m," ").concat(D),v+=2):(o+=r,r="",1!==M&&0!==u||(o+="\n ".concat(A),v++))}if(v>20&&u30)for(y[26]="".concat(g,"...").concat(m);y.length>27;)y.pop();t=1===y.length?c.call(this,"".concat(u," ").concat(y[0])):c.call(this,"".concat(u,"\n\n").concat(y.join("\n"),"\n"))}else{var f=L(i),h="",v=b[r];"notDeepEqual"===r||"notEqual"===r?(f="".concat(b[r],"\n\n").concat(f)).length>1024&&(f="".concat(f.slice(0,1021),"...")):(h="".concat(L(s)),f.length>512&&(f="".concat(f.slice(0,509),"...")),h.length>512&&(h="".concat(h.slice(0,509),"...")),"deepEqual"===r||"equal"===r?f="".concat(v,"\n\n").concat(f,"\n\nshould equal\n\n"):h=" ".concat(r," ").concat(h)),t=c.call(this,"".concat(f).concat(h))}return Error.stackTraceLimit=l,t.generatedMessage=!p,Object.defineProperty(a(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=i,t.expected=s,t.operator=r,Error.captureStackTrace&&Error.captureStackTrace(a(t),o),t.stack,t.name="AssertionError",n(t)}return s=T,(l=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return h(this,o(o({},t),{},{customInspect:!1,depth:0}))}}])&&i(s.prototype,l),Object.defineProperty(s,"prototype",{writable:!1}),T}(l(Error),h.custom);e.exports=T},9597:(e,t,p)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}var s,n,a={};function l(e,t,p){p||(p=Error);var s=function(p){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&o(e,t)}(c,p);var s,n,a,l=(n=c,a=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=i(n);if(a){var p=i(this).constructor;e=Reflect.construct(t,arguments,p)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,e)});function c(p,r,o){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),i=l.call(this,function(e,p,r){return"string"==typeof t?t:t(e,p,r)}(p,r,o)),i.code=e,i}return s=c,Object.defineProperty(s,"prototype",{writable:!1}),s}(p);a[e]=s}function c(e,t){if(Array.isArray(e)){var p=e.length;return e=e.map((function(e){return String(e)})),p>2?"one of ".concat(t," ").concat(e.slice(0,p-1).join(", "),", or ")+e[p-1]:2===p?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}l("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),l("ERR_INVALID_ARG_TYPE",(function(e,t,o){var i,n,a,l,u;if(void 0===s&&(s=p(4148)),s("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(n="not ",t.substr(0,4)===n)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,p){return(void 0===p||p>e.length)&&(p=e.length),e.substring(p-9,p)===t}(e," argument"))a="The ".concat(e," ").concat(i," ").concat(c(t,"type"));else{var y=("number"!=typeof u&&(u=0),u+1>(l=e).length||-1===l.indexOf(".",u)?"argument":"property");a='The "'.concat(e,'" ').concat(y," ").concat(i," ").concat(c(t,"type"))}return a+". Received type ".concat(r(o))}),TypeError),l("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===n&&(n=p(4591));var o=n.inspect(t);return o.length>128&&(o="".concat(o.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(o)}),TypeError,RangeError),l("ERR_INVALID_RETURN_VALUE",(function(e,t,p){var o;return o=p&&p.constructor&&p.constructor.name?"instance of ".concat(p.constructor.name):"type ".concat(r(p)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(o,".")}),TypeError),l("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0,"At least one arg needs to be specified");var o="The ",i=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),i){case 1:o+="".concat(t[0]," argument");break;case 2:o+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:o+=t.slice(0,i-1).join(", "),o+=", and ".concat(t[i-1]," arguments")}return"".concat(o," must be specified")}),TypeError),e.exports.codes=a},2299:(e,t,p)=>{"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var p=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=p){var r,o,i,s,n=[],a=!0,l=!1;try{if(i=(p=p.call(e)).next,0===t){if(Object(p)!==p)return;a=!1}else for(;!(a=(r=i.call(p)).done)&&(n.push(r.value),n.length!==t);a=!0);}catch(e){l=!0,o=e}finally{try{if(!a&&null!=p.return&&(s=p.return(),Object(s)!==s))return}finally{if(l)throw o}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var p=Object.prototype.toString.call(e).slice(8,-1);return"Object"===p&&e.constructor&&(p=e.constructor.name),"Map"===p||"Set"===p?Array.from(e):"Arguments"===p||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var p=0,r=new Array(t);p10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function C(e){return Object.keys(e).filter(G).concat(c(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function j(e,t){if(e===t)return 0;for(var p=e.length,r=t.length,o=0,i=Math.min(p,r);o{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},2078:(e,t,p)=>{"use strict";var r=p(7244),o=p(8184),i=p(5767),s=p(5680);function n(e){return e.call.bind(e)}var a="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,c=n(Object.prototype.toString),u=n(Number.prototype.valueOf),y=n(String.prototype.valueOf),f=n(Boolean.prototype.valueOf);if(a)var d=n(BigInt.prototype.valueOf);if(l)var h=n(Symbol.prototype.valueOf);function _(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function S(e){return"[object Map]"===c(e)}function g(e){return"[object Set]"===c(e)}function w(e){return"[object WeakMap]"===c(e)}function E(e){return"[object WeakSet]"===c(e)}function m(e){return"[object ArrayBuffer]"===c(e)}function b(e){return"undefined"!=typeof ArrayBuffer&&(m.working?m(e):e instanceof ArrayBuffer)}function I(e){return"[object DataView]"===c(e)}function L(e){return"undefined"!=typeof DataView&&(I.working?I(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=o,t.isTypedArray=s,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):s(e)||L(e)},t.isUint8Array=function(e){return"Uint8Array"===i(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===i(e)},t.isUint16Array=function(e){return"Uint16Array"===i(e)},t.isUint32Array=function(e){return"Uint32Array"===i(e)},t.isInt8Array=function(e){return"Int8Array"===i(e)},t.isInt16Array=function(e){return"Int16Array"===i(e)},t.isInt32Array=function(e){return"Int32Array"===i(e)},t.isFloat32Array=function(e){return"Float32Array"===i(e)},t.isFloat64Array=function(e){return"Float64Array"===i(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===i(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===i(e)},S.working="undefined"!=typeof Map&&S(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(S.working?S(e):e instanceof Map)},g.working="undefined"!=typeof Set&&g(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(g.working?g(e):e instanceof Set)},w.working="undefined"!=typeof WeakMap&&w(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(w.working?w(e):e instanceof WeakMap)},E.working="undefined"!=typeof WeakSet&&E(new WeakSet),t.isWeakSet=function(e){return E(e)},m.working="undefined"!=typeof ArrayBuffer&&m(new ArrayBuffer),t.isArrayBuffer=b,I.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&I(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=L;var T="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function v(e){return"[object SharedArrayBuffer]"===c(e)}function U(e){return void 0!==T&&(void 0===v.working&&(v.working=v(new T)),v.working?v(e):e instanceof T)}function O(e){return _(e,u)}function M(e){return _(e,y)}function D(e){return _(e,f)}function A(e){return a&&_(e,d)}function G(e){return l&&_(e,h)}t.isSharedArrayBuffer=U,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===c(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===c(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===c(e)},t.isGeneratorObject=function(e){return"[object Generator]"===c(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===c(e)},t.isNumberObject=O,t.isStringObject=M,t.isBooleanObject=D,t.isBigIntObject=A,t.isSymbolObject=G,t.isBoxedPrimitive=function(e){return O(e)||M(e)||D(e)||A(e)||G(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(b(e)||U(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},4591:(e,t,p)=>{var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),p={},r=0;r=i)return e;switch(e){case"%s":return String(r[p++]);case"%d":return Number(r[p++]);case"%j":try{return JSON.stringify(r[p++])}catch(e){return"[Circular]"}default:return e}})),n=r[p];p=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),h(p)?r.showHidden=p:p&&t._extend(r,p),w(r.showHidden)&&(r.showHidden=!1),w(r.depth)&&(r.depth=2),w(r.colors)&&(r.colors=!1),w(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),u(r,e,r.depth)}function l(e,t){var p=a.styles[t];return p?"["+a.colors[p][0]+"m"+e+"["+a.colors[p][1]+"m":e}function c(e,t){return e}function u(e,p,r){if(e.customInspect&&p&&L(p.inspect)&&p.inspect!==t.inspect&&(!p.constructor||p.constructor.prototype!==p)){var o=p.inspect(r,e);return g(o)||(o=u(e,o,r)),o}var i=function(e,t){if(w(t))return e.stylize("undefined","undefined");if(g(t)){var p="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(p,"string")}return S(t)?e.stylize(""+t,"number"):h(t)?e.stylize(""+t,"boolean"):_(t)?e.stylize("null","null"):void 0}(e,p);if(i)return i;var s=Object.keys(p),n=function(e){var t={};return e.forEach((function(e,p){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(p)),I(p)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return y(p);if(0===s.length){if(L(p)){var a=p.name?": "+p.name:"";return e.stylize("[Function"+a+"]","special")}if(E(p))return e.stylize(RegExp.prototype.toString.call(p),"regexp");if(b(p))return e.stylize(Date.prototype.toString.call(p),"date");if(I(p))return y(p)}var l,c="",m=!1,T=["{","}"];return d(p)&&(m=!0,T=["[","]"]),L(p)&&(c=" [Function"+(p.name?": "+p.name:"")+"]"),E(p)&&(c=" "+RegExp.prototype.toString.call(p)),b(p)&&(c=" "+Date.prototype.toUTCString.call(p)),I(p)&&(c=" "+y(p)),0!==s.length||m&&0!=p.length?r<0?E(p)?e.stylize(RegExp.prototype.toString.call(p),"regexp"):e.stylize("[Object]","special"):(e.seen.push(p),l=m?function(e,t,p,r,o){for(var i=[],s=0,n=t.length;s60?p[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+p[1]:p[0]+t+" "+e.join(", ")+" "+p[1]}(l,c,T)):T[0]+c+T[1]}function y(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,p,r,o,i){var s,n,a;if((a=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?n=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(n=e.stylize("[Setter]","special")),O(r,o)||(s="["+o+"]"),n||(e.seen.indexOf(a.value)<0?(n=_(p)?u(e,a.value,null):u(e,a.value,p-1)).indexOf("\n")>-1&&(n=i?n.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+n.split("\n").map((function(e){return" "+e})).join("\n")):n=e.stylize("[Circular]","special")),w(s)){if(i&&o.match(/^\d+$/))return n;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.slice(1,-1),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+n}function d(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function _(e){return null===e}function S(e){return"number"==typeof e}function g(e){return"string"==typeof e}function w(e){return void 0===e}function E(e){return m(e)&&"[object RegExp]"===T(e)}function m(e){return"object"==typeof e&&null!==e}function b(e){return m(e)&&"[object Date]"===T(e)}function I(e){return m(e)&&("[object Error]"===T(e)||e instanceof Error)}function L(e){return"function"==typeof e}function T(e){return Object.prototype.toString.call(e)}function v(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!i[e])if(s.test(e)){var p=process.pid;i[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,p,r)}}else i[e]=function(){};return i[e]},t.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=p(2078),t.isArray=d,t.isBoolean=h,t.isNull=_,t.isNullOrUndefined=function(e){return null==e},t.isNumber=S,t.isString=g,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=w,t.isRegExp=E,t.types.isRegExp=E,t.isObject=m,t.isDate=b,t.types.isDate=b,t.isError=I,t.types.isNativeError=I,t.isFunction=L,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=p(3845);var U=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,p;console.log("%s - %s",(p=[v((e=new Date).getHours()),v(e.getMinutes()),v(e.getSeconds())].join(":"),[e.getDate(),U[e.getMonth()],p].join(" ")),t.format.apply(t,arguments))},t.inherits=p(6698),t._extend=function(e,t){if(!t||!m(t))return e;for(var p=Object.keys(t),r=p.length;r--;)e[p[r]]=t[p[r]];return e};var M="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function D(e,t){if(!e){var p=new Error("Promise was rejected with a falsy value");p.reason=e,e=p}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(M&&e[M]){var t;if("function"!=typeof(t=e[M]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,M,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,p,r=new Promise((function(e,r){t=e,p=r})),o=[],i=0;i{"use strict";t.i=void 0,p(9160);var r=p(5682),o={},i="___parser_",s={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},n={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},a={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1},l=function(){function e(){this.varName="",this.type="",this.options={},this.next=null,this.head=null,this.compiled=null,this.endian="be",this.constructorFn=null,this.alias=null}return e.start=function(){return new e},e.prototype.primitiveGenerateN=function(e,t){var p=n[e],r=a[e];t.pushCode(t.generateVariable(this.varName)+" = dataView.get"+p+"(offset, "+r+");"),t.pushCode("offset += "+s[e]+";")},e.prototype.primitiveN=function(e,t,p){return this.setNextParser(e,t,p)},e.prototype.useThisEndian=function(e){return e+this.endian.toLowerCase()},e.prototype.uint8=function(e,t){return this.primitiveN("uint8",e,t)},e.prototype.uint16=function(e,t){return this.primitiveN(this.useThisEndian("uint16"),e,t)},e.prototype.uint16le=function(e,t){return this.primitiveN("uint16le",e,t)},e.prototype.uint16be=function(e,t){return this.primitiveN("uint16be",e,t)},e.prototype.uint32=function(e,t){return this.primitiveN(this.useThisEndian("uint32"),e,t)},e.prototype.uint32le=function(e,t){return this.primitiveN("uint32le",e,t)},e.prototype.uint32be=function(e,t){return this.primitiveN("uint32be",e,t)},e.prototype.int8=function(e,t){return this.primitiveN("int8",e,t)},e.prototype.int16=function(e,t){return this.primitiveN(this.useThisEndian("int16"),e,t)},e.prototype.int16le=function(e,t){return this.primitiveN("int16le",e,t)},e.prototype.int16be=function(e,t){return this.primitiveN("int16be",e,t)},e.prototype.int32=function(e,t){return this.primitiveN(this.useThisEndian("int32"),e,t)},e.prototype.int32le=function(e,t){return this.primitiveN("int32le",e,t)},e.prototype.int32be=function(e,t){return this.primitiveN("int32be",e,t)},e.prototype.bigIntVersionCheck=function(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported in this runtime")},e.prototype.int64=function(e,t){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),e,t)},e.prototype.int64be=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("int64be",e,t)},e.prototype.int64le=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("int64le",e,t)},e.prototype.uint64=function(e,t){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),e,t)},e.prototype.uint64be=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("uint64be",e,t)},e.prototype.uint64le=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("uint64le",e,t)},e.prototype.floatle=function(e,t){return this.primitiveN("floatle",e,t)},e.prototype.floatbe=function(e,t){return this.primitiveN("floatbe",e,t)},e.prototype.doublele=function(e,t){return this.primitiveN("doublele",e,t)},e.prototype.doublebe=function(e,t){return this.primitiveN("doublebe",e,t)},e.prototype.bitN=function(e,t,p){return p||(p={}),p.length=e,this.setNextParser("bit",t,p)},e.prototype.bit1=function(e,t){return this.bitN(1,e,t)},e.prototype.bit2=function(e,t){return this.bitN(2,e,t)},e.prototype.bit3=function(e,t){return this.bitN(3,e,t)},e.prototype.bit4=function(e,t){return this.bitN(4,e,t)},e.prototype.bit5=function(e,t){return this.bitN(5,e,t)},e.prototype.bit6=function(e,t){return this.bitN(6,e,t)},e.prototype.bit7=function(e,t){return this.bitN(7,e,t)},e.prototype.bit8=function(e,t){return this.bitN(8,e,t)},e.prototype.bit9=function(e,t){return this.bitN(9,e,t)},e.prototype.bit10=function(e,t){return this.bitN(10,e,t)},e.prototype.bit11=function(e,t){return this.bitN(11,e,t)},e.prototype.bit12=function(e,t){return this.bitN(12,e,t)},e.prototype.bit13=function(e,t){return this.bitN(13,e,t)},e.prototype.bit14=function(e,t){return this.bitN(14,e,t)},e.prototype.bit15=function(e,t){return this.bitN(15,e,t)},e.prototype.bit16=function(e,t){return this.bitN(16,e,t)},e.prototype.bit17=function(e,t){return this.bitN(17,e,t)},e.prototype.bit18=function(e,t){return this.bitN(18,e,t)},e.prototype.bit19=function(e,t){return this.bitN(19,e,t)},e.prototype.bit20=function(e,t){return this.bitN(20,e,t)},e.prototype.bit21=function(e,t){return this.bitN(21,e,t)},e.prototype.bit22=function(e,t){return this.bitN(22,e,t)},e.prototype.bit23=function(e,t){return this.bitN(23,e,t)},e.prototype.bit24=function(e,t){return this.bitN(24,e,t)},e.prototype.bit25=function(e,t){return this.bitN(25,e,t)},e.prototype.bit26=function(e,t){return this.bitN(26,e,t)},e.prototype.bit27=function(e,t){return this.bitN(27,e,t)},e.prototype.bit28=function(e,t){return this.bitN(28,e,t)},e.prototype.bit29=function(e,t){return this.bitN(29,e,t)},e.prototype.bit30=function(e,t){return this.bitN(30,e,t)},e.prototype.bit31=function(e,t){return this.bitN(31,e,t)},e.prototype.bit32=function(e,t){return this.bitN(32,e,t)},e.prototype.namely=function(e){return o[e]=this,this.alias=e,this},e.prototype.skip=function(e,t){return this.seek(e,t)},e.prototype.seek=function(e,t){if(t&&t.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:e})},e.prototype.string=function(e,t){if(!t.zeroTerminated&&!t.length&&!t.greedy)throw new Error("Neither length, zeroTerminated, nor greedy is defined for string.");if((t.zeroTerminated||t.length)&&t.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(t.stripNull&&!t.length&&!t.greedy)throw new Error("Length or greedy must be defined if stripNull is defined.");return t.encoding=t.encoding||"utf8",this.setNextParser("string",e,t)},e.prototype.buffer=function(e,t){if(!t.length&&!t.readUntil)throw new Error("Length nor readUntil is defined in buffer parser");return this.setNextParser("buffer",e,t)},e.prototype.wrapped=function(e,t){if(!t.length&&!t.readUntil)throw new Error("Length nor readUntil is defined in buffer parser");if(!t.wrapper||!t.type)throw new Error("Both wrapper and type must be defined in wrapper parser");return this.setNextParser("wrapper",e,t)},e.prototype.array=function(e,t){if(!t.readUntil&&!t.length&&!t.lengthInBytes)throw new Error("Length option of array is not defined.");if(!t.type)throw new Error("Type option of array is not defined.");if("string"==typeof t.type&&!o[t.type]&&Object.keys(s).indexOf(t.type)<0)throw new Error('Specified primitive type "'+t.type+'" is not supported.');return this.setNextParser("array",e,t)},e.prototype.choice=function(e,t){if("object"!=typeof t&&"object"==typeof e&&(t=e,e=null),!t.tag)throw new Error("Tag option of array is not defined.");if(!t.choices)throw new Error("Choices option of array is not defined.");return Object.keys(t.choices).forEach((function(p){var r=parseInt(p,10),i=t.choices[r];if(isNaN(r))throw new Error("Key of choices must be a number.");if(!i)throw new Error("Choice Case "+p+" of "+e+" is not valid.");if("string"==typeof i&&!o[i]&&Object.keys(s).indexOf(i)<0)throw new Error('Specified primitive type "'+i+'" is not supported.')})),this.setNextParser("choice",e,t)},e.prototype.nest=function(t,p){if("object"!=typeof p&&"object"==typeof t&&(p=t,t=null),!p.type)throw new Error("Type option of nest is not defined.");if(!(p.type instanceof e||o[p.type]))throw new Error("Type option of nest must be a Parser object.");if(!(p.type instanceof e||t))throw new Error("options.type must be a object if variable name is omitted.");return this.setNextParser("nest",t,p)},e.prototype.pointer=function(t,p){if(!p.offset)throw new Error("Offset option of pointer is not defined.");if(!p.type)throw new Error("Type option of pointer is not defined.");if("string"==typeof p.type){if(Object.keys(s).indexOf(p.type)<0&&!o[p.type])throw new Error('Specified type "'+p.type+'" is not supported.')}else if(!(p.type instanceof e))throw new Error("Type option of pointer must be a string or a Parser object.");return this.setNextParser("pointer",t,p)},e.prototype.saveOffset=function(e,t){return this.setNextParser("saveOffset",e,t)},e.prototype.endianess=function(e){switch(e.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error("Invalid endianess: "+e)}return this},e.prototype.create=function(e){if(!(e instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=e,this},e.prototype.getContext=function(e){var t=new r.Context(e);return t.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(t),t.pushCode("return "+(i+this.alias)+"(0).result;")):this.addRawCode(t),t},e.prototype.getCode=function(){return this.getContext().code},e.prototype.addRawCode=function(e){e.pushCode("var offset = 0;"),e.pushCode("var vars = "+(this.constructorFn?"new constructorFn()":"{}")+";"),e.pushCode("vars.$parent = null;"),e.pushCode("vars.$root = vars;"),this.generate(e),this.resolveReferences(e),e.pushCode("delete vars.$parent;"),e.pushCode("delete vars.$root;"),e.pushCode("return vars;")},e.prototype.addAliasedCode=function(e){return e.pushCode("function "+(i+this.alias)+"(offset, context) {"),e.pushCode("var vars = "+(this.constructorFn?"new constructorFn()":"{}")+";"),e.pushCode("var ctx = Object.assign({$parent: null, $root: vars}, context || {});"),e.pushCode("vars = Object.assign(vars, ctx);"),this.generate(e),e.markResolved(this.alias),this.resolveReferences(e),e.pushCode("Object.keys(ctx).forEach(function (item) { delete vars[item]; });"),e.pushCode("return { offset: offset, result: vars };"),e.pushCode("}"),e},e.prototype.resolveReferences=function(e){var t=e.getUnresolvedReferences();e.markRequested(t),t.forEach((function(t){o[t].addAliasedCode(e)}))},e.prototype.compile=function(){var e="imports",t=this.getContext(e);this.compiled=new Function(e,"TextDecoder","return function (buffer, constructorFn) { "+t.code+" };")(t.imports,TextDecoder)},e.prototype.sizeOf=function(){var t=NaN;if(Object.keys(s).indexOf(this.type)>=0)t=s[this.type];else if("string"===this.type&&"number"==typeof this.options.length)t=this.options.length;else if("buffer"===this.type&&"number"==typeof this.options.length)t=this.options.length;else if("array"===this.type&&"number"==typeof this.options.length){var p=NaN;"string"==typeof this.options.type?p=s[this.options.type]:this.options.type instanceof e&&(p=this.options.type.sizeOf()),t=this.options.length*p}else"seek"===this.type?t=this.options.length:"nest"===this.type?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t},e.prototype.parse=function(e){return this.compiled||this.compile(),this.compiled(e,this.constructorFn)},e.prototype.setNextParser=function(t,p,r){var o=new e;return o.type=t,o.varName=p,o.options=r||o.options,o.endian=this.endian,this.head?this.head.next=o:this.next=o,this.head=o,this},e.prototype.generate=function(e){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,e);break;case"bit":this.generateBit(e);break;case"string":this.generateString(e);break;case"buffer":this.generateBuffer(e);break;case"seek":this.generateSeek(e);break;case"nest":this.generateNest(e);break;case"array":this.generateArray(e);break;case"choice":this.generateChoice(e);break;case"pointer":this.generatePointer(e);break;case"saveOffset":this.generateSaveOffset(e);break;case"wrapper":this.generateWrapper(e)}this.generateAssert(e)}var t=e.generateVariable(this.varName);return this.options.formatter&&this.generateFormatter(e,t,this.options.formatter),this.generateNext(e)},e.prototype.generateAssert=function(e){if(this.options.assert){var t=e.generateVariable(this.varName);switch(typeof this.options.assert){case"function":var p=e.addImport(this.options.assert);e.pushCode("if (!"+p+".call(vars, "+t+")) {");break;case"number":e.pushCode("if ("+this.options.assert+" !== "+t+") {");break;case"string":e.pushCode('if ("'+this.options.assert+'" !== '+t+") {");break;default:throw new Error("Assert option supports only strings, numbers and assert functions.")}e.generateError('"Assert error: '+t+' is " + '+this.options.assert),e.pushCode("}")}},e.prototype.generateNext=function(e){return this.next&&(e=this.next.generate(e)),e},e.prototype.generateBit=function(e){var t=JSON.parse(JSON.stringify(this));if(t.varName=e.generateVariable(t.varName),e.bitFields.push(t),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){var p=0;e.bitFields.forEach((function(e){return p+=e.options.length}));var r=e.generateTmpVariable();if(p<=8)e.pushCode("var "+r+" = dataView.getUint8(offset);"),p=8;else if(p<=16)e.pushCode("var "+r+" = dataView.getUint16(offset);"),p=16;else if(p<=24){var o=e.generateTmpVariable(),i=e.generateTmpVariable();e.pushCode("var "+o+" = dataView.getUint16(offset);"),e.pushCode("var "+i+" = dataView.getUint8(offset + 2);"),e.pushCode("var "+r+" = ("+o+" << 8) | "+i+";"),p=24}else{if(!(p<=32))throw new Error("Currently, bit field sequence longer than 4-bytes is not supported.");e.pushCode("var "+r+" = dataView.getUint32(offset);"),p=32}e.pushCode("offset += "+p/8+";");var s=0,n="be"===this.endian;e.bitFields.forEach((function(t){var o=t.options.length,i=n?p-s-o:s,a=(1<> "+i+" & "+a+";"),s+=o})),e.bitFields=[]}},e.prototype.generateSeek=function(e){var t=e.generateOption(this.options.length);e.pushCode("offset += "+t+";")},e.prototype.generateString=function(e){var t=e.generateVariable(this.varName),p=e.generateTmpVariable(),r=this.options.encoding,o="hex"===r.toLowerCase(),i='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){var s=this.options.length;e.pushCode("var "+p+" = offset;"),e.pushCode("while(dataView.getUint8(offset++) !== 0 && offset - "+p+" < "+s+");");var n="offset - "+p+" < "+s+" ? offset - 1 : offset";e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", "+n+"), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", "+n+"));")}else this.options.length?(s=e.generateOption(this.options.length),e.pushCode(o?t+" = Array.from(buffer.subarray(offset, offset + "+s+"), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray(offset, offset + "+s+"));"),e.pushCode("offset += "+s+";")):this.options.zeroTerminated?(e.pushCode("var "+p+" = offset;"),e.pushCode("while(dataView.getUint8(offset++) !== 0);"),e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", offset - 1), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", offset - 1));")):this.options.greedy&&(e.pushCode("var "+p+" = offset;"),e.pushCode("while(buffer.length > offset++);"),e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", offset), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", offset));"));this.options.stripNull&&e.pushCode(t+" = "+t+".replace(/\\x00+$/g, '')")},e.prototype.generateBuffer=function(e){var t=e.generateVariable(this.varName);if("function"==typeof this.options.readUntil){var p=this.options.readUntil,r=e.generateTmpVariable(),o=e.generateTmpVariable();e.pushCode("var "+r+" = offset;"),e.pushCode("var "+o+" = 0;"),e.pushCode("while (offset < buffer.length) {"),e.pushCode(o+" = dataView.getUint8(offset);");var i=e.addImport(p);e.pushCode("if ("+i+".call("+e.generateVariable()+", "+o+", buffer.subarray(offset))) break;"),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(t+" = buffer.subarray("+r+", offset);")}else if("eof"===this.options.readUntil)e.pushCode(t+" = buffer.subarray(offset);");else{var s=e.generateOption(this.options.length);e.pushCode(t+" = buffer.subarray(offset, offset + "+s+");"),e.pushCode("offset += "+s+";")}this.options.clone&&e.pushCode(t+" = buffer.constructor.from("+t+");")},e.prototype.generateArray=function(t){var p=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),l=this.options.type,c=t.generateTmpVariable(),u=t.generateVariable(this.varName),y=t.generateTmpVariable(),f=this.options.key,d="string"==typeof f;if(d?t.pushCode(u+" = {};"):t.pushCode(u+" = [];"),"function"==typeof this.options.readUntil?t.pushCode("do {"):"eof"===this.options.readUntil?t.pushCode("for (var "+c+" = 0; offset < buffer.length; "+c+"++) {"):void 0!==r?t.pushCode("for (var "+c+" = offset + "+r+"; offset < "+c+"; ) {"):t.pushCode("for (var "+c+" = "+p+"; "+c+" > 0; "+c+"--) {"),"string"==typeof l)if(o[l]){var h=t.generateVariable(),_=t.generateTmpVariable();t.pushCode("var "+_+" = "+(i+l)+"(offset, {"),t.pushCode("$parent: "+h+","),t.pushCode("$root: "+h+".$root,"),this.options.readUntil||void 0!==r||t.pushCode("$index: "+p+" - "+c+","),t.pushCode("});"),t.pushCode("var "+y+" = "+_+".result; offset = "+_+".offset;"),l!==this.alias&&t.addReference(l)}else{var S=n[l],g=a[l];t.pushCode("var "+y+" = dataView.get"+S+"(offset, "+g+");"),t.pushCode("offset += "+s[l]+";")}else l instanceof e&&(h=t.generateVariable(),t.pushCode("var "+y+" = {};"),t.pushScope(y),t.pushCode(y+".$parent = "+h+";"),t.pushCode(y+".$root = "+h+".$root;"),this.options.readUntil||void 0!==r||t.pushCode(y+".$index = "+p+" - "+c+";"),l.generate(t),t.pushCode("delete "+y+".$parent;"),t.pushCode("delete "+y+".$root;"),t.pushCode("delete "+y+".$index;"),t.popScope());if(d?t.pushCode(u+"["+y+"."+f+"] = "+y+";"):t.pushCode(u+".push("+y+");"),t.pushCode("}"),"function"==typeof this.options.readUntil){var w=this.options.readUntil,E=t.addImport(w);t.pushCode("while (!"+E+".call("+t.generateVariable()+", "+y+", buffer.subarray(offset)));")}},e.prototype.generateChoiceCase=function(t,p,r){if("string"==typeof r){var l=t.generateVariable(this.varName);if(o[r]){var c=t.generateTmpVariable();t.pushCode("var "+c+" = "+(i+r)+"(offset, {"),t.pushCode("$parent: "+l+".$parent,"),t.pushCode("$root: "+l+".$root,"),t.pushCode("});"),t.pushCode(l+" = "+c+".result; offset = "+c+".offset;"),r!==this.alias&&t.addReference(r)}else{var u=n[r],y=a[r];t.pushCode(l+" = dataView.get"+u+"(offset, "+y+");"),t.pushCode("offset += "+s[r])}}else r instanceof e&&(t.pushPath(p),r.generate(t),t.popPath(p))},e.prototype.generateChoice=function(e){var t=this,p=e.generateOption(this.options.tag),r=e.generateVariable(this.varName);if(this.varName){e.pushCode(r+" = {};");var o=e.generateVariable();e.pushCode(r+".$parent = "+o+";"),e.pushCode(r+".$root = "+o+".$root;")}e.pushCode("switch("+p+") {"),Object.keys(this.options.choices).forEach((function(p){var r=t.options.choices[parseInt(p,10)];e.pushCode("case "+p+":"),t.generateChoiceCase(e,t.varName,r),e.pushCode("break;")})),e.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(e,this.varName,this.options.defaultChoice):e.generateError('"Met undefined tag value " + '+p+' + " at choice"'),e.pushCode("}"),this.varName&&(e.pushCode("delete "+r+".$parent;"),e.pushCode("delete "+r+".$root;"))},e.prototype.generateNest=function(t){var p=t.generateVariable(this.varName);if(this.options.type instanceof e){if(this.varName){var r=t.generateVariable();t.pushCode(p+" = {};"),t.pushCode(p+".$parent = "+r+";"),t.pushCode(p+".$root = "+r+".$root;")}t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),this.varName&&(t.pushCode("delete "+p+".$parent;"),t.pushCode("delete "+p+".$root;"))}else if(o[this.options.type]){r=t.generateVariable();var s=t.generateTmpVariable();t.pushCode("var "+s+" = "+(i+this.options.type)+"(offset, {"),t.pushCode("$parent: "+r+","),t.pushCode("$root: "+r+".$root,"),t.pushCode("});"),t.pushCode(p+" = "+s+".result; offset = "+s+".offset;"),this.options.type!==this.alias&&t.addReference(this.options.type)}},e.prototype.generateWrapper=function(t){var p=t.generateVariable(this.varName),r=t.generateTmpVariable();if("function"==typeof this.options.readUntil){var s=this.options.readUntil,n=t.generateTmpVariable(),a=t.generateTmpVariable();t.pushCode("var "+n+" = offset;"),t.pushCode("var "+a+" = 0;"),t.pushCode("while (offset < buffer.length) {"),t.pushCode(a+" = dataView.getUint8(offset);");var l=t.addImport(s);t.pushCode("if ("+l+".call("+t.generateVariable()+", "+a+", buffer.subarray(offset))) break;"),t.pushCode("offset += 1;"),t.pushCode("}"),t.pushCode(r+" = buffer.subarray("+n+", offset);")}else if("eof"===this.options.readUntil)t.pushCode(r+" = buffer.subarray(offset);");else{var c=t.generateOption(this.options.length);t.pushCode(r+" = buffer.subarray(offset, offset + "+c+");"),t.pushCode("offset += "+c+";")}this.options.clone&&t.pushCode(r+" = buffer.constructor.from("+r+");");var u=t.generateTmpVariable(),y=t.generateTmpVariable(),f=t.generateTmpVariable(),d=t.addImport(this.options.wrapper);if(t.pushCode(r+" = "+d+".call(this, "+r+").subarray(0);"),t.pushCode("var "+u+" = buffer;"),t.pushCode("var "+y+" = offset;"),t.pushCode("var "+f+" = dataView;"),t.pushCode("buffer = "+r+";"),t.pushCode("offset = 0;"),t.pushCode("dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.options.type instanceof e)this.varName&&t.pushCode(p+" = {};"),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(o[this.options.type]){var h=t.generateTmpVariable();t.pushCode("var "+h+" = "+(i+this.options.type)+"(0);"),t.pushCode(p+" = "+h+".result;"),this.options.type!==this.alias&&t.addReference(this.options.type)}t.pushCode("buffer = "+u+";"),t.pushCode("dataView = "+f+";"),t.pushCode("offset = "+y+";")},e.prototype.generateFormatter=function(e,t,p){if("function"==typeof p){var r=e.addImport(p);e.pushCode(t+" = "+r+".call("+e.generateVariable()+", "+t+");")}},e.prototype.generatePointer=function(t){var p=this.options.type,r=t.generateOption(this.options.offset),l=t.generateTmpVariable(),c=t.generateVariable(this.varName);if(t.pushCode("var "+l+" = offset;"),t.pushCode("offset = "+r+";"),this.options.type instanceof e){var u=t.generateVariable();t.pushCode(c+" = {};"),t.pushCode(c+".$parent = "+u+";"),t.pushCode(c+".$root = "+u+".$root;"),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName),t.pushCode("delete "+c+".$parent;"),t.pushCode("delete "+c+".$root;")}else if(o[this.options.type]){u=t.generateVariable();var y=t.generateTmpVariable();t.pushCode("var "+y+" = "+(i+this.options.type)+"(offset, {"),t.pushCode("$parent: "+u+","),t.pushCode("$root: "+u+".$root,"),t.pushCode("});"),t.pushCode(c+" = "+y+".result; offset = "+y+".offset;"),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(s).indexOf(this.options.type)>=0){var f=n[p],d=a[p];t.pushCode(c+" = dataView.get"+f+"(offset, "+d+");"),t.pushCode("offset += "+s[p]+";")}t.pushCode("offset = "+l+";")},e.prototype.generateSaveOffset=function(e){var t=e.generateVariable(this.varName);e.pushCode(t+" = offset")},e}();t.i=l},5682:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;var p=function(){function e(e){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references={},this.imports=[],this.reverseImports=new Map,this.importPath=e}return e.prototype.generateVariable=function(e){var t=[],p=this.scopes[this.scopes.length-1];return t.push.apply(t,p),e&&t.push(e),t.join(".")},e.prototype.generateOption=function(e){switch(typeof e){case"number":return e.toString();case"string":return this.generateVariable(e);case"function":return this.addImport(e)+".call("+this.generateVariable()+", vars)"}},e.prototype.generateError=function(e){this.pushCode("throw new Error("+e+");")},e.prototype.generateTmpVariable=function(){return"$tmp"+this.tmpVariableCount++},e.prototype.pushCode=function(e){this.code+=e+"\n"},e.prototype.pushPath=function(e){e&&this.scopes[this.scopes.length-1].push(e)},e.prototype.popPath=function(e){e&&this.scopes[this.scopes.length-1].pop()},e.prototype.pushScope=function(e){this.scopes.push([e])},e.prototype.popScope=function(){this.scopes.pop()},e.prototype.addImport=function(e){if(!this.importPath)return"("+e+")";var t=this.reverseImports.get(e);return t||(t=this.imports.push(e)-1,this.reverseImports.set(e,t)),this.importPath+"["+t+"]"},e.prototype.addReference=function(e){this.references[e]||(this.references[e]={resolved:!1,requested:!1})},e.prototype.markResolved=function(e){this.references[e].resolved=!0},e.prototype.markRequested=function(e){var t=this;e.forEach((function(e){t.references[e].requested=!0}))},e.prototype.getUnresolvedReferences=function(){var e=this.references;return Object.keys(this.references).filter((function(t){return!e[t].resolved&&!e[t].requested}))},e}();t.Context=p},3144:(e,t,p)=>{"use strict";var r=p(6743),o=p(1002),i=p(76),s=p(7119);e.exports=s||r.call(i,o)},2205:(e,t,p)=>{"use strict";var r=p(6743),o=p(1002),i=p(3144);e.exports=function(){return i(r,o,arguments)}},1002:e=>{"use strict";e.exports=Function.prototype.apply},76:e=>{"use strict";e.exports=Function.prototype.call},3126:(e,t,p)=>{"use strict";var r=p(6743),o=p(9675),i=p(76),s=p(3144);e.exports=function(e){if(e.length<1||"function"!=typeof e[0])throw new o("a function is required");return s(r,i,e)}},7119:e=>{"use strict";e.exports="undefined"!=typeof Reflect&&Reflect&&Reflect.apply},8075:(e,t,p)=>{"use strict";var r=p(453),o=p(487),i=o(r("String.prototype.indexOf"));e.exports=function(e,t){var p=r(e,!!t);return"function"==typeof p&&i(e,".prototype.")>-1?o(p):p}},487:(e,t,p)=>{"use strict";var r=p(6897),o=p(655),i=p(3126),s=p(2205);e.exports=function(e){var t=i(arguments),p=e.length-(arguments.length-1);return r(t,1+(p>0?p:0),!0)},o?o(e.exports,"apply",{value:s}):e.exports.apply=s},6556:(e,t,p)=>{"use strict";var r=p(453),o=p(3126),i=o([r("%String.prototype.indexOf%")]);e.exports=function(e,t){var p=r(e,!!t);return"function"==typeof p&&i(e,".prototype.")>-1?o([p]):p}},5971:e=>{function t(e){if(e)return function(e){return Object.assign(e,t.prototype),e._callbacks=new Map,e}(e);this._callbacks=new Map}t.prototype.on=function(e,t){const p=this._callbacks.get(e)??[];return p.push(t),this._callbacks.set(e,p),this},t.prototype.once=function(e,t){const p=(...r)=>{this.off(e,p),t.apply(this,r)};return p.fn=t,this.on(e,p),this},t.prototype.off=function(e,t){if(void 0===e&&void 0===t)return this._callbacks.clear(),this;if(void 0===t)return this._callbacks.delete(e),this;const p=this._callbacks.get(e);if(p){for(const[e,r]of p.entries())if(r===t||r.fn===t){p.splice(e,1);break}0===p.length?this._callbacks.delete(e):this._callbacks.set(e,p)}return this},t.prototype.emit=function(e,...t){const p=this._callbacks.get(e);if(p){const e=[...p];for(const p of e)p.apply(this,t)}return this},t.prototype.listeners=function(e){return this._callbacks.get(e)??[]},t.prototype.listenerCount=function(e){if(e)return this.listeners(e).length;let t=0;for(const e of this._callbacks.values())t+=e.length;return t},t.prototype.hasListeners=function(e){return this.listenerCount(e)>0},t.prototype.addEventListener=t.prototype.on,t.prototype.removeListener=t.prototype.off,t.prototype.removeEventListener=t.prototype.off,t.prototype.removeAllListeners=t.prototype.off,e.exports=t},7898:(e,t,p)=>{t.UINT32=p(741),t.UINT64=p(174)},741:function(e,t){var p;!function(){function r(e,t){return this instanceof r?(this._low=0,this._high=0,this.remainder=null,void 0===t?i.call(this,e):"string"==typeof e?s.call(this,e,t):void o.call(this,e,t)):new r(e,t)}function o(e,t){return this._low=0|e,this._high=0|t,this}function i(e){return this._low=65535&e,this._high=e>>>16,this}function s(e,t){var p=parseInt(e,t||10);return this._low=65535&p,this._high=p>>>16,this}r(Math.pow(36,5)),r(Math.pow(16,7)),r(Math.pow(10,9)),r(Math.pow(2,30)),r(36),r(16),r(10),r(2),r.prototype.fromBits=o,r.prototype.fromNumber=i,r.prototype.fromString=s,r.prototype.toNumber=function(){return 65536*this._high+this._low},r.prototype.toString=function(e){return this.toNumber().toString(e||10)},r.prototype.add=function(e){var t=this._low+e._low,p=t>>>16;return p+=this._high+e._high,this._low=65535&t,this._high=65535&p,this},r.prototype.subtract=function(e){return this.add(e.clone().negate())},r.prototype.multiply=function(e){var t,p,r=this._high,o=this._low,i=e._high,s=e._low;return t=(p=o*s)>>>16,t+=r*s,t&=65535,t+=o*i,this._low=65535&p,this._high=65535&t,this},r.prototype.div=function(e){if(0==e._low&&0==e._high)throw Error("division by zero");if(0==e._high&&1==e._low)return this.remainder=new r(0),this;if(e.gt(this))return this.remainder=this.clone(),this._low=0,this._high=0,this;if(this.eq(e))return this.remainder=new r(0),this._low=1,this._high=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._low=0,this._high=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=16?this._high|=1<>>16)&65535,this},r.prototype.equals=r.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},r.prototype.greaterThan=r.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},r.prototype.lessThan=r.prototype.lt=function(e){return this._highe._high)&&this._low16?(this._low=this._high>>e-16,this._high=0):16==e?(this._low=this._high,this._high=0):(this._low=this._low>>e|this._high<<16-e&65535,this._high>>=e),this},r.prototype.shiftLeft=r.prototype.shiftl=function(e,t){return e>16?(this._high=this._low<>16-e,this._low=this._low<>>32-e,this._low=65535&t,this._high=t>>>16,this},r.prototype.rotateRight=r.prototype.rotr=function(e){var t=this._high<<16|this._low;return t=t>>>e|t<<32-e,this._low=65535&t,this._high=t>>>16,this},r.prototype.clone=function(){return new r(this._low,this._high)},void 0===(p=function(){return r}.apply(t,[]))||(e.exports=p)}()},174:function(e,t){var p;!function(){var r={16:i(Math.pow(16,5)),10:i(Math.pow(10,5)),2:i(Math.pow(2,5))},o={16:i(16),10:i(10),2:i(2)};function i(e,t,p,r){return this instanceof i?(this.remainder=null,"string"==typeof e?a.call(this,e,t):void 0===t?n.call(this,e):void s.apply(this,arguments)):new i(e,t,p,r)}function s(e,t,p,r){return void 0===p?(this._a00=65535&e,this._a16=e>>>16,this._a32=65535&t,this._a48=t>>>16,this):(this._a00=0|e,this._a16=0|t,this._a32=0|p,this._a48=0|r,this)}function n(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function a(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var p=r[t]||new i(Math.pow(t,5)),o=0,s=e.length;o=0&&(p.div(t),r[s]=p.remainder.toNumber().toString(e),p.gt(t));s--);return r[s-1]=p.toNumber().toString(e),r.join("")},i.prototype.add=function(e){var t=this._a00+e._a00,p=t>>>16,r=(p+=this._a16+e._a16)>>>16,o=(r+=this._a32+e._a32)>>>16;return o+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&p,this._a32=65535&r,this._a48=65535&o,this},i.prototype.subtract=function(e){return this.add(e.clone().negate())},i.prototype.multiply=function(e){var t=this._a00,p=this._a16,r=this._a32,o=this._a48,i=e._a00,s=e._a16,n=e._a32,a=t*i,l=a>>>16,c=(l+=t*s)>>>16;l&=65535,c+=(l+=p*i)>>>16;var u=(c+=t*n)>>>16;return c&=65535,u+=(c+=p*s)>>>16,c&=65535,u+=(c+=r*i)>>>16,u+=t*e._a48,u&=65535,u+=p*n,u&=65535,u+=r*s,u&=65535,u+=o*i,this._a00=65535&a,this._a16=65535&l,this._a32=65535&c,this._a48=65535&u,this},i.prototype.div=function(e){if(0==e._a16&&0==e._a32&&0==e._a48){if(0==e._a00)throw Error("division by zero");if(1==e._a00)return this.remainder=new i(0),this}if(e.gt(this))return this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0,this;if(this.eq(e))return this.remainder=new i(0),this._a00=1,this._a16=0,this._a32=0,this._a48=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=48?this._a48|=1<=32?this._a32|=1<=16?this._a16|=1<>>16),this._a16=65535&e,e=(65535&~this._a32)+(e>>>16),this._a32=65535&e,this._a48=~this._a48+(e>>>16)&65535,this},i.prototype.equals=i.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},i.prototype.greaterThan=i.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},i.prototype.lessThan=i.prototype.lt=function(e){return this._a48e._a48)&&(this._a32e._a32)&&(this._a16e._a16)&&this._a00=48?(this._a00=this._a48>>e-48,this._a16=0,this._a32=0,this._a48=0):e>=32?(e-=32,this._a00=65535&(this._a32>>e|this._a48<<16-e),this._a16=this._a48>>e&65535,this._a32=0,this._a48=0):e>=16?(e-=16,this._a00=65535&(this._a16>>e|this._a32<<16-e),this._a16=65535&(this._a32>>e|this._a48<<16-e),this._a32=this._a48>>e&65535,this._a48=0):(this._a00=65535&(this._a00>>e|this._a16<<16-e),this._a16=65535&(this._a16>>e|this._a32<<16-e),this._a32=65535&(this._a32>>e|this._a48<<16-e),this._a48=this._a48>>e&65535),this},i.prototype.shiftLeft=i.prototype.shiftl=function(e,t){return(e%=64)>=48?(this._a48=this._a00<=32?(e-=32,this._a48=this._a16<>16-e,this._a32=this._a00<=16?(e-=16,this._a48=this._a32<>16-e,this._a32=65535&(this._a16<>16-e),this._a16=this._a00<>16-e,this._a32=65535&(this._a32<>16-e),this._a16=65535&(this._a16<>16-e),this._a00=this._a00<=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p<>>32-e,i=r<>>32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},i.prototype.rotateRight=i.prototype.rotr=function(e){if(0==(e%=64))return this;if(e>=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p>>>e|r<<32-e,i=r>>>e|p<<32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},i.prototype.clone=function(){return new i(this._a00,this._a16,this._a32,this._a48)},void 0===(p=function(){return i}.apply(t,[]))||(e.exports=p)}()},41:(e,t,p)=>{"use strict";var r=p(655),o=p(8068),i=p(9675),s=p(5795);e.exports=function(e,t,p){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new i("`obj` must be an object or a function`");if("string"!=typeof t&&"symbol"!=typeof t)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var n=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,c=arguments.length>6&&arguments[6],u=!!s&&s(e,t);if(r)r(e,t,{configurable:null===l&&u?u.configurable:!l,enumerable:null===n&&u?u.enumerable:!n,value:p,writable:null===a&&u?u.writable:!a});else{if(!c&&(n||a||l))throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=p}}},8452:(e,t,p)=>{"use strict";var r=p(1189),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,s=Array.prototype.concat,n=p(41),a=p(592)(),l=function(e,t,p,r){if(t in e)if(!0===r){if(e[t]===p)return}else if("function"!=typeof(o=r)||"[object Function]"!==i.call(o)||!r())return;var o;a?n(e,t,p,!0):n(e,t,p)},c=function(e,t){var p=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=s.call(i,Object.getOwnPropertySymbols(t)));for(var n=0;n{"use strict";var r,o=p(3126),i=p(5795);try{r=[].__proto__===Array.prototype}catch(e){if(!e||"object"!=typeof e||!("code"in e)||"ERR_PROTO_ACCESS"!==e.code)throw e}var s=!!r&&i&&i(Object.prototype,"__proto__"),n=Object,a=n.getPrototypeOf;e.exports=s&&"function"==typeof s.get?o([s.get]):"function"==typeof a&&function(e){return a(null==e?e:n(e))}},655:e=>{"use strict";var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch(e){t=!1}e.exports=t},1237:e=>{"use strict";e.exports=EvalError},9383:e=>{"use strict";e.exports=Error},9290:e=>{"use strict";e.exports=RangeError},9538:e=>{"use strict";e.exports=ReferenceError},8068:e=>{"use strict";e.exports=SyntaxError},9675:e=>{"use strict";e.exports=TypeError},5345:e=>{"use strict";e.exports=URIError},9612:e=>{"use strict";e.exports=Object},9160:function(e,t,p){!function(e){"use strict";function t(e){for(var t=0,p=Math.min(65536,e.length+1),r=new Uint16Array(p),o=[],i=0;;){var s=t=p-1){var n=r.subarray(0,i);if(o.push(String.fromCharCode.apply(null,n)),!s)return o.join("");e=e.subarray(t),t=0,i=0}var a=e[t++];if(128&a){if(192==(224&a)){var l=63&e[t++];r[i++]=(31&a)<<6|l}else if(224==(240&a)){l=63&e[t++];var c=63&e[t++];r[i++]=(31&a)<<12|l<<6|c}else if(240==(248&a)){var u=(7&a)<<18|(l=63&e[t++])<<12|(c=63&e[t++])<<6|63&e[t++];u>65535&&(u-=65536,r[i++]=u>>>10&1023|55296,u=56320|1023&u),r[i++]=u}}else r[i++]=a}}var p="Failed to ",r=function(e,t,r){if(e)throw new Error("".concat(p).concat(t,": the '").concat(r,"' option is unsupported."))},o="function"==typeof Buffer&&Buffer.from,i=o?function(e){return Buffer.from(e)}:function(e){for(var t=0,p=e.length,r=0,o=Math.max(32,p+(p>>>1)+7),i=new Uint8Array(o>>>3<<3);t=55296&&s<=56319){if(t=55296&&s<=56319)continue}if(r+4>i.length){o+=8,o=(o*=1+t/e.length*2)>>>3<<3;var a=new Uint8Array(o);a.set(i),i=a}if(4294967168&s){if(4294965248&s)if(4294901760&s){if(4292870144&s)continue;i[r++]=s>>>18&7|240,i[r++]=s>>>12&63|128,i[r++]=s>>>6&63|128}else i[r++]=s>>>12&15|224,i[r++]=s>>>6&63|128;else i[r++]=s>>>6&31|192;i[r++]=63&s|128}else i[r++]=s}return i.slice?i.slice(0,r):i.subarray(0,r)};function s(){this.encoding="utf-8"}s.prototype.encode=function(e,t){return r(t&&t.stream,"encode","stream"),i(e)};var n=!o&&"function"==typeof Blob&&"function"==typeof URL&&"function"==typeof URL.createObjectURL,a=["utf-8","utf8","unicode-1-1-utf-8"],l=t;o?l=function(e,t){return(e instanceof Buffer?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength)).toString(t)}:n&&(l=function(e){try{return function(e){var t;try{var p=new Blob([e],{type:"text/plain;charset=UTF-8"});t=URL.createObjectURL(p);var r=new XMLHttpRequest;return r.open("GET",t,!1),r.send(),r.responseText}finally{t&&URL.revokeObjectURL(t)}}(e)}catch(p){return t(e)}});var c="construct 'TextDecoder'",u="".concat(p," ").concat(c,": the ");function y(e,t){if(r(t&&t.fatal,c,"fatal"),e=e||"utf-8",!(o?Buffer.isEncoding(e):-1!==a.indexOf(e.toLowerCase())))throw new RangeError("".concat(u," encoding label provided ('").concat(e,"') is invalid."));this.encoding=e,this.fatal=!1,this.ignoreBOM=!1}y.prototype.decode=function(e,t){var p;return r(t&&t.stream,"decode","stream"),p=e instanceof Uint8Array?e:e.buffer instanceof ArrayBuffer?new Uint8Array(e.buffer):new Uint8Array(e),l(p,this.encoding)},e.TextEncoder=e.TextEncoder||s,e.TextDecoder=e.TextDecoder||y}("undefined"!=typeof window?window:void 0!==p.g?p.g:this)},2682:(e,t,p)=>{"use strict";var r=p(9600),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty;e.exports=function(e,t,p){if(!r(t))throw new TypeError("iterator must be a function");var s;arguments.length>=3&&(s=p),"[object Array]"===o.call(e)?function(e,t,p){for(var r=0,o=e.length;r{"use strict";var t=Object.prototype.toString,p=Math.max,r=function(e,t){for(var p=[],r=0;r{"use strict";var r=p(9353);e.exports=Function.prototype.bind||r},453:(e,t,p)=>{"use strict";var r,o=p(9612),i=p(9383),s=p(1237),n=p(9290),a=p(9538),l=p(8068),c=p(9675),u=p(5345),y=p(1514),f=p(8968),d=p(6188),h=p(8002),_=p(5880),S=p(414),g=p(3093),w=Function,E=function(e){try{return w('"use strict"; return ('+e+").constructor;")()}catch(e){}},m=p(5795),b=p(655),I=function(){throw new c},L=m?function(){try{return I}catch(e){try{return m(arguments,"callee").get}catch(e){return I}}}():I,T=p(4039)(),v=p(3628),U=p(1064),O=p(8648),M=p(1002),D=p(76),A={},G="undefined"!=typeof Uint8Array&&v?v(Uint8Array):r,C={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":T&&v?v([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":A,"%AsyncGenerator%":A,"%AsyncGeneratorFunction%":A,"%AsyncIteratorPrototype%":A,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":s,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":w,"%GeneratorFunction%":A,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":T&&v?v(v([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&T&&v?v((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":o,"%Object.getOwnPropertyDescriptor%":m,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":n,"%ReferenceError%":a,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&T&&v?v((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":T&&v?v(""[Symbol.iterator]()):r,"%Symbol%":T?Symbol:r,"%SyntaxError%":l,"%ThrowTypeError%":L,"%TypedArray%":G,"%TypeError%":c,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":u,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet,"%Function.prototype.call%":D,"%Function.prototype.apply%":M,"%Object.defineProperty%":b,"%Object.getPrototypeOf%":U,"%Math.abs%":y,"%Math.floor%":f,"%Math.max%":d,"%Math.min%":h,"%Math.pow%":_,"%Math.round%":S,"%Math.sign%":g,"%Reflect.getPrototypeOf%":O};if(v)try{null.error}catch(e){var j=v(v(e));C["%Error.prototype%"]=j}var P=function e(t){var p;if("%AsyncFunction%"===t)p=E("async function () {}");else if("%GeneratorFunction%"===t)p=E("function* () {}");else if("%AsyncGeneratorFunction%"===t)p=E("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(p=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&v&&(p=v(o.prototype))}return C[t]=p,p},R={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},N=p(6743),x=p(9957),F=N.call(D,Array.prototype.concat),k=N.call(M,Array.prototype.splice),B=N.call(D,String.prototype.replace),q=N.call(D,String.prototype.slice),z=N.call(D,RegExp.prototype.exec),V=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,H=/\\(\\)?/g,$=function(e,t){var p,r=e;if(x(R,r)&&(r="%"+(p=R[r])[0]+"%"),x(C,r)){var o=C[r];if(o===A&&(o=P(r)),void 0===o&&!t)throw new c("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:p,name:r,value:o}}throw new l("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new c('"allowMissing" argument must be a boolean');if(null===z(/^%?[^%]*%?$/,e))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var p=function(e){var t=q(e,0,1),p=q(e,-1);if("%"===t&&"%"!==p)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===p&&"%"!==t)throw new l("invalid intrinsic syntax, expected opening `%`");var r=[];return B(e,V,(function(e,t,p,o){r[r.length]=p?B(o,H,"$1"):t||e})),r}(e),r=p.length>0?p[0]:"",o=$("%"+r+"%",t),i=o.name,s=o.value,n=!1,a=o.alias;a&&(r=a[0],k(p,F([0,1],a)));for(var u=1,y=!0;u=p.length){var _=m(s,f);s=(y=!!_)&&"get"in _&&!("originalValue"in _.get)?_.get:s[f]}else y=x(s,f),s=s[f];y&&!n&&(C[i]=s)}}return s}},1064:(e,t,p)=>{"use strict";var r=p(9612);e.exports=r.getPrototypeOf||null},8648:e=>{"use strict";e.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},3628:(e,t,p)=>{"use strict";var r=p(8648),o=p(1064),i=p(7176);e.exports=r?function(e){return r(e)}:o?function(e){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("getProto: not an object");return o(e)}:i?function(e){return i(e)}:null},6549:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},5795:(e,t,p)=>{"use strict";var r=p(6549);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},592:(e,t,p)=>{"use strict";var r=p(655),o=function(){return!!r};o.hasArrayLengthDefineBug=function(){if(!r)return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=o},4039:(e,t,p)=>{"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=p(1333);e.exports=function(){return"function"==typeof r&&"function"==typeof Symbol&&"symbol"==typeof r("foo")&&"symbol"==typeof Symbol("bar")&&o()}},1333:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),p=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(p))return!1;for(var r in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var o=Object.getOwnPropertySymbols(e);if(1!==o.length||o[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},9092:(e,t,p)=>{"use strict";var r=p(1333);e.exports=function(){return r()&&!!Symbol.toStringTag}},9957:(e,t,p)=>{"use strict";var r=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=p(6743);e.exports=i.call(r,o)},6698:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var p=function(){};p.prototype=t.prototype,e.prototype=new p,e.prototype.constructor=e}}},7244:(e,t,p)=>{"use strict";var r=p(9092)(),o=p(6556)("Object.prototype.toString"),i=function(e){return!(r&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===o(e)},s=function(e){return!!i(e)||null!==e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==o(e)&&"callee"in e&&"[object Function]"===o(e.callee)},n=function(){return i(arguments)}();i.isLegacyArguments=s,e.exports=n?i:s},9600:e=>{"use strict";var t,p,r=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw p}}),p={},o((function(){throw 42}),null,t)}catch(e){e!==p&&(o=null)}else o=null;var i=/^\s*class\b/,s=function(e){try{var t=r.call(e);return i.test(t)}catch(e){return!1}},n=function(e){try{return!s(e)&&(r.call(e),!0)}catch(e){return!1}},a=Object.prototype.toString,l="function"==typeof Symbol&&!!Symbol.toStringTag,c=!(0 in[,]),u=function(){return!1};if("object"==typeof document){var y=document.all;a.call(y)===a.call(document.all)&&(u=function(e){if((c||!e)&&(void 0===e||"object"==typeof e))try{var t=a.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=o?function(e){if(u(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{o(e,null,t)}catch(e){if(e!==p)return!1}return!s(e)&&n(e)}:function(e){if(u(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(l)return n(e);if(s(e))return!1;var t=a.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&n(e)}},8184:(e,t,p)=>{"use strict";var r,o=p(6556),i=p(9721)(/^\s*(?:function)?\*/),s=p(9092)(),n=p(3628),a=o("Object.prototype.toString"),l=o("Function.prototype.toString");e.exports=function(e){if("function"!=typeof e)return!1;if(i(l(e)))return!0;if(!s)return"[object GeneratorFunction]"===a(e);if(!n)return!1;if(void 0===r){var t=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(e){}}();r=!!t&&n(t)}return n(e)===r}},3003:e=>{"use strict";e.exports=function(e){return e!=e}},4133:(e,t,p)=>{"use strict";var r=p(487),o=p(8452),i=p(3003),s=p(6642),n=p(2464),a=r(s(),Number);o(a,{getPolyfill:s,implementation:i,shim:n}),e.exports=a},6642:(e,t,p)=>{"use strict";var r=p(3003);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:r}},2464:(e,t,p)=>{"use strict";var r=p(8452),o=p(6642);e.exports=function(){var e=o();return r(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},4035:(e,t,p)=>{"use strict";var r,o=p(6556),i=p(9092)(),s=p(9957),n=p(5795);if(i){var a=o("RegExp.prototype.exec"),l={},c=function(){throw l},u={toString:c,valueOf:c};"symbol"==typeof Symbol.toPrimitive&&(u[Symbol.toPrimitive]=c),r=function(e){if(!e||"object"!=typeof e)return!1;var t=n(e,"lastIndex");if(!t||!s(t,"value"))return!1;try{a(e,u)}catch(e){return e===l}}}else{var y=o("Object.prototype.toString");r=function(e){return!(!e||"object"!=typeof e&&"function"!=typeof e)&&"[object RegExp]"===y(e)}}e.exports=r},5680:(e,t,p)=>{"use strict";var r=p(5767);e.exports=function(e){return!!r(e)}},1514:e=>{"use strict";e.exports=Math.abs},8968:e=>{"use strict";e.exports=Math.floor},4459:e=>{"use strict";e.exports=Number.isNaN||function(e){return e!=e}},6188:e=>{"use strict";e.exports=Math.max},8002:e=>{"use strict";e.exports=Math.min},5880:e=>{"use strict";e.exports=Math.pow},414:e=>{"use strict";e.exports=Math.round},3093:(e,t,p)=>{"use strict";var r=p(4459);e.exports=function(e){return r(e)||0===e?e:e<0?-1:1}},6468:e=>{for(var t=4294967296,p=[],r=0;r<256;r++)p[r]=(r>15?"":"0")+r.toString(16);var o=e.exports=function(e,t){e instanceof Buffer?(this.buffer=e,this.offset=t||0):"[object Uint8Array]"==Object.prototype.toString.call(e)?(this.buffer=new Buffer(e),this.offset=t||0):(this.buffer=this.buffer||new Buffer(8),this.offset=0,this.setValue.apply(this,arguments))};o.MAX_INT=Math.pow(2,53),o.MIN_INT=-Math.pow(2,53),o.prototype={constructor:o,_2scomp:function(){for(var e=this.buffer,t=this.offset,p=1,r=t+7;r>=t;r--){var o=(255^e[r])+p;e[r]=255&o,p=o>>8}},setValue:function(e,p){var r=!1;if(1==arguments.length)if("number"==typeof e){if(r=e<0,p=(e=Math.abs(e))%t,(e/=t)>t)throw new RangeError(e+" is outside Int64 range");e|=0}else{if("string"!=typeof e)throw new Error(e+" must be a Number or String");p=(e=(e+"").replace(/^0x/,"")).substr(-8),e=e.length>8?e.substr(0,e.length-8):"",e=parseInt(e,16),p=parseInt(p,16)}for(var o=this.buffer,i=this.offset,s=7;s>=0;s--)o[i+s]=255&p,p=4==s?e:p>>>8;r&&this._2scomp()},toNumber:function(e){for(var t=this.buffer,p=this.offset,r=128&t[p],i=0,s=1,n=7,a=1;n>=0;n--,a*=256){var l=t[p+n];r&&(s=(l=(255^l)+s)>>8,l&=255),i+=l*a}return!e&&i>=o.MAX_INT?r?-1/0:1/0:r?-i:i},valueOf:function(){return this.toNumber(!1)},toString:function(e){return this.valueOf().toString(e||10)},toOctetString:function(e){for(var t=new Array(8),r=this.buffer,o=this.offset,i=0;i<8;i++)t[i]=p[r[o+i]];return t.join(e||"")},toBuffer:function(e){if(e&&0===this.offset)return this.buffer;var t=new Buffer(8);return this.buffer.copy(t,0,this.offset,this.offset+8),t},copy:function(e,t){this.buffer.copy(e,t||0,this.offset,this.offset+8)},compare:function(e){if((128&this.buffer[this.offset])!=(128&e.buffer[e.offset]))return e.buffer[e.offset]-this.buffer[this.offset];for(var t=0;t<8;t++)if(this.buffer[this.offset+t]!==e.buffer[e.offset+t])return this.buffer[this.offset+t]-e.buffer[e.offset+t];return 0},equals:function(e){return 0===this.compare(e)},inspect:function(){return"[Int64 value:"+this+" octets:"+this.toOctetString(" ")+"]"}}},9211:e=>{"use strict";var t=function(e){return e!=e};e.exports=function(e,p){return 0===e&&0===p?1/e==1/p:e===p||!(!t(e)||!t(p))}},7653:(e,t,p)=>{"use strict";var r=p(8452),o=p(487),i=p(9211),s=p(9394),n=p(6576),a=o(s(),Object);r(a,{getPolyfill:s,implementation:i,shim:n}),e.exports=a},9394:(e,t,p)=>{"use strict";var r=p(9211);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},6576:(e,t,p)=>{"use strict";var r=p(9394),o=p(8452);e.exports=function(){var e=r();return o(Object,{is:e},{is:function(){return Object.is!==e}}),e}},8875:(e,t,p)=>{"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,s=p(1093),n=Object.prototype.propertyIsEnumerable,a=!n.call({toString:null},"toString"),l=n.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(e){var t=e.constructor;return t&&t.prototype===e},y={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!y["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{u(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,p="[object Function]"===i.call(e),r=s(e),n=t&&"[object String]"===i.call(e),y=[];if(!t&&!p&&!r)throw new TypeError("Object.keys called on a non-object");var d=l&&p;if(n&&e.length>0&&!o.call(e,0))for(var h=0;h0)for(var _=0;_{"use strict";var r=Array.prototype.slice,o=p(1093),i=Object.keys,s=i?function(e){return i(e)}:p(8875),n=Object.keys;s.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?n(r.call(e)):n(e)})}else Object.keys=s;return Object.keys||s},e.exports=s},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var p=t.call(e),r="[object Arguments]"===p;return r||(r="[object Array]"!==p&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},8403:(e,t,p)=>{"use strict";var r=p(1189),o=p(1333)(),i=p(6556),s=p(9612),n=i("Array.prototype.push"),a=i("Object.prototype.propertyIsEnumerable"),l=o?s.getOwnPropertySymbols:null;e.exports=function(e,t){if(null==e)throw new TypeError("target must be an object");var p=s(e);if(1===arguments.length)return p;for(var i=1;i{"use strict";var r=p(8403);e.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),p={},r=0;r{"use strict";var r="win32"===process.platform,o=p(537);function i(e,t){for(var p=[],r=0;r=0&&!e[r];r--);return 0===p&&r===t?e:p>r?[]:e.slice(p,r+1)}var n=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,a=/^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/,l={};function c(e){var t=n.exec(e),p=(t[1]||"")+(t[2]||""),r=t[3]||"",o=a.exec(r);return[p,o[1],o[2],o[3]]}function u(e){var t=n.exec(e),p=t[1]||"",r=!!p&&":"!==p[1];return{device:p,isUnc:r,isAbsolute:r||!!t[2],tail:t[3]}}function y(e){return"\\\\"+e.replace(/^[\\\/]+/,"").replace(/[\\\/]+/g,"\\")}l.resolve=function(){for(var e="",t="",p=!1,r=arguments.length-1;r>=-1;r--){var s;if(r>=0?s=arguments[r]:e?(s=process.env["="+e])&&s.substr(0,3).toLowerCase()===e.toLowerCase()+"\\"||(s=e+"\\"):s=process.cwd(),!o.isString(s))throw new TypeError("Arguments to path.resolve must be strings");if(s){var n=u(s),a=n.device,l=n.isUnc,c=n.isAbsolute,f=n.tail;if((!a||!e||a.toLowerCase()===e.toLowerCase())&&(e||(e=a),p||(t=f+"\\"+t,p=c),e&&p))break}}return l&&(e=y(e)),e+(p?"\\":"")+(t=i(t.split(/[\\\/]+/),!p).join("\\"))||"."},l.normalize=function(e){var t=u(e),p=t.device,r=t.isUnc,o=t.isAbsolute,s=t.tail,n=/[\\\/]$/.test(s);return(s=i(s.split(/[\\\/]+/),!o).join("\\"))||o||(s="."),s&&n&&(s+="\\"),r&&(p=y(p)),p+(o?"\\":"")+s},l.isAbsolute=function(e){return u(e).isAbsolute},l.join=function(){for(var e=[],t=0;t=-1&&!t;p--){var r=p>=0?arguments[p]:process.cwd();if(!o.isString(r))throw new TypeError("Arguments to path.resolve must be strings");r&&(e=r+"/"+e,t="/"===r[0])}return(t?"/":"")+(e=i(e.split("/"),!t).join("/"))||"."},d.normalize=function(e){var t=d.isAbsolute(e),p=e&&"/"===e[e.length-1];return(e=i(e.split("/"),!t).join("/"))||t||(e="."),e&&p&&(e+="/"),(t?"/":"")+e},d.isAbsolute=function(e){return"/"===e.charAt(0)},d.join=function(){for(var e="",t=0;t{"use strict";e.exports=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]},9721:(e,t,p)=>{"use strict";var r=p(6556),o=p(4035),i=r("RegExp.prototype.exec"),s=p(9675);e.exports=function(e){if(!o(e))throw new s("`regex` must be a RegExp");return function(t){return null!==i(e,t)}}},6897:(e,t,p)=>{"use strict";var r=p(453),o=p(41),i=p(592)(),s=p(5795),n=p(9675),a=r("%Math.floor%");e.exports=function(e,t){if("function"!=typeof e)throw new n("`fn` is not a function");if("number"!=typeof t||t<0||t>4294967295||a(t)!==t)throw new n("`length` must be a positive 32-bit integer");var p=arguments.length>2&&!!arguments[2],r=!0,l=!0;if("length"in e&&s){var c=s(e,"length");c&&!c.configurable&&(r=!1),c&&!c.writable&&(l=!1)}return(r||l||!p)&&(i?o(e,"length",t,!0,!0):o(e,"length",t)),e}},4789:(e,t,p)=>{var r=p(5971);function o(){r.call(this)}o.prototype=new r,e.exports=o,o.Stream=o,o.prototype.pipe=function(e,t){var p=this;function r(t){e.writable&&!1===e.write(t)&&p.pause&&p.pause()}function o(){p.readable&&p.resume&&p.resume()}p.on("data",r),e.on("drain",o),e._isStdio||t&&!1===t.end||(p.on("end",s),p.on("close",n));var i=!1;function s(){i||(i=!0,e.end())}function n(){i||(i=!0,"function"==typeof e.destroy&&e.destroy())}function a(e){if(l(),!this.hasListeners("error"))throw e}function l(){p.off("data",r),e.off("drain",o),p.off("end",s),p.off("close",n),p.off("error",a),e.off("error",a),p.off("end",l),p.off("close",l),e.off("end",l),e.off("close",l)}return p.on("error",a),e.on("error",a),p.on("end",l),p.on("close",l),e.on("end",l),e.on("close",l),e.emit("pipe",p),e}},6622:e=>{"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var p=function(){};p.prototype=t.prototype,e.prototype=new p,e.prototype.constructor=e}},1135:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},537:(e,t,p)=>{var r=/%[sdj%]/g;t.format=function(e){if(!_(e)){for(var t=[],p=0;p=i)return e;switch(e){case"%s":return String(o[p++]);case"%d":return Number(o[p++]);case"%j":try{return JSON.stringify(o[p++])}catch(e){return"[Circular]"}default:return e}})),a=o[p];p=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),f(p)?r.showHidden=p:p&&t._extend(r,p),S(r.showHidden)&&(r.showHidden=!1),S(r.depth)&&(r.depth=2),S(r.colors)&&(r.colors=!1),S(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=n),l(r,e,r.depth)}function n(e,t){var p=s.styles[t];return p?"["+s.colors[p][0]+"m"+e+"["+s.colors[p][1]+"m":e}function a(e,t){return e}function l(e,p,r){if(e.customInspect&&p&&b(p.inspect)&&p.inspect!==t.inspect&&(!p.constructor||p.constructor.prototype!==p)){var o=p.inspect(r,e);return _(o)||(o=l(e,o,r)),o}var i=function(e,t){if(S(t))return e.stylize("undefined","undefined");if(_(t)){var p="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(p,"string")}return h(t)?e.stylize(""+t,"number"):f(t)?e.stylize(""+t,"boolean"):d(t)?e.stylize("null","null"):void 0}(e,p);if(i)return i;var s=Object.keys(p),n=function(e){var t={};return e.forEach((function(e,p){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(p)),m(p)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return c(p);if(0===s.length){if(b(p)){var a=p.name?": "+p.name:"";return e.stylize("[Function"+a+"]","special")}if(g(p))return e.stylize(RegExp.prototype.toString.call(p),"regexp");if(E(p))return e.stylize(Date.prototype.toString.call(p),"date");if(m(p))return c(p)}var w,I="",L=!1,T=["{","}"];return y(p)&&(L=!0,T=["[","]"]),b(p)&&(I=" [Function"+(p.name?": "+p.name:"")+"]"),g(p)&&(I=" "+RegExp.prototype.toString.call(p)),E(p)&&(I=" "+Date.prototype.toUTCString.call(p)),m(p)&&(I=" "+c(p)),0!==s.length||L&&0!=p.length?r<0?g(p)?e.stylize(RegExp.prototype.toString.call(p),"regexp"):e.stylize("[Object]","special"):(e.seen.push(p),w=L?function(e,t,p,r,o){for(var i=[],s=0,n=t.length;s60?p[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+p[1]:p[0]+t+" "+e.join(", ")+" "+p[1]}(w,I,T)):T[0]+I+T[1]}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function u(e,t,p,r,o,i){var s,n,a;if((a=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?n=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(n=e.stylize("[Setter]","special")),v(r,o)||(s="["+o+"]"),n||(e.seen.indexOf(a.value)<0?(n=d(p)?l(e,a.value,null):l(e,a.value,p-1)).indexOf("\n")>-1&&(n=i?n.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+n.split("\n").map((function(e){return" "+e})).join("\n")):n=e.stylize("[Circular]","special")),S(s)){if(i&&o.match(/^\d+$/))return n;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+n}function y(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function d(e){return null===e}function h(e){return"number"==typeof e}function _(e){return"string"==typeof e}function S(e){return void 0===e}function g(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function m(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function b(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function L(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(S(o)&&(o=process.env.NODE_DEBUG||""),e=e.toUpperCase(),!i[e])if(new RegExp("\\b"+e+"\\b","i").test(o)){var p=process.pid;i[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,p,r)}}else i[e]=function(){};return i[e]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=y,t.isBoolean=f,t.isNull=d,t.isNullOrUndefined=function(e){return null==e},t.isNumber=h,t.isString=_,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=S,t.isRegExp=g,t.isObject=w,t.isDate=E,t.isError=m,t.isFunction=b,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=p(1135);var T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function v(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,p;console.log("%s - %s",(p=[L((e=new Date).getHours()),L(e.getMinutes()),L(e.getSeconds())].join(":"),[e.getDate(),T[e.getMonth()],p].join(" ")),t.format.apply(t,arguments))},t.inherits=p(6622),t._extend=function(e,t){if(!t||!w(t))return e;for(var p=Object.keys(t),r=p.length;r--;)e[p[r]]=t[p[r]];return e}},5767:(e,t,p)=>{"use strict";var r=p(2682),o=p(9209),i=p(487),s=p(6556),n=p(5795),a=s("Object.prototype.toString"),l=p(9092)(),c="undefined"==typeof globalThis?p.g:globalThis,u=o(),y=s("String.prototype.slice"),f=Object.getPrototypeOf,d=s("Array.prototype.indexOf",!0)||function(e,t){for(var p=0;p-1?t:"Object"===t&&function(e){var t=!1;return r(h,(function(p,r){if(!t)try{p(e),t=y(r,1)}catch(e){}})),t}(e)}return n?function(e){var t=!1;return r(h,(function(p,r){if(!t)try{"$"+p(e)===r&&(t=y(r,1))}catch(e){}})),t}(e):null}},9209:(e,t,p)=>{"use strict";var r=p(6578),o="undefined"==typeof globalThis?p.g:globalThis;e.exports=function(){for(var e=[],t=0;t(e.paths=[],e.children||(e.children=[]),e),p(8248)})(); \ No newline at end of file diff --git a/javascript/sbp/integrity.js b/javascript/sbp/integrity.js index 883971014a..3f2bb99333 100644 --- a/javascript/sbp/integrity.js +++ b/javascript/sbp/integrity.js @@ -74,7 +74,76 @@ IntegritySSRHeader.prototype.fieldSpec.push(['tile_id', 'writeUInt16LE', 2]); IntegritySSRHeader.prototype.fieldSpec.push(['chain_id', 'writeUInt8', 1]); /** - * SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BB9). + * SBP class for message MSG_SSR_FLAG_HIGH_LEVEL_DEP_A (0x0BB9). + * + * Deprecated. + * + * Fields in the SBP payload (`sbp.payload`): + * @field obs_time GPSTimeSec GNSS reference time of the observation used to generate the flag. + * @field corr_time GPSTimeSec GNSS reference time of the correction associated to the flag. + * @field ssr_sol_id number (unsigned 8-bit int, 1 byte) SSR Solution ID. + * @field tile_set_id number (unsigned 16-bit int, 2 bytes) Unique identifier of the set this tile belongs to. + * @field tile_id number (unsigned 16-bit int, 2 bytes) Unique identifier of this tile in the tile set. + * @field chain_id number (unsigned 8-bit int, 1 byte) Chain and type of flag. + * @field use_gps_sat number (unsigned 8-bit int, 1 byte) Use GPS satellites. + * @field use_gal_sat number (unsigned 8-bit int, 1 byte) Use GAL satellites. + * @field use_bds_sat number (unsigned 8-bit int, 1 byte) Use BDS satellites. + * @field use_qzss_sat number (unsigned 8-bit int, 1 byte) Use QZSS satellites. + * @field reserved array Reserved + * @field use_tropo_grid_points number (unsigned 8-bit int, 1 byte) Use tropo grid points. + * @field use_iono_grid_points number (unsigned 8-bit int, 1 byte) Use iono grid points. + * @field use_iono_tile_sat_los number (unsigned 8-bit int, 1 byte) Use iono tile satellite LoS. + * @field use_iono_grid_point_sat_los number (unsigned 8-bit int, 1 byte) Use iono grid point satellite LoS. + * + * @param sbp An SBP object with a payload to be decoded. + */ +let MsgSsrFlagHighLevelDepA = function (sbp, fields) { + SBP.call(this, sbp); + this.messageType = "MSG_SSR_FLAG_HIGH_LEVEL_DEP_A"; + this.fields = (fields || this.parser.parse(sbp.payload)); + + return this; +}; +MsgSsrFlagHighLevelDepA.prototype = Object.create(SBP.prototype); +MsgSsrFlagHighLevelDepA.prototype.messageType = "MSG_SSR_FLAG_HIGH_LEVEL_DEP_A"; +MsgSsrFlagHighLevelDepA.prototype.msg_type = 0x0BB9; +MsgSsrFlagHighLevelDepA.prototype.constructor = MsgSsrFlagHighLevelDepA; +MsgSsrFlagHighLevelDepA.prototype.parser = new Parser() + .endianess('little') + .nest('obs_time', { type: GPSTimeSec.prototype.parser }) + .nest('corr_time', { type: GPSTimeSec.prototype.parser }) + .uint8('ssr_sol_id') + .uint16('tile_set_id') + .uint16('tile_id') + .uint8('chain_id') + .uint8('use_gps_sat') + .uint8('use_gal_sat') + .uint8('use_bds_sat') + .uint8('use_qzss_sat') + .array('reserved', { length: 5, type: 'uint8' }) + .uint8('use_tropo_grid_points') + .uint8('use_iono_grid_points') + .uint8('use_iono_tile_sat_los') + .uint8('use_iono_grid_point_sat_los'); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec = []; +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['obs_time', GPSTimeSec.prototype.fieldSpec]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['corr_time', GPSTimeSec.prototype.fieldSpec]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['ssr_sol_id', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['tile_set_id', 'writeUInt16LE', 2]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['tile_id', 'writeUInt16LE', 2]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['chain_id', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['use_gps_sat', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['use_gal_sat', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['use_bds_sat', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['use_qzss_sat', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['reserved', 'array', 'writeUInt8', function () { return 1; }, 5]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['use_tropo_grid_points', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['use_iono_grid_points', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['use_iono_tile_sat_los', 'writeUInt8', 1]); +MsgSsrFlagHighLevelDepA.prototype.fieldSpec.push(['use_iono_grid_point_sat_los', 'writeUInt8', 1]); + +/** + * SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BBA). * * Integrity monitoring flags for multiple aggregated elements. An element could be * a satellite, SSR grid point, or SSR tile. A group of aggregated elements being @@ -93,7 +162,8 @@ IntegritySSRHeader.prototype.fieldSpec.push(['chain_id', 'writeUInt8', 1]); * * Fields in the SBP payload (`sbp.payload`): * @field obs_time GPSTimeSec GNSS reference time of the observation used to generate the flag. - * @field corr_time GPSTimeSec GNSS reference time of the correction associated to the flag. + * @field iono_corr_time GPSTimeSec GNSS reference time of the ionospheric correction associated to the flag. + * @field sat_corr_time GPSTimeSec GNSS reference time of the satellite correction associated to the flag. * @field ssr_sol_id number (unsigned 8-bit int, 1 byte) SSR Solution ID. * @field tile_set_id number (unsigned 16-bit int, 2 bytes) Unique identifier of the set this tile belongs to. * @field tile_id number (unsigned 16-bit int, 2 bytes) Unique identifier of this tile in the tile set. @@ -119,12 +189,13 @@ let MsgSsrFlagHighLevel = function (sbp, fields) { }; MsgSsrFlagHighLevel.prototype = Object.create(SBP.prototype); MsgSsrFlagHighLevel.prototype.messageType = "MSG_SSR_FLAG_HIGH_LEVEL"; -MsgSsrFlagHighLevel.prototype.msg_type = 0x0BB9; +MsgSsrFlagHighLevel.prototype.msg_type = 0x0BBA; MsgSsrFlagHighLevel.prototype.constructor = MsgSsrFlagHighLevel; MsgSsrFlagHighLevel.prototype.parser = new Parser() .endianess('little') .nest('obs_time', { type: GPSTimeSec.prototype.parser }) - .nest('corr_time', { type: GPSTimeSec.prototype.parser }) + .nest('iono_corr_time', { type: GPSTimeSec.prototype.parser }) + .nest('sat_corr_time', { type: GPSTimeSec.prototype.parser }) .uint8('ssr_sol_id') .uint16('tile_set_id') .uint16('tile_id') @@ -140,7 +211,8 @@ MsgSsrFlagHighLevel.prototype.parser = new Parser() .uint8('use_iono_grid_point_sat_los'); MsgSsrFlagHighLevel.prototype.fieldSpec = []; MsgSsrFlagHighLevel.prototype.fieldSpec.push(['obs_time', GPSTimeSec.prototype.fieldSpec]); -MsgSsrFlagHighLevel.prototype.fieldSpec.push(['corr_time', GPSTimeSec.prototype.fieldSpec]); +MsgSsrFlagHighLevel.prototype.fieldSpec.push(['iono_corr_time', GPSTimeSec.prototype.fieldSpec]); +MsgSsrFlagHighLevel.prototype.fieldSpec.push(['sat_corr_time', GPSTimeSec.prototype.fieldSpec]); MsgSsrFlagHighLevel.prototype.fieldSpec.push(['ssr_sol_id', 'writeUInt8', 1]); MsgSsrFlagHighLevel.prototype.fieldSpec.push(['tile_set_id', 'writeUInt16LE', 2]); MsgSsrFlagHighLevel.prototype.fieldSpec.push(['tile_id', 'writeUInt16LE', 2]); @@ -379,7 +451,9 @@ MsgAcknowledge.prototype.fieldSpec.push(['solution_id', 'writeUInt8', 1]); module.exports = { IntegritySSRHeader: IntegritySSRHeader, - 0x0BB9: MsgSsrFlagHighLevel, + 0x0BB9: MsgSsrFlagHighLevelDepA, + MsgSsrFlagHighLevelDepA: MsgSsrFlagHighLevelDepA, + 0x0BBA: MsgSsrFlagHighLevel, MsgSsrFlagHighLevel: MsgSsrFlagHighLevel, 0x0BBD: MsgSsrFlagSatellites, MsgSsrFlagSatellites: MsgSsrFlagSatellites, diff --git a/jsonschema/MsgSsrFlagHighLevel.json b/jsonschema/MsgSsrFlagHighLevel.json index 70005ae4a3..1c89d6cb76 100644 --- a/jsonschema/MsgSsrFlagHighLevel.json +++ b/jsonschema/MsgSsrFlagHighLevel.json @@ -17,7 +17,8 @@ "type": "object", "properties": { "obs_time": {"$ref": "GpsTimeSec.json"}, - "corr_time": {"$ref": "GpsTimeSec.json"}, + "iono_corr_time": {"$ref": "GpsTimeSec.json"}, + "sat_corr_time": {"$ref": "GpsTimeSec.json"}, "ssr_sol_id": {"type": "integer"}, "tile_set_id": {"type": "integer"}, "tile_id": {"type": "integer"}, @@ -33,7 +34,8 @@ }, "required": [ "obs_time", - "corr_time", + "iono_corr_time", + "sat_corr_time", "ssr_sol_id", "tile_set_id", "tile_id", diff --git a/kaitai/ksy/integrity.ksy b/kaitai/ksy/integrity.ksy index bb34cfda71..e82d1d621f 100644 --- a/kaitai/ksy/integrity.ksy +++ b/kaitai/ksy/integrity.ksy @@ -51,6 +51,73 @@ types: Chain and type of flag. type: u1 + msg_ssr_flag_high_level_dep_a: + doc: | + Deprecated. + seq: + - id: obs_time + doc: | + GNSS reference time of the observation used to generate the flag. + type: gnss::gps_time_sec + - id: corr_time + doc: | + GNSS reference time of the correction associated to the flag. + type: gnss::gps_time_sec + - id: ssr_sol_id + doc: | + SSR Solution ID. + type: u1 + - id: tile_set_id + doc: | + Unique identifier of the set this tile belongs to. + type: u2 + - id: tile_id + doc: | + Unique identifier of this tile in the tile set. + type: u2 + - id: chain_id + doc: | + Chain and type of flag. + type: u1 + - id: use_gps_sat + doc: | + Use GPS satellites. + type: u1 + - id: use_gal_sat + doc: | + Use GAL satellites. + type: u1 + - id: use_bds_sat + doc: | + Use BDS satellites. + type: u1 + - id: use_qzss_sat + doc: | + Use QZSS satellites. + type: u1 + - id: reserved + doc: | + Reserved + type: u1 + repeat: expr + repeat-expr: 5 + - id: use_tropo_grid_points + doc: | + Use tropo grid points. + type: u1 + - id: use_iono_grid_points + doc: | + Use iono grid points. + type: u1 + - id: use_iono_tile_sat_los + doc: | + Use iono tile satellite LoS. + type: u1 + - id: use_iono_grid_point_sat_los + doc: | + Use iono grid point satellite LoS. + type: u1 + msg_ssr_flag_high_level: doc: | Integrity monitoring flags for multiple aggregated elements. An element @@ -83,9 +150,15 @@ types: doc: | GNSS reference time of the observation used to generate the flag. type: gnss::gps_time_sec - - id: corr_time + - id: iono_corr_time doc: | - GNSS reference time of the correction associated to the flag. + GNSS reference time of the ionospheric correction associated to the + flag. + type: gnss::gps_time_sec + - id: sat_corr_time + doc: | + GNSS reference time of the satellite correction associated to the + flag. type: gnss::gps_time_sec - id: ssr_sol_id doc: | diff --git a/kaitai/ksy/sbp.ksy b/kaitai/ksy/sbp.ksy index 7aac5ff64c..d2c7df2cdf 100644 --- a/kaitai/ksy/sbp.ksy +++ b/kaitai/ksy/sbp.ksy @@ -97,7 +97,8 @@ enums: 2305: msg_imu_aux 2309: msg_imu_comp - 3001: msg_ssr_flag_high_level + 3001: msg_ssr_flag_high_level_dep_a + 3002: msg_ssr_flag_high_level 3005: msg_ssr_flag_satellites 3011: msg_ssr_flag_tropo_grid_points 3015: msg_ssr_flag_iono_grid_points @@ -381,7 +382,8 @@ types: 2305: imu::msg_imu_aux 2309: imu::msg_imu_comp - 3001: integrity::msg_ssr_flag_high_level + 3001: integrity::msg_ssr_flag_high_level_dep_a + 3002: integrity::msg_ssr_flag_high_level 3005: integrity::msg_ssr_flag_satellites 3011: integrity::msg_ssr_flag_tropo_grid_points 3015: integrity::msg_ssr_flag_iono_grid_points diff --git a/kaitai/perl/KaitaiSbp/Integrity.pm b/kaitai/perl/KaitaiSbp/Integrity.pm index a522c9bcea..f88e6f1bbc 100644 --- a/kaitai/perl/KaitaiSbp/Integrity.pm +++ b/kaitai/perl/KaitaiSbp/Integrity.pm @@ -481,7 +481,7 @@ sub faulty_points { } ######################################################################## -package Integrity::MsgSsrFlagHighLevel; +package Integrity::MsgSsrFlagHighLevelDepA; our @ISA = 'IO::KaitaiStruct::Struct'; @@ -606,4 +606,136 @@ sub use_iono_grid_point_sat_los { return $self->{use_iono_grid_point_sat_los}; } +######################################################################## +package Integrity::MsgSsrFlagHighLevel; + +our @ISA = 'IO::KaitaiStruct::Struct'; + +sub from_file { + my ($class, $filename) = @_; + my $fd; + + open($fd, '<', $filename) or return undef; + binmode($fd); + return new($class, IO::KaitaiStruct::Stream->new($fd)); +} + +sub new { + my ($class, $_io, $_parent, $_root) = @_; + my $self = IO::KaitaiStruct::Struct->new($_io); + + bless $self, $class; + $self->{_parent} = $_parent; + $self->{_root} = $_root || $self;; + + $self->_read(); + + return $self; +} + +sub _read { + my ($self) = @_; + + $self->{obs_time} = Gnss::GpsTimeSec->new($self->{_io}, $self, $self->{_root}); + $self->{iono_corr_time} = Gnss::GpsTimeSec->new($self->{_io}, $self, $self->{_root}); + $self->{sat_corr_time} = Gnss::GpsTimeSec->new($self->{_io}, $self, $self->{_root}); + $self->{ssr_sol_id} = $self->{_io}->read_u1(); + $self->{tile_set_id} = $self->{_io}->read_u2le(); + $self->{tile_id} = $self->{_io}->read_u2le(); + $self->{chain_id} = $self->{_io}->read_u1(); + $self->{use_gps_sat} = $self->{_io}->read_u1(); + $self->{use_gal_sat} = $self->{_io}->read_u1(); + $self->{use_bds_sat} = $self->{_io}->read_u1(); + $self->{use_qzss_sat} = $self->{_io}->read_u1(); + $self->{reserved} = []; + my $n_reserved = 5; + for (my $i = 0; $i < $n_reserved; $i++) { + push @{$self->{reserved}}, $self->{_io}->read_u1(); + } + $self->{use_tropo_grid_points} = $self->{_io}->read_u1(); + $self->{use_iono_grid_points} = $self->{_io}->read_u1(); + $self->{use_iono_tile_sat_los} = $self->{_io}->read_u1(); + $self->{use_iono_grid_point_sat_los} = $self->{_io}->read_u1(); +} + +sub obs_time { + my ($self) = @_; + return $self->{obs_time}; +} + +sub iono_corr_time { + my ($self) = @_; + return $self->{iono_corr_time}; +} + +sub sat_corr_time { + my ($self) = @_; + return $self->{sat_corr_time}; +} + +sub ssr_sol_id { + my ($self) = @_; + return $self->{ssr_sol_id}; +} + +sub tile_set_id { + my ($self) = @_; + return $self->{tile_set_id}; +} + +sub tile_id { + my ($self) = @_; + return $self->{tile_id}; +} + +sub chain_id { + my ($self) = @_; + return $self->{chain_id}; +} + +sub use_gps_sat { + my ($self) = @_; + return $self->{use_gps_sat}; +} + +sub use_gal_sat { + my ($self) = @_; + return $self->{use_gal_sat}; +} + +sub use_bds_sat { + my ($self) = @_; + return $self->{use_bds_sat}; +} + +sub use_qzss_sat { + my ($self) = @_; + return $self->{use_qzss_sat}; +} + +sub reserved { + my ($self) = @_; + return $self->{reserved}; +} + +sub use_tropo_grid_points { + my ($self) = @_; + return $self->{use_tropo_grid_points}; +} + +sub use_iono_grid_points { + my ($self) = @_; + return $self->{use_iono_grid_points}; +} + +sub use_iono_tile_sat_los { + my ($self) = @_; + return $self->{use_iono_tile_sat_los}; +} + +sub use_iono_grid_point_sat_los { + my ($self) = @_; + return $self->{use_iono_grid_point_sat_los}; +} + 1; diff --git a/kaitai/perl/KaitaiSbp/Sbp.pm b/kaitai/perl/KaitaiSbp/Sbp.pm index 0f3f1be210..980f6db294 100644 --- a/kaitai/perl/KaitaiSbp/Sbp.pm +++ b/kaitai/perl/KaitaiSbp/Sbp.pm @@ -234,7 +234,8 @@ our $MSG_IDS_MSG_MAG_RAW = 2306; our $MSG_IDS_MSG_ODOMETRY = 2307; our $MSG_IDS_MSG_WHEELTICK = 2308; our $MSG_IDS_MSG_IMU_COMP = 2309; -our $MSG_IDS_MSG_SSR_FLAG_HIGH_LEVEL = 3001; +our $MSG_IDS_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A = 3001; +our $MSG_IDS_MSG_SSR_FLAG_HIGH_LEVEL = 3002; our $MSG_IDS_MSG_SSR_FLAG_SATELLITES = 3005; our $MSG_IDS_MSG_SSR_FLAG_TROPO_GRID_POINTS = 3011; our $MSG_IDS_MSG_SSR_FLAG_IONO_GRID_POINTS = 3015; @@ -1510,7 +1511,7 @@ sub _read { elsif ($_on == 3001) { $self->{_raw_payload} = $self->{_io}->read_bytes($self->length()); my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); - $self->{payload} = Integrity::MsgSsrFlagHighLevel->new($io__raw_payload, $self, $self->{_root}); + $self->{payload} = Integrity::MsgSsrFlagHighLevelDepA->new($io__raw_payload, $self, $self->{_root}); } elsif ($_on == 30) { $self->{_raw_payload} = $self->{_io}->read_bytes($self->length()); @@ -1542,6 +1543,11 @@ sub _read { my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); $self->{payload} = Bootload::MsgNapDeviceDnaReq->new($io__raw_payload, $self, $self->{_root}); } + elsif ($_on == 3002) { + $self->{_raw_payload} = $self->{_io}->read_bytes($self->length()); + my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); + $self->{payload} = Integrity::MsgSsrFlagHighLevel->new($io__raw_payload, $self, $self->{_root}); + } else { $self->{payload} = $self->{_io}->read_bytes($self->length()); } diff --git a/kaitai/perl/KaitaiSbp/Table.pm b/kaitai/perl/KaitaiSbp/Table.pm index 2f69d8e287..5f12a5de43 100644 --- a/kaitai/perl/KaitaiSbp/Table.pm +++ b/kaitai/perl/KaitaiSbp/Table.pm @@ -91,7 +91,8 @@ our %TABLE = ( 2305 => sub{Imu::MsgImuAux->new(@_)}, 2309 => sub{Imu::MsgImuComp->new(@_)}, - 3001 => sub{Integrity::MsgSsrFlagHighLevel->new(@_)}, + 3001 => sub{Integrity::MsgSsrFlagHighLevelDepA->new(@_)}, + 3002 => sub{Integrity::MsgSsrFlagHighLevel->new(@_)}, 3005 => sub{Integrity::MsgSsrFlagSatellites->new(@_)}, 3011 => sub{Integrity::MsgSsrFlagTropoGridPoints->new(@_)}, 3015 => sub{Integrity::MsgSsrFlagIonoGridPoints->new(@_)}, diff --git a/kaitai/perl/KaitaiSbp/t/auto_check_sbp_integrity_MsgSsrFlagHighLevel.t b/kaitai/perl/KaitaiSbp/t/auto_check_sbp_integrity_MsgSsrFlagHighLevel.t index 2e66aa82db..1b2311ed94 100644 --- a/kaitai/perl/KaitaiSbp/t/auto_check_sbp_integrity_MsgSsrFlagHighLevel.t +++ b/kaitai/perl/KaitaiSbp/t/auto_check_sbp_integrity_MsgSsrFlagHighLevel.t @@ -29,32 +29,34 @@ use Test::More; use JSON::PP; use MIME::Base64; sub test_auto_check_sbp_integrity_msg_ssr_flag_high_level_1() { - my $buf = decode_base64("VbkLQgAftAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCGkD"); + my $buf = decode_base64("VboLQgAltAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCLHu"); my $stream = IO::KaitaiStruct::Stream->new($buf); my $msg = ParseUtils::get_flattened_msg(Sbp::SbpMessage->new($stream)); is($msg->{'preamble'}, 0x55, "preamble"); - is($msg->{'msg_type'}, 0x0BB9, "msg_type"); + is($msg->{'msg_type'}, 0x0BBA, "msg_type"); is($msg->{'sender'}, 0x0042, "sender"); - is($msg->{'length'}, 31, "length"); + is($msg->{'length'}, 37, "length"); - is($msg->{'payload'}, "tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "payload"); + is($msg->{'payload'}, "tAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "payload"); - is($msg->{'crc'}, 0x0369, "crc"); + is($msg->{'crc'}, 0xEEB1, "crc"); my $json = JSON::PP->new->convert_blessed->canonical; is($msg->chain_id(), 40, "chain_id"); - is($json->encode($msg->corr_time()), $json->encode($json->decode(q{{"tow":360,"wn":6}})), "corr_time"); + is($json->encode($msg->iono_corr_time()), $json->encode($json->decode(q{{"tow":365,"wn":6}})), "iono_corr_time"); is($json->encode($msg->obs_time()), $json->encode($json->decode(q{{"tow":180,"wn":3}})), "obs_time"); is($json->encode($msg->reserved()), $json->encode($json->decode(q{[0,0,0,0,0]})), "reserved"); + is($json->encode($msg->sat_corr_time()), $json->encode($json->decode(q{{"tow":360,"wn":6}})), "sat_corr_time"); + is($msg->ssr_sol_id(), 10, "ssr_sol_id"); is($msg->tile_id(), 30, "tile_id"); @@ -77,7 +79,7 @@ sub test_auto_check_sbp_integrity_msg_ssr_flag_high_level_1() { is($msg->use_tropo_grid_points(), 5, "use_tropo_grid_points"); - is($json->encode($msg), $json->encode($json->decode(q{{"chain_id":40,"corr_time":{"tow":360,"wn":6},"crc":873,"length":31,"msg_type":3001,"obs_time":{"tow":180,"wn":3},"payload":"tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==","preamble":85,"reserved":[0,0,0,0,0],"sender":66,"ssr_sol_id":10,"tile_id":30,"tile_set_id":20,"use_bds_sat":3,"use_gal_sat":2,"use_gps_sat":1,"use_iono_grid_point_sat_los":8,"use_iono_grid_points":6,"use_iono_tile_sat_los":7,"use_qzss_sat":4,"use_tropo_grid_points":5}})), "raw_json"); + is($json->encode($msg), $json->encode($json->decode(q{{"chain_id":40,"crc":61105,"iono_corr_time":{"tow":365,"wn":6},"length":37,"msg_type":3002,"obs_time":{"tow":180,"wn":3},"payload":"tAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==","preamble":85,"reserved":[0,0,0,0,0],"sat_corr_time":{"tow":360,"wn":6},"sender":66,"ssr_sol_id":10,"tile_id":30,"tile_set_id":20,"use_bds_sat":3,"use_gal_sat":2,"use_gps_sat":1,"use_iono_grid_point_sat_los":8,"use_iono_grid_points":6,"use_iono_tile_sat_los":7,"use_qzss_sat":4,"use_tropo_grid_points":5}})), "raw_json"); } test_auto_check_sbp_integrity_msg_ssr_flag_high_level_1(); diff --git a/kaitai/perl/KaitaiSbp/t/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.t b/kaitai/perl/KaitaiSbp/t/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.t new file mode 100644 index 0000000000..c0eeddbbbf --- /dev/null +++ b/kaitai/perl/KaitaiSbp/t/auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.t @@ -0,0 +1,84 @@ +#!/usr/bin/perl -w +# +# Copyright (C) 2015-2023 Swift Navigation Inc. +# Contact: https://support.swiftnav.com +# +# This source is subject to the license found in the file 'LICENSE' which must +# be distributed together with this source. All other rights reserved. +# +# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +# +# Test cases automatically generated from spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml +# with generate.py. Do not modify by hand! + +use strict; + +BEGIN { + # add grandparent directory to include path + use Cwd qw(realpath); + use File::Basename; + unshift @INC, realpath(dirname($0))."/../../"; +} + +use KaitaiSbp::Sbp; +use KaitaiSbp::ParseUtils; +use IO::KaitaiStruct; +use Test::More; +use JSON::PP; +use MIME::Base64; +sub test_auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a_1() { + my $buf = decode_base64("VbkLQgAftAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCGkD"); + my $stream = IO::KaitaiStruct::Stream->new($buf); + my $msg = ParseUtils::get_flattened_msg(Sbp::SbpMessage->new($stream)); + + is($msg->{'preamble'}, 0x55, "preamble"); + + is($msg->{'msg_type'}, 0x0BB9, "msg_type"); + + is($msg->{'sender'}, 0x0042, "sender"); + + is($msg->{'length'}, 31, "length"); + + is($msg->{'payload'}, "tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "payload"); + + is($msg->{'crc'}, 0x0369, "crc"); + + my $json = JSON::PP->new->convert_blessed->canonical; + + is($msg->chain_id(), 40, "chain_id"); + + is($json->encode($msg->corr_time()), $json->encode($json->decode(q{{"tow":360,"wn":6}})), "corr_time"); + + is($json->encode($msg->obs_time()), $json->encode($json->decode(q{{"tow":180,"wn":3}})), "obs_time"); + + is($json->encode($msg->reserved()), $json->encode($json->decode(q{[0,0,0,0,0]})), "reserved"); + + is($msg->ssr_sol_id(), 10, "ssr_sol_id"); + + is($msg->tile_id(), 30, "tile_id"); + + is($msg->tile_set_id(), 20, "tile_set_id"); + + is($msg->use_bds_sat(), 3, "use_bds_sat"); + + is($msg->use_gal_sat(), 2, "use_gal_sat"); + + is($msg->use_gps_sat(), 1, "use_gps_sat"); + + is($msg->use_iono_grid_point_sat_los(), 8, "use_iono_grid_point_sat_los"); + + is($msg->use_iono_grid_points(), 6, "use_iono_grid_points"); + + is($msg->use_iono_tile_sat_los(), 7, "use_iono_tile_sat_los"); + + is($msg->use_qzss_sat(), 4, "use_qzss_sat"); + + is($msg->use_tropo_grid_points(), 5, "use_tropo_grid_points"); + + is($json->encode($msg), $json->encode($json->decode(q{{"chain_id":40,"corr_time":{"tow":360,"wn":6},"crc":873,"length":31,"msg_type":3001,"obs_time":{"tow":180,"wn":3},"payload":"tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==","preamble":85,"reserved":[0,0,0,0,0],"sender":66,"ssr_sol_id":10,"tile_id":30,"tile_set_id":20,"use_bds_sat":3,"use_gal_sat":2,"use_gps_sat":1,"use_iono_grid_point_sat_los":8,"use_iono_grid_points":6,"use_iono_tile_sat_los":7,"use_qzss_sat":4,"use_tropo_grid_points":5}})), "raw_json"); +} +test_auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a_1(); + +done_testing(); diff --git a/kaitai/python/kaitai_sbp/integrity.py b/kaitai/python/kaitai_sbp/integrity.py index 7fcf216f63..55d57614d3 100644 --- a/kaitai/python/kaitai_sbp/integrity.py +++ b/kaitai/python/kaitai_sbp/integrity.py @@ -147,6 +147,36 @@ def _read(self): + class MsgSsrFlagHighLevelDepA(KaitaiStruct): + """Deprecated. + """ + def __init__(self, _io, _parent=None, _root=None): + self._io = _io + self._parent = _parent + self._root = _root if _root else self + self._read() + + def _read(self): + self.obs_time = Gnss.GpsTimeSec(self._io, self, self._root) + self.corr_time = Gnss.GpsTimeSec(self._io, self, self._root) + self.ssr_sol_id = self._io.read_u1() + self.tile_set_id = self._io.read_u2le() + self.tile_id = self._io.read_u2le() + self.chain_id = self._io.read_u1() + self.use_gps_sat = self._io.read_u1() + self.use_gal_sat = self._io.read_u1() + self.use_bds_sat = self._io.read_u1() + self.use_qzss_sat = self._io.read_u1() + self.reserved = [] + for i in range(5): + self.reserved.append(self._io.read_u1()) + + self.use_tropo_grid_points = self._io.read_u1() + self.use_iono_grid_points = self._io.read_u1() + self.use_iono_tile_sat_los = self._io.read_u1() + self.use_iono_grid_point_sat_los = self._io.read_u1() + + class MsgSsrFlagHighLevel(KaitaiStruct): """Integrity monitoring flags for multiple aggregated elements. An element could be a satellite, SSR grid point, or SSR tile. A group of aggregated @@ -182,7 +212,8 @@ def __init__(self, _io, _parent=None, _root=None): def _read(self): self.obs_time = Gnss.GpsTimeSec(self._io, self, self._root) - self.corr_time = Gnss.GpsTimeSec(self._io, self, self._root) + self.iono_corr_time = Gnss.GpsTimeSec(self._io, self, self._root) + self.sat_corr_time = Gnss.GpsTimeSec(self._io, self, self._root) self.ssr_sol_id = self._io.read_u1() self.tile_set_id = self._io.read_u2le() self.tile_id = self._io.read_u2le() diff --git a/kaitai/python/kaitai_sbp/sbp.py b/kaitai/python/kaitai_sbp/sbp.py index 75d6ae8b82..5b7f5627f8 100644 --- a/kaitai/python/kaitai_sbp/sbp.py +++ b/kaitai/python/kaitai_sbp/sbp.py @@ -227,7 +227,8 @@ class MsgIds(Enum): msg_odometry = 2307 msg_wheeltick = 2308 msg_imu_comp = 2309 - msg_ssr_flag_high_level = 3001 + msg_ssr_flag_high_level_dep_a = 3001 + msg_ssr_flag_high_level = 3002 msg_ssr_flag_satellites = 3005 msg_ssr_flag_tropo_grid_points = 3011 msg_ssr_flag_iono_grid_points = 3015 @@ -1237,7 +1238,7 @@ def _read(self): elif _on == 3001: self._raw_payload = self._io.read_bytes(self.length) _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) - self.payload = Integrity.MsgSsrFlagHighLevel(_io__raw_payload, self, self._root) + self.payload = Integrity.MsgSsrFlagHighLevelDepA(_io__raw_payload, self, self._root) elif _on == 30: self._raw_payload = self._io.read_bytes(self.length) _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) @@ -1262,6 +1263,10 @@ def _read(self): self._raw_payload = self._io.read_bytes(self.length) _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) self.payload = Bootload.MsgNapDeviceDnaReq(_io__raw_payload, self, self._root) + elif _on == 3002: + self._raw_payload = self._io.read_bytes(self.length) + _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) + self.payload = Integrity.MsgSsrFlagHighLevel(_io__raw_payload, self, self._root) else: self.payload = self._io.read_bytes(self.length) self.crc = self._io.read_u2le() diff --git a/kaitai/python/kaitai_sbp/table.py b/kaitai/python/kaitai_sbp/table.py index 1685d44394..17ab1718a0 100644 --- a/kaitai/python/kaitai_sbp/table.py +++ b/kaitai/python/kaitai_sbp/table.py @@ -85,7 +85,8 @@ 2305: Imu.MsgImuAux, 2309: Imu.MsgImuComp, - 3001: Integrity.MsgSsrFlagHighLevel, + 3001: Integrity.MsgSsrFlagHighLevelDepA, + 3002: Integrity.MsgSsrFlagHighLevel, 3005: Integrity.MsgSsrFlagSatellites, 3011: Integrity.MsgSsrFlagTropoGridPoints, 3015: Integrity.MsgSsrFlagIonoGridPoints, diff --git a/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_integrity_MsgSsrFlagHighLevel.py b/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_integrity_MsgSsrFlagHighLevel.py index 8a9739e187..efe7a31bd5 100644 --- a/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_integrity_MsgSsrFlagHighLevel.py +++ b/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_integrity_MsgSsrFlagHighLevel.py @@ -19,31 +19,33 @@ import base64 def test_auto_check_sbp_integrity_msg_ssr_flag_high_level_1(): - buf = base64.standard_b64decode("VbkLQgAftAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCGkD") + buf = base64.standard_b64decode("VboLQgAltAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCLHu") stream = KaitaiStream(io.BytesIO(buf)) msg = get_flattened_msg(sbp.Sbp.SbpMessage(stream)) assert msg.preamble == 0x55 - assert msg.msg_type == 0x0BB9 + assert msg.msg_type == 0x0BBA assert msg.sender == 0x0042 - assert msg.length == 31 + assert msg.length == 37 - assert msg.payload == "tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==" + assert msg.payload == "tAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==" - assert msg.crc == 0x0369 + assert msg.crc == 0xEEB1 assert dictify(msg.chain_id) == 40 - assert dictify(msg.corr_time) == {'tow': 360, 'wn': 6} + assert dictify(msg.iono_corr_time) == {'tow': 365, 'wn': 6} assert dictify(msg.obs_time) == {'tow': 180, 'wn': 3} assert dictify(msg.reserved) == [0, 0, 0, 0, 0] + assert dictify(msg.sat_corr_time) == {'tow': 360, 'wn': 6} + assert dictify(msg.ssr_sol_id) == 10 assert dictify(msg.tile_id) == 30 @@ -66,4 +68,4 @@ def test_auto_check_sbp_integrity_msg_ssr_flag_high_level_1(): assert dictify(msg.use_tropo_grid_points) == 5 - assert dictify(msg) == {'obs_time': {'tow': 180, 'wn': 3}, 'corr_time': {'tow': 360, 'wn': 6}, 'ssr_sol_id': 10, 'tile_set_id': 20, 'tile_id': 30, 'chain_id': 40, 'use_gps_sat': 1, 'use_gal_sat': 2, 'use_bds_sat': 3, 'use_qzss_sat': 4, 'reserved': [0, 0, 0, 0, 0], 'use_tropo_grid_points': 5, 'use_iono_grid_points': 6, 'use_iono_tile_sat_los': 7, 'use_iono_grid_point_sat_los': 8, 'preamble': 85, 'msg_type': 3001, 'sender': 66, 'length': 31, 'payload': 'tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==', 'crc': 873} + assert dictify(msg) == {'obs_time': {'tow': 180, 'wn': 3}, 'sat_corr_time': {'tow': 360, 'wn': 6}, 'iono_corr_time': {'tow': 365, 'wn': 6}, 'ssr_sol_id': 10, 'tile_set_id': 20, 'tile_id': 30, 'chain_id': 40, 'use_gps_sat': 1, 'use_gal_sat': 2, 'use_bds_sat': 3, 'use_qzss_sat': 4, 'reserved': [0, 0, 0, 0, 0], 'use_tropo_grid_points': 5, 'use_iono_grid_points': 6, 'use_iono_tile_sat_los': 7, 'use_iono_grid_point_sat_los': 8, 'preamble': 85, 'msg_type': 3002, 'sender': 66, 'length': 37, 'payload': 'tAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==', 'crc': 61105} diff --git a/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.py b/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.py new file mode 100644 index 0000000000..0c1a6bf544 --- /dev/null +++ b/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_integrity_MsgSsrFlagHighLevelDepA.py @@ -0,0 +1,69 @@ +# Copyright (C) 2015-2023 Swift Navigation Inc. +# Contact: https://support.swiftnav.com +# +# This source is subject to the license found in the file 'LICENSE' which must +# be distributed together with this source. All other rights reserved. +# +# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +# +# Test cases automatically generated from spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml +# with generate.py. Do not modify by hand! + +import kaitai_sbp.sbp as sbp +from kaitai_sbp.parse_utils import get_flattened_msg +from kaitai_sbp.tests.utils import dictify +from kaitaistruct import KaitaiStream +import io +import base64 + +def test_auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a_1(): + buf = base64.standard_b64decode("VbkLQgAftAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCGkD") + + stream = KaitaiStream(io.BytesIO(buf)) + msg = get_flattened_msg(sbp.Sbp.SbpMessage(stream)) + + assert msg.preamble == 0x55 + + assert msg.msg_type == 0x0BB9 + + assert msg.sender == 0x0042 + + assert msg.length == 31 + + assert msg.payload == "tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==" + + assert msg.crc == 0x0369 + + assert dictify(msg.chain_id) == 40 + + assert dictify(msg.corr_time) == {'tow': 360, 'wn': 6} + + assert dictify(msg.obs_time) == {'tow': 180, 'wn': 3} + + assert dictify(msg.reserved) == [0, 0, 0, 0, 0] + + assert dictify(msg.ssr_sol_id) == 10 + + assert dictify(msg.tile_id) == 30 + + assert dictify(msg.tile_set_id) == 20 + + assert dictify(msg.use_bds_sat) == 3 + + assert dictify(msg.use_gal_sat) == 2 + + assert dictify(msg.use_gps_sat) == 1 + + assert dictify(msg.use_iono_grid_point_sat_los) == 8 + + assert dictify(msg.use_iono_grid_points) == 6 + + assert dictify(msg.use_iono_tile_sat_los) == 7 + + assert dictify(msg.use_qzss_sat) == 4 + + assert dictify(msg.use_tropo_grid_points) == 5 + + assert dictify(msg) == {'obs_time': {'tow': 180, 'wn': 3}, 'corr_time': {'tow': 360, 'wn': 6}, 'ssr_sol_id': 10, 'tile_set_id': 20, 'tile_id': 30, 'chain_id': 40, 'use_gps_sat': 1, 'use_gal_sat': 2, 'use_bds_sat': 3, 'use_qzss_sat': 4, 'reserved': [0, 0, 0, 0, 0], 'use_tropo_grid_points': 5, 'use_iono_grid_points': 6, 'use_iono_tile_sat_los': 7, 'use_iono_grid_point_sat_los': 8, 'preamble': 85, 'msg_type': 3001, 'sender': 66, 'length': 31, 'payload': 'tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==', 'crc': 873} diff --git a/proto/integrity.proto b/proto/integrity.proto index 507a8b82f3..28ce64b5e1 100644 --- a/proto/integrity.proto +++ b/proto/integrity.proto @@ -65,19 +65,20 @@ message IntegritySSRHeader { */ message MsgSsrFlagHighLevel { gnss.GpsTimeSec obs_time = 1; - gnss.GpsTimeSec corr_time = 2; - uint32 ssr_sol_id = 3; - uint32 tile_set_id = 4; - uint32 tile_id = 5; - uint32 chain_id = 6; - uint32 use_gps_sat = 7; - uint32 use_gal_sat = 8; - uint32 use_bds_sat = 9; - uint32 use_qzss_sat = 10; - uint32 use_tropo_grid_points = 12; - uint32 use_iono_grid_points = 13; - uint32 use_iono_tile_sat_los = 14; - uint32 use_iono_grid_point_sat_los = 15; + gnss.GpsTimeSec iono_corr_time = 2; + gnss.GpsTimeSec sat_corr_time = 3; + uint32 ssr_sol_id = 4; + uint32 tile_set_id = 5; + uint32 tile_id = 6; + uint32 chain_id = 7; + uint32 use_gps_sat = 8; + uint32 use_gal_sat = 9; + uint32 use_bds_sat = 10; + uint32 use_qzss_sat = 11; + uint32 use_tropo_grid_points = 13; + uint32 use_iono_grid_points = 14; + uint32 use_iono_tile_sat_los = 15; + uint32 use_iono_grid_point_sat_los = 16; } /** List of satellites which are faulty, per constellation diff --git a/python/Dockerfile.benchmark b/python/Dockerfile.benchmark index ced23a8b8d..e195f4b93f 100644 --- a/python/Dockerfile.benchmark +++ b/python/Dockerfile.benchmark @@ -2,11 +2,11 @@ FROM python:3.7-slim-bookworm ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ - && apt-get install -y git build-essential unzip curl libjson-perl libdigest-crc-perl + && apt-get install -y git build-essential unzip curl libjson-perl libdigest-crc-perl # install perl runtime for kaitai struct RUN \ - cd /tmp \ + cd /tmp \ && curl -LO https://github.com/kaitai-io/kaitai_struct_perl_runtime/archive/refs/tags/0.10.zip \ && unzip 0.10.zip \ && cd kaitai_struct_perl_runtime-0.10 \ diff --git a/python/sbp/integrity.py b/python/sbp/integrity.py index 47983388d8..3f344f7211 100644 --- a/python/sbp/integrity.py +++ b/python/sbp/integrity.py @@ -86,9 +86,174 @@ def from_binary(self, d): for n in self.__class__.__slots__: setattr(self, n, getattr(p, n)) -SBP_MSG_SSR_FLAG_HIGH_LEVEL = 0x0BB9 +SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A = 0x0BB9 +class MsgSsrFlagHighLevelDepA(SBP): + """SBP class for message MSG_SSR_FLAG_HIGH_LEVEL_DEP_A (0x0BB9). + + You can have MSG_SSR_FLAG_HIGH_LEVEL_DEP_A inherit its fields directly + from an inherited SBP object, or construct it inline using a dict + of its fields. + + + Deprecated. + + Parameters + ---------- + sbp : SBP + SBP parent object to inherit from. + obs_time : GPSTimeSec + GNSS reference time of the observation used to generate the flag. + corr_time : GPSTimeSec + GNSS reference time of the correction associated to the flag. + ssr_sol_id : int + SSR Solution ID. + tile_set_id : int + Unique identifier of the set this tile belongs to. + tile_id : int + Unique identifier of this tile in the tile set. + chain_id : int + Chain and type of flag. + use_gps_sat : int + Use GPS satellites. + use_gal_sat : int + Use GAL satellites. + use_bds_sat : int + Use BDS satellites. + use_qzss_sat : int + Use QZSS satellites. + reserved : array + Reserved + use_tropo_grid_points : int + Use tropo grid points. + use_iono_grid_points : int + Use iono grid points. + use_iono_tile_sat_los : int + Use iono tile satellite LoS. + use_iono_grid_point_sat_los : int + Use iono grid point satellite LoS. + sender : int + Optional sender ID, defaults to SENDER_ID (see sbp/msg.py). + + """ + _parser = construct.Struct( + 'obs_time' / GPSTimeSec._parser, + 'corr_time' / GPSTimeSec._parser, + 'ssr_sol_id' / construct.Int8ul, + 'tile_set_id' / construct.Int16ul, + 'tile_id' / construct.Int16ul, + 'chain_id' / construct.Int8ul, + 'use_gps_sat' / construct.Int8ul, + 'use_gal_sat' / construct.Int8ul, + 'use_bds_sat' / construct.Int8ul, + 'use_qzss_sat' / construct.Int8ul, + 'reserved' / construct.Array(5, construct.Int8ul), + 'use_tropo_grid_points' / construct.Int8ul, + 'use_iono_grid_points' / construct.Int8ul, + 'use_iono_tile_sat_los' / construct.Int8ul, + 'use_iono_grid_point_sat_los' / construct.Int8ul,) + __slots__ = [ + 'obs_time', + 'corr_time', + 'ssr_sol_id', + 'tile_set_id', + 'tile_id', + 'chain_id', + 'use_gps_sat', + 'use_gal_sat', + 'use_bds_sat', + 'use_qzss_sat', + 'reserved', + 'use_tropo_grid_points', + 'use_iono_grid_points', + 'use_iono_tile_sat_los', + 'use_iono_grid_point_sat_los', + ] + + def __init__(self, sbp=None, **kwargs): + if sbp: + super( MsgSsrFlagHighLevelDepA, + self).__init__(sbp.msg_type, sbp.sender, sbp.length, + sbp.payload, sbp.crc) + self.from_binary(sbp.payload) + else: + super( MsgSsrFlagHighLevelDepA, self).__init__() + self.msg_type = SBP_MSG_SSR_FLAG_HIGH_LEVEL_DEP_A + self.sender = kwargs.pop('sender', SENDER_ID) + self.obs_time = kwargs.pop('obs_time') + self.corr_time = kwargs.pop('corr_time') + self.ssr_sol_id = kwargs.pop('ssr_sol_id') + self.tile_set_id = kwargs.pop('tile_set_id') + self.tile_id = kwargs.pop('tile_id') + self.chain_id = kwargs.pop('chain_id') + self.use_gps_sat = kwargs.pop('use_gps_sat') + self.use_gal_sat = kwargs.pop('use_gal_sat') + self.use_bds_sat = kwargs.pop('use_bds_sat') + self.use_qzss_sat = kwargs.pop('use_qzss_sat') + self.reserved = kwargs.pop('reserved') + self.use_tropo_grid_points = kwargs.pop('use_tropo_grid_points') + self.use_iono_grid_points = kwargs.pop('use_iono_grid_points') + self.use_iono_tile_sat_los = kwargs.pop('use_iono_tile_sat_los') + self.use_iono_grid_point_sat_los = kwargs.pop('use_iono_grid_point_sat_los') + + def __repr__(self): + return fmt_repr(self) + + @staticmethod + def from_json(s): + """Given a JSON-encoded string s, build a message object. + + """ + d = json.loads(s) + return MsgSsrFlagHighLevelDepA.from_json_dict(d) + + @staticmethod + def from_json_dict(d): + sbp = SBP.from_json_dict(d) + return MsgSsrFlagHighLevelDepA(sbp, **d) + + + def from_binary(self, d): + """Given a binary payload d, update the appropriate payload fields of + the message. + + """ + p = MsgSsrFlagHighLevelDepA._parser.parse(d) + for n in self.__class__.__slots__: + setattr(self, n, getattr(p, n)) + + def to_binary(self): + """Produce a framed/packed SBP message. + + """ + c = containerize(exclude_fields(self)) + self.payload = MsgSsrFlagHighLevelDepA._parser.build(c) + return self.pack() + + def friendly_name(self): + """Produces friendly human-readable name for this message + + """ + return "SSR FLAG HIGH LEVEL DEP A" + + def into_buffer(self, buf, offset): + """Produce a framed/packed SBP message into the provided buffer and offset. + + """ + self.payload = containerize(exclude_fields(self)) + self.parser = MsgSsrFlagHighLevelDepA._parser + self.stream_payload.reset(buf, offset) + return self.pack_into(buf, offset, self._build_payload) + + def to_json_dict(self): + self.to_binary() + d = super( MsgSsrFlagHighLevelDepA, self).to_json_dict() + j = walk_json_dict(exclude_fields(self)) + d.update(j) + return d + +SBP_MSG_SSR_FLAG_HIGH_LEVEL = 0x0BBA class MsgSsrFlagHighLevel(SBP): - """SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BB9). + """SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BBA). You can have MSG_SSR_FLAG_HIGH_LEVEL inherit its fields directly from an inherited SBP object, or construct it inline using a dict @@ -127,8 +292,10 @@ class MsgSsrFlagHighLevel(SBP): SBP parent object to inherit from. obs_time : GPSTimeSec GNSS reference time of the observation used to generate the flag. - corr_time : GPSTimeSec - GNSS reference time of the correction associated to the flag. + iono_corr_time : GPSTimeSec + GNSS reference time of the ionospheric correction associated to the flag. + sat_corr_time : GPSTimeSec + GNSS reference time of the satellite correction associated to the flag. ssr_sol_id : int SSR Solution ID. tile_set_id : int @@ -161,7 +328,8 @@ class MsgSsrFlagHighLevel(SBP): """ _parser = construct.Struct( 'obs_time' / GPSTimeSec._parser, - 'corr_time' / GPSTimeSec._parser, + 'iono_corr_time' / GPSTimeSec._parser, + 'sat_corr_time' / GPSTimeSec._parser, 'ssr_sol_id' / construct.Int8ul, 'tile_set_id' / construct.Int16ul, 'tile_id' / construct.Int16ul, @@ -177,7 +345,8 @@ class MsgSsrFlagHighLevel(SBP): 'use_iono_grid_point_sat_los' / construct.Int8ul,) __slots__ = [ 'obs_time', - 'corr_time', + 'iono_corr_time', + 'sat_corr_time', 'ssr_sol_id', 'tile_set_id', 'tile_id', @@ -204,7 +373,8 @@ def __init__(self, sbp=None, **kwargs): self.msg_type = SBP_MSG_SSR_FLAG_HIGH_LEVEL self.sender = kwargs.pop('sender', SENDER_ID) self.obs_time = kwargs.pop('obs_time') - self.corr_time = kwargs.pop('corr_time') + self.iono_corr_time = kwargs.pop('iono_corr_time') + self.sat_corr_time = kwargs.pop('sat_corr_time') self.ssr_sol_id = kwargs.pop('ssr_sol_id') self.tile_set_id = kwargs.pop('tile_set_id') self.tile_id = kwargs.pop('tile_id') @@ -949,7 +1119,8 @@ def to_json_dict(self): msg_classes = { - 0x0BB9: MsgSsrFlagHighLevel, + 0x0BB9: MsgSsrFlagHighLevelDepA, + 0x0BBA: MsgSsrFlagHighLevel, 0x0BBD: MsgSsrFlagSatellites, 0x0BC3: MsgSsrFlagTropoGridPoints, 0x0BC7: MsgSsrFlagIonoGridPoints, diff --git a/python/tests/sbp/test_table.py b/python/tests/sbp/test_table.py index 23f36a99da..b80d891031 100644 --- a/python/tests/sbp/test_table.py +++ b/python/tests/sbp/test_table.py @@ -8,95 +8,105 @@ # EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. -from sbp.msg import SBP -from sbp.table import _SBP_TABLE, dispatch +import warnings + from sbp import acquisition as acq from sbp import bootload as boot +from sbp import ext_events as ext_events from sbp import file_io as file_io from sbp import flash as flash +from sbp import imu as imu +from sbp import integrity as integrity from sbp import linux as linux from sbp import logging as log +from sbp import mag as mag from sbp import navigation as nav +from sbp import ndb as ndb from sbp import observation as obs +from sbp import orientation as orientation from sbp import piksi as piksi +from sbp import profiling as profiling +from sbp import sbas as sbas from sbp import settings as settings +from sbp import signing as signing +from sbp import solution_meta as solmeta +from sbp import ssr as ssr from sbp import system as sys +from sbp import telemetry as telemetry from sbp import tracking as trac from sbp import user as user -from sbp import imu as imu -from sbp import integrity as integrity -from sbp import ext_events as ext_events -from sbp import ndb as ndb -from sbp import mag as mag from sbp import vehicle as vehicle -from sbp import orientation as orientation -from sbp import sbas as sbas -from sbp import ssr as ssr -from sbp import solution_meta as solmeta -from sbp import signing as signing -from sbp import telemetry as telemetry -from sbp import profiling as profiling +from sbp.msg import SBP +from sbp.table import _SBP_TABLE, dispatch -import warnings def test_table_count(): - """ - Test number of available messages to deserialize. + """ + Test number of available messages to deserialize. + + """ + number_of_messages = 240 + assert len(_SBP_TABLE) == number_of_messages + - """ - number_of_messages = 239 - assert len(_SBP_TABLE) == number_of_messages +def test_table_unique_count(): + """ + Test number of messages in packages equals total number of messages. + """ + number_of_messages = ( + len(acq.msg_classes) + + len(boot.msg_classes) + + len(file_io.msg_classes) + + len(flash.msg_classes) + + len(linux.msg_classes) + + len(log.msg_classes) + + len(nav.msg_classes) + + len(obs.msg_classes) + + len(piksi.msg_classes) + + len(settings.msg_classes) + + len(sys.msg_classes) + + len(trac.msg_classes) + + len(user.msg_classes) + + len(imu.msg_classes) + + len(integrity.msg_classes) + + len(ext_events.msg_classes) + + len(ndb.msg_classes) + + len(mag.msg_classes) + + len(vehicle.msg_classes) + + len(orientation.msg_classes) + + len(sbas.msg_classes) + + len(ssr.msg_classes) + + len(solmeta.msg_classes) + + len(signing.msg_classes) + + len(telemetry.msg_classes) + + len(profiling.msg_classes) + ) + assert len(_SBP_TABLE) == number_of_messages -def test_table_unqiue_count(): - """ - Test number of messages in packages equals total number of messages. - """ - number_of_messages = (len(acq.msg_classes) - + len(boot.msg_classes) - + len(file_io.msg_classes) - + len(flash.msg_classes) - + len(linux.msg_classes) - + len(log.msg_classes) - + len(nav.msg_classes) - + len(obs.msg_classes) - + len(piksi.msg_classes) - + len(settings.msg_classes) - + len(sys.msg_classes) - + len(trac.msg_classes) - + len(user.msg_classes) - + len(imu.msg_classes) - + len(integrity.msg_classes) - + len(ext_events.msg_classes) - + len(ndb.msg_classes) - + len(mag.msg_classes) - + len(vehicle.msg_classes) - + len(orientation.msg_classes) - + len(sbas.msg_classes) - + len(ssr.msg_classes) - + len(solmeta.msg_classes) - + len(signing.msg_classes) - + len(telemetry.msg_classes) - + len(profiling.msg_classes) - ) - assert len(_SBP_TABLE) == number_of_messages def test_available_messages(): - """ - Simple example with a limited dispatch table. + """ + Simple example with a limited dispatch table. - """ - table = {acq.SBP_MSG_ACQ_RESULT_DEP_A: acq.MsgAcqResultDepA, - log.SBP_MSG_PRINT_DEP: log.MsgPrintDep} - msg = SBP(msg_type=0x15, sender=1219, length=13, - payload=b'\x92$yA\x00\x00\xbcC\x81\xc1\xf9\xc5\x1d') - # TODO (Buro): Replace this message constructor once generated SBP - # can support kwargs for constructor, instead of requiring SBP - # object. - assert dispatch(msg, table) == acq.MsgAcqResultDepA(msg) - msg = SBP(msg_type=0xB0, sender=1219, length=4, payload='v1.2', crc=0xCE01) - with warnings.catch_warnings(record=True) as w: - dispatch(msg, table) - warnings.simplefilter("always") - assert len(w) == 1 - assert issubclass(w[0].category, RuntimeWarning) - assert str(w[0].message).find("No message found for msg_type id 176 for msg*") + """ + table = { + acq.SBP_MSG_ACQ_RESULT_DEP_A: acq.MsgAcqResultDepA, + log.SBP_MSG_PRINT_DEP: log.MsgPrintDep, + } + msg = SBP( + msg_type=0x15, + sender=1219, + length=13, + payload=b"\x92$yA\x00\x00\xbcC\x81\xc1\xf9\xc5\x1d", + ) + # TODO (Buro): Replace this message constructor once generated SBP + # can support kwargs for constructor, instead of requiring SBP + # object. + assert dispatch(msg, table) == acq.MsgAcqResultDepA(msg) + msg = SBP(msg_type=0xB0, sender=1219, length=4, payload="v1.2", crc=0xCE01) + with warnings.catch_warnings(record=True) as w: + dispatch(msg, table) + warnings.simplefilter("always") + assert len(w) == 1 + assert issubclass(w[0].category, RuntimeWarning) + assert str(w[0].message).find("No message found for msg_type id 176 for msg*") diff --git a/rust/sbp/src/messages/integrity.rs b/rust/sbp/src/messages/integrity.rs index ef9322b784..2f0ad929f5 100644 --- a/rust/sbp/src/messages/integrity.rs +++ b/rust/sbp/src/messages/integrity.rs @@ -16,6 +16,7 @@ pub use integrity_ssr_header::IntegritySSRHeader; pub use msg_acknowledge::MsgAcknowledge; pub use msg_ssr_flag_high_level::MsgSsrFlagHighLevel; +pub use msg_ssr_flag_high_level_dep_a::MsgSsrFlagHighLevelDepA; pub use msg_ssr_flag_iono_grid_point_sat_los::MsgSsrFlagIonoGridPointSatLos; pub use msg_ssr_flag_iono_grid_points::MsgSsrFlagIonoGridPoints; pub use msg_ssr_flag_iono_tile_sat_los::MsgSsrFlagIonoTileSatLos; @@ -888,9 +889,13 @@ pub mod msg_ssr_flag_high_level { /// GNSS reference time of the observation used to generate the flag. #[cfg_attr(feature = "serde", serde(rename = "obs_time"))] pub obs_time: GpsTimeSec, - /// GNSS reference time of the correction associated to the flag. - #[cfg_attr(feature = "serde", serde(rename = "corr_time"))] - pub corr_time: GpsTimeSec, + /// GNSS reference time of the ionospheric correction associated to the + /// flag. + #[cfg_attr(feature = "serde", serde(rename = "iono_corr_time"))] + pub iono_corr_time: GpsTimeSec, + /// GNSS reference time of the satellite correction associated to the flag. + #[cfg_attr(feature = "serde", serde(rename = "sat_corr_time"))] + pub sat_corr_time: GpsTimeSec, /// SSR Solution ID. #[cfg_attr(feature = "serde", serde(rename = "ssr_sol_id"))] pub ssr_sol_id: u8, @@ -1083,7 +1088,7 @@ pub mod msg_ssr_flag_high_level { } impl ConcreteMessage for MsgSsrFlagHighLevel { - const MESSAGE_TYPE: u16 = 3001; + const MESSAGE_TYPE: u16 = 3002; const MESSAGE_NAME: &'static str = "MSG_SSR_FLAG_HIGH_LEVEL"; } @@ -1129,6 +1134,7 @@ pub mod msg_ssr_flag_high_level { impl WireFormat for MsgSsrFlagHighLevel { const MIN_LEN: usize = ::MIN_LEN + + ::MIN_LEN + ::MIN_LEN + ::MIN_LEN + ::MIN_LEN @@ -1145,7 +1151,8 @@ pub mod msg_ssr_flag_high_level { + ::MIN_LEN; fn len(&self) -> usize { WireFormat::len(&self.obs_time) - + WireFormat::len(&self.corr_time) + + WireFormat::len(&self.iono_corr_time) + + WireFormat::len(&self.sat_corr_time) + WireFormat::len(&self.ssr_sol_id) + WireFormat::len(&self.tile_set_id) + WireFormat::len(&self.tile_id) @@ -1162,7 +1169,8 @@ pub mod msg_ssr_flag_high_level { } fn write(&self, buf: &mut B) { WireFormat::write(&self.obs_time, buf); - WireFormat::write(&self.corr_time, buf); + WireFormat::write(&self.iono_corr_time, buf); + WireFormat::write(&self.sat_corr_time, buf); WireFormat::write(&self.ssr_sol_id, buf); WireFormat::write(&self.tile_set_id, buf); WireFormat::write(&self.tile_id, buf); @@ -1179,6 +1187,660 @@ pub mod msg_ssr_flag_high_level { } fn parse_unchecked(buf: &mut B) -> Self { MsgSsrFlagHighLevel { + sender_id: None, + obs_time: WireFormat::parse_unchecked(buf), + iono_corr_time: WireFormat::parse_unchecked(buf), + sat_corr_time: WireFormat::parse_unchecked(buf), + ssr_sol_id: WireFormat::parse_unchecked(buf), + tile_set_id: WireFormat::parse_unchecked(buf), + tile_id: WireFormat::parse_unchecked(buf), + chain_id: WireFormat::parse_unchecked(buf), + use_gps_sat: WireFormat::parse_unchecked(buf), + use_gal_sat: WireFormat::parse_unchecked(buf), + use_bds_sat: WireFormat::parse_unchecked(buf), + use_qzss_sat: WireFormat::parse_unchecked(buf), + reserved: WireFormat::parse_unchecked(buf), + use_tropo_grid_points: WireFormat::parse_unchecked(buf), + use_iono_grid_points: WireFormat::parse_unchecked(buf), + use_iono_tile_sat_los: WireFormat::parse_unchecked(buf), + use_iono_grid_point_sat_los: WireFormat::parse_unchecked(buf), + } + } + } + + /// Use GPS satellites. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum UseGpsSatellites { + /// Nominal + Nominal = 0, + + /// Warning + Warning = 1, + + /// Alert + Alert = 2, + + /// Not monitored + NotMonitored = 3, + } + + impl std::fmt::Display for UseGpsSatellites { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UseGpsSatellites::Nominal => f.write_str("Nominal"), + UseGpsSatellites::Warning => f.write_str("Warning"), + UseGpsSatellites::Alert => f.write_str("Alert"), + UseGpsSatellites::NotMonitored => f.write_str("Not monitored"), + } + } + } + + impl TryFrom for UseGpsSatellites { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(UseGpsSatellites::Nominal), + 1 => Ok(UseGpsSatellites::Warning), + 2 => Ok(UseGpsSatellites::Alert), + 3 => Ok(UseGpsSatellites::NotMonitored), + i => Err(i), + } + } + } + + /// Use GAL satellites. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum UseGalSatellites { + /// Nominal + Nominal = 0, + + /// Warning + Warning = 1, + + /// Alert + Alert = 2, + + /// Not monitored + NotMonitored = 3, + } + + impl std::fmt::Display for UseGalSatellites { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UseGalSatellites::Nominal => f.write_str("Nominal"), + UseGalSatellites::Warning => f.write_str("Warning"), + UseGalSatellites::Alert => f.write_str("Alert"), + UseGalSatellites::NotMonitored => f.write_str("Not monitored"), + } + } + } + + impl TryFrom for UseGalSatellites { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(UseGalSatellites::Nominal), + 1 => Ok(UseGalSatellites::Warning), + 2 => Ok(UseGalSatellites::Alert), + 3 => Ok(UseGalSatellites::NotMonitored), + i => Err(i), + } + } + } + + /// Use BDS satellites. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum UseBdsSatellites { + /// Nominal + Nominal = 0, + + /// Warning + Warning = 1, + + /// Alert + Alert = 2, + + /// Not monitored + NotMonitored = 3, + } + + impl std::fmt::Display for UseBdsSatellites { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UseBdsSatellites::Nominal => f.write_str("Nominal"), + UseBdsSatellites::Warning => f.write_str("Warning"), + UseBdsSatellites::Alert => f.write_str("Alert"), + UseBdsSatellites::NotMonitored => f.write_str("Not monitored"), + } + } + } + + impl TryFrom for UseBdsSatellites { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(UseBdsSatellites::Nominal), + 1 => Ok(UseBdsSatellites::Warning), + 2 => Ok(UseBdsSatellites::Alert), + 3 => Ok(UseBdsSatellites::NotMonitored), + i => Err(i), + } + } + } + + /// Use QZSS satellites. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum UseQzssSatellites { + /// Nominal + Nominal = 0, + + /// Warning + Warning = 1, + + /// Alert + Alert = 2, + + /// Not monitored + NotMonitored = 3, + } + + impl std::fmt::Display for UseQzssSatellites { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UseQzssSatellites::Nominal => f.write_str("Nominal"), + UseQzssSatellites::Warning => f.write_str("Warning"), + UseQzssSatellites::Alert => f.write_str("Alert"), + UseQzssSatellites::NotMonitored => f.write_str("Not monitored"), + } + } + } + + impl TryFrom for UseQzssSatellites { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(UseQzssSatellites::Nominal), + 1 => Ok(UseQzssSatellites::Warning), + 2 => Ok(UseQzssSatellites::Alert), + 3 => Ok(UseQzssSatellites::NotMonitored), + i => Err(i), + } + } + } + + /// Use tropo grid points. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum UseTropoGridPoints { + /// Nominal + Nominal = 0, + + /// Warning + Warning = 1, + + /// Alert + Alert = 2, + + /// Not monitored + NotMonitored = 3, + } + + impl std::fmt::Display for UseTropoGridPoints { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UseTropoGridPoints::Nominal => f.write_str("Nominal"), + UseTropoGridPoints::Warning => f.write_str("Warning"), + UseTropoGridPoints::Alert => f.write_str("Alert"), + UseTropoGridPoints::NotMonitored => f.write_str("Not monitored"), + } + } + } + + impl TryFrom for UseTropoGridPoints { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(UseTropoGridPoints::Nominal), + 1 => Ok(UseTropoGridPoints::Warning), + 2 => Ok(UseTropoGridPoints::Alert), + 3 => Ok(UseTropoGridPoints::NotMonitored), + i => Err(i), + } + } + } + + /// Use iono grid points. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum UseIonoGridPoints { + /// Nominal + Nominal = 0, + + /// Warning + Warning = 1, + + /// Alert + Alert = 2, + + /// Not monitored + NotMonitored = 3, + } + + impl std::fmt::Display for UseIonoGridPoints { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UseIonoGridPoints::Nominal => f.write_str("Nominal"), + UseIonoGridPoints::Warning => f.write_str("Warning"), + UseIonoGridPoints::Alert => f.write_str("Alert"), + UseIonoGridPoints::NotMonitored => f.write_str("Not monitored"), + } + } + } + + impl TryFrom for UseIonoGridPoints { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(UseIonoGridPoints::Nominal), + 1 => Ok(UseIonoGridPoints::Warning), + 2 => Ok(UseIonoGridPoints::Alert), + 3 => Ok(UseIonoGridPoints::NotMonitored), + i => Err(i), + } + } + } + + /// Use iono tile satellite LoS. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum UseIonoTileSatelliteLoS { + /// Nominal + Nominal = 0, + + /// Warning + Warning = 1, + + /// Alert + Alert = 2, + + /// Not monitored + NotMonitored = 3, + } + + impl std::fmt::Display for UseIonoTileSatelliteLoS { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UseIonoTileSatelliteLoS::Nominal => f.write_str("Nominal"), + UseIonoTileSatelliteLoS::Warning => f.write_str("Warning"), + UseIonoTileSatelliteLoS::Alert => f.write_str("Alert"), + UseIonoTileSatelliteLoS::NotMonitored => f.write_str("Not monitored"), + } + } + } + + impl TryFrom for UseIonoTileSatelliteLoS { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(UseIonoTileSatelliteLoS::Nominal), + 1 => Ok(UseIonoTileSatelliteLoS::Warning), + 2 => Ok(UseIonoTileSatelliteLoS::Alert), + 3 => Ok(UseIonoTileSatelliteLoS::NotMonitored), + i => Err(i), + } + } + } + + /// Use iono grid point satellite LoS. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum UseIonoGridPointSatelliteLoS { + /// Nominal + Nominal = 0, + + /// Warning + Warning = 1, + + /// Alert + Alert = 2, + + /// Not monitored + NotMonitored = 3, + } + + impl std::fmt::Display for UseIonoGridPointSatelliteLoS { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + UseIonoGridPointSatelliteLoS::Nominal => f.write_str("Nominal"), + UseIonoGridPointSatelliteLoS::Warning => f.write_str("Warning"), + UseIonoGridPointSatelliteLoS::Alert => f.write_str("Alert"), + UseIonoGridPointSatelliteLoS::NotMonitored => f.write_str("Not monitored"), + } + } + } + + impl TryFrom for UseIonoGridPointSatelliteLoS { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(UseIonoGridPointSatelliteLoS::Nominal), + 1 => Ok(UseIonoGridPointSatelliteLoS::Warning), + 2 => Ok(UseIonoGridPointSatelliteLoS::Alert), + 3 => Ok(UseIonoGridPointSatelliteLoS::NotMonitored), + i => Err(i), + } + } + } +} + +pub mod msg_ssr_flag_high_level_dep_a { + #![allow(unused_imports)] + + use super::*; + use crate::messages::gnss::*; + use crate::messages::lib::*; + + /// Deprecated + /// + /// Deprecated. + /// + #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Debug, PartialEq, Clone)] + pub struct MsgSsrFlagHighLevelDepA { + /// The message sender_id + #[cfg_attr(feature = "serde", serde(skip_serializing, alias = "sender"))] + pub sender_id: Option, + /// GNSS reference time of the observation used to generate the flag. + #[cfg_attr(feature = "serde", serde(rename = "obs_time"))] + pub obs_time: GpsTimeSec, + /// GNSS reference time of the correction associated to the flag. + #[cfg_attr(feature = "serde", serde(rename = "corr_time"))] + pub corr_time: GpsTimeSec, + /// SSR Solution ID. + #[cfg_attr(feature = "serde", serde(rename = "ssr_sol_id"))] + pub ssr_sol_id: u8, + /// Unique identifier of the set this tile belongs to. + #[cfg_attr(feature = "serde", serde(rename = "tile_set_id"))] + pub tile_set_id: u16, + /// Unique identifier of this tile in the tile set. + #[cfg_attr(feature = "serde", serde(rename = "tile_id"))] + pub tile_id: u16, + /// Chain and type of flag. + #[cfg_attr(feature = "serde", serde(rename = "chain_id"))] + pub chain_id: u8, + /// Use GPS satellites. + #[cfg_attr(feature = "serde", serde(rename = "use_gps_sat"))] + pub use_gps_sat: u8, + /// Use GAL satellites. + #[cfg_attr(feature = "serde", serde(rename = "use_gal_sat"))] + pub use_gal_sat: u8, + /// Use BDS satellites. + #[cfg_attr(feature = "serde", serde(rename = "use_bds_sat"))] + pub use_bds_sat: u8, + /// Use QZSS satellites. + #[cfg_attr(feature = "serde", serde(rename = "use_qzss_sat"))] + pub use_qzss_sat: u8, + /// Reserved + #[cfg_attr(feature = "serde", serde(rename = "reserved"))] + pub reserved: [u8; 5], + /// Use tropo grid points. + #[cfg_attr(feature = "serde", serde(rename = "use_tropo_grid_points"))] + pub use_tropo_grid_points: u8, + /// Use iono grid points. + #[cfg_attr(feature = "serde", serde(rename = "use_iono_grid_points"))] + pub use_iono_grid_points: u8, + /// Use iono tile satellite LoS. + #[cfg_attr(feature = "serde", serde(rename = "use_iono_tile_sat_los"))] + pub use_iono_tile_sat_los: u8, + /// Use iono grid point satellite LoS. + #[cfg_attr(feature = "serde", serde(rename = "use_iono_grid_point_sat_los"))] + pub use_iono_grid_point_sat_los: u8, + } + + impl MsgSsrFlagHighLevelDepA { + /// Gets the [UseGpsSatellites][self::UseGpsSatellites] stored in the `use_gps_sat` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `UseGpsSatellites` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `UseGpsSatellites` were added. + pub fn use_gps_satellites(&self) -> Result { + get_bit_range!(self.use_gps_sat, u8, u8, 2, 0).try_into() + } + + /// Set the bitrange corresponding to the [UseGpsSatellites][UseGpsSatellites] of the `use_gps_sat` bitfield. + pub fn set_use_gps_satellites(&mut self, use_gps_satellites: UseGpsSatellites) { + set_bit_range!(&mut self.use_gps_sat, use_gps_satellites, u8, u8, 2, 0); + } + + /// Gets the [UseGalSatellites][self::UseGalSatellites] stored in the `use_gal_sat` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `UseGalSatellites` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `UseGalSatellites` were added. + pub fn use_gal_satellites(&self) -> Result { + get_bit_range!(self.use_gal_sat, u8, u8, 2, 0).try_into() + } + + /// Set the bitrange corresponding to the [UseGalSatellites][UseGalSatellites] of the `use_gal_sat` bitfield. + pub fn set_use_gal_satellites(&mut self, use_gal_satellites: UseGalSatellites) { + set_bit_range!(&mut self.use_gal_sat, use_gal_satellites, u8, u8, 2, 0); + } + + /// Gets the [UseBdsSatellites][self::UseBdsSatellites] stored in the `use_bds_sat` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `UseBdsSatellites` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `UseBdsSatellites` were added. + pub fn use_bds_satellites(&self) -> Result { + get_bit_range!(self.use_bds_sat, u8, u8, 2, 0).try_into() + } + + /// Set the bitrange corresponding to the [UseBdsSatellites][UseBdsSatellites] of the `use_bds_sat` bitfield. + pub fn set_use_bds_satellites(&mut self, use_bds_satellites: UseBdsSatellites) { + set_bit_range!(&mut self.use_bds_sat, use_bds_satellites, u8, u8, 2, 0); + } + + /// Gets the [UseQzssSatellites][self::UseQzssSatellites] stored in the `use_qzss_sat` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `UseQzssSatellites` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `UseQzssSatellites` were added. + pub fn use_qzss_satellites(&self) -> Result { + get_bit_range!(self.use_qzss_sat, u8, u8, 2, 0).try_into() + } + + /// Set the bitrange corresponding to the [UseQzssSatellites][UseQzssSatellites] of the `use_qzss_sat` bitfield. + pub fn set_use_qzss_satellites(&mut self, use_qzss_satellites: UseQzssSatellites) { + set_bit_range!(&mut self.use_qzss_sat, use_qzss_satellites, u8, u8, 2, 0); + } + + /// Gets the [UseTropoGridPoints][self::UseTropoGridPoints] stored in the `use_tropo_grid_points` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `UseTropoGridPoints` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `UseTropoGridPoints` were added. + pub fn use_tropo_grid_points(&self) -> Result { + get_bit_range!(self.use_tropo_grid_points, u8, u8, 2, 0).try_into() + } + + /// Set the bitrange corresponding to the [UseTropoGridPoints][UseTropoGridPoints] of the `use_tropo_grid_points` bitfield. + pub fn set_use_tropo_grid_points(&mut self, use_tropo_grid_points: UseTropoGridPoints) { + set_bit_range!( + &mut self.use_tropo_grid_points, + use_tropo_grid_points, + u8, + u8, + 2, + 0 + ); + } + + /// Gets the [UseIonoGridPoints][self::UseIonoGridPoints] stored in the `use_iono_grid_points` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `UseIonoGridPoints` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `UseIonoGridPoints` were added. + pub fn use_iono_grid_points(&self) -> Result { + get_bit_range!(self.use_iono_grid_points, u8, u8, 2, 0).try_into() + } + + /// Set the bitrange corresponding to the [UseIonoGridPoints][UseIonoGridPoints] of the `use_iono_grid_points` bitfield. + pub fn set_use_iono_grid_points(&mut self, use_iono_grid_points: UseIonoGridPoints) { + set_bit_range!( + &mut self.use_iono_grid_points, + use_iono_grid_points, + u8, + u8, + 2, + 0 + ); + } + + /// Gets the [UseIonoTileSatelliteLoS][self::UseIonoTileSatelliteLoS] stored in the `use_iono_tile_sat_los` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `UseIonoTileSatelliteLoS` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `UseIonoTileSatelliteLoS` were added. + pub fn use_iono_tile_satellite_lo_s(&self) -> Result { + get_bit_range!(self.use_iono_tile_sat_los, u8, u8, 2, 0).try_into() + } + + /// Set the bitrange corresponding to the [UseIonoTileSatelliteLoS][UseIonoTileSatelliteLoS] of the `use_iono_tile_sat_los` bitfield. + pub fn set_use_iono_tile_satellite_lo_s( + &mut self, + use_iono_tile_satellite_lo_s: UseIonoTileSatelliteLoS, + ) { + set_bit_range!( + &mut self.use_iono_tile_sat_los, + use_iono_tile_satellite_lo_s, + u8, + u8, + 2, + 0 + ); + } + + /// Gets the [UseIonoGridPointSatelliteLoS][self::UseIonoGridPointSatelliteLoS] stored in the `use_iono_grid_point_sat_los` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `UseIonoGridPointSatelliteLoS` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `UseIonoGridPointSatelliteLoS` were added. + pub fn use_iono_grid_point_satellite_lo_s( + &self, + ) -> Result { + get_bit_range!(self.use_iono_grid_point_sat_los, u8, u8, 2, 0).try_into() + } + + /// Set the bitrange corresponding to the [UseIonoGridPointSatelliteLoS][UseIonoGridPointSatelliteLoS] of the `use_iono_grid_point_sat_los` bitfield. + pub fn set_use_iono_grid_point_satellite_lo_s( + &mut self, + use_iono_grid_point_satellite_lo_s: UseIonoGridPointSatelliteLoS, + ) { + set_bit_range!( + &mut self.use_iono_grid_point_sat_los, + use_iono_grid_point_satellite_lo_s, + u8, + u8, + 2, + 0 + ); + } + } + + impl ConcreteMessage for MsgSsrFlagHighLevelDepA { + const MESSAGE_TYPE: u16 = 3001; + const MESSAGE_NAME: &'static str = "MSG_SSR_FLAG_HIGH_LEVEL_DEP_A"; + } + + impl SbpMessage for MsgSsrFlagHighLevelDepA { + fn message_name(&self) -> &'static str { + ::MESSAGE_NAME + } + fn message_type(&self) -> Option { + Some(::MESSAGE_TYPE) + } + fn sender_id(&self) -> Option { + self.sender_id + } + fn set_sender_id(&mut self, new_id: u16) { + self.sender_id = Some(new_id); + } + fn encoded_len(&self) -> usize { + WireFormat::len(self) + crate::HEADER_LEN + crate::CRC_LEN + } + fn is_valid(&self) -> bool { + true + } + fn into_valid_msg(self) -> Result { + Ok(self) + } + } + + impl FriendlyName for MsgSsrFlagHighLevelDepA { + fn friendly_name() -> &'static str { + "SSR FLAG HIGH LEVEL DEP A" + } + } + + impl TryFrom for MsgSsrFlagHighLevelDepA { + type Error = TryFromSbpError; + fn try_from(msg: Sbp) -> Result { + match msg { + Sbp::MsgSsrFlagHighLevelDepA(m) => Ok(m), + _ => Err(TryFromSbpError(msg)), + } + } + } + + impl WireFormat for MsgSsrFlagHighLevelDepA { + const MIN_LEN: usize = ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + <[u8; 5] as WireFormat>::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN; + fn len(&self) -> usize { + WireFormat::len(&self.obs_time) + + WireFormat::len(&self.corr_time) + + WireFormat::len(&self.ssr_sol_id) + + WireFormat::len(&self.tile_set_id) + + WireFormat::len(&self.tile_id) + + WireFormat::len(&self.chain_id) + + WireFormat::len(&self.use_gps_sat) + + WireFormat::len(&self.use_gal_sat) + + WireFormat::len(&self.use_bds_sat) + + WireFormat::len(&self.use_qzss_sat) + + WireFormat::len(&self.reserved) + + WireFormat::len(&self.use_tropo_grid_points) + + WireFormat::len(&self.use_iono_grid_points) + + WireFormat::len(&self.use_iono_tile_sat_los) + + WireFormat::len(&self.use_iono_grid_point_sat_los) + } + fn write(&self, buf: &mut B) { + WireFormat::write(&self.obs_time, buf); + WireFormat::write(&self.corr_time, buf); + WireFormat::write(&self.ssr_sol_id, buf); + WireFormat::write(&self.tile_set_id, buf); + WireFormat::write(&self.tile_id, buf); + WireFormat::write(&self.chain_id, buf); + WireFormat::write(&self.use_gps_sat, buf); + WireFormat::write(&self.use_gal_sat, buf); + WireFormat::write(&self.use_bds_sat, buf); + WireFormat::write(&self.use_qzss_sat, buf); + WireFormat::write(&self.reserved, buf); + WireFormat::write(&self.use_tropo_grid_points, buf); + WireFormat::write(&self.use_iono_grid_points, buf); + WireFormat::write(&self.use_iono_tile_sat_los, buf); + WireFormat::write(&self.use_iono_grid_point_sat_los, buf); + } + fn parse_unchecked(buf: &mut B) -> Self { + MsgSsrFlagHighLevelDepA { sender_id: None, obs_time: WireFormat::parse_unchecked(buf), corr_time: WireFormat::parse_unchecked(buf), diff --git a/rust/sbp/src/messages/mod.rs b/rust/sbp/src/messages/mod.rs index e4c86f0d22..754cca7f6d 100644 --- a/rust/sbp/src/messages/mod.rs +++ b/rust/sbp/src/messages/mod.rs @@ -81,6 +81,7 @@ use self::imu::msg_imu_comp::MsgImuComp; use self::imu::msg_imu_raw::MsgImuRaw; use self::integrity::msg_acknowledge::MsgAcknowledge; use self::integrity::msg_ssr_flag_high_level::MsgSsrFlagHighLevel; +use self::integrity::msg_ssr_flag_high_level_dep_a::MsgSsrFlagHighLevelDepA; use self::integrity::msg_ssr_flag_iono_grid_point_sat_los::MsgSsrFlagIonoGridPointSatLos; use self::integrity::msg_ssr_flag_iono_grid_points::MsgSsrFlagIonoGridPoints; use self::integrity::msg_ssr_flag_iono_tile_sat_los::MsgSsrFlagIonoTileSatLos; @@ -769,6 +770,8 @@ pub enum Sbp { MsgWheeltick(MsgWheeltick), /// Compensated IMU data MsgImuComp(MsgImuComp), + /// Deprecated + MsgSsrFlagHighLevelDepA(MsgSsrFlagHighLevelDepA), /// High level integrity flags MsgSsrFlagHighLevel(MsgSsrFlagHighLevel), /// List of satellites which are faulty, per constellation @@ -1477,6 +1480,10 @@ impl<'de> serde::Deserialize<'de> for Sbp { Some(MsgImuComp::MESSAGE_TYPE) => { serde_json::from_value::(value).map(Sbp::MsgImuComp) } + Some(MsgSsrFlagHighLevelDepA::MESSAGE_TYPE) => { + serde_json::from_value::(value) + .map(Sbp::MsgSsrFlagHighLevelDepA) + } Some(MsgSsrFlagHighLevel::MESSAGE_TYPE) => { serde_json::from_value::(value).map(Sbp::MsgSsrFlagHighLevel) } @@ -2194,6 +2201,9 @@ impl Sbp { MsgOdometry::MESSAGE_TYPE => MsgOdometry::parse(&mut payload).map(Sbp::MsgOdometry), MsgWheeltick::MESSAGE_TYPE => MsgWheeltick::parse(&mut payload).map(Sbp::MsgWheeltick), MsgImuComp::MESSAGE_TYPE => MsgImuComp::parse(&mut payload).map(Sbp::MsgImuComp), + MsgSsrFlagHighLevelDepA::MESSAGE_TYPE => { + MsgSsrFlagHighLevelDepA::parse(&mut payload).map(Sbp::MsgSsrFlagHighLevelDepA) + } MsgSsrFlagHighLevel::MESSAGE_TYPE => { MsgSsrFlagHighLevel::parse(&mut payload).map(Sbp::MsgSsrFlagHighLevel) } @@ -2551,6 +2561,7 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => msg.message_name(), Sbp::MsgWheeltick(msg) => msg.message_name(), Sbp::MsgImuComp(msg) => msg.message_name(), + Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.message_name(), Sbp::MsgSsrFlagHighLevel(msg) => msg.message_name(), Sbp::MsgSsrFlagSatellites(msg) => msg.message_name(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.message_name(), @@ -2797,6 +2808,7 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => msg.message_type(), Sbp::MsgWheeltick(msg) => msg.message_type(), Sbp::MsgImuComp(msg) => msg.message_type(), + Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.message_type(), Sbp::MsgSsrFlagHighLevel(msg) => msg.message_type(), Sbp::MsgSsrFlagSatellites(msg) => msg.message_type(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.message_type(), @@ -3043,6 +3055,7 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => msg.sender_id(), Sbp::MsgWheeltick(msg) => msg.sender_id(), Sbp::MsgImuComp(msg) => msg.sender_id(), + Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.sender_id(), Sbp::MsgSsrFlagHighLevel(msg) => msg.sender_id(), Sbp::MsgSsrFlagSatellites(msg) => msg.sender_id(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.sender_id(), @@ -3289,6 +3302,7 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => msg.set_sender_id(new_id), Sbp::MsgWheeltick(msg) => msg.set_sender_id(new_id), Sbp::MsgImuComp(msg) => msg.set_sender_id(new_id), + Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.set_sender_id(new_id), Sbp::MsgSsrFlagHighLevel(msg) => msg.set_sender_id(new_id), Sbp::MsgSsrFlagSatellites(msg) => msg.set_sender_id(new_id), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.set_sender_id(new_id), @@ -3535,6 +3549,7 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => msg.encoded_len(), Sbp::MsgWheeltick(msg) => msg.encoded_len(), Sbp::MsgImuComp(msg) => msg.encoded_len(), + Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.encoded_len(), Sbp::MsgSsrFlagHighLevel(msg) => msg.encoded_len(), Sbp::MsgSsrFlagSatellites(msg) => msg.encoded_len(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.encoded_len(), @@ -3784,6 +3799,7 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => msg.gps_time(), Sbp::MsgWheeltick(msg) => msg.gps_time(), Sbp::MsgImuComp(msg) => msg.gps_time(), + Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.gps_time(), Sbp::MsgSsrFlagHighLevel(msg) => msg.gps_time(), Sbp::MsgSsrFlagSatellites(msg) => msg.gps_time(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.gps_time(), @@ -4030,6 +4046,7 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => msg.friendly_name(), Sbp::MsgWheeltick(msg) => msg.friendly_name(), Sbp::MsgImuComp(msg) => msg.friendly_name(), + Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.friendly_name(), Sbp::MsgSsrFlagHighLevel(msg) => msg.friendly_name(), Sbp::MsgSsrFlagSatellites(msg) => msg.friendly_name(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.friendly_name(), @@ -4276,6 +4293,7 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => msg.is_valid(), Sbp::MsgWheeltick(msg) => msg.is_valid(), Sbp::MsgImuComp(msg) => msg.is_valid(), + Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.is_valid(), Sbp::MsgSsrFlagHighLevel(msg) => msg.is_valid(), Sbp::MsgSsrFlagSatellites(msg) => msg.is_valid(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.is_valid(), @@ -4583,6 +4601,9 @@ impl SbpMessage for Sbp { Sbp::MsgOdometry(msg) => Ok(Sbp::MsgOdometry(msg.into_valid_msg()?)), Sbp::MsgWheeltick(msg) => Ok(Sbp::MsgWheeltick(msg.into_valid_msg()?)), Sbp::MsgImuComp(msg) => Ok(Sbp::MsgImuComp(msg.into_valid_msg()?)), + Sbp::MsgSsrFlagHighLevelDepA(msg) => { + Ok(Sbp::MsgSsrFlagHighLevelDepA(msg.into_valid_msg()?)) + } Sbp::MsgSsrFlagHighLevel(msg) => Ok(Sbp::MsgSsrFlagHighLevel(msg.into_valid_msg()?)), Sbp::MsgSsrFlagSatellites(msg) => Ok(Sbp::MsgSsrFlagSatellites(msg.into_valid_msg()?)), Sbp::MsgSsrFlagTropoGridPoints(msg) => { @@ -4878,6 +4899,7 @@ impl WireFormat for Sbp { Sbp::MsgOdometry(msg) => WireFormat::write(msg, buf), Sbp::MsgWheeltick(msg) => WireFormat::write(msg, buf), Sbp::MsgImuComp(msg) => WireFormat::write(msg, buf), + Sbp::MsgSsrFlagHighLevelDepA(msg) => WireFormat::write(msg, buf), Sbp::MsgSsrFlagHighLevel(msg) => WireFormat::write(msg, buf), Sbp::MsgSsrFlagSatellites(msg) => WireFormat::write(msg, buf), Sbp::MsgSsrFlagTropoGridPoints(msg) => WireFormat::write(msg, buf), @@ -5124,6 +5146,7 @@ impl WireFormat for Sbp { Sbp::MsgOdometry(msg) => WireFormat::len(msg), Sbp::MsgWheeltick(msg) => WireFormat::len(msg), Sbp::MsgImuComp(msg) => WireFormat::len(msg), + Sbp::MsgSsrFlagHighLevelDepA(msg) => WireFormat::len(msg), Sbp::MsgSsrFlagHighLevel(msg) => WireFormat::len(msg), Sbp::MsgSsrFlagSatellites(msg) => WireFormat::len(msg), Sbp::MsgSsrFlagTropoGridPoints(msg) => WireFormat::len(msg), @@ -6314,6 +6337,12 @@ impl From for Sbp { } } +impl From for Sbp { + fn from(msg: MsgSsrFlagHighLevelDepA) -> Self { + Sbp::MsgSsrFlagHighLevelDepA(msg) + } +} + impl From for Sbp { fn from(msg: MsgSsrFlagHighLevel) -> Self { Sbp::MsgSsrFlagHighLevel(msg) diff --git a/rust/sbp/tests/integration/auto_check_sbp_integrity_msg_ssr_flag_high_level.rs b/rust/sbp/tests/integration/auto_check_sbp_integrity_msg_ssr_flag_high_level.rs index cbccb955c2..9b34d06432 100644 --- a/rust/sbp/tests/integration/auto_check_sbp_integrity_msg_ssr_flag_high_level.rs +++ b/rust/sbp/tests/integration/auto_check_sbp_integrity_msg_ssr_flag_high_level.rs @@ -22,8 +22,8 @@ use crate::*; fn test_auto_check_sbp_integrity_msg_ssr_flag_high_level() { { let mut payload = Cursor::new(vec![ - 85, 185, 11, 66, 0, 31, 180, 0, 0, 0, 3, 0, 104, 1, 0, 0, 6, 0, 10, 20, 0, 30, 0, 40, - 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 105, 3, + 85, 186, 11, 66, 0, 37, 180, 0, 0, 0, 3, 0, 109, 1, 0, 0, 6, 0, 104, 1, 0, 0, 6, 0, 10, + 20, 0, 30, 0, 40, 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 177, 238, ]); // Test the round trip payload parsing @@ -37,8 +37,8 @@ fn test_auto_check_sbp_integrity_msg_ssr_flag_high_level() { sbp::messages::Sbp::MsgSsrFlagHighLevel(msg) => { let msg_type = msg.message_type().unwrap(); assert_eq!( - msg_type, 3001, - "Incorrect message type, expected 3001, is {msg_type}" + msg_type, 3002, + "Incorrect message type, expected 3002, is {msg_type}" ); let sender_id = msg.sender_id().unwrap(); assert_eq!( @@ -51,14 +51,14 @@ fn test_auto_check_sbp_integrity_msg_ssr_flag_high_level() { msg.chain_id ); assert_eq!( - msg.corr_time.tow, 360, - "incorrect value for corr_time.tow, expected 360, is {}", - msg.corr_time.tow + msg.iono_corr_time.tow, 365, + "incorrect value for iono_corr_time.tow, expected 365, is {}", + msg.iono_corr_time.tow ); assert_eq!( - msg.corr_time.wn, 6, - "incorrect value for corr_time.wn, expected 6, is {}", - msg.corr_time.wn + msg.iono_corr_time.wn, 6, + "incorrect value for iono_corr_time.wn, expected 6, is {}", + msg.iono_corr_time.wn ); assert_eq!( msg.obs_time.tow, 180, @@ -95,6 +95,16 @@ fn test_auto_check_sbp_integrity_msg_ssr_flag_high_level() { "incorrect value for reserved[4], expected 0, is {}", msg.reserved[4] ); + assert_eq!( + msg.sat_corr_time.tow, 360, + "incorrect value for sat_corr_time.tow, expected 360, is {}", + msg.sat_corr_time.tow + ); + assert_eq!( + msg.sat_corr_time.wn, 6, + "incorrect value for sat_corr_time.wn, expected 6, is {}", + msg.sat_corr_time.wn + ); assert_eq!( msg.ssr_sol_id, 10, "incorrect value for ssr_sol_id, expected 10, is {}", @@ -169,7 +179,7 @@ fn test_auto_check_sbp_integrity_msg_ssr_flag_high_level() { #[cfg(feature = "json")] fn test_json2sbp_auto_check_sbp_integrity_msg_ssr_flag_high_level() { { - let json_input = r#"{"obs_time": {"tow": 180, "wn": 3}, "corr_time": {"tow": 360, "wn": 6}, "ssr_sol_id": 10, "tile_set_id": 20, "tile_id": 30, "chain_id": 40, "use_gps_sat": 1, "use_gal_sat": 2, "use_bds_sat": 3, "use_qzss_sat": 4, "reserved": [0,0,0,0,0], "use_tropo_grid_points": 5, "use_iono_grid_points": 6, "use_iono_tile_sat_los": 7, "use_iono_grid_point_sat_los": 8, "preamble": 85, "msg_type": 3001, "sender": 66, "length": 31, "payload": "tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "crc": 873}"#.as_bytes(); + let json_input = r#"{"obs_time": {"tow": 180, "wn": 3}, "sat_corr_time": {"tow": 360, "wn": 6}, "iono_corr_time": {"tow": 365, "wn": 6}, "ssr_sol_id": 10, "tile_set_id": 20, "tile_id": 30, "chain_id": 40, "use_gps_sat": 1, "use_gal_sat": 2, "use_bds_sat": 3, "use_qzss_sat": 4, "reserved": [0,0,0,0,0], "use_tropo_grid_points": 5, "use_iono_grid_points": 6, "use_iono_tile_sat_los": 7, "use_iono_grid_point_sat_los": 8, "preamble": 85, "msg_type": 3002, "sender": 66, "length": 37, "payload": "tAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "crc": 61105}"#.as_bytes(); let sbp_msg = { // JSON to SBP message from payload @@ -193,8 +203,8 @@ fn test_json2sbp_auto_check_sbp_integrity_msg_ssr_flag_high_level() { sbp::messages::Sbp::MsgSsrFlagHighLevel(msg) => { let msg_type = msg.message_type().unwrap(); assert_eq!( - msg_type, 3001, - "Incorrect message type, expected 3001, is {msg_type}" + msg_type, 3002, + "Incorrect message type, expected 3002, is {msg_type}" ); let sender_id = msg.sender_id().unwrap(); assert_eq!( @@ -207,14 +217,14 @@ fn test_json2sbp_auto_check_sbp_integrity_msg_ssr_flag_high_level() { msg.chain_id ); assert_eq!( - msg.corr_time.tow, 360, - "incorrect value for corr_time.tow, expected 360, is {}", - msg.corr_time.tow + msg.iono_corr_time.tow, 365, + "incorrect value for iono_corr_time.tow, expected 365, is {}", + msg.iono_corr_time.tow ); assert_eq!( - msg.corr_time.wn, 6, - "incorrect value for corr_time.wn, expected 6, is {}", - msg.corr_time.wn + msg.iono_corr_time.wn, 6, + "incorrect value for iono_corr_time.wn, expected 6, is {}", + msg.iono_corr_time.wn ); assert_eq!( msg.obs_time.tow, 180, @@ -251,6 +261,16 @@ fn test_json2sbp_auto_check_sbp_integrity_msg_ssr_flag_high_level() { "incorrect value for reserved[4], expected 0, is {}", msg.reserved[4] ); + assert_eq!( + msg.sat_corr_time.tow, 360, + "incorrect value for sat_corr_time.tow, expected 360, is {}", + msg.sat_corr_time.tow + ); + assert_eq!( + msg.sat_corr_time.wn, 6, + "incorrect value for sat_corr_time.wn, expected 6, is {}", + msg.sat_corr_time.wn + ); assert_eq!( msg.ssr_sol_id, 10, "incorrect value for ssr_sol_id, expected 10, is {}", @@ -325,8 +345,8 @@ fn test_json2sbp_auto_check_sbp_integrity_msg_ssr_flag_high_level() { fn test_sbp2json_auto_check_sbp_integrity_msg_ssr_flag_high_level() { { let mut payload = Cursor::new(vec![ - 85, 185, 11, 66, 0, 31, 180, 0, 0, 0, 3, 0, 104, 1, 0, 0, 6, 0, 10, 20, 0, 30, 0, 40, - 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 105, 3, + 85, 186, 11, 66, 0, 37, 180, 0, 0, 0, 3, 0, 109, 1, 0, 0, 6, 0, 104, 1, 0, 0, 6, 0, 10, + 20, 0, 30, 0, 40, 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 177, 238, ]); // Construct sbp message @@ -357,8 +377,8 @@ fn test_sbp2json_auto_check_sbp_integrity_msg_ssr_flag_high_level() { sbp::messages::Sbp::MsgSsrFlagHighLevel(msg) => { let msg_type = msg.message_type().unwrap(); assert_eq!( - msg_type, 3001, - "Incorrect message type, expected 3001, is {msg_type}" + msg_type, 3002, + "Incorrect message type, expected 3002, is {msg_type}" ); let sender_id = msg.sender_id().unwrap(); assert_eq!( @@ -371,14 +391,14 @@ fn test_sbp2json_auto_check_sbp_integrity_msg_ssr_flag_high_level() { msg.chain_id ); assert_eq!( - msg.corr_time.tow, 360, - "incorrect value for corr_time.tow, expected 360, is {}", - msg.corr_time.tow + msg.iono_corr_time.tow, 365, + "incorrect value for iono_corr_time.tow, expected 365, is {}", + msg.iono_corr_time.tow ); assert_eq!( - msg.corr_time.wn, 6, - "incorrect value for corr_time.wn, expected 6, is {}", - msg.corr_time.wn + msg.iono_corr_time.wn, 6, + "incorrect value for iono_corr_time.wn, expected 6, is {}", + msg.iono_corr_time.wn ); assert_eq!( msg.obs_time.tow, 180, @@ -415,6 +435,16 @@ fn test_sbp2json_auto_check_sbp_integrity_msg_ssr_flag_high_level() { "incorrect value for reserved[4], expected 0, is {}", msg.reserved[4] ); + assert_eq!( + msg.sat_corr_time.tow, 360, + "incorrect value for sat_corr_time.tow, expected 360, is {}", + msg.sat_corr_time.tow + ); + assert_eq!( + msg.sat_corr_time.wn, 6, + "incorrect value for sat_corr_time.wn, expected 6, is {}", + msg.sat_corr_time.wn + ); assert_eq!( msg.ssr_sol_id, 10, "incorrect value for ssr_sol_id, expected 10, is {}", diff --git a/rust/sbp/tests/integration/auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a.rs b/rust/sbp/tests/integration/auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a.rs new file mode 100644 index 0000000000..4d47bb0577 --- /dev/null +++ b/rust/sbp/tests/integration/auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a.rs @@ -0,0 +1,481 @@ +// +// Copyright (C) 2019-2021 Swift Navigation Inc. +// Contact: https://support.swiftnav.com +// +// This source is subject to the license found in the file 'LICENSE' which must +// be distributed together with this source. All other rights reserved. +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + +// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml by generate.py. Do not modify by hand! + +use crate::*; + +/// Tests [`sbp::iter_messages`], from payload into SBP messages +/// +/// Asserts: +/// - SBP fields equates to that of the field +/// - Payload is identical +#[test] +fn test_auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a() { + { + let mut payload = Cursor::new(vec![ + 85, 185, 11, 66, 0, 31, 180, 0, 0, 0, 3, 0, 104, 1, 0, 0, 6, 0, 10, 20, 0, 30, 0, 40, + 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 105, 3, + ]); + + // Test the round trip payload parsing + let sbp_msg = { + let mut msgs = iter_messages(&mut payload); + msgs.next() + .expect("no message found") + .expect("failed to parse message") + }; + match &sbp_msg { + sbp::messages::Sbp::MsgSsrFlagHighLevelDepA(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 3001, + "Incorrect message type, expected 3001, is {msg_type}" + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x0042, + "incorrect sender id, expected 0x0042, is {sender_id}" + ); + assert_eq!( + msg.chain_id, 40, + "incorrect value for chain_id, expected 40, is {}", + msg.chain_id + ); + assert_eq!( + msg.corr_time.tow, 360, + "incorrect value for corr_time.tow, expected 360, is {}", + msg.corr_time.tow + ); + assert_eq!( + msg.corr_time.wn, 6, + "incorrect value for corr_time.wn, expected 6, is {}", + msg.corr_time.wn + ); + assert_eq!( + msg.obs_time.tow, 180, + "incorrect value for obs_time.tow, expected 180, is {}", + msg.obs_time.tow + ); + assert_eq!( + msg.obs_time.wn, 3, + "incorrect value for obs_time.wn, expected 3, is {}", + msg.obs_time.wn + ); + assert_eq!( + msg.reserved[0], 0, + "incorrect value for reserved[0], expected 0, is {}", + msg.reserved[0] + ); + assert_eq!( + msg.reserved[1], 0, + "incorrect value for reserved[1], expected 0, is {}", + msg.reserved[1] + ); + assert_eq!( + msg.reserved[2], 0, + "incorrect value for reserved[2], expected 0, is {}", + msg.reserved[2] + ); + assert_eq!( + msg.reserved[3], 0, + "incorrect value for reserved[3], expected 0, is {}", + msg.reserved[3] + ); + assert_eq!( + msg.reserved[4], 0, + "incorrect value for reserved[4], expected 0, is {}", + msg.reserved[4] + ); + assert_eq!( + msg.ssr_sol_id, 10, + "incorrect value for ssr_sol_id, expected 10, is {}", + msg.ssr_sol_id + ); + assert_eq!( + msg.tile_id, 30, + "incorrect value for tile_id, expected 30, is {}", + msg.tile_id + ); + assert_eq!( + msg.tile_set_id, 20, + "incorrect value for tile_set_id, expected 20, is {}", + msg.tile_set_id + ); + assert_eq!( + msg.use_bds_sat, 3, + "incorrect value for use_bds_sat, expected 3, is {}", + msg.use_bds_sat + ); + assert_eq!( + msg.use_gal_sat, 2, + "incorrect value for use_gal_sat, expected 2, is {}", + msg.use_gal_sat + ); + assert_eq!( + msg.use_gps_sat, 1, + "incorrect value for use_gps_sat, expected 1, is {}", + msg.use_gps_sat + ); + assert_eq!( + msg.use_iono_grid_point_sat_los, 8, + "incorrect value for use_iono_grid_point_sat_los, expected 8, is {}", + msg.use_iono_grid_point_sat_los + ); + assert_eq!( + msg.use_iono_grid_points, 6, + "incorrect value for use_iono_grid_points, expected 6, is {}", + msg.use_iono_grid_points + ); + assert_eq!( + msg.use_iono_tile_sat_los, 7, + "incorrect value for use_iono_tile_sat_los, expected 7, is {}", + msg.use_iono_tile_sat_los + ); + assert_eq!( + msg.use_qzss_sat, 4, + "incorrect value for use_qzss_sat, expected 4, is {}", + msg.use_qzss_sat + ); + assert_eq!( + msg.use_tropo_grid_points, 5, + "incorrect value for use_tropo_grid_points, expected 5, is {}", + msg.use_tropo_grid_points + ); + } + _ => panic!("Invalid message type! Expected a MsgSsrFlagHighLevelDepA"), + }; + let frame = sbp::to_vec(&sbp_msg).unwrap(); + assert_eq!(frame, payload.into_inner()); + } +} + +/// Tests [`sbp::json::iter_messages`] for JSON payload -> SBP message +/// and [`sbp::json::iter_messages_from_fields`] for JSON fields -> SBP message. +/// +/// Asserts: +/// - SBP message constructed via payload is identical to from fields +/// - SBP fields equates to that of the field +/// - Payload is identical +#[test] +#[cfg(feature = "json")] +fn test_json2sbp_auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a() { + { + let json_input = r#"{"obs_time": {"tow": 180, "wn": 3}, "corr_time": {"tow": 360, "wn": 6}, "ssr_sol_id": 10, "tile_set_id": 20, "tile_id": 30, "chain_id": 40, "use_gps_sat": 1, "use_gal_sat": 2, "use_bds_sat": 3, "use_qzss_sat": 4, "reserved": [0,0,0,0,0], "use_tropo_grid_points": 5, "use_iono_grid_points": 6, "use_iono_tile_sat_los": 7, "use_iono_grid_point_sat_los": 8, "preamble": 85, "msg_type": 3001, "sender": 66, "length": 31, "payload": "tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "crc": 873}"#.as_bytes(); + + let sbp_msg = { + // JSON to SBP message from payload + let mut iter = json2sbp_iter_msg(json_input); + let from_payload = iter + .next() + .expect("no message found") + .expect("failed to parse message"); + + // JSON to SBP message from fields + let mut iter = iter_messages_from_fields(json_input); + let from_fields = iter + .next() + .expect("no message found") + .expect("failed to parse message"); + + assert_eq!(from_fields, from_payload); + from_fields + }; + match &sbp_msg { + sbp::messages::Sbp::MsgSsrFlagHighLevelDepA(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 3001, + "Incorrect message type, expected 3001, is {msg_type}" + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x0042, + "incorrect sender id, expected 0x0042, is {sender_id}" + ); + assert_eq!( + msg.chain_id, 40, + "incorrect value for chain_id, expected 40, is {}", + msg.chain_id + ); + assert_eq!( + msg.corr_time.tow, 360, + "incorrect value for corr_time.tow, expected 360, is {}", + msg.corr_time.tow + ); + assert_eq!( + msg.corr_time.wn, 6, + "incorrect value for corr_time.wn, expected 6, is {}", + msg.corr_time.wn + ); + assert_eq!( + msg.obs_time.tow, 180, + "incorrect value for obs_time.tow, expected 180, is {}", + msg.obs_time.tow + ); + assert_eq!( + msg.obs_time.wn, 3, + "incorrect value for obs_time.wn, expected 3, is {}", + msg.obs_time.wn + ); + assert_eq!( + msg.reserved[0], 0, + "incorrect value for reserved[0], expected 0, is {}", + msg.reserved[0] + ); + assert_eq!( + msg.reserved[1], 0, + "incorrect value for reserved[1], expected 0, is {}", + msg.reserved[1] + ); + assert_eq!( + msg.reserved[2], 0, + "incorrect value for reserved[2], expected 0, is {}", + msg.reserved[2] + ); + assert_eq!( + msg.reserved[3], 0, + "incorrect value for reserved[3], expected 0, is {}", + msg.reserved[3] + ); + assert_eq!( + msg.reserved[4], 0, + "incorrect value for reserved[4], expected 0, is {}", + msg.reserved[4] + ); + assert_eq!( + msg.ssr_sol_id, 10, + "incorrect value for ssr_sol_id, expected 10, is {}", + msg.ssr_sol_id + ); + assert_eq!( + msg.tile_id, 30, + "incorrect value for tile_id, expected 30, is {}", + msg.tile_id + ); + assert_eq!( + msg.tile_set_id, 20, + "incorrect value for tile_set_id, expected 20, is {}", + msg.tile_set_id + ); + assert_eq!( + msg.use_bds_sat, 3, + "incorrect value for use_bds_sat, expected 3, is {}", + msg.use_bds_sat + ); + assert_eq!( + msg.use_gal_sat, 2, + "incorrect value for use_gal_sat, expected 2, is {}", + msg.use_gal_sat + ); + assert_eq!( + msg.use_gps_sat, 1, + "incorrect value for use_gps_sat, expected 1, is {}", + msg.use_gps_sat + ); + assert_eq!( + msg.use_iono_grid_point_sat_los, 8, + "incorrect value for use_iono_grid_point_sat_los, expected 8, is {}", + msg.use_iono_grid_point_sat_los + ); + assert_eq!( + msg.use_iono_grid_points, 6, + "incorrect value for use_iono_grid_points, expected 6, is {}", + msg.use_iono_grid_points + ); + assert_eq!( + msg.use_iono_tile_sat_los, 7, + "incorrect value for use_iono_tile_sat_los, expected 7, is {}", + msg.use_iono_tile_sat_los + ); + assert_eq!( + msg.use_qzss_sat, 4, + "incorrect value for use_qzss_sat, expected 4, is {}", + msg.use_qzss_sat + ); + assert_eq!( + msg.use_tropo_grid_points, 5, + "incorrect value for use_tropo_grid_points, expected 5, is {}", + msg.use_tropo_grid_points + ); + } + _ => panic!("Invalid message type! Expected a MsgSsrFlagHighLevelDepA"), + }; + } +} + +/// Tests [`sbp::json::JsonEncoder`] for roundtrip SBP message -> JSON +/// +/// Assumes: +/// - [`self::test_auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a`] passes +/// +/// Asserts: +/// - SBP fields equates to that of the field +/// - Payload is identical +#[test] +#[cfg(feature = "json")] +fn test_sbp2json_auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a() { + { + let mut payload = Cursor::new(vec![ + 85, 185, 11, 66, 0, 31, 180, 0, 0, 0, 3, 0, 104, 1, 0, 0, 6, 0, 10, 20, 0, 30, 0, 40, + 1, 2, 3, 4, 0, 0, 0, 0, 0, 5, 6, 7, 8, 105, 3, + ]); + + // Construct sbp message + let sbp_msg = { + let mut msgs = iter_messages(&mut payload); + msgs.next() + .expect("no message found") + .expect("failed to parse message") + }; + + let mut json_buffer = vec![]; + // Populate json buffer, CompactFormatter + sbp::json::JsonEncoder::new(&mut json_buffer, sbp::json::CompactFormatter {}) + .send(&sbp_msg) + .unwrap(); + + // Reconstruct Sbp message from json fields, roundtrip + let sbp_msg = sbp::messages::Sbp::MsgSsrFlagHighLevelDepA( + serde_json::from_str( + std::str::from_utf8(json_buffer.as_slice()) + .unwrap() + .to_string() + .as_str(), + ) + .unwrap(), + ); + match &sbp_msg { + sbp::messages::Sbp::MsgSsrFlagHighLevelDepA(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 3001, + "Incorrect message type, expected 3001, is {msg_type}" + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x0042, + "incorrect sender id, expected 0x0042, is {sender_id}" + ); + assert_eq!( + msg.chain_id, 40, + "incorrect value for chain_id, expected 40, is {}", + msg.chain_id + ); + assert_eq!( + msg.corr_time.tow, 360, + "incorrect value for corr_time.tow, expected 360, is {}", + msg.corr_time.tow + ); + assert_eq!( + msg.corr_time.wn, 6, + "incorrect value for corr_time.wn, expected 6, is {}", + msg.corr_time.wn + ); + assert_eq!( + msg.obs_time.tow, 180, + "incorrect value for obs_time.tow, expected 180, is {}", + msg.obs_time.tow + ); + assert_eq!( + msg.obs_time.wn, 3, + "incorrect value for obs_time.wn, expected 3, is {}", + msg.obs_time.wn + ); + assert_eq!( + msg.reserved[0], 0, + "incorrect value for reserved[0], expected 0, is {}", + msg.reserved[0] + ); + assert_eq!( + msg.reserved[1], 0, + "incorrect value for reserved[1], expected 0, is {}", + msg.reserved[1] + ); + assert_eq!( + msg.reserved[2], 0, + "incorrect value for reserved[2], expected 0, is {}", + msg.reserved[2] + ); + assert_eq!( + msg.reserved[3], 0, + "incorrect value for reserved[3], expected 0, is {}", + msg.reserved[3] + ); + assert_eq!( + msg.reserved[4], 0, + "incorrect value for reserved[4], expected 0, is {}", + msg.reserved[4] + ); + assert_eq!( + msg.ssr_sol_id, 10, + "incorrect value for ssr_sol_id, expected 10, is {}", + msg.ssr_sol_id + ); + assert_eq!( + msg.tile_id, 30, + "incorrect value for tile_id, expected 30, is {}", + msg.tile_id + ); + assert_eq!( + msg.tile_set_id, 20, + "incorrect value for tile_set_id, expected 20, is {}", + msg.tile_set_id + ); + assert_eq!( + msg.use_bds_sat, 3, + "incorrect value for use_bds_sat, expected 3, is {}", + msg.use_bds_sat + ); + assert_eq!( + msg.use_gal_sat, 2, + "incorrect value for use_gal_sat, expected 2, is {}", + msg.use_gal_sat + ); + assert_eq!( + msg.use_gps_sat, 1, + "incorrect value for use_gps_sat, expected 1, is {}", + msg.use_gps_sat + ); + assert_eq!( + msg.use_iono_grid_point_sat_los, 8, + "incorrect value for use_iono_grid_point_sat_los, expected 8, is {}", + msg.use_iono_grid_point_sat_los + ); + assert_eq!( + msg.use_iono_grid_points, 6, + "incorrect value for use_iono_grid_points, expected 6, is {}", + msg.use_iono_grid_points + ); + assert_eq!( + msg.use_iono_tile_sat_los, 7, + "incorrect value for use_iono_tile_sat_los, expected 7, is {}", + msg.use_iono_tile_sat_los + ); + assert_eq!( + msg.use_qzss_sat, 4, + "incorrect value for use_qzss_sat, expected 4, is {}", + msg.use_qzss_sat + ); + assert_eq!( + msg.use_tropo_grid_points, 5, + "incorrect value for use_tropo_grid_points, expected 5, is {}", + msg.use_tropo_grid_points + ); + } + _ => panic!("Invalid message type! Expected a MsgSsrFlagHighLevelDepA"), + }; + + // Check payload is still identical + let frame = sbp::to_vec(&sbp_msg).unwrap(); + assert_eq!(frame, payload.into_inner()); + } +} diff --git a/rust/sbp/tests/integration/main.rs b/rust/sbp/tests/integration/main.rs index db3f62f8a8..9d03f17798 100644 --- a/rust/sbp/tests/integration/main.rs +++ b/rust/sbp/tests/integration/main.rs @@ -48,6 +48,7 @@ mod auto_check_sbp_imu_msg_imu_comp; mod auto_check_sbp_imu_msg_imu_raw; mod auto_check_sbp_integrity_msg_acknowledge; mod auto_check_sbp_integrity_msg_ssr_flag_high_level; +mod auto_check_sbp_integrity_msg_ssr_flag_high_level_dep_a; mod auto_check_sbp_integrity_msg_ssr_flag_iono_grid_point_sat_los; mod auto_check_sbp_integrity_msg_ssr_flag_iono_grid_points; mod auto_check_sbp_integrity_msg_ssr_flag_iono_tile_sat_los; diff --git a/sbpjson/elm/SbpJson.elm b/sbpjson/elm/SbpJson.elm index 17b4fc6346..9ebcdccd1c 100644 --- a/sbpjson/elm/SbpJson.elm +++ b/sbpjson/elm/SbpJson.elm @@ -2855,8 +2855,9 @@ group. -} type alias MsgSsrFlagHighLevel = { chainID : Int - , corrTime : GpsTimeSEC + , ionoCorrTime : GpsTimeSEC , obsTime : GpsTimeSEC + , satCorrTime : GpsTimeSEC , ssrSolID : Int , tileID : Int , tileSetID : Int @@ -7279,8 +7280,9 @@ msgSsrFlagHighLevel : Jdec.Decoder MsgSsrFlagHighLevel msgSsrFlagHighLevel = Jpipe.decode MsgSsrFlagHighLevel |> Jpipe.required "chain_id" Jdec.int - |> Jpipe.required "corr_time" gpsTimeSEC + |> Jpipe.required "iono_corr_time" gpsTimeSEC |> Jpipe.required "obs_time" gpsTimeSEC + |> Jpipe.required "sat_corr_time" gpsTimeSEC |> Jpipe.required "ssr_sol_id" Jdec.int |> Jpipe.required "tile_id" Jdec.int |> Jpipe.required "tile_set_id" Jdec.int @@ -7297,8 +7299,9 @@ encodeMsgSsrFlagHighLevel : MsgSsrFlagHighLevel -> Jenc.Value encodeMsgSsrFlagHighLevel x = Jenc.object [ ("chain_id", Jenc.int x.chainID) - , ("corr_time", encodeGpsTimeSEC x.corrTime) + , ("iono_corr_time", encodeGpsTimeSEC x.ionoCorrTime) , ("obs_time", encodeGpsTimeSEC x.obsTime) + , ("sat_corr_time", encodeGpsTimeSEC x.satCorrTime) , ("ssr_sol_id", Jenc.int x.ssrSolID) , ("tile_id", Jenc.int x.tileID) , ("tile_set_id", Jenc.int x.tileSetID) diff --git a/sbpjson/javascript/SbpJson.js b/sbpjson/javascript/SbpJson.js index 13702ffaca..f690e07216 100644 --- a/sbpjson/javascript/SbpJson.js +++ b/sbpjson/javascript/SbpJson.js @@ -3255,8 +3255,9 @@ const typeMap = { ], "any"), "MsgSsrFlagHighLevel": o([ { json: "chain_id", js: "chain_id", typ: 0 }, - { json: "corr_time", js: "corr_time", typ: r("GpsTimeSEC") }, + { json: "iono_corr_time", js: "iono_corr_time", typ: r("GpsTimeSEC") }, { json: "obs_time", js: "obs_time", typ: r("GpsTimeSEC") }, + { json: "sat_corr_time", js: "sat_corr_time", typ: r("GpsTimeSEC") }, { json: "ssr_sol_id", js: "ssr_sol_id", typ: 0 }, { json: "tile_id", js: "tile_id", typ: 0 }, { json: "tile_set_id", js: "tile_set_id", typ: 0 }, diff --git a/sbpjson/typescript/SbpJson.ts b/sbpjson/typescript/SbpJson.ts index 21d23c70d5..4c4f4dd809 100644 --- a/sbpjson/typescript/SbpJson.ts +++ b/sbpjson/typescript/SbpJson.ts @@ -2446,8 +2446,9 @@ export interface CodePhaseBiasesSatSig { */ export interface MsgSsrFlagHighLevel { chain_id: number; - corr_time: GpsTimeSEC; + iono_corr_time: GpsTimeSEC; obs_time: GpsTimeSEC; + sat_corr_time: GpsTimeSEC; ssr_sol_id: number; tile_id: number; tile_set_id: number; @@ -6365,8 +6366,9 @@ const typeMap: any = { ], "any"), "MsgSsrFlagHighLevel": o([ { json: "chain_id", js: "chain_id", typ: 0 }, - { json: "corr_time", js: "corr_time", typ: r("GpsTimeSEC") }, + { json: "iono_corr_time", js: "iono_corr_time", typ: r("GpsTimeSEC") }, { json: "obs_time", js: "obs_time", typ: r("GpsTimeSEC") }, + { json: "sat_corr_time", js: "sat_corr_time", typ: r("GpsTimeSEC") }, { json: "ssr_sol_id", js: "ssr_sol_id", typ: 0 }, { json: "tile_id", js: "tile_id", typ: 0 }, { json: "tile_set_id", js: "tile_set_id", typ: 0 }, diff --git a/spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevel.yaml b/spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevel.yaml index 699affdfcf..16710efd96 100644 --- a/spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevel.yaml +++ b/spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevel.yaml @@ -1,46 +1,49 @@ description: Unit tests for swiftnav.sbp.integrity MsgSsrFlagHighLevel -generated_on: 2022-04-21 # manually generated +generated_on: 2025-07-09 # manually generated package: sbp.integrity tests: - -- msg: - fields: - obs_time: - tow: 180 - wn: 3 - corr_time: - tow: 360 - wn: 6 - ssr_sol_id: 10 - tile_set_id: 20 - tile_id: 30 - chain_id: 40 - use_gps_sat: 1 - use_gal_sat: 2 - use_bds_sat: 3 - use_qzss_sat: 4 - reserved: - - 0 - - 0 - - 0 - - 0 - - 0 - use_tropo_grid_points: 5 - use_iono_grid_points: 6 - use_iono_tile_sat_los: 7 - use_iono_grid_point_sat_los: 8 - module: sbp.integrity - name: MsgSsrFlagHighLevel - msg_type: '3001' - raw_json: '{"obs_time": {"tow": 180, "wn": 3}, "corr_time": {"tow": 360, "wn": 6}, "ssr_sol_id": 10, "tile_set_id": 20, - "tile_id": 30, "chain_id": 40, "use_gps_sat": 1, "use_gal_sat": 2, "use_bds_sat": 3, "use_qzss_sat": 4, "reserved": [0,0,0,0,0], - "use_tropo_grid_points": 5, "use_iono_grid_points": 6, "use_iono_tile_sat_los": 7, "use_iono_grid_point_sat_los": 8, - "preamble": 85, "msg_type": 3001, "sender": 66, "length": 31, "payload": "tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "crc": 873}' - raw_packet: VbkLQgAftAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCGkD - sbp: - preamble: '0x55' - msg_type: '0x0BB9' - sender: '0x0042' - length: 31 - payload: tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA== - crc: '0x0369' + - msg: + fields: + obs_time: + tow: 180 + wn: 3 + sat_corr_time: + tow: 360 + wn: 6 + iono_corr_time: + tow: 365 + wn: 6 + ssr_sol_id: 10 + tile_set_id: 20 + tile_id: 30 + chain_id: 40 + use_gps_sat: 1 + use_gal_sat: 2 + use_bds_sat: 3 + use_qzss_sat: 4 + reserved: + - 0 + - 0 + - 0 + - 0 + - 0 + use_tropo_grid_points: 5 + use_iono_grid_points: 6 + use_iono_tile_sat_los: 7 + use_iono_grid_point_sat_los: 8 + module: sbp.integrity + name: MsgSsrFlagHighLevel + msg_type: "3002" + raw_json: + '{"obs_time": {"tow": 180, "wn": 3}, "sat_corr_time": {"tow": 360, "wn": 6}, "iono_corr_time": {"tow": 365, "wn": 6}, "ssr_sol_id": 10, "tile_set_id": 20, + "tile_id": 30, "chain_id": 40, "use_gps_sat": 1, "use_gal_sat": 2, "use_bds_sat": 3, "use_qzss_sat": 4, "reserved": [0,0,0,0,0], + "use_tropo_grid_points": 5, "use_iono_grid_points": 6, "use_iono_tile_sat_los": 7, "use_iono_grid_point_sat_los": 8, + "preamble": 85, "msg_type": 3002, "sender": 66, "length": 37, "payload": "tAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "crc": 61105}' + raw_packet: VboLQgAltAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCLHu + sbp: + preamble: "0x55" + msg_type: "0x0BBA" + sender: "0x0042" + length: 37 + payload: tAAAAAMAbQEAAAYAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA== + crc: "0xEEB1" diff --git a/spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml b/spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml new file mode 100644 index 0000000000..91e5105370 --- /dev/null +++ b/spec/tests/yaml/swiftnav/sbp/integrity/test_MsgSsrFlagHighLevelDepA.yaml @@ -0,0 +1,46 @@ +description: Unit tests for swiftnav.sbp.integrity MsgSsrFlagHighLevelDepA +generated_on: 2025-07-09 # manually generated +package: sbp.integrity +tests: + - msg: + fields: + obs_time: + tow: 180 + wn: 3 + corr_time: + tow: 360 + wn: 6 + ssr_sol_id: 10 + tile_set_id: 20 + tile_id: 30 + chain_id: 40 + use_gps_sat: 1 + use_gal_sat: 2 + use_bds_sat: 3 + use_qzss_sat: 4 + reserved: + - 0 + - 0 + - 0 + - 0 + - 0 + use_tropo_grid_points: 5 + use_iono_grid_points: 6 + use_iono_tile_sat_los: 7 + use_iono_grid_point_sat_los: 8 + module: sbp.integrity + name: MsgSsrFlagHighLevelDepA + msg_type: "3001" + raw_json: + '{"obs_time": {"tow": 180, "wn": 3}, "corr_time": {"tow": 360, "wn": 6}, "ssr_sol_id": 10, "tile_set_id": 20, + "tile_id": 30, "chain_id": 40, "use_gps_sat": 1, "use_gal_sat": 2, "use_bds_sat": 3, "use_qzss_sat": 4, "reserved": [0,0,0,0,0], + "use_tropo_grid_points": 5, "use_iono_grid_points": 6, "use_iono_tile_sat_los": 7, "use_iono_grid_point_sat_los": 8, + "preamble": 85, "msg_type": 3001, "sender": 66, "length": 31, "payload": "tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA==", "crc": 873}' + raw_packet: VbkLQgAftAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCGkD + sbp: + preamble: "0x55" + msg_type: "0x0BB9" + sender: "0x0042" + length: 31 + payload: tAAAAAMAaAEAAAYAChQAHgAoAQIDBAAAAAAABQYHCA== + crc: "0x0369" diff --git a/spec/yaml/swiftnav/sbp/integrity.yaml b/spec/yaml/swiftnav/sbp/integrity.yaml index 3513885bd5..6777bcb8bd 100644 --- a/spec/yaml/swiftnav/sbp/integrity.yaml +++ b/spec/yaml/swiftnav/sbp/integrity.yaml @@ -41,8 +41,128 @@ definitions: type: u8 desc: Chain and type of flag. - - MSG_SSR_FLAG_HIGH_LEVEL: + - MSG_SSR_FLAG_HIGH_LEVEL_DEP_A: id: 0x0BB9 + short_desc: Deprecated + desc: Deprecated. + public: false + replaced_by: + - MSG_SSR_FLAG_HIGH_LEVEL + fields: + - obs_time: + type: GPSTimeSec + desc: GNSS reference time of the observation used to generate the flag. + - corr_time: + type: GPSTimeSec + desc: GNSS reference time of the correction associated to the flag. + - ssr_sol_id: + type: u8 + desc: SSR Solution ID. + - tile_set_id: + type: u16 + desc: Unique identifier of the set this tile belongs to. + - tile_id: + type: u16 + desc: Unique identifier of this tile in the tile set. + - chain_id: + type: u8 + desc: Chain and type of flag. + - use_gps_sat: + type: u8 + desc: Use GPS satellites. + fields: + - 0-2: + desc: Use GPS satellites. + values: + - 0: Nominal + - 1: Warning + - 2: Alert + - 3: Not monitored + - use_gal_sat: + type: u8 + desc: Use GAL satellites. + fields: + - 0-2: + desc: Use GAL satellites. + values: + - 0: Nominal + - 1: Warning + - 2: Alert + - 3: Not monitored + - use_bds_sat: + type: u8 + desc: Use BDS satellites. + fields: + - 0-2: + desc: Use BDS satellites. + values: + - 0: Nominal + - 1: Warning + - 2: Alert + - 3: Not monitored + - use_qzss_sat: + type: u8 + desc: Use QZSS satellites. + fields: + - 0-2: + desc: Use QZSS satellites. + values: + - 0: Nominal + - 1: Warning + - 2: Alert + - 3: Not monitored + - reserved: + type: array + size: 5 + fill: u8 + desc: Reserved + - use_tropo_grid_points: + type: u8 + desc: Use tropo grid points. + fields: + - 0-2: + desc: Use tropo grid points. + values: + - 0: Nominal + - 1: Warning + - 2: Alert + - 3: Not monitored + - use_iono_grid_points: + type: u8 + desc: Use iono grid points. + fields: + - 0-2: + desc: Use iono grid points. + values: + - 0: Nominal + - 1: Warning + - 2: Alert + - 3: Not monitored + - use_iono_tile_sat_los: + type: u8 + desc: Use iono tile satellite LoS. + fields: + - 0-2: + desc: Use iono tile satellite LoS. + values: + - 0: Nominal + - 1: Warning + - 2: Alert + - 3: Not monitored + - use_iono_grid_point_sat_los: + type: u8 + desc: Use iono grid point satellite LoS. + fields: + - 0-2: + desc: Use iono grid point satellite LoS. + values: + - 0: Nominal + - 1: Warning + - 2: Alert + - 3: Not monitored + + - MSG_SSR_FLAG_HIGH_LEVEL: + id: 0x0BBA short_desc: High level integrity flags desc: > Integrity monitoring flags for multiple aggregated elements. @@ -82,9 +202,12 @@ definitions: - obs_time: type: GPSTimeSec desc: GNSS reference time of the observation used to generate the flag. - - corr_time: + - iono_corr_time: type: GPSTimeSec - desc: GNSS reference time of the correction associated to the flag. + desc: GNSS reference time of the ionospheric correction associated to the flag. + - sat_corr_time: + type: GPSTimeSec + desc: GNSS reference time of the satellite correction associated to the flag. - ssr_sol_id: type: u8 desc: SSR Solution ID. diff --git a/test_data/benchmark_main.py b/test_data/benchmark_main.py index ad95558b10..56b3948030 100755 --- a/test_data/benchmark_main.py +++ b/test_data/benchmark_main.py @@ -1,20 +1,20 @@ #!/usr/bin/env python3 -import os -import sys import gzip import json +import os import subprocess +import sys # If the ratio is off from expected by more than this percentage SLUSH_PERCENTAGE = 0.25 # How much faster Rust should be than other implementations RATIOS_SBP2JSON = { - "haskell" : 3.2, - "python" : 23.38, - "kaitai_python" : 5.00, - "kaitai_perl" : 20, + "haskell": 3.2, + "python": 23.38, + "kaitai_python": 5.00, + "kaitai_perl": 20, } RATIOS_JSON2SBP = { @@ -29,20 +29,25 @@ def maybe_via_docker(pwd, image, cmd, env=None): - if not os.environ.get('VIA_DOCKER'): + if not os.environ.get("VIA_DOCKER"): if env is not None: - for var,val in env.items(): + for var, val in env.items(): os.environ[var] = val return cmd docker_args = [ - 'docker', 'run', '-i', - '--cpus=2', '--memory=1g', - '--rm', '-v', f'{pwd}:/work', + "docker", + "run", + "-i", + "--cpus=2", + "--memory=1g", + "--rm", + "-v", + f"{pwd}:/work", ] if env is not None: - for var,val in env.items(): - docker_args += ['--env', f'{var}={val}'] + for var, val in env.items(): + docker_args += ["--env", f"{var}={val}"] docker_args += [image] + cmd return docker_args @@ -65,23 +70,34 @@ def validate_thresholds(binary, thresholds, means, target): ratio = means[lang] / target if not compare_ratio(threshold, ratio): sys.stderr.write( - f"\nERROR: {binary} speed threshold failed for {lang}, expected: {threshold}, actual: {ratio}\n\n") + f"\nERROR: {binary} speed threshold failed for {lang}, expected: {threshold}, actual: {ratio}\n\n" + ) sys.stderr.flush() FAILED[0] = True def main(): - if not os.environ.get("BENCHMARK_SKIP_SBP2JSON"): subprocess.run( - ['hyperfine', '--warmup', '5', '--min-runs', '20', - '--show-output', '--export-json', 'benchmark_sbp2json.json', - '-L', 'lang', 'rust,python,haskell,kaitai_python,kaitai_perl', - './test_data/benchmark/sbp2json_{lang}.py'], - check=True) + [ + "hyperfine", + "--warmup", + "5", + "--min-runs", + "20", + "--show-output", + "--export-json", + "benchmark_sbp2json.json", + "-L", + "lang", + "rust,python,haskell,kaitai_python,kaitai_perl", + "./test_data/benchmark/sbp2json_{lang}.py", + ], + check=True, + ) print() - bench_sbp2json = json.load(open('benchmark_sbp2json.json')) + bench_sbp2json = json.load(open("benchmark_sbp2json.json")) sbp2json_rust_mean = get_bench_mean(bench_sbp2json, "rust") means_sbp2json = { "haskell": get_bench_mean(bench_sbp2json, "haskell"), @@ -100,14 +116,23 @@ def main(): if not os.environ.get("BENCHMARK_SKIP_JSON2SBP"): subprocess.run( - ['hyperfine', '--warmup', '3', '--show-output', - '--export-json', 'benchmark_json2sbp.json', - '-L', 'lang', 'rust,haskell', - './test_data/benchmark/json2sbp_{lang}.py'], - check=True) + [ + "hyperfine", + "--warmup", + "3", + "--show-output", + "--export-json", + "benchmark_json2sbp.json", + "-L", + "lang", + "rust,haskell", + "./test_data/benchmark/json2sbp_{lang}.py", + ], + check=True, + ) print() - bench_json2sbp = json.load(open('benchmark_json2sbp.json')) + bench_json2sbp = json.load(open("benchmark_json2sbp.json")) means_json2sbp = { "haskell": get_bench_mean(bench_json2sbp, "haskell"), @@ -124,14 +149,23 @@ def main(): benchmark_input_json2json.write(json_data) subprocess.run( - ['hyperfine', '--warmup', '3', '--show-output', - '--export-json', 'benchmark_json2json.json', - '-L', 'lang', 'rust,haskell', - './test_data/benchmark/json2json_{lang}.py'], - check=True) + [ + "hyperfine", + "--warmup", + "3", + "--show-output", + "--export-json", + "benchmark_json2json.json", + "-L", + "lang", + "rust,haskell", + "./test_data/benchmark/json2json_{lang}.py", + ], + check=True, + ) print() - bench_json2json = json.load(open('benchmark_json2json.json')) + bench_json2json = json.load(open("benchmark_json2json.json")) means_json2json = { "haskell": get_bench_mean(bench_json2json, "haskell"), @@ -139,11 +173,13 @@ def main(): json2json_rust_mean = get_bench_mean(bench_json2json, "rust") - validate_thresholds("json2json", RATIOS_JSON2JSON, means_json2json, json2json_rust_mean) + validate_thresholds( + "json2json", RATIOS_JSON2JSON, means_json2json, json2json_rust_mean + ) if FAILED[0]: sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": main()