diff --git a/.github/workflows/c.yaml b/.github/workflows/c.yaml index 56b9afdfc5..47ca21f95d 100644 --- a/.github/workflows/c.yaml +++ b/.github/workflows/c.yaml @@ -47,7 +47,7 @@ jobs: apt-get -qq update apt-get -qq install libeigen3-dev libserialport-dev git cmake build-essential ${{ matrix.compiler.package }} - - uses: actions/checkout@v4 + - uses: actions/checkout@v2 with: submodules: recursive fetch-depth: 0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 71e2570606..49ad47cb6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## [v6.2.1](https://github.com/swift-nav/libsbp/tree/v6.2.1) + +[Full Changelog](https://github.com/swift-nav/libsbp/compare/v6.2.0...v6.2.1) + +**Merged pull requests:** + +- put the cargo dep in the right place [\#1456](https://github.com/swift-nav/libsbp/pull/1456) ([pcrumley](https://github.com/pcrumley)) +- Upgrade Haskel version [\#1454](https://github.com/swift-nav/libsbp/pull/1454) ([RReichert](https://github.com/RReichert)) +- cover CI hole which appears to be hiding a proc\_macro bindgen bug [\#1452](https://github.com/swift-nav/libsbp/pull/1452) ([pcrumley](https://github.com/pcrumley)) +- bumping to latest version of libswiftnav [\#1451](https://github.com/swift-nav/libsbp/pull/1451) ([pcrumley](https://github.com/pcrumley)) + + +## [v6.2.0](https://github.com/swift-nav/libsbp/tree/v6.2.0) + +[Full Changelog](https://github.com/swift-nav/libsbp/compare/v6.1.0...v6.2.0) + +**Merged pull requests:** + +- Add inertially to the spelling wordlist [\#1450](https://github.com/swift-nav/libsbp/pull/1450) ([Madhunika-atmakuri](https://github.com/Madhunika-atmakuri)) +- Add support for 99.73 confidence interval [\#1449](https://github.com/swift-nav/libsbp/pull/1449) ([ismolyakov](https://github.com/ismolyakov)) +- get the automated generation of test cases working again (https://github.com/swift-nav/libsbp/pull/1448) ([pcrumley](https://github.com/pcrumley)) +- Add compensated IMU message [\#1446](https://github.com/swift-nav/libsbp/pull/1446) ([ismolyakov](https://github.com/ismolyakov)) +- Documentation fixes after the removal of the legacy C API [\#1439](https://github.com/swift-nav/libsbp/pull/1439) ([dgburr](https://github.com/dgburr)) +- Pcrumley/update actions [\#1435](https://github.com/swift-nav/libsbp/pull/1435) ([pcrumley](https://github.com/pcrumley)) +- Pcrumley/update actions [\#1428](https://github.com/swift-nav/libsbp/pull/1428) ([pcrumley](https://github.com/pcrumley)) +- Auto submodule update: cmake - Update compiler options to support IAR \(\#175\) [\#1418](https://github.com/swift-nav/libsbp/pull/1418) ([swiftnav-svc-jenkins](https://github.com/swiftnav-svc-jenkins)) + ## [v6.1.0](https://github.com/swift-nav/libsbp/tree/v6.1.0) [Full Changelog](https://github.com/swift-nav/libsbp/compare/v6.0.1...v6.1.0) diff --git a/HOWTO.md b/HOWTO.md index f205c6f4af..aeeeccdf41 100644 --- a/HOWTO.md +++ b/HOWTO.md @@ -87,7 +87,9 @@ python missing.py --host [HOST] --port [PORT] ### New Messages The `json2test` script can be used to automatically generate tests for newly -defined messages. +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 +website To use `json2test` a JSON file should be hand written with example contents of a message. For example, to generate tests for the `MSG_HEARTBEAT` message (which @@ -105,13 +107,19 @@ form: And then generate a test for using `json2test` with: ```shell -PYTHONPATH="python/" python generator/json2test.py --input heartbeat.json --output spec/tests/yaml/swiftnav/sbp/system/test_MsgHeartbeat.yaml +uv -n run json2test.py --input heartbeat.json --output ../spec/tests/yaml/swiftnav/sbp/system/test_MsgHeartbeat.yaml ``` +*NOTE* because the json2test file imports the local version of sbp & the build +system of it all is a little slapdash, this command will ONLY work if called from +inside of `libsbp/generator/` directory because the `${PROJECT_ROOT}` in the script +declartion of json2test.py is whatever the PWD is when the command is called, and +caching is turned off. + Usage for `json2test` ```shell -python json2test --input [PATH_TO_JSON_IN] --output [PATH_TO_YAML_OUT] +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 diff --git a/README.md b/README.md index 875eeb6ee0..4ec2788964 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ * [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 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) @@ -102,7 +102,7 @@ but works on all platforms that Python itself supports. ## Building / installing -Before you start, run +Before you start, run ``` git pull --tags ``` @@ -151,7 +151,9 @@ You can then make this image operate on your local workspace like this: #### Using the docker image -Once in the image, simply type `make all` to generate all the libsbp bindings. +Once in the image, to overcome issues with git trying to determine ownership of +the repository, run `git config --global --add safe.directory /mnt/workspace`. +Then, simply type `make all` to generate all the libsbp bindings. This could take several hours to run. Alternately, the docker image will run the `make all` command by default, so you can kick off the `make all` process by simply running the following command: diff --git a/c/cmake/common b/c/cmake/common index 68306be89e..65c9a39656 160000 --- a/c/cmake/common +++ b/c/cmake/common @@ -1 +1 @@ -Subproject commit 68306be89ee8cdd88f96d798565204e55da0b81d +Subproject commit 65c9a396568701c382ca5a5515e6bb598f7d61b2 diff --git a/c/include/libsbp/cpp/message_traits.h b/c/include/libsbp/cpp/message_traits.h index dbe88518b1..85a3d2d97b 100644 --- a/c/include/libsbp/cpp/message_traits.h +++ b/c/include/libsbp/cpp/message_traits.h @@ -3527,6 +3527,39 @@ struct MessageTraits { } }; +template <> +struct MessageTraits { + static constexpr sbp_msg_type_t id = SbpMsgImuComp; + static constexpr const char *name = "MSG_IMU_COMP"; + static const sbp_msg_imu_comp_t &get(const sbp_msg_t &msg) { + return msg.imu_comp; + } + static sbp_msg_imu_comp_t &get(sbp_msg_t &msg) { return msg.imu_comp; } + static void to_sbp_msg(const sbp_msg_imu_comp_t &msg, sbp_msg_t *sbp_msg) { + sbp_msg->imu_comp = msg; + } + static sbp_msg_t to_sbp_msg(const sbp_msg_imu_comp_t &msg) { + sbp_msg_t sbp_msg; + sbp_msg.imu_comp = msg; + return sbp_msg; + } + static s8 send(sbp_state_t *state, u16 sender_id, + const sbp_msg_imu_comp_t &msg, sbp_write_fn_t write) { + return sbp_msg_imu_comp_send(state, sender_id, &msg, write); + } + static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_imu_comp_t &msg) { + return sbp_msg_imu_comp_encode(buf, len, n_written, &msg); + } + static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_imu_comp_t *msg) { + return sbp_msg_imu_comp_decode(buf, len, n_read, msg); + } + static size_t encoded_len(const sbp_msg_imu_comp_t &msg) { + return sbp_msg_imu_comp_encoded_len(&msg); + } +}; + template <> struct MessageTraits { static constexpr sbp_msg_type_t id = SbpMsgImuRaw; diff --git a/c/include/libsbp/imu.h b/c/include/libsbp/imu.h index 56a867b9b4..ccb7f849a4 100644 --- a/c/include/libsbp/imu.h +++ b/c/include/libsbp/imu.h @@ -18,6 +18,7 @@ #ifndef LIBSBP_IMU_MESSAGES_H #define LIBSBP_IMU_MESSAGES_H #include +#include #include #endif /* LIBSBP_IMU_MESSAGES_H */ diff --git a/c/include/libsbp/imu/MSG_IMU_COMP.h b/c/include/libsbp/imu/MSG_IMU_COMP.h new file mode 100644 index 0000000000..7cee9ad134 --- /dev/null +++ b/c/include/libsbp/imu/MSG_IMU_COMP.h @@ -0,0 +1,215 @@ +/* + * 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/imu.yaml + * with generate.py. Please do not hand edit! + *****************************************************************************/ + +#ifndef LIBSBP_IMU_MSG_IMU_COMP_H +#define LIBSBP_IMU_MSG_IMU_COMP_H + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * + * SBP_MSG_IMU_COMP + * + *****************************************************************************/ +/** Compensated IMU data + * + * Data from the Inertial Measurement Unit, containing accelerometer and + * gyroscope readings compensated for estimated errors and constant physical + * effects. The output is valid for inertially referenced center of navigation + * (IMU body frame) represented in vehicle body frame. + */ +typedef struct { + /** + * Microseconds since reference epoch [microseconds] + */ + u64 time; + + /** + * Contains the applied compensation parameters and time synchronization mode + */ + u16 flags; + + /** + * Compensated acceleration X axis [1e-6 m/s^2] + */ + s32 acc_comp_x; + + /** + * Compensated acceleration Y axis [1e-6 m/s^2] + */ + s32 acc_comp_y; + + /** + * Compensated acceleration Z axis [1e-6 m/s^2] + */ + s32 acc_comp_z; + + /** + * Compensated angular rate X axis [1e-6 deg/s] + */ + s32 gyr_comp_x; + + /** + * Compensated angular rate Y axis [1e-6 deg/s] + */ + s32 gyr_comp_y; + + /** + * Compensated angular rate Z axis [1e-6 deg/s] + */ + s32 gyr_comp_z; +} sbp_msg_imu_comp_t; + +/** + * Get encoded size of an instance of sbp_msg_imu_comp_t + * + * @param msg sbp_msg_imu_comp_t instance + * @return Length of on-wire representation + */ +static inline size_t sbp_msg_imu_comp_encoded_len( + const sbp_msg_imu_comp_t *msg) { + (void)msg; + return SBP_MSG_IMU_COMP_ENCODED_LEN; +} + +/** + * Encode an instance of sbp_msg_imu_comp_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_imu_comp_t to encode + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 sbp_msg_imu_comp_encode(uint8_t *buf, uint8_t len, + uint8_t *n_written, + const sbp_msg_imu_comp_t *msg); + +/** + * Decode an instance of sbp_msg_imu_comp_t from wire representation + * + * This function decodes the wire representation of a sbp_msg_imu_comp_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_imu_comp_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_imu_comp_decode(const uint8_t *buf, uint8_t len, + uint8_t *n_read, sbp_msg_imu_comp_t *msg); +/** + * Send an instance of sbp_msg_imu_comp_t with the given write function + * + * An equivalent of #sbp_message_send which operates specifically on + * sbp_msg_imu_comp_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_imu_comp_send(sbp_state_t *s, u16 sender_id, + const sbp_msg_imu_comp_t *msg, + sbp_write_fn_t write); + +/** + * Compare two instances of sbp_msg_imu_comp_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_imu_comp_t instance + * @param b sbp_msg_imu_comp_t instance + * @return 0, <0, >0 + */ +SBP_EXPORT int sbp_msg_imu_comp_cmp(const sbp_msg_imu_comp_t *a, + const sbp_msg_imu_comp_t *b); + +#ifdef __cplusplus +} + +static inline bool operator==(const sbp_msg_imu_comp_t &lhs, + const sbp_msg_imu_comp_t &rhs) { + return sbp_msg_imu_comp_cmp(&lhs, &rhs) == 0; +} + +static inline bool operator!=(const sbp_msg_imu_comp_t &lhs, + const sbp_msg_imu_comp_t &rhs) { + return sbp_msg_imu_comp_cmp(&lhs, &rhs) != 0; +} + +static inline bool operator<(const sbp_msg_imu_comp_t &lhs, + const sbp_msg_imu_comp_t &rhs) { + return sbp_msg_imu_comp_cmp(&lhs, &rhs) < 0; +} + +static inline bool operator<=(const sbp_msg_imu_comp_t &lhs, + const sbp_msg_imu_comp_t &rhs) { + return sbp_msg_imu_comp_cmp(&lhs, &rhs) <= 0; +} + +static inline bool operator>(const sbp_msg_imu_comp_t &lhs, + const sbp_msg_imu_comp_t &rhs) { + return sbp_msg_imu_comp_cmp(&lhs, &rhs) > 0; +} + +static inline bool operator>=(const sbp_msg_imu_comp_t &lhs, + const sbp_msg_imu_comp_t &rhs) { + return sbp_msg_imu_comp_cmp(&lhs, &rhs) >= 0; +} + +#endif // ifdef __cplusplus + +#endif /* LIBSBP_IMU_MSG_IMU_COMP_H */ diff --git a/c/include/libsbp/imu_macros.h b/c/include/libsbp/imu_macros.h index 134fa546fe..70ba7cd714 100644 --- a/c/include/libsbp/imu_macros.h +++ b/c/include/libsbp/imu_macros.h @@ -129,4 +129,97 @@ */ #define SBP_MSG_IMU_AUX_ENCODED_LEN 4u +#define SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_MASK (0x1u) +#define SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_SHIFT (6u) +#define SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_GET(flags) \ + ((u16)((u16)((flags) >> SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_SHIFT) & \ + SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_MASK)) +#define SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_SET(flags, val) \ + do { \ + (flags) = (u16)( \ + (flags & (~(SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_MASK \ + << SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_SHIFT))) | \ + (((val) & (SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_MASK)) \ + << (SBP_IMU_COMP_GYROSCOPEERRORSCOMPENSATED_SHIFT))); \ + } while (0) + +#define SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_MASK (0x1u) +#define SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_SHIFT (5u) +#define SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_GET(flags) \ + ((u16)((u16)((flags) >> SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_SHIFT) & \ + SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_MASK)) +#define SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_SET(flags, val) \ + do { \ + (flags) = (u16)( \ + (flags & (~(SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_MASK \ + << SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_SHIFT))) | \ + (((val) & (SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_MASK)) \ + << (SBP_IMU_COMP_ACCELEROMETERERRORSCOMPENSATED_SHIFT))); \ + } while (0) + +#define SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_MASK (0x1u) +#define SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_SHIFT (4u) +#define SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_GET(flags) \ + ((u16)((u16)((flags) >> SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_SHIFT) & \ + SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_MASK)) +#define SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_SET(flags, val) \ + do { \ + (flags) = \ + (u16)((flags & (~(SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_MASK \ + << SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_SHIFT))) | \ + (((val) & (SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_MASK)) \ + << (SBP_IMU_COMP_CORIOLISEFFECTCOMPENSATED_SHIFT))); \ + } while (0) + +#define SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_MASK (0x1u) +#define SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_SHIFT (3u) +#define SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_GET(flags) \ + ((u16)((u16)((flags) >> SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_SHIFT) & \ + SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_MASK)) +#define SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_SET(flags, val) \ + do { \ + (flags) = (u16)( \ + (flags & (~(SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_MASK \ + << SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_SHIFT))) | \ + (((val) & (SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_MASK)) \ + << (SBP_IMU_COMP_EARTHRORATIONRATECOMPENSATED_SHIFT))); \ + } while (0) + +#define SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_MASK (0x1u) +#define SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_SHIFT (2u) +#define SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_GET(flags) \ + ((u16)((u16)((flags) >> SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_SHIFT) & \ + SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_MASK)) +#define SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_SET(flags, val) \ + do { \ + (flags) = \ + (u16)((flags & (~(SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_MASK \ + << SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_SHIFT))) | \ + (((val) & (SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_MASK)) \ + << (SBP_IMU_COMP_EARTHGRAVITYCOMPENSATED_SHIFT))); \ + } while (0) + +#define SBP_IMU_COMP_TIME_STATUS_MASK (0x3u) +#define SBP_IMU_COMP_TIME_STATUS_SHIFT (0u) +#define SBP_IMU_COMP_TIME_STATUS_GET(flags) \ + ((u16)((u16)((flags) >> SBP_IMU_COMP_TIME_STATUS_SHIFT) & \ + SBP_IMU_COMP_TIME_STATUS_MASK)) +#define SBP_IMU_COMP_TIME_STATUS_SET(flags, val) \ + do { \ + (flags) = (u16)((flags & (~(SBP_IMU_COMP_TIME_STATUS_MASK \ + << SBP_IMU_COMP_TIME_STATUS_SHIFT))) | \ + (((val) & (SBP_IMU_COMP_TIME_STATUS_MASK)) \ + << (SBP_IMU_COMP_TIME_STATUS_SHIFT))); \ + } while (0) + +#define SBP_IMU_COMP_TIME_STATUS_REFERENCE_EPOCH_IS_START_OF_CURRENT_GPS_WEEK \ + (0) +#define SBP_IMU_COMP_TIME_STATUS_REFERENCE_EPOCH_IS_TIME_OF_SYSTEM_STARTUP (1) +#define SBP_IMU_COMP_TIME_STATUS_REFERENCE_EPOCH_IS_UNKNOWN (2) +#define SBP_IMU_COMP_TIME_STATUS_REFERENCE_EPOCH_IS_LAST_PPS (3) +/** + * Encoded length of sbp_msg_imu_comp_t + */ +#define SBP_MSG_IMU_COMP_ENCODED_LEN 34u + #endif /* LIBSBP_IMU_MACROS_H */ diff --git a/c/include/libsbp/navigation_macros.h b/c/include/libsbp/navigation_macros.h index 73f964dc5e..616a817689 100644 --- a/c/include/libsbp/navigation_macros.h +++ b/c/include/libsbp/navigation_macros.h @@ -434,6 +434,7 @@ #define SBP_POS_LLH_ACC_CONFIDENCE_LEVEL_3935 (1) #define SBP_POS_LLH_ACC_CONFIDENCE_LEVEL_6827 (2) #define SBP_POS_LLH_ACC_CONFIDENCE_LEVEL_9545 (3) +#define SBP_POS_LLH_ACC_CONFIDENCE_LEVEL_9973 (4) #define SBP_POS_LLH_ACC_TYPE_OF_REPORTED_TOW_MASK (0x1u) #define SBP_POS_LLH_ACC_TYPE_OF_REPORTED_TOW_SHIFT (5u) #define SBP_POS_LLH_ACC_TYPE_OF_REPORTED_TOW_GET(flags) \ diff --git a/c/include/libsbp/sbp.h b/c/include/libsbp/sbp.h index 2c7a1134cb..9ecc8a2400 100644 --- a/c/include/libsbp/sbp.h +++ b/c/include/libsbp/sbp.h @@ -77,8 +77,7 @@ typedef void (*sbp_callback_t)(u16 sender_id, sbp_msg_type_t msg_type, const sbp /** SBP callback node. * Forms a linked list of callbacks. - * \note Must be statically allocated for use with sbp_register_callback() - * and sbp_register_frame_callback(). + * \note Must be statically allocated for use with sbp_callback_register() */ struct sbp_msg_callbacks_node { sbp_msg_type_t msg_type; /**< Message ID associated with callback. */ diff --git a/c/include/libsbp/sbp_msg.h b/c/include/libsbp/sbp_msg.h index c8c510256f..754aeb8e79 100644 --- a/c/include/libsbp/sbp_msg.h +++ b/c/include/libsbp/sbp_msg.h @@ -157,6 +157,7 @@ typedef union { sbp_msg_heartbeat_t heartbeat; sbp_msg_iar_state_t iar_state; sbp_msg_imu_aux_t imu_aux; + sbp_msg_imu_comp_t imu_comp; sbp_msg_imu_raw_t imu_raw; sbp_msg_init_base_dep_t init_base_dep; sbp_msg_ins_status_t ins_status; @@ -587,6 +588,8 @@ static inline s8 sbp_message_encode(uint8_t *buf, uint8_t len, return sbp_msg_iar_state_encode(buf, len, n_written, &msg->iar_state); case SbpMsgImuAux: return sbp_msg_imu_aux_encode(buf, len, n_written, &msg->imu_aux); + case SbpMsgImuComp: + return sbp_msg_imu_comp_encode(buf, len, n_written, &msg->imu_comp); case SbpMsgImuRaw: return sbp_msg_imu_raw_encode(buf, len, n_written, &msg->imu_raw); case SbpMsgInitBaseDep: @@ -1257,6 +1260,8 @@ static inline s8 sbp_message_decode(const uint8_t *buf, uint8_t len, return sbp_msg_iar_state_decode(buf, len, n_read, &msg->iar_state); case SbpMsgImuAux: return sbp_msg_imu_aux_decode(buf, len, n_read, &msg->imu_aux); + case SbpMsgImuComp: + return sbp_msg_imu_comp_decode(buf, len, n_read, &msg->imu_comp); case SbpMsgImuRaw: return sbp_msg_imu_raw_decode(buf, len, n_read, &msg->imu_raw); case SbpMsgInitBaseDep: @@ -1861,6 +1866,8 @@ static inline size_t sbp_message_encoded_len(sbp_msg_type_t msg_type, return sbp_msg_iar_state_encoded_len(&msg->iar_state); case SbpMsgImuAux: return sbp_msg_imu_aux_encoded_len(&msg->imu_aux); + case SbpMsgImuComp: + return sbp_msg_imu_comp_encoded_len(&msg->imu_comp); case SbpMsgImuRaw: return sbp_msg_imu_raw_encoded_len(&msg->imu_raw); case SbpMsgInitBaseDep: @@ -2452,6 +2459,8 @@ static inline int sbp_message_cmp(sbp_msg_type_t msg_type, const sbp_msg_t *a, return sbp_msg_iar_state_cmp(&a->iar_state, &b->iar_state); case SbpMsgImuAux: return sbp_msg_imu_aux_cmp(&a->imu_aux, &b->imu_aux); + case SbpMsgImuComp: + return sbp_msg_imu_comp_cmp(&a->imu_comp, &b->imu_comp); case SbpMsgImuRaw: return sbp_msg_imu_raw_cmp(&a->imu_raw, &b->imu_raw); case SbpMsgInitBaseDep: diff --git a/c/include/libsbp/sbp_msg_type.h b/c/include/libsbp/sbp_msg_type.h index 906bdce08c..a098bfc013 100644 --- a/c/include/libsbp/sbp_msg_type.h +++ b/c/include/libsbp/sbp_msg_type.h @@ -148,6 +148,7 @@ typedef enum { SbpMsgHeartbeat = 0xFFFF, SbpMsgIarState = 0x0019, SbpMsgImuAux = 0x0901, + SbpMsgImuComp = 0x0905, SbpMsgImuRaw = 0x0900, SbpMsgInitBaseDep = 0x0023, SbpMsgInsStatus = 0xFF03, @@ -489,6 +490,8 @@ static inline const char *sbp_msg_type_to_string(sbp_msg_type_t msg_type) { return "MSG_IAR_STATE"; case SbpMsgImuAux: return "MSG_IMU_AUX"; + case SbpMsgImuComp: + return "MSG_IMU_COMP"; case SbpMsgImuRaw: return "MSG_IMU_RAW"; case SbpMsgInitBaseDep: diff --git a/c/include/libsbp/version.h b/c/include/libsbp/version.h index ea8eaa43b0..af80761e3e 100644 --- a/c/include/libsbp/version.h +++ b/c/include/libsbp/version.h @@ -23,12 +23,12 @@ /** Protocol major version. */ #define SBP_MAJOR_VERSION 6 /** Protocol minor version. */ -#define SBP_MINOR_VERSION 1 +#define SBP_MINOR_VERSION 2 /** Protocol patch version. */ -#define SBP_PATCH_VERSION 0 +#define SBP_PATCH_VERSION 1 /** Full SBP version string. */ -#define SBP_VERSION "6.1.1-alpha" +#define SBP_VERSION "6.2.2-alpha" /** Is this a staging branch? */ #define SBP_STAGING 0 diff --git a/c/src/imu.c b/c/src/imu.c index 95aeed2b82..4610a2d3b2 100644 --- a/c/src/imu.c +++ b/c/src/imu.c @@ -247,3 +247,146 @@ int sbp_msg_imu_aux_cmp(const sbp_msg_imu_aux_t *a, ret = sbp_u8_cmp(&a->imu_conf, &b->imu_conf); return ret; } + +bool sbp_msg_imu_comp_encode_internal(sbp_encode_ctx_t *ctx, + const sbp_msg_imu_comp_t *msg) { + if (!sbp_u64_encode(ctx, &msg->time)) { + return false; + } + if (!sbp_u16_encode(ctx, &msg->flags)) { + return false; + } + if (!sbp_s32_encode(ctx, &msg->acc_comp_x)) { + return false; + } + if (!sbp_s32_encode(ctx, &msg->acc_comp_y)) { + return false; + } + if (!sbp_s32_encode(ctx, &msg->acc_comp_z)) { + return false; + } + if (!sbp_s32_encode(ctx, &msg->gyr_comp_x)) { + return false; + } + if (!sbp_s32_encode(ctx, &msg->gyr_comp_y)) { + return false; + } + if (!sbp_s32_encode(ctx, &msg->gyr_comp_z)) { + return false; + } + return true; +} + +s8 sbp_msg_imu_comp_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_imu_comp_t *msg) { + sbp_encode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_imu_comp_encode_internal(&ctx, msg)) { + return SBP_ENCODE_ERROR; + } + if (n_written != NULL) { + *n_written = (uint8_t)ctx.offset; + } + return SBP_OK; +} + +bool sbp_msg_imu_comp_decode_internal(sbp_decode_ctx_t *ctx, + sbp_msg_imu_comp_t *msg) { + if (!sbp_u64_decode(ctx, &msg->time)) { + return false; + } + if (!sbp_u16_decode(ctx, &msg->flags)) { + return false; + } + if (!sbp_s32_decode(ctx, &msg->acc_comp_x)) { + return false; + } + if (!sbp_s32_decode(ctx, &msg->acc_comp_y)) { + return false; + } + if (!sbp_s32_decode(ctx, &msg->acc_comp_z)) { + return false; + } + if (!sbp_s32_decode(ctx, &msg->gyr_comp_x)) { + return false; + } + if (!sbp_s32_decode(ctx, &msg->gyr_comp_y)) { + return false; + } + if (!sbp_s32_decode(ctx, &msg->gyr_comp_z)) { + return false; + } + return true; +} + +s8 sbp_msg_imu_comp_decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_imu_comp_t *msg) { + sbp_decode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_imu_comp_decode_internal(&ctx, msg)) { + return SBP_DECODE_ERROR; + } + if (n_read != NULL) { + *n_read = (uint8_t)ctx.offset; + } + return SBP_OK; +} + +s8 sbp_msg_imu_comp_send(sbp_state_t *s, u16 sender_id, + const sbp_msg_imu_comp_t *msg, sbp_write_fn_t write) { + uint8_t payload[SBP_MAX_PAYLOAD_LEN]; + uint8_t payload_len; + s8 ret = sbp_msg_imu_comp_encode(payload, sizeof(payload), &payload_len, msg); + if (ret != SBP_OK) { + return ret; + } + return sbp_internal_forward_payload(s, SbpMsgImuComp, sender_id, payload_len, + payload, write); +} + +int sbp_msg_imu_comp_cmp(const sbp_msg_imu_comp_t *a, + const sbp_msg_imu_comp_t *b) { + int ret = 0; + + ret = sbp_u64_cmp(&a->time, &b->time); + if (ret != 0) { + return ret; + } + + ret = sbp_u16_cmp(&a->flags, &b->flags); + if (ret != 0) { + return ret; + } + + ret = sbp_s32_cmp(&a->acc_comp_x, &b->acc_comp_x); + if (ret != 0) { + return ret; + } + + ret = sbp_s32_cmp(&a->acc_comp_y, &b->acc_comp_y); + if (ret != 0) { + return ret; + } + + ret = sbp_s32_cmp(&a->acc_comp_z, &b->acc_comp_z); + if (ret != 0) { + return ret; + } + + ret = sbp_s32_cmp(&a->gyr_comp_x, &b->gyr_comp_x); + if (ret != 0) { + return ret; + } + + ret = sbp_s32_cmp(&a->gyr_comp_y, &b->gyr_comp_y); + if (ret != 0) { + return ret; + } + + ret = sbp_s32_cmp(&a->gyr_comp_z, &b->gyr_comp_z); + return ret; +} diff --git a/c/src/include/libsbp/internal/imu.h b/c/src/include/libsbp/internal/imu.h index 257f7ace24..6e8c5fbd77 100644 --- a/c/src/include/libsbp/internal/imu.h +++ b/c/src/include/libsbp/internal/imu.h @@ -67,6 +67,26 @@ bool sbp_msg_imu_aux_encode_internal(sbp_encode_ctx_t *ctx, bool sbp_msg_imu_aux_decode_internal(sbp_decode_ctx_t *ctx, sbp_msg_imu_aux_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_imu_comp_encode_internal(sbp_encode_ctx_t *ctx, + const sbp_msg_imu_comp_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_imu_comp_decode_internal(sbp_decode_ctx_t *ctx, + sbp_msg_imu_comp_t *msg); + #ifdef __cplusplus } #endif diff --git a/c/src/sbp.c b/c/src/sbp.c index 9a86856c27..fdbf029d2b 100644 --- a/c/src/sbp.c +++ b/c/src/sbp.c @@ -29,19 +29,10 @@ * --------- * * First setup a callback for the message you will be receiving. Our callback - * function must have type #sbp_msg_callback_t or #sbp_frame_callback_t, - * i.e. it must be of the form: + * function must have type #sbp_callback_t i.e. it must be of the form: * * ~~~ - * void my_callback(u16 sender_id, u8 len, u8 msg[], void *context) - * { - * // Process msg. - * } - * ~~~ - * or - * ~~~ - * void my_frame_callback(u16 sender_id, u16 msg_type, u8 payload_len, - * u8 payload[], u16 frame_len, u8 frame[], void *context) + * void my_callback(u16 sender_id, sbp_msg_type_t msg_type, const sbp_msg_t *msg, void *context); * { * // Process msg. * } @@ -49,7 +40,7 @@ * * You must also statically allocate a #sbp_msg_callbacks_node_t that will be * used to keep track of the callback function. You do not need to initialize - * it as this will be done by sbp_register_callback(). + * it as this will be done by sbp_callback_register(). * * ~~~ * static sbp_msg_callbacks_node_t my_callback_node; @@ -58,12 +49,7 @@ * Now register your callback function with the SBP library as follows: * * ~~~ - * sbp_register_callback(&sbp_state, SBP_MY_MSG_TYPE, &my_callback, &context, &my_callback_node); - * ~~~ - * or - * ~~~ - * sbp_register_frame_callback(&sbp_state, SBP_MY_MSG_TYPE, &my_frame_callback, - * &context, &my_callback_node); + * sbp_callback_register(&sbp_state, SBP_MY_MSG_TYPE, &my_callback, &context, &my_callback_node); * ~~~ * * where `SBP_MY_MSG_TYPE` is the numerical identifier of your message type. @@ -162,15 +148,13 @@ * * \{ */ -/** Register a callback for a particular msg_type, specifying the cb_type. +/** Register a callback for a particular msg_type * * \param s Pointer to sbp_state * \param msg_type Message type on which to fire callback. * SbpMsgAll will fire for every message, but only * for callbacks of type SBP_FRAME_CALLBACK. * \param cb Pointer to message callback function - * \param cb_type sbp_cb_type indicating what kind of cb is in use. - * (e.g SBP_MSG_CALLBACK or SBP_FRAME_CALLBACK) * \param context Pointer to context for callback function * \param node Statically allocated #sbp_msg_callbacks_node_t struct * \return `SBP_OK` (0) if successful, `SBP_NULL_ERROR` on usage errors, diff --git a/c/test/auto_check_sbp_acquisition_MsgAcqResult.c b/c/test/auto_check_sbp_acquisition_MsgAcqResult.c index 45fa339764..600dc5668c 100644 --- a/c/test/auto_check_sbp_acquisition_MsgAcqResult.c +++ b/c/test/auto_check_sbp_acquisition_MsgAcqResult.c @@ -175,4 +175,4 @@ Suite *auto_check_sbp_acquisition_MsgAcqResult_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_acquisition_MsgAcqResult); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_acquisition_MsgAcqResultDepA.c b/c/test/auto_check_sbp_acquisition_MsgAcqResultDepA.c index 9e1c6f5ac6..f866b20598 100644 --- a/c/test/auto_check_sbp_acquisition_MsgAcqResultDepA.c +++ b/c/test/auto_check_sbp_acquisition_MsgAcqResultDepA.c @@ -562,4 +562,4 @@ Suite *auto_check_sbp_acquisition_MsgAcqResultDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_acquisition_MsgAcqResultDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_acquisition_MsgAcqResultDepB.c b/c/test/auto_check_sbp_acquisition_MsgAcqResultDepB.c index b4b2b6b231..28b6688755 100644 --- a/c/test/auto_check_sbp_acquisition_MsgAcqResultDepB.c +++ b/c/test/auto_check_sbp_acquisition_MsgAcqResultDepB.c @@ -559,4 +559,4 @@ Suite *auto_check_sbp_acquisition_MsgAcqResultDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_acquisition_MsgAcqResultDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_acquisition_MsgAcqResultDepC.c b/c/test/auto_check_sbp_acquisition_MsgAcqResultDepC.c index 159ba18805..0cfef28f6e 100644 --- a/c/test/auto_check_sbp_acquisition_MsgAcqResultDepC.c +++ b/c/test/auto_check_sbp_acquisition_MsgAcqResultDepC.c @@ -564,4 +564,4 @@ Suite *auto_check_sbp_acquisition_MsgAcqResultDepC_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_acquisition_MsgAcqResultDepC); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_acquisition_MsgAcqSvProfile.c b/c/test/auto_check_sbp_acquisition_MsgAcqSvProfile.c index 4a96d4e867..2f0f82f35f 100644 --- a/c/test/auto_check_sbp_acquisition_MsgAcqSvProfile.c +++ b/c/test/auto_check_sbp_acquisition_MsgAcqSvProfile.c @@ -494,4 +494,4 @@ Suite *auto_check_sbp_acquisition_MsgAcqSvProfile_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_acquisition_MsgAcqSvProfile); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_acquisition_MsgAcqSvProfileDep.c b/c/test/auto_check_sbp_acquisition_MsgAcqSvProfileDep.c index 6578bf1bed..9b7dd9421e 100644 --- a/c/test/auto_check_sbp_acquisition_MsgAcqSvProfileDep.c +++ b/c/test/auto_check_sbp_acquisition_MsgAcqSvProfileDep.c @@ -534,4 +534,4 @@ Suite *auto_check_sbp_acquisition_MsgAcqSvProfileDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_acquisition_MsgAcqSvProfileDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_bootload_MsgBootloaderHandshakeReq.c b/c/test/auto_check_sbp_bootload_MsgBootloaderHandshakeReq.c index 5bee8ac4ca..27573b02ab 100644 --- a/c/test/auto_check_sbp_bootload_MsgBootloaderHandshakeReq.c +++ b/c/test/auto_check_sbp_bootload_MsgBootloaderHandshakeReq.c @@ -139,4 +139,4 @@ Suite *auto_check_sbp_bootload_MsgBootloaderHandshakeReq_suite(void) { test_auto_check_sbp_bootload_MsgBootloaderHandshakeReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_bootload_MsgBootloaderHandshakeResp.c b/c/test/auto_check_sbp_bootload_MsgBootloaderHandshakeResp.c index 31805429d0..82d9cd8f1c 100644 --- a/c/test/auto_check_sbp_bootload_MsgBootloaderHandshakeResp.c +++ b/c/test/auto_check_sbp_bootload_MsgBootloaderHandshakeResp.c @@ -231,4 +231,4 @@ Suite *auto_check_sbp_bootload_MsgBootloaderHandshakeResp_suite(void) { test_auto_check_sbp_bootload_MsgBootloaderHandshakeResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_bootload_MsgBootloaderJumptoApp.c b/c/test/auto_check_sbp_bootload_MsgBootloaderJumptoApp.c index 837816fb7c..03f2a04440 100644 --- a/c/test/auto_check_sbp_bootload_MsgBootloaderJumptoApp.c +++ b/c/test/auto_check_sbp_bootload_MsgBootloaderJumptoApp.c @@ -146,4 +146,4 @@ Suite *auto_check_sbp_bootload_MsgBootloaderJumptoApp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_bootload_MsgBootloaderJumptoApp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_bootload_MsgNapDeviceDnaReq.c b/c/test/auto_check_sbp_bootload_MsgNapDeviceDnaReq.c index 01492c4ea1..b47253f1d6 100644 --- a/c/test/auto_check_sbp_bootload_MsgNapDeviceDnaReq.c +++ b/c/test/auto_check_sbp_bootload_MsgNapDeviceDnaReq.c @@ -137,4 +137,4 @@ Suite *auto_check_sbp_bootload_MsgNapDeviceDnaReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_bootload_MsgNapDeviceDnaReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_bootload_MsgNapDeviceDnaResp.c b/c/test/auto_check_sbp_bootload_MsgNapDeviceDnaResp.c index e9b1c827aa..a54e46e929 100644 --- a/c/test/auto_check_sbp_bootload_MsgNapDeviceDnaResp.c +++ b/c/test/auto_check_sbp_bootload_MsgNapDeviceDnaResp.c @@ -194,4 +194,4 @@ Suite *auto_check_sbp_bootload_MsgNapDeviceDnaResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_bootload_MsgNapDeviceDnaResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ext_events_MsgExtEvent.c b/c/test/auto_check_sbp_ext_events_MsgExtEvent.c index 2deb483cab..46f3b122d8 100644 --- a/c/test/auto_check_sbp_ext_events_MsgExtEvent.c +++ b/c/test/auto_check_sbp_ext_events_MsgExtEvent.c @@ -172,4 +172,4 @@ Suite *auto_check_sbp_ext_events_MsgExtEvent_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ext_events_MsgExtEvent); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_file_io_MsgFileioConfigReq.c b/c/test/auto_check_sbp_file_io_MsgFileioConfigReq.c index 5a1093b759..6a44628e61 100644 --- a/c/test/auto_check_sbp_file_io_MsgFileioConfigReq.c +++ b/c/test/auto_check_sbp_file_io_MsgFileioConfigReq.c @@ -145,4 +145,4 @@ Suite *auto_check_sbp_file_io_MsgFileioConfigReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_file_io_MsgFileioConfigReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_file_io_MsgFileioConfigResp.c b/c/test/auto_check_sbp_file_io_MsgFileioConfigResp.c index b095dd2099..942162b89b 100644 --- a/c/test/auto_check_sbp_file_io_MsgFileioConfigResp.c +++ b/c/test/auto_check_sbp_file_io_MsgFileioConfigResp.c @@ -170,4 +170,4 @@ Suite *auto_check_sbp_file_io_MsgFileioConfigResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_file_io_MsgFileioConfigResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_file_io_MsgFileioReadDirReq.c b/c/test/auto_check_sbp_file_io_MsgFileioReadDirReq.c index 6fef298b2f..3cb1b57333 100644 --- a/c/test/auto_check_sbp_file_io_MsgFileioReadDirReq.c +++ b/c/test/auto_check_sbp_file_io_MsgFileioReadDirReq.c @@ -174,4 +174,4 @@ Suite *auto_check_sbp_file_io_MsgFileioReadDirReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_file_io_MsgFileioReadDirReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_file_io_MsgFileioReadDirResp.c b/c/test/auto_check_sbp_file_io_MsgFileioReadDirResp.c index 6b0f74911a..01579cea42 100644 --- a/c/test/auto_check_sbp_file_io_MsgFileioReadDirResp.c +++ b/c/test/auto_check_sbp_file_io_MsgFileioReadDirResp.c @@ -178,4 +178,4 @@ Suite *auto_check_sbp_file_io_MsgFileioReadDirResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_file_io_MsgFileioReadDirResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_file_io_MsgFileioReadReq.c b/c/test/auto_check_sbp_file_io_MsgFileioReadReq.c index b7e3c563ba..5e7a557644 100644 --- a/c/test/auto_check_sbp_file_io_MsgFileioReadReq.c +++ b/c/test/auto_check_sbp_file_io_MsgFileioReadReq.c @@ -180,4 +180,4 @@ Suite *auto_check_sbp_file_io_MsgFileioReadReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_file_io_MsgFileioReadReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_file_io_MsgFileioReadResp.c b/c/test/auto_check_sbp_file_io_MsgFileioReadResp.c index 40634f1310..663a5a27bd 100644 --- a/c/test/auto_check_sbp_file_io_MsgFileioReadResp.c +++ b/c/test/auto_check_sbp_file_io_MsgFileioReadResp.c @@ -1928,4 +1928,4 @@ Suite *auto_check_sbp_file_io_MsgFileioReadResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_file_io_MsgFileioReadResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_file_io_MsgFileioRemove.c b/c/test/auto_check_sbp_file_io_MsgFileioRemove.c index 7b81a3b8d2..734d0dbd80 100644 --- a/c/test/auto_check_sbp_file_io_MsgFileioRemove.c +++ b/c/test/auto_check_sbp_file_io_MsgFileioRemove.c @@ -157,4 +157,4 @@ Suite *auto_check_sbp_file_io_MsgFileioRemove_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_file_io_MsgFileioRemove); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_file_io_MsgFileioWriteResp.c b/c/test/auto_check_sbp_file_io_MsgFileioWriteResp.c index be8e72a8d6..e6f054ca3b 100644 --- a/c/test/auto_check_sbp_file_io_MsgFileioWriteResp.c +++ b/c/test/auto_check_sbp_file_io_MsgFileioWriteResp.c @@ -145,4 +145,4 @@ Suite *auto_check_sbp_file_io_MsgFileioWriteResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_file_io_MsgFileioWriteResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgFlashDone.c b/c/test/auto_check_sbp_flash_MsgFlashDone.c index 25529c946a..b604fd6422 100644 --- a/c/test/auto_check_sbp_flash_MsgFlashDone.c +++ b/c/test/auto_check_sbp_flash_MsgFlashDone.c @@ -144,4 +144,4 @@ Suite *auto_check_sbp_flash_MsgFlashDone_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgFlashDone); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgFlashErase.c b/c/test/auto_check_sbp_flash_MsgFlashErase.c index b86552c55c..d92048435e 100644 --- a/c/test/auto_check_sbp_flash_MsgFlashErase.c +++ b/c/test/auto_check_sbp_flash_MsgFlashErase.c @@ -151,4 +151,4 @@ Suite *auto_check_sbp_flash_MsgFlashErase_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgFlashErase); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgFlashProgram.c b/c/test/auto_check_sbp_flash_MsgFlashProgram.c index c4f9fdff85..d7c083fc9b 100644 --- a/c/test/auto_check_sbp_flash_MsgFlashProgram.c +++ b/c/test/auto_check_sbp_flash_MsgFlashProgram.c @@ -1692,4 +1692,4 @@ Suite *auto_check_sbp_flash_MsgFlashProgram_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgFlashProgram); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgFlashReadReq.c b/c/test/auto_check_sbp_flash_MsgFlashReadReq.c index 6227e181bf..83b33c2714 100644 --- a/c/test/auto_check_sbp_flash_MsgFlashReadReq.c +++ b/c/test/auto_check_sbp_flash_MsgFlashReadReq.c @@ -173,4 +173,4 @@ Suite *auto_check_sbp_flash_MsgFlashReadReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgFlashReadReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgFlashReadResp.c b/c/test/auto_check_sbp_flash_MsgFlashReadResp.c index 04d5bd2934..e53795ce60 100644 --- a/c/test/auto_check_sbp_flash_MsgFlashReadResp.c +++ b/c/test/auto_check_sbp_flash_MsgFlashReadResp.c @@ -173,4 +173,4 @@ Suite *auto_check_sbp_flash_MsgFlashReadResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgFlashReadResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgM25FlashWriteStatus.c b/c/test/auto_check_sbp_flash_MsgM25FlashWriteStatus.c index 90aed6560a..b39ae1edf8 100644 --- a/c/test/auto_check_sbp_flash_MsgM25FlashWriteStatus.c +++ b/c/test/auto_check_sbp_flash_MsgM25FlashWriteStatus.c @@ -145,4 +145,4 @@ Suite *auto_check_sbp_flash_MsgM25FlashWriteStatus_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgM25FlashWriteStatus); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgStmFlashLockSector.c b/c/test/auto_check_sbp_flash_MsgStmFlashLockSector.c index 352debedc5..6d5e089b61 100644 --- a/c/test/auto_check_sbp_flash_MsgStmFlashLockSector.c +++ b/c/test/auto_check_sbp_flash_MsgStmFlashLockSector.c @@ -145,4 +145,4 @@ Suite *auto_check_sbp_flash_MsgStmFlashLockSector_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgStmFlashLockSector); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgStmFlashUnlockSector.c b/c/test/auto_check_sbp_flash_MsgStmFlashUnlockSector.c index e1615eddf5..22acee2029 100644 --- a/c/test/auto_check_sbp_flash_MsgStmFlashUnlockSector.c +++ b/c/test/auto_check_sbp_flash_MsgStmFlashUnlockSector.c @@ -145,4 +145,4 @@ Suite *auto_check_sbp_flash_MsgStmFlashUnlockSector_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgStmFlashUnlockSector); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgStmUniqueIdReq.c b/c/test/auto_check_sbp_flash_MsgStmUniqueIdReq.c index fa40e19edb..375c898f0c 100644 --- a/c/test/auto_check_sbp_flash_MsgStmUniqueIdReq.c +++ b/c/test/auto_check_sbp_flash_MsgStmUniqueIdReq.c @@ -137,4 +137,4 @@ Suite *auto_check_sbp_flash_MsgStmUniqueIdReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgStmUniqueIdReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_flash_MsgStmUniqueIdResp.c b/c/test/auto_check_sbp_flash_MsgStmUniqueIdResp.c index 4c81f80dbf..7f00e6ecbf 100644 --- a/c/test/auto_check_sbp_flash_MsgStmUniqueIdResp.c +++ b/c/test/auto_check_sbp_flash_MsgStmUniqueIdResp.c @@ -223,4 +223,4 @@ Suite *auto_check_sbp_flash_MsgStmUniqueIdResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_flash_MsgStmUniqueIdResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_imu_MsgImuAux.c b/c/test/auto_check_sbp_imu_MsgImuAux.c index aa71af3a7d..95542e81cc 100644 --- a/c/test/auto_check_sbp_imu_MsgImuAux.c +++ b/c/test/auto_check_sbp_imu_MsgImuAux.c @@ -155,4 +155,4 @@ Suite *auto_check_sbp_imu_MsgImuAux_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_imu_MsgImuAux); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_imu_MsgImuComp.c b/c/test/auto_check_sbp_imu_MsgImuComp.c new file mode 100644 index 0000000000..185acfdca5 --- /dev/null +++ b/c/test/auto_check_sbp_imu_MsgImuComp.c @@ -0,0 +1,195 @@ +/* + * 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/imu/test_MsgImuComp.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_imu_MsgImuComp) { + 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, 0x905, &msg_callback, + &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 encoded_frame[] = { + 85, 5, 9, 52, 18, 34, 26, 1, 0, 192, 0, 0, 0, 0, + 206, 0, 96, 0, 0, 0, 223, 255, 255, 255, 44, 16, 0, 0, + 60, 0, 0, 0, 208, 254, 255, 255, 238, 255, 255, 255, 79, 86, + }; + + dummy_reset(); + + sbp_msg_t test_msg; + memset(&test_msg, 0, sizeof(test_msg)); + + test_msg.imu_comp.acc_comp_x = 96; + + test_msg.imu_comp.acc_comp_y = -33; + + test_msg.imu_comp.acc_comp_z = 4140; + + test_msg.imu_comp.flags = 206; + + test_msg.imu_comp.gyr_comp_x = 60; + + test_msg.imu_comp.gyr_comp_y = -304; + + test_msg.imu_comp.gyr_comp_z = -18; + + test_msg.imu_comp.time = 3221225754; + + sbp_message_send(&sbp_state, SbpMsgImuComp, 4660, &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 == 4660, + "msg_callback: sender_id decoded incorrectly"); + + ck_assert_msg(sbp_message_cmp(SbpMsgImuComp, &last_msg.msg, &test_msg) == 0, + "Sent and received messages did not compare equal"); + + ck_assert_msg(last_msg.msg.imu_comp.acc_comp_x == 96, + "incorrect value for last_msg.msg.imu_comp.acc_comp_x, " + "expected 96, is %" PRId64, + (int64_t)last_msg.msg.imu_comp.acc_comp_x); + + ck_assert_msg(last_msg.msg.imu_comp.acc_comp_y == -33, + "incorrect value for last_msg.msg.imu_comp.acc_comp_y, " + "expected -33, is %" PRId64, + (int64_t)last_msg.msg.imu_comp.acc_comp_y); + + ck_assert_msg(last_msg.msg.imu_comp.acc_comp_z == 4140, + "incorrect value for last_msg.msg.imu_comp.acc_comp_z, " + "expected 4140, is %" PRId64, + (int64_t)last_msg.msg.imu_comp.acc_comp_z); + + ck_assert_msg(last_msg.msg.imu_comp.flags == 206, + "incorrect value for last_msg.msg.imu_comp.flags, expected " + "206, is %" PRId64, + (int64_t)last_msg.msg.imu_comp.flags); + + ck_assert_msg(last_msg.msg.imu_comp.gyr_comp_x == 60, + "incorrect value for last_msg.msg.imu_comp.gyr_comp_x, " + "expected 60, is %" PRId64, + (int64_t)last_msg.msg.imu_comp.gyr_comp_x); + + ck_assert_msg(last_msg.msg.imu_comp.gyr_comp_y == -304, + "incorrect value for last_msg.msg.imu_comp.gyr_comp_y, " + "expected -304, is %" PRId64, + (int64_t)last_msg.msg.imu_comp.gyr_comp_y); + + ck_assert_msg(last_msg.msg.imu_comp.gyr_comp_z == -18, + "incorrect value for last_msg.msg.imu_comp.gyr_comp_z, " + "expected -18, is %" PRId64, + (int64_t)last_msg.msg.imu_comp.gyr_comp_z); + + ck_assert_msg(last_msg.msg.imu_comp.time == 3221225754, + "incorrect value for last_msg.msg.imu_comp.time, expected " + "3221225754, is %" PRId64, + (int64_t)last_msg.msg.imu_comp.time); + } +} +END_TEST + +Suite *auto_check_sbp_imu_MsgImuComp_suite(void) { + Suite *s = + suite_create("SBP generated test suite: auto_check_sbp_imu_MsgImuComp"); + TCase *tc_acq = tcase_create("Automated_Suite_auto_check_sbp_imu_MsgImuComp"); + tcase_add_test(tc_acq, test_auto_check_sbp_imu_MsgImuComp); + suite_add_tcase(s, tc_acq); + return s; +} diff --git a/c/test/auto_check_sbp_imu_MsgImuRaw.c b/c/test/auto_check_sbp_imu_MsgImuRaw.c index dc61b39393..ae8ac0347d 100644 --- a/c/test/auto_check_sbp_imu_MsgImuRaw.c +++ b/c/test/auto_check_sbp_imu_MsgImuRaw.c @@ -191,4 +191,4 @@ Suite *auto_check_sbp_imu_MsgImuRaw_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_imu_MsgImuRaw); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_integrity_MsgAcknowledge.c b/c/test/auto_check_sbp_integrity_MsgAcknowledge.c index f6ddd52305..7049ca267e 100644 --- a/c/test/auto_check_sbp_integrity_MsgAcknowledge.c +++ b/c/test/auto_check_sbp_integrity_MsgAcknowledge.c @@ -181,4 +181,4 @@ Suite *auto_check_sbp_integrity_MsgAcknowledge_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_integrity_MsgAcknowledge); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevel.c b/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevel.c index 6365b09502..68ec2a2e64 100644 --- a/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevel.c +++ b/c/test/auto_check_sbp_integrity_MsgSsrFlagHighLevel.c @@ -307,4 +307,4 @@ Suite *auto_check_sbp_integrity_MsgSsrFlagHighLevel_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_integrity_MsgSsrFlagHighLevel); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos.c b/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos.c index da3542d7ea..e122f14882 100644 --- a/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos.c +++ b/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos.c @@ -277,4 +277,4 @@ Suite *auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos_suite(void) { test_auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints.c b/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints.c index a56e354e1a..3f695b12ad 100644 --- a/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints.c +++ b/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints.c @@ -246,4 +246,4 @@ Suite *auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints_suite(void) { test_auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos.c b/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos.c index ea6e4cc8ea..40fed1a14e 100644 --- a/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos.c +++ b/c/test/auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos.c @@ -261,4 +261,4 @@ Suite *auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos_suite(void) { test_auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_integrity_MsgSsrFlagSatellites.c b/c/test/auto_check_sbp_integrity_MsgSsrFlagSatellites.c index 94561e7896..aca270e4a9 100644 --- a/c/test/auto_check_sbp_integrity_MsgSsrFlagSatellites.c +++ b/c/test/auto_check_sbp_integrity_MsgSsrFlagSatellites.c @@ -225,4 +225,4 @@ Suite *auto_check_sbp_integrity_MsgSsrFlagSatellites_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_integrity_MsgSsrFlagSatellites); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints.c b/c/test/auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints.c index 11a1c069f1..13c17e75b2 100644 --- a/c/test/auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints.c +++ b/c/test/auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints.c @@ -246,4 +246,4 @@ Suite *auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints_suite(void) { test_auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxCpuState.c b/c/test/auto_check_sbp_linux_MsgLinuxCpuState.c index 76ed040f4e..26c12cd3a8 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxCpuState.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxCpuState.c @@ -219,4 +219,4 @@ Suite *auto_check_sbp_linux_MsgLinuxCpuState_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxCpuState); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxCpuStateDepA.c b/c/test/auto_check_sbp_linux_MsgLinuxCpuStateDepA.c index e2bb33c4fe..cad16dfaa4 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxCpuStateDepA.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxCpuStateDepA.c @@ -208,4 +208,4 @@ Suite *auto_check_sbp_linux_MsgLinuxCpuStateDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxCpuStateDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxMemState.c b/c/test/auto_check_sbp_linux_MsgLinuxMemState.c index f10abf255d..f30d78b172 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxMemState.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxMemState.c @@ -219,4 +219,4 @@ Suite *auto_check_sbp_linux_MsgLinuxMemState_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxMemState); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxMemStateDepA.c b/c/test/auto_check_sbp_linux_MsgLinuxMemStateDepA.c index c38ea23fb2..ebff7d235a 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxMemStateDepA.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxMemStateDepA.c @@ -208,4 +208,4 @@ Suite *auto_check_sbp_linux_MsgLinuxMemStateDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxMemStateDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxProcessFdCount.c b/c/test/auto_check_sbp_linux_MsgLinuxProcessFdCount.c index 14fb1462d2..a3a3008841 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxProcessFdCount.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxProcessFdCount.c @@ -186,4 +186,4 @@ Suite *auto_check_sbp_linux_MsgLinuxProcessFdCount_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxProcessFdCount); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxProcessFdSummary.c b/c/test/auto_check_sbp_linux_MsgLinuxProcessFdSummary.c index 4139de153d..e22cdf6a0c 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxProcessFdSummary.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxProcessFdSummary.c @@ -205,4 +205,4 @@ Suite *auto_check_sbp_linux_MsgLinuxProcessFdSummary_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxProcessFdSummary); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxProcessSocketCounts.c b/c/test/auto_check_sbp_linux_MsgLinuxProcessSocketCounts.c index c9bb191fcf..6cbb8ce4c9 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxProcessSocketCounts.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxProcessSocketCounts.c @@ -206,4 +206,4 @@ Suite *auto_check_sbp_linux_MsgLinuxProcessSocketCounts_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxProcessSocketCounts); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxProcessSocketQueues.c b/c/test/auto_check_sbp_linux_MsgLinuxProcessSocketQueues.c index dae494ee60..8903e0c038 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxProcessSocketQueues.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxProcessSocketQueues.c @@ -260,4 +260,4 @@ Suite *auto_check_sbp_linux_MsgLinuxProcessSocketQueues_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxProcessSocketQueues); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxSocketUsage.c b/c/test/auto_check_sbp_linux_MsgLinuxSocketUsage.c index 02dace89a9..eea2e9f5db 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxSocketUsage.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxSocketUsage.c @@ -416,4 +416,4 @@ Suite *auto_check_sbp_linux_MsgLinuxSocketUsage_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxSocketUsage); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxSysState.c b/c/test/auto_check_sbp_linux_MsgLinuxSysState.c index e8c3a6240c..bc0bef4179 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxSysState.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxSysState.c @@ -196,4 +196,4 @@ Suite *auto_check_sbp_linux_MsgLinuxSysState_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxSysState); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_linux_MsgLinuxSysStateDepA.c b/c/test/auto_check_sbp_linux_MsgLinuxSysStateDepA.c index 5e7ec3f675..52fbe3ec11 100644 --- a/c/test/auto_check_sbp_linux_MsgLinuxSysStateDepA.c +++ b/c/test/auto_check_sbp_linux_MsgLinuxSysStateDepA.c @@ -186,4 +186,4 @@ Suite *auto_check_sbp_linux_MsgLinuxSysStateDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_linux_MsgLinuxSysStateDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_logging_MsgFwd.c b/c/test/auto_check_sbp_logging_MsgFwd.c index 7b6ea72214..569be6fff4 100644 --- a/c/test/auto_check_sbp_logging_MsgFwd.c +++ b/c/test/auto_check_sbp_logging_MsgFwd.c @@ -253,4 +253,4 @@ Suite *auto_check_sbp_logging_MsgFwd_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_logging_MsgFwd); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_logging_MsgLog.c b/c/test/auto_check_sbp_logging_MsgLog.c index eac997d430..fcab9b1294 100644 --- a/c/test/auto_check_sbp_logging_MsgLog.c +++ b/c/test/auto_check_sbp_logging_MsgLog.c @@ -162,4 +162,4 @@ Suite *auto_check_sbp_logging_MsgLog_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_logging_MsgLog); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_logging_MsgPrintDep.c b/c/test/auto_check_sbp_logging_MsgPrintDep.c index eff026cee1..a0c9e76383 100644 --- a/c/test/auto_check_sbp_logging_MsgPrintDep.c +++ b/c/test/auto_check_sbp_logging_MsgPrintDep.c @@ -497,4 +497,4 @@ Suite *auto_check_sbp_logging_MsgPrintDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_logging_MsgPrintDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_mag_MsgMagRaw.c b/c/test/auto_check_sbp_mag_MsgMagRaw.c index aa360c2c61..d748753132 100644 --- a/c/test/auto_check_sbp_mag_MsgMagRaw.c +++ b/c/test/auto_check_sbp_mag_MsgMagRaw.c @@ -170,4 +170,4 @@ Suite *auto_check_sbp_mag_MsgMagRaw_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_mag_MsgMagRaw); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgAgeCorrections.c b/c/test/auto_check_sbp_navigation_MsgAgeCorrections.c index 22f8e63edb..0b4d55faab 100644 --- a/c/test/auto_check_sbp_navigation_MsgAgeCorrections.c +++ b/c/test/auto_check_sbp_navigation_MsgAgeCorrections.c @@ -151,4 +151,4 @@ Suite *auto_check_sbp_navigation_MsgAgeCorrections_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgAgeCorrections); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgBaselineECEF.c b/c/test/auto_check_sbp_navigation_MsgBaselineECEF.c index 9155b1219c..e273211a70 100644 --- a/c/test/auto_check_sbp_navigation_MsgBaselineECEF.c +++ b/c/test/auto_check_sbp_navigation_MsgBaselineECEF.c @@ -579,4 +579,4 @@ Suite *auto_check_sbp_navigation_MsgBaselineECEF_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgBaselineECEF); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgBaselineECEFDepA.c b/c/test/auto_check_sbp_navigation_MsgBaselineECEFDepA.c index 5e4e765a1d..554870cf44 100644 --- a/c/test/auto_check_sbp_navigation_MsgBaselineECEFDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgBaselineECEFDepA.c @@ -1190,4 +1190,4 @@ Suite *auto_check_sbp_navigation_MsgBaselineECEFDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgBaselineECEFDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgBaselineHeadingDepA.c b/c/test/auto_check_sbp_navigation_MsgBaselineHeadingDepA.c index 281125c4fb..47181a7de2 100644 --- a/c/test/auto_check_sbp_navigation_MsgBaselineHeadingDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgBaselineHeadingDepA.c @@ -171,4 +171,4 @@ Suite *auto_check_sbp_navigation_MsgBaselineHeadingDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgBaselineHeadingDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgBaselineNED.c b/c/test/auto_check_sbp_navigation_MsgBaselineNED.c index dd608f35f8..20e3f4d816 100644 --- a/c/test/auto_check_sbp_navigation_MsgBaselineNED.c +++ b/c/test/auto_check_sbp_navigation_MsgBaselineNED.c @@ -614,4 +614,4 @@ Suite *auto_check_sbp_navigation_MsgBaselineNED_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgBaselineNED); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgBaselineNEDDepA.c b/c/test/auto_check_sbp_navigation_MsgBaselineNEDDepA.c index 4d07075437..1ded7c2040 100644 --- a/c/test/auto_check_sbp_navigation_MsgBaselineNEDDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgBaselineNEDDepA.c @@ -1266,4 +1266,4 @@ Suite *auto_check_sbp_navigation_MsgBaselineNEDDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgBaselineNEDDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgDops.c b/c/test/auto_check_sbp_navigation_MsgDops.c index d5f9665f6d..7848669709 100644 --- a/c/test/auto_check_sbp_navigation_MsgDops.c +++ b/c/test/auto_check_sbp_navigation_MsgDops.c @@ -185,4 +185,4 @@ Suite *auto_check_sbp_navigation_MsgDops_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgDops); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgDopsDepA.c b/c/test/auto_check_sbp_navigation_MsgDopsDepA.c index 718ab9580a..2cb3d0a43a 100644 --- a/c/test/auto_check_sbp_navigation_MsgDopsDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgDopsDepA.c @@ -902,4 +902,4 @@ Suite *auto_check_sbp_navigation_MsgDopsDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgDopsDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgGPSTime.c b/c/test/auto_check_sbp_navigation_MsgGPSTime.c index 2329317c6a..6088a4be02 100644 --- a/c/test/auto_check_sbp_navigation_MsgGPSTime.c +++ b/c/test/auto_check_sbp_navigation_MsgGPSTime.c @@ -464,4 +464,4 @@ Suite *auto_check_sbp_navigation_MsgGPSTime_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgGPSTime); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgGPSTimeDepA.c b/c/test/auto_check_sbp_navigation_MsgGPSTimeDepA.c index 5e889a0d83..8d694134f5 100644 --- a/c/test/auto_check_sbp_navigation_MsgGPSTimeDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgGPSTimeDepA.c @@ -941,4 +941,4 @@ Suite *auto_check_sbp_navigation_MsgGPSTimeDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgGPSTimeDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgGPSTimeGNSS.c b/c/test/auto_check_sbp_navigation_MsgGPSTimeGNSS.c index b16815515b..91658920ff 100644 --- a/c/test/auto_check_sbp_navigation_MsgGPSTimeGNSS.c +++ b/c/test/auto_check_sbp_navigation_MsgGPSTimeGNSS.c @@ -474,4 +474,4 @@ Suite *auto_check_sbp_navigation_MsgGPSTimeGNSS_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgGPSTimeGNSS); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosECEF.c b/c/test/auto_check_sbp_navigation_MsgPosECEF.c index fa964dfe5b..391d6a74e0 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosECEF.c +++ b/c/test/auto_check_sbp_navigation_MsgPosECEF.c @@ -477,4 +477,4 @@ Suite *auto_check_sbp_navigation_MsgPosECEF_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosECEF); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosECEFCov.c b/c/test/auto_check_sbp_navigation_MsgPosECEFCov.c index 5b01d41a46..16e7860252 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosECEFCov.c +++ b/c/test/auto_check_sbp_navigation_MsgPosECEFCov.c @@ -223,4 +223,4 @@ Suite *auto_check_sbp_navigation_MsgPosECEFCov_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosECEFCov); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosECEFCovGNSS.c b/c/test/auto_check_sbp_navigation_MsgPosECEFCovGNSS.c index e728da3ca7..4e63619bb7 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosECEFCovGNSS.c +++ b/c/test/auto_check_sbp_navigation_MsgPosECEFCovGNSS.c @@ -234,4 +234,4 @@ Suite *auto_check_sbp_navigation_MsgPosECEFCovGNSS_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosECEFCovGNSS); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosECEFDepA.c b/c/test/auto_check_sbp_navigation_MsgPosECEFDepA.c index e77d759b27..71a2d43f37 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosECEFDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgPosECEFDepA.c @@ -1211,4 +1211,4 @@ Suite *auto_check_sbp_navigation_MsgPosECEFDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosECEFDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosECEFGNSS.c b/c/test/auto_check_sbp_navigation_MsgPosECEFGNSS.c index a5a5939e0e..bdd136b917 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosECEFGNSS.c +++ b/c/test/auto_check_sbp_navigation_MsgPosECEFGNSS.c @@ -191,4 +191,4 @@ Suite *auto_check_sbp_navigation_MsgPosECEFGNSS_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosECEFGNSS); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosLLH.c b/c/test/auto_check_sbp_navigation_MsgPosLLH.c index 81a673a48c..2bf246f279 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosLLH.c +++ b/c/test/auto_check_sbp_navigation_MsgPosLLH.c @@ -619,4 +619,4 @@ Suite *auto_check_sbp_navigation_MsgPosLLH_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosLLH); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosLLHCov.c b/c/test/auto_check_sbp_navigation_MsgPosLLHCov.c index c3b6a56d99..af6519aef3 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosLLHCov.c +++ b/c/test/auto_check_sbp_navigation_MsgPosLLHCov.c @@ -223,4 +223,4 @@ Suite *auto_check_sbp_navigation_MsgPosLLHCov_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosLLHCov); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosLLHDepA.c b/c/test/auto_check_sbp_navigation_MsgPosLLHDepA.c index 5a3af35d14..a5175d5819 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosLLHDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgPosLLHDepA.c @@ -1288,4 +1288,4 @@ Suite *auto_check_sbp_navigation_MsgPosLLHDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosLLHDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosLlhAcc.c b/c/test/auto_check_sbp_navigation_MsgPosLlhAcc.c index c293703658..6f1cdf9ae2 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosLlhAcc.c +++ b/c/test/auto_check_sbp_navigation_MsgPosLlhAcc.c @@ -260,4 +260,4 @@ Suite *auto_check_sbp_navigation_MsgPosLlhAcc_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosLlhAcc); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosLlhCovGnss.c b/c/test/auto_check_sbp_navigation_MsgPosLlhCovGnss.c index 6f42329d0c..e4d56af8ab 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosLlhCovGnss.c +++ b/c/test/auto_check_sbp_navigation_MsgPosLlhCovGnss.c @@ -234,4 +234,4 @@ Suite *auto_check_sbp_navigation_MsgPosLlhCovGnss_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosLlhCovGnss); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPosLlhGnss.c b/c/test/auto_check_sbp_navigation_MsgPosLlhGnss.c index a94dadd6f4..89f9daf45c 100644 --- a/c/test/auto_check_sbp_navigation_MsgPosLlhGnss.c +++ b/c/test/auto_check_sbp_navigation_MsgPosLlhGnss.c @@ -198,4 +198,4 @@ Suite *auto_check_sbp_navigation_MsgPosLlhGnss_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPosLlhGnss); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgPoseRelative.c b/c/test/auto_check_sbp_navigation_MsgPoseRelative.c index c2e55a8777..ba189705f8 100644 --- a/c/test/auto_check_sbp_navigation_MsgPoseRelative.c +++ b/c/test/auto_check_sbp_navigation_MsgPoseRelative.c @@ -321,4 +321,4 @@ Suite *auto_check_sbp_navigation_MsgPoseRelative_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgPoseRelative); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgProtectionLevel.c b/c/test/auto_check_sbp_navigation_MsgProtectionLevel.c index ee361f2d10..b0804e518f 100644 --- a/c/test/auto_check_sbp_navigation_MsgProtectionLevel.c +++ b/c/test/auto_check_sbp_navigation_MsgProtectionLevel.c @@ -292,4 +292,4 @@ Suite *auto_check_sbp_navigation_MsgProtectionLevel_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgProtectionLevel); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgProtectionLevelDepA.c b/c/test/auto_check_sbp_navigation_MsgProtectionLevelDepA.c index 788a463d1c..849a582c34 100644 --- a/c/test/auto_check_sbp_navigation_MsgProtectionLevelDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgProtectionLevelDepA.c @@ -197,4 +197,4 @@ Suite *auto_check_sbp_navigation_MsgProtectionLevelDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgProtectionLevelDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgReferenceFrameParam.c b/c/test/auto_check_sbp_navigation_MsgReferenceFrameParam.c index f03daf8e5a..ca8f8982cf 100644 --- a/c/test/auto_check_sbp_navigation_MsgReferenceFrameParam.c +++ b/c/test/auto_check_sbp_navigation_MsgReferenceFrameParam.c @@ -339,4 +339,4 @@ Suite *auto_check_sbp_navigation_MsgReferenceFrameParam_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgReferenceFrameParam); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgUTCLeapSecond.c b/c/test/auto_check_sbp_navigation_MsgUTCLeapSecond.c index 7dcb457946..83dddf05a7 100644 --- a/c/test/auto_check_sbp_navigation_MsgUTCLeapSecond.c +++ b/c/test/auto_check_sbp_navigation_MsgUTCLeapSecond.c @@ -207,4 +207,4 @@ Suite *auto_check_sbp_navigation_MsgUTCLeapSecond_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgUTCLeapSecond); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgUTCTime.c b/c/test/auto_check_sbp_navigation_MsgUTCTime.c index a2f651f90a..5a27b5545b 100644 --- a/c/test/auto_check_sbp_navigation_MsgUTCTime.c +++ b/c/test/auto_check_sbp_navigation_MsgUTCTime.c @@ -199,4 +199,4 @@ Suite *auto_check_sbp_navigation_MsgUTCTime_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgUTCTime); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgUTCTimeGNSS.c b/c/test/auto_check_sbp_navigation_MsgUTCTimeGNSS.c index 442d35a02a..9115a1787c 100644 --- a/c/test/auto_check_sbp_navigation_MsgUTCTimeGNSS.c +++ b/c/test/auto_check_sbp_navigation_MsgUTCTimeGNSS.c @@ -201,4 +201,4 @@ Suite *auto_check_sbp_navigation_MsgUTCTimeGNSS_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgUTCTimeGNSS); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelBody.c b/c/test/auto_check_sbp_navigation_MsgVelBody.c index 30de0becd0..8ab79f301f 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelBody.c +++ b/c/test/auto_check_sbp_navigation_MsgVelBody.c @@ -221,4 +221,4 @@ Suite *auto_check_sbp_navigation_MsgVelBody_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelBody); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelCog.c b/c/test/auto_check_sbp_navigation_MsgVelCog.c index f27e31cfa4..62237e781a 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelCog.c +++ b/c/test/auto_check_sbp_navigation_MsgVelCog.c @@ -400,4 +400,4 @@ Suite *auto_check_sbp_navigation_MsgVelCog_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelCog); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelECEF.c b/c/test/auto_check_sbp_navigation_MsgVelECEF.c index bd9e8d7891..1cce9f1244 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelECEF.c +++ b/c/test/auto_check_sbp_navigation_MsgVelECEF.c @@ -569,4 +569,4 @@ Suite *auto_check_sbp_navigation_MsgVelECEF_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelECEF); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelECEFCov.c b/c/test/auto_check_sbp_navigation_MsgVelECEFCov.c index b8f3b98341..3e4b5ae773 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelECEFCov.c +++ b/c/test/auto_check_sbp_navigation_MsgVelECEFCov.c @@ -222,4 +222,4 @@ Suite *auto_check_sbp_navigation_MsgVelECEFCov_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelECEFCov); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelECEFDepA.c b/c/test/auto_check_sbp_navigation_MsgVelECEFDepA.c index 0a162ea6b3..10ed2941c3 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelECEFDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgVelECEFDepA.c @@ -1167,4 +1167,4 @@ Suite *auto_check_sbp_navigation_MsgVelECEFDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelECEFDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelEcefCovGnss.c b/c/test/auto_check_sbp_navigation_MsgVelEcefCovGnss.c index 29a17eb501..c482e878b9 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelEcefCovGnss.c +++ b/c/test/auto_check_sbp_navigation_MsgVelEcefCovGnss.c @@ -230,4 +230,4 @@ Suite *auto_check_sbp_navigation_MsgVelEcefCovGnss_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelEcefCovGnss); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelEcefGnss.c b/c/test/auto_check_sbp_navigation_MsgVelEcefGnss.c index e908afa7b2..7b34ecdc47 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelEcefGnss.c +++ b/c/test/auto_check_sbp_navigation_MsgVelEcefGnss.c @@ -187,4 +187,4 @@ Suite *auto_check_sbp_navigation_MsgVelEcefGnss_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelEcefGnss); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelNED.c b/c/test/auto_check_sbp_navigation_MsgVelNED.c index acf884bee3..942d8edbe3 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelNED.c +++ b/c/test/auto_check_sbp_navigation_MsgVelNED.c @@ -605,4 +605,4 @@ Suite *auto_check_sbp_navigation_MsgVelNED_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelNED); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelNEDCOV.c b/c/test/auto_check_sbp_navigation_MsgVelNEDCOV.c index cbadd4b13f..b3a44f128f 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelNEDCOV.c +++ b/c/test/auto_check_sbp_navigation_MsgVelNEDCOV.c @@ -222,4 +222,4 @@ Suite *auto_check_sbp_navigation_MsgVelNEDCOV_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelNEDCOV); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelNEDDepA.c b/c/test/auto_check_sbp_navigation_MsgVelNEDDepA.c index ce54fdffee..a1a6413e50 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelNEDDepA.c +++ b/c/test/auto_check_sbp_navigation_MsgVelNEDDepA.c @@ -1244,4 +1244,4 @@ Suite *auto_check_sbp_navigation_MsgVelNEDDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelNEDDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelNedCovGnss.c b/c/test/auto_check_sbp_navigation_MsgVelNedCovGnss.c index 2277c4a66f..23ec39d805 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelNedCovGnss.c +++ b/c/test/auto_check_sbp_navigation_MsgVelNedCovGnss.c @@ -230,4 +230,4 @@ Suite *auto_check_sbp_navigation_MsgVelNedCovGnss_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelNedCovGnss); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_navigation_MsgVelNedGnss.c b/c/test/auto_check_sbp_navigation_MsgVelNedGnss.c index 61ac95f722..2fa769d95b 100644 --- a/c/test/auto_check_sbp_navigation_MsgVelNedGnss.c +++ b/c/test/auto_check_sbp_navigation_MsgVelNedGnss.c @@ -194,4 +194,4 @@ Suite *auto_check_sbp_navigation_MsgVelNedGnss_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgVelNedGnss); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ndb_MsgNdbEvent.c b/c/test/auto_check_sbp_ndb_MsgNdbEvent.c index 9fa127d848..46147f7041 100644 --- a/c/test/auto_check_sbp_ndb_MsgNdbEvent.c +++ b/c/test/auto_check_sbp_ndb_MsgNdbEvent.c @@ -208,4 +208,4 @@ Suite *auto_check_sbp_ndb_MsgNdbEvent_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ndb_MsgNdbEvent); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgAlmanacGLO.c b/c/test/auto_check_sbp_observation_MsgAlmanacGLO.c index 3f56d870f0..9b036b8754 100644 --- a/c/test/auto_check_sbp_observation_MsgAlmanacGLO.c +++ b/c/test/auto_check_sbp_observation_MsgAlmanacGLO.c @@ -261,4 +261,4 @@ Suite *auto_check_sbp_observation_MsgAlmanacGLO_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgAlmanacGLO); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgAlmanacGLODep.c b/c/test/auto_check_sbp_observation_MsgAlmanacGLODep.c index 523a04c230..8ecc155267 100644 --- a/c/test/auto_check_sbp_observation_MsgAlmanacGLODep.c +++ b/c/test/auto_check_sbp_observation_MsgAlmanacGLODep.c @@ -272,4 +272,4 @@ Suite *auto_check_sbp_observation_MsgAlmanacGLODep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgAlmanacGLODep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgAlmanacGPS.c b/c/test/auto_check_sbp_observation_MsgAlmanacGPS.c index ebf0f485e2..d205e79ffa 100644 --- a/c/test/auto_check_sbp_observation_MsgAlmanacGPS.c +++ b/c/test/auto_check_sbp_observation_MsgAlmanacGPS.c @@ -278,4 +278,4 @@ Suite *auto_check_sbp_observation_MsgAlmanacGPS_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgAlmanacGPS); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgAlmanacGPSDep.c b/c/test/auto_check_sbp_observation_MsgAlmanacGPSDep.c index 2ff4324858..eb07be97e0 100644 --- a/c/test/auto_check_sbp_observation_MsgAlmanacGPSDep.c +++ b/c/test/auto_check_sbp_observation_MsgAlmanacGPSDep.c @@ -288,4 +288,4 @@ Suite *auto_check_sbp_observation_MsgAlmanacGPSDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgAlmanacGPSDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgBasePosEcef.c b/c/test/auto_check_sbp_observation_MsgBasePosEcef.c index e73e38715b..a49b9f6220 100644 --- a/c/test/auto_check_sbp_observation_MsgBasePosEcef.c +++ b/c/test/auto_check_sbp_observation_MsgBasePosEcef.c @@ -162,4 +162,4 @@ Suite *auto_check_sbp_observation_MsgBasePosEcef_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgBasePosEcef); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgBasePosLLH.c b/c/test/auto_check_sbp_observation_MsgBasePosLLH.c index d0e4f45600..5e3504a726 100644 --- a/c/test/auto_check_sbp_observation_MsgBasePosLLH.c +++ b/c/test/auto_check_sbp_observation_MsgBasePosLLH.c @@ -162,4 +162,4 @@ Suite *auto_check_sbp_observation_MsgBasePosLLH_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgBasePosLLH); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisBds.c b/c/test/auto_check_sbp_observation_MsgEphemerisBds.c index 51bd589816..366e3c8a1e 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisBds.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisBds.c @@ -400,4 +400,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisBds_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisBds); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisDepA.c b/c/test/auto_check_sbp_observation_MsgEphemerisDepA.c index 20a97a410d..3027eff23b 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisDepA.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisDepA.c @@ -352,4 +352,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisDepC.c b/c/test/auto_check_sbp_observation_MsgEphemerisDepC.c index bb406e768e..45309f390e 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisDepC.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisDepC.c @@ -388,4 +388,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisDepC_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisDepC); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisDepD.c b/c/test/auto_check_sbp_observation_MsgEphemerisDepD.c index def7a13392..db0551a9f1 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisDepD.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisDepD.c @@ -388,4 +388,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisDepD_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisDepD); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGLO.c b/c/test/auto_check_sbp_observation_MsgEphemerisGLO.c index 1ace9b7f07..fdb621e28e 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGLO.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGLO.c @@ -312,4 +312,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGLO_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGLO); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGLODepA.c b/c/test/auto_check_sbp_observation_MsgEphemerisGLODepA.c index 7865aa30e4..0c9499994d 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGLODepA.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGLODepA.c @@ -311,4 +311,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGLODepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGLODepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGLODepB.c b/c/test/auto_check_sbp_observation_MsgEphemerisGLODepB.c index fced464c63..37b5b0e2cb 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGLODepB.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGLODepB.c @@ -302,4 +302,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGLODepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGLODepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGLODepC.c b/c/test/auto_check_sbp_observation_MsgEphemerisGLODepC.c index 733b686cf1..fb713a52f4 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGLODepC.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGLODepC.c @@ -318,4 +318,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGLODepC_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGLODepC); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGLODepD.c b/c/test/auto_check_sbp_observation_MsgEphemerisGLODepD.c index a4fa310782..cba82444aa 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGLODepD.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGLODepD.c @@ -325,4 +325,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGLODepD_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGLODepD); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGPS.c b/c/test/auto_check_sbp_observation_MsgEphemerisGPS.c index ebdcd9c79d..dbd8948cc6 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGPS.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGPS.c @@ -390,4 +390,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGPS_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGPS); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGPSDepE.c b/c/test/auto_check_sbp_observation_MsgEphemerisGPSDepE.c index 03ba768f79..d09f7969dd 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGPSDepE.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGPSDepE.c @@ -410,4 +410,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGPSDepE_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGPSDepE); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGPSDepF.c b/c/test/auto_check_sbp_observation_MsgEphemerisGPSDepF.c index c7af5c7320..7d2e509182 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGPSDepF.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGPSDepF.c @@ -401,4 +401,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGPSDepF_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGPSDepF); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGal.c b/c/test/auto_check_sbp_observation_MsgEphemerisGal.c index d3b2016e30..9b6e027ee6 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGal.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGal.c @@ -405,4 +405,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGal_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGal); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisGalDepA.c b/c/test/auto_check_sbp_observation_MsgEphemerisGalDepA.c index c0ee10606d..4fd565773c 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisGalDepA.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisGalDepA.c @@ -410,4 +410,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisGalDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisGalDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisSbas.c b/c/test/auto_check_sbp_observation_MsgEphemerisSbas.c index fc25e8cc90..2a4f5da921 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisSbas.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisSbas.c @@ -288,4 +288,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisSbas_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisSbas); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisSbasDepA.c b/c/test/auto_check_sbp_observation_MsgEphemerisSbasDepA.c index 72a4bb1349..cf5b03f2ff 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisSbasDepA.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisSbasDepA.c @@ -314,4 +314,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisSbasDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisSbasDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgEphemerisSbasDepB.c b/c/test/auto_check_sbp_observation_MsgEphemerisSbasDepB.c index 9a420c01f4..9033fdaa49 100644 --- a/c/test/auto_check_sbp_observation_MsgEphemerisSbasDepB.c +++ b/c/test/auto_check_sbp_observation_MsgEphemerisSbasDepB.c @@ -305,4 +305,4 @@ Suite *auto_check_sbp_observation_MsgEphemerisSbasDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgEphemerisSbasDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgGloBiases.c b/c/test/auto_check_sbp_observation_MsgGloBiases.c index 82475be485..20b38d480b 100644 --- a/c/test/auto_check_sbp_observation_MsgGloBiases.c +++ b/c/test/auto_check_sbp_observation_MsgGloBiases.c @@ -171,4 +171,4 @@ Suite *auto_check_sbp_observation_MsgGloBiases_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgGloBiases); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgGnssCapb.c b/c/test/auto_check_sbp_observation_MsgGnssCapb.c index a89fcb33e2..a59a15af3b 100644 --- a/c/test/auto_check_sbp_observation_MsgGnssCapb.c +++ b/c/test/auto_check_sbp_observation_MsgGnssCapb.c @@ -262,4 +262,4 @@ Suite *auto_check_sbp_observation_MsgGnssCapb_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgGnssCapb); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgGroupDelay.c b/c/test/auto_check_sbp_observation_MsgGroupDelay.c index 223f9d50a4..57332d3c90 100644 --- a/c/test/auto_check_sbp_observation_MsgGroupDelay.c +++ b/c/test/auto_check_sbp_observation_MsgGroupDelay.c @@ -194,4 +194,4 @@ Suite *auto_check_sbp_observation_MsgGroupDelay_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgGroupDelay); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgGroupDelayDepA.c b/c/test/auto_check_sbp_observation_MsgGroupDelayDepA.c index ed8088d833..aec1ab66b1 100644 --- a/c/test/auto_check_sbp_observation_MsgGroupDelayDepA.c +++ b/c/test/auto_check_sbp_observation_MsgGroupDelayDepA.c @@ -189,4 +189,4 @@ Suite *auto_check_sbp_observation_MsgGroupDelayDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgGroupDelayDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgGroupDelayDepB.c b/c/test/auto_check_sbp_observation_MsgGroupDelayDepB.c index 434008f273..f96d9d1cf6 100644 --- a/c/test/auto_check_sbp_observation_MsgGroupDelayDepB.c +++ b/c/test/auto_check_sbp_observation_MsgGroupDelayDepB.c @@ -205,4 +205,4 @@ Suite *auto_check_sbp_observation_MsgGroupDelayDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgGroupDelayDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgIono.c b/c/test/auto_check_sbp_observation_MsgIono.c index 8a9cc49a54..76854c02e2 100644 --- a/c/test/auto_check_sbp_observation_MsgIono.c +++ b/c/test/auto_check_sbp_observation_MsgIono.c @@ -211,4 +211,4 @@ Suite *auto_check_sbp_observation_MsgIono_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgIono); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgObs.c b/c/test/auto_check_sbp_observation_MsgObs.c index df8b7fefe1..7601e6735e 100644 --- a/c/test/auto_check_sbp_observation_MsgObs.c +++ b/c/test/auto_check_sbp_observation_MsgObs.c @@ -1243,4 +1243,4 @@ Suite *auto_check_sbp_observation_MsgObs_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgObs); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgObsDepB.c b/c/test/auto_check_sbp_observation_MsgObsDepB.c index a7e13c7fd0..babc6a10b0 100644 --- a/c/test/auto_check_sbp_observation_MsgObsDepB.c +++ b/c/test/auto_check_sbp_observation_MsgObsDepB.c @@ -1855,4 +1855,4 @@ Suite *auto_check_sbp_observation_MsgObsDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgObsDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgObsDepC.c b/c/test/auto_check_sbp_observation_MsgObsDepC.c index 2833854c0f..c7268fac35 100644 --- a/c/test/auto_check_sbp_observation_MsgObsDepC.c +++ b/c/test/auto_check_sbp_observation_MsgObsDepC.c @@ -1680,4 +1680,4 @@ Suite *auto_check_sbp_observation_MsgObsDepC_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgObsDepC); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgOsr.c b/c/test/auto_check_sbp_observation_MsgOsr.c index 0953e3c85b..d6dba2202e 100644 --- a/c/test/auto_check_sbp_observation_MsgOsr.c +++ b/c/test/auto_check_sbp_observation_MsgOsr.c @@ -1027,4 +1027,4 @@ Suite *auto_check_sbp_observation_MsgOsr_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgOsr); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgSvAzEl.c b/c/test/auto_check_sbp_observation_MsgSvAzEl.c index 1df7b172a5..59f83a50b7 100644 --- a/c/test/auto_check_sbp_observation_MsgSvAzEl.c +++ b/c/test/auto_check_sbp_observation_MsgSvAzEl.c @@ -1097,4 +1097,4 @@ Suite *auto_check_sbp_observation_MsgSvAzEl_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_MsgSvAzEl); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_MsgSvConfigurationGpsDep.c b/c/test/auto_check_sbp_observation_MsgSvConfigurationGpsDep.c index 8e63de9dc2..39f441f32c 100644 --- a/c/test/auto_check_sbp_observation_MsgSvConfigurationGpsDep.c +++ b/c/test/auto_check_sbp_observation_MsgSvConfigurationGpsDep.c @@ -163,4 +163,4 @@ Suite *auto_check_sbp_observation_MsgSvConfigurationGpsDep_suite(void) { test_auto_check_sbp_observation_MsgSvConfigurationGpsDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_msgEphemerisDepB.c b/c/test/auto_check_sbp_observation_msgEphemerisDepB.c index 559426105c..113692e498 100644 --- a/c/test/auto_check_sbp_observation_msgEphemerisDepB.c +++ b/c/test/auto_check_sbp_observation_msgEphemerisDepB.c @@ -1709,4 +1709,4 @@ Suite *auto_check_sbp_observation_msgEphemerisDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_msgEphemerisDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_msgEphemerisQzss.c b/c/test/auto_check_sbp_observation_msgEphemerisQzss.c index 6aa131de8a..61a2b9d2eb 100644 --- a/c/test/auto_check_sbp_observation_msgEphemerisQzss.c +++ b/c/test/auto_check_sbp_observation_msgEphemerisQzss.c @@ -390,4 +390,4 @@ Suite *auto_check_sbp_observation_msgEphemerisQzss_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_msgEphemerisQzss); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_observation_msgObsDepA.c b/c/test/auto_check_sbp_observation_msgObsDepA.c index c5efc0ce34..f72fd4d7b4 100644 --- a/c/test/auto_check_sbp_observation_msgObsDepA.c +++ b/c/test/auto_check_sbp_observation_msgObsDepA.c @@ -1651,4 +1651,4 @@ Suite *auto_check_sbp_observation_msgObsDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_observation_msgObsDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_orientation_MsgAngularRate.c b/c/test/auto_check_sbp_orientation_MsgAngularRate.c index 40a2d76764..eb5cbaced0 100644 --- a/c/test/auto_check_sbp_orientation_MsgAngularRate.c +++ b/c/test/auto_check_sbp_orientation_MsgAngularRate.c @@ -173,4 +173,4 @@ Suite *auto_check_sbp_orientation_MsgAngularRate_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_orientation_MsgAngularRate); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_orientation_MsgBaselineHeading.c b/c/test/auto_check_sbp_orientation_MsgBaselineHeading.c index 3a88032222..c62f31507e 100644 --- a/c/test/auto_check_sbp_orientation_MsgBaselineHeading.c +++ b/c/test/auto_check_sbp_orientation_MsgBaselineHeading.c @@ -167,4 +167,4 @@ Suite *auto_check_sbp_orientation_MsgBaselineHeading_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_orientation_MsgBaselineHeading); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_orientation_MsgOrientEuler.c b/c/test/auto_check_sbp_orientation_MsgOrientEuler.c index da589f3fe0..ae017ed555 100644 --- a/c/test/auto_check_sbp_orientation_MsgOrientEuler.c +++ b/c/test/auto_check_sbp_orientation_MsgOrientEuler.c @@ -197,4 +197,4 @@ Suite *auto_check_sbp_orientation_MsgOrientEuler_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_orientation_MsgOrientEuler); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_orientation_MsgOrientQuat.c b/c/test/auto_check_sbp_orientation_MsgOrientQuat.c index 344b08ce1b..a354ba011e 100644 --- a/c/test/auto_check_sbp_orientation_MsgOrientQuat.c +++ b/c/test/auto_check_sbp_orientation_MsgOrientQuat.c @@ -212,4 +212,4 @@ Suite *auto_check_sbp_orientation_MsgOrientQuat_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_orientation_MsgOrientQuat); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgAlmanac.c b/c/test/auto_check_sbp_piksi_MsgAlmanac.c index 7cda293027..1d5c795402 100644 --- a/c/test/auto_check_sbp_piksi_MsgAlmanac.c +++ b/c/test/auto_check_sbp_piksi_MsgAlmanac.c @@ -135,4 +135,4 @@ Suite *auto_check_sbp_piksi_MsgAlmanac_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgAlmanac); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgCellModemStatus.c b/c/test/auto_check_sbp_piksi_MsgCellModemStatus.c index fe02094a97..c794834467 100644 --- a/c/test/auto_check_sbp_piksi_MsgCellModemStatus.c +++ b/c/test/auto_check_sbp_piksi_MsgCellModemStatus.c @@ -1931,4 +1931,4 @@ Suite *auto_check_sbp_piksi_MsgCellModemStatus_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgCellModemStatus); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgCommandOutput.c b/c/test/auto_check_sbp_piksi_MsgCommandOutput.c index 23c1da03ff..f0aae405ac 100644 --- a/c/test/auto_check_sbp_piksi_MsgCommandOutput.c +++ b/c/test/auto_check_sbp_piksi_MsgCommandOutput.c @@ -164,4 +164,4 @@ Suite *auto_check_sbp_piksi_MsgCommandOutput_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgCommandOutput); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgCommandReq.c b/c/test/auto_check_sbp_piksi_MsgCommandReq.c index 80f050445b..d579a115f2 100644 --- a/c/test/auto_check_sbp_piksi_MsgCommandReq.c +++ b/c/test/auto_check_sbp_piksi_MsgCommandReq.c @@ -165,4 +165,4 @@ Suite *auto_check_sbp_piksi_MsgCommandReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgCommandReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgCommandResp.c b/c/test/auto_check_sbp_piksi_MsgCommandResp.c index a0b74b9295..0a44a2d746 100644 --- a/c/test/auto_check_sbp_piksi_MsgCommandResp.c +++ b/c/test/auto_check_sbp_piksi_MsgCommandResp.c @@ -152,4 +152,4 @@ Suite *auto_check_sbp_piksi_MsgCommandResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgCommandResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgCwResults.c b/c/test/auto_check_sbp_piksi_MsgCwResults.c index 91ce625a34..09d9db85b9 100644 --- a/c/test/auto_check_sbp_piksi_MsgCwResults.c +++ b/c/test/auto_check_sbp_piksi_MsgCwResults.c @@ -137,4 +137,4 @@ Suite *auto_check_sbp_piksi_MsgCwResults_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgCwResults); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgCwStart.c b/c/test/auto_check_sbp_piksi_MsgCwStart.c index 9ab3babf1e..e0d652baf5 100644 --- a/c/test/auto_check_sbp_piksi_MsgCwStart.c +++ b/c/test/auto_check_sbp_piksi_MsgCwStart.c @@ -135,4 +135,4 @@ Suite *auto_check_sbp_piksi_MsgCwStart_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgCwStart); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgDeviceMonitor.c b/c/test/auto_check_sbp_piksi_MsgDeviceMonitor.c index 677b02b8ea..7eb13b2aef 100644 --- a/c/test/auto_check_sbp_piksi_MsgDeviceMonitor.c +++ b/c/test/auto_check_sbp_piksi_MsgDeviceMonitor.c @@ -519,4 +519,4 @@ Suite *auto_check_sbp_piksi_MsgDeviceMonitor_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgDeviceMonitor); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgFrontEndGain.c b/c/test/auto_check_sbp_piksi_MsgFrontEndGain.c index c7db3161d7..08dca2bab0 100644 --- a/c/test/auto_check_sbp_piksi_MsgFrontEndGain.c +++ b/c/test/auto_check_sbp_piksi_MsgFrontEndGain.c @@ -236,4 +236,4 @@ Suite *auto_check_sbp_piksi_MsgFrontEndGain_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgFrontEndGain); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgIarState.c b/c/test/auto_check_sbp_piksi_MsgIarState.c index 69b4062bf8..e4b577079d 100644 --- a/c/test/auto_check_sbp_piksi_MsgIarState.c +++ b/c/test/auto_check_sbp_piksi_MsgIarState.c @@ -468,4 +468,4 @@ Suite *auto_check_sbp_piksi_MsgIarState_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgIarState); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgInitBaseDep.c b/c/test/auto_check_sbp_piksi_MsgInitBaseDep.c index 0171bd8955..06625a4b49 100644 --- a/c/test/auto_check_sbp_piksi_MsgInitBaseDep.c +++ b/c/test/auto_check_sbp_piksi_MsgInitBaseDep.c @@ -137,4 +137,4 @@ Suite *auto_check_sbp_piksi_MsgInitBaseDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgInitBaseDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgMaskSatellite.c b/c/test/auto_check_sbp_piksi_MsgMaskSatellite.c index c0c5278430..5a97618aa9 100644 --- a/c/test/auto_check_sbp_piksi_MsgMaskSatellite.c +++ b/c/test/auto_check_sbp_piksi_MsgMaskSatellite.c @@ -158,4 +158,4 @@ Suite *auto_check_sbp_piksi_MsgMaskSatellite_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgMaskSatellite); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgMaskSatelliteDep.c b/c/test/auto_check_sbp_piksi_MsgMaskSatelliteDep.c index 640df3bd95..5ca1b7083f 100644 --- a/c/test/auto_check_sbp_piksi_MsgMaskSatelliteDep.c +++ b/c/test/auto_check_sbp_piksi_MsgMaskSatelliteDep.c @@ -168,4 +168,4 @@ Suite *auto_check_sbp_piksi_MsgMaskSatelliteDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgMaskSatelliteDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgNetworkBandwidthUsage.c b/c/test/auto_check_sbp_piksi_MsgNetworkBandwidthUsage.c index f00016cdc3..3532cf6c18 100644 --- a/c/test/auto_check_sbp_piksi_MsgNetworkBandwidthUsage.c +++ b/c/test/auto_check_sbp_piksi_MsgNetworkBandwidthUsage.c @@ -478,4 +478,4 @@ Suite *auto_check_sbp_piksi_MsgNetworkBandwidthUsage_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgNetworkBandwidthUsage); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgNetworkStateReq.c b/c/test/auto_check_sbp_piksi_MsgNetworkStateReq.c index 276e0e4b92..7989a833fb 100644 --- a/c/test/auto_check_sbp_piksi_MsgNetworkStateReq.c +++ b/c/test/auto_check_sbp_piksi_MsgNetworkStateReq.c @@ -137,4 +137,4 @@ Suite *auto_check_sbp_piksi_MsgNetworkStateReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgNetworkStateReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgNetworkStateResp.c b/c/test/auto_check_sbp_piksi_MsgNetworkStateResp.c index 9383b17cc3..8af5d066bb 100644 --- a/c/test/auto_check_sbp_piksi_MsgNetworkStateResp.c +++ b/c/test/auto_check_sbp_piksi_MsgNetworkStateResp.c @@ -344,4 +344,4 @@ Suite *auto_check_sbp_piksi_MsgNetworkStateResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgNetworkStateResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgReset.c b/c/test/auto_check_sbp_piksi_MsgReset.c index 4c0fa76636..81fab18a33 100644 --- a/c/test/auto_check_sbp_piksi_MsgReset.c +++ b/c/test/auto_check_sbp_piksi_MsgReset.c @@ -141,4 +141,4 @@ Suite *auto_check_sbp_piksi_MsgReset_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgReset); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgResetDep.c b/c/test/auto_check_sbp_piksi_MsgResetDep.c index 917806f7cf..2808790912 100644 --- a/c/test/auto_check_sbp_piksi_MsgResetDep.c +++ b/c/test/auto_check_sbp_piksi_MsgResetDep.c @@ -136,4 +136,4 @@ Suite *auto_check_sbp_piksi_MsgResetDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgResetDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgResetFilters.c b/c/test/auto_check_sbp_piksi_MsgResetFilters.c index 3c9c47bfc5..ff5ce73bb1 100644 --- a/c/test/auto_check_sbp_piksi_MsgResetFilters.c +++ b/c/test/auto_check_sbp_piksi_MsgResetFilters.c @@ -144,4 +144,4 @@ Suite *auto_check_sbp_piksi_MsgResetFilters_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgResetFilters); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgSetTime.c b/c/test/auto_check_sbp_piksi_MsgSetTime.c index 6a1d89037b..20baf83f09 100644 --- a/c/test/auto_check_sbp_piksi_MsgSetTime.c +++ b/c/test/auto_check_sbp_piksi_MsgSetTime.c @@ -135,4 +135,4 @@ Suite *auto_check_sbp_piksi_MsgSetTime_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgSetTime); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgSpecan.c b/c/test/auto_check_sbp_piksi_MsgSpecan.c index e762d7f0ce..36e98f9be5 100644 --- a/c/test/auto_check_sbp_piksi_MsgSpecan.c +++ b/c/test/auto_check_sbp_piksi_MsgSpecan.c @@ -1800,4 +1800,4 @@ Suite *auto_check_sbp_piksi_MsgSpecan_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgSpecan); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgSpecanDep.c b/c/test/auto_check_sbp_piksi_MsgSpecanDep.c index 69b63f1e7b..c310719a58 100644 --- a/c/test/auto_check_sbp_piksi_MsgSpecanDep.c +++ b/c/test/auto_check_sbp_piksi_MsgSpecanDep.c @@ -1834,4 +1834,4 @@ Suite *auto_check_sbp_piksi_MsgSpecanDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgSpecanDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgThreadState.c b/c/test/auto_check_sbp_piksi_MsgThreadState.c index 73532c51c6..a7cdbd2796 100644 --- a/c/test/auto_check_sbp_piksi_MsgThreadState.c +++ b/c/test/auto_check_sbp_piksi_MsgThreadState.c @@ -1010,4 +1010,4 @@ Suite *auto_check_sbp_piksi_MsgThreadState_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgThreadState); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgUartState.c b/c/test/auto_check_sbp_piksi_MsgUartState.c index e12530cb4b..7b4779a347 100644 --- a/c/test/auto_check_sbp_piksi_MsgUartState.c +++ b/c/test/auto_check_sbp_piksi_MsgUartState.c @@ -828,4 +828,4 @@ Suite *auto_check_sbp_piksi_MsgUartState_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgUartState); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_piksi_MsgUartStateDepA.c b/c/test/auto_check_sbp_piksi_MsgUartStateDepA.c index 4f842db259..0e3259d6c2 100644 --- a/c/test/auto_check_sbp_piksi_MsgUartStateDepA.c +++ b/c/test/auto_check_sbp_piksi_MsgUartStateDepA.c @@ -1517,4 +1517,4 @@ Suite *auto_check_sbp_piksi_MsgUartStateDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_piksi_MsgUartStateDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_profiling_MsgMeasurementPoint.c b/c/test/auto_check_sbp_profiling_MsgMeasurementPoint.c index 88d96747a6..67c2afc0e8 100644 --- a/c/test/auto_check_sbp_profiling_MsgMeasurementPoint.c +++ b/c/test/auto_check_sbp_profiling_MsgMeasurementPoint.c @@ -217,4 +217,4 @@ Suite *auto_check_sbp_profiling_MsgMeasurementPoint_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_profiling_MsgMeasurementPoint); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_profiling_MsgProfilingResourceCounter.c b/c/test/auto_check_sbp_profiling_MsgProfilingResourceCounter.c index 1f627a9f7c..786f05253b 100644 --- a/c/test/auto_check_sbp_profiling_MsgProfilingResourceCounter.c +++ b/c/test/auto_check_sbp_profiling_MsgProfilingResourceCounter.c @@ -781,4 +781,4 @@ Suite *auto_check_sbp_profiling_MsgProfilingResourceCounter_suite(void) { test_auto_check_sbp_profiling_MsgProfilingResourceCounter); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_profiling_MsgProfilingSystemInfo.c b/c/test/auto_check_sbp_profiling_MsgProfilingSystemInfo.c index 5a4639d079..6f5ecea25a 100644 --- a/c/test/auto_check_sbp_profiling_MsgProfilingSystemInfo.c +++ b/c/test/auto_check_sbp_profiling_MsgProfilingSystemInfo.c @@ -170,4 +170,4 @@ Suite *auto_check_sbp_profiling_MsgProfilingSystemInfo_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_profiling_MsgProfilingSystemInfo); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_profiling_MsgProfilingThreadInfo.c b/c/test/auto_check_sbp_profiling_MsgProfilingThreadInfo.c index ae4f59c150..97992f8ffb 100644 --- a/c/test/auto_check_sbp_profiling_MsgProfilingThreadInfo.c +++ b/c/test/auto_check_sbp_profiling_MsgProfilingThreadInfo.c @@ -199,4 +199,4 @@ Suite *auto_check_sbp_profiling_MsgProfilingThreadInfo_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_profiling_MsgProfilingThreadInfo); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_sbas_MsgSbasRaw.c b/c/test/auto_check_sbp_sbas_MsgSbasRaw.c index c9187e6486..6be9bacedf 100644 --- a/c/test/auto_check_sbp_sbas_MsgSbasRaw.c +++ b/c/test/auto_check_sbp_sbas_MsgSbasRaw.c @@ -328,4 +328,4 @@ Suite *auto_check_sbp_sbas_MsgSbasRaw_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_sbas_MsgSbasRaw); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexDone.c b/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexDone.c index 3915ebebe1..5f5a48db1b 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexDone.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexDone.c @@ -139,4 +139,4 @@ Suite *auto_check_sbp_settings_MsgSettingsReadByIndexDone_suite(void) { test_auto_check_sbp_settings_MsgSettingsReadByIndexDone); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexReq.c b/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexReq.c index 63a712bcc8..df6259acdd 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexReq.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexReq.c @@ -147,4 +147,4 @@ Suite *auto_check_sbp_settings_MsgSettingsReadByIndexReq_suite(void) { test_auto_check_sbp_settings_MsgSettingsReadByIndexReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexResp.c b/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexResp.c index beccb32f0f..0ef871863d 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexResp.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsReadByIndexResp.c @@ -573,4 +573,4 @@ Suite *auto_check_sbp_settings_MsgSettingsReadByIndexResp_suite(void) { test_auto_check_sbp_settings_MsgSettingsReadByIndexResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsReadReq.c b/c/test/auto_check_sbp_settings_MsgSettingsReadReq.c index d3db6b0ee6..d1419d84b9 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsReadReq.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsReadReq.c @@ -161,4 +161,4 @@ Suite *auto_check_sbp_settings_MsgSettingsReadReq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_settings_MsgSettingsReadReq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsReadResp.c b/c/test/auto_check_sbp_settings_MsgSettingsReadResp.c index bef45cc5ac..41d179dfbf 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsReadResp.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsReadResp.c @@ -179,4 +179,4 @@ Suite *auto_check_sbp_settings_MsgSettingsReadResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_settings_MsgSettingsReadResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsRegister.c b/c/test/auto_check_sbp_settings_MsgSettingsRegister.c index f293382c29..e9a2950413 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsRegister.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsRegister.c @@ -179,4 +179,4 @@ Suite *auto_check_sbp_settings_MsgSettingsRegister_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_settings_MsgSettingsRegister); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsRegisterResp.c b/c/test/auto_check_sbp_settings_MsgSettingsRegisterResp.c index 83d36d54fd..866eeb6574 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsRegisterResp.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsRegisterResp.c @@ -189,4 +189,4 @@ Suite *auto_check_sbp_settings_MsgSettingsRegisterResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_settings_MsgSettingsRegisterResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsSave.c b/c/test/auto_check_sbp_settings_MsgSettingsSave.c index 57146c9ad5..8bf94ea962 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsSave.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsSave.c @@ -137,4 +137,4 @@ Suite *auto_check_sbp_settings_MsgSettingsSave_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_settings_MsgSettingsSave); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsWrite.c b/c/test/auto_check_sbp_settings_MsgSettingsWrite.c index 2c08152e47..72db86b131 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsWrite.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsWrite.c @@ -169,4 +169,4 @@ Suite *auto_check_sbp_settings_MsgSettingsWrite_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_settings_MsgSettingsWrite); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_settings_MsgSettingsWriteResp.c b/c/test/auto_check_sbp_settings_MsgSettingsWriteResp.c index 5604516f2b..b3de1ad47f 100644 --- a/c/test/auto_check_sbp_settings_MsgSettingsWriteResp.c +++ b/c/test/auto_check_sbp_settings_MsgSettingsWriteResp.c @@ -187,4 +187,4 @@ Suite *auto_check_sbp_settings_MsgSettingsWriteResp_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_settings_MsgSettingsWriteResp); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgAesCmacSignature.c b/c/test/auto_check_sbp_signing_MsgAesCmacSignature.c index 51d12917e9..f93f7f0ed6 100644 --- a/c/test/auto_check_sbp_signing_MsgAesCmacSignature.c +++ b/c/test/auto_check_sbp_signing_MsgAesCmacSignature.c @@ -333,4 +333,4 @@ Suite *auto_check_sbp_signing_MsgAesCmacSignature_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgAesCmacSignature); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgCertificateChain.c b/c/test/auto_check_sbp_signing_MsgCertificateChain.c index 417d3c61b1..5a1643e5db 100644 --- a/c/test/auto_check_sbp_signing_MsgCertificateChain.c +++ b/c/test/auto_check_sbp_signing_MsgCertificateChain.c @@ -1177,4 +1177,4 @@ Suite *auto_check_sbp_signing_MsgCertificateChain_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgCertificateChain); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgCertificateChainDep.c b/c/test/auto_check_sbp_signing_MsgCertificateChainDep.c index b0b1413854..4b1689e1a0 100644 --- a/c/test/auto_check_sbp_signing_MsgCertificateChainDep.c +++ b/c/test/auto_check_sbp_signing_MsgCertificateChainDep.c @@ -1166,4 +1166,4 @@ Suite *auto_check_sbp_signing_MsgCertificateChainDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgCertificateChainDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgEcdsaCertificate.c b/c/test/auto_check_sbp_signing_MsgEcdsaCertificate.c index c8a7811484..cdb3a38078 100644 --- a/c/test/auto_check_sbp_signing_MsgEcdsaCertificate.c +++ b/c/test/auto_check_sbp_signing_MsgEcdsaCertificate.c @@ -2173,4 +2173,4 @@ Suite *auto_check_sbp_signing_MsgEcdsaCertificate_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgEcdsaCertificate); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgEcdsaSignature.c b/c/test/auto_check_sbp_signing_MsgEcdsaSignature.c index 478d21d850..029bd352e2 100644 --- a/c/test/auto_check_sbp_signing_MsgEcdsaSignature.c +++ b/c/test/auto_check_sbp_signing_MsgEcdsaSignature.c @@ -737,4 +737,4 @@ Suite *auto_check_sbp_signing_MsgEcdsaSignature_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgEcdsaSignature); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgEcdsaSignatureDepA.c b/c/test/auto_check_sbp_signing_MsgEcdsaSignatureDepA.c index e450c1c370..ed49c57f7e 100644 --- a/c/test/auto_check_sbp_signing_MsgEcdsaSignatureDepA.c +++ b/c/test/auto_check_sbp_signing_MsgEcdsaSignatureDepA.c @@ -2144,4 +2144,4 @@ Suite *auto_check_sbp_signing_MsgEcdsaSignatureDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgEcdsaSignatureDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgEcdsaSignatureDepB.c b/c/test/auto_check_sbp_signing_MsgEcdsaSignatureDepB.c index b298ec230b..71f4a5163c 100644 --- a/c/test/auto_check_sbp_signing_MsgEcdsaSignatureDepB.c +++ b/c/test/auto_check_sbp_signing_MsgEcdsaSignatureDepB.c @@ -748,4 +748,4 @@ Suite *auto_check_sbp_signing_MsgEcdsaSignatureDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgEcdsaSignatureDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgEd25519CertificateDep.c b/c/test/auto_check_sbp_signing_MsgEd25519CertificateDep.c index 2f54c45ab5..30fa21255c 100644 --- a/c/test/auto_check_sbp_signing_MsgEd25519CertificateDep.c +++ b/c/test/auto_check_sbp_signing_MsgEd25519CertificateDep.c @@ -995,4 +995,4 @@ Suite *auto_check_sbp_signing_MsgEd25519CertificateDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgEd25519CertificateDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgEd25519SignatureDepA.c b/c/test/auto_check_sbp_signing_MsgEd25519SignatureDepA.c index 4a69b9f4ca..cd68b33af5 100644 --- a/c/test/auto_check_sbp_signing_MsgEd25519SignatureDepA.c +++ b/c/test/auto_check_sbp_signing_MsgEd25519SignatureDepA.c @@ -961,4 +961,4 @@ Suite *auto_check_sbp_signing_MsgEd25519SignatureDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgEd25519SignatureDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_signing_MsgEd25519SignatureDepB.c b/c/test/auto_check_sbp_signing_MsgEd25519SignatureDepB.c index fb62710bca..1a43b56fd9 100644 --- a/c/test/auto_check_sbp_signing_MsgEd25519SignatureDepB.c +++ b/c/test/auto_check_sbp_signing_MsgEd25519SignatureDepB.c @@ -978,4 +978,4 @@ Suite *auto_check_sbp_signing_MsgEd25519SignatureDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgEd25519SignatureDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_solution_meta_MsgSolnMeta.c b/c/test/auto_check_sbp_solution_meta_MsgSolnMeta.c index 4fae7ac772..c246474e2e 100644 --- a/c/test/auto_check_sbp_solution_meta_MsgSolnMeta.c +++ b/c/test/auto_check_sbp_solution_meta_MsgSolnMeta.c @@ -2098,4 +2098,4 @@ Suite *auto_check_sbp_solution_meta_MsgSolnMeta_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_solution_meta_MsgSolnMeta); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_solution_meta_MsgSolnMetaDepA.c b/c/test/auto_check_sbp_solution_meta_MsgSolnMetaDepA.c index d61aac5974..f8c0b5779c 100644 --- a/c/test/auto_check_sbp_solution_meta_MsgSolnMetaDepA.c +++ b/c/test/auto_check_sbp_solution_meta_MsgSolnMetaDepA.c @@ -2130,4 +2130,4 @@ Suite *auto_check_sbp_solution_meta_MsgSolnMetaDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_solution_meta_MsgSolnMetaDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrCodeBiases.c b/c/test/auto_check_sbp_ssr_MsgSsrCodeBiases.c index 7748d51ef9..bb8d10a031 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrCodeBiases.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrCodeBiases.c @@ -1501,4 +1501,4 @@ Suite *auto_check_sbp_ssr_MsgSsrCodeBiases_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrCodeBiases); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds.c b/c/test/auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds.c index 37b7cd6bea..29ae0e06ad 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds.c @@ -430,4 +430,4 @@ Suite *auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrGridDefinitionDepA.c b/c/test/auto_check_sbp_ssr_MsgSsrGridDefinitionDepA.c index e772cbf797..d41cdd66ef 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrGridDefinitionDepA.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrGridDefinitionDepA.c @@ -2091,4 +2091,4 @@ Suite *auto_check_sbp_ssr_MsgSsrGridDefinitionDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrGridDefinitionDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrection.c b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrection.c index 3f912800e9..3951fd1e7e 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrection.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrection.c @@ -2207,4 +2207,4 @@ Suite *auto_check_sbp_ssr_MsgSsrGriddedCorrection_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrGriddedCorrection); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c index a8b1fe938a..97cfa4a8be 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c @@ -737,4 +737,4 @@ Suite *auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA.c b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA.c index fb21419096..dcf6f3f0e1 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA.c @@ -2384,4 +2384,4 @@ Suite *auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA.c b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA.c index a6a2c75506..2345cb4303 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA.c @@ -2573,4 +2573,4 @@ Suite *auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA_suite(void) { test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrOrbitClock.c b/c/test/auto_check_sbp_ssr_MsgSsrOrbitClock.c index f43c94c16f..f29b445832 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrOrbitClock.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrOrbitClock.c @@ -255,4 +255,4 @@ Suite *auto_check_sbp_ssr_MsgSsrOrbitClock_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrOrbitClock); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockBounds.c b/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockBounds.c index 6bdc1c052f..489a1f32ab 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockBounds.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockBounds.c @@ -420,4 +420,4 @@ Suite *auto_check_sbp_ssr_MsgSsrOrbitClockBounds_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrOrbitClockBounds); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation.c b/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation.c index ac2530ec71..5749579b0b 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation.c @@ -323,4 +323,4 @@ Suite *auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation_suite(void) { test_auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockDepA.c b/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockDepA.c index 5ebe2a893c..e47eb20cf6 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockDepA.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrOrbitClockDepA.c @@ -264,4 +264,4 @@ Suite *auto_check_sbp_ssr_MsgSsrOrbitClockDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrOrbitClockDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrPhaseBiases.c b/c/test/auto_check_sbp_ssr_MsgSsrPhaseBiases.c index d4478580e7..618d5665b6 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrPhaseBiases.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrPhaseBiases.c @@ -1605,4 +1605,4 @@ Suite *auto_check_sbp_ssr_MsgSsrPhaseBiases_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrPhaseBiases); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrSatelliteApc.c b/c/test/auto_check_sbp_ssr_MsgSsrSatelliteApc.c index 75e9bed2b2..e4035bd3bc 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrSatelliteApc.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrSatelliteApc.c @@ -386,4 +386,4 @@ Suite *auto_check_sbp_ssr_MsgSsrSatelliteApc_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrSatelliteApc); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrSatelliteApcDepA.c b/c/test/auto_check_sbp_ssr_MsgSsrSatelliteApcDepA.c index 83e13e5b41..bf5409f264 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrSatelliteApcDepA.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrSatelliteApcDepA.c @@ -1575,4 +1575,4 @@ Suite *auto_check_sbp_ssr_MsgSsrSatelliteApcDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrSatelliteApcDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrStecCorrection.c b/c/test/auto_check_sbp_ssr_MsgSsrStecCorrection.c index baa7e00f6f..e14a13b4da 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrStecCorrection.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrStecCorrection.c @@ -354,4 +354,4 @@ Suite *auto_check_sbp_ssr_MsgSsrStecCorrection_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrStecCorrection); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrStecCorrectionDep.c b/c/test/auto_check_sbp_ssr_MsgSsrStecCorrectionDep.c index 509b0e7b63..3cc63f9803 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrStecCorrectionDep.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrStecCorrectionDep.c @@ -1786,4 +1786,4 @@ Suite *auto_check_sbp_ssr_MsgSsrStecCorrectionDep_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrStecCorrectionDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrStecCorrectionDepA.c b/c/test/auto_check_sbp_ssr_MsgSsrStecCorrectionDepA.c index 4dc1d7a06d..96c873bf5c 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrStecCorrectionDepA.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrStecCorrectionDepA.c @@ -1889,4 +1889,4 @@ Suite *auto_check_sbp_ssr_MsgSsrStecCorrectionDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrStecCorrectionDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrTileDefinition.c b/c/test/auto_check_sbp_ssr_MsgSsrTileDefinition.c index 10bc34a644..e4f460e623 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrTileDefinition.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrTileDefinition.c @@ -249,4 +249,4 @@ Suite *auto_check_sbp_ssr_MsgSsrTileDefinition_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrTileDefinition); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrTileDefinitionDepA.c b/c/test/auto_check_sbp_ssr_MsgSsrTileDefinitionDepA.c index 1bf1c326bd..9fd37203a7 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrTileDefinitionDepA.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrTileDefinitionDepA.c @@ -213,4 +213,4 @@ Suite *auto_check_sbp_ssr_MsgSsrTileDefinitionDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrTileDefinitionDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_ssr_MsgSsrTileDefinitionDepB.c b/c/test/auto_check_sbp_ssr_MsgSsrTileDefinitionDepB.c index b12e0fe327..c0c6aaa9dd 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrTileDefinitionDepB.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrTileDefinitionDepB.c @@ -220,4 +220,4 @@ Suite *auto_check_sbp_ssr_MsgSsrTileDefinitionDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_ssr_MsgSsrTileDefinitionDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgCsacTelemetry.c b/c/test/auto_check_sbp_system_MsgCsacTelemetry.c index d162a76b47..7d2d7c2cae 100644 --- a/c/test/auto_check_sbp_system_MsgCsacTelemetry.c +++ b/c/test/auto_check_sbp_system_MsgCsacTelemetry.c @@ -163,4 +163,4 @@ Suite *auto_check_sbp_system_MsgCsacTelemetry_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgCsacTelemetry); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgCsacTelemetryLabels.c b/c/test/auto_check_sbp_system_MsgCsacTelemetryLabels.c index 11e6fc56cd..be665cc44a 100644 --- a/c/test/auto_check_sbp_system_MsgCsacTelemetryLabels.c +++ b/c/test/auto_check_sbp_system_MsgCsacTelemetryLabels.c @@ -164,4 +164,4 @@ Suite *auto_check_sbp_system_MsgCsacTelemetryLabels_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgCsacTelemetryLabels); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgDgnssStatus.c b/c/test/auto_check_sbp_system_MsgDgnssStatus.c index 69fedb3888..85d3f135c4 100644 --- a/c/test/auto_check_sbp_system_MsgDgnssStatus.c +++ b/c/test/auto_check_sbp_system_MsgDgnssStatus.c @@ -176,4 +176,4 @@ Suite *auto_check_sbp_system_MsgDgnssStatus_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgDgnssStatus); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgGnssTimeOffset.c b/c/test/auto_check_sbp_system_MsgGnssTimeOffset.c index 28e30e9297..a662a87dfa 100644 --- a/c/test/auto_check_sbp_system_MsgGnssTimeOffset.c +++ b/c/test/auto_check_sbp_system_MsgGnssTimeOffset.c @@ -167,4 +167,4 @@ Suite *auto_check_sbp_system_MsgGnssTimeOffset_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgGnssTimeOffset); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgGroupMeta.c b/c/test/auto_check_sbp_system_MsgGroupMeta.c index 76c96d88bd..7a8b086d80 100644 --- a/c/test/auto_check_sbp_system_MsgGroupMeta.c +++ b/c/test/auto_check_sbp_system_MsgGroupMeta.c @@ -332,4 +332,4 @@ Suite *auto_check_sbp_system_MsgGroupMeta_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgGroupMeta); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgHeartbeat.c b/c/test/auto_check_sbp_system_MsgHeartbeat.c index 148e25bde4..6f992d5dfc 100644 --- a/c/test/auto_check_sbp_system_MsgHeartbeat.c +++ b/c/test/auto_check_sbp_system_MsgHeartbeat.c @@ -199,4 +199,4 @@ Suite *auto_check_sbp_system_MsgHeartbeat_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgHeartbeat); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgInsStatus.c b/c/test/auto_check_sbp_system_MsgInsStatus.c index 89cffdf7a2..e6ca670b51 100644 --- a/c/test/auto_check_sbp_system_MsgInsStatus.c +++ b/c/test/auto_check_sbp_system_MsgInsStatus.c @@ -143,4 +143,4 @@ Suite *auto_check_sbp_system_MsgInsStatus_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgInsStatus); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgInsUpdates.c b/c/test/auto_check_sbp_system_MsgInsUpdates.c index a4adfc09b7..35c81d07f2 100644 --- a/c/test/auto_check_sbp_system_MsgInsUpdates.c +++ b/c/test/auto_check_sbp_system_MsgInsUpdates.c @@ -186,4 +186,4 @@ Suite *auto_check_sbp_system_MsgInsUpdates_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgInsUpdates); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgPpsTime.c b/c/test/auto_check_sbp_system_MsgPpsTime.c index 888f07f28d..65d6db0ec7 100644 --- a/c/test/auto_check_sbp_system_MsgPpsTime.c +++ b/c/test/auto_check_sbp_system_MsgPpsTime.c @@ -150,4 +150,4 @@ Suite *auto_check_sbp_system_MsgPpsTime_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgPpsTime); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgSensorAidEvent.c b/c/test/auto_check_sbp_system_MsgSensorAidEvent.c index 95f4f90606..8a8c5b5df4 100644 --- a/c/test/auto_check_sbp_system_MsgSensorAidEvent.c +++ b/c/test/auto_check_sbp_system_MsgSensorAidEvent.c @@ -200,4 +200,4 @@ Suite *auto_check_sbp_system_MsgSensorAidEvent_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgSensorAidEvent); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgStartup.c b/c/test/auto_check_sbp_system_MsgStartup.c index 5079480292..79282f953f 100644 --- a/c/test/auto_check_sbp_system_MsgStartup.c +++ b/c/test/auto_check_sbp_system_MsgStartup.c @@ -223,4 +223,4 @@ Suite *auto_check_sbp_system_MsgStartup_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgStartup); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgStatusJournal.c b/c/test/auto_check_sbp_system_MsgStatusJournal.c index 30be42e0c3..b1dc8a6f87 100644 --- a/c/test/auto_check_sbp_system_MsgStatusJournal.c +++ b/c/test/auto_check_sbp_system_MsgStatusJournal.c @@ -406,4 +406,4 @@ Suite *auto_check_sbp_system_MsgStatusJournal_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgStatusJournal); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_system_MsgStatusReport.c b/c/test/auto_check_sbp_system_MsgStatusReport.c index 0f5d30203b..57e2d47ef7 100644 --- a/c/test/auto_check_sbp_system_MsgStatusReport.c +++ b/c/test/auto_check_sbp_system_MsgStatusReport.c @@ -1631,4 +1631,4 @@ Suite *auto_check_sbp_system_MsgStatusReport_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_system_MsgStatusReport); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_telemetry_MsgTelSv.c b/c/test/auto_check_sbp_telemetry_MsgTelSv.c index 19dbc239b6..0c4cfc5e92 100644 --- a/c/test/auto_check_sbp_telemetry_MsgTelSv.c +++ b/c/test/auto_check_sbp_telemetry_MsgTelSv.c @@ -247,4 +247,4 @@ Suite *auto_check_sbp_telemetry_MsgTelSv_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_telemetry_MsgTelSv); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgMeasurementState.c b/c/test/auto_check_sbp_tracking_MsgMeasurementState.c index 8eafe38067..f5c9e32abd 100644 --- a/c/test/auto_check_sbp_tracking_MsgMeasurementState.c +++ b/c/test/auto_check_sbp_tracking_MsgMeasurementState.c @@ -2126,4 +2126,4 @@ Suite *auto_check_sbp_tracking_MsgMeasurementState_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_tracking_MsgMeasurementState); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgTrackingIq.c b/c/test/auto_check_sbp_tracking_MsgTrackingIq.c index 8226a3bee6..af95ba824c 100644 --- a/c/test/auto_check_sbp_tracking_MsgTrackingIq.c +++ b/c/test/auto_check_sbp_tracking_MsgTrackingIq.c @@ -201,4 +201,4 @@ Suite *auto_check_sbp_tracking_MsgTrackingIq_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_tracking_MsgTrackingIq); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgTrackingIqDepA.c b/c/test/auto_check_sbp_tracking_MsgTrackingIqDepA.c index eb886567c7..0b0d0185fb 100644 --- a/c/test/auto_check_sbp_tracking_MsgTrackingIqDepA.c +++ b/c/test/auto_check_sbp_tracking_MsgTrackingIqDepA.c @@ -217,4 +217,4 @@ Suite *auto_check_sbp_tracking_MsgTrackingIqDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_tracking_MsgTrackingIqDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgTrackingIqDepB.c b/c/test/auto_check_sbp_tracking_MsgTrackingIqDepB.c index 1419a8cb68..f0d4cad544 100644 --- a/c/test/auto_check_sbp_tracking_MsgTrackingIqDepB.c +++ b/c/test/auto_check_sbp_tracking_MsgTrackingIqDepB.c @@ -209,4 +209,4 @@ Suite *auto_check_sbp_tracking_MsgTrackingIqDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_tracking_MsgTrackingIqDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgTrackingState.c b/c/test/auto_check_sbp_tracking_MsgTrackingState.c index 69ca22245f..5175509229 100644 --- a/c/test/auto_check_sbp_tracking_MsgTrackingState.c +++ b/c/test/auto_check_sbp_tracking_MsgTrackingState.c @@ -4863,4 +4863,4 @@ Suite *auto_check_sbp_tracking_MsgTrackingState_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_tracking_MsgTrackingState); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgTrackingStateDepB.c b/c/test/auto_check_sbp_tracking_MsgTrackingStateDepB.c index 118dca9245..0a2ef84d28 100644 --- a/c/test/auto_check_sbp_tracking_MsgTrackingStateDepB.c +++ b/c/test/auto_check_sbp_tracking_MsgTrackingStateDepB.c @@ -1385,4 +1385,4 @@ Suite *auto_check_sbp_tracking_MsgTrackingStateDepB_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_tracking_MsgTrackingStateDepB); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgTrackingStateDetailedDep.c b/c/test/auto_check_sbp_tracking_MsgTrackingStateDetailedDep.c index 90c073f45c..8e18c8664a 100644 --- a/c/test/auto_check_sbp_tracking_MsgTrackingStateDetailedDep.c +++ b/c/test/auto_check_sbp_tracking_MsgTrackingStateDetailedDep.c @@ -1386,4 +1386,4 @@ Suite *auto_check_sbp_tracking_MsgTrackingStateDetailedDep_suite(void) { test_auto_check_sbp_tracking_MsgTrackingStateDetailedDep); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgTrackingStateDetailedDepA.c b/c/test/auto_check_sbp_tracking_MsgTrackingStateDetailedDepA.c index 03c21789ed..9fc2502bf5 100644 --- a/c/test/auto_check_sbp_tracking_MsgTrackingStateDetailedDepA.c +++ b/c/test/auto_check_sbp_tracking_MsgTrackingStateDetailedDepA.c @@ -360,4 +360,4 @@ Suite *auto_check_sbp_tracking_MsgTrackingStateDetailedDepA_suite(void) { test_auto_check_sbp_tracking_MsgTrackingStateDetailedDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_tracking_MsgtrackingStateDepA.c b/c/test/auto_check_sbp_tracking_MsgtrackingStateDepA.c index 2a5013e9ec..c4c15c93c2 100644 --- a/c/test/auto_check_sbp_tracking_MsgtrackingStateDepA.c +++ b/c/test/auto_check_sbp_tracking_MsgtrackingStateDepA.c @@ -2100,4 +2100,4 @@ Suite *auto_check_sbp_tracking_MsgtrackingStateDepA_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_tracking_MsgtrackingStateDepA); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_user_MsgUserData.c b/c/test/auto_check_sbp_user_MsgUserData.c index 83bc12bfdf..6c589d8d45 100644 --- a/c/test/auto_check_sbp_user_MsgUserData.c +++ b/c/test/auto_check_sbp_user_MsgUserData.c @@ -1692,4 +1692,4 @@ Suite *auto_check_sbp_user_MsgUserData_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_user_MsgUserData); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_vehicle_MsgOdometry.c b/c/test/auto_check_sbp_vehicle_MsgOdometry.c index 6482e16456..ae66df1933 100644 --- a/c/test/auto_check_sbp_vehicle_MsgOdometry.c +++ b/c/test/auto_check_sbp_vehicle_MsgOdometry.c @@ -157,4 +157,4 @@ Suite *auto_check_sbp_vehicle_MsgOdometry_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_vehicle_MsgOdometry); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/auto_check_sbp_vehicle_MsgWheeltick.c b/c/test/auto_check_sbp_vehicle_MsgWheeltick.c index 9a9bc7ab00..d24a60e3cd 100644 --- a/c/test/auto_check_sbp_vehicle_MsgWheeltick.c +++ b/c/test/auto_check_sbp_vehicle_MsgWheeltick.c @@ -166,4 +166,4 @@ Suite *auto_check_sbp_vehicle_MsgWheeltick_suite(void) { tcase_add_test(tc_acq, test_auto_check_sbp_vehicle_MsgWheeltick); suite_add_tcase(s, tc_acq); return s; -} \ No newline at end of file +} diff --git a/c/test/check_main.c b/c/test/check_main.c index a3a17a23e6..02127b32c5 100644 --- a/c/test/check_main.c +++ b/c/test/check_main.c @@ -59,6 +59,7 @@ int main(void) { srunner_add_suite(sr, auto_check_sbp_flash_MsgStmUniqueIdReq_suite()); srunner_add_suite(sr, auto_check_sbp_flash_MsgStmUniqueIdResp_suite()); srunner_add_suite(sr, auto_check_sbp_imu_MsgImuAux_suite()); + srunner_add_suite(sr, auto_check_sbp_imu_MsgImuComp_suite()); 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()); @@ -295,4 +296,4 @@ int main(void) { number_failed = srunner_ntests_failed(sr); srunner_free(sr); return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; -} \ No newline at end of file +} diff --git a/c/test/check_suites.h b/c/test/check_suites.h index 745a5b3b5e..47b58ebc12 100644 --- a/c/test/check_suites.h +++ b/c/test/check_suites.h @@ -49,6 +49,7 @@ Suite* auto_check_sbp_flash_MsgStmFlashUnlockSector_suite(void); Suite* auto_check_sbp_flash_MsgStmUniqueIdReq_suite(void); Suite* auto_check_sbp_flash_MsgStmUniqueIdResp_suite(void); Suite* auto_check_sbp_imu_MsgImuAux_suite(void); +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); @@ -255,4 +256,4 @@ Suite* auto_check_sbp_user_MsgUserData_suite(void); Suite* auto_check_sbp_vehicle_MsgOdometry_suite(void); Suite* auto_check_sbp_vehicle_MsgWheeltick_suite(void); -#endif /* CHECK_SUITES_H */ \ No newline at end of file +#endif /* CHECK_SUITES_H */ diff --git a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResult.cc b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResult.cc index c858eec804..6a9c9bb036 100644 --- a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResult.cc +++ b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResult.cc @@ -797,4 +797,4 @@ TEST_F(Testauto_check_sbp_acquisition_MsgAcqResult0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepA.cc b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepA.cc index 20b8686ee0..8f405d69ce 100644 --- a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepA.cc +++ b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepA.cc @@ -4706,4 +4706,4 @@ TEST_F(Testauto_check_sbp_acquisition_MsgAcqResultDepA5, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepB.cc b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepB.cc index d614cef860..7a31134908 100644 --- a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepB.cc +++ b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepB.cc @@ -3996,4 +3996,4 @@ TEST_F(Testauto_check_sbp_acquisition_MsgAcqResultDepB4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepC.cc b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepC.cc index 185fca49b5..4ff49cd895 100644 --- a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepC.cc +++ b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqResultDepC.cc @@ -3996,4 +3996,4 @@ TEST_F(Testauto_check_sbp_acquisition_MsgAcqResultDepC4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqSvProfile.cc b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqSvProfile.cc index 339632aa1e..7c06e56367 100644 --- a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqSvProfile.cc +++ b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqSvProfile.cc @@ -1125,4 +1125,4 @@ TEST_F(Testauto_check_sbp_acquisition_MsgAcqSvProfile0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqSvProfileDep.cc b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqSvProfileDep.cc index 52bc946a79..4c127ecf90 100644 --- a/c/test/cpp/auto_check_sbp_acquisition_MsgAcqSvProfileDep.cc +++ b/c/test/cpp/auto_check_sbp_acquisition_MsgAcqSvProfileDep.cc @@ -1160,4 +1160,4 @@ TEST_F(Testauto_check_sbp_acquisition_MsgAcqSvProfileDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderHandshakeReq.cc b/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderHandshakeReq.cc index 0020ff02e4..58577d7b9b 100644 --- a/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderHandshakeReq.cc +++ b/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderHandshakeReq.cc @@ -766,4 +766,4 @@ TEST_F(Testauto_check_sbp_bootload_MsgBootloaderHandshakeReq0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderHandshakeResp.cc b/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderHandshakeResp.cc index 4911a342fa..91e34f5021 100644 --- a/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderHandshakeResp.cc +++ b/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderHandshakeResp.cc @@ -1908,4 +1908,4 @@ TEST_F(Testauto_check_sbp_bootload_MsgBootloaderHandshakeResp1_handshake, EXPECT_STREQ(sbp_msg_bootloader_handshake_dep_a_handshake_get(&t), "v1.2"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderJumptoApp.cc b/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderJumptoApp.cc index 1570819ee7..b06c880622 100644 --- a/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderJumptoApp.cc +++ b/c/test/cpp/auto_check_sbp_bootload_MsgBootloaderJumptoApp.cc @@ -800,4 +800,4 @@ TEST_F(Testauto_check_sbp_bootload_MsgBootloaderJumptoApp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_bootload_MsgNapDeviceDnaReq.cc b/c/test/cpp/auto_check_sbp_bootload_MsgNapDeviceDnaReq.cc index 781d460aa3..383b3a7cf6 100644 --- a/c/test/cpp/auto_check_sbp_bootload_MsgNapDeviceDnaReq.cc +++ b/c/test/cpp/auto_check_sbp_bootload_MsgNapDeviceDnaReq.cc @@ -746,4 +746,4 @@ TEST_F(Testauto_check_sbp_bootload_MsgNapDeviceDnaReq0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_bootload_MsgNapDeviceDnaResp.cc b/c/test/cpp/auto_check_sbp_bootload_MsgNapDeviceDnaResp.cc index 611692b2da..f6ae5ac250 100644 --- a/c/test/cpp/auto_check_sbp_bootload_MsgNapDeviceDnaResp.cc +++ b/c/test/cpp/auto_check_sbp_bootload_MsgNapDeviceDnaResp.cc @@ -850,4 +850,4 @@ TEST_F(Testauto_check_sbp_bootload_MsgNapDeviceDnaResp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ext_events_MsgExtEvent.cc b/c/test/cpp/auto_check_sbp_ext_events_MsgExtEvent.cc index 3c5d410807..5cb374ba6e 100644 --- a/c/test/cpp/auto_check_sbp_ext_events_MsgExtEvent.cc +++ b/c/test/cpp/auto_check_sbp_ext_events_MsgExtEvent.cc @@ -790,4 +790,4 @@ TEST_F(Testauto_check_sbp_ext_events_MsgExtEvent0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_file_io_MsgFileioConfigReq.cc b/c/test/cpp/auto_check_sbp_file_io_MsgFileioConfigReq.cc index c0ff40c171..20fe71d835 100644 --- a/c/test/cpp/auto_check_sbp_file_io_MsgFileioConfigReq.cc +++ b/c/test/cpp/auto_check_sbp_file_io_MsgFileioConfigReq.cc @@ -782,4 +782,4 @@ TEST_F(Testauto_check_sbp_file_io_MsgFileioConfigReq0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_file_io_MsgFileioConfigResp.cc b/c/test/cpp/auto_check_sbp_file_io_MsgFileioConfigResp.cc index 819dbdfcf1..05cb69104f 100644 --- a/c/test/cpp/auto_check_sbp_file_io_MsgFileioConfigResp.cc +++ b/c/test/cpp/auto_check_sbp_file_io_MsgFileioConfigResp.cc @@ -805,4 +805,4 @@ TEST_F(Testauto_check_sbp_file_io_MsgFileioConfigResp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadDirReq.cc b/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadDirReq.cc index 5b10c8eb62..7558c57086 100644 --- a/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadDirReq.cc +++ b/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadDirReq.cc @@ -950,4 +950,4 @@ TEST_F(Testauto_check_sbp_file_io_MsgFileioReadDirReq0_dirname, AppendVprintf) { "/some/random/path"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadDirResp.cc b/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadDirResp.cc index 243f7b8260..505e1d7520 100644 --- a/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadDirResp.cc +++ b/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadDirResp.cc @@ -1017,4 +1017,4 @@ TEST_F(Testauto_check_sbp_file_io_MsgFileioReadDirResp0_contents, strlen("definitely not a file")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadReq.cc b/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadReq.cc index f7d4357b91..d4578e21f6 100644 --- a/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadReq.cc +++ b/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadReq.cc @@ -949,4 +949,4 @@ TEST_F(Testauto_check_sbp_file_io_MsgFileioReadReq0_filename, AppendVprintf) { EXPECT_STREQ(sbp_msg_fileio_read_req_filename_get(&t), "/path/to/some/file"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadResp.cc b/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadResp.cc index 885e4cca9a..f2d7c914d3 100644 --- a/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadResp.cc +++ b/c/test/cpp/auto_check_sbp_file_io_MsgFileioReadResp.cc @@ -3092,4 +3092,4 @@ TEST_F(Testauto_check_sbp_file_io_MsgFileioReadResp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_file_io_MsgFileioRemove.cc b/c/test/cpp/auto_check_sbp_file_io_MsgFileioRemove.cc index 1d822a0624..1ac8c079c8 100644 --- a/c/test/cpp/auto_check_sbp_file_io_MsgFileioRemove.cc +++ b/c/test/cpp/auto_check_sbp_file_io_MsgFileioRemove.cc @@ -919,4 +919,4 @@ TEST_F(Testauto_check_sbp_file_io_MsgFileioRemove0_filename, AppendVprintf) { EXPECT_STREQ(sbp_msg_fileio_remove_filename_get(&t), "/path/to/file"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_file_io_MsgFileioWriteResp.cc b/c/test/cpp/auto_check_sbp_file_io_MsgFileioWriteResp.cc index 9e930ef5e6..3a75cb2838 100644 --- a/c/test/cpp/auto_check_sbp_file_io_MsgFileioWriteResp.cc +++ b/c/test/cpp/auto_check_sbp_file_io_MsgFileioWriteResp.cc @@ -782,4 +782,4 @@ TEST_F(Testauto_check_sbp_file_io_MsgFileioWriteResp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgFlashDone.cc b/c/test/cpp/auto_check_sbp_flash_MsgFlashDone.cc index b2ea37b5b1..90a4d415cd 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgFlashDone.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgFlashDone.cc @@ -760,4 +760,4 @@ TEST_F(Testauto_check_sbp_flash_MsgFlashDone0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgFlashErase.cc b/c/test/cpp/auto_check_sbp_flash_MsgFlashErase.cc index 393a8b5933..b8bf116b0d 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgFlashErase.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgFlashErase.cc @@ -771,4 +771,4 @@ TEST_F(Testauto_check_sbp_flash_MsgFlashErase0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgFlashProgram.cc b/c/test/cpp/auto_check_sbp_flash_MsgFlashProgram.cc index 671a9b6cb5..eb67f4a5f7 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgFlashProgram.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgFlashProgram.cc @@ -3104,4 +3104,4 @@ TEST_F(Testauto_check_sbp_flash_MsgFlashProgram0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgFlashReadReq.cc b/c/test/cpp/auto_check_sbp_flash_MsgFlashReadReq.cc index ecca7c94a8..d4a70e754f 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgFlashReadReq.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgFlashReadReq.cc @@ -809,4 +809,4 @@ TEST_F(Testauto_check_sbp_flash_MsgFlashReadReq0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgFlashReadResp.cc b/c/test/cpp/auto_check_sbp_flash_MsgFlashReadResp.cc index 8e374f697f..3128215af0 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgFlashReadResp.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgFlashReadResp.cc @@ -810,4 +810,4 @@ TEST_F(Testauto_check_sbp_flash_MsgFlashReadResp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgM25FlashWriteStatus.cc b/c/test/cpp/auto_check_sbp_flash_MsgM25FlashWriteStatus.cc index b78b735272..86fd3097e5 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgM25FlashWriteStatus.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgM25FlashWriteStatus.cc @@ -793,4 +793,4 @@ TEST_F(Testauto_check_sbp_flash_MsgM25FlashWriteStatus0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgStmFlashLockSector.cc b/c/test/cpp/auto_check_sbp_flash_MsgStmFlashLockSector.cc index 3d0422b7b4..29c19d4912 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgStmFlashLockSector.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgStmFlashLockSector.cc @@ -789,4 +789,4 @@ TEST_F(Testauto_check_sbp_flash_MsgStmFlashLockSector0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgStmFlashUnlockSector.cc b/c/test/cpp/auto_check_sbp_flash_MsgStmFlashUnlockSector.cc index 108824ea10..ceb0164b19 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgStmFlashUnlockSector.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgStmFlashUnlockSector.cc @@ -798,4 +798,4 @@ TEST_F(Testauto_check_sbp_flash_MsgStmFlashUnlockSector0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgStmUniqueIdReq.cc b/c/test/cpp/auto_check_sbp_flash_MsgStmUniqueIdReq.cc index 108bf558b7..40713ddd5e 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgStmUniqueIdReq.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgStmUniqueIdReq.cc @@ -742,4 +742,4 @@ TEST_F(Testauto_check_sbp_flash_MsgStmUniqueIdReq0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_flash_MsgStmUniqueIdResp.cc b/c/test/cpp/auto_check_sbp_flash_MsgStmUniqueIdResp.cc index 20fecf87e6..9b03f6bfe1 100644 --- a/c/test/cpp/auto_check_sbp_flash_MsgStmUniqueIdResp.cc +++ b/c/test/cpp/auto_check_sbp_flash_MsgStmUniqueIdResp.cc @@ -881,4 +881,4 @@ TEST_F(Testauto_check_sbp_flash_MsgStmUniqueIdResp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_gnss_gnss_structs.cc b/c/test/cpp/auto_check_sbp_gnss_gnss_structs.cc index ef7aa8f467..c925e7f26e 100644 --- a/c/test/cpp/auto_check_sbp_gnss_gnss_structs.cc +++ b/c/test/cpp/auto_check_sbp_gnss_gnss_structs.cc @@ -660,4 +660,4 @@ TEST_F(Test_Struct_auto_check_sbp_gnss_gnss_structs6, FreeDecodeUnderflow) { } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_imu_MsgImuAux.cc b/c/test/cpp/auto_check_sbp_imu_MsgImuAux.cc index 35a1d2f380..3c86c708c8 100644 --- a/c/test/cpp/auto_check_sbp_imu_MsgImuAux.cc +++ b/c/test/cpp/auto_check_sbp_imu_MsgImuAux.cc @@ -772,4 +772,4 @@ TEST_F(Testauto_check_sbp_imu_MsgImuAux0, SendWrappedSbpMsgTThroughCppState) { EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_imu_MsgImuComp.cc b/c/test/cpp/auto_check_sbp_imu_MsgImuComp.cc new file mode 100644 index 0000000000..f88b33f4ba --- /dev/null +++ b/c/test/cpp/auto_check_sbp_imu_MsgImuComp.cc @@ -0,0 +1,812 @@ +/* + * 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/imu/test_MsgImuComp.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_imu_MsgImuComp0 : public ::testing::Test { + public: + Testauto_check_sbp_imu_MsgImuComp0() { + assign(test_msg_.acc_comp_x, 96); + assign(test_msg_.acc_comp_y, -33); + assign(test_msg_.acc_comp_z, 4140); + assign(test_msg_.flags, 206); + assign(test_msg_.gyr_comp_x, 60); + assign(test_msg_.gyr_comp_y, -304); + assign(test_msg_.gyr_comp_z, -18); + assign(test_msg_.time, 3221225754); + } + + 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::MessageHandler; + + struct Output final { + uint16_t sender_id; + sbp_msg_imu_comp_t msg; + }; + + std::vector outputs{}; + + protected: + void handle_sbp_msg(uint16_t sender_id, + const sbp_msg_imu_comp_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, SbpMsgImuComp, &CHandler::callback_static, + this, &node_); + } + + ~CHandler() { sbp_remove_callback(state_, &node_); } + + struct Output final { + uint16_t sender_id; + sbp_msg_imu_comp_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, SbpMsgImuComp); + outputs.emplace_back(); + outputs.back().sender_id = sender_id; + memcpy(&outputs.back().msg, &msg->imu_comp, sizeof(msg->imu_comp)); + } + + 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_imu_comp_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.imu_comp, &test_msg_, sizeof(test_msg_)); + info.msg_type = static_cast(SbpMsgImuComp); + info.sender_id = 4660; + info.preamble = 0x55; + info.crc = 0x564f; + info.encoded_frame = encoded_frame_; + info.frame_len = sizeof(encoded_frame_); + info.encoded_payload = encoded_payload_; + info.payload_len = 34; + + return info; + } + + protected: + void comparison_tests(const sbp_msg_imu_comp_t &lesser, + const sbp_msg_imu_comp_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_imu_comp_cmp(&lesser, &lesser), 0); + EXPECT_EQ(sbp_msg_imu_comp_cmp(&greater, &greater), 0); + EXPECT_LE(sbp_msg_imu_comp_cmp(&lesser, &greater), 0); + EXPECT_GT(sbp_msg_imu_comp_cmp(&greater, &lesser), 0); + + EXPECT_EQ(sbp_message_cmp(SbpMsgImuComp, &wrapped_lesser, &wrapped_lesser), + 0); + EXPECT_EQ( + sbp_message_cmp(SbpMsgImuComp, &wrapped_greater, &wrapped_greater), 0); + EXPECT_LE(sbp_message_cmp(SbpMsgImuComp, &wrapped_lesser, &wrapped_greater), + 0); + EXPECT_GT(sbp_message_cmp(SbpMsgImuComp, &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_imu_comp_t test_msg_{}; + uint8_t encoded_frame_[34 + 8] = { + 85, 5, 9, 52, 18, 34, 26, 1, 0, 192, 0, 0, 0, 0, + 206, 0, 96, 0, 0, 0, 223, 255, 255, 255, 44, 16, 0, 0, + 60, 0, 0, 0, 208, 254, 255, 255, 238, 255, 255, 255, 79, 86, + }; + uint8_t encoded_payload_[34] = { + 26, 1, 0, 192, 0, 0, 0, 0, 206, 0, 96, 0, + 0, 0, 223, 255, 255, 255, 44, 16, 0, 0, 60, 0, + 0, 0, 208, 254, 255, 255, 238, 255, 255, 255, + }; +}; + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, EncodedLen) { + auto info = get_test_msg_info(); + EXPECT_EQ(sbp_msg_imu_comp_encoded_len(&info.test_msg), info.payload_len); + + EXPECT_EQ(sbp_message_encoded_len(SbpMsgImuComp, &info.test_msg_wrapped), + info.payload_len); +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, EncodeToBuf) { + auto info = get_test_msg_info(); + uint8_t buf[34]; + uint8_t n_written; + + EXPECT_EQ( + sbp_msg_imu_comp_encode(&buf[0], sizeof(buf), &n_written, &info.test_msg), + SBP_OK); + EXPECT_EQ(n_written, 34); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 34), 0); + + memset(&buf[0], 0, sizeof(buf)); + EXPECT_EQ(sbp_message_encode(&buf[0], sizeof(buf), &n_written, SbpMsgImuComp, + &info.test_msg_wrapped), + SBP_OK); + EXPECT_EQ(n_written, 34); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 34), 0); +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, EncodeToBufWithoutNwritten) { + auto info = get_test_msg_info(); + uint8_t buf[34]; + + EXPECT_EQ( + sbp_msg_imu_comp_encode(&buf[0], sizeof(buf), nullptr, &info.test_msg), + SBP_OK); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 34), 0); +} +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, EncodedToBufUnderflow) { + auto info = get_test_msg_info(); + uint8_t buf[34]; + + for (uint8_t i = 0; i < 34; i++) { + EXPECT_EQ(sbp_msg_imu_comp_encode(&buf[0], i, nullptr, &info.test_msg), + SBP_ENCODE_ERROR); + } +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, DecodeFromBuf) { + auto info = get_test_msg_info(); + sbp_msg_imu_comp_t msg{}; + uint8_t n_read; + + EXPECT_EQ(sbp_msg_imu_comp_decode(&info.encoded_payload[0], info.payload_len, + &n_read, &msg), + SBP_OK); + EXPECT_EQ(n_read, 34); + 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, SbpMsgImuComp, &wrapped_msg), + SBP_OK); + EXPECT_EQ(n_read, 34); + EXPECT_EQ(msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, DecodeFromBufWithoutNread) { + auto info = get_test_msg_info(); + sbp_msg_imu_comp_t msg{}; + + EXPECT_EQ(sbp_msg_imu_comp_decode(&info.encoded_payload[0], info.payload_len, + nullptr, &msg), + SBP_OK); + EXPECT_EQ(msg, info.test_msg); +} +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, DecodeFromBufUnderflow) { + auto info = get_test_msg_info(); + sbp_msg_imu_comp_t msg{}; + + for (uint8_t i = 0; i < info.payload_len; i++) { + int expected_return = SBP_DECODE_ERROR; + + EXPECT_EQ( + sbp_msg_imu_comp_decode(&info.encoded_payload[0], i, nullptr, &msg), + expected_return); + } +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, 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_imu_MsgImuComp0, 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_imu_MsgImuComp0, 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_imu_MsgImuComp0, 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_imu_MsgImuComp0, 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_imu_comp_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_imu_MsgImuComp0, 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, SbpMsgImuComp, 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_imu_MsgImuComp0, 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, SbpMsgImuComp, 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_imu_MsgImuComp0, 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, SbpMsgImuComp, 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_imu_MsgImuComp0, Comparison) { + auto info = get_test_msg_info(); + { + sbp_msg_imu_comp_t lesser = info.test_msg; + sbp_msg_imu_comp_t greater = info.test_msg; + make_lesser_greater(lesser.acc_comp_x, greater.acc_comp_x); + comparison_tests(lesser, greater); + } + { + sbp_msg_imu_comp_t lesser = info.test_msg; + sbp_msg_imu_comp_t greater = info.test_msg; + make_lesser_greater(lesser.acc_comp_y, greater.acc_comp_y); + comparison_tests(lesser, greater); + } + { + sbp_msg_imu_comp_t lesser = info.test_msg; + sbp_msg_imu_comp_t greater = info.test_msg; + make_lesser_greater(lesser.acc_comp_z, greater.acc_comp_z); + comparison_tests(lesser, greater); + } + { + sbp_msg_imu_comp_t lesser = info.test_msg; + sbp_msg_imu_comp_t greater = info.test_msg; + make_lesser_greater(lesser.flags, greater.flags); + comparison_tests(lesser, greater); + } + { + sbp_msg_imu_comp_t lesser = info.test_msg; + sbp_msg_imu_comp_t greater = info.test_msg; + make_lesser_greater(lesser.gyr_comp_x, greater.gyr_comp_x); + comparison_tests(lesser, greater); + } + { + sbp_msg_imu_comp_t lesser = info.test_msg; + sbp_msg_imu_comp_t greater = info.test_msg; + make_lesser_greater(lesser.gyr_comp_y, greater.gyr_comp_y); + comparison_tests(lesser, greater); + } + { + sbp_msg_imu_comp_t lesser = info.test_msg; + sbp_msg_imu_comp_t greater = info.test_msg; + make_lesser_greater(lesser.gyr_comp_z, greater.gyr_comp_z); + comparison_tests(lesser, greater); + } + { + sbp_msg_imu_comp_t lesser = info.test_msg; + sbp_msg_imu_comp_t greater = info.test_msg; + make_lesser_greater(lesser.time, greater.time); + comparison_tests(lesser, greater); + } +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, CppTraitsProperties) { + // EXPECT_EQ(sbp::MessageTraits::id, SbpMsgImuComp); + EXPECT_STREQ(sbp::MessageTraits::name, "MSG_IMU_COMP"); +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, 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_imu_comp_t &const_unwrapped = + sbp::MessageTraits::get(const_sbp_msg_t); + sbp_msg_imu_comp_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_imu_MsgImuComp0, CppTraitsToSbpMsgT) { + auto info = get_test_msg_info(); + + sbp_msg_t msg1 = + sbp::MessageTraits::to_sbp_msg(info.test_msg); + EXPECT_EQ(msg1.imu_comp, info.test_msg); + + sbp_msg_t msg2; + sbp::MessageTraits::to_sbp_msg(info.test_msg, &msg2); + EXPECT_EQ(msg2.imu_comp, info.test_msg); +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, CppTraitsEncodedLen) { + auto info = get_test_msg_info(); + EXPECT_EQ(sbp::MessageTraits::encoded_len(info.test_msg), + info.payload_len); +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, 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_imu_MsgImuComp0, CppTraitsEncodeToBuf) { + auto info = get_test_msg_info(); + uint8_t buf[34]; + uint8_t n_written; + + EXPECT_EQ(sbp::MessageTraits::encode( + &buf[0], sizeof(buf), &n_written, info.test_msg), + SBP_OK); + EXPECT_EQ(n_written, 34); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 34), 0); +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, CppTraitsDecodeFromBuf) { + auto info = get_test_msg_info(); + sbp_msg_imu_comp_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, 34); + EXPECT_EQ(msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_imu_MsgImuComp0, 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_imu_MsgImuComp0, + ProcessSbpMsgTThroughMessageHandler) { + auto info = get_test_msg_info(); + sbp::State state{}; + CppHandler handler(&state); + + state.process_message(info.sender_id, SbpMsgImuComp, &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_imu_MsgImuComp0, 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_imu_MsgImuComp0, 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, SbpMsgImuComp, 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/c/test/cpp/auto_check_sbp_imu_MsgImuRaw.cc b/c/test/cpp/auto_check_sbp_imu_MsgImuRaw.cc index 0242fde840..7b41e5d618 100644 --- a/c/test/cpp/auto_check_sbp_imu_MsgImuRaw.cc +++ b/c/test/cpp/auto_check_sbp_imu_MsgImuRaw.cc @@ -805,4 +805,4 @@ TEST_F(Testauto_check_sbp_imu_MsgImuRaw0, SendWrappedSbpMsgTThroughCppState) { EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgAcknowledge.cc b/c/test/cpp/auto_check_sbp_integrity_MsgAcknowledge.cc index 52e60fcaf6..e1363f8502 100644 --- a/c/test/cpp/auto_check_sbp_integrity_MsgAcknowledge.cc +++ b/c/test/cpp/auto_check_sbp_integrity_MsgAcknowledge.cc @@ -809,4 +809,4 @@ TEST_F(Testauto_check_sbp_integrity_MsgAcknowledge0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevel.cc b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevel.cc index c3f4f70ce4..0c7bc59ff4 100644 --- a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevel.cc +++ b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagHighLevel.cc @@ -944,4 +944,4 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagHighLevel0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos.cc b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos.cc index fb3e74623c..0ff9984d22 100644 --- a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos.cc +++ b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos.cc @@ -931,4 +931,4 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagIonoGridPointSatLos0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints.cc b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints.cc index 7645a21c46..604b320985 100644 --- a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints.cc +++ b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoGridPoints.cc @@ -904,4 +904,4 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagIonoGridPoints0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos.cc b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos.cc index 99751ab80f..4f29f59a0a 100644 --- a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos.cc +++ b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos.cc @@ -913,4 +913,4 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagIonoTileSatLos0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagSatellites.cc b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagSatellites.cc index fda76ecdbb..9898242d67 100644 --- a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagSatellites.cc +++ b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagSatellites.cc @@ -884,4 +884,4 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagSatellites0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints.cc b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints.cc index 920c4170c6..b6c21a3ae2 100644 --- a/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints.cc +++ b/c/test/cpp/auto_check_sbp_integrity_MsgSsrFlagTropoGridPoints.cc @@ -904,4 +904,4 @@ TEST_F(Testauto_check_sbp_integrity_MsgSsrFlagTropoGridPoints0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_integrity_integrity_structs.cc b/c/test/cpp/auto_check_sbp_integrity_integrity_structs.cc index cf9823b1a1..c883b6edb9 100644 --- a/c/test/cpp/auto_check_sbp_integrity_integrity_structs.cc +++ b/c/test/cpp/auto_check_sbp_integrity_integrity_structs.cc @@ -130,4 +130,4 @@ TEST_F(Test_Struct_auto_check_sbp_integrity_integrity_structs0, } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxCpuState.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxCpuState.cc index 783af499f4..fb05cd5701 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxCpuState.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxCpuState.cc @@ -982,4 +982,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxCpuState0_cmdline, AppendVprintf) { "/path/to/process-name arg0 arg1 arg2 arg3 arg4"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxCpuStateDepA.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxCpuStateDepA.cc index be82f44684..f730352d38 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxCpuStateDepA.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxCpuStateDepA.cc @@ -975,4 +975,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxCpuStateDepA0_cmdline, AppendVprintf) { "/path/to/process-name arg0 arg1 arg2 arg3 arg4"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxMemState.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxMemState.cc index e6ce7e85a5..11f9ae6125 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxMemState.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxMemState.cc @@ -982,4 +982,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxMemState0_cmdline, AppendVprintf) { "/path/to/process-name arg0 arg1 arg2 arg3 arg4"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxMemStateDepA.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxMemStateDepA.cc index e00f625b16..2fce237866 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxMemStateDepA.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxMemStateDepA.cc @@ -975,4 +975,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxMemStateDepA0_cmdline, AppendVprintf) { "/path/to/process-name arg0 arg1 arg2 arg3 arg4"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessFdCount.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessFdCount.cc index 3874e3f87b..84fd3ec9da 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessFdCount.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessFdCount.cc @@ -972,4 +972,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxProcessFdCount0_cmdline, "/path/to/process-name arg0 arg1 arg2 arg3 arg4"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessFdSummary.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessFdSummary.cc index 24e2988ea6..c156fcfa34 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessFdSummary.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessFdSummary.cc @@ -1140,4 +1140,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxProcessFdSummary0_most_opened, strlen("fd6")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessSocketCounts.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessSocketCounts.cc index b1308d97bb..b082ce6b99 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessSocketCounts.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessSocketCounts.cc @@ -1004,4 +1004,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxProcessSocketCounts0_cmdline, "/path/to/process-name arg0 arg1 arg2 arg3 arg4"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessSocketQueues.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessSocketQueues.cc index 82ff936b1b..e2958a69d9 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessSocketQueues.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxProcessSocketQueues.cc @@ -1043,4 +1043,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxProcessSocketQueues0_cmdline, "/path/to/process-name arg0 arg1 arg2 arg3 arg4"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxSocketUsage.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxSocketUsage.cc index ae58d264f2..b21a32fb60 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxSocketUsage.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxSocketUsage.cc @@ -1116,4 +1116,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxSocketUsage0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxSysState.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxSysState.cc index c41d708f9e..d38fe52927 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxSysState.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxSysState.cc @@ -826,4 +826,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxSysState0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_linux_MsgLinuxSysStateDepA.cc b/c/test/cpp/auto_check_sbp_linux_MsgLinuxSysStateDepA.cc index 87079175e0..f048910839 100644 --- a/c/test/cpp/auto_check_sbp_linux_MsgLinuxSysStateDepA.cc +++ b/c/test/cpp/auto_check_sbp_linux_MsgLinuxSysStateDepA.cc @@ -818,4 +818,4 @@ TEST_F(Testauto_check_sbp_linux_MsgLinuxSysStateDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_logging_MsgFwd.cc b/c/test/cpp/auto_check_sbp_logging_MsgFwd.cc index f1becad1ea..3a349ba7ed 100644 --- a/c/test/cpp/auto_check_sbp_logging_MsgFwd.cc +++ b/c/test/cpp/auto_check_sbp_logging_MsgFwd.cc @@ -922,4 +922,4 @@ TEST_F(Testauto_check_sbp_logging_MsgFwd0, SendWrappedSbpMsgTThroughCppState) { EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_logging_MsgLog.cc b/c/test/cpp/auto_check_sbp_logging_MsgLog.cc index 0a6266cde9..cd89c2a5c1 100644 --- a/c/test/cpp/auto_check_sbp_logging_MsgLog.cc +++ b/c/test/cpp/auto_check_sbp_logging_MsgLog.cc @@ -903,4 +903,4 @@ TEST_F(Testauto_check_sbp_logging_MsgLog0_text, AppendVprintf) { "Filtered all obs from 2314 at tow 83.539019"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_logging_MsgPrintDep.cc b/c/test/cpp/auto_check_sbp_logging_MsgPrintDep.cc index f3b62d9b83..5f8c76e82e 100644 --- a/c/test/cpp/auto_check_sbp_logging_MsgPrintDep.cc +++ b/c/test/cpp/auto_check_sbp_logging_MsgPrintDep.cc @@ -5301,4 +5301,4 @@ TEST_F(Testauto_check_sbp_logging_MsgPrintDep5_text, AppendVprintf) { "INFO: Disabling channel 1 (PRN 15)\n"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_mag_MsgMagRaw.cc b/c/test/cpp/auto_check_sbp_mag_MsgMagRaw.cc index 516c48d0eb..22721023b7 100644 --- a/c/test/cpp/auto_check_sbp_mag_MsgMagRaw.cc +++ b/c/test/cpp/auto_check_sbp_mag_MsgMagRaw.cc @@ -784,4 +784,4 @@ TEST_F(Testauto_check_sbp_mag_MsgMagRaw0, SendWrappedSbpMsgTThroughCppState) { EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgAgeCorrections.cc b/c/test/cpp/auto_check_sbp_navigation_MsgAgeCorrections.cc index 4a756cfe3a..3b438c87bd 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgAgeCorrections.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgAgeCorrections.cc @@ -791,4 +791,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgAgeCorrections0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineECEF.cc b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineECEF.cc index 2baea88d09..1787aa6833 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineECEF.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineECEF.cc @@ -3991,4 +3991,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgBaselineECEF4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineECEFDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineECEFDepA.cc index 1850e8a83b..f90e11ce4b 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineECEFDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineECEFDepA.cc @@ -8938,4 +8938,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgBaselineECEFDepA10, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineHeadingDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineHeadingDepA.cc index 491af73603..f6a789ac42 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineHeadingDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineHeadingDepA.cc @@ -822,4 +822,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgBaselineHeadingDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineNED.cc b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineNED.cc index f942e5114b..b9a383e942 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineNED.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineNED.cc @@ -4016,4 +4016,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgBaselineNED4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineNEDDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineNEDDepA.cc index 93541f1c93..0a1fc52de7 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgBaselineNEDDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgBaselineNEDDepA.cc @@ -8962,4 +8962,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgBaselineNEDDepA10, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgDops.cc b/c/test/cpp/auto_check_sbp_navigation_MsgDops.cc index 23adef532b..e2ea3058b7 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgDops.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgDops.cc @@ -798,4 +798,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgDops0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgDopsDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgDopsDepA.cc index 0c70ca18ea..1997f04c19 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgDopsDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgDopsDepA.cc @@ -6983,4 +6983,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgDopsDepA8, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgGPSTime.cc b/c/test/cpp/auto_check_sbp_navigation_MsgGPSTime.cc index 2da95409d0..33870604e3 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgGPSTime.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgGPSTime.cc @@ -3811,4 +3811,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgGPSTime4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgGPSTimeDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgGPSTimeDepA.cc index add6011456..7845356996 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgGPSTimeDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgGPSTimeDepA.cc @@ -8533,4 +8533,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgGPSTimeDepA10, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgGPSTimeGNSS.cc b/c/test/cpp/auto_check_sbp_navigation_MsgGPSTimeGNSS.cc index 19adc9288b..b9bc1dab72 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgGPSTimeGNSS.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgGPSTimeGNSS.cc @@ -3881,4 +3881,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgGPSTimeGNSS4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEF.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEF.cc index d9e453196b..b3032bd320 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEF.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEF.cc @@ -3150,4 +3150,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosECEF3, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFCov.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFCov.cc index 5d61f83a76..e053766134 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFCov.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFCov.cc @@ -854,4 +854,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosECEFCov0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFCovGNSS.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFCovGNSS.cc index a25310cd46..b4f2a63740 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFCovGNSS.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFCovGNSS.cc @@ -868,4 +868,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosECEFCovGNSS0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFDepA.cc index 9867672fd9..e103ff4c0c 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFDepA.cc @@ -8798,4 +8798,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosECEFDepA10, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFGNSS.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFGNSS.cc index 8f43585acc..3c6f081155 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFGNSS.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosECEFGNSS.cc @@ -821,4 +821,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosECEFGNSS0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosLLH.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosLLH.cc index bc249ab1e1..e6d2b66c9c 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosLLH.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosLLH.cc @@ -3951,4 +3951,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosLLH4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosLLHCov.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosLLHCov.cc index 77239b609f..35257b7fc2 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosLLHCov.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosLLHCov.cc @@ -849,4 +849,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosLLHCov0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosLLHDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosLLHDepA.cc index 8e5c9690c3..57888d14aa 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosLLHDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosLLHDepA.cc @@ -8837,4 +8837,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosLLHDepA10, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhAcc.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhAcc.cc index b1d30ae4de..6c8051986c 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhAcc.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhAcc.cc @@ -877,4 +877,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosLlhAcc0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhCovGnss.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhCovGnss.cc index b8771cf3b9..981f60b50a 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhCovGnss.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhCovGnss.cc @@ -866,4 +866,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosLlhCovGnss0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhGnss.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhGnss.cc index 6e9a452e46..46ca7df7a6 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhGnss.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPosLlhGnss.cc @@ -825,4 +825,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPosLlhGnss0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgPoseRelative.cc b/c/test/cpp/auto_check_sbp_navigation_MsgPoseRelative.cc index 32602e3653..a4d3f9463e 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgPoseRelative.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgPoseRelative.cc @@ -953,4 +953,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgPoseRelative0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgProtectionLevel.cc b/c/test/cpp/auto_check_sbp_navigation_MsgProtectionLevel.cc index f901d8ef4b..5f94c3fabb 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgProtectionLevel.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgProtectionLevel.cc @@ -936,4 +936,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgProtectionLevel0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgProtectionLevelDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgProtectionLevelDepA.cc index d048c3f757..5e05c3ab95 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgProtectionLevelDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgProtectionLevelDepA.cc @@ -846,4 +846,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgProtectionLevelDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc b/c/test/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc index 3b6b839774..a8bb55d222 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc @@ -960,4 +960,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgReferenceFrameParam0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc b/c/test/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc index ead52a90d0..4fb896190c 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc @@ -838,4 +838,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgUTCLeapSecond0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgUTCTime.cc b/c/test/cpp/auto_check_sbp_navigation_MsgUTCTime.cc index 92d490d1d3..417da65b0d 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgUTCTime.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgUTCTime.cc @@ -818,4 +818,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgUTCTime0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgUTCTimeGNSS.cc b/c/test/cpp/auto_check_sbp_navigation_MsgUTCTimeGNSS.cc index b620dcda6f..cefc1cf5f5 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgUTCTimeGNSS.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgUTCTimeGNSS.cc @@ -832,4 +832,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgUTCTimeGNSS0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelBody.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelBody.cc index 9360edd635..a8f72ab242 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelBody.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelBody.cc @@ -841,4 +841,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelBody0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelCog.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelCog.cc index ce6e822a8c..f2d603a5d0 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelCog.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelCog.cc @@ -2377,4 +2377,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelCog2, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelECEF.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelECEF.cc index 3ef9616f3b..57118b72c2 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelECEF.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelECEF.cc @@ -3921,4 +3921,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelECEF4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelECEFCov.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelECEFCov.cc index e02c42c3cb..316fef5b7e 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelECEFCov.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelECEFCov.cc @@ -852,4 +852,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelECEFCov0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelECEFDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelECEFDepA.cc index 3c8c0d3a58..0212b95d71 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelECEFDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelECEFDepA.cc @@ -8780,4 +8780,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelECEFDepA10, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelEcefCovGnss.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelEcefCovGnss.cc index f4c8762a3c..e6418a15d8 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelEcefCovGnss.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelEcefCovGnss.cc @@ -866,4 +866,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelEcefCovGnss0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelEcefGnss.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelEcefGnss.cc index 45e9526eb1..9d53ab1eb9 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelEcefGnss.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelEcefGnss.cc @@ -819,4 +819,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelEcefGnss0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelNED.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelNED.cc index 874d6fe84c..343d914200 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelNED.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelNED.cc @@ -3941,4 +3941,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelNED4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelNEDCOV.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelNEDCOV.cc index c0bdca8345..cf9b906b07 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelNEDCOV.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelNEDCOV.cc @@ -848,4 +848,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelNEDCOV0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelNEDDepA.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelNEDDepA.cc index ed1c8557b0..fa5f92e864 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelNEDDepA.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelNEDDepA.cc @@ -8815,4 +8815,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelNEDDepA10, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelNedCovGnss.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelNedCovGnss.cc index 31620ad252..5455e7b4e2 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelNedCovGnss.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelNedCovGnss.cc @@ -864,4 +864,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelNedCovGnss0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgVelNedGnss.cc b/c/test/cpp/auto_check_sbp_navigation_MsgVelNedGnss.cc index 9e6dbc3050..35ddbb71aa 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgVelNedGnss.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgVelNedGnss.cc @@ -823,4 +823,4 @@ TEST_F(Testauto_check_sbp_navigation_MsgVelNedGnss0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_navigation_navigation_structs.cc b/c/test/cpp/auto_check_sbp_navigation_navigation_structs.cc index 04f53d3d24..c9e1d49fa4 100644 --- a/c/test/cpp/auto_check_sbp_navigation_navigation_structs.cc +++ b/c/test/cpp/auto_check_sbp_navigation_navigation_structs.cc @@ -131,4 +131,4 @@ TEST_F(Test_Struct_auto_check_sbp_navigation_navigation_structs0, } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ndb_MsgNdbEvent.cc b/c/test/cpp/auto_check_sbp_ndb_MsgNdbEvent.cc index ed5036e1fd..3815399781 100644 --- a/c/test/cpp/auto_check_sbp_ndb_MsgNdbEvent.cc +++ b/c/test/cpp/auto_check_sbp_ndb_MsgNdbEvent.cc @@ -821,4 +821,4 @@ TEST_F(Testauto_check_sbp_ndb_MsgNdbEvent0, SendWrappedSbpMsgTThroughCppState) { EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGLO.cc b/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGLO.cc index 594ff0e377..8a1629e695 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGLO.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGLO.cc @@ -879,4 +879,4 @@ TEST_F(Testauto_check_sbp_observation_MsgAlmanacGLO0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGLODep.cc b/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGLODep.cc index 492148fbd5..4630303736 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGLODep.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGLODep.cc @@ -901,4 +901,4 @@ TEST_F(Testauto_check_sbp_observation_MsgAlmanacGLODep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGPS.cc b/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGPS.cc index 66ca8b7714..93a7c00f4c 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGPS.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGPS.cc @@ -895,4 +895,4 @@ TEST_F(Testauto_check_sbp_observation_MsgAlmanacGPS0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGPSDep.cc b/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGPSDep.cc index 8f8fe12287..d8a60d9f5c 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGPSDep.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgAlmanacGPSDep.cc @@ -917,4 +917,4 @@ TEST_F(Testauto_check_sbp_observation_MsgAlmanacGPSDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgBasePosEcef.cc b/c/test/cpp/auto_check_sbp_observation_MsgBasePosEcef.cc index baf6869d0b..6b1baa8255 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgBasePosEcef.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgBasePosEcef.cc @@ -792,4 +792,4 @@ TEST_F(Testauto_check_sbp_observation_MsgBasePosEcef0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgBasePosLLH.cc b/c/test/cpp/auto_check_sbp_observation_MsgBasePosLLH.cc index 80af2abfef..8e28337038 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgBasePosLLH.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgBasePosLLH.cc @@ -788,4 +788,4 @@ TEST_F(Testauto_check_sbp_observation_MsgBasePosLLH0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisBds.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisBds.cc index 76668ddc42..6d357066ba 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisBds.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisBds.cc @@ -1015,4 +1015,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisBds0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepA.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepA.cc index 2bb5371da7..e35b25157a 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepA.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepA.cc @@ -982,4 +982,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepC.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepC.cc index 15db755d77..ebf2787581 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepC.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepC.cc @@ -1018,4 +1018,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisDepC0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepD.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepD.cc index 1bf23185c3..a407915ac5 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepD.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisDepD.cc @@ -1018,4 +1018,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisDepD0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLO.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLO.cc index a56f2a6136..217e1c8773 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLO.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLO.cc @@ -955,4 +955,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGLO0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepA.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepA.cc index d25ba13860..edcbfbebe3 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepA.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepA.cc @@ -959,4 +959,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGLODepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepB.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepB.cc index eaebb2ce27..047b540f04 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepB.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepB.cc @@ -951,4 +951,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGLODepB0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepC.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepC.cc index cceaba41ae..2f3064339f 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepC.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepC.cc @@ -967,4 +967,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGLODepC0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepD.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepD.cc index 4fe9e0b3f3..c2fb1109c4 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepD.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGLODepD.cc @@ -974,4 +974,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGLODepD0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPS.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPS.cc index b9a8e70faa..ab1d7daa85 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPS.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPS.cc @@ -1007,4 +1007,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGPS0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPSDepE.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPSDepE.cc index aeb7671844..407f1de117 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPSDepE.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPSDepE.cc @@ -1037,4 +1037,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGPSDepE0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPSDepF.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPSDepF.cc index a23b7591a4..0752b60e83 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPSDepF.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGPSDepF.cc @@ -1029,4 +1029,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGPSDepF0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGal.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGal.cc index 72a9eda9d9..bc5cb65524 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGal.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGal.cc @@ -1023,4 +1023,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGal0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGalDepA.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGalDepA.cc index 784a0d946b..67cb176ceb 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGalDepA.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisGalDepA.cc @@ -1032,4 +1032,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisGalDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbas.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbas.cc index 505990d213..6c99cf424d 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbas.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbas.cc @@ -938,4 +938,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisSbas0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbasDepA.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbasDepA.cc index 35300a6b06..99f936d514 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbasDepA.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbasDepA.cc @@ -960,4 +960,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisSbasDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbasDepB.cc b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbasDepB.cc index d7b4ff82b7..f6edd42ba4 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbasDepB.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgEphemerisSbasDepB.cc @@ -952,4 +952,4 @@ TEST_F(Testauto_check_sbp_observation_MsgEphemerisSbasDepB0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgGloBiases.cc b/c/test/cpp/auto_check_sbp_observation_MsgGloBiases.cc index 493b7f0e4d..645ab2740d 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgGloBiases.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgGloBiases.cc @@ -796,4 +796,4 @@ TEST_F(Testauto_check_sbp_observation_MsgGloBiases0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgGnssCapb.cc b/c/test/cpp/auto_check_sbp_observation_MsgGnssCapb.cc index 76e3ff96f1..dd2553755b 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgGnssCapb.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgGnssCapb.cc @@ -889,4 +889,4 @@ TEST_F(Testauto_check_sbp_observation_MsgGnssCapb0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgGroupDelay.cc b/c/test/cpp/auto_check_sbp_observation_MsgGroupDelay.cc index 91c5c94482..cfe193e1c6 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgGroupDelay.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgGroupDelay.cc @@ -820,4 +820,4 @@ TEST_F(Testauto_check_sbp_observation_MsgGroupDelay0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgGroupDelayDepA.cc b/c/test/cpp/auto_check_sbp_observation_MsgGroupDelayDepA.cc index db13f48e2e..81636057e6 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgGroupDelayDepA.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgGroupDelayDepA.cc @@ -829,4 +829,4 @@ TEST_F(Testauto_check_sbp_observation_MsgGroupDelayDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgGroupDelayDepB.cc b/c/test/cpp/auto_check_sbp_observation_MsgGroupDelayDepB.cc index 96e885f4b4..2e6a7f0628 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgGroupDelayDepB.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgGroupDelayDepB.cc @@ -843,4 +843,4 @@ TEST_F(Testauto_check_sbp_observation_MsgGroupDelayDepB0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgIono.cc b/c/test/cpp/auto_check_sbp_observation_MsgIono.cc index d0cb62a5ca..6adae39323 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgIono.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgIono.cc @@ -826,4 +826,4 @@ TEST_F(Testauto_check_sbp_observation_MsgIono0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgObs.cc b/c/test/cpp/auto_check_sbp_observation_MsgObs.cc index a3058d6c39..01c63d6e25 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgObs.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgObs.cc @@ -2584,4 +2584,4 @@ TEST_F(Testauto_check_sbp_observation_MsgObs1, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgObsDepB.cc b/c/test/cpp/auto_check_sbp_observation_MsgObsDepB.cc index e9896b39d4..b252f357c4 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgObsDepB.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgObsDepB.cc @@ -5345,4 +5345,4 @@ TEST_F(Testauto_check_sbp_observation_MsgObsDepB4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgObsDepC.cc b/c/test/cpp/auto_check_sbp_observation_MsgObsDepC.cc index a24bed583b..391d3d9a68 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgObsDepC.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgObsDepC.cc @@ -5162,4 +5162,4 @@ TEST_F(Testauto_check_sbp_observation_MsgObsDepC4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgOsr.cc b/c/test/cpp/auto_check_sbp_observation_MsgOsr.cc index 40d7af86f5..ca61582d60 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgOsr.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgOsr.cc @@ -1690,4 +1690,4 @@ TEST_F(Testauto_check_sbp_observation_MsgOsr0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgSvAzEl.cc b/c/test/cpp/auto_check_sbp_observation_MsgSvAzEl.cc index 1d24f9d96d..d812d0ddd6 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgSvAzEl.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgSvAzEl.cc @@ -1781,4 +1781,4 @@ TEST_F(Testauto_check_sbp_observation_MsgSvAzEl0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_MsgSvConfigurationGpsDep.cc b/c/test/cpp/auto_check_sbp_observation_MsgSvConfigurationGpsDep.cc index 800d13729a..58d66ebefd 100644 --- a/c/test/cpp/auto_check_sbp_observation_MsgSvConfigurationGpsDep.cc +++ b/c/test/cpp/auto_check_sbp_observation_MsgSvConfigurationGpsDep.cc @@ -819,4 +819,4 @@ TEST_F(Testauto_check_sbp_observation_MsgSvConfigurationGpsDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_msgEphemerisDepB.cc b/c/test/cpp/auto_check_sbp_observation_msgEphemerisDepB.cc index c208a704f9..2c7a66dccc 100644 --- a/c/test/cpp/auto_check_sbp_observation_msgEphemerisDepB.cc +++ b/c/test/cpp/auto_check_sbp_observation_msgEphemerisDepB.cc @@ -5804,4 +5804,4 @@ TEST_F(Testauto_check_sbp_observation_msgEphemerisDepB5, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_msgEphemerisQzss.cc b/c/test/cpp/auto_check_sbp_observation_msgEphemerisQzss.cc index 2a443c701d..b28a45ecdb 100644 --- a/c/test/cpp/auto_check_sbp_observation_msgEphemerisQzss.cc +++ b/c/test/cpp/auto_check_sbp_observation_msgEphemerisQzss.cc @@ -1013,4 +1013,4 @@ TEST_F(Testauto_check_sbp_observation_msgEphemerisQzss0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_msgObsDepA.cc b/c/test/cpp/auto_check_sbp_observation_msgObsDepA.cc index 6070087d4a..d5cca4203c 100644 --- a/c/test/cpp/auto_check_sbp_observation_msgObsDepA.cc +++ b/c/test/cpp/auto_check_sbp_observation_msgObsDepA.cc @@ -5844,4 +5844,4 @@ TEST_F(Testauto_check_sbp_observation_msgObsDepA5, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_observation_observation_structs.cc b/c/test/cpp/auto_check_sbp_observation_observation_structs.cc index 10176ced22..d7af0bc7e0 100644 --- a/c/test/cpp/auto_check_sbp_observation_observation_structs.cc +++ b/c/test/cpp/auto_check_sbp_observation_observation_structs.cc @@ -1730,4 +1730,4 @@ TEST_F(Test_Struct_auto_check_sbp_observation_observation_structs15, } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_orientation_MsgAngularRate.cc b/c/test/cpp/auto_check_sbp_orientation_MsgAngularRate.cc index 988d169849..6e7166038d 100644 --- a/c/test/cpp/auto_check_sbp_orientation_MsgAngularRate.cc +++ b/c/test/cpp/auto_check_sbp_orientation_MsgAngularRate.cc @@ -802,4 +802,4 @@ TEST_F(Testauto_check_sbp_orientation_MsgAngularRate0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_orientation_MsgBaselineHeading.cc b/c/test/cpp/auto_check_sbp_orientation_MsgBaselineHeading.cc index ede0153172..02557227d4 100644 --- a/c/test/cpp/auto_check_sbp_orientation_MsgBaselineHeading.cc +++ b/c/test/cpp/auto_check_sbp_orientation_MsgBaselineHeading.cc @@ -812,4 +812,4 @@ TEST_F(Testauto_check_sbp_orientation_MsgBaselineHeading0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_orientation_MsgOrientEuler.cc b/c/test/cpp/auto_check_sbp_orientation_MsgOrientEuler.cc index dfe68afa40..10b9e1438b 100644 --- a/c/test/cpp/auto_check_sbp_orientation_MsgOrientEuler.cc +++ b/c/test/cpp/auto_check_sbp_orientation_MsgOrientEuler.cc @@ -824,4 +824,4 @@ TEST_F(Testauto_check_sbp_orientation_MsgOrientEuler0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_orientation_MsgOrientQuat.cc b/c/test/cpp/auto_check_sbp_orientation_MsgOrientQuat.cc index 7893710cb2..13670fc4fb 100644 --- a/c/test/cpp/auto_check_sbp_orientation_MsgOrientQuat.cc +++ b/c/test/cpp/auto_check_sbp_orientation_MsgOrientQuat.cc @@ -836,4 +836,4 @@ TEST_F(Testauto_check_sbp_orientation_MsgOrientQuat0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgAlmanac.cc b/c/test/cpp/auto_check_sbp_piksi_MsgAlmanac.cc index 95a38a22e3..af58209c77 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgAlmanac.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgAlmanac.cc @@ -722,4 +722,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgAlmanac0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgCellModemStatus.cc b/c/test/cpp/auto_check_sbp_piksi_MsgCellModemStatus.cc index cc0a8d8893..8a81bc10b7 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgCellModemStatus.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgCellModemStatus.cc @@ -3091,4 +3091,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgCellModemStatus0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgCommandOutput.cc b/c/test/cpp/auto_check_sbp_piksi_MsgCommandOutput.cc index 5a65d72d21..6c8b9db2aa 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgCommandOutput.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgCommandOutput.cc @@ -929,4 +929,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgCommandOutput0_line, AppendVprintf) { EXPECT_STREQ(sbp_msg_command_output_line_get(&t), "Some output text"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgCommandReq.cc b/c/test/cpp/auto_check_sbp_piksi_MsgCommandReq.cc index 6fa7380cec..bcff769448 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgCommandReq.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgCommandReq.cc @@ -921,4 +921,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgCommandReq0_command, AppendVprintf) { "/path/to/command with args"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgCommandResp.cc b/c/test/cpp/auto_check_sbp_piksi_MsgCommandResp.cc index afff0c3854..dd4812a581 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgCommandResp.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgCommandResp.cc @@ -774,4 +774,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgCommandResp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgCwResults.cc b/c/test/cpp/auto_check_sbp_piksi_MsgCwResults.cc index a88a35dba9..746db6d08a 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgCwResults.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgCwResults.cc @@ -727,4 +727,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgCwResults0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgCwStart.cc b/c/test/cpp/auto_check_sbp_piksi_MsgCwStart.cc index 21b286b9bc..96a52bcefe 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgCwStart.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgCwStart.cc @@ -722,4 +722,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgCwStart0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgDeviceMonitor.cc b/c/test/cpp/auto_check_sbp_piksi_MsgDeviceMonitor.cc index 52f170b0e1..ce4d547bf4 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgDeviceMonitor.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgDeviceMonitor.cc @@ -3921,4 +3921,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgDeviceMonitor4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgFrontEndGain.cc b/c/test/cpp/auto_check_sbp_piksi_MsgFrontEndGain.cc index 04bbd1e7d1..36057ccde0 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgFrontEndGain.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgFrontEndGain.cc @@ -912,4 +912,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgFrontEndGain0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgIarState.cc b/c/test/cpp/auto_check_sbp_piksi_MsgIarState.cc index 3530d50f56..3c23b5f881 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgIarState.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgIarState.cc @@ -5150,4 +5150,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgIarState6, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgInitBaseDep.cc b/c/test/cpp/auto_check_sbp_piksi_MsgInitBaseDep.cc index d9f3361223..ff827cc4cb 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgInitBaseDep.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgInitBaseDep.cc @@ -734,4 +734,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgInitBaseDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgMaskSatellite.cc b/c/test/cpp/auto_check_sbp_piksi_MsgMaskSatellite.cc index 18a39d4c90..372e301dcc 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgMaskSatellite.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgMaskSatellite.cc @@ -792,4 +792,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgMaskSatellite0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgMaskSatelliteDep.cc b/c/test/cpp/auto_check_sbp_piksi_MsgMaskSatelliteDep.cc index 9713ec19c3..82f6b7849c 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgMaskSatelliteDep.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgMaskSatelliteDep.cc @@ -801,4 +801,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgMaskSatelliteDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgNetworkBandwidthUsage.cc b/c/test/cpp/auto_check_sbp_piksi_MsgNetworkBandwidthUsage.cc index 9674a89c98..d804c1a223 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgNetworkBandwidthUsage.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgNetworkBandwidthUsage.cc @@ -1085,4 +1085,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgNetworkBandwidthUsage0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgNetworkStateReq.cc b/c/test/cpp/auto_check_sbp_piksi_MsgNetworkStateReq.cc index c9e0444d3a..705c1003d6 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgNetworkStateReq.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgNetworkStateReq.cc @@ -743,4 +743,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgNetworkStateReq0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgNetworkStateResp.cc b/c/test/cpp/auto_check_sbp_piksi_MsgNetworkStateResp.cc index 086bf636c0..0c308fa45a 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgNetworkStateResp.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgNetworkStateResp.cc @@ -1007,4 +1007,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgNetworkStateResp0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgReset.cc b/c/test/cpp/auto_check_sbp_piksi_MsgReset.cc index dfc5b8493e..9af1ff61b2 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgReset.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgReset.cc @@ -755,4 +755,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgReset0, SendWrappedSbpMsgTThroughCppState) { EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgResetDep.cc b/c/test/cpp/auto_check_sbp_piksi_MsgResetDep.cc index ad65749db6..548849bf5e 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgResetDep.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgResetDep.cc @@ -722,4 +722,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgResetDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgResetFilters.cc b/c/test/cpp/auto_check_sbp_piksi_MsgResetFilters.cc index 7d9c3e4316..c4f371a777 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgResetFilters.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgResetFilters.cc @@ -770,4 +770,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgResetFilters0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgSetTime.cc b/c/test/cpp/auto_check_sbp_piksi_MsgSetTime.cc index 06c33bfd29..c137caa526 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgSetTime.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgSetTime.cc @@ -722,4 +722,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgSetTime0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgSpecan.cc b/c/test/cpp/auto_check_sbp_piksi_MsgSpecan.cc index 74514de0c8..0927b2a871 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgSpecan.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgSpecan.cc @@ -3119,4 +3119,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgSpecan0, SendWrappedSbpMsgTThroughCppState) { EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgSpecanDep.cc b/c/test/cpp/auto_check_sbp_piksi_MsgSpecanDep.cc index c9078ba20d..cd7cf97a1b 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgSpecanDep.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgSpecanDep.cc @@ -3159,4 +3159,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgSpecanDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgThreadState.cc b/c/test/cpp/auto_check_sbp_piksi_MsgThreadState.cc index 4f123dcbad..ea4eb5c81b 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgThreadState.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgThreadState.cc @@ -8425,4 +8425,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgThreadState10, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgUartState.cc b/c/test/cpp/auto_check_sbp_piksi_MsgUartState.cc index 8368f7079b..024b3eb3d8 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgUartState.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgUartState.cc @@ -2802,4 +2802,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgUartState2, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_MsgUartStateDepA.cc b/c/test/cpp/auto_check_sbp_piksi_MsgUartStateDepA.cc index d4903405d0..366dabc97e 100644 --- a/c/test/cpp/auto_check_sbp_piksi_MsgUartStateDepA.cc +++ b/c/test/cpp/auto_check_sbp_piksi_MsgUartStateDepA.cc @@ -5554,4 +5554,4 @@ TEST_F(Testauto_check_sbp_piksi_MsgUartStateDepA5, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_piksi_piksi_structs.cc b/c/test/cpp/auto_check_sbp_piksi_piksi_structs.cc index 9485bb366f..8abb882e86 100644 --- a/c/test/cpp/auto_check_sbp_piksi_piksi_structs.cc +++ b/c/test/cpp/auto_check_sbp_piksi_piksi_structs.cc @@ -405,4 +405,4 @@ TEST_F(Test_Struct_auto_check_sbp_piksi_piksi_structs3, FreeDecodeUnderflow) { } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_profiling_MsgMeasurementPoint.cc b/c/test/cpp/auto_check_sbp_profiling_MsgMeasurementPoint.cc index 827845e74c..3a2053bc5a 100644 --- a/c/test/cpp/auto_check_sbp_profiling_MsgMeasurementPoint.cc +++ b/c/test/cpp/auto_check_sbp_profiling_MsgMeasurementPoint.cc @@ -991,4 +991,4 @@ TEST_F(Testauto_check_sbp_profiling_MsgMeasurementPoint0_func, AppendVprintf) { EXPECT_STREQ(sbp_msg_measurement_point_func_get(&t), "route()"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_profiling_MsgProfilingResourceCounter.cc b/c/test/cpp/auto_check_sbp_profiling_MsgProfilingResourceCounter.cc index f60606afe6..9fb292925c 100644 --- a/c/test/cpp/auto_check_sbp_profiling_MsgProfilingResourceCounter.cc +++ b/c/test/cpp/auto_check_sbp_profiling_MsgProfilingResourceCounter.cc @@ -1314,4 +1314,4 @@ TEST_F(Testauto_check_sbp_profiling_MsgProfilingResourceCounter0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_profiling_MsgProfilingSystemInfo.cc b/c/test/cpp/auto_check_sbp_profiling_MsgProfilingSystemInfo.cc index 998b2211a0..5bc46e19b3 100644 --- a/c/test/cpp/auto_check_sbp_profiling_MsgProfilingSystemInfo.cc +++ b/c/test/cpp/auto_check_sbp_profiling_MsgProfilingSystemInfo.cc @@ -821,4 +821,4 @@ TEST_F(Testauto_check_sbp_profiling_MsgProfilingSystemInfo0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_profiling_MsgProfilingThreadInfo.cc b/c/test/cpp/auto_check_sbp_profiling_MsgProfilingThreadInfo.cc index f1fa4e5c88..3fb39ca862 100644 --- a/c/test/cpp/auto_check_sbp_profiling_MsgProfilingThreadInfo.cc +++ b/c/test/cpp/auto_check_sbp_profiling_MsgProfilingThreadInfo.cc @@ -988,4 +988,4 @@ TEST_F(Testauto_check_sbp_profiling_MsgProfilingThreadInfo0_name, EXPECT_STREQ(sbp_msg_profiling_thread_info_name_get(&t), "Fusion engine"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_sbas_MsgSbasRaw.cc b/c/test/cpp/auto_check_sbp_sbas_MsgSbasRaw.cc index 76320fbcac..0f351c02b7 100644 --- a/c/test/cpp/auto_check_sbp_sbas_MsgSbasRaw.cc +++ b/c/test/cpp/auto_check_sbp_sbas_MsgSbasRaw.cc @@ -1023,4 +1023,4 @@ TEST_F(Testauto_check_sbp_sbas_MsgSbasRaw0, SendWrappedSbpMsgTThroughCppState) { EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexDone.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexDone.cc index d4cfba88ee..96f22e8254 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexDone.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexDone.cc @@ -767,4 +767,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsReadByIndexDone0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexReq.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexReq.cc index 8042f1018c..d38f0ac5c2 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexReq.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexReq.cc @@ -806,4 +806,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsReadByIndexReq0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexResp.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexResp.cc index 4f3e9a5ca6..2257b47601 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexResp.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadByIndexResp.cc @@ -5215,4 +5215,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsReadByIndexResp4_setting, strlen("enum:SBP,NMEA")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadReq.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadReq.cc index 744c9d03c5..342d549095 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadReq.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadReq.cc @@ -967,4 +967,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsReadReq0_setting, SectionStrlen) { strlen("setting-name")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadResp.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadResp.cc index a44eb70506..36892602d1 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadResp.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsReadResp.cc @@ -1043,4 +1043,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsReadResp0_setting, strlen("enum;value1,value2,value3")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsRegister.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsRegister.cc index dc5f7dbb77..2d7f27a75e 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsRegister.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsRegister.cc @@ -1037,4 +1037,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsRegister0_setting, strlen("enum;value1,value2,value3")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsRegisterResp.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsRegisterResp.cc index 64651794db..b50b1cebfb 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsRegisterResp.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsRegisterResp.cc @@ -1071,4 +1071,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsRegisterResp0_setting, strlen("enum;value1,value2,value3")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsSave.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsSave.cc index ddb5fffb6a..243c32000c 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsSave.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsSave.cc @@ -740,4 +740,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsSave0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsWrite.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsWrite.cc index 88fbcfdca4..2e0f588961 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsWrite.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsWrite.cc @@ -986,4 +986,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsWrite0_setting, SectionStrlen) { strlen("setting-value")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_settings_MsgSettingsWriteResp.cc b/c/test/cpp/auto_check_sbp_settings_MsgSettingsWriteResp.cc index 377279c388..f1e92fcc28 100644 --- a/c/test/cpp/auto_check_sbp_settings_MsgSettingsWriteResp.cc +++ b/c/test/cpp/auto_check_sbp_settings_MsgSettingsWriteResp.cc @@ -1054,4 +1054,4 @@ TEST_F(Testauto_check_sbp_settings_MsgSettingsWriteResp0_setting, strlen("enum;value1,value2,value3")); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgAesCmacSignature.cc b/c/test/cpp/auto_check_sbp_signing_MsgAesCmacSignature.cc index f3ef5ed3e6..eeb59aea9c 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgAesCmacSignature.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgAesCmacSignature.cc @@ -1027,4 +1027,4 @@ TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgCertificateChain.cc b/c/test/cpp/auto_check_sbp_signing_MsgCertificateChain.cc index f6986c1947..2e50587ee8 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgCertificateChain.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgCertificateChain.cc @@ -2093,4 +2093,4 @@ TEST_F(Testauto_check_sbp_signing_MsgCertificateChain0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgCertificateChainDep.cc b/c/test/cpp/auto_check_sbp_signing_MsgCertificateChainDep.cc index f5cc1d73b5..b4f5f9e715 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgCertificateChainDep.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgCertificateChainDep.cc @@ -2028,4 +2028,4 @@ TEST_F(Testauto_check_sbp_signing_MsgCertificateChainDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgEcdsaCertificate.cc b/c/test/cpp/auto_check_sbp_signing_MsgEcdsaCertificate.cc index d6ef1406fa..4a56aa4491 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgEcdsaCertificate.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgEcdsaCertificate.cc @@ -3350,4 +3350,4 @@ TEST_F(Testauto_check_sbp_signing_MsgEcdsaCertificate0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignature.cc b/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignature.cc index b869c9d15e..d381d0a1a0 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignature.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignature.cc @@ -1541,4 +1541,4 @@ TEST_F(Testauto_check_sbp_signing_MsgEcdsaSignature0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignatureDepA.cc b/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignatureDepA.cc index fd1832af0e..aaaa3b8e1d 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignatureDepA.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignatureDepA.cc @@ -3300,4 +3300,4 @@ TEST_F(Testauto_check_sbp_signing_MsgEcdsaSignatureDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignatureDepB.cc b/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignatureDepB.cc index 8b05d0988a..cf997cb726 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignatureDepB.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgEcdsaSignatureDepB.cc @@ -1552,4 +1552,4 @@ TEST_F(Testauto_check_sbp_signing_MsgEcdsaSignatureDepB0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgEd25519CertificateDep.cc b/c/test/cpp/auto_check_sbp_signing_MsgEd25519CertificateDep.cc index f6785e25a4..b34180e2f6 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgEd25519CertificateDep.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgEd25519CertificateDep.cc @@ -1869,4 +1869,4 @@ TEST_F(Testauto_check_sbp_signing_MsgEd25519CertificateDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgEd25519SignatureDepA.cc b/c/test/cpp/auto_check_sbp_signing_MsgEd25519SignatureDepA.cc index 26d491b082..6b237e80c8 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgEd25519SignatureDepA.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgEd25519SignatureDepA.cc @@ -1835,4 +1835,4 @@ TEST_F(Testauto_check_sbp_signing_MsgEd25519SignatureDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_MsgEd25519SignatureDepB.cc b/c/test/cpp/auto_check_sbp_signing_MsgEd25519SignatureDepB.cc index e20ffc364b..b3d782aaac 100644 --- a/c/test/cpp/auto_check_sbp_signing_MsgEd25519SignatureDepB.cc +++ b/c/test/cpp/auto_check_sbp_signing_MsgEd25519SignatureDepB.cc @@ -1849,4 +1849,4 @@ TEST_F(Testauto_check_sbp_signing_MsgEd25519SignatureDepB0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_signing_signing_structs.cc b/c/test/cpp/auto_check_sbp_signing_signing_structs.cc index 5c473f0e6c..84acd14696 100644 --- a/c/test/cpp/auto_check_sbp_signing_signing_structs.cc +++ b/c/test/cpp/auto_check_sbp_signing_signing_structs.cc @@ -367,4 +367,4 @@ TEST_F(Test_Struct_auto_check_sbp_signing_signing_structs1, } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_soln_meta_soln_meta_structs.cc b/c/test/cpp/auto_check_sbp_soln_meta_soln_meta_structs.cc index a4382631f0..5a63dcde5a 100644 --- a/c/test/cpp/auto_check_sbp_soln_meta_soln_meta_structs.cc +++ b/c/test/cpp/auto_check_sbp_soln_meta_soln_meta_structs.cc @@ -407,4 +407,4 @@ TEST_F(Test_Struct_auto_check_sbp_soln_meta_soln_meta_structs3, } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_solution_meta_MsgSolnMeta.cc b/c/test/cpp/auto_check_sbp_solution_meta_MsgSolnMeta.cc index 80d5cd9daf..d11c90faaa 100644 --- a/c/test/cpp/auto_check_sbp_solution_meta_MsgSolnMeta.cc +++ b/c/test/cpp/auto_check_sbp_solution_meta_MsgSolnMeta.cc @@ -2877,4 +2877,4 @@ TEST_F(Testauto_check_sbp_solution_meta_MsgSolnMeta0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_solution_meta_MsgSolnMetaDepA.cc b/c/test/cpp/auto_check_sbp_solution_meta_MsgSolnMetaDepA.cc index 81bb0f7199..2c173d7010 100644 --- a/c/test/cpp/auto_check_sbp_solution_meta_MsgSolnMetaDepA.cc +++ b/c/test/cpp/auto_check_sbp_solution_meta_MsgSolnMetaDepA.cc @@ -2897,4 +2897,4 @@ TEST_F(Testauto_check_sbp_solution_meta_MsgSolnMetaDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrCodeBiases.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrCodeBiases.cc index 04824b5261..09701b028d 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrCodeBiases.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrCodeBiases.cc @@ -2158,4 +2158,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrCodeBiases0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds.cc index 35d78d494c..2a1d4dc28e 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds.cc @@ -1029,4 +1029,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrCodePhaseBiasesBounds0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGridDefinitionDepA.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGridDefinitionDepA.cc index f33febdd25..299425222d 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGridDefinitionDepA.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGridDefinitionDepA.cc @@ -3104,4 +3104,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrGridDefinitionDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrection.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrection.cc index 362e448c49..60206273e5 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrection.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrection.cc @@ -2498,4 +2498,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrGriddedCorrection0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc index d01bb4d24d..b65c27540b 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc @@ -2015,4 +2015,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds1, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA.cc index 23d85674a3..e09f69f1f9 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA.cc @@ -2533,4 +2533,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrGriddedCorrectionDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA.cc index a050120ede..6299762cd3 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA.cc @@ -2470,4 +2470,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrGriddedCorrectionNoStdDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClock.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClock.cc index aed089c472..9add36575f 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClock.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClock.cc @@ -884,4 +884,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrOrbitClock0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockBounds.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockBounds.cc index 3c4aa378b1..bd858e6e5e 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockBounds.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockBounds.cc @@ -1010,4 +1010,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrOrbitClockBounds0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation.cc index 464bef4ec4..ba83e4ca42 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation.cc @@ -952,4 +952,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrOrbitClockBoundsDegradation0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockDepA.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockDepA.cc index e0844a2b43..091804dd6a 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockDepA.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrOrbitClockDepA.cc @@ -893,4 +893,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrOrbitClockDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrPhaseBiases.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrPhaseBiases.cc index b8fcd6c228..62038a9f3c 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrPhaseBiases.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrPhaseBiases.cc @@ -2093,4 +2093,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrPhaseBiases0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrSatelliteApc.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrSatelliteApc.cc index b9d84dde80..325c6b00f9 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrSatelliteApc.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrSatelliteApc.cc @@ -1074,4 +1074,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrSatelliteApc0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrSatelliteApcDepA.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrSatelliteApcDepA.cc index c0ab54a977..d8d53f3162 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrSatelliteApcDepA.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrSatelliteApcDepA.cc @@ -2534,4 +2534,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrSatelliteApcDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrection.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrection.cc index 98aca86f43..a5ad481ae5 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrection.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrection.cc @@ -991,4 +991,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrStecCorrection0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrectionDep.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrectionDep.cc index 9f2a3372be..ce3a255ef8 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrectionDep.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrectionDep.cc @@ -2239,4 +2239,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrStecCorrectionDep0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrectionDepA.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrectionDepA.cc index 659f5227ce..8c92cd5a12 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrectionDepA.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrStecCorrectionDepA.cc @@ -2296,4 +2296,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrStecCorrectionDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinition.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinition.cc index 822040a2a7..e1835a0f9a 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinition.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinition.cc @@ -875,4 +875,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrTileDefinition0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinitionDepA.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinitionDepA.cc index ce3a7e3b9d..bb4af80fc3 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinitionDepA.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinitionDepA.cc @@ -855,4 +855,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrTileDefinitionDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinitionDepB.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinitionDepB.cc index fd48ae06b7..1de04311c9 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinitionDepB.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrTileDefinitionDepB.cc @@ -862,4 +862,4 @@ TEST_F(Testauto_check_sbp_ssr_MsgSsrTileDefinitionDepB0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_ssr_ssr_structs.cc b/c/test/cpp/auto_check_sbp_ssr_ssr_structs.cc index 9a8aa7c5bd..a49bc69397 100644 --- a/c/test/cpp/auto_check_sbp_ssr_ssr_structs.cc +++ b/c/test/cpp/auto_check_sbp_ssr_ssr_structs.cc @@ -1826,4 +1826,4 @@ TEST_F(Test_Struct_auto_check_sbp_ssr_ssr_structs17, FreeDecodeUnderflow) { } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgCsacTelemetry.cc b/c/test/cpp/auto_check_sbp_system_MsgCsacTelemetry.cc index 6a05f3cd96..d3f5336a39 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgCsacTelemetry.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgCsacTelemetry.cc @@ -932,4 +932,4 @@ TEST_F(Testauto_check_sbp_system_MsgCsacTelemetry0_telemetry, AppendVprintf) { EXPECT_STREQ(sbp_msg_csac_telemetry_telemetry_get(&t), "some data"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgCsacTelemetryLabels.cc b/c/test/cpp/auto_check_sbp_system_MsgCsacTelemetryLabels.cc index 5f83eed37e..8662564623 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgCsacTelemetryLabels.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgCsacTelemetryLabels.cc @@ -963,4 +963,4 @@ TEST_F(Testauto_check_sbp_system_MsgCsacTelemetryLabels0_telemetry_labels, "some labels"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgDgnssStatus.cc b/c/test/cpp/auto_check_sbp_system_MsgDgnssStatus.cc index f23dcb062d..057299f40d 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgDgnssStatus.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgDgnssStatus.cc @@ -935,4 +935,4 @@ TEST_F(Testauto_check_sbp_system_MsgDgnssStatus0_source, AppendVprintf) { EXPECT_STREQ(sbp_msg_dgnss_status_source_get(&t), "Skylark"); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgGnssTimeOffset.cc b/c/test/cpp/auto_check_sbp_system_MsgGnssTimeOffset.cc index ec96555805..95c29f1ed0 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgGnssTimeOffset.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgGnssTimeOffset.cc @@ -800,4 +800,4 @@ TEST_F(Testauto_check_sbp_system_MsgGnssTimeOffset0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgGroupMeta.cc b/c/test/cpp/auto_check_sbp_system_MsgGroupMeta.cc index 1ffde667aa..360fcb29dc 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgGroupMeta.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgGroupMeta.cc @@ -1712,4 +1712,4 @@ TEST_F(Testauto_check_sbp_system_MsgGroupMeta1, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgHeartbeat.cc b/c/test/cpp/auto_check_sbp_system_MsgHeartbeat.cc index f1666fc22d..71b8dfb46b 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgHeartbeat.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgHeartbeat.cc @@ -1496,4 +1496,4 @@ TEST_F(Testauto_check_sbp_system_MsgHeartbeat1, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgInsStatus.cc b/c/test/cpp/auto_check_sbp_system_MsgInsStatus.cc index 6134d81bd9..a61c3ede73 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgInsStatus.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgInsStatus.cc @@ -765,4 +765,4 @@ TEST_F(Testauto_check_sbp_system_MsgInsStatus0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgInsUpdates.cc b/c/test/cpp/auto_check_sbp_system_MsgInsUpdates.cc index 842ccaf5e6..598ab94805 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgInsUpdates.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgInsUpdates.cc @@ -806,4 +806,4 @@ TEST_F(Testauto_check_sbp_system_MsgInsUpdates0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgPpsTime.cc b/c/test/cpp/auto_check_sbp_system_MsgPpsTime.cc index 1d12771b8d..bcfc176d23 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgPpsTime.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgPpsTime.cc @@ -764,4 +764,4 @@ TEST_F(Testauto_check_sbp_system_MsgPpsTime0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgSensorAidEvent.cc b/c/test/cpp/auto_check_sbp_system_MsgSensorAidEvent.cc index 363aa1c16a..f816c9066a 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgSensorAidEvent.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgSensorAidEvent.cc @@ -829,4 +829,4 @@ TEST_F(Testauto_check_sbp_system_MsgSensorAidEvent0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgStartup.cc b/c/test/cpp/auto_check_sbp_system_MsgStartup.cc index 7111d9a000..1d14d112b9 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgStartup.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgStartup.cc @@ -1522,4 +1522,4 @@ TEST_F(Testauto_check_sbp_system_MsgStartup1, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgStatusJournal.cc b/c/test/cpp/auto_check_sbp_system_MsgStatusJournal.cc index b7e5649e19..23d1332a30 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgStatusJournal.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgStatusJournal.cc @@ -1754,4 +1754,4 @@ TEST_F(Testauto_check_sbp_system_MsgStatusJournal1, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_MsgStatusReport.cc b/c/test/cpp/auto_check_sbp_system_MsgStatusReport.cc index cf12b4cb44..727fa239d5 100644 --- a/c/test/cpp/auto_check_sbp_system_MsgStatusReport.cc +++ b/c/test/cpp/auto_check_sbp_system_MsgStatusReport.cc @@ -2338,4 +2338,4 @@ TEST_F(Testauto_check_sbp_system_MsgStatusReport0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_system_system_structs.cc b/c/test/cpp/auto_check_sbp_system_system_structs.cc index e29c640c70..8520bc85f4 100644 --- a/c/test/cpp/auto_check_sbp_system_system_structs.cc +++ b/c/test/cpp/auto_check_sbp_system_system_structs.cc @@ -221,4 +221,4 @@ TEST_F(Test_Struct_auto_check_sbp_system_system_structs1, FreeDecodeUnderflow) { } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_telemetry_MsgTelSv.cc b/c/test/cpp/auto_check_sbp_telemetry_MsgTelSv.cc index 5363ee475c..5af40e0e16 100644 --- a/c/test/cpp/auto_check_sbp_telemetry_MsgTelSv.cc +++ b/c/test/cpp/auto_check_sbp_telemetry_MsgTelSv.cc @@ -880,4 +880,4 @@ TEST_F(Testauto_check_sbp_telemetry_MsgTelSv0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_telemetry_acquisition_structs.cc b/c/test/cpp/auto_check_sbp_telemetry_acquisition_structs.cc index 72f697afad..66295eeb50 100644 --- a/c/test/cpp/auto_check_sbp_telemetry_acquisition_structs.cc +++ b/c/test/cpp/auto_check_sbp_telemetry_acquisition_structs.cc @@ -244,4 +244,4 @@ TEST_F(Test_Struct_auto_check_sbp_telemetry_acquisition_structs1, } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_telemetry_telemetry_structs.cc b/c/test/cpp/auto_check_sbp_telemetry_telemetry_structs.cc index e7e2872cb3..59ec556420 100644 --- a/c/test/cpp/auto_check_sbp_telemetry_telemetry_structs.cc +++ b/c/test/cpp/auto_check_sbp_telemetry_telemetry_structs.cc @@ -129,4 +129,4 @@ TEST_F(Test_Struct_auto_check_sbp_telemetry_telemetry_structs0, } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgMeasurementState.cc b/c/test/cpp/auto_check_sbp_tracking_MsgMeasurementState.cc index 51b9380a70..3096bc6a09 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgMeasurementState.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgMeasurementState.cc @@ -2805,4 +2805,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgMeasurementState0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIq.cc b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIq.cc index a3eb7799fa..94cec53983 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIq.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIq.cc @@ -830,4 +830,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgTrackingIq0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIqDepA.cc b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIqDepA.cc index f927f80a68..c472443dcd 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIqDepA.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIqDepA.cc @@ -851,4 +851,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgTrackingIqDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIqDepB.cc b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIqDepB.cc index 10d24553a4..14f046827d 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIqDepB.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingIqDepB.cc @@ -844,4 +844,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgTrackingIqDepB0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingState.cc b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingState.cc index 5e4f42904b..257eb47cc7 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingState.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingState.cc @@ -8775,4 +8775,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgTrackingState5, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDepB.cc b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDepB.cc index ebcd395634..18c02b8647 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDepB.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDepB.cc @@ -1918,4 +1918,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgTrackingStateDepB0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDetailedDep.cc b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDetailedDep.cc index 134233d324..db319566df 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDetailedDep.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDetailedDep.cc @@ -4793,4 +4793,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgTrackingStateDetailedDep4, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDetailedDepA.cc b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDetailedDepA.cc index 3231c76335..fd457214a2 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDetailedDepA.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgTrackingStateDetailedDepA.cc @@ -984,4 +984,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgTrackingStateDetailedDepA0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_MsgtrackingStateDepA.cc b/c/test/cpp/auto_check_sbp_tracking_MsgtrackingStateDepA.cc index 2bf32f6d27..3d443756b4 100644 --- a/c/test/cpp/auto_check_sbp_tracking_MsgtrackingStateDepA.cc +++ b/c/test/cpp/auto_check_sbp_tracking_MsgtrackingStateDepA.cc @@ -6251,4 +6251,4 @@ TEST_F(Testauto_check_sbp_tracking_MsgtrackingStateDepA5, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_tracking_tracking_structs.cc b/c/test/cpp/auto_check_sbp_tracking_tracking_structs.cc index 1c603b0cd7..01d9cd880e 100644 --- a/c/test/cpp/auto_check_sbp_tracking_tracking_structs.cc +++ b/c/test/cpp/auto_check_sbp_tracking_tracking_structs.cc @@ -632,4 +632,4 @@ TEST_F(Test_Struct_auto_check_sbp_tracking_tracking_structs5, } } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_user_MsgUserData.cc b/c/test/cpp/auto_check_sbp_user_MsgUserData.cc index 3a69f0e9b3..11930e932a 100644 --- a/c/test/cpp/auto_check_sbp_user_MsgUserData.cc +++ b/c/test/cpp/auto_check_sbp_user_MsgUserData.cc @@ -3099,4 +3099,4 @@ TEST_F(Testauto_check_sbp_user_MsgUserData0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_vehicle_MsgOdometry.cc b/c/test/cpp/auto_check_sbp_vehicle_MsgOdometry.cc index ea4e3b0819..6e7e38185f 100644 --- a/c/test/cpp/auto_check_sbp_vehicle_MsgOdometry.cc +++ b/c/test/cpp/auto_check_sbp_vehicle_MsgOdometry.cc @@ -772,4 +772,4 @@ TEST_F(Testauto_check_sbp_vehicle_MsgOdometry0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/c/test/cpp/auto_check_sbp_vehicle_MsgWheeltick.cc b/c/test/cpp/auto_check_sbp_vehicle_MsgWheeltick.cc index ae6c49c2aa..8279fa2f64 100644 --- a/c/test/cpp/auto_check_sbp_vehicle_MsgWheeltick.cc +++ b/c/test/cpp/auto_check_sbp_vehicle_MsgWheeltick.cc @@ -782,4 +782,4 @@ TEST_F(Testauto_check_sbp_vehicle_MsgWheeltick0, EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); } -} // namespace \ No newline at end of file +} // namespace diff --git a/docs/sbp.pdf b/docs/sbp.pdf index 7b879fc442..8f34ecbdeb 100644 Binary files a/docs/sbp.pdf and b/docs/sbp.pdf differ diff --git a/generator/json2test.py b/generator/json2test.py index 83d01c61bc..1e81f69c04 100644 --- a/generator/json2test.py +++ b/generator/json2test.py @@ -1,4 +1,4 @@ -# Copyright (C) 2022 Swift Navigation Inc. +# Copyright (C) 2024 Swift Navigation Inc. # Contact: https://support.swiftnav.com # # This source is subject to the license found in the file 'LICENSE' which must @@ -7,6 +7,17 @@ # 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. +# +# /// script +# requires-python = ">=3.12" +# dependencies = [ +# "jinja2 ~= 3.1", +# "pytest ~= 8.3", +# "pyyaml ~= 6.0", +# "sbp @ file:///${PROJECT_ROOT}/../python", +# ] +# /// + """ Generate test case from json input """ @@ -42,7 +53,7 @@ def write_test(msg, output, test_set_name="swiftnav"): module = msg.__class__.__module__ name = msg.__class__.__name__ test_msg_data = msg_reducer(msg) - test_data = TestSpecification.from_msg(msg, test_msg_data) + test_data = TestSpecification.from_msg(msg, test_msg_data, test_msg_data['name']) now_str = datetime.datetime.now().isoformat(" ") test_package = PackageTestSpecification( package=module, diff --git a/generator/missing.py b/generator/missing.py index 2d4a1fc8af..b79ad4461e 100644 --- a/generator/missing.py +++ b/generator/missing.py @@ -62,7 +62,7 @@ def write_test(msg, test_set_name="swiftnav"): ) filename = os.path.join(*path_parts) test_msg_data = msg_reducer(msg) - test_data = TestSpecification.from_msg(msg, test_msg_data) + test_data = TestSpecification.from_msg(msg, test_msg_data, test_msg_data['name']) now_str = datetime.datetime.now().isoformat(" ") test_package = PackageTestSpecification( package=module, diff --git a/generator/requirements.txt b/generator/requirements.txt index dd515b88c8..347a1a4320 100644 --- a/generator/requirements.txt +++ b/generator/requirements.txt @@ -13,5 +13,6 @@ pytest~=6.2 pytest-cov~=3.0 pytest-xdist~=2.4 pyyaml # PyYAML API is very stable -tox # Tox is (generally) designed to be very backwards compatible +tox==3.25.0 +tox-run-command==0.4 voluptuous~=0.12 diff --git a/generator/sbpg/targets/resources/rust/sbp_cargo.toml b/generator/sbpg/targets/resources/rust/sbp_cargo.toml index df3c774b85..101954439e 100644 --- a/generator/sbpg/targets/resources/rust/sbp_cargo.toml +++ b/generator/sbpg/targets/resources/rust/sbp_cargo.toml @@ -1,7 +1,7 @@ ######################################################################### ### ### ### WARNING: This file is generated, please update the template at: ### -### generator/sbpg/targets/resources/rust/sbp-cargo.toml ### +### generator/sbpg/targets/resources/rust/sbp_cargo.toml ### ### ### ######################################################################### @@ -34,7 +34,7 @@ crc16 = "0.4" log = "0.4" [dependencies.swiftnav] -version = "0.8" +version = "0.10" optional = true [dependencies.slotmap] diff --git a/generator/sbpg/targets/templating.py b/generator/sbpg/targets/templating.py index 4615108e40..279f3ff6bb 100755 --- a/generator/sbpg/targets/templating.py +++ b/generator/sbpg/targets/templating.py @@ -25,6 +25,7 @@ variable_end_string = ')))', comment_start_string = '((=', comment_end_string = '=))', + keep_trailing_newline=True, loader=jinja2.PackageLoader('sbpg', 'targets/resources'), ) diff --git a/generator/sbpg/test_structs.py b/generator/sbpg/test_structs.py index 4a280518dc..6726197ce3 100644 --- a/generator/sbpg/test_structs.py +++ b/generator/sbpg/test_structs.py @@ -86,7 +86,7 @@ class TestSpecification(object): """A message description to generate tests for. """ - def __init__(self, raw_packet, msg_type, raw_json, msg, sbp, test_msg_data=None): + def __init__(self, raw_packet, msg_type, raw_json, msg, sbp, test_msg_data=None, msg_name=None): self.raw_packet = raw_packet self.raw_json = raw_json self.raw_json_obj = json.loads(raw_json) @@ -99,7 +99,8 @@ def __init__(self, raw_packet, msg_type, raw_json, msg, sbp, test_msg_data=None) self.payload = base64.standard_b64decode(self.sbp['payload']) self.payload_as_byte_array = list(bytearray(self.payload)) self.payload_len_for_encoding_buf = len(self.payload) if len(self.payload) > 0 else 1 - msg_name = msg['name'] + if msg_name is None: + msg_name = msg['name'] for i in range(0, len(ACRONYMS)): msg_name = re.sub(ACRONYMS[i], LOWER_ACRONYMS[i], msg_name) self.enum_value = "Sbp" + msg_name @@ -110,7 +111,7 @@ def __init__(self, raw_packet, msg_type, raw_json, msg, sbp, test_msg_data=None) self.fn_prefix = self.struct_name[:-2] @classmethod - def from_msg(cls, msg_instance, test_msg_data): + def from_msg(cls, msg_instance, test_msg_data, name): msg = msg_instance sbp = { "crc": "0x{:X}".format(msg.crc), @@ -127,6 +128,7 @@ def from_msg(cls, msg_instance, test_msg_data): msg, sbp, test_msg_data=test_msg_data, + msg_name=name, ) def __repr__(self): diff --git a/haskell/sbp.cabal b/haskell/sbp.cabal index 94ad36289f..b00832cb3c 100644 --- a/haskell/sbp.cabal +++ b/haskell/sbp.cabal @@ -1,5 +1,5 @@ name: sbp -version: 6.1.1-alpha +version: 6.2.2-alpha synopsis: SwiftNav's SBP Library homepage: https://github.com/swift-nav/libsbp license: MIT @@ -174,4 +174,4 @@ test-suite test , tasty , tasty-hunit ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall - default-language: Haskell2010 \ No newline at end of file + default-language: Haskell2010 diff --git a/haskell/src/SwiftNav/SBP.hs b/haskell/src/SwiftNav/SBP.hs index da5bf36979..15c78375fa 100644 --- a/haskell/src/SwiftNav/SBP.hs +++ b/haskell/src/SwiftNav/SBP.hs @@ -40,4 +40,4 @@ import SwiftNav.SBP.System as Exports import SwiftNav.SBP.Telemetry as Exports import SwiftNav.SBP.Tracking as Exports import SwiftNav.SBP.User as Exports -import SwiftNav.SBP.Vehicle as Exports \ No newline at end of file +import SwiftNav.SBP.Vehicle as Exports diff --git a/haskell/src/SwiftNav/SBP/Acquisition.hs b/haskell/src/SwiftNav/SBP/Acquisition.hs index 1c6385ec2f..b1604b646f 100644 --- a/haskell/src/SwiftNav/SBP/Acquisition.hs +++ b/haskell/src/SwiftNav/SBP/Acquisition.hs @@ -356,3 +356,4 @@ instance Binary MsgAcqSvProfileDep where $(makeSBP 'msgAcqSvProfileDep ''MsgAcqSvProfileDep) $(makeJSON "_msgAcqSvProfileDep_" ''MsgAcqSvProfileDep) $(makeLenses ''MsgAcqSvProfileDep) + diff --git a/haskell/src/SwiftNav/SBP/Bootload.hs b/haskell/src/SwiftNav/SBP/Bootload.hs index 30eabb07ab..f6684060ee 100644 --- a/haskell/src/SwiftNav/SBP/Bootload.hs +++ b/haskell/src/SwiftNav/SBP/Bootload.hs @@ -187,3 +187,4 @@ instance Binary MsgBootloaderHandshakeDepA where $(makeSBP 'msgBootloaderHandshakeDepA ''MsgBootloaderHandshakeDepA) $(makeJSON "_msgBootloaderHandshakeDepA_" ''MsgBootloaderHandshakeDepA) $(makeLenses ''MsgBootloaderHandshakeDepA) + diff --git a/haskell/src/SwiftNav/SBP/ExtEvents.hs b/haskell/src/SwiftNav/SBP/ExtEvents.hs index b2bf96a8b3..29d8427560 100644 --- a/haskell/src/SwiftNav/SBP/ExtEvents.hs +++ b/haskell/src/SwiftNav/SBP/ExtEvents.hs @@ -76,3 +76,4 @@ instance Binary MsgExtEvent where $(makeSBP 'msgExtEvent ''MsgExtEvent) $(makeJSON "_msgExtEvent_" ''MsgExtEvent) $(makeLenses ''MsgExtEvent) + diff --git a/haskell/src/SwiftNav/SBP/FileIo.hs b/haskell/src/SwiftNav/SBP/FileIo.hs index fbd0ca4656..05e0a9400e 100644 --- a/haskell/src/SwiftNav/SBP/FileIo.hs +++ b/haskell/src/SwiftNav/SBP/FileIo.hs @@ -339,3 +339,4 @@ instance Binary MsgFileioConfigResp where $(makeSBP 'msgFileioConfigResp ''MsgFileioConfigResp) $(makeJSON "_msgFileioConfigResp_" ''MsgFileioConfigResp) $(makeLenses ''MsgFileioConfigResp) + diff --git a/haskell/src/SwiftNav/SBP/Flash.hs b/haskell/src/SwiftNav/SBP/Flash.hs index 105354c6f9..f7f7dded37 100644 --- a/haskell/src/SwiftNav/SBP/Flash.hs +++ b/haskell/src/SwiftNav/SBP/Flash.hs @@ -323,3 +323,4 @@ instance Binary MsgM25FlashWriteStatus where $(makeSBP 'msgM25FlashWriteStatus ''MsgM25FlashWriteStatus) $(makeJSON "_msgM25FlashWriteStatus_" ''MsgM25FlashWriteStatus) $(makeLenses ''MsgM25FlashWriteStatus) + diff --git a/haskell/src/SwiftNav/SBP/Gnss.hs b/haskell/src/SwiftNav/SBP/Gnss.hs index fe93f18097..ef18c4e42a 100644 --- a/haskell/src/SwiftNav/SBP/Gnss.hs +++ b/haskell/src/SwiftNav/SBP/Gnss.hs @@ -216,3 +216,4 @@ instance Binary CarrierPhase where $(makeJSON "_carrierPhase_" ''CarrierPhase) $(makeLenses ''CarrierPhase) + diff --git a/haskell/src/SwiftNav/SBP/Imu.hs b/haskell/src/SwiftNav/SBP/Imu.hs index 4bdc4aae66..b08774e50c 100644 --- a/haskell/src/SwiftNav/SBP/Imu.hs +++ b/haskell/src/SwiftNav/SBP/Imu.hs @@ -127,3 +127,59 @@ instance Binary MsgImuAux where $(makeSBP 'msgImuAux ''MsgImuAux) $(makeJSON "_msgImuAux_" ''MsgImuAux) $(makeLenses ''MsgImuAux) + +msgImuComp :: Word16 +msgImuComp = 0x0905 + +-- | SBP class for message MSG_IMU_COMP (0x0905). +-- +-- Data from the Inertial Measurement Unit, containing accelerometer and +-- gyroscope readings compensated for estimated errors and constant physical +-- effects. The output is valid for inertially referenced center of +-- navigation (IMU body frame) represented in vehicle body frame. +data MsgImuComp = MsgImuComp + { _msgImuComp_time :: !Word64 + -- ^ Microseconds since reference epoch + , _msgImuComp_flags :: !Word16 + -- ^ Contains the applied compensation parameters and time synchronization + -- mode + , _msgImuComp_acc_comp_x :: !Int32 + -- ^ Compensated acceleration X axis + , _msgImuComp_acc_comp_y :: !Int32 + -- ^ Compensated acceleration Y axis + , _msgImuComp_acc_comp_z :: !Int32 + -- ^ Compensated acceleration Z axis + , _msgImuComp_gyr_comp_x :: !Int32 + -- ^ Compensated angular rate X axis + , _msgImuComp_gyr_comp_y :: !Int32 + -- ^ Compensated angular rate Y axis + , _msgImuComp_gyr_comp_z :: !Int32 + -- ^ Compensated angular rate Z axis + } deriving ( Show, Read, Eq ) + +instance Binary MsgImuComp where + get = do + _msgImuComp_time <- getWord64le + _msgImuComp_flags <- getWord16le + _msgImuComp_acc_comp_x <- (fromIntegral <$> getWord32le) + _msgImuComp_acc_comp_y <- (fromIntegral <$> getWord32le) + _msgImuComp_acc_comp_z <- (fromIntegral <$> getWord32le) + _msgImuComp_gyr_comp_x <- (fromIntegral <$> getWord32le) + _msgImuComp_gyr_comp_y <- (fromIntegral <$> getWord32le) + _msgImuComp_gyr_comp_z <- (fromIntegral <$> getWord32le) + pure MsgImuComp {..} + + put MsgImuComp {..} = do + putWord64le _msgImuComp_time + putWord16le _msgImuComp_flags + (putWord32le . fromIntegral) _msgImuComp_acc_comp_x + (putWord32le . fromIntegral) _msgImuComp_acc_comp_y + (putWord32le . fromIntegral) _msgImuComp_acc_comp_z + (putWord32le . fromIntegral) _msgImuComp_gyr_comp_x + (putWord32le . fromIntegral) _msgImuComp_gyr_comp_y + (putWord32le . fromIntegral) _msgImuComp_gyr_comp_z + +$(makeSBP 'msgImuComp ''MsgImuComp) +$(makeJSON "_msgImuComp_" ''MsgImuComp) +$(makeLenses ''MsgImuComp) + diff --git a/haskell/src/SwiftNav/SBP/Integrity.hs b/haskell/src/SwiftNav/SBP/Integrity.hs index 8e9e7ccb63..f4782d9d5a 100644 --- a/haskell/src/SwiftNav/SBP/Integrity.hs +++ b/haskell/src/SwiftNav/SBP/Integrity.hs @@ -385,3 +385,4 @@ instance Binary MsgAcknowledge where $(makeSBP 'msgAcknowledge ''MsgAcknowledge) $(makeJSON "_msgAcknowledge_" ''MsgAcknowledge) $(makeLenses ''MsgAcknowledge) + diff --git a/haskell/src/SwiftNav/SBP/Linux.hs b/haskell/src/SwiftNav/SBP/Linux.hs index 4a42474915..8cc7a075df 100644 --- a/haskell/src/SwiftNav/SBP/Linux.hs +++ b/haskell/src/SwiftNav/SBP/Linux.hs @@ -511,3 +511,4 @@ instance Binary MsgLinuxSysState where $(makeSBP 'msgLinuxSysState ''MsgLinuxSysState) $(makeJSON "_msgLinuxSysState_" ''MsgLinuxSysState) $(makeLenses ''MsgLinuxSysState) + diff --git a/haskell/src/SwiftNav/SBP/Logging.hs b/haskell/src/SwiftNav/SBP/Logging.hs index 029e732e2f..3c4e186286 100644 --- a/haskell/src/SwiftNav/SBP/Logging.hs +++ b/haskell/src/SwiftNav/SBP/Logging.hs @@ -124,3 +124,4 @@ instance Binary MsgPrintDep where $(makeSBP 'msgPrintDep ''MsgPrintDep) $(makeJSON "_msgPrintDep_" ''MsgPrintDep) $(makeLenses ''MsgPrintDep) + diff --git a/haskell/src/SwiftNav/SBP/Mag.hs b/haskell/src/SwiftNav/SBP/Mag.hs index 57a599b661..58d374a37b 100644 --- a/haskell/src/SwiftNav/SBP/Mag.hs +++ b/haskell/src/SwiftNav/SBP/Mag.hs @@ -74,3 +74,4 @@ instance Binary MsgMagRaw where $(makeSBP 'msgMagRaw ''MsgMagRaw) $(makeJSON "_msgMagRaw_" ''MsgMagRaw) $(makeLenses ''MsgMagRaw) + diff --git a/haskell/src/SwiftNav/SBP/Msg.hs b/haskell/src/SwiftNav/SBP/Msg.hs index 0cbaebe6d4..cbd229261f 100644 --- a/haskell/src/SwiftNav/SBP/Msg.hs +++ b/haskell/src/SwiftNav/SBP/Msg.hs @@ -156,6 +156,7 @@ data SBPMsg = | SBPMsgHeartbeat MsgHeartbeat Msg | SBPMsgIarState MsgIarState Msg | SBPMsgImuAux MsgImuAux Msg + | SBPMsgImuComp MsgImuComp Msg | SBPMsgImuRaw MsgImuRaw Msg | SBPMsgInitBaseDep MsgInitBaseDep Msg | SBPMsgInsStatus MsgInsStatus Msg @@ -407,6 +408,7 @@ instance Binary SBPMsg where | _msgSBPType == msgHeartbeat = SBPMsgHeartbeat (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgIarState = SBPMsgIarState (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgImuAux = SBPMsgImuAux (decode (fromStrict (unBytes _msgSBPPayload))) m + | _msgSBPType == msgImuComp = SBPMsgImuComp (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgImuRaw = SBPMsgImuRaw (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgInitBaseDep = SBPMsgInitBaseDep (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgInsStatus = SBPMsgInsStatus (decode (fromStrict (unBytes _msgSBPPayload))) m @@ -650,6 +652,7 @@ instance Binary SBPMsg where encoder (SBPMsgHeartbeat _ m) = put m encoder (SBPMsgIarState _ m) = put m encoder (SBPMsgImuAux _ m) = put m + encoder (SBPMsgImuComp _ m) = put m encoder (SBPMsgImuRaw _ m) = put m encoder (SBPMsgInitBaseDep _ m) = put m encoder (SBPMsgInsStatus _ m) = put m @@ -897,6 +900,7 @@ instance FromJSON SBPMsg where | msgType == msgHeartbeat = SBPMsgHeartbeat <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgIarState = SBPMsgIarState <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgImuAux = SBPMsgImuAux <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj + | msgType == msgImuComp = SBPMsgImuComp <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgImuRaw = SBPMsgImuRaw <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgInitBaseDep = SBPMsgInitBaseDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgInsStatus = SBPMsgInsStatus <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj @@ -1145,6 +1149,7 @@ instance ToJSON SBPMsg where toJSON (SBPMsgHeartbeat n m) = toJSON n <<>> toJSON m toJSON (SBPMsgIarState n m) = toJSON n <<>> toJSON m toJSON (SBPMsgImuAux n m) = toJSON n <<>> toJSON m + toJSON (SBPMsgImuComp n m) = toJSON n <<>> toJSON m toJSON (SBPMsgImuRaw n m) = toJSON n <<>> toJSON m toJSON (SBPMsgInitBaseDep _ m) = toJSON m toJSON (SBPMsgInsStatus n m) = toJSON n <<>> toJSON m @@ -1387,6 +1392,7 @@ instance HasMsg SBPMsg where msg f (SBPMsgHeartbeat n m) = SBPMsgHeartbeat n <$> f m msg f (SBPMsgIarState n m) = SBPMsgIarState n <$> f m msg f (SBPMsgImuAux n m) = SBPMsgImuAux n <$> f m + msg f (SBPMsgImuComp n m) = SBPMsgImuComp n <$> f m msg f (SBPMsgImuRaw n m) = SBPMsgImuRaw n <$> f m msg f (SBPMsgInitBaseDep n m) = SBPMsgInitBaseDep n <$> f m msg f (SBPMsgInsStatus n m) = SBPMsgInsStatus n <$> f m @@ -1529,4 +1535,4 @@ instance HasMsg SBPMsg where msg f (SBPMsgVelNedGnss n m) = SBPMsgVelNedGnss n <$> f m msg f (SBPMsgWheeltick n m) = SBPMsgWheeltick n <$> f m msg f (SBPMsgUnknown m) = SBPMsgUnknown <$> f m - msg f (SBPMsgBadCrc m) = SBPMsgBadCrc <$> f m \ No newline at end of file + msg f (SBPMsgBadCrc m) = SBPMsgBadCrc <$> f m diff --git a/haskell/src/SwiftNav/SBP/Navigation.hs b/haskell/src/SwiftNav/SBP/Navigation.hs index 412ce6b375..fff65728a2 100644 --- a/haskell/src/SwiftNav/SBP/Navigation.hs +++ b/haskell/src/SwiftNav/SBP/Navigation.hs @@ -2618,3 +2618,4 @@ instance Binary MsgPoseRelative where $(makeSBP 'msgPoseRelative ''MsgPoseRelative) $(makeJSON "_msgPoseRelative_" ''MsgPoseRelative) $(makeLenses ''MsgPoseRelative) + diff --git a/haskell/src/SwiftNav/SBP/Ndb.hs b/haskell/src/SwiftNav/SBP/Ndb.hs index 9facfdf31a..856d6ef48a 100644 --- a/haskell/src/SwiftNav/SBP/Ndb.hs +++ b/haskell/src/SwiftNav/SBP/Ndb.hs @@ -93,3 +93,4 @@ instance Binary MsgNdbEvent where $(makeSBP 'msgNdbEvent ''MsgNdbEvent) $(makeJSON "_msgNdbEvent_" ''MsgNdbEvent) $(makeLenses ''MsgNdbEvent) + diff --git a/haskell/src/SwiftNav/SBP/Observation.hs b/haskell/src/SwiftNav/SBP/Observation.hs index c03937a056..3315217074 100644 --- a/haskell/src/SwiftNav/SBP/Observation.hs +++ b/haskell/src/SwiftNav/SBP/Observation.hs @@ -3161,3 +3161,4 @@ instance Binary MsgOsr where $(makeSBP 'msgOsr ''MsgOsr) $(makeJSON "_msgOsr_" ''MsgOsr) $(makeLenses ''MsgOsr) + diff --git a/haskell/src/SwiftNav/SBP/Orientation.hs b/haskell/src/SwiftNav/SBP/Orientation.hs index d60c07a89b..c6e50230ab 100644 --- a/haskell/src/SwiftNav/SBP/Orientation.hs +++ b/haskell/src/SwiftNav/SBP/Orientation.hs @@ -238,3 +238,4 @@ instance Binary MsgAngularRate where $(makeSBP 'msgAngularRate ''MsgAngularRate) $(makeJSON "_msgAngularRate_" ''MsgAngularRate) $(makeLenses ''MsgAngularRate) + diff --git a/haskell/src/SwiftNav/SBP/Piksi.hs b/haskell/src/SwiftNav/SBP/Piksi.hs index af09b3aa59..ab0dce63de 100644 --- a/haskell/src/SwiftNav/SBP/Piksi.hs +++ b/haskell/src/SwiftNav/SBP/Piksi.hs @@ -928,3 +928,4 @@ instance Binary MsgFrontEndGain where $(makeSBP 'msgFrontEndGain ''MsgFrontEndGain) $(makeJSON "_msgFrontEndGain_" ''MsgFrontEndGain) $(makeLenses ''MsgFrontEndGain) + diff --git a/haskell/src/SwiftNav/SBP/Profiling.hs b/haskell/src/SwiftNav/SBP/Profiling.hs index 00d2a529d2..487eb6adb6 100644 --- a/haskell/src/SwiftNav/SBP/Profiling.hs +++ b/haskell/src/SwiftNav/SBP/Profiling.hs @@ -259,3 +259,4 @@ instance Binary MsgProfilingResourceCounter where $(makeSBP 'msgProfilingResourceCounter ''MsgProfilingResourceCounter) $(makeJSON "_msgProfilingResourceCounter_" ''MsgProfilingResourceCounter) $(makeLenses ''MsgProfilingResourceCounter) + diff --git a/haskell/src/SwiftNav/SBP/Sbas.hs b/haskell/src/SwiftNav/SBP/Sbas.hs index 8865e30c78..cf98de4333 100644 --- a/haskell/src/SwiftNav/SBP/Sbas.hs +++ b/haskell/src/SwiftNav/SBP/Sbas.hs @@ -70,3 +70,4 @@ instance Binary MsgSbasRaw where $(makeSBP 'msgSbasRaw ''MsgSbasRaw) $(makeJSON "_msgSbasRaw_" ''MsgSbasRaw) $(makeLenses ''MsgSbasRaw) + diff --git a/haskell/src/SwiftNav/SBP/Settings.hs b/haskell/src/SwiftNav/SBP/Settings.hs index a391f9335a..0018996de8 100644 --- a/haskell/src/SwiftNav/SBP/Settings.hs +++ b/haskell/src/SwiftNav/SBP/Settings.hs @@ -340,3 +340,4 @@ instance Binary MsgSettingsRegisterResp where $(makeSBP 'msgSettingsRegisterResp ''MsgSettingsRegisterResp) $(makeJSON "_msgSettingsRegisterResp_" ''MsgSettingsRegisterResp) $(makeLenses ''MsgSettingsRegisterResp) + diff --git a/haskell/src/SwiftNav/SBP/Signing.hs b/haskell/src/SwiftNav/SBP/Signing.hs index cc45753555..5c8a6e46a1 100644 --- a/haskell/src/SwiftNav/SBP/Signing.hs +++ b/haskell/src/SwiftNav/SBP/Signing.hs @@ -556,3 +556,4 @@ instance Binary MsgEd25519SignatureDepB where $(makeSBP 'msgEd25519SignatureDepB ''MsgEd25519SignatureDepB) $(makeJSON "_msgEd25519SignatureDepB_" ''MsgEd25519SignatureDepB) $(makeLenses ''MsgEd25519SignatureDepB) + diff --git a/haskell/src/SwiftNav/SBP/SolutionMeta.hs b/haskell/src/SwiftNav/SBP/SolutionMeta.hs index c0e65c7186..b0c097228a 100644 --- a/haskell/src/SwiftNav/SBP/SolutionMeta.hs +++ b/haskell/src/SwiftNav/SBP/SolutionMeta.hs @@ -250,3 +250,4 @@ instance Binary OdoInputType where $(makeJSON "_odoInputType_" ''OdoInputType) $(makeLenses ''OdoInputType) + diff --git a/haskell/src/SwiftNav/SBP/Ssr.hs b/haskell/src/SwiftNav/SBP/Ssr.hs index d73c503ab2..608dfa9f84 100644 --- a/haskell/src/SwiftNav/SBP/Ssr.hs +++ b/haskell/src/SwiftNav/SBP/Ssr.hs @@ -1734,3 +1734,4 @@ instance Binary MsgSsrOrbitClockBoundsDegradation where $(makeSBP 'msgSsrOrbitClockBoundsDegradation ''MsgSsrOrbitClockBoundsDegradation) $(makeJSON "_msgSsrOrbitClockBoundsDegradation_" ''MsgSsrOrbitClockBoundsDegradation) $(makeLenses ''MsgSsrOrbitClockBoundsDegradation) + diff --git a/haskell/src/SwiftNav/SBP/System.hs b/haskell/src/SwiftNav/SBP/System.hs index f976e64b4a..2439952b6a 100644 --- a/haskell/src/SwiftNav/SBP/System.hs +++ b/haskell/src/SwiftNav/SBP/System.hs @@ -576,3 +576,4 @@ instance Binary MsgGroupMeta where $(makeSBP 'msgGroupMeta ''MsgGroupMeta) $(makeJSON "_msgGroupMeta_" ''MsgGroupMeta) $(makeLenses ''MsgGroupMeta) + diff --git a/haskell/src/SwiftNav/SBP/Telemetry.hs b/haskell/src/SwiftNav/SBP/Telemetry.hs index 5cc93e6dd4..a920defd23 100644 --- a/haskell/src/SwiftNav/SBP/Telemetry.hs +++ b/haskell/src/SwiftNav/SBP/Telemetry.hs @@ -127,3 +127,4 @@ instance Binary MsgTelSv where $(makeSBP 'msgTelSv ''MsgTelSv) $(makeJSON "_msgTelSv_" ''MsgTelSv) $(makeLenses ''MsgTelSv) + diff --git a/haskell/src/SwiftNav/SBP/Tracking.hs b/haskell/src/SwiftNav/SBP/Tracking.hs index 25f5efd60b..e9fcdb0a1f 100644 --- a/haskell/src/SwiftNav/SBP/Tracking.hs +++ b/haskell/src/SwiftNav/SBP/Tracking.hs @@ -598,3 +598,4 @@ instance Binary MsgTrackingStateDepB where $(makeSBP 'msgTrackingStateDepB ''MsgTrackingStateDepB) $(makeJSON "_msgTrackingStateDepB_" ''MsgTrackingStateDepB) $(makeLenses ''MsgTrackingStateDepB) + diff --git a/haskell/src/SwiftNav/SBP/User.hs b/haskell/src/SwiftNav/SBP/User.hs index 1461f3c1cd..e7cb1b51e5 100644 --- a/haskell/src/SwiftNav/SBP/User.hs +++ b/haskell/src/SwiftNav/SBP/User.hs @@ -58,3 +58,4 @@ instance Binary MsgUserData where $(makeSBP 'msgUserData ''MsgUserData) $(makeJSON "_msgUserData_" ''MsgUserData) $(makeLenses ''MsgUserData) + diff --git a/haskell/src/SwiftNav/SBP/Vehicle.hs b/haskell/src/SwiftNav/SBP/Vehicle.hs index 33c42c9807..3922819f79 100644 --- a/haskell/src/SwiftNav/SBP/Vehicle.hs +++ b/haskell/src/SwiftNav/SBP/Vehicle.hs @@ -125,3 +125,4 @@ instance Binary MsgWheeltick where $(makeSBP 'msgWheeltick ''MsgWheeltick) $(makeJSON "_msgWheeltick_" ''MsgWheeltick) $(makeLenses ''MsgWheeltick) + diff --git a/haskell/stack.yaml b/haskell/stack.yaml index f0d709aac5..1c30b58b48 100644 --- a/haskell/stack.yaml +++ b/haskell/stack.yaml @@ -1,3 +1,3 @@ -resolver: lts-10.10 +resolver: lts-14.9 packages: - . diff --git a/java/src/com/swiftnav/sbp/client/MessageTable.java b/java/src/com/swiftnav/sbp/client/MessageTable.java index 048adecf9f..9a992a1ccb 100644 --- a/java/src/com/swiftnav/sbp/client/MessageTable.java +++ b/java/src/com/swiftnav/sbp/client/MessageTable.java @@ -46,6 +46,7 @@ import com.swiftnav.sbp.flash.MsgStmUniqueIdReq; import com.swiftnav.sbp.flash.MsgStmUniqueIdResp; import com.swiftnav.sbp.imu.MsgImuAux; +import com.swiftnav.sbp.imu.MsgImuComp; import com.swiftnav.sbp.imu.MsgImuRaw; import com.swiftnav.sbp.integrity.MsgAcknowledge; import com.swiftnav.sbp.integrity.MsgSsrFlagHighLevel; @@ -323,6 +324,8 @@ static SBPMessage dispatch(SBPMessage msg) throws SBPBinaryException { return new MsgImuRaw(msg); case MsgImuAux.TYPE: return new MsgImuAux(msg); + case MsgImuComp.TYPE: + return new MsgImuComp(msg); case MsgSsrFlagHighLevel.TYPE: return new MsgSsrFlagHighLevel(msg); case MsgSsrFlagSatellites.TYPE: diff --git a/java/src/com/swiftnav/sbp/imu/MsgImuComp.java b/java/src/com/swiftnav/sbp/imu/MsgImuComp.java new file mode 100644 index 0000000000..ae8c64286a --- /dev/null +++ b/java/src/com/swiftnav/sbp/imu/MsgImuComp.java @@ -0,0 +1,117 @@ +/* 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.imu; + +// This file was auto-generated from yaml/swiftnav/sbp/imu.yaml by generate.py. +// Do not modify by hand! + + +import com.swiftnav.sbp.SBPBinaryException; +import com.swiftnav.sbp.SBPMessage; +import java.math.BigInteger; +import org.json.JSONObject; + +/** + * SBP class for message MSG_IMU_COMP (0x0905). + * + *

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

Data from the Inertial Measurement Unit, containing accelerometer and gyroscope readings + * compensated for estimated errors and constant physical effects. The output is valid for + * inertially referenced center of navigation (IMU body frame) represented in vehicle body frame. + */ +public class MsgImuComp extends SBPMessage { + public static final int TYPE = 0x0905; + + /** Microseconds since reference epoch */ + public BigInteger time; + + /** Contains the applied compensation parameters and time synchronization mode */ + public int flags; + + /** Compensated acceleration X axis */ + public int acc_comp_x; + + /** Compensated acceleration Y axis */ + public int acc_comp_y; + + /** Compensated acceleration Z axis */ + public int acc_comp_z; + + /** Compensated angular rate X axis */ + public int gyr_comp_x; + + /** Compensated angular rate Y axis */ + public int gyr_comp_y; + + /** Compensated angular rate Z axis */ + public int gyr_comp_z; + + public MsgImuComp(int sender) { + super(sender, TYPE); + } + + public MsgImuComp() { + super(TYPE); + } + + public MsgImuComp(SBPMessage msg) throws SBPBinaryException { + super(msg); + if (msg.type != TYPE) + throw new SBPBinaryException( + "Type mismatch for MsgImuComp, expected 2309, actual " + msg.type); + } + + @Override + protected void parse(Parser parser) throws SBPBinaryException { + /* Parse fields from binary */ + time = parser.getU64(); + flags = parser.getU16(); + acc_comp_x = parser.getS32(); + acc_comp_y = parser.getS32(); + acc_comp_z = parser.getS32(); + gyr_comp_x = parser.getS32(); + gyr_comp_y = parser.getS32(); + gyr_comp_z = parser.getS32(); + } + + @Override + protected void build(Builder builder) { + builder.putU64(time); + builder.putU16(flags); + builder.putS32(acc_comp_x); + builder.putS32(acc_comp_y); + builder.putS32(acc_comp_z); + builder.putS32(gyr_comp_x); + builder.putS32(gyr_comp_y); + builder.putS32(gyr_comp_z); + } + + @Override + public JSONObject toJSON() { + JSONObject obj = super.toJSON(); + obj.put("time", time); + obj.put("flags", flags); + obj.put("acc_comp_x", acc_comp_x); + obj.put("acc_comp_y", acc_comp_y); + obj.put("acc_comp_z", acc_comp_z); + obj.put("gyr_comp_x", gyr_comp_x); + obj.put("gyr_comp_y", gyr_comp_y); + obj.put("gyr_comp_z", gyr_comp_z); + return obj; + } + + @Override + public String getFriendlyName() { + return "IMU COMP"; + } +} diff --git a/java/test/auto_check_sbp_imu_MsgImuCompTest.java b/java/test/auto_check_sbp_imu_MsgImuCompTest.java new file mode 100644 index 0000000000..78849cd477 --- /dev/null +++ b/java/test/auto_check_sbp_imu_MsgImuCompTest.java @@ -0,0 +1,126 @@ +/* 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/imu/test_MsgImuComp.yaml by +// generate.py. Do not modify by hand! + + +import com.swiftnav.sbp.SBPMessage; +import com.swiftnav.sbp.imu.MsgImuComp; +import java.math.BigInteger; +import org.json.JSONObject; +import org.junit.Test; + +public class auto_check_sbp_imu_MsgImuCompTest { + + 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_imu_MsgImuCompTest.test1"); + byte[] payload = + new byte[] { + (byte) 26, (byte) 1, (byte) 0, (byte) 192, (byte) 0, (byte) 0, (byte) 0, + (byte) 0, (byte) 206, (byte) 0, (byte) 96, (byte) 0, (byte) 0, (byte) 0, + (byte) 223, (byte) 255, (byte) 255, (byte) 255, (byte) 44, (byte) 16, (byte) 0, + (byte) 0, (byte) 60, (byte) 0, (byte) 0, (byte) 0, (byte) 208, (byte) 254, + (byte) 255, (byte) 255, (byte) 238, (byte) 255, (byte) 255, (byte) 255, + }; + SBPMessage sbp = new SBPMessage(0x1234, 0x905, payload); + MsgImuComp msg = new MsgImuComp(sbp); + JSONObject json = msg.toJSON(); + Number value; + Number expected; + value = msg.acc_comp_x; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.acc_comp_x + "' != '" + 96 + "'", + value.equals(BigInteger.valueOf(96L))); + } else { + value = value.longValue(); + expected = 96L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.acc_comp_y; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.acc_comp_y + "' != '" + -33 + "'", + value.equals(BigInteger.valueOf(-33L))); + } else { + value = value.longValue(); + expected = -33L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.acc_comp_z; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.acc_comp_z + "' != '" + 4140 + "'", + value.equals(BigInteger.valueOf(4140L))); + } else { + value = value.longValue(); + expected = 4140L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.flags; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.flags + "' != '" + 206 + "'", value.equals(BigInteger.valueOf(206L))); + } else { + value = value.longValue(); + expected = 206L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.gyr_comp_x; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.gyr_comp_x + "' != '" + 60 + "'", + value.equals(BigInteger.valueOf(60L))); + } else { + value = value.longValue(); + expected = 60L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.gyr_comp_y; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.gyr_comp_y + "' != '" + -304 + "'", + value.equals(BigInteger.valueOf(-304L))); + } else { + value = value.longValue(); + expected = -304L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.gyr_comp_z; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.gyr_comp_z + "' != '" + -18 + "'", + value.equals(BigInteger.valueOf(-18L))); + } else { + value = value.longValue(); + expected = -18L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.time; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.time + "' != '" + 3221225754L + "'", + value.equals(new BigInteger("3221225754"))); + } else { + value = value.longValue(); + expected = 3221225754L; + org.junit.Assert.assertEquals(value, expected); + } + + org.junit.Assert.assertNotEquals("", msg.getFriendlyName()); + } +} diff --git a/javascript/sbp.bundle.js b/javascript/sbp.bundle.js index a707a15517..ce4a06a7ad 100644 --- a/javascript/sbp.bundle.js +++ b/javascript/sbp.bundle.js @@ -12,4 +12,4 @@ var r=p(25),o=p(26),i=p(16);function s(){return a.TYPED_ARRAY_SUPPORT?2147483647 * @author Feross Aboukhadijeh * @license MIT */ -function r(e,t){if(e===t)return 0;for(var p=e.length,r=t.length,o=0,i=Math.min(p,r);o=0;l--)if(c[l]!==u[l])return!1;for(l=c.length-1;l>=0;l--)if(a=c[l],!g(e[a],t[a],p,r))return!1;return!0}(e,t,p,s))}return p?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function m(e,t,p,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof p&&(r=p,p=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(p&&p.name?" ("+p.name+").":".")+(r?" "+r:"."),e&&!o&&_(o,p,"Missing expected exception"+r);var s="string"==typeof r,n=!e&&o&&!p;if((!e&&i.isError(o)&&s&&E(o,p)||n)&&_(o,p,"Got unwanted exception"+r),e&&o&&p&&!E(o,p)||!e&&o)throw o}u.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return h(d(e.actual),128)+" "+e.operator+" "+h(d(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||_;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var p=new Error;if(p.stack){var r=p.stack,o=f(t),i=r.indexOf("\n"+o);if(i>=0){var s=r.indexOf("\n",i+1);r=r.substring(s+1)}this.stack=r}}},i.inherits(u.AssertionError,Error),u.fail=_,u.ok=S,u.equal=function(e,t,p){e!=t&&_(e,t,p,"==",u.equal)},u.notEqual=function(e,t,p){e==t&&_(e,t,p,"!=",u.notEqual)},u.deepEqual=function(e,t,p){g(e,t,!1)||_(e,t,p,"deepEqual",u.deepEqual)},u.deepStrictEqual=function(e,t,p){g(e,t,!0)||_(e,t,p,"deepStrictEqual",u.deepStrictEqual)},u.notDeepEqual=function(e,t,p){g(e,t,!1)&&_(e,t,p,"notDeepEqual",u.notDeepEqual)},u.notDeepStrictEqual=function e(t,p,r){g(t,p,!0)&&_(t,p,r,"notDeepStrictEqual",e)},u.strictEqual=function(e,t,p){e!==t&&_(e,t,p,"===",u.strictEqual)},u.notStrictEqual=function(e,t,p){e===t&&_(e,t,p,"!==",u.notStrictEqual)},u.throws=function(e,t,p){m(!0,e,t,p)},u.doesNotThrow=function(e,t,p){m(!1,e,t,p)},u.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var p in e)s.call(e,p)&&t.push(p);return t}}).call(this,p(5))},function(e,t,p){var r;!function(p){o(Math.pow(36,5)),o(Math.pow(16,7)),o(Math.pow(10,9)),o(Math.pow(2,30)),o(36),o(16),o(10),o(2);function o(e,t){return this instanceof o?(this._low=0,this._high=0,this.remainder=null,void 0===t?s.call(this,e):"string"==typeof e?n.call(this,e,t):void i.call(this,e,t)):new o(e,t)}function i(e,t){return this._low=0|e,this._high=0|t,this}function s(e){return this._low=65535&e,this._high=e>>>16,this}function n(e,t){var p=parseInt(e,t||10);return this._low=65535&p,this._high=p>>>16,this}o.prototype.fromBits=i,o.prototype.fromNumber=s,o.prototype.fromString=n,o.prototype.toNumber=function(){return 65536*this._high+this._low},o.prototype.toString=function(e){return this.toNumber().toString(e||10)},o.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},o.prototype.subtract=function(e){return this.add(e.clone().negate())},o.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},o.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 o(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 o(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},o.prototype.equals=o.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},o.prototype.greaterThan=o.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},o.prototype.lessThan=o.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},o.prototype.shiftLeft=o.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},o.prototype.rotateRight=o.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},o.prototype.clone=function(){return new o(this._low,this._high)},void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){var r;!function(p){var o={16:s(Math.pow(16,5)),10:s(Math.pow(10,5)),2:s(Math.pow(2,5))},i={16:s(16),10:s(10),2:s(2)};function s(e,t,p,r){return this instanceof s?(this.remainder=null,"string"==typeof e?l.call(this,e,t):void 0===t?a.call(this,e):void n.apply(this,arguments)):new s(e,t,p,r)}function n(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 a(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function l(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var p=o[t]||new s(Math.pow(t,5)),r=0,i=e.length;r=0&&(p.div(t),r[o]=p.remainder.toNumber().toString(e),p.gt(t));o--);return r[o-1]=p.toNumber().toString(e),r.join("")},s.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},s.prototype.subtract=function(e){return this.add(e.clone().negate())},s.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},s.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 s(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 s(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},s.prototype.equals=s.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},s.prototype.greaterThan=s.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},s.prototype.lessThan=s.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},s.prototype.shiftLeft=s.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},s.prototype.rotateRight=s.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},s.prototype.clone=function(){return new s(this._a00,this._a16,this._a32,this._a48)},void 0===(r=function(){return s}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=(p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",h.prototype.msg_type=30,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.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:h,MsgAcqSvProfileDep:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",h.prototype.msg_type=243,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),h.prototype.fieldSpec=[],h.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:h,MsgM25FlashWriteStatus:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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]),e.exports={2304:i,MsgImuRaw:i,2305:s,MsgImuAux:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal,p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),s=p(0).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 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,MsgSsrFlagHighLevel:a,3005:l,MsgSsrFlagSatellites:l,3011:c,MsgSsrFlagTropoGridPoints:c,3015:u,MsgSsrFlagIonoGridPoints:u,3021:y,MsgSsrFlagIonoTileSatLos:y,3025:f,MsgSsrFlagIonoGridPointSatLos:f,3026:h,MsgAcknowledge:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE",h.prototype.msg_type=32521,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["index","writeUInt8",1]),h.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pmem","writeUInt8",1]),h.prototype.fieldSpec.push(["time","writeUInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["tname","string",15]),h.prototype.fieldSpec.push(["cmdline","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE",d.prototype.msg_type=32522,d.prototype.constructor=d,d.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"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),d.prototype.fieldSpec.push(["pmem","writeUInt8",1]),d.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),d.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]),d.prototype.fieldSpec.push(["time","writeUInt32LE",4]),d.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:h,MsgLinuxMemState:h,32522:d,MsgLinuxSysState:d}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="EstimatedHorizontalErrorEllipse",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="EstimatedHorizontalErrorEllipse",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").floatle("semi_major").floatle("semi_minor").floatle("orientation"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["semi_major","writeFloatLE",4]),h.prototype.fieldSpec.push(["semi_minor","writeFloatLE",4]),h.prototype.fieldSpec.push(["orientation","writeFloatLE",4]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_ACC",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_ACC",d.prototype.msg_type=536,d.prototype.constructor=d,d.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:h.prototype.parser}).uint8("confidence_and_geoid").uint8("n_sats").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),d.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),d.prototype.fieldSpec.push(["height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["orthometric_height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["h_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["v_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["ct_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["at_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["h_ellipse",h.prototype.fieldSpec]),d.prototype.fieldSpec.push(["confidence_and_geoid","writeUInt8",1]),d.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),d.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 U=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_GNSS",U.prototype.msg_type=557,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").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(["accuracy","writeUInt16LE",2]),U.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV_GNSS",v.prototype.msg_type=565,v.prototype.constructor=v,v.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"),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(["cov_x_x","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),v.prototype.fieldSpec.push(["flags","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_GNSS",M.prototype.msg_type=558,M.prototype.constructor=M,M.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"),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(["h_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),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_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV_GNSS",D.prototype.msg_type=562,D.prototype.constructor=D,D.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"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["n","writeInt32LE",4]),D.prototype.fieldSpec.push(["e","writeInt32LE",4]),D.prototype.fieldSpec.push(["d","writeInt32LE",4]),D.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),D.prototype.fieldSpec.push(["flags","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_VEL_BODY",O.prototype.msg_type=531,O.prototype.constructor=O,O.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"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["x","writeInt32LE",4]),O.prototype.fieldSpec.push(["y","writeInt32LE",4]),O.prototype.fieldSpec.push(["z","writeInt32LE",4]),O.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_COG",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_VEL_COG",G.prototype.msg_type=540,G.prototype.constructor=G,G.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"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["cog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up","writeInt32LE",4]),G.prototype.fieldSpec.push(["cog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["flags","writeUInt16LE",2]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_AGE_CORRECTIONS",A.prototype.msg_type=528,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),A.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 R=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_DOPS_DEP_A",R.prototype.msg_type=518,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),R.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 N=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_DEP_A",N.prototype.msg_type=513,N.prototype.constructor=N,N.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"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),N.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),N.prototype.fieldSpec.push(["height","writeDoubleLE",8]),N.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",j.prototype.msg_type=514,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["x","writeInt32LE",4]),j.prototype.fieldSpec.push(["y","writeInt32LE",4]),j.prototype.fieldSpec.push(["z","writeInt32LE",4]),j.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),j.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),j.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 H=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_LEAP_SECOND",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_UTC_LEAP_SECOND",H.prototype.msg_type=570,H.prototype.constructor=H,H.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"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["reserved_0","writeInt16LE",2]),H.prototype.fieldSpec.push(["reserved_1","writeInt16LE",2]),H.prototype.fieldSpec.push(["reserved_2","writeInt8",1]),H.prototype.fieldSpec.push(["count_before","writeInt8",1]),H.prototype.fieldSpec.push(["reserved_3","writeUInt16LE",2]),H.prototype.fieldSpec.push(["reserved_4","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_wn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_dn","writeUInt8",1]),H.prototype.fieldSpec.push(["count_after","writeInt8",1]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_REFERENCE_FRAME_PARAM",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_REFERENCE_FRAME_PARAM",V.prototype.msg_type=580,V.prototype.constructor=V,V.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"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["sn","string",32]),V.prototype.fieldSpec.push(["tn","string",32]),V.prototype.fieldSpec.push(["sin","writeUInt8",1]),V.prototype.fieldSpec.push(["utn","writeUInt16LE",2]),V.prototype.fieldSpec.push(["re_t0","writeUInt16LE",2]),V.prototype.fieldSpec.push(["delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["scale","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_scale","writeInt16LE",2]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_POSE_RELATIVE",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_POSE_RELATIVE",Y.prototype.msg_type=581,Y.prototype.constructor=Y,Y.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"),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["sensor_id","writeUInt8",1]),Y.prototype.fieldSpec.push(["timestamp_1","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["timestamp_2","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["trans","array","writeInt32LE",function(){return 4},3]),Y.prototype.fieldSpec.push(["w","writeInt32LE",4]),Y.prototype.fieldSpec.push(["x","writeInt32LE",4]),Y.prototype.fieldSpec.push(["y","writeInt32LE",4]),Y.prototype.fieldSpec.push(["z","writeInt32LE",4]),Y.prototype.fieldSpec.push(["cov_r_x_x","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_x_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_x_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_y_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_y_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_z_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_x","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_y_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_y_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_z_z","writeFloatLE",4]),Y.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:h,536:d,MsgPosLlhAcc:d,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:U,MsgVelEcefGnss:U,565:v,MsgVelEcefCovGnss:v,558:M,MsgVelNedGnss:M,562:D,MsgVelNedCovGnss:D,531:O,MsgVelBody:O,540:G,MsgVelCog:G,528:A,MsgAgeCorrections:A,256:C,MsgGpsTimeDepA:C,518:R,MsgDopsDepA:R,512:P,MsgPosEcefDepA:P,513:N,MsgPosLlhDepA:N,514:j,MsgBaselineEcefDepA:j,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:H,MsgUtcLeapSecond:H,580:V,MsgReferenceFrameParam:V,581:Y,MsgPoseRelative:Y}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=p(0).GPSTimeSec,u=(p(0).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 h=function(e,t){return r.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="PackedOsrContent",h.prototype.constructor=h,h.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"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["P","writeUInt32LE",4]),h.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),h.prototype.fieldSpec.push(["lock","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),h.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),h.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),h.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_OBS",d.prototype.msg_type=74,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:f.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),d.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 U=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",U.prototype.msg_type=149,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"),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]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL",v.prototype.msg_type=141,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").uint8("source"),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]),v.prototype.fieldSpec.push(["source","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",M.prototype.msg_type=130,M.prototype.constructor=M,M.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"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),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]),M.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),M.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_A",D.prototype.msg_type=131,D.prototype.constructor=D,D.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"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),D.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),D.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),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]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_B",O.prototype.msg_type=132,O.prototype.constructor=O,O.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"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["common",w.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 G=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS",G.prototype.msg_type=140,G.prototype.constructor=G,G.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"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),G.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["vel","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["a_gf0","writeFloatLE",4]),G.prototype.fieldSpec.push(["a_gf1","writeFloatLE",4]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_B",A.prototype.msg_type=133,A.prototype.constructor=A,A.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"}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),A.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),A.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),A.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),A.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 R=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",R.prototype.msg_type=136,R.prototype.constructor=R,R.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"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),R.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),R.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["fcn","writeUInt8",1]),R.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 N=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_D",N.prototype.msg_type=128,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").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),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(["sid",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["iode","writeUInt8",1]),N.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),N.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_A",j.prototype.msg_type=26,j.prototype.constructor=j,j.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"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),j.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),j.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["w","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["valid","writeUInt8",1]),j.prototype.fieldSpec.push(["healthy","writeUInt8",1]),j.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 H=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepC",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["P","writeUInt32LE",4]),H.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),H.prototype.fieldSpec.push(["cn0","writeUInt8",1]),H.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),H.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_A",V.prototype.msg_type=69,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:q.prototype.parser,readUntil:"eof"}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),V.prototype.fieldSpec.push(["obs","array",q.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_B",Y.prototype.msg_type=67,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),Y.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:H.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",H.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 J=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_CAPB",J.prototype.msg_type=150,J.prototype.constructor=J,J.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).nest("gc",{type:X.prototype.parser}),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),J.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);let Z=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",Z.prototype.msg_type=146,Z.prototype.constructor=Z,Z.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"),Z.prototype.fieldSpec=[],Z.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["prn","writeUInt8",1]),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 $=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",$.prototype.msg_type=147,$.prototype.constructor=$,$.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"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),$.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),$.prototype.fieldSpec.push(["valid","writeUInt8",1]),$.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),$.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:h.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:f,PackedOsrContent:h,74:d,MsgObs:d,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:U,MsgEphemerisGalDepA:U,141:v,MsgEphemerisGal:v,130:M,MsgEphemerisSbasDepA:M,131:D,MsgEphemerisGloDepA:D,132:O,MsgEphemerisSbasDepB:O,140:G,MsgEphemerisSbas:G,133:A,MsgEphemerisGloDepB:A,135:C,MsgEphemerisGloDepC:C,136:R,MsgEphemerisGloDepD:R,139:P,MsgEphemerisGlo:P,128:N,MsgEphemerisDepD:N,26:j,MsgEphemerisDepA:j,70:x,MsgEphemerisDepB:x,71:F,MsgEphemerisDepC:F,ObservationHeaderDep:k,CarrierPhaseDepA:B,PackedObsContentDepA:q,PackedObsContentDepB:z,PackedObsContentDepC:H,69:V,MsgObsDepA:V,67:Y,MsgObsDepB:Y,73:W,MsgObsDepC:W,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:J,MsgGnssCapb:J,146:Z,MsgGroupDelayDepA:Z,147:$,MsgGroupDelayDepB:$,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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=p(0).GPSTime,a=p(0).GPSTimeDep,l=(p(0).GPSTimeSec,p(0).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CW_START",h.prototype.msg_type=193,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little"),h.prototype.fieldSpec=[];let d=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_RESET_FILTERS",d.prototype.msg_type=34,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("filter"),d.prototype.fieldSpec=[],d.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 U=function(e,t){return r.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_DEVICE_MONITOR",U.prototype.msg_type=181,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),U.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_REQ",v.prototype.msg_type=184,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),v.prototype.fieldSpec.push(["command","string",null]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_RESP",M.prototype.msg_type=185,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["code","writeInt32LE",4]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_OUTPUT",D.prototype.msg_type=188,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("sequence").string("line",{greedy:!0}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),D.prototype.fieldSpec.push(["line","string",null]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_REQ",O.prototype.msg_type=186,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little"),O.prototype.fieldSpec=[];let G=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_RESP",G.prototype.msg_type=187,G.prototype.constructor=G,G.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"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["ipv4_address","array","writeUInt8",function(){return 1},4]),G.prototype.fieldSpec.push(["ipv4_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["ipv6_address","array","writeUInt8",function(){return 1},16]),G.prototype.fieldSpec.push(["ipv6_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["interface_name","string",16]),G.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let A=function(e,t){return r.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="NetworkUsage",A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint64("duration").uint64("total_bytes").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["duration","writeUInt64LE",8]),A.prototype.fieldSpec.push(["total_bytes","writeUInt64LE",8]),A.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),A.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:A.prototype.parser,readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["interfaces","array",A.prototype.fieldSpec,function(){return this.fields.array.length},null]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_CELL_MODEM_STATUS",R.prototype.msg_type=190,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),R.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),R.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 N=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN",N.prototype.msg_type=81,N.prototype.constructor=N,N.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"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),N.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_FRONT_END_GAIN",j.prototype.msg_type=191,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").array("rf_gain",{length:8,type:"int8"}).array("if_gain",{length:8,type:"int8"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["rf_gain","array","writeInt8",function(){return 1},8]),j.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:h,MsgCwStart:h,34:d,MsgResetFilters:d,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:U,MsgDeviceMonitor:U,184:v,MsgCommandReq:v,185:M,MsgCommandResp:M,188:D,MsgCommandOutput:D,186:O,MsgNetworkStateReq:O,187:G,MsgNetworkStateResp:G,NetworkUsage:A,189:C,MsgNetworkBandwidthUsage:C,190:R,MsgCellModemStatus:R,80:P,MsgSpecanDep:P,81:N,MsgSpecan:N,191:j,MsgFrontEndGain:j}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",h.prototype.msg_type=431,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["status","writeUInt8",1]),h.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:h,MsgSettingsRegisterResp:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_CERTIFICATE_DEP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_CERTIFICATE_DEP",h.prototype.msg_type=3074,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("n_msg").array("fingerprint",{length:20,type:"uint8"}).array("certificate_bytes",{type:"uint8",readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),h.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),h.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_A",d.prototype.msg_type=3073,d.prototype.constructor=d,d.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"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),d.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),d.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:h,MsgEd25519CertificateDep:h,3073:d,MsgEd25519SignatureDepA:d,3075:_,MsgEd25519SignatureDepB:_}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),n=p(0).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 h=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrection",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),h.prototype.fieldSpec.push(["wet","writeInt8",1]),h.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="STECResidualNoStd",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),d.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:h.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",h.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:h.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",h.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 U=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};(U.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_A",U.prototype.msg_type=1526,U.prototype.constructor=U,U.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"),U.prototype.fieldSpec=[],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 v=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};(v.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_B",v.prototype.msg_type=1527,v.prototype.constructor=v,v.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"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),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 M=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION",M.prototype.msg_type=1528,M.prototype.constructor=M,M.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"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),M.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),M.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),M.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),M.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),M.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),M.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),M.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),M.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),M.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),M.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),M.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),M.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let D=function(e,t){return r.call(this,e),this.messageType="SatelliteAPC",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="SatelliteAPC",D.prototype.constructor=D,D.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"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),D.prototype.fieldSpec.push(["sat_info","writeUInt8",1]),D.prototype.fieldSpec.push(["svn","writeUInt16LE",2]),D.prototype.fieldSpec.push(["pco","array","writeInt16LE",function(){return 2},3]),D.prototype.fieldSpec.push(["pcv","array","writeInt8",function(){return 1},21]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC_DEP",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC_DEP",O.prototype.msg_type=1540,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").array("apc",{type:D.prototype.parser,readUntil:"eof"}),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["apc","array",D.prototype.fieldSpec,function(){return this.fields.array.length},null]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC",G.prototype.msg_type=1541,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_ssr").array("apc",{type:D.prototype.parser,readUntil:"eof"}),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),G.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),G.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),G.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),G.prototype.fieldSpec.push(["apc","array",D.prototype.fieldSpec,function(){return this.fields.array.length},null]);let A=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};(A.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",A.prototype.msg_type=1500,A.prototype.constructor=A,A.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"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),A.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),A.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),A.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),A.prototype.fieldSpec.push(["iod","writeUInt8",1]),A.prototype.fieldSpec.push(["radial","writeInt32LE",4]),A.prototype.fieldSpec.push(["along","writeInt32LE",4]),A.prototype.fieldSpec.push(["cross","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),A.prototype.fieldSpec.push(["c0","writeInt32LE",4]),A.prototype.fieldSpec.push(["c1","writeInt32LE",4]),A.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 R=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeaderDepA",R.prototype.constructor=R,R.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"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),R.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),R.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),R.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),R.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),R.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 N=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};(N.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP_A",N.prototype.msg_type=1515,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").nest("header",{type:C.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["header",C.prototype.fieldSpec]),N.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let j=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};(j.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",j.prototype.msg_type=1520,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("header",{type:R.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:d.prototype.parser,readUntil:"eof"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["header",R.prototype.fieldSpec]),j.prototype.fieldSpec.push(["index","writeUInt16LE",2]),j.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),j.prototype.fieldSpec.push(["stec_residuals","array",d.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:R.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["header",R.prototype.fieldSpec]),x.prototype.fieldSpec.push(["index","writeUInt16LE",2]),x.prototype.fieldSpec.push(["tropo_delay_correction",h.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 H=function(e,t){return r.call(this,e),this.messageType="OrbitClockBoundDegradation",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="OrbitClockBoundDegradation",H.prototype.constructor=H,H.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"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["orb_radial_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_along_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_cross_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_radial_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_along_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_cross_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["clock_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["clock_bound_sig_dot","writeUInt8",1]);let V=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};(V.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",V.prototype.msg_type=1503,V.prototype.constructor=V,V.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:H.prototype.parser}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["const_id","writeUInt8",1]),V.prototype.fieldSpec.push(["sat_bitmask","writeUInt64LE",8]),V.prototype.fieldSpec.push(["orbit_clock_bounds_degradation",H.prototype.fieldSpec]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:f,TroposphericDelayCorrection:h,STECResidualNoStd:d,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:U,MsgSsrTileDefinitionDepA:U,1527:v,MsgSsrTileDefinitionDepB:v,1528:M,MsgSsrTileDefinition:M,SatelliteAPC:D,1540:O,MsgSsrSatelliteApcDep:O,1541:G,MsgSsrSatelliteApc:G,1500:A,MsgSsrOrbitClockDepA:A,STECHeaderDepA:C,GriddedCorrectionHeaderDepA:R,GridDefinitionHeaderDepA:P,1515:N,MsgSsrStecCorrectionDepA:N,1520:j,MsgSsrGriddedCorrectionNoStdDepA:j,1530:x,MsgSsrGriddedCorrectionDepA:x,1525:F,MsgSsrGridDefinitionDepA:F,OrbitClockBound:k,1502:B,MsgSsrOrbitClockBounds:B,CodePhaseBiasesSatSig:q,1516:z,MsgSsrCodePhaseBiasesBounds:z,OrbitClockBoundDegradation:H,1503:V,MsgSsrOrbitClockBoundsDegradation:V}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",h.prototype.msg_type=65285,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["id","writeUInt8",1]),h.prototype.fieldSpec.push(["telemetry_labels","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_INS_UPDATES",d.prototype.msg_type=65286,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),d.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),d.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),d.prototype.fieldSpec.push(["speed","writeUInt8",1]),d.prototype.fieldSpec.push(["nhc","writeUInt8",1]),d.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:h,MsgCsacTelemetryLabels:h,65286:d,MsgInsUpdates:d,65287:_,MsgGnssTimeOffset:_,65288:S,MsgPpsTime:S,65289:g,MsgSensorAidEvent:g,65290:w,MsgGroupMeta:w}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=(p(0).GPSTimeSec,p(0).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 h=function(e,t){return r.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MeasurementState",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("mesid",{type:s.prototype.parser}).uint8("cn0"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["mesid",s.prototype.fieldSpec]),h.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_STATE",d.prototype.msg_type=97,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("states",{type:h.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["states","array",h.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:h,97:d,MsgMeasurementState:d,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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).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}}]); \ No newline at end of file +function r(e,t){if(e===t)return 0;for(var p=e.length,r=t.length,o=0,i=Math.min(p,r);o=0;l--)if(c[l]!==u[l])return!1;for(l=c.length-1;l>=0;l--)if(a=c[l],!g(e[a],t[a],p,r))return!1;return!0}(e,t,p,s))}return p?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function m(e,t,p,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof p&&(r=p,p=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(p&&p.name?" ("+p.name+").":".")+(r?" "+r:"."),e&&!o&&_(o,p,"Missing expected exception"+r);var s="string"==typeof r,n=!e&&o&&!p;if((!e&&i.isError(o)&&s&&E(o,p)||n)&&_(o,p,"Got unwanted exception"+r),e&&o&&p&&!E(o,p)||!e&&o)throw o}u.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return h(d(e.actual),128)+" "+e.operator+" "+h(d(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||_;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var p=new Error;if(p.stack){var r=p.stack,o=f(t),i=r.indexOf("\n"+o);if(i>=0){var s=r.indexOf("\n",i+1);r=r.substring(s+1)}this.stack=r}}},i.inherits(u.AssertionError,Error),u.fail=_,u.ok=S,u.equal=function(e,t,p){e!=t&&_(e,t,p,"==",u.equal)},u.notEqual=function(e,t,p){e==t&&_(e,t,p,"!=",u.notEqual)},u.deepEqual=function(e,t,p){g(e,t,!1)||_(e,t,p,"deepEqual",u.deepEqual)},u.deepStrictEqual=function(e,t,p){g(e,t,!0)||_(e,t,p,"deepStrictEqual",u.deepStrictEqual)},u.notDeepEqual=function(e,t,p){g(e,t,!1)&&_(e,t,p,"notDeepEqual",u.notDeepEqual)},u.notDeepStrictEqual=function e(t,p,r){g(t,p,!0)&&_(t,p,r,"notDeepStrictEqual",e)},u.strictEqual=function(e,t,p){e!==t&&_(e,t,p,"===",u.strictEqual)},u.notStrictEqual=function(e,t,p){e===t&&_(e,t,p,"!==",u.notStrictEqual)},u.throws=function(e,t,p){m(!0,e,t,p)},u.doesNotThrow=function(e,t,p){m(!1,e,t,p)},u.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var p in e)s.call(e,p)&&t.push(p);return t}}).call(this,p(5))},function(e,t,p){var r;!function(p){o(Math.pow(36,5)),o(Math.pow(16,7)),o(Math.pow(10,9)),o(Math.pow(2,30)),o(36),o(16),o(10),o(2);function o(e,t){return this instanceof o?(this._low=0,this._high=0,this.remainder=null,void 0===t?s.call(this,e):"string"==typeof e?n.call(this,e,t):void i.call(this,e,t)):new o(e,t)}function i(e,t){return this._low=0|e,this._high=0|t,this}function s(e){return this._low=65535&e,this._high=e>>>16,this}function n(e,t){var p=parseInt(e,t||10);return this._low=65535&p,this._high=p>>>16,this}o.prototype.fromBits=i,o.prototype.fromNumber=s,o.prototype.fromString=n,o.prototype.toNumber=function(){return 65536*this._high+this._low},o.prototype.toString=function(e){return this.toNumber().toString(e||10)},o.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},o.prototype.subtract=function(e){return this.add(e.clone().negate())},o.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},o.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 o(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 o(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},o.prototype.equals=o.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},o.prototype.greaterThan=o.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},o.prototype.lessThan=o.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},o.prototype.shiftLeft=o.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},o.prototype.rotateRight=o.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},o.prototype.clone=function(){return new o(this._low,this._high)},void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){var r;!function(p){var o={16:s(Math.pow(16,5)),10:s(Math.pow(10,5)),2:s(Math.pow(2,5))},i={16:s(16),10:s(10),2:s(2)};function s(e,t,p,r){return this instanceof s?(this.remainder=null,"string"==typeof e?l.call(this,e,t):void 0===t?a.call(this,e):void n.apply(this,arguments)):new s(e,t,p,r)}function n(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 a(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function l(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var p=o[t]||new s(Math.pow(t,5)),r=0,i=e.length;r=0&&(p.div(t),r[o]=p.remainder.toNumber().toString(e),p.gt(t));o--);return r[o-1]=p.toNumber().toString(e),r.join("")},s.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},s.prototype.subtract=function(e){return this.add(e.clone().negate())},s.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},s.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 s(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 s(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},s.prototype.equals=s.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},s.prototype.greaterThan=s.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},s.prototype.lessThan=s.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},s.prototype.shiftLeft=s.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},s.prototype.rotateRight=s.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},s.prototype.clone=function(){return new s(this._a00,this._a16,this._a32,this._a48)},void 0===(r=function(){return s}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=(p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",h.prototype.msg_type=30,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.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:h,MsgAcqSvProfileDep:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",h.prototype.msg_type=243,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),h.prototype.fieldSpec=[],h.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:h,MsgM25FlashWriteStatus:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal,p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),s=p(0).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 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,MsgSsrFlagHighLevel:a,3005:l,MsgSsrFlagSatellites:l,3011:c,MsgSsrFlagTropoGridPoints:c,3015:u,MsgSsrFlagIonoGridPoints:u,3021:y,MsgSsrFlagIonoTileSatLos:y,3025:f,MsgSsrFlagIonoGridPointSatLos:f,3026:h,MsgAcknowledge:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE",h.prototype.msg_type=32521,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["index","writeUInt8",1]),h.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pmem","writeUInt8",1]),h.prototype.fieldSpec.push(["time","writeUInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["tname","string",15]),h.prototype.fieldSpec.push(["cmdline","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE",d.prototype.msg_type=32522,d.prototype.constructor=d,d.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"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),d.prototype.fieldSpec.push(["pmem","writeUInt8",1]),d.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),d.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]),d.prototype.fieldSpec.push(["time","writeUInt32LE",4]),d.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:h,MsgLinuxMemState:h,32522:d,MsgLinuxSysState:d}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="EstimatedHorizontalErrorEllipse",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="EstimatedHorizontalErrorEllipse",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").floatle("semi_major").floatle("semi_minor").floatle("orientation"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["semi_major","writeFloatLE",4]),h.prototype.fieldSpec.push(["semi_minor","writeFloatLE",4]),h.prototype.fieldSpec.push(["orientation","writeFloatLE",4]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_ACC",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_ACC",d.prototype.msg_type=536,d.prototype.constructor=d,d.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:h.prototype.parser}).uint8("confidence_and_geoid").uint8("n_sats").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),d.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),d.prototype.fieldSpec.push(["height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["orthometric_height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["h_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["v_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["ct_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["at_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["h_ellipse",h.prototype.fieldSpec]),d.prototype.fieldSpec.push(["confidence_and_geoid","writeUInt8",1]),d.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),d.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 U=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_GNSS",U.prototype.msg_type=557,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").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(["accuracy","writeUInt16LE",2]),U.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV_GNSS",v.prototype.msg_type=565,v.prototype.constructor=v,v.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"),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(["cov_x_x","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),v.prototype.fieldSpec.push(["flags","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_GNSS",M.prototype.msg_type=558,M.prototype.constructor=M,M.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"),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(["h_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),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_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV_GNSS",D.prototype.msg_type=562,D.prototype.constructor=D,D.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"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["n","writeInt32LE",4]),D.prototype.fieldSpec.push(["e","writeInt32LE",4]),D.prototype.fieldSpec.push(["d","writeInt32LE",4]),D.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),D.prototype.fieldSpec.push(["flags","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_VEL_BODY",O.prototype.msg_type=531,O.prototype.constructor=O,O.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"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["x","writeInt32LE",4]),O.prototype.fieldSpec.push(["y","writeInt32LE",4]),O.prototype.fieldSpec.push(["z","writeInt32LE",4]),O.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_COG",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_VEL_COG",G.prototype.msg_type=540,G.prototype.constructor=G,G.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"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["cog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up","writeInt32LE",4]),G.prototype.fieldSpec.push(["cog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["flags","writeUInt16LE",2]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_AGE_CORRECTIONS",A.prototype.msg_type=528,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),A.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 R=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_DOPS_DEP_A",R.prototype.msg_type=518,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),R.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 N=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_DEP_A",N.prototype.msg_type=513,N.prototype.constructor=N,N.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"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),N.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),N.prototype.fieldSpec.push(["height","writeDoubleLE",8]),N.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",j.prototype.msg_type=514,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["x","writeInt32LE",4]),j.prototype.fieldSpec.push(["y","writeInt32LE",4]),j.prototype.fieldSpec.push(["z","writeInt32LE",4]),j.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),j.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),j.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 H=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_LEAP_SECOND",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_UTC_LEAP_SECOND",H.prototype.msg_type=570,H.prototype.constructor=H,H.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"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["reserved_0","writeInt16LE",2]),H.prototype.fieldSpec.push(["reserved_1","writeInt16LE",2]),H.prototype.fieldSpec.push(["reserved_2","writeInt8",1]),H.prototype.fieldSpec.push(["count_before","writeInt8",1]),H.prototype.fieldSpec.push(["reserved_3","writeUInt16LE",2]),H.prototype.fieldSpec.push(["reserved_4","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_wn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_dn","writeUInt8",1]),H.prototype.fieldSpec.push(["count_after","writeInt8",1]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_REFERENCE_FRAME_PARAM",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_REFERENCE_FRAME_PARAM",V.prototype.msg_type=580,V.prototype.constructor=V,V.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"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["sn","string",32]),V.prototype.fieldSpec.push(["tn","string",32]),V.prototype.fieldSpec.push(["sin","writeUInt8",1]),V.prototype.fieldSpec.push(["utn","writeUInt16LE",2]),V.prototype.fieldSpec.push(["re_t0","writeUInt16LE",2]),V.prototype.fieldSpec.push(["delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["scale","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_scale","writeInt16LE",2]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_POSE_RELATIVE",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_POSE_RELATIVE",Y.prototype.msg_type=581,Y.prototype.constructor=Y,Y.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"),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["sensor_id","writeUInt8",1]),Y.prototype.fieldSpec.push(["timestamp_1","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["timestamp_2","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["trans","array","writeInt32LE",function(){return 4},3]),Y.prototype.fieldSpec.push(["w","writeInt32LE",4]),Y.prototype.fieldSpec.push(["x","writeInt32LE",4]),Y.prototype.fieldSpec.push(["y","writeInt32LE",4]),Y.prototype.fieldSpec.push(["z","writeInt32LE",4]),Y.prototype.fieldSpec.push(["cov_r_x_x","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_x_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_x_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_y_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_y_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_z_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_x","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_y_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_y_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_z_z","writeFloatLE",4]),Y.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:h,536:d,MsgPosLlhAcc:d,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:U,MsgVelEcefGnss:U,565:v,MsgVelEcefCovGnss:v,558:M,MsgVelNedGnss:M,562:D,MsgVelNedCovGnss:D,531:O,MsgVelBody:O,540:G,MsgVelCog:G,528:A,MsgAgeCorrections:A,256:C,MsgGpsTimeDepA:C,518:R,MsgDopsDepA:R,512:P,MsgPosEcefDepA:P,513:N,MsgPosLlhDepA:N,514:j,MsgBaselineEcefDepA:j,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:H,MsgUtcLeapSecond:H,580:V,MsgReferenceFrameParam:V,581:Y,MsgPoseRelative:Y}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=p(0).GPSTimeSec,u=(p(0).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 h=function(e,t){return r.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="PackedOsrContent",h.prototype.constructor=h,h.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"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["P","writeUInt32LE",4]),h.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),h.prototype.fieldSpec.push(["lock","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),h.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),h.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),h.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_OBS",d.prototype.msg_type=74,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:f.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),d.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 U=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",U.prototype.msg_type=149,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"),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]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL",v.prototype.msg_type=141,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").uint8("source"),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]),v.prototype.fieldSpec.push(["source","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",M.prototype.msg_type=130,M.prototype.constructor=M,M.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"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),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]),M.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),M.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_A",D.prototype.msg_type=131,D.prototype.constructor=D,D.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"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),D.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),D.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),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]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_B",O.prototype.msg_type=132,O.prototype.constructor=O,O.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"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["common",w.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 G=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS",G.prototype.msg_type=140,G.prototype.constructor=G,G.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"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),G.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["vel","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["a_gf0","writeFloatLE",4]),G.prototype.fieldSpec.push(["a_gf1","writeFloatLE",4]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_B",A.prototype.msg_type=133,A.prototype.constructor=A,A.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"}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),A.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),A.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),A.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),A.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 R=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",R.prototype.msg_type=136,R.prototype.constructor=R,R.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"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),R.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),R.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["fcn","writeUInt8",1]),R.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 N=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_D",N.prototype.msg_type=128,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").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),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(["sid",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["iode","writeUInt8",1]),N.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),N.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_A",j.prototype.msg_type=26,j.prototype.constructor=j,j.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"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),j.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),j.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["w","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["valid","writeUInt8",1]),j.prototype.fieldSpec.push(["healthy","writeUInt8",1]),j.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 H=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepC",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["P","writeUInt32LE",4]),H.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),H.prototype.fieldSpec.push(["cn0","writeUInt8",1]),H.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),H.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_A",V.prototype.msg_type=69,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:q.prototype.parser,readUntil:"eof"}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),V.prototype.fieldSpec.push(["obs","array",q.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_B",Y.prototype.msg_type=67,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),Y.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:H.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",H.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 J=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_CAPB",J.prototype.msg_type=150,J.prototype.constructor=J,J.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).nest("gc",{type:X.prototype.parser}),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),J.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);let Z=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",Z.prototype.msg_type=146,Z.prototype.constructor=Z,Z.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"),Z.prototype.fieldSpec=[],Z.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["prn","writeUInt8",1]),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 $=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",$.prototype.msg_type=147,$.prototype.constructor=$,$.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"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),$.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),$.prototype.fieldSpec.push(["valid","writeUInt8",1]),$.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),$.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:h.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:f,PackedOsrContent:h,74:d,MsgObs:d,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:U,MsgEphemerisGalDepA:U,141:v,MsgEphemerisGal:v,130:M,MsgEphemerisSbasDepA:M,131:D,MsgEphemerisGloDepA:D,132:O,MsgEphemerisSbasDepB:O,140:G,MsgEphemerisSbas:G,133:A,MsgEphemerisGloDepB:A,135:C,MsgEphemerisGloDepC:C,136:R,MsgEphemerisGloDepD:R,139:P,MsgEphemerisGlo:P,128:N,MsgEphemerisDepD:N,26:j,MsgEphemerisDepA:j,70:x,MsgEphemerisDepB:x,71:F,MsgEphemerisDepC:F,ObservationHeaderDep:k,CarrierPhaseDepA:B,PackedObsContentDepA:q,PackedObsContentDepB:z,PackedObsContentDepC:H,69:V,MsgObsDepA:V,67:Y,MsgObsDepB:Y,73:W,MsgObsDepC:W,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:J,MsgGnssCapb:J,146:Z,MsgGroupDelayDepA:Z,147:$,MsgGroupDelayDepB:$,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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=p(0).GPSTime,a=p(0).GPSTimeDep,l=(p(0).GPSTimeSec,p(0).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CW_START",h.prototype.msg_type=193,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little"),h.prototype.fieldSpec=[];let d=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_RESET_FILTERS",d.prototype.msg_type=34,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("filter"),d.prototype.fieldSpec=[],d.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 U=function(e,t){return r.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_DEVICE_MONITOR",U.prototype.msg_type=181,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),U.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_REQ",v.prototype.msg_type=184,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),v.prototype.fieldSpec.push(["command","string",null]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_RESP",M.prototype.msg_type=185,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["code","writeInt32LE",4]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_OUTPUT",D.prototype.msg_type=188,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("sequence").string("line",{greedy:!0}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),D.prototype.fieldSpec.push(["line","string",null]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_REQ",O.prototype.msg_type=186,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little"),O.prototype.fieldSpec=[];let G=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_RESP",G.prototype.msg_type=187,G.prototype.constructor=G,G.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"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["ipv4_address","array","writeUInt8",function(){return 1},4]),G.prototype.fieldSpec.push(["ipv4_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["ipv6_address","array","writeUInt8",function(){return 1},16]),G.prototype.fieldSpec.push(["ipv6_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["interface_name","string",16]),G.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let A=function(e,t){return r.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="NetworkUsage",A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint64("duration").uint64("total_bytes").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["duration","writeUInt64LE",8]),A.prototype.fieldSpec.push(["total_bytes","writeUInt64LE",8]),A.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),A.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:A.prototype.parser,readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["interfaces","array",A.prototype.fieldSpec,function(){return this.fields.array.length},null]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_CELL_MODEM_STATUS",R.prototype.msg_type=190,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),R.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),R.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 N=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN",N.prototype.msg_type=81,N.prototype.constructor=N,N.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"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),N.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_FRONT_END_GAIN",j.prototype.msg_type=191,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").array("rf_gain",{length:8,type:"int8"}).array("if_gain",{length:8,type:"int8"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["rf_gain","array","writeInt8",function(){return 1},8]),j.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:h,MsgCwStart:h,34:d,MsgResetFilters:d,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:U,MsgDeviceMonitor:U,184:v,MsgCommandReq:v,185:M,MsgCommandResp:M,188:D,MsgCommandOutput:D,186:O,MsgNetworkStateReq:O,187:G,MsgNetworkStateResp:G,NetworkUsage:A,189:C,MsgNetworkBandwidthUsage:C,190:R,MsgCellModemStatus:R,80:P,MsgSpecanDep:P,81:N,MsgSpecan:N,191:j,MsgFrontEndGain:j}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",h.prototype.msg_type=431,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["status","writeUInt8",1]),h.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:h,MsgSettingsRegisterResp:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_CERTIFICATE_DEP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_CERTIFICATE_DEP",h.prototype.msg_type=3074,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("n_msg").array("fingerprint",{length:20,type:"uint8"}).array("certificate_bytes",{type:"uint8",readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),h.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),h.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_A",d.prototype.msg_type=3073,d.prototype.constructor=d,d.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"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),d.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),d.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:h,MsgEd25519CertificateDep:h,3073:d,MsgEd25519SignatureDepA:d,3075:_,MsgEd25519SignatureDepB:_}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),n=p(0).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 h=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrection",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),h.prototype.fieldSpec.push(["wet","writeInt8",1]),h.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="STECResidualNoStd",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),d.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:h.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",h.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:h.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",h.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 U=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};(U.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_A",U.prototype.msg_type=1526,U.prototype.constructor=U,U.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"),U.prototype.fieldSpec=[],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 v=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};(v.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_B",v.prototype.msg_type=1527,v.prototype.constructor=v,v.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"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),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 M=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION",M.prototype.msg_type=1528,M.prototype.constructor=M,M.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"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),M.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),M.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),M.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),M.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),M.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),M.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),M.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),M.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),M.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),M.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),M.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),M.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let D=function(e,t){return r.call(this,e),this.messageType="SatelliteAPC",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="SatelliteAPC",D.prototype.constructor=D,D.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"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),D.prototype.fieldSpec.push(["sat_info","writeUInt8",1]),D.prototype.fieldSpec.push(["svn","writeUInt16LE",2]),D.prototype.fieldSpec.push(["pco","array","writeInt16LE",function(){return 2},3]),D.prototype.fieldSpec.push(["pcv","array","writeInt8",function(){return 1},21]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC_DEP",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC_DEP",O.prototype.msg_type=1540,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").array("apc",{type:D.prototype.parser,readUntil:"eof"}),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["apc","array",D.prototype.fieldSpec,function(){return this.fields.array.length},null]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC",G.prototype.msg_type=1541,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_ssr").array("apc",{type:D.prototype.parser,readUntil:"eof"}),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),G.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),G.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),G.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),G.prototype.fieldSpec.push(["apc","array",D.prototype.fieldSpec,function(){return this.fields.array.length},null]);let A=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};(A.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",A.prototype.msg_type=1500,A.prototype.constructor=A,A.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"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),A.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),A.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),A.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),A.prototype.fieldSpec.push(["iod","writeUInt8",1]),A.prototype.fieldSpec.push(["radial","writeInt32LE",4]),A.prototype.fieldSpec.push(["along","writeInt32LE",4]),A.prototype.fieldSpec.push(["cross","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),A.prototype.fieldSpec.push(["c0","writeInt32LE",4]),A.prototype.fieldSpec.push(["c1","writeInt32LE",4]),A.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 R=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeaderDepA",R.prototype.constructor=R,R.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"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),R.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),R.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),R.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),R.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),R.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 N=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};(N.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP_A",N.prototype.msg_type=1515,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").nest("header",{type:C.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["header",C.prototype.fieldSpec]),N.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let j=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};(j.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",j.prototype.msg_type=1520,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("header",{type:R.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:d.prototype.parser,readUntil:"eof"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["header",R.prototype.fieldSpec]),j.prototype.fieldSpec.push(["index","writeUInt16LE",2]),j.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),j.prototype.fieldSpec.push(["stec_residuals","array",d.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:R.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["header",R.prototype.fieldSpec]),x.prototype.fieldSpec.push(["index","writeUInt16LE",2]),x.prototype.fieldSpec.push(["tropo_delay_correction",h.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 H=function(e,t){return r.call(this,e),this.messageType="OrbitClockBoundDegradation",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="OrbitClockBoundDegradation",H.prototype.constructor=H,H.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"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["orb_radial_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_along_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_cross_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_radial_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_along_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_cross_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["clock_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["clock_bound_sig_dot","writeUInt8",1]);let V=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};(V.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",V.prototype.msg_type=1503,V.prototype.constructor=V,V.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:H.prototype.parser}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["const_id","writeUInt8",1]),V.prototype.fieldSpec.push(["sat_bitmask","writeUInt64LE",8]),V.prototype.fieldSpec.push(["orbit_clock_bounds_degradation",H.prototype.fieldSpec]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:f,TroposphericDelayCorrection:h,STECResidualNoStd:d,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:U,MsgSsrTileDefinitionDepA:U,1527:v,MsgSsrTileDefinitionDepB:v,1528:M,MsgSsrTileDefinition:M,SatelliteAPC:D,1540:O,MsgSsrSatelliteApcDep:O,1541:G,MsgSsrSatelliteApc:G,1500:A,MsgSsrOrbitClockDepA:A,STECHeaderDepA:C,GriddedCorrectionHeaderDepA:R,GridDefinitionHeaderDepA:P,1515:N,MsgSsrStecCorrectionDepA:N,1520:j,MsgSsrGriddedCorrectionNoStdDepA:j,1530:x,MsgSsrGriddedCorrectionDepA:x,1525:F,MsgSsrGridDefinitionDepA:F,OrbitClockBound:k,1502:B,MsgSsrOrbitClockBounds:B,CodePhaseBiasesSatSig:q,1516:z,MsgSsrCodePhaseBiasesBounds:z,OrbitClockBoundDegradation:H,1503:V,MsgSsrOrbitClockBoundsDegradation:V}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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 h=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",h.prototype.msg_type=65285,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["id","writeUInt8",1]),h.prototype.fieldSpec.push(["telemetry_labels","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_INS_UPDATES",d.prototype.msg_type=65286,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),d.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),d.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),d.prototype.fieldSpec.push(["speed","writeUInt8",1]),d.prototype.fieldSpec.push(["nhc","writeUInt8",1]),d.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:h,MsgCsacTelemetryLabels:h,65286:d,MsgInsUpdates:d,65287:_,MsgGnssTimeOffset:_,65288:S,MsgPpsTime:S,65289:g,MsgSensorAidEvent:g,65290:w,MsgGroupMeta:w}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=(p(0).GPSTimeSec,p(0).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 h=function(e,t){return r.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MeasurementState",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("mesid",{type:s.prototype.parser}).uint8("cn0"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["mesid",s.prototype.fieldSpec]),h.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_STATE",d.prototype.msg_type=97,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("states",{type:h.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["states","array",h.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:h,97:d,MsgMeasurementState:d,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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).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}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).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}}]); \ No newline at end of file diff --git a/javascript/sbp/RELEASE-VERSION b/javascript/sbp/RELEASE-VERSION index 112b145a71..579ba2e8ce 100644 --- a/javascript/sbp/RELEASE-VERSION +++ b/javascript/sbp/RELEASE-VERSION @@ -1 +1 @@ -6.1.1-alpha \ No newline at end of file +6.2.2-alpha \ No newline at end of file diff --git a/javascript/sbp/acquisition.js b/javascript/sbp/acquisition.js index 3ba1313e33..4417b2f35d 100644 --- a/javascript/sbp/acquisition.js +++ b/javascript/sbp/acquisition.js @@ -369,4 +369,4 @@ module.exports = { MsgAcqSvProfile: MsgAcqSvProfile, 0x001E: MsgAcqSvProfileDep, MsgAcqSvProfileDep: MsgAcqSvProfileDep, -} \ No newline at end of file +} diff --git a/javascript/sbp/bootload.js b/javascript/sbp/bootload.js index 49ff9ce858..9c1c20ac92 100644 --- a/javascript/sbp/bootload.js +++ b/javascript/sbp/bootload.js @@ -206,4 +206,4 @@ module.exports = { MsgNapDeviceDnaResp: MsgNapDeviceDnaResp, 0x00B0: MsgBootloaderHandshakeDepA, MsgBootloaderHandshakeDepA: MsgBootloaderHandshakeDepA, -} \ No newline at end of file +} diff --git a/javascript/sbp/ext_events.js b/javascript/sbp/ext_events.js index ca08c7b2ae..5ffb6e3644 100644 --- a/javascript/sbp/ext_events.js +++ b/javascript/sbp/ext_events.js @@ -67,4 +67,4 @@ MsgExtEvent.prototype.fieldSpec.push(['pin', 'writeUInt8', 1]); module.exports = { 0x0101: MsgExtEvent, MsgExtEvent: MsgExtEvent, -} \ No newline at end of file +} diff --git a/javascript/sbp/file_io.js b/javascript/sbp/file_io.js index 5ba938b737..ba66f01302 100644 --- a/javascript/sbp/file_io.js +++ b/javascript/sbp/file_io.js @@ -364,4 +364,4 @@ module.exports = { MsgFileioConfigReq: MsgFileioConfigReq, 0x1002: MsgFileioConfigResp, MsgFileioConfigResp: MsgFileioConfigResp, -} \ No newline at end of file +} diff --git a/javascript/sbp/flash.js b/javascript/sbp/flash.js index 6a0ed40134..b10c2df50f 100644 --- a/javascript/sbp/flash.js +++ b/javascript/sbp/flash.js @@ -360,4 +360,4 @@ module.exports = { MsgStmUniqueIdResp: MsgStmUniqueIdResp, 0x00F3: MsgM25FlashWriteStatus, MsgM25FlashWriteStatus: MsgM25FlashWriteStatus, -} \ No newline at end of file +} diff --git a/javascript/sbp/gnss.js b/javascript/sbp/gnss.js index 3ef576daa2..021b6b85ce 100644 --- a/javascript/sbp/gnss.js +++ b/javascript/sbp/gnss.js @@ -251,4 +251,4 @@ module.exports = { GPSTimeSec: GPSTimeSec, GPSTime: GPSTime, CarrierPhase: CarrierPhase, -} \ No newline at end of file +} diff --git a/javascript/sbp/imu.js b/javascript/sbp/imu.js index 2f5bba58a7..9cfd392917 100644 --- a/javascript/sbp/imu.js +++ b/javascript/sbp/imu.js @@ -115,9 +115,62 @@ MsgImuAux.prototype.fieldSpec.push(['imu_type', 'writeUInt8', 1]); MsgImuAux.prototype.fieldSpec.push(['temp', 'writeInt16LE', 2]); MsgImuAux.prototype.fieldSpec.push(['imu_conf', 'writeUInt8', 1]); +/** + * SBP class for message MSG_IMU_COMP (0x0905). + * + * Data from the Inertial Measurement Unit, containing accelerometer and gyroscope + * readings compensated for estimated errors and constant physical effects. The + * output is valid for inertially referenced center of navigation (IMU body frame) + * represented in vehicle body frame. + * + * Fields in the SBP payload (`sbp.payload`): + * @field time number (unsigned 64-bit int, 8 bytes) Microseconds since reference epoch + * @field flags number (unsigned 16-bit int, 2 bytes) Contains the applied compensation parameters and time synchronization mode + * @field acc_comp_x number (signed 32-bit int, 4 bytes) Compensated acceleration X axis + * @field acc_comp_y number (signed 32-bit int, 4 bytes) Compensated acceleration Y axis + * @field acc_comp_z number (signed 32-bit int, 4 bytes) Compensated acceleration Z axis + * @field gyr_comp_x number (signed 32-bit int, 4 bytes) Compensated angular rate X axis + * @field gyr_comp_y number (signed 32-bit int, 4 bytes) Compensated angular rate Y axis + * @field gyr_comp_z number (signed 32-bit int, 4 bytes) Compensated angular rate Z axis + * + * @param sbp An SBP object with a payload to be decoded. + */ +let MsgImuComp = function (sbp, fields) { + SBP.call(this, sbp); + this.messageType = "MSG_IMU_COMP"; + this.fields = (fields || this.parser.parse(sbp.payload)); + + return this; +}; +MsgImuComp.prototype = Object.create(SBP.prototype); +MsgImuComp.prototype.messageType = "MSG_IMU_COMP"; +MsgImuComp.prototype.msg_type = 0x0905; +MsgImuComp.prototype.constructor = MsgImuComp; +MsgImuComp.prototype.parser = new Parser() + .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'); +MsgImuComp.prototype.fieldSpec = []; +MsgImuComp.prototype.fieldSpec.push(['time', 'writeUInt64LE', 8]); +MsgImuComp.prototype.fieldSpec.push(['flags', 'writeUInt16LE', 2]); +MsgImuComp.prototype.fieldSpec.push(['acc_comp_x', 'writeInt32LE', 4]); +MsgImuComp.prototype.fieldSpec.push(['acc_comp_y', 'writeInt32LE', 4]); +MsgImuComp.prototype.fieldSpec.push(['acc_comp_z', 'writeInt32LE', 4]); +MsgImuComp.prototype.fieldSpec.push(['gyr_comp_x', 'writeInt32LE', 4]); +MsgImuComp.prototype.fieldSpec.push(['gyr_comp_y', 'writeInt32LE', 4]); +MsgImuComp.prototype.fieldSpec.push(['gyr_comp_z', 'writeInt32LE', 4]); + module.exports = { 0x0900: MsgImuRaw, MsgImuRaw: MsgImuRaw, 0x0901: MsgImuAux, MsgImuAux: MsgImuAux, -} \ No newline at end of file + 0x0905: MsgImuComp, + MsgImuComp: MsgImuComp, +} diff --git a/javascript/sbp/integrity.js b/javascript/sbp/integrity.js index d7d6e7289b..883971014a 100644 --- a/javascript/sbp/integrity.js +++ b/javascript/sbp/integrity.js @@ -393,4 +393,4 @@ module.exports = { MsgSsrFlagIonoGridPointSatLos: MsgSsrFlagIonoGridPointSatLos, 0x0BD2: MsgAcknowledge, MsgAcknowledge: MsgAcknowledge, -} \ No newline at end of file +} diff --git a/javascript/sbp/linux.js b/javascript/sbp/linux.js index 660154845b..44d3a2a871 100644 --- a/javascript/sbp/linux.js +++ b/javascript/sbp/linux.js @@ -512,4 +512,4 @@ module.exports = { MsgLinuxMemState: MsgLinuxMemState, 0x7F0A: MsgLinuxSysState, MsgLinuxSysState: MsgLinuxSysState, -} \ No newline at end of file +} diff --git a/javascript/sbp/logging.js b/javascript/sbp/logging.js index bf69cf9285..1c08054842 100644 --- a/javascript/sbp/logging.js +++ b/javascript/sbp/logging.js @@ -127,4 +127,4 @@ module.exports = { MsgFwd: MsgFwd, 0x0010: MsgPrintDep, MsgPrintDep: MsgPrintDep, -} \ No newline at end of file +} diff --git a/javascript/sbp/mag.js b/javascript/sbp/mag.js index b56dca4229..37ede5ab35 100644 --- a/javascript/sbp/mag.js +++ b/javascript/sbp/mag.js @@ -66,4 +66,4 @@ MsgMagRaw.prototype.fieldSpec.push(['mag_z', 'writeInt16LE', 2]); module.exports = { 0x0902: MsgMagRaw, MsgMagRaw: MsgMagRaw, -} \ No newline at end of file +} diff --git a/javascript/sbp/navigation.js b/javascript/sbp/navigation.js index 2b76799f4e..a3f0e031d1 100644 --- a/javascript/sbp/navigation.js +++ b/javascript/sbp/navigation.js @@ -2460,4 +2460,4 @@ module.exports = { MsgReferenceFrameParam: MsgReferenceFrameParam, 0x0245: MsgPoseRelative, MsgPoseRelative: MsgPoseRelative, -} \ No newline at end of file +} diff --git a/javascript/sbp/ndb.js b/javascript/sbp/ndb.js index 6151df3e4f..4a457b97b5 100644 --- a/javascript/sbp/ndb.js +++ b/javascript/sbp/ndb.js @@ -87,4 +87,4 @@ MsgNdbEvent.prototype.fieldSpec.push(['original_sender', 'writeUInt16LE', 2]); module.exports = { 0x0400: MsgNdbEvent, MsgNdbEvent: MsgNdbEvent, -} \ No newline at end of file +} diff --git a/javascript/sbp/observation.js b/javascript/sbp/observation.js index 3c2ff9cd86..fa15993db0 100644 --- a/javascript/sbp/observation.js +++ b/javascript/sbp/observation.js @@ -3011,4 +3011,4 @@ module.exports = { MsgSvAzEl: MsgSvAzEl, 0x0640: MsgOsr, MsgOsr: MsgOsr, -} \ No newline at end of file +} diff --git a/javascript/sbp/orientation.js b/javascript/sbp/orientation.js index 0fbe381871..d162e7e436 100644 --- a/javascript/sbp/orientation.js +++ b/javascript/sbp/orientation.js @@ -228,4 +228,4 @@ module.exports = { MsgOrientEuler: MsgOrientEuler, 0x0222: MsgAngularRate, MsgAngularRate: MsgAngularRate, -} \ No newline at end of file +} diff --git a/javascript/sbp/piksi.js b/javascript/sbp/piksi.js index ed615a16b1..f50a4fce8d 100644 --- a/javascript/sbp/piksi.js +++ b/javascript/sbp/piksi.js @@ -1039,4 +1039,4 @@ module.exports = { MsgSpecan: MsgSpecan, 0x00BF: MsgFrontEndGain, MsgFrontEndGain: MsgFrontEndGain, -} \ No newline at end of file +} diff --git a/javascript/sbp/profiling.js b/javascript/sbp/profiling.js index 2d9e110b73..fcfcbedf0f 100644 --- a/javascript/sbp/profiling.js +++ b/javascript/sbp/profiling.js @@ -254,4 +254,4 @@ module.exports = { ResourceBucket: ResourceBucket, 0xCF03: MsgProfilingResourceCounter, MsgProfilingResourceCounter: MsgProfilingResourceCounter, -} \ No newline at end of file +} diff --git a/javascript/sbp/sbas.js b/javascript/sbp/sbas.js index 81af7557e2..37bc4b2807 100644 --- a/javascript/sbp/sbas.js +++ b/javascript/sbp/sbas.js @@ -70,4 +70,4 @@ MsgSbasRaw.prototype.fieldSpec.push(['data', 'array', 'writeUInt8', function () module.exports = { 0x7777: MsgSbasRaw, MsgSbasRaw: MsgSbasRaw, -} \ No newline at end of file +} diff --git a/javascript/sbp/settings.js b/javascript/sbp/settings.js index a727cbb001..d3bd50df67 100644 --- a/javascript/sbp/settings.js +++ b/javascript/sbp/settings.js @@ -377,4 +377,4 @@ module.exports = { MsgSettingsRegister: MsgSettingsRegister, 0x01AF: MsgSettingsRegisterResp, MsgSettingsRegisterResp: MsgSettingsRegisterResp, -} \ No newline at end of file +} diff --git a/javascript/sbp/signing.js b/javascript/sbp/signing.js index a3550d6626..1bb9185285 100644 --- a/javascript/sbp/signing.js +++ b/javascript/sbp/signing.js @@ -571,4 +571,4 @@ module.exports = { MsgEd25519SignatureDepA: MsgEd25519SignatureDepA, 0x0C03: MsgEd25519SignatureDepB, MsgEd25519SignatureDepB: MsgEd25519SignatureDepB, -} \ No newline at end of file +} diff --git a/javascript/sbp/solution_meta.js b/javascript/sbp/solution_meta.js index 706b09094d..f9d59d1c28 100644 --- a/javascript/sbp/solution_meta.js +++ b/javascript/sbp/solution_meta.js @@ -264,4 +264,4 @@ module.exports = { GNSSInputType: GNSSInputType, IMUInputType: IMUInputType, OdoInputType: OdoInputType, -} \ No newline at end of file +} diff --git a/javascript/sbp/ssr.js b/javascript/sbp/ssr.js index 55a3339e3f..50d7528ea7 100644 --- a/javascript/sbp/ssr.js +++ b/javascript/sbp/ssr.js @@ -1755,4 +1755,4 @@ module.exports = { OrbitClockBoundDegradation: OrbitClockBoundDegradation, 0x05DF: MsgSsrOrbitClockBoundsDegradation, MsgSsrOrbitClockBoundsDegradation: MsgSsrOrbitClockBoundsDegradation, -} \ No newline at end of file +} diff --git a/javascript/sbp/system.js b/javascript/sbp/system.js index c453dbabaa..b5bad90a63 100644 --- a/javascript/sbp/system.js +++ b/javascript/sbp/system.js @@ -613,4 +613,4 @@ module.exports = { MsgSensorAidEvent: MsgSensorAidEvent, 0xFF0A: MsgGroupMeta, MsgGroupMeta: MsgGroupMeta, -} \ No newline at end of file +} diff --git a/javascript/sbp/telemetry.js b/javascript/sbp/telemetry.js index d49a5a85ba..24619e94f4 100644 --- a/javascript/sbp/telemetry.js +++ b/javascript/sbp/telemetry.js @@ -126,4 +126,4 @@ module.exports = { TelemetrySV: TelemetrySV, 0x0120: MsgTelSv, MsgTelSv: MsgTelSv, -} \ No newline at end of file +} diff --git a/javascript/sbp/tracking.js b/javascript/sbp/tracking.js index 4a264f579d..a59a023885 100644 --- a/javascript/sbp/tracking.js +++ b/javascript/sbp/tracking.js @@ -639,4 +639,4 @@ module.exports = { TrackingChannelStateDepB: TrackingChannelStateDepB, 0x0013: MsgTrackingStateDepB, MsgTrackingStateDepB: MsgTrackingStateDepB, -} \ No newline at end of file +} diff --git a/javascript/sbp/user.js b/javascript/sbp/user.js index f10faf4315..8852a9a9ff 100644 --- a/javascript/sbp/user.js +++ b/javascript/sbp/user.js @@ -54,4 +54,4 @@ MsgUserData.prototype.fieldSpec.push(['contents', 'array', 'writeUInt8', functio module.exports = { 0x0800: MsgUserData, MsgUserData: MsgUserData, -} \ No newline at end of file +} diff --git a/javascript/sbp/vehicle.js b/javascript/sbp/vehicle.js index d9f761d0f4..c932496c3e 100644 --- a/javascript/sbp/vehicle.js +++ b/javascript/sbp/vehicle.js @@ -120,4 +120,4 @@ module.exports = { MsgOdometry: MsgOdometry, 0x0904: MsgWheeltick, MsgWheeltick: MsgWheeltick, -} \ No newline at end of file +} diff --git a/jsonschema/AcqSvProfile.json b/jsonschema/AcqSvProfile.json index f46ddfedd1..8c80237202 100644 --- a/jsonschema/AcqSvProfile.json +++ b/jsonschema/AcqSvProfile.json @@ -43,4 +43,4 @@ "cf", "cp" ] -} \ No newline at end of file +} diff --git a/jsonschema/AlmanacCommonContent.json b/jsonschema/AlmanacCommonContent.json index 6c36a805fe..e4d592e320 100644 --- a/jsonschema/AlmanacCommonContent.json +++ b/jsonschema/AlmanacCommonContent.json @@ -31,4 +31,4 @@ "valid", "health_bits" ] -} \ No newline at end of file +} diff --git a/jsonschema/BoundsHeader.json b/jsonschema/BoundsHeader.json index bec1e438d2..ad8022e4f0 100644 --- a/jsonschema/BoundsHeader.json +++ b/jsonschema/BoundsHeader.json @@ -29,4 +29,4 @@ "update_interval", "sol_id" ] -} \ No newline at end of file +} diff --git a/jsonschema/CarrierPhase.json b/jsonschema/CarrierPhase.json index 79c03f8c21..33bd2d9135 100644 --- a/jsonschema/CarrierPhase.json +++ b/jsonschema/CarrierPhase.json @@ -23,4 +23,4 @@ "i", "f" ] -} \ No newline at end of file +} diff --git a/jsonschema/CodeBiasesContent.json b/jsonschema/CodeBiasesContent.json index 59b9efd79c..a422df45fc 100644 --- a/jsonschema/CodeBiasesContent.json +++ b/jsonschema/CodeBiasesContent.json @@ -23,4 +23,4 @@ "code", "value" ] -} \ No newline at end of file +} diff --git a/jsonschema/CodePhaseBiasesSatSig.json b/jsonschema/CodePhaseBiasesSatSig.json index 5c293208df..f3b6203e54 100644 --- a/jsonschema/CodePhaseBiasesSatSig.json +++ b/jsonschema/CodePhaseBiasesSatSig.json @@ -31,4 +31,4 @@ "phase_bias_bound_mu", "phase_bias_bound_sig" ] -} \ No newline at end of file +} diff --git a/jsonschema/Doppler.json b/jsonschema/Doppler.json index 5fd8ea7b29..85c410a239 100644 --- a/jsonschema/Doppler.json +++ b/jsonschema/Doppler.json @@ -23,4 +23,4 @@ "i", "f" ] -} \ No newline at end of file +} diff --git a/jsonschema/ECDSASignature.json b/jsonschema/ECDSASignature.json index 3a2ab2897b..5d2158f22a 100644 --- a/jsonschema/ECDSASignature.json +++ b/jsonschema/ECDSASignature.json @@ -23,4 +23,4 @@ "len", "data" ] -} \ No newline at end of file +} diff --git a/jsonschema/EphemerisCommonContent.json b/jsonschema/EphemerisCommonContent.json index 1ac7700b3e..07f5c00ebc 100644 --- a/jsonschema/EphemerisCommonContent.json +++ b/jsonschema/EphemerisCommonContent.json @@ -31,4 +31,4 @@ "valid", "health_bits" ] -} \ No newline at end of file +} diff --git a/jsonschema/EstimatedHorizontalErrorEllipse.json b/jsonschema/EstimatedHorizontalErrorEllipse.json index 9308af551f..cf9babb4fd 100644 --- a/jsonschema/EstimatedHorizontalErrorEllipse.json +++ b/jsonschema/EstimatedHorizontalErrorEllipse.json @@ -25,4 +25,4 @@ "semi_minor", "orientation" ] -} \ No newline at end of file +} diff --git a/jsonschema/GNSSInputType.json b/jsonschema/GNSSInputType.json index e191000a35..8ed5500769 100644 --- a/jsonschema/GNSSInputType.json +++ b/jsonschema/GNSSInputType.json @@ -21,4 +21,4 @@ "required": [ "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/GnssCapb.json b/jsonschema/GnssCapb.json index 980fff32a0..58ade791a1 100644 --- a/jsonschema/GnssCapb.json +++ b/jsonschema/GnssCapb.json @@ -49,4 +49,4 @@ "gal_active", "gal_e5" ] -} \ No newline at end of file +} diff --git a/jsonschema/GnssSignal.json b/jsonschema/GnssSignal.json index 4e0e16106e..828513c9b0 100644 --- a/jsonschema/GnssSignal.json +++ b/jsonschema/GnssSignal.json @@ -23,4 +23,4 @@ "sat", "code" ] -} \ No newline at end of file +} diff --git a/jsonschema/GpsTime.json b/jsonschema/GpsTime.json index abd050501c..d6d6f428ff 100644 --- a/jsonschema/GpsTime.json +++ b/jsonschema/GpsTime.json @@ -25,4 +25,4 @@ "ns_residual", "wn" ] -} \ No newline at end of file +} diff --git a/jsonschema/GpsTimeSec.json b/jsonschema/GpsTimeSec.json index 4267feb3ca..6635c58dc5 100644 --- a/jsonschema/GpsTimeSec.json +++ b/jsonschema/GpsTimeSec.json @@ -23,4 +23,4 @@ "tow", "wn" ] -} \ No newline at end of file +} diff --git a/jsonschema/GriddedCorrectionHeader.json b/jsonschema/GriddedCorrectionHeader.json index cea3b95e78..4f10d5856b 100644 --- a/jsonschema/GriddedCorrectionHeader.json +++ b/jsonschema/GriddedCorrectionHeader.json @@ -35,4 +35,4 @@ "iod_atmo", "tropo_quality_indicator" ] -} \ No newline at end of file +} diff --git a/jsonschema/IMUInputType.json b/jsonschema/IMUInputType.json index 40cd632d3b..8d70c4b651 100644 --- a/jsonschema/IMUInputType.json +++ b/jsonschema/IMUInputType.json @@ -21,4 +21,4 @@ "required": [ "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/IntegritySSRHeader.json b/jsonschema/IntegritySSRHeader.json index 8507c9b1cd..f41060e561 100644 --- a/jsonschema/IntegritySSRHeader.json +++ b/jsonschema/IntegritySSRHeader.json @@ -33,4 +33,4 @@ "tile_id", "chain_id" ] -} \ No newline at end of file +} diff --git a/jsonschema/Latency.json b/jsonschema/Latency.json index f4909545a9..c2bb8d58c0 100644 --- a/jsonschema/Latency.json +++ b/jsonschema/Latency.json @@ -27,4 +27,4 @@ "lmax", "current" ] -} \ No newline at end of file +} diff --git a/jsonschema/MeasurementState.json b/jsonschema/MeasurementState.json index f460477f05..5f048c40e1 100644 --- a/jsonschema/MeasurementState.json +++ b/jsonschema/MeasurementState.json @@ -23,4 +23,4 @@ "mesid", "cn0" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAcknowledge.json b/jsonschema/MsgAcknowledge.json index 986cc2f33a..9c9800c452 100644 --- a/jsonschema/MsgAcknowledge.json +++ b/jsonschema/MsgAcknowledge.json @@ -31,4 +31,4 @@ "correction_mask_stream", "solution_id" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAcqResult.json b/jsonschema/MsgAcqResult.json index fb5ff2632f..934accc304 100644 --- a/jsonschema/MsgAcqResult.json +++ b/jsonschema/MsgAcqResult.json @@ -27,4 +27,4 @@ "cf", "sid" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAcqSvProfile.json b/jsonschema/MsgAcqSvProfile.json index 2260127a95..8f71ddae7b 100644 --- a/jsonschema/MsgAcqSvProfile.json +++ b/jsonschema/MsgAcqSvProfile.json @@ -21,4 +21,4 @@ "required": [ "acq_sv_profile" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAesCmacSignature.json b/jsonschema/MsgAesCmacSignature.json index b4d17b1c31..9eddca3f0f 100644 --- a/jsonschema/MsgAesCmacSignature.json +++ b/jsonschema/MsgAesCmacSignature.json @@ -31,4 +31,4 @@ "flags", "signed_messages" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAgeCorrections.json b/jsonschema/MsgAgeCorrections.json index 2fe26bbe61..2ff85a2a2a 100644 --- a/jsonschema/MsgAgeCorrections.json +++ b/jsonschema/MsgAgeCorrections.json @@ -23,4 +23,4 @@ "tow", "age" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAlmanac.json b/jsonschema/MsgAlmanac.json index 2a8ec604c2..7101875408 100644 --- a/jsonschema/MsgAlmanac.json +++ b/jsonschema/MsgAlmanac.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAlmanacGPS.json b/jsonschema/MsgAlmanacGPS.json index 9b9ee5ba72..0e965c14c8 100644 --- a/jsonschema/MsgAlmanacGPS.json +++ b/jsonschema/MsgAlmanacGPS.json @@ -39,4 +39,4 @@ "af0", "af1" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAlmanacGlo.json b/jsonschema/MsgAlmanacGlo.json index 7a15155af6..1bede920c6 100644 --- a/jsonschema/MsgAlmanacGlo.json +++ b/jsonschema/MsgAlmanacGlo.json @@ -35,4 +35,4 @@ "epsilon", "omega" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgAngularRate.json b/jsonschema/MsgAngularRate.json index b454487663..c6b725d02b 100644 --- a/jsonschema/MsgAngularRate.json +++ b/jsonschema/MsgAngularRate.json @@ -29,4 +29,4 @@ "z", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgBasePosECEF.json b/jsonschema/MsgBasePosECEF.json index 46680f6eb9..bef3b3f4d3 100644 --- a/jsonschema/MsgBasePosECEF.json +++ b/jsonschema/MsgBasePosECEF.json @@ -25,4 +25,4 @@ "y", "z" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgBasePosLLH.json b/jsonschema/MsgBasePosLLH.json index 8c7f71dcb1..d86725896e 100644 --- a/jsonschema/MsgBasePosLLH.json +++ b/jsonschema/MsgBasePosLLH.json @@ -25,4 +25,4 @@ "lon", "height" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgBaselineECEF.json b/jsonschema/MsgBaselineECEF.json index 2493aed95d..8c7ad9ac07 100644 --- a/jsonschema/MsgBaselineECEF.json +++ b/jsonschema/MsgBaselineECEF.json @@ -33,4 +33,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgBaselineHeading.json b/jsonschema/MsgBaselineHeading.json index cb15f60a56..d775cf60f2 100644 --- a/jsonschema/MsgBaselineHeading.json +++ b/jsonschema/MsgBaselineHeading.json @@ -27,4 +27,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgBaselineNED.json b/jsonschema/MsgBaselineNED.json index 08728394ff..8e9f01f9ff 100644 --- a/jsonschema/MsgBaselineNED.json +++ b/jsonschema/MsgBaselineNED.json @@ -35,4 +35,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgBootloaderHandshakeReq.json b/jsonschema/MsgBootloaderHandshakeReq.json index b3e6b248bd..8a7eeeed6e 100644 --- a/jsonschema/MsgBootloaderHandshakeReq.json +++ b/jsonschema/MsgBootloaderHandshakeReq.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgBootloaderHandshakeResp.json b/jsonschema/MsgBootloaderHandshakeResp.json index 741461c9d9..0187ac9d27 100644 --- a/jsonschema/MsgBootloaderHandshakeResp.json +++ b/jsonschema/MsgBootloaderHandshakeResp.json @@ -23,4 +23,4 @@ "flags", "version" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgBootloaderJumpToApp.json b/jsonschema/MsgBootloaderJumpToApp.json index 6d87d87f63..08578c2891 100644 --- a/jsonschema/MsgBootloaderJumpToApp.json +++ b/jsonschema/MsgBootloaderJumpToApp.json @@ -21,4 +21,4 @@ "required": [ "jump" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCellModemStatus.json b/jsonschema/MsgCellModemStatus.json index 0f9cfc45e6..d26ca59f83 100644 --- a/jsonschema/MsgCellModemStatus.json +++ b/jsonschema/MsgCellModemStatus.json @@ -23,4 +23,4 @@ "signal_strength", "signal_error_rate", ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCertificateChain.json b/jsonschema/MsgCertificateChain.json index 3eb8f76c87..208058ac8b 100644 --- a/jsonschema/MsgCertificateChain.json +++ b/jsonschema/MsgCertificateChain.json @@ -29,4 +29,4 @@ "expiration", "signature" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCommandOutput.json b/jsonschema/MsgCommandOutput.json index c8a7bc3482..9fd39cf971 100644 --- a/jsonschema/MsgCommandOutput.json +++ b/jsonschema/MsgCommandOutput.json @@ -23,4 +23,4 @@ "sequence", "line" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCommandReq.json b/jsonschema/MsgCommandReq.json index 318b0734a4..62e7c32b75 100644 --- a/jsonschema/MsgCommandReq.json +++ b/jsonschema/MsgCommandReq.json @@ -23,4 +23,4 @@ "sequence", "command" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCommandResp.json b/jsonschema/MsgCommandResp.json index f2e725354b..27bc9a76ff 100644 --- a/jsonschema/MsgCommandResp.json +++ b/jsonschema/MsgCommandResp.json @@ -23,4 +23,4 @@ "sequence", "code" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCsacTelemetry.json b/jsonschema/MsgCsacTelemetry.json index 1ef27d8ea8..0318e70960 100644 --- a/jsonschema/MsgCsacTelemetry.json +++ b/jsonschema/MsgCsacTelemetry.json @@ -23,4 +23,4 @@ "id", "telemetry" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCsacTelemetryLabels.json b/jsonschema/MsgCsacTelemetryLabels.json index cd7cdee523..696d89e31d 100644 --- a/jsonschema/MsgCsacTelemetryLabels.json +++ b/jsonschema/MsgCsacTelemetryLabels.json @@ -23,4 +23,4 @@ "id", "telemetry_labels" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCwResults.json b/jsonschema/MsgCwResults.json index b1d20fd05e..ba05e75f1b 100644 --- a/jsonschema/MsgCwResults.json +++ b/jsonschema/MsgCwResults.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgCwStart.json b/jsonschema/MsgCwStart.json index 22209c9f0c..7c3d2965c5 100644 --- a/jsonschema/MsgCwStart.json +++ b/jsonschema/MsgCwStart.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgDeviceMonitor.json b/jsonschema/MsgDeviceMonitor.json index 319e8179d0..252f3773b7 100644 --- a/jsonschema/MsgDeviceMonitor.json +++ b/jsonschema/MsgDeviceMonitor.json @@ -29,4 +29,4 @@ "cpu_temperature", "fe_temperature" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgDgnssStatus.json b/jsonschema/MsgDgnssStatus.json index 43457c7d09..6d048f6ae3 100644 --- a/jsonschema/MsgDgnssStatus.json +++ b/jsonschema/MsgDgnssStatus.json @@ -27,4 +27,4 @@ "num_signals", "source" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgDops.json b/jsonschema/MsgDops.json index 11fbb834e6..b322ef6507 100644 --- a/jsonschema/MsgDops.json +++ b/jsonschema/MsgDops.json @@ -33,4 +33,4 @@ "vdop", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgEcdsaCertificate.json b/jsonschema/MsgEcdsaCertificate.json index ef23d479a5..ba68c4b229 100644 --- a/jsonschema/MsgEcdsaCertificate.json +++ b/jsonschema/MsgEcdsaCertificate.json @@ -27,4 +27,4 @@ "flags", "certificate_bytes" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgEcdsaSignature.json b/jsonschema/MsgEcdsaSignature.json index 30a06dd609..b56a5cf16d 100644 --- a/jsonschema/MsgEcdsaSignature.json +++ b/jsonschema/MsgEcdsaSignature.json @@ -31,4 +31,4 @@ "signature", "signed_messages" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgEphemerisBds.json b/jsonschema/MsgEphemerisBds.json index bec5116117..43b252467f 100644 --- a/jsonschema/MsgEphemerisBds.json +++ b/jsonschema/MsgEphemerisBds.json @@ -67,4 +67,4 @@ "iode", "iodc" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgEphemerisGPS.json b/jsonschema/MsgEphemerisGPS.json index 4debd5ac7e..ce5bf133ce 100644 --- a/jsonschema/MsgEphemerisGPS.json +++ b/jsonschema/MsgEphemerisGPS.json @@ -65,4 +65,4 @@ "iode", "iodc" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgEphemerisGal.json b/jsonschema/MsgEphemerisGal.json index f74b2161a5..cf3a1f99e9 100644 --- a/jsonschema/MsgEphemerisGal.json +++ b/jsonschema/MsgEphemerisGal.json @@ -69,4 +69,4 @@ "iodc", "source" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgEphemerisGlo.json b/jsonschema/MsgEphemerisGlo.json index dd6d82226f..198179d43a 100644 --- a/jsonschema/MsgEphemerisGlo.json +++ b/jsonschema/MsgEphemerisGlo.json @@ -37,4 +37,4 @@ "fcn", "iod" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgEphemerisQzss.json b/jsonschema/MsgEphemerisQzss.json index 4619835f8e..01e0a21a1b 100644 --- a/jsonschema/MsgEphemerisQzss.json +++ b/jsonschema/MsgEphemerisQzss.json @@ -65,4 +65,4 @@ "iode", "iodc" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgEphemerisSbas.json b/jsonschema/MsgEphemerisSbas.json index 66d8df1291..ac7c3dcb46 100644 --- a/jsonschema/MsgEphemerisSbas.json +++ b/jsonschema/MsgEphemerisSbas.json @@ -31,4 +31,4 @@ "a_gf0", "a_gf1" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgExtEvent.json b/jsonschema/MsgExtEvent.json index c15116a10a..719c4c9401 100644 --- a/jsonschema/MsgExtEvent.json +++ b/jsonschema/MsgExtEvent.json @@ -29,4 +29,4 @@ "flags", "pin" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioConfigReq.json b/jsonschema/MsgFileioConfigReq.json index c94341b1b7..79ba446b20 100644 --- a/jsonschema/MsgFileioConfigReq.json +++ b/jsonschema/MsgFileioConfigReq.json @@ -21,4 +21,4 @@ "required": [ "sequence" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioConfigResp.json b/jsonschema/MsgFileioConfigResp.json index a0d8b84283..75fe6a7786 100644 --- a/jsonschema/MsgFileioConfigResp.json +++ b/jsonschema/MsgFileioConfigResp.json @@ -27,4 +27,4 @@ "batch_size", "fileio_version" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioReadDirReq.json b/jsonschema/MsgFileioReadDirReq.json index 929d22449f..ad43243d38 100644 --- a/jsonschema/MsgFileioReadDirReq.json +++ b/jsonschema/MsgFileioReadDirReq.json @@ -25,4 +25,4 @@ "offset", "dirname" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioReadDirResp.json b/jsonschema/MsgFileioReadDirResp.json index 3e8598c176..d00ba8baae 100644 --- a/jsonschema/MsgFileioReadDirResp.json +++ b/jsonschema/MsgFileioReadDirResp.json @@ -23,4 +23,4 @@ "sequence", "contents" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioReadReq.json b/jsonschema/MsgFileioReadReq.json index 1b43512318..08a2eb9023 100644 --- a/jsonschema/MsgFileioReadReq.json +++ b/jsonschema/MsgFileioReadReq.json @@ -27,4 +27,4 @@ "chunk_size", "filename" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioReadResp.json b/jsonschema/MsgFileioReadResp.json index a64c2a2835..175f763109 100644 --- a/jsonschema/MsgFileioReadResp.json +++ b/jsonschema/MsgFileioReadResp.json @@ -23,4 +23,4 @@ "sequence", "contents" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioRemove.json b/jsonschema/MsgFileioRemove.json index 6cc559bcd6..7232118287 100644 --- a/jsonschema/MsgFileioRemove.json +++ b/jsonschema/MsgFileioRemove.json @@ -21,4 +21,4 @@ "required": [ "filename" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioWriteReq.json b/jsonschema/MsgFileioWriteReq.json index bfae4a4cb3..f06b83d150 100644 --- a/jsonschema/MsgFileioWriteReq.json +++ b/jsonschema/MsgFileioWriteReq.json @@ -27,4 +27,4 @@ "filename", "data" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFileioWriteResp.json b/jsonschema/MsgFileioWriteResp.json index 5a9bf71e18..72f5e70898 100644 --- a/jsonschema/MsgFileioWriteResp.json +++ b/jsonschema/MsgFileioWriteResp.json @@ -21,4 +21,4 @@ "required": [ "sequence" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFlashDone.json b/jsonschema/MsgFlashDone.json index c97703d643..994f730433 100644 --- a/jsonschema/MsgFlashDone.json +++ b/jsonschema/MsgFlashDone.json @@ -21,4 +21,4 @@ "required": [ "response" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFlashErase.json b/jsonschema/MsgFlashErase.json index 2e1ef3e934..264a14994f 100644 --- a/jsonschema/MsgFlashErase.json +++ b/jsonschema/MsgFlashErase.json @@ -23,4 +23,4 @@ "target", "sector_num" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFlashProgram.json b/jsonschema/MsgFlashProgram.json index 8e6f742f90..67d6ac3953 100644 --- a/jsonschema/MsgFlashProgram.json +++ b/jsonschema/MsgFlashProgram.json @@ -27,4 +27,4 @@ "addr_len", "data" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFlashReadReq.json b/jsonschema/MsgFlashReadReq.json index 37d7fa3919..291183f2c1 100644 --- a/jsonschema/MsgFlashReadReq.json +++ b/jsonschema/MsgFlashReadReq.json @@ -25,4 +25,4 @@ "addr_start", "addr_len" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFlashReadResp.json b/jsonschema/MsgFlashReadResp.json index 834a4b2eeb..85b6880f2e 100644 --- a/jsonschema/MsgFlashReadResp.json +++ b/jsonschema/MsgFlashReadResp.json @@ -25,4 +25,4 @@ "addr_start", "addr_len" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFrontEndGain.json b/jsonschema/MsgFrontEndGain.json index f1697570b0..25d344b222 100644 --- a/jsonschema/MsgFrontEndGain.json +++ b/jsonschema/MsgFrontEndGain.json @@ -23,4 +23,4 @@ "rf_gain", "if_gain" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgFwd.json b/jsonschema/MsgFwd.json index 2475a15f00..8f1671267d 100644 --- a/jsonschema/MsgFwd.json +++ b/jsonschema/MsgFwd.json @@ -25,4 +25,4 @@ "protocol", "fwd_payload" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgGPSTime.json b/jsonschema/MsgGPSTime.json index 7c1d590cb7..413a976882 100644 --- a/jsonschema/MsgGPSTime.json +++ b/jsonschema/MsgGPSTime.json @@ -27,4 +27,4 @@ "ns_residual", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgGPSTimeGnss.json b/jsonschema/MsgGPSTimeGnss.json index 08193d4eff..0bafd39de0 100644 --- a/jsonschema/MsgGPSTimeGnss.json +++ b/jsonschema/MsgGPSTimeGnss.json @@ -27,4 +27,4 @@ "ns_residual", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgGloBiases.json b/jsonschema/MsgGloBiases.json index 8f8d7401f5..30b4886256 100644 --- a/jsonschema/MsgGloBiases.json +++ b/jsonschema/MsgGloBiases.json @@ -29,4 +29,4 @@ "l2ca_bias", "l2p_bias" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgGnssCapb.json b/jsonschema/MsgGnssCapb.json index 599d252ce7..b52d39927b 100644 --- a/jsonschema/MsgGnssCapb.json +++ b/jsonschema/MsgGnssCapb.json @@ -23,4 +23,4 @@ "t_nmct", "gc" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgGnssTimeOffset.json b/jsonschema/MsgGnssTimeOffset.json index 7d0ca3a654..46fba9b584 100644 --- a/jsonschema/MsgGnssTimeOffset.json +++ b/jsonschema/MsgGnssTimeOffset.json @@ -27,4 +27,4 @@ "microseconds", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgGroupDelay.json b/jsonschema/MsgGroupDelay.json index 6b2ea17e03..f8c1126466 100644 --- a/jsonschema/MsgGroupDelay.json +++ b/jsonschema/MsgGroupDelay.json @@ -31,4 +31,4 @@ "isc_l1ca", "isc_l2c" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgGroupMeta.json b/jsonschema/MsgGroupMeta.json index ae85e696a4..d6bdba4a33 100644 --- a/jsonschema/MsgGroupMeta.json +++ b/jsonschema/MsgGroupMeta.json @@ -27,4 +27,4 @@ "n_group_msgs", "group_msgs" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgHeartbeat.json b/jsonschema/MsgHeartbeat.json index e5c1571afa..56eb2a9249 100644 --- a/jsonschema/MsgHeartbeat.json +++ b/jsonschema/MsgHeartbeat.json @@ -21,4 +21,4 @@ "required": [ "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgIarState.json b/jsonschema/MsgIarState.json index 0a00336757..07cfbe3e49 100644 --- a/jsonschema/MsgIarState.json +++ b/jsonschema/MsgIarState.json @@ -21,4 +21,4 @@ "required": [ "num_hyps" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgImuAux.json b/jsonschema/MsgImuAux.json index 5314a0d07f..682bcaa991 100644 --- a/jsonschema/MsgImuAux.json +++ b/jsonschema/MsgImuAux.json @@ -25,4 +25,4 @@ "temp", "imu_conf" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgImuComp.json b/jsonschema/MsgImuComp.json new file mode 100644 index 0000000000..2f1fca29a9 --- /dev/null +++ b/jsonschema/MsgImuComp.json @@ -0,0 +1,38 @@ +{ + "copyright": [ + "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." + ], + "$schema": "http://json-schema.org/draft-06/schema#", + "$id": "#MsgImuComp", + "title":"MsgImuComp", + "description":"Data from the Inertial Measurement Unit, containing accelerometer and gyroscope readings compensated for estimated errors and constant physical effects. The output is valid for inertially referenced center of navigation (IMU body frame) represented in vehicle body frame.\n", + "type": "object", + "properties": { + "time": {"type": "integer"}, + "flags": {"type": "integer"}, + "acc_comp_x": {"type": "integer"}, + "acc_comp_y": {"type": "integer"}, + "acc_comp_z": {"type": "integer"}, + "gyr_comp_x": {"type": "integer"}, + "gyr_comp_y": {"type": "integer"}, + "gyr_comp_z": {"type": "integer"} + }, + "required": [ + "time", + "flags", + "acc_comp_x", + "acc_comp_y", + "acc_comp_z", + "gyr_comp_x", + "gyr_comp_y", + "gyr_comp_z" + ] +} diff --git a/jsonschema/MsgImuRaw.json b/jsonschema/MsgImuRaw.json index 165d241f64..5a7e62ecb0 100644 --- a/jsonschema/MsgImuRaw.json +++ b/jsonschema/MsgImuRaw.json @@ -35,4 +35,4 @@ "gyr_y", "gyr_z" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgInsStatus.json b/jsonschema/MsgInsStatus.json index 0ffdfb43cc..546b0f2921 100644 --- a/jsonschema/MsgInsStatus.json +++ b/jsonschema/MsgInsStatus.json @@ -21,4 +21,4 @@ "required": [ "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgInsUpdates.json b/jsonschema/MsgInsUpdates.json index d8ca5b4a73..67d1d6b52e 100644 --- a/jsonschema/MsgInsUpdates.json +++ b/jsonschema/MsgInsUpdates.json @@ -33,4 +33,4 @@ "nhc", "zerovel" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgIono.json b/jsonschema/MsgIono.json index 5b2de2f55e..7f808d1b84 100644 --- a/jsonschema/MsgIono.json +++ b/jsonschema/MsgIono.json @@ -37,4 +37,4 @@ "b2", "b3" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLinuxCpuState.json b/jsonschema/MsgLinuxCpuState.json index 61fcacef2b..26315bac8d 100644 --- a/jsonschema/MsgLinuxCpuState.json +++ b/jsonschema/MsgLinuxCpuState.json @@ -33,4 +33,4 @@ "tname", "cmdline" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLinuxMemState.json b/jsonschema/MsgLinuxMemState.json index efb866911c..440ec580e0 100644 --- a/jsonschema/MsgLinuxMemState.json +++ b/jsonschema/MsgLinuxMemState.json @@ -33,4 +33,4 @@ "tname", "cmdline" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLinuxProcessFdCount.json b/jsonschema/MsgLinuxProcessFdCount.json index 529e2eba40..05a1fe69ba 100644 --- a/jsonschema/MsgLinuxProcessFdCount.json +++ b/jsonschema/MsgLinuxProcessFdCount.json @@ -27,4 +27,4 @@ "fd_count", "cmdline" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLinuxProcessFdSummary.json b/jsonschema/MsgLinuxProcessFdSummary.json index 3fb84f26a2..5647b0814f 100644 --- a/jsonschema/MsgLinuxProcessFdSummary.json +++ b/jsonschema/MsgLinuxProcessFdSummary.json @@ -23,4 +23,4 @@ "sys_fd_count", "most_opened" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLinuxProcessSocketCounts.json b/jsonschema/MsgLinuxProcessSocketCounts.json index f7d9579328..cbdcf32976 100644 --- a/jsonschema/MsgLinuxProcessSocketCounts.json +++ b/jsonschema/MsgLinuxProcessSocketCounts.json @@ -31,4 +31,4 @@ "socket_states", "cmdline" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLinuxProcessSocketQueues.json b/jsonschema/MsgLinuxProcessSocketQueues.json index 5b4fba47f6..645c31ccaa 100644 --- a/jsonschema/MsgLinuxProcessSocketQueues.json +++ b/jsonschema/MsgLinuxProcessSocketQueues.json @@ -35,4 +35,4 @@ "address_of_largest", "cmdline" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLinuxSocketUsage.json b/jsonschema/MsgLinuxSocketUsage.json index 8fd7077e0b..f218416024 100644 --- a/jsonschema/MsgLinuxSocketUsage.json +++ b/jsonschema/MsgLinuxSocketUsage.json @@ -27,4 +27,4 @@ "socket_state_counts", "socket_type_counts" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLinuxSysState.json b/jsonschema/MsgLinuxSysState.json index 834bf0ea93..35d5ba847b 100644 --- a/jsonschema/MsgLinuxSysState.json +++ b/jsonschema/MsgLinuxSysState.json @@ -35,4 +35,4 @@ "time", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgLog.json b/jsonschema/MsgLog.json index c3a1c86559..d6875da258 100644 --- a/jsonschema/MsgLog.json +++ b/jsonschema/MsgLog.json @@ -23,4 +23,4 @@ "level", "text" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgM25FlashWriteStatus.json b/jsonschema/MsgM25FlashWriteStatus.json index b6f369bddc..3b2419f0ef 100644 --- a/jsonschema/MsgM25FlashWriteStatus.json +++ b/jsonschema/MsgM25FlashWriteStatus.json @@ -21,4 +21,4 @@ "required": [ "status" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgMagRaw.json b/jsonschema/MsgMagRaw.json index 393a56bce6..407c61ad19 100644 --- a/jsonschema/MsgMagRaw.json +++ b/jsonschema/MsgMagRaw.json @@ -29,4 +29,4 @@ "mag_y", "mag_z" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgMaskSatellite.json b/jsonschema/MsgMaskSatellite.json index aceb9c6ae2..6c7688061c 100644 --- a/jsonschema/MsgMaskSatellite.json +++ b/jsonschema/MsgMaskSatellite.json @@ -23,4 +23,4 @@ "mask", "sid" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgMeasurementPoint.json b/jsonschema/MsgMeasurementPoint.json index eae4be2f6a..fd917ec774 100644 --- a/jsonschema/MsgMeasurementPoint.json +++ b/jsonschema/MsgMeasurementPoint.json @@ -37,4 +37,4 @@ "line", "func" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgMeasurementState.json b/jsonschema/MsgMeasurementState.json index 4bcd20dfac..3ced3713a5 100644 --- a/jsonschema/MsgMeasurementState.json +++ b/jsonschema/MsgMeasurementState.json @@ -21,4 +21,4 @@ "required": [ "states" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgNapDeviceDnaReq.json b/jsonschema/MsgNapDeviceDnaReq.json index dc766b7d8e..b6524bedb9 100644 --- a/jsonschema/MsgNapDeviceDnaReq.json +++ b/jsonschema/MsgNapDeviceDnaReq.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgNapDeviceDnaResp.json b/jsonschema/MsgNapDeviceDnaResp.json index 74556a6755..09ef3bc0be 100644 --- a/jsonschema/MsgNapDeviceDnaResp.json +++ b/jsonschema/MsgNapDeviceDnaResp.json @@ -21,4 +21,4 @@ "required": [ "dna" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgNdbEvent.json b/jsonschema/MsgNdbEvent.json index 95d16f0f4b..9e2204d26d 100644 --- a/jsonschema/MsgNdbEvent.json +++ b/jsonschema/MsgNdbEvent.json @@ -35,4 +35,4 @@ "src_sid", "original_sender" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgNetworkBandwidthUsage.json b/jsonschema/MsgNetworkBandwidthUsage.json index 34ca92e317..0ff8e6a00d 100644 --- a/jsonschema/MsgNetworkBandwidthUsage.json +++ b/jsonschema/MsgNetworkBandwidthUsage.json @@ -21,4 +21,4 @@ "required": [ "interfaces" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgNetworkStateReq.json b/jsonschema/MsgNetworkStateReq.json index d9c9a8df0b..371c997790 100644 --- a/jsonschema/MsgNetworkStateReq.json +++ b/jsonschema/MsgNetworkStateReq.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgNetworkStateResp.json b/jsonschema/MsgNetworkStateResp.json index 407d0aac1a..622880625d 100644 --- a/jsonschema/MsgNetworkStateResp.json +++ b/jsonschema/MsgNetworkStateResp.json @@ -35,4 +35,4 @@ "interface_name", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgObs.json b/jsonschema/MsgObs.json index 0fef7dc20d..313c4c0d03 100644 --- a/jsonschema/MsgObs.json +++ b/jsonschema/MsgObs.json @@ -23,4 +23,4 @@ "header", "obs" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgOdometry.json b/jsonschema/MsgOdometry.json index 026c066346..9f2ef0912a 100644 --- a/jsonschema/MsgOdometry.json +++ b/jsonschema/MsgOdometry.json @@ -25,4 +25,4 @@ "velocity", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgOrientEuler.json b/jsonschema/MsgOrientEuler.json index 523955125f..a073522d81 100644 --- a/jsonschema/MsgOrientEuler.json +++ b/jsonschema/MsgOrientEuler.json @@ -35,4 +35,4 @@ "yaw_accuracy", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgOrientQuat.json b/jsonschema/MsgOrientQuat.json index 48ba837b82..38032fa00a 100644 --- a/jsonschema/MsgOrientQuat.json +++ b/jsonschema/MsgOrientQuat.json @@ -39,4 +39,4 @@ "z_accuracy", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgOsr.json b/jsonschema/MsgOsr.json index c6cb746517..44720dfd5b 100644 --- a/jsonschema/MsgOsr.json +++ b/jsonschema/MsgOsr.json @@ -23,4 +23,4 @@ "header", "obs" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosECEF.json b/jsonschema/MsgPosECEF.json index ff5b3816ec..44e0606fd6 100644 --- a/jsonschema/MsgPosECEF.json +++ b/jsonschema/MsgPosECEF.json @@ -33,4 +33,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosECEFCov.json b/jsonschema/MsgPosECEFCov.json index 1f792e3098..c689441478 100644 --- a/jsonschema/MsgPosECEFCov.json +++ b/jsonschema/MsgPosECEFCov.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosECEFCovGnss.json b/jsonschema/MsgPosECEFCovGnss.json index 60079ff73f..549ac3f581 100644 --- a/jsonschema/MsgPosECEFCovGnss.json +++ b/jsonschema/MsgPosECEFCovGnss.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosECEFGnss.json b/jsonschema/MsgPosECEFGnss.json index 25d1b143f0..a2219054f9 100644 --- a/jsonschema/MsgPosECEFGnss.json +++ b/jsonschema/MsgPosECEFGnss.json @@ -33,4 +33,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosLLH.json b/jsonschema/MsgPosLLH.json index 90cf8f35bb..c0d4d92d85 100644 --- a/jsonschema/MsgPosLLH.json +++ b/jsonschema/MsgPosLLH.json @@ -35,4 +35,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosLLHAcc.json b/jsonschema/MsgPosLLHAcc.json index 399d69ffe9..d48a559c88 100644 --- a/jsonschema/MsgPosLLHAcc.json +++ b/jsonschema/MsgPosLLHAcc.json @@ -45,4 +45,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosLLHCov.json b/jsonschema/MsgPosLLHCov.json index 62ddbfc737..8b8e46351e 100644 --- a/jsonschema/MsgPosLLHCov.json +++ b/jsonschema/MsgPosLLHCov.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosLLHCovGnss.json b/jsonschema/MsgPosLLHCovGnss.json index 518abde98e..2a641cfc50 100644 --- a/jsonschema/MsgPosLLHCovGnss.json +++ b/jsonschema/MsgPosLLHCovGnss.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPosLLHGnss.json b/jsonschema/MsgPosLLHGnss.json index 8d24f45450..6bd6f4586f 100644 --- a/jsonschema/MsgPosLLHGnss.json +++ b/jsonschema/MsgPosLLHGnss.json @@ -35,4 +35,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPoseRelative.json b/jsonschema/MsgPoseRelative.json index ca83df5995..d5455bd4ec 100644 --- a/jsonschema/MsgPoseRelative.json +++ b/jsonschema/MsgPoseRelative.json @@ -63,4 +63,4 @@ "cov_c_z_z", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgPpsTime.json b/jsonschema/MsgPpsTime.json index f87d02272a..dde9d5f59c 100644 --- a/jsonschema/MsgPpsTime.json +++ b/jsonschema/MsgPpsTime.json @@ -23,4 +23,4 @@ "time", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgProfilingResourceCounter.json b/jsonschema/MsgProfilingResourceCounter.json index 64f54d1ff0..fcbe6573db 100644 --- a/jsonschema/MsgProfilingResourceCounter.json +++ b/jsonschema/MsgProfilingResourceCounter.json @@ -25,4 +25,4 @@ "seq_len", "buckets" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgProfilingSystemInfo.json b/jsonschema/MsgProfilingSystemInfo.json index bb3ad7f52d..014159623e 100644 --- a/jsonschema/MsgProfilingSystemInfo.json +++ b/jsonschema/MsgProfilingSystemInfo.json @@ -27,4 +27,4 @@ "n_threads", "heap_usage" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgProfilingThreadInfo.json b/jsonschema/MsgProfilingThreadInfo.json index 9f7e8952f0..1d06033382 100644 --- a/jsonschema/MsgProfilingThreadInfo.json +++ b/jsonschema/MsgProfilingThreadInfo.json @@ -31,4 +31,4 @@ "stack_usage", "name" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgProtectionLevel.json b/jsonschema/MsgProtectionLevel.json index 1ee4024983..92289b7606 100644 --- a/jsonschema/MsgProtectionLevel.json +++ b/jsonschema/MsgProtectionLevel.json @@ -61,4 +61,4 @@ "heading", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgReferenceFrameParam.json b/jsonschema/MsgReferenceFrameParam.json index b02f49cebc..229bb5c1c6 100644 --- a/jsonschema/MsgReferenceFrameParam.json +++ b/jsonschema/MsgReferenceFrameParam.json @@ -59,4 +59,4 @@ "dot_theta_03", "dot_scale" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgReset.json b/jsonschema/MsgReset.json index dbd15892c6..353ecab72a 100644 --- a/jsonschema/MsgReset.json +++ b/jsonschema/MsgReset.json @@ -21,4 +21,4 @@ "required": [ "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgResetFilters.json b/jsonschema/MsgResetFilters.json index 4a8245e141..fae69e2b7a 100644 --- a/jsonschema/MsgResetFilters.json +++ b/jsonschema/MsgResetFilters.json @@ -21,4 +21,4 @@ "required": [ "filter" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSbasRaw.json b/jsonschema/MsgSbasRaw.json index 8555be8dd6..8e6c1125da 100644 --- a/jsonschema/MsgSbasRaw.json +++ b/jsonschema/MsgSbasRaw.json @@ -27,4 +27,4 @@ "message_type", "data" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSensorAidEvent.json b/jsonschema/MsgSensorAidEvent.json index 66a61485b4..f1eda41207 100644 --- a/jsonschema/MsgSensorAidEvent.json +++ b/jsonschema/MsgSensorAidEvent.json @@ -35,4 +35,4 @@ "n_accepted_meas", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSetTime.json b/jsonschema/MsgSetTime.json index 0edfc1e67e..9e5dfac897 100644 --- a/jsonschema/MsgSetTime.json +++ b/jsonschema/MsgSetTime.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsReadByIndexDone.json b/jsonschema/MsgSettingsReadByIndexDone.json index b26f8bb412..c6acd6fa37 100644 --- a/jsonschema/MsgSettingsReadByIndexDone.json +++ b/jsonschema/MsgSettingsReadByIndexDone.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsReadByIndexReq.json b/jsonschema/MsgSettingsReadByIndexReq.json index f9efef7664..be647076e4 100644 --- a/jsonschema/MsgSettingsReadByIndexReq.json +++ b/jsonschema/MsgSettingsReadByIndexReq.json @@ -21,4 +21,4 @@ "required": [ "index" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsReadByIndexResp.json b/jsonschema/MsgSettingsReadByIndexResp.json index 3ef9529ae2..de779e2d13 100644 --- a/jsonschema/MsgSettingsReadByIndexResp.json +++ b/jsonschema/MsgSettingsReadByIndexResp.json @@ -23,4 +23,4 @@ "index", "setting" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsReadReq.json b/jsonschema/MsgSettingsReadReq.json index cb7f4a1ee1..7eb7fd5a70 100644 --- a/jsonschema/MsgSettingsReadReq.json +++ b/jsonschema/MsgSettingsReadReq.json @@ -21,4 +21,4 @@ "required": [ "setting" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsReadResp.json b/jsonschema/MsgSettingsReadResp.json index 7f2b87af0a..2d76cc35f7 100644 --- a/jsonschema/MsgSettingsReadResp.json +++ b/jsonschema/MsgSettingsReadResp.json @@ -21,4 +21,4 @@ "required": [ "setting" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsRegister.json b/jsonschema/MsgSettingsRegister.json index c88df6f95a..3be3ea7335 100644 --- a/jsonschema/MsgSettingsRegister.json +++ b/jsonschema/MsgSettingsRegister.json @@ -21,4 +21,4 @@ "required": [ "setting" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsRegisterResp.json b/jsonschema/MsgSettingsRegisterResp.json index 495e93db55..a498b20e82 100644 --- a/jsonschema/MsgSettingsRegisterResp.json +++ b/jsonschema/MsgSettingsRegisterResp.json @@ -23,4 +23,4 @@ "status", "setting" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsSave.json b/jsonschema/MsgSettingsSave.json index afe64fb4ab..b62f40fe4d 100644 --- a/jsonschema/MsgSettingsSave.json +++ b/jsonschema/MsgSettingsSave.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsWrite.json b/jsonschema/MsgSettingsWrite.json index e0e3b0b30b..3e12f893fa 100644 --- a/jsonschema/MsgSettingsWrite.json +++ b/jsonschema/MsgSettingsWrite.json @@ -21,4 +21,4 @@ "required": [ "setting" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSettingsWriteResp.json b/jsonschema/MsgSettingsWriteResp.json index bcbaa1a14f..d1156149d1 100644 --- a/jsonschema/MsgSettingsWriteResp.json +++ b/jsonschema/MsgSettingsWriteResp.json @@ -23,4 +23,4 @@ "status", "setting" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSolnMeta.json b/jsonschema/MsgSolnMeta.json index ec1b9a78bc..492265760f 100644 --- a/jsonschema/MsgSolnMeta.json +++ b/jsonschema/MsgSolnMeta.json @@ -33,4 +33,4 @@ "age_gnss", "sol_in" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSpecan.json b/jsonschema/MsgSpecan.json index 10de1900c8..3863538611 100644 --- a/jsonschema/MsgSpecan.json +++ b/jsonschema/MsgSpecan.json @@ -33,4 +33,4 @@ "amplitude_unit", "amplitude_value" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrCodeBiases.json b/jsonschema/MsgSsrCodeBiases.json index 0011b161d8..6cd42affae 100644 --- a/jsonschema/MsgSsrCodeBiases.json +++ b/jsonschema/MsgSsrCodeBiases.json @@ -29,4 +29,4 @@ "iod_ssr", "biases" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrCodePhaseBiasesBounds.json b/jsonschema/MsgSsrCodePhaseBiasesBounds.json index 2916372a10..a62d5fe53e 100644 --- a/jsonschema/MsgSsrCodePhaseBiasesBounds.json +++ b/jsonschema/MsgSsrCodePhaseBiasesBounds.json @@ -29,4 +29,4 @@ "n_sats_signals", "satellites_signals" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrFlagHighLevel.json b/jsonschema/MsgSsrFlagHighLevel.json index 85ec19ccd2..70005ae4a3 100644 --- a/jsonschema/MsgSsrFlagHighLevel.json +++ b/jsonschema/MsgSsrFlagHighLevel.json @@ -47,4 +47,4 @@ "use_iono_tile_sat_los", "use_iono_grid_point_sat_los" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrFlagIonoGridPointSatLos.json b/jsonschema/MsgSsrFlagIonoGridPointSatLos.json index 9e76bb70df..a6cfe17a51 100644 --- a/jsonschema/MsgSsrFlagIonoGridPointSatLos.json +++ b/jsonschema/MsgSsrFlagIonoGridPointSatLos.json @@ -27,4 +27,4 @@ "n_faulty_los", "faulty_los" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrFlagIonoGridPoints.json b/jsonschema/MsgSsrFlagIonoGridPoints.json index 63aaa302f6..b75dcb8b01 100644 --- a/jsonschema/MsgSsrFlagIonoGridPoints.json +++ b/jsonschema/MsgSsrFlagIonoGridPoints.json @@ -25,4 +25,4 @@ "n_faulty_points", "faulty_points" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrFlagIonoTileSatLos.json b/jsonschema/MsgSsrFlagIonoTileSatLos.json index c8f0d89d20..d32b752e68 100644 --- a/jsonschema/MsgSsrFlagIonoTileSatLos.json +++ b/jsonschema/MsgSsrFlagIonoTileSatLos.json @@ -25,4 +25,4 @@ "n_faulty_los", "faulty_los" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrFlagSatellites.json b/jsonschema/MsgSsrFlagSatellites.json index 4f88f6a6d6..5cdf87c69e 100644 --- a/jsonschema/MsgSsrFlagSatellites.json +++ b/jsonschema/MsgSsrFlagSatellites.json @@ -35,4 +35,4 @@ "n_faulty_sats", "faulty_sats" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrFlagTropoGridPoints.json b/jsonschema/MsgSsrFlagTropoGridPoints.json index 10f1784353..6f85663b85 100644 --- a/jsonschema/MsgSsrFlagTropoGridPoints.json +++ b/jsonschema/MsgSsrFlagTropoGridPoints.json @@ -25,4 +25,4 @@ "n_faulty_points", "faulty_points" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrGriddedCorrection.json b/jsonschema/MsgSsrGriddedCorrection.json index be464b6155..d60ef49e52 100644 --- a/jsonschema/MsgSsrGriddedCorrection.json +++ b/jsonschema/MsgSsrGriddedCorrection.json @@ -27,4 +27,4 @@ "tropo_delay_correction", "stec_residuals" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrGriddedCorrectionBounds.json b/jsonschema/MsgSsrGriddedCorrectionBounds.json index 27659d9dd0..13fd30397a 100644 --- a/jsonschema/MsgSsrGriddedCorrectionBounds.json +++ b/jsonschema/MsgSsrGriddedCorrectionBounds.json @@ -45,4 +45,4 @@ "n_sats", "stec_sat_list" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrOrbitClock.json b/jsonschema/MsgSsrOrbitClock.json index e739fbc6bd..6a89373306 100644 --- a/jsonschema/MsgSsrOrbitClock.json +++ b/jsonschema/MsgSsrOrbitClock.json @@ -47,4 +47,4 @@ "c1", "c2" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrOrbitClockBounds.json b/jsonschema/MsgSsrOrbitClockBounds.json index 970605f5d9..00405980c0 100644 --- a/jsonschema/MsgSsrOrbitClockBounds.json +++ b/jsonschema/MsgSsrOrbitClockBounds.json @@ -29,4 +29,4 @@ "n_sats", "orbit_clock_bounds" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrOrbitClockBoundsDegradation.json b/jsonschema/MsgSsrOrbitClockBoundsDegradation.json index 9517422c98..59600df5ee 100644 --- a/jsonschema/MsgSsrOrbitClockBoundsDegradation.json +++ b/jsonschema/MsgSsrOrbitClockBoundsDegradation.json @@ -29,4 +29,4 @@ "sat_bitmask", "orbit_clock_bounds_degradation" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrPhaseBiases.json b/jsonschema/MsgSsrPhaseBiases.json index 7ab133a7f9..699ca8d116 100644 --- a/jsonschema/MsgSsrPhaseBiases.json +++ b/jsonschema/MsgSsrPhaseBiases.json @@ -37,4 +37,4 @@ "yaw_rate", "biases" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrSatelliteApc.json b/jsonschema/MsgSsrSatelliteApc.json index 4b81123442..552492cbc3 100644 --- a/jsonschema/MsgSsrSatelliteApc.json +++ b/jsonschema/MsgSsrSatelliteApc.json @@ -29,4 +29,4 @@ "iod_ssr", "apc" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrStecCorrection.json b/jsonschema/MsgSsrStecCorrection.json index 5b5c695fd3..671a20e441 100644 --- a/jsonschema/MsgSsrStecCorrection.json +++ b/jsonschema/MsgSsrStecCorrection.json @@ -31,4 +31,4 @@ "n_sats", "stec_sat_list" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSsrTileDefinition.json b/jsonschema/MsgSsrTileDefinition.json index 64b72b341f..89b71211c0 100644 --- a/jsonschema/MsgSsrTileDefinition.json +++ b/jsonschema/MsgSsrTileDefinition.json @@ -45,4 +45,4 @@ "cols", "bitmask" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgStartup.json b/jsonschema/MsgStartup.json index a4eda03db7..e66b4b237a 100644 --- a/jsonschema/MsgStartup.json +++ b/jsonschema/MsgStartup.json @@ -23,4 +23,4 @@ "cause", "startup_type", ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgStatusJournal.json b/jsonschema/MsgStatusJournal.json index ba8085b49b..c8a031227f 100644 --- a/jsonschema/MsgStatusJournal.json +++ b/jsonschema/MsgStatusJournal.json @@ -29,4 +29,4 @@ "sequence_descriptor", "journal" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgStatusReport.json b/jsonschema/MsgStatusReport.json index 70df5aaafd..3ed57b7c7a 100644 --- a/jsonschema/MsgStatusReport.json +++ b/jsonschema/MsgStatusReport.json @@ -29,4 +29,4 @@ "uptime", "status" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgStmFlashLockSector.json b/jsonschema/MsgStmFlashLockSector.json index 8c7e2dc6dc..2abe4e66c8 100644 --- a/jsonschema/MsgStmFlashLockSector.json +++ b/jsonschema/MsgStmFlashLockSector.json @@ -21,4 +21,4 @@ "required": [ "sector" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgStmFlashUnlockSector.json b/jsonschema/MsgStmFlashUnlockSector.json index 70489bfb7e..912b17b37d 100644 --- a/jsonschema/MsgStmFlashUnlockSector.json +++ b/jsonschema/MsgStmFlashUnlockSector.json @@ -21,4 +21,4 @@ "required": [ "sector" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgStmUniqueIdReq.json b/jsonschema/MsgStmUniqueIdReq.json index c2f3ac7a58..25868efcc8 100644 --- a/jsonschema/MsgStmUniqueIdReq.json +++ b/jsonschema/MsgStmUniqueIdReq.json @@ -19,4 +19,4 @@ }, "required": [ ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgStmUniqueIdResp.json b/jsonschema/MsgStmUniqueIdResp.json index af96d294a1..bea36f78fc 100644 --- a/jsonschema/MsgStmUniqueIdResp.json +++ b/jsonschema/MsgStmUniqueIdResp.json @@ -21,4 +21,4 @@ "required": [ "stm_id" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgSvAzEl.json b/jsonschema/MsgSvAzEl.json index 06d8bacb17..55846db319 100644 --- a/jsonschema/MsgSvAzEl.json +++ b/jsonschema/MsgSvAzEl.json @@ -21,4 +21,4 @@ "required": [ "azel" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgTelSv.json b/jsonschema/MsgTelSv.json index 3a69c81baf..07343f532b 100644 --- a/jsonschema/MsgTelSv.json +++ b/jsonschema/MsgTelSv.json @@ -29,4 +29,4 @@ "origin_flags", "sv_tel" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgThreadState.json b/jsonschema/MsgThreadState.json index 2051887fc9..fc621acbb5 100644 --- a/jsonschema/MsgThreadState.json +++ b/jsonschema/MsgThreadState.json @@ -25,4 +25,4 @@ "cpu", "stack_free" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgTrackingIq.json b/jsonschema/MsgTrackingIq.json index 60b79b4c68..a8ae08782d 100644 --- a/jsonschema/MsgTrackingIq.json +++ b/jsonschema/MsgTrackingIq.json @@ -25,4 +25,4 @@ "sid", "corrs" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgTrackingState.json b/jsonschema/MsgTrackingState.json index 6aa7e3e03d..12132f8e19 100644 --- a/jsonschema/MsgTrackingState.json +++ b/jsonschema/MsgTrackingState.json @@ -21,4 +21,4 @@ "required": [ "states" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgUartState.json b/jsonschema/MsgUartState.json index 01a177c8f7..8ce9b49dc6 100644 --- a/jsonschema/MsgUartState.json +++ b/jsonschema/MsgUartState.json @@ -29,4 +29,4 @@ "latency", "obs_period" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgUserData.json b/jsonschema/MsgUserData.json index 37e9119ae4..a07faeb031 100644 --- a/jsonschema/MsgUserData.json +++ b/jsonschema/MsgUserData.json @@ -21,4 +21,4 @@ "required": [ "contents" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgUtcLeapSecond.json b/jsonschema/MsgUtcLeapSecond.json index 932153c0d9..b508b76275 100644 --- a/jsonschema/MsgUtcLeapSecond.json +++ b/jsonschema/MsgUtcLeapSecond.json @@ -27,4 +27,4 @@ "ref_dn", "count_after" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgUtcTime.json b/jsonschema/MsgUtcTime.json index 5b5b18745d..8b00f0fc63 100644 --- a/jsonschema/MsgUtcTime.json +++ b/jsonschema/MsgUtcTime.json @@ -37,4 +37,4 @@ "seconds", "ns" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgUtcTimeGnss.json b/jsonschema/MsgUtcTimeGnss.json index 94b984802f..caa384374c 100644 --- a/jsonschema/MsgUtcTimeGnss.json +++ b/jsonschema/MsgUtcTimeGnss.json @@ -37,4 +37,4 @@ "seconds", "ns" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelBody.json b/jsonschema/MsgVelBody.json index 229662ffe7..df540c9bda 100644 --- a/jsonschema/MsgVelBody.json +++ b/jsonschema/MsgVelBody.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelCog.json b/jsonschema/MsgVelCog.json index 4d19af3bbe..f1ab80e6bd 100644 --- a/jsonschema/MsgVelCog.json +++ b/jsonschema/MsgVelCog.json @@ -35,4 +35,4 @@ "v_up_accuracy", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelECEF.json b/jsonschema/MsgVelECEF.json index cadea16605..6339959af8 100644 --- a/jsonschema/MsgVelECEF.json +++ b/jsonschema/MsgVelECEF.json @@ -33,4 +33,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelECEFCov.json b/jsonschema/MsgVelECEFCov.json index 76e1e92ad2..6ddb8e9fe4 100644 --- a/jsonschema/MsgVelECEFCov.json +++ b/jsonschema/MsgVelECEFCov.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelECEFCovGnss.json b/jsonschema/MsgVelECEFCovGnss.json index ac527c8c3d..c5dac10e2d 100644 --- a/jsonschema/MsgVelECEFCovGnss.json +++ b/jsonschema/MsgVelECEFCovGnss.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelECEFGnss.json b/jsonschema/MsgVelECEFGnss.json index bd21834e51..a0440e9d6d 100644 --- a/jsonschema/MsgVelECEFGnss.json +++ b/jsonschema/MsgVelECEFGnss.json @@ -33,4 +33,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelNED.json b/jsonschema/MsgVelNED.json index 29dcd6fbc6..ff0ba44a49 100644 --- a/jsonschema/MsgVelNED.json +++ b/jsonschema/MsgVelNED.json @@ -35,4 +35,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelNEDCov.json b/jsonschema/MsgVelNEDCov.json index b2030877e0..4adf3bb630 100644 --- a/jsonschema/MsgVelNEDCov.json +++ b/jsonschema/MsgVelNEDCov.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelNEDCovGnss.json b/jsonschema/MsgVelNEDCovGnss.json index ccc1b26711..2670dda244 100644 --- a/jsonschema/MsgVelNEDCovGnss.json +++ b/jsonschema/MsgVelNEDCovGnss.json @@ -43,4 +43,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgVelNEDGnss.json b/jsonschema/MsgVelNEDGnss.json index 3e16005b82..4ebe9e9a0f 100644 --- a/jsonschema/MsgVelNEDGnss.json +++ b/jsonschema/MsgVelNEDGnss.json @@ -35,4 +35,4 @@ "n_sats", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/MsgWheeltick.json b/jsonschema/MsgWheeltick.json index f09127e54c..4d2b9cb201 100644 --- a/jsonschema/MsgWheeltick.json +++ b/jsonschema/MsgWheeltick.json @@ -27,4 +27,4 @@ "source", "ticks" ] -} \ No newline at end of file +} diff --git a/jsonschema/NetworkUsage.json b/jsonschema/NetworkUsage.json index cc99a3f15f..edcfb1fff1 100644 --- a/jsonschema/NetworkUsage.json +++ b/jsonschema/NetworkUsage.json @@ -29,4 +29,4 @@ "tx_bytes", "interface_name" ] -} \ No newline at end of file +} diff --git a/jsonschema/ObservationHeader.json b/jsonschema/ObservationHeader.json index c49edf5cce..e1fb37ed7a 100644 --- a/jsonschema/ObservationHeader.json +++ b/jsonschema/ObservationHeader.json @@ -23,4 +23,4 @@ "t", "n_obs" ] -} \ No newline at end of file +} diff --git a/jsonschema/OdoInputType.json b/jsonschema/OdoInputType.json index 51b8cc3ea1..d8b03add0d 100644 --- a/jsonschema/OdoInputType.json +++ b/jsonschema/OdoInputType.json @@ -21,4 +21,4 @@ "required": [ "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/OrbitClockBound.json b/jsonschema/OrbitClockBound.json index 42171b0393..d6677f8990 100644 --- a/jsonschema/OrbitClockBound.json +++ b/jsonschema/OrbitClockBound.json @@ -37,4 +37,4 @@ "clock_bound_mu", "clock_bound_sig" ] -} \ No newline at end of file +} diff --git a/jsonschema/OrbitClockBoundDegradation.json b/jsonschema/OrbitClockBoundDegradation.json index fd1f6eeeb6..541c88386e 100644 --- a/jsonschema/OrbitClockBoundDegradation.json +++ b/jsonschema/OrbitClockBoundDegradation.json @@ -35,4 +35,4 @@ "clock_bound_mu_dot", "clock_bound_sig_dot" ] -} \ No newline at end of file +} diff --git a/jsonschema/PackedObsContent.json b/jsonschema/PackedObsContent.json index 3d00b62a4c..6cbad817ae 100644 --- a/jsonschema/PackedObsContent.json +++ b/jsonschema/PackedObsContent.json @@ -33,4 +33,4 @@ "flags", "sid" ] -} \ No newline at end of file +} diff --git a/jsonschema/PackedOsrContent.json b/jsonschema/PackedOsrContent.json index 710d2c132e..51ba534eec 100644 --- a/jsonschema/PackedOsrContent.json +++ b/jsonschema/PackedOsrContent.json @@ -35,4 +35,4 @@ "tropo_std", "range_std" ] -} \ No newline at end of file +} diff --git a/jsonschema/Period.json b/jsonschema/Period.json index 1e70ae02a2..667451de09 100644 --- a/jsonschema/Period.json +++ b/jsonschema/Period.json @@ -27,4 +27,4 @@ "pmax", "current" ] -} \ No newline at end of file +} diff --git a/jsonschema/PhaseBiasesContent.json b/jsonschema/PhaseBiasesContent.json index 54c1cf20a1..f3de5644c2 100644 --- a/jsonschema/PhaseBiasesContent.json +++ b/jsonschema/PhaseBiasesContent.json @@ -29,4 +29,4 @@ "discontinuity_counter", "bias" ] -} \ No newline at end of file +} diff --git a/jsonschema/ResourceBucket.json b/jsonschema/ResourceBucket.json index 1cebb83d1a..e9402a59d0 100644 --- a/jsonschema/ResourceBucket.json +++ b/jsonschema/ResourceBucket.json @@ -37,4 +37,4 @@ "io_write", "io_read" ] -} \ No newline at end of file +} diff --git a/jsonschema/STECHeader.json b/jsonschema/STECHeader.json index df47defe13..e9d85a0a1a 100644 --- a/jsonschema/STECHeader.json +++ b/jsonschema/STECHeader.json @@ -33,4 +33,4 @@ "update_interval", "iod_atmo" ] -} \ No newline at end of file +} diff --git a/jsonschema/STECResidual.json b/jsonschema/STECResidual.json index e778d0433a..49d0bedcd5 100644 --- a/jsonschema/STECResidual.json +++ b/jsonschema/STECResidual.json @@ -25,4 +25,4 @@ "residual", "stddev" ] -} \ No newline at end of file +} diff --git a/jsonschema/STECResidualNoStd.json b/jsonschema/STECResidualNoStd.json index 342db722fb..902c47313a 100644 --- a/jsonschema/STECResidualNoStd.json +++ b/jsonschema/STECResidualNoStd.json @@ -23,4 +23,4 @@ "sv_id", "residual" ] -} \ No newline at end of file +} diff --git a/jsonschema/STECSatElement.json b/jsonschema/STECSatElement.json index ddc083a484..3cb099eafc 100644 --- a/jsonschema/STECSatElement.json +++ b/jsonschema/STECSatElement.json @@ -25,4 +25,4 @@ "stec_quality_indicator", "stec_coeff" ] -} \ No newline at end of file +} diff --git a/jsonschema/STECSatElementIntegrity.json b/jsonschema/STECSatElementIntegrity.json index 11302dcbae..ac60fb5139 100644 --- a/jsonschema/STECSatElementIntegrity.json +++ b/jsonschema/STECSatElementIntegrity.json @@ -29,4 +29,4 @@ "stec_bound_mu_dot", "stec_bound_sig_dot" ] -} \ No newline at end of file +} diff --git a/jsonschema/SatelliteAPC.json b/jsonschema/SatelliteAPC.json index 8c0cb99239..0b6a064aa4 100644 --- a/jsonschema/SatelliteAPC.json +++ b/jsonschema/SatelliteAPC.json @@ -29,4 +29,4 @@ "pco", "pcv" ] -} \ No newline at end of file +} diff --git a/jsonschema/SolutionInputType.json b/jsonschema/SolutionInputType.json index 419a4e686b..6e6797e8b9 100644 --- a/jsonschema/SolutionInputType.json +++ b/jsonschema/SolutionInputType.json @@ -23,4 +23,4 @@ "sensor_type", "flags" ] -} \ No newline at end of file +} diff --git a/jsonschema/StatusJournalItem.json b/jsonschema/StatusJournalItem.json index 74b21d1fed..d21565a237 100644 --- a/jsonschema/StatusJournalItem.json +++ b/jsonschema/StatusJournalItem.json @@ -23,4 +23,4 @@ "uptime", "report" ] -} \ No newline at end of file +} diff --git a/jsonschema/SubSystemReport.json b/jsonschema/SubSystemReport.json index 2e8b3c3bf7..d17864d0b6 100644 --- a/jsonschema/SubSystemReport.json +++ b/jsonschema/SubSystemReport.json @@ -25,4 +25,4 @@ "generic", "specific" ] -} \ No newline at end of file +} diff --git a/jsonschema/SvAzEl.json b/jsonschema/SvAzEl.json index 7696d903b5..461c3b2d86 100644 --- a/jsonschema/SvAzEl.json +++ b/jsonschema/SvAzEl.json @@ -25,4 +25,4 @@ "az", "el" ] -} \ No newline at end of file +} diff --git a/jsonschema/SvId.json b/jsonschema/SvId.json index b28d6fb94d..fdf8dc2ebc 100644 --- a/jsonschema/SvId.json +++ b/jsonschema/SvId.json @@ -23,4 +23,4 @@ "satId", "constellation" ] -} \ No newline at end of file +} diff --git a/jsonschema/TelemetrySV.json b/jsonschema/TelemetrySV.json index 638689145d..b6a1d93ddc 100644 --- a/jsonschema/TelemetrySV.json +++ b/jsonschema/TelemetrySV.json @@ -37,4 +37,4 @@ "correction_flags", "sid" ] -} \ No newline at end of file +} diff --git a/jsonschema/TrackingChannelCorrelation.json b/jsonschema/TrackingChannelCorrelation.json index 331efe1a9f..d0ad5365a3 100644 --- a/jsonschema/TrackingChannelCorrelation.json +++ b/jsonschema/TrackingChannelCorrelation.json @@ -23,4 +23,4 @@ "I", "Q" ] -} \ No newline at end of file +} diff --git a/jsonschema/TrackingChannelState.json b/jsonschema/TrackingChannelState.json index c3928af832..4cfe970de6 100644 --- a/jsonschema/TrackingChannelState.json +++ b/jsonschema/TrackingChannelState.json @@ -25,4 +25,4 @@ "fcn", "cn0" ] -} \ No newline at end of file +} diff --git a/jsonschema/TroposphericDelayCorrection.json b/jsonschema/TroposphericDelayCorrection.json index 1890f025be..bbed065b30 100644 --- a/jsonschema/TroposphericDelayCorrection.json +++ b/jsonschema/TroposphericDelayCorrection.json @@ -25,4 +25,4 @@ "wet", "stddev" ] -} \ No newline at end of file +} diff --git a/jsonschema/TroposphericDelayCorrectionNoStd.json b/jsonschema/TroposphericDelayCorrectionNoStd.json index 45d4ba7e29..e815376e0c 100644 --- a/jsonschema/TroposphericDelayCorrectionNoStd.json +++ b/jsonschema/TroposphericDelayCorrectionNoStd.json @@ -23,4 +23,4 @@ "hydro", "wet" ] -} \ No newline at end of file +} diff --git a/jsonschema/UARTChannel.json b/jsonschema/UARTChannel.json index b9231ffeb9..c7b9c51268 100644 --- a/jsonschema/UARTChannel.json +++ b/jsonschema/UARTChannel.json @@ -31,4 +31,4 @@ "tx_buffer_level", "rx_buffer_level" ] -} \ No newline at end of file +} diff --git a/jsonschema/UtcTime.json b/jsonschema/UtcTime.json index 59fe63f5d3..0a3cf8629b 100644 --- a/jsonschema/UtcTime.json +++ b/jsonschema/UtcTime.json @@ -33,4 +33,4 @@ "seconds", "ns" ] -} \ No newline at end of file +} diff --git a/kaitai/ksy/imu.ksy b/kaitai/ksy/imu.ksy index b239205584..2493d2c367 100644 --- a/kaitai/ksy/imu.ksy +++ b/kaitai/ksy/imu.ksy @@ -85,4 +85,45 @@ types: doc: | IMU configuration type: u1 + + msg_imu_comp: + doc: | + Data from the Inertial Measurement Unit, containing accelerometer and + gyroscope readings compensated for estimated errors and constant + physical effects. The output is valid for inertially referenced center + of navigation (IMU body frame) represented in vehicle body frame. + seq: + - id: time + doc: | + Microseconds since reference epoch + type: u8 + - id: flags + doc: | + Contains the applied compensation parameters and time + synchronization mode + type: u2 + - id: acc_comp_x + doc: | + Compensated acceleration X axis + type: s4 + - id: acc_comp_y + doc: | + Compensated acceleration Y axis + type: s4 + - id: acc_comp_z + doc: | + Compensated acceleration Z axis + type: s4 + - id: gyr_comp_x + doc: | + Compensated angular rate X axis + type: s4 + - id: gyr_comp_y + doc: | + Compensated angular rate Y axis + type: s4 + - id: gyr_comp_z + doc: | + Compensated angular rate Z axis + type: s4 \ No newline at end of file diff --git a/kaitai/ksy/sbp.ksy b/kaitai/ksy/sbp.ksy index 93ea07c2dd..e9413ce93c 100644 --- a/kaitai/ksy/sbp.ksy +++ b/kaitai/ksy/sbp.ksy @@ -8,7 +8,7 @@ # EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. # -# Kaitai Struct definition file for Swift Binary Protocol 6.1.1-alpha +# Kaitai Struct definition file for Swift Binary Protocol 6.2.2-alpha # # Automatically generated with generate.py. Do not hand edit! @@ -95,6 +95,7 @@ enums: 2304: msg_imu_raw 2305: msg_imu_aux + 2309: msg_imu_comp 3001: msg_ssr_flag_high_level 3005: msg_ssr_flag_satellites @@ -378,6 +379,7 @@ types: 2304: imu::msg_imu_raw 2305: imu::msg_imu_aux + 2309: imu::msg_imu_comp 3001: integrity::msg_ssr_flag_high_level 3005: integrity::msg_ssr_flag_satellites diff --git a/kaitai/perl/KaitaiSbp/Imu.pm b/kaitai/perl/KaitaiSbp/Imu.pm index 8b6e65e96a..58d96d669d 100644 --- a/kaitai/perl/KaitaiSbp/Imu.pm +++ b/kaitai/perl/KaitaiSbp/Imu.pm @@ -166,4 +166,84 @@ sub imu_conf { return $self->{imu_conf}; } +######################################################################## +package Imu::MsgImuComp; + +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->{time} = $self->{_io}->read_u8le(); + $self->{flags} = $self->{_io}->read_u2le(); + $self->{acc_comp_x} = $self->{_io}->read_s4le(); + $self->{acc_comp_y} = $self->{_io}->read_s4le(); + $self->{acc_comp_z} = $self->{_io}->read_s4le(); + $self->{gyr_comp_x} = $self->{_io}->read_s4le(); + $self->{gyr_comp_y} = $self->{_io}->read_s4le(); + $self->{gyr_comp_z} = $self->{_io}->read_s4le(); +} + +sub time { + my ($self) = @_; + return $self->{time}; +} + +sub flags { + my ($self) = @_; + return $self->{flags}; +} + +sub acc_comp_x { + my ($self) = @_; + return $self->{acc_comp_x}; +} + +sub acc_comp_y { + my ($self) = @_; + return $self->{acc_comp_y}; +} + +sub acc_comp_z { + my ($self) = @_; + return $self->{acc_comp_z}; +} + +sub gyr_comp_x { + my ($self) = @_; + return $self->{gyr_comp_x}; +} + +sub gyr_comp_y { + my ($self) = @_; + return $self->{gyr_comp_y}; +} + +sub gyr_comp_z { + my ($self) = @_; + return $self->{gyr_comp_z}; +} + 1; diff --git a/kaitai/perl/KaitaiSbp/Sbp.pm b/kaitai/perl/KaitaiSbp/Sbp.pm index 444adedc19..0f3f1be210 100644 --- a/kaitai/perl/KaitaiSbp/Sbp.pm +++ b/kaitai/perl/KaitaiSbp/Sbp.pm @@ -233,6 +233,7 @@ our $MSG_IDS_MSG_IMU_AUX = 2305; 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_SATELLITES = 3005; our $MSG_IDS_MSG_SSR_FLAG_TROPO_GRID_POINTS = 3011; @@ -826,6 +827,11 @@ sub _read { my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); $self->{payload} = Piksi::MsgCwResults->new($io__raw_payload, $self, $self->{_root}); } + elsif ($_on == 2309) { + $self->{_raw_payload} = $self->{_io}->read_bytes($self->length()); + my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); + $self->{payload} = Imu::MsgImuComp->new($io__raw_payload, $self, $self->{_root}); + } elsif ($_on == 165) { $self->{_raw_payload} = $self->{_io}->read_bytes($self->length()); my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); diff --git a/kaitai/perl/KaitaiSbp/Table.pm b/kaitai/perl/KaitaiSbp/Table.pm index b4cb0d3916..bc9314a6fc 100644 --- a/kaitai/perl/KaitaiSbp/Table.pm +++ b/kaitai/perl/KaitaiSbp/Table.pm @@ -89,6 +89,7 @@ our %TABLE = ( 2304 => sub{Imu::MsgImuRaw->new(@_)}, 2305 => sub{Imu::MsgImuAux->new(@_)}, + 2309 => sub{Imu::MsgImuComp->new(@_)}, 3001 => sub{Integrity::MsgSsrFlagHighLevel->new(@_)}, 3005 => sub{Integrity::MsgSsrFlagSatellites->new(@_)}, diff --git a/kaitai/perl/KaitaiSbp/t/auto_check_sbp_imu_MsgImuComp.t b/kaitai/perl/KaitaiSbp/t/auto_check_sbp_imu_MsgImuComp.t new file mode 100644 index 0000000000..4a268cb577 --- /dev/null +++ b/kaitai/perl/KaitaiSbp/t/auto_check_sbp_imu_MsgImuComp.t @@ -0,0 +1,70 @@ +#!/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/imu/test_MsgImuComp.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_imu_msg_imu_comp_1() { + my $buf = decode_base64("VQUJNBIiGgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///09W"); + my $stream = IO::KaitaiStruct::Stream->new($buf); + my $msg = ParseUtils::get_flattened_msg(Sbp::SbpMessage->new($stream)); + + is($msg->{'crc'}, 0x564f, "crc"); + + is($msg->{'length'}, 34, "length"); + + is($msg->{'msg_type'}, 0x905, "msg_type"); + + is($msg->{'payload'}, "GgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///w==", "payload"); + + is($msg->{'preamble'}, 0x55, "preamble"); + + is($msg->{'sender'}, 0x1234, "sender"); + + my $json = JSON::PP->new->convert_blessed->canonical; + + is($msg->acc_comp_x(), 96, "acc_comp_x"); + + is($msg->acc_comp_y(), -33, "acc_comp_y"); + + is($msg->acc_comp_z(), 4140, "acc_comp_z"); + + is($msg->flags(), 206, "flags"); + + is($msg->gyr_comp_x(), 60, "gyr_comp_x"); + + is($msg->gyr_comp_y(), -304, "gyr_comp_y"); + + is($msg->gyr_comp_z(), -18, "gyr_comp_z"); + + is($msg->time(), 3221225754, "time"); + + is($json->encode($msg), $json->encode($json->decode(q{{"acc_comp_x":96,"acc_comp_y":-33,"acc_comp_z":4140,"crc":22095,"flags":206,"gyr_comp_x":60,"gyr_comp_y":-304,"gyr_comp_z":-18,"length":34,"msg_type":2309,"payload":"GgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///w==","preamble":85,"sender":4660,"time":3221225754}})), "raw_json"); +} +test_auto_check_sbp_imu_msg_imu_comp_1(); + +done_testing(); \ No newline at end of file diff --git a/kaitai/python/kaitai_sbp/imu.py b/kaitai/python/kaitai_sbp/imu.py index 3cf35122b5..03abebf03c 100644 --- a/kaitai/python/kaitai_sbp/imu.py +++ b/kaitai/python/kaitai_sbp/imu.py @@ -64,4 +64,27 @@ def _read(self): self.imu_conf = self._io.read_u1() + class MsgImuComp(KaitaiStruct): + """Data from the Inertial Measurement Unit, containing accelerometer and + gyroscope readings compensated for estimated errors and constant + physical effects. The output is valid for inertially referenced center + of navigation (IMU body frame) represented in vehicle body frame. + """ + 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.time = self._io.read_u8le() + self.flags = self._io.read_u2le() + self.acc_comp_x = self._io.read_s4le() + self.acc_comp_y = self._io.read_s4le() + self.acc_comp_z = self._io.read_s4le() + self.gyr_comp_x = self._io.read_s4le() + self.gyr_comp_y = self._io.read_s4le() + self.gyr_comp_z = self._io.read_s4le() + + diff --git a/kaitai/python/kaitai_sbp/sbp.py b/kaitai/python/kaitai_sbp/sbp.py index 3a0adf2b4e..75d6ae8b82 100644 --- a/kaitai/python/kaitai_sbp/sbp.py +++ b/kaitai/python/kaitai_sbp/sbp.py @@ -226,6 +226,7 @@ class MsgIds(Enum): msg_mag_raw = 2306 msg_odometry = 2307 msg_wheeltick = 2308 + msg_imu_comp = 2309 msg_ssr_flag_high_level = 3001 msg_ssr_flag_satellites = 3005 msg_ssr_flag_tropo_grid_points = 3011 @@ -689,6 +690,10 @@ def _read(self): self._raw_payload = self._io.read_bytes(self.length) _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) self.payload = Piksi.MsgCwResults(_io__raw_payload, self, self._root) + elif _on == 2309: + self._raw_payload = self._io.read_bytes(self.length) + _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) + self.payload = Imu.MsgImuComp(_io__raw_payload, self, self._root) elif _on == 165: self._raw_payload = self._io.read_bytes(self.length) _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) diff --git a/kaitai/python/kaitai_sbp/table.py b/kaitai/python/kaitai_sbp/table.py index d6fff9e27e..94f0aabfc9 100644 --- a/kaitai/python/kaitai_sbp/table.py +++ b/kaitai/python/kaitai_sbp/table.py @@ -83,6 +83,7 @@ 2304: Imu.MsgImuRaw, 2305: Imu.MsgImuAux, + 2309: Imu.MsgImuComp, 3001: Integrity.MsgSsrFlagHighLevel, 3005: Integrity.MsgSsrFlagSatellites, diff --git a/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_imu_MsgImuComp.py b/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_imu_MsgImuComp.py new file mode 100644 index 0000000000..f1623b232e --- /dev/null +++ b/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_imu_MsgImuComp.py @@ -0,0 +1,55 @@ +# 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/imu/test_MsgImuComp.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_imu_msg_imu_comp_1(): + buf = base64.standard_b64decode("VQUJNBIiGgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///09W") + + stream = KaitaiStream(io.BytesIO(buf)) + msg = get_flattened_msg(sbp.Sbp.SbpMessage(stream)) + + assert msg.crc == 0x564f + + assert msg.length == 34 + + assert msg.msg_type == 0x905 + + assert msg.payload == "GgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///w==" + + assert msg.preamble == 0x55 + + assert msg.sender == 0x1234 + + assert dictify(msg.acc_comp_x) == 96 + + assert dictify(msg.acc_comp_y) == -33 + + assert dictify(msg.acc_comp_z) == 4140 + + assert dictify(msg.flags) == 206 + + assert dictify(msg.gyr_comp_x) == 60 + + assert dictify(msg.gyr_comp_y) == -304 + + assert dictify(msg.gyr_comp_z) == -18 + + assert dictify(msg.time) == 3221225754 + + assert dictify(msg) == {'time': 3221225754, 'flags': 206, 'acc_comp_x': 96, 'acc_comp_y': -33, 'acc_comp_z': 4140, 'gyr_comp_x': 60, 'gyr_comp_y': -304, 'gyr_comp_z': -18, 'preamble': 85, 'msg_type': 2309, 'sender': 4660, 'payload': 'GgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///w==', 'crc': 22095, 'length': 34} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index da2ed073e9..5306e3955f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sbp", - "version": "6.1.1-alpha", + "version": "6.2.2-alpha", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sbp", - "version": "6.1.1-alpha", + "version": "6.2.2-alpha", "license": "MIT", "dependencies": { "binary-parser": "^1.7.0", diff --git a/package.json b/package.json index 4eec116088..350cb5777a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sbp", - "version": "6.1.1-alpha", + "version": "6.2.2-alpha", "description": "libsbp bindings for JavaScript. More information here: http://swift-nav.github.io/libsbp/", "files": [ "javascript/*", diff --git a/proto/acquisition.proto b/proto/acquisition.proto index ddb63f4f17..96438232cc 100644 --- a/proto/acquisition.proto +++ b/proto/acquisition.proto @@ -63,4 +63,4 @@ message AcqSvProfile { */ message MsgAcqSvProfile { repeated AcqSvProfile acq_sv_profile = 1; -} \ No newline at end of file +} diff --git a/proto/bootload.proto b/proto/bootload.proto index 0a412dc804..733e11b0e1 100644 --- a/proto/bootload.proto +++ b/proto/bootload.proto @@ -76,4 +76,4 @@ message MsgNapDeviceDnaReq { */ message MsgNapDeviceDnaResp { repeated uint32 dna = 1; -} \ No newline at end of file +} diff --git a/proto/ext_events.proto b/proto/ext_events.proto index 4c69f81b4e..00ecd91efa 100644 --- a/proto/ext_events.proto +++ b/proto/ext_events.proto @@ -32,4 +32,4 @@ message MsgExtEvent { sint32 ns_residual = 3; uint32 flags = 4; uint32 pin = 5; -} \ No newline at end of file +} diff --git a/proto/file_io.proto b/proto/file_io.proto index 4a121c9704..2dd9cf46bb 100644 --- a/proto/file_io.proto +++ b/proto/file_io.proto @@ -150,4 +150,4 @@ message MsgFileioConfigResp { uint32 window_size = 2; uint32 batch_size = 3; uint32 fileio_version = 4; -} \ No newline at end of file +} diff --git a/proto/flash.proto b/proto/flash.proto index 726f0e0dbe..703039f2dd 100644 --- a/proto/flash.proto +++ b/proto/flash.proto @@ -137,4 +137,4 @@ message MsgStmUniqueIdResp { */ message MsgM25FlashWriteStatus { repeated uint32 status = 1; -} \ No newline at end of file +} diff --git a/proto/gnss.proto b/proto/gnss.proto index d6a582624c..8721754af3 100644 --- a/proto/gnss.proto +++ b/proto/gnss.proto @@ -70,4 +70,4 @@ message GpsTime { message CarrierPhase { sint32 i = 1; uint32 f = 2; -} \ No newline at end of file +} diff --git a/proto/imu.proto b/proto/imu.proto index 67eeac9b3f..9c9001cc79 100644 --- a/proto/imu.proto +++ b/proto/imu.proto @@ -54,4 +54,22 @@ message MsgImuAux { uint32 imu_type = 1; sint32 temp = 2; uint32 imu_conf = 3; -} \ No newline at end of file +} + +/** Compensated IMU data + * + * Data from the Inertial Measurement Unit, containing accelerometer and + * gyroscope readings compensated for estimated errors and constant physical + * effects. The output is valid for inertially referenced center of + * navigation (IMU body frame) represented in vehicle body frame. + */ +message MsgImuComp { + uint64 time = 1; + uint32 flags = 2; + sint32 acc_comp_x = 3; + sint32 acc_comp_y = 4; + sint32 acc_comp_z = 5; + sint32 gyr_comp_x = 6; + sint32 gyr_comp_y = 7; + sint32 gyr_comp_z = 8; +} diff --git a/proto/integrity.proto b/proto/integrity.proto index ba9730730b..507a8b82f3 100644 --- a/proto/integrity.proto +++ b/proto/integrity.proto @@ -147,4 +147,4 @@ message MsgAcknowledge { uint32 correction_mask_on_demand = 4; uint32 correction_mask_stream = 5; uint32 solution_id = 6; -} \ No newline at end of file +} diff --git a/proto/linux.proto b/proto/linux.proto index 70d08a219c..d023805f5d 100644 --- a/proto/linux.proto +++ b/proto/linux.proto @@ -123,4 +123,4 @@ message MsgLinuxSysState { uint32 pid_count = 6; uint32 time = 7; uint32 flags = 8; -} \ No newline at end of file +} diff --git a/proto/logging.proto b/proto/logging.proto index 984e0a1243..7558558c74 100644 --- a/proto/logging.proto +++ b/proto/logging.proto @@ -46,4 +46,4 @@ message MsgFwd { uint32 source = 1; uint32 protocol = 2; repeated uint32 fwd_payload = 3; -} \ No newline at end of file +} diff --git a/proto/mag.proto b/proto/mag.proto index ed02e0e28e..5a5c847a13 100644 --- a/proto/mag.proto +++ b/proto/mag.proto @@ -30,4 +30,4 @@ message MsgMagRaw { sint32 mag_x = 3; sint32 mag_y = 4; sint32 mag_z = 5; -} \ No newline at end of file +} diff --git a/proto/navigation.proto b/proto/navigation.proto index 6d07867b99..e5e336a8ef 100644 --- a/proto/navigation.proto +++ b/proto/navigation.proto @@ -807,4 +807,4 @@ message MsgPoseRelative { float cov_c_y_z = 20; float cov_c_z_z = 21; uint32 flags = 22; -} \ No newline at end of file +} diff --git a/proto/ndb.proto b/proto/ndb.proto index e1e2708fa1..ad7507a809 100644 --- a/proto/ndb.proto +++ b/proto/ndb.proto @@ -35,4 +35,4 @@ message MsgNdbEvent { gnss.GnssSignal object_sid = 6; gnss.GnssSignal src_sid = 7; uint32 original_sender = 8; -} \ No newline at end of file +} diff --git a/proto/observation.proto b/proto/observation.proto index b492b470c6..6fe932e003 100644 --- a/proto/observation.proto +++ b/proto/observation.proto @@ -451,4 +451,4 @@ message MsgSvAzEl { message MsgOsr { ObservationHeader header = 1; repeated PackedOsrContent obs = 2; -} \ No newline at end of file +} diff --git a/proto/orientation.proto b/proto/orientation.proto index b32400fb6a..8246297fa9 100644 --- a/proto/orientation.proto +++ b/proto/orientation.proto @@ -94,4 +94,4 @@ message MsgAngularRate { sint32 y = 3; sint32 z = 4; uint32 flags = 5; -} \ No newline at end of file +} diff --git a/proto/piksi.proto b/proto/piksi.proto index fec1e84a92..ac03696db4 100644 --- a/proto/piksi.proto +++ b/proto/piksi.proto @@ -299,4 +299,4 @@ message MsgSpecan { message MsgFrontEndGain { repeated sint32 rf_gain = 1; repeated sint32 if_gain = 2; -} \ No newline at end of file +} diff --git a/proto/profiling.proto b/proto/profiling.proto index a5688b13e9..9cb9bffb76 100644 --- a/proto/profiling.proto +++ b/proto/profiling.proto @@ -94,4 +94,4 @@ message MsgProfilingResourceCounter { uint32 seq_no = 1; uint32 seq_len = 2; repeated ResourceBucket buckets = 3; -} \ No newline at end of file +} diff --git a/proto/sbas.proto b/proto/sbas.proto index f362aa6a12..7905f5cc9c 100644 --- a/proto/sbas.proto +++ b/proto/sbas.proto @@ -31,4 +31,4 @@ message MsgSbasRaw { uint32 tow = 2; uint32 message_type = 3; repeated uint32 data = 4; -} \ No newline at end of file +} diff --git a/proto/settings.proto b/proto/settings.proto index dcb8c946b2..24d34d938f 100644 --- a/proto/settings.proto +++ b/proto/settings.proto @@ -161,4 +161,4 @@ message MsgSettingsRegister { message MsgSettingsRegisterResp { uint32 status = 1; string setting = 2; -} \ No newline at end of file +} diff --git a/proto/signing.proto b/proto/signing.proto index 4078ebe8de..86609cdd76 100644 --- a/proto/signing.proto +++ b/proto/signing.proto @@ -90,4 +90,4 @@ message MsgEcdsaSignature { repeated uint32 certificate_id = 4; ECDSASignature signature = 5; repeated uint32 signed_messages = 6; -} \ No newline at end of file +} diff --git a/proto/solution_meta.proto b/proto/solution_meta.proto index 75bff175c6..51eb1c501f 100644 --- a/proto/solution_meta.proto +++ b/proto/solution_meta.proto @@ -85,4 +85,4 @@ message IMUInputType { */ message OdoInputType { uint32 flags = 1; -} \ No newline at end of file +} diff --git a/proto/ssr.proto b/proto/ssr.proto index 17e41e0a5c..c3b81decbf 100644 --- a/proto/ssr.proto +++ b/proto/ssr.proto @@ -387,4 +387,4 @@ message MsgSsrOrbitClockBoundsDegradation { uint32 const_id = 3; uint64 sat_bitmask = 4; OrbitClockBoundDegradation orbit_clock_bounds_degradation = 5; -} \ No newline at end of file +} diff --git a/proto/system.proto b/proto/system.proto index f1771300be..d160e39511 100644 --- a/proto/system.proto +++ b/proto/system.proto @@ -224,4 +224,4 @@ message MsgGroupMeta { uint32 flags = 2; uint32 n_group_msgs = 3; repeated uint32 group_msgs = 4; -} \ No newline at end of file +} diff --git a/proto/telemetry.proto b/proto/telemetry.proto index 859641eaba..f34b592ae9 100644 --- a/proto/telemetry.proto +++ b/proto/telemetry.proto @@ -50,4 +50,4 @@ message MsgTelSv { uint32 n_obs = 3; uint32 origin_flags = 4; repeated TelemetrySV sv_tel = 5; -} \ No newline at end of file +} diff --git a/proto/tracking.proto b/proto/tracking.proto index a37c4a4be0..4bf2c586d6 100644 --- a/proto/tracking.proto +++ b/proto/tracking.proto @@ -81,4 +81,4 @@ message MsgTrackingIq { uint32 channel = 1; gnss.GnssSignal sid = 2; repeated TrackingChannelCorrelation corrs = 3; -} \ No newline at end of file +} diff --git a/proto/user.proto b/proto/user.proto index 1ae57dc5cc..2efb774d75 100644 --- a/proto/user.proto +++ b/proto/user.proto @@ -27,4 +27,4 @@ package swiftnav.sbp.user; */ message MsgUserData { repeated uint32 contents = 1; -} \ No newline at end of file +} diff --git a/proto/vehicle.proto b/proto/vehicle.proto index bc48ca9df7..b83da93bd0 100644 --- a/proto/vehicle.proto +++ b/proto/vehicle.proto @@ -58,4 +58,4 @@ message MsgWheeltick { uint32 flags = 2; uint32 source = 3; sint32 ticks = 4; -} \ No newline at end of file +} diff --git a/python/docs/source/spelling_wordlist.txt b/python/docs/source/spelling_wordlist.txt index 434d869dd9..85d7a9d837 100644 --- a/python/docs/source/spelling_wordlist.txt +++ b/python/docs/source/spelling_wordlist.txt @@ -81,6 +81,7 @@ hydrostatic ifaddrs imu incrementing +inertially infofirmware interoperable io diff --git a/python/sbp/RELEASE-VERSION b/python/sbp/RELEASE-VERSION index 112b145a71..76f5a9f49a 100644 --- a/python/sbp/RELEASE-VERSION +++ b/python/sbp/RELEASE-VERSION @@ -1 +1 @@ -6.1.1-alpha \ No newline at end of file +6.2.2-alpha diff --git a/python/sbp/acquisition.py b/python/sbp/acquisition.py index c348add206..7ec9fa5885 100644 --- a/python/sbp/acquisition.py +++ b/python/sbp/acquisition.py @@ -845,4 +845,4 @@ def to_json_dict(self): 0x0015: MsgAcqResultDepA, 0x002E: MsgAcqSvProfile, 0x001E: MsgAcqSvProfileDep, -} \ No newline at end of file +} diff --git a/python/sbp/bootload.py b/python/sbp/bootload.py index 6a139a759e..b8da8c64c3 100644 --- a/python/sbp/bootload.py +++ b/python/sbp/bootload.py @@ -523,4 +523,4 @@ def to_json_dict(self): 0x00DE: MsgNapDeviceDnaReq, 0x00DD: MsgNapDeviceDnaResp, 0x00B0: MsgBootloaderHandshakeDepA, -} \ No newline at end of file +} diff --git a/python/sbp/ext_events.py b/python/sbp/ext_events.py index 5ab52e066b..c1fdc6de40 100644 --- a/python/sbp/ext_events.py +++ b/python/sbp/ext_events.py @@ -146,4 +146,4 @@ def to_json_dict(self): msg_classes = { 0x0101: MsgExtEvent, -} \ No newline at end of file +} diff --git a/python/sbp/file_io.py b/python/sbp/file_io.py index 3486c18b2d..532656a366 100644 --- a/python/sbp/file_io.py +++ b/python/sbp/file_io.py @@ -999,4 +999,4 @@ def to_json_dict(self): 0x00AB: MsgFileioWriteResp, 0x1001: MsgFileioConfigReq, 0x1002: MsgFileioConfigResp, -} \ No newline at end of file +} diff --git a/python/sbp/flash.py b/python/sbp/flash.py index 4412f5f338..3494a37381 100644 --- a/python/sbp/flash.py +++ b/python/sbp/flash.py @@ -1006,4 +1006,4 @@ def to_json_dict(self): 0x00E8: MsgStmUniqueIdReq, 0x00E5: MsgStmUniqueIdResp, 0x00F3: MsgM25FlashWriteStatus, -} \ No newline at end of file +} diff --git a/python/sbp/gnss.py b/python/sbp/gnss.py index dffbbc7617..fb200a5ba6 100644 --- a/python/sbp/gnss.py +++ b/python/sbp/gnss.py @@ -299,4 +299,4 @@ def from_binary(self, d): msg_classes = { -} \ No newline at end of file +} diff --git a/python/sbp/imu.py b/python/sbp/imu.py index be27d3c67c..c2fa269d80 100644 --- a/python/sbp/imu.py +++ b/python/sbp/imu.py @@ -271,8 +271,142 @@ def to_json_dict(self): d.update(j) return d +SBP_MSG_IMU_COMP = 0x0905 +class MsgImuComp(SBP): + """SBP class for message MSG_IMU_COMP (0x0905). + + You can have MSG_IMU_COMP inherit its fields directly + from an inherited SBP object, or construct it inline using a dict + of its fields. + + + Data from the Inertial Measurement Unit, containing accelerometer and + gyroscope readings compensated for estimated errors and constant physical + effects. The output is valid for inertially referenced center of navigation + (IMU body frame) represented in vehicle body frame. + + Parameters + ---------- + sbp : SBP + SBP parent object to inherit from. + time : int + Microseconds since reference epoch + flags : int + Contains the applied compensation parameters and time synchronization mode + acc_comp_x : int + Compensated acceleration X axis + acc_comp_y : int + Compensated acceleration Y axis + acc_comp_z : int + Compensated acceleration Z axis + gyr_comp_x : int + Compensated angular rate X axis + gyr_comp_y : int + Compensated angular rate Y axis + gyr_comp_z : int + Compensated angular rate Z axis + sender : int + Optional sender ID, defaults to SENDER_ID (see sbp/msg.py). + + """ + _parser = construct.Struct( + 'time' / construct.Int64ul, + 'flags' / construct.Int16ul, + 'acc_comp_x' / construct.Int32sl, + 'acc_comp_y' / construct.Int32sl, + 'acc_comp_z' / construct.Int32sl, + 'gyr_comp_x' / construct.Int32sl, + 'gyr_comp_y' / construct.Int32sl, + 'gyr_comp_z' / construct.Int32sl,) + __slots__ = [ + 'time', + 'flags', + 'acc_comp_x', + 'acc_comp_y', + 'acc_comp_z', + 'gyr_comp_x', + 'gyr_comp_y', + 'gyr_comp_z', + ] + + def __init__(self, sbp=None, **kwargs): + if sbp: + super( MsgImuComp, + self).__init__(sbp.msg_type, sbp.sender, sbp.length, + sbp.payload, sbp.crc) + self.from_binary(sbp.payload) + else: + super( MsgImuComp, self).__init__() + self.msg_type = SBP_MSG_IMU_COMP + self.sender = kwargs.pop('sender', SENDER_ID) + self.time = kwargs.pop('time') + self.flags = kwargs.pop('flags') + self.acc_comp_x = kwargs.pop('acc_comp_x') + self.acc_comp_y = kwargs.pop('acc_comp_y') + self.acc_comp_z = kwargs.pop('acc_comp_z') + self.gyr_comp_x = kwargs.pop('gyr_comp_x') + self.gyr_comp_y = kwargs.pop('gyr_comp_y') + self.gyr_comp_z = kwargs.pop('gyr_comp_z') + + 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 MsgImuComp.from_json_dict(d) + + @staticmethod + def from_json_dict(d): + sbp = SBP.from_json_dict(d) + return MsgImuComp(sbp, **d) + + + def from_binary(self, d): + """Given a binary payload d, update the appropriate payload fields of + the message. + + """ + p = MsgImuComp._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 = MsgImuComp._parser.build(c) + return self.pack() + + def friendly_name(self): + """Produces friendly human-readable name for this message + + """ + return "IMU COMP" + + 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 = MsgImuComp._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( MsgImuComp, self).to_json_dict() + j = walk_json_dict(exclude_fields(self)) + d.update(j) + return d + msg_classes = { 0x0900: MsgImuRaw, 0x0901: MsgImuAux, -} \ No newline at end of file + 0x0905: MsgImuComp, +} diff --git a/python/sbp/integrity.py b/python/sbp/integrity.py index fa914db2f3..47983388d8 100644 --- a/python/sbp/integrity.py +++ b/python/sbp/integrity.py @@ -956,4 +956,4 @@ def to_json_dict(self): 0x0BCD: MsgSsrFlagIonoTileSatLos, 0x0BD1: MsgSsrFlagIonoGridPointSatLos, 0x0BD2: MsgAcknowledge, -} \ No newline at end of file +} diff --git a/python/sbp/linux.py b/python/sbp/linux.py index 23479c1910..3e8414a0da 100644 --- a/python/sbp/linux.py +++ b/python/sbp/linux.py @@ -1358,4 +1358,4 @@ def to_json_dict(self): 0x7F08: MsgLinuxCpuState, 0x7F09: MsgLinuxMemState, 0x7F0A: MsgLinuxSysState, -} \ No newline at end of file +} diff --git a/python/sbp/logging.py b/python/sbp/logging.py index 8d95b5f0bb..7468ae57b9 100644 --- a/python/sbp/logging.py +++ b/python/sbp/logging.py @@ -339,4 +339,4 @@ def to_json_dict(self): 0x0401: MsgLog, 0x0402: MsgFwd, 0x0010: MsgPrintDep, -} \ No newline at end of file +} diff --git a/python/sbp/mag.py b/python/sbp/mag.py index 82ee0bad46..b19eef085d 100644 --- a/python/sbp/mag.py +++ b/python/sbp/mag.py @@ -144,4 +144,4 @@ def to_json_dict(self): msg_classes = { 0x0902: MsgMagRaw, -} \ No newline at end of file +} diff --git a/python/sbp/navigation.py b/python/sbp/navigation.py index 9e919bb3ee..a8a73a498a 100644 --- a/python/sbp/navigation.py +++ b/python/sbp/navigation.py @@ -5957,4 +5957,4 @@ def to_json_dict(self): 0x023A: MsgUtcLeapSecond, 0x0244: MsgReferenceFrameParam, 0x0245: MsgPoseRelative, -} \ No newline at end of file +} diff --git a/python/sbp/ndb.py b/python/sbp/ndb.py index 8254f91026..03fed1cf02 100644 --- a/python/sbp/ndb.py +++ b/python/sbp/ndb.py @@ -165,4 +165,4 @@ def to_json_dict(self): msg_classes = { 0x0400: MsgNdbEvent, -} \ No newline at end of file +} diff --git a/python/sbp/observation.py b/python/sbp/observation.py index 98ed4b9c9f..88c4fc1809 100644 --- a/python/sbp/observation.py +++ b/python/sbp/observation.py @@ -6557,4 +6557,4 @@ def to_json_dict(self): 0x0075: MsgGloBiases, 0x0097: MsgSvAzEl, 0x0640: MsgOsr, -} \ No newline at end of file +} diff --git a/python/sbp/orientation.py b/python/sbp/orientation.py index f05bb7f7c4..432c892599 100644 --- a/python/sbp/orientation.py +++ b/python/sbp/orientation.py @@ -546,4 +546,4 @@ def to_json_dict(self): 0x0220: MsgOrientQuat, 0x0221: MsgOrientEuler, 0x0222: MsgAngularRate, -} \ No newline at end of file +} diff --git a/python/sbp/piksi.py b/python/sbp/piksi.py index e783ed5af1..60f11109de 100644 --- a/python/sbp/piksi.py +++ b/python/sbp/piksi.py @@ -2520,4 +2520,4 @@ def to_json_dict(self): 0x0050: MsgSpecanDep, 0x0051: MsgSpecan, 0x00BF: MsgFrontEndGain, -} \ No newline at end of file +} diff --git a/python/sbp/profiling.py b/python/sbp/profiling.py index 2e477a5d3a..fb6d4b79c3 100644 --- a/python/sbp/profiling.py +++ b/python/sbp/profiling.py @@ -582,4 +582,4 @@ def to_json_dict(self): 0xCF01: MsgProfilingSystemInfo, 0xCF02: MsgProfilingThreadInfo, 0xCF03: MsgProfilingResourceCounter, -} \ No newline at end of file +} diff --git a/python/sbp/sbas.py b/python/sbp/sbas.py index bb2e894f8e..32ff67104c 100644 --- a/python/sbp/sbas.py +++ b/python/sbp/sbas.py @@ -140,4 +140,4 @@ def to_json_dict(self): msg_classes = { 0x7777: MsgSbasRaw, -} \ No newline at end of file +} diff --git a/python/sbp/settings.py b/python/sbp/settings.py index 63d41b993b..6ea33df4e6 100644 --- a/python/sbp/settings.py +++ b/python/sbp/settings.py @@ -970,4 +970,4 @@ def to_json_dict(self): 0x00A6: MsgSettingsReadByIndexDone, 0x00AE: MsgSettingsRegister, 0x01AF: MsgSettingsRegisterResp, -} \ No newline at end of file +} diff --git a/python/sbp/signing.py b/python/sbp/signing.py index 2379b3adae..9f1c7739b3 100644 --- a/python/sbp/signing.py +++ b/python/sbp/signing.py @@ -1354,4 +1354,4 @@ def to_json_dict(self): 0x0C02: MsgEd25519CertificateDep, 0x0C01: MsgEd25519SignatureDepA, 0x0C03: MsgEd25519SignatureDepB, -} \ No newline at end of file +} diff --git a/python/sbp/solution_meta.py b/python/sbp/solution_meta.py index 2be0397bc0..b31ff12d63 100644 --- a/python/sbp/solution_meta.py +++ b/python/sbp/solution_meta.py @@ -449,4 +449,4 @@ def to_json_dict(self): msg_classes = { 0xFF0F: MsgSolnMetaDepA, 0xFF0E: MsgSolnMeta, -} \ No newline at end of file +} diff --git a/python/sbp/ssr.py b/python/sbp/ssr.py index e2e8fcab9c..c2a07b91f1 100644 --- a/python/sbp/ssr.py +++ b/python/sbp/ssr.py @@ -3595,4 +3595,4 @@ def to_json_dict(self): 0x05DE: MsgSsrOrbitClockBounds, 0x05EC: MsgSsrCodePhaseBiasesBounds, 0x05DF: MsgSsrOrbitClockBoundsDegradation, -} \ No newline at end of file +} diff --git a/python/sbp/system.py b/python/sbp/system.py index 8a99cd31c2..2209cc8707 100644 --- a/python/sbp/system.py +++ b/python/sbp/system.py @@ -1580,4 +1580,4 @@ def to_json_dict(self): 0xFF08: MsgPpsTime, 0xFF09: MsgSensorAidEvent, 0xFF0A: MsgGroupMeta, -} \ No newline at end of file +} diff --git a/python/sbp/telemetry.py b/python/sbp/telemetry.py index 313a49d7a0..8e4fd122c5 100644 --- a/python/sbp/telemetry.py +++ b/python/sbp/telemetry.py @@ -220,4 +220,4 @@ def to_json_dict(self): msg_classes = { 0x0120: MsgTelSv, -} \ No newline at end of file +} diff --git a/python/sbp/tracking.py b/python/sbp/tracking.py index 1fe284578d..558d5d459f 100644 --- a/python/sbp/tracking.py +++ b/python/sbp/tracking.py @@ -1375,4 +1375,4 @@ def to_json_dict(self): 0x001C: MsgTrackingIqDepA, 0x0016: MsgTrackingStateDepA, 0x0013: MsgTrackingStateDepB, -} \ No newline at end of file +} diff --git a/python/sbp/user.py b/python/sbp/user.py index 01f381dfc2..1bb86772ca 100644 --- a/python/sbp/user.py +++ b/python/sbp/user.py @@ -124,4 +124,4 @@ def to_json_dict(self): msg_classes = { 0x0800: MsgUserData, -} \ No newline at end of file +} diff --git a/python/sbp/vehicle.py b/python/sbp/vehicle.py index 51b3d82871..e0184dc8df 100644 --- a/python/sbp/vehicle.py +++ b/python/sbp/vehicle.py @@ -269,4 +269,4 @@ def to_json_dict(self): msg_classes = { 0x0903: MsgOdometry, 0x0904: MsgWheeltick, -} \ No newline at end of file +} diff --git a/python/tests/sbp/test_table.py b/python/tests/sbp/test_table.py index 560252715b..23f36a99da 100644 --- a/python/tests/sbp/test_table.py +++ b/python/tests/sbp/test_table.py @@ -44,7 +44,7 @@ def test_table_count(): Test number of available messages to deserialize. """ - number_of_messages = 238 + number_of_messages = 239 assert len(_SBP_TABLE) == number_of_messages def test_table_unqiue_count(): diff --git a/rust/sbp/Cargo.toml b/rust/sbp/Cargo.toml index 1d8ba274b4..6f77c6c12a 100644 --- a/rust/sbp/Cargo.toml +++ b/rust/sbp/Cargo.toml @@ -1,13 +1,13 @@ ######################################################################### ### ### ### WARNING: This file is generated, please update the template at: ### -### generator/sbpg/targets/resources/rust/sbp-cargo.toml ### +### generator/sbpg/targets/resources/rust/sbp_cargo.toml ### ### ### ######################################################################### [package] name = "sbp" -version = "6.1.1-alpha" +version = "6.2.2-alpha" description = "Rust native implementation of SBP (Swift Binary Protocol) for communicating with devices made by Swift Navigation" authors = ["Swift Navigation "] repository = "https://github.com/swift-nav/libsbp" @@ -34,7 +34,7 @@ crc16 = "0.4" log = "0.4" [dependencies.swiftnav] -version = "0.8" +version = "0.10" optional = true [dependencies.slotmap] @@ -71,4 +71,4 @@ serialport = "2.1.0" [package.metadata.docs.rs] # Whether to pass `--all-features` to Cargo when building docs for docs.rs -all-features = true \ No newline at end of file +all-features = true diff --git a/rust/sbp/src/messages/imu.rs b/rust/sbp/src/messages/imu.rs index e68788d100..bc3f69059c 100644 --- a/rust/sbp/src/messages/imu.rs +++ b/rust/sbp/src/messages/imu.rs @@ -14,6 +14,7 @@ //****************************************************************************/ //! Inertial Measurement Unit (IMU) messages. pub use msg_imu_aux::MsgImuAux; +pub use msg_imu_comp::MsgImuComp; pub use msg_imu_raw::MsgImuRaw; pub mod msg_imu_aux { @@ -302,6 +303,258 @@ pub mod msg_imu_aux { } } +pub mod msg_imu_comp { + #![allow(unused_imports)] + + use super::*; + use crate::messages::lib::*; + + /// Compensated IMU data + /// + /// Data from the Inertial Measurement Unit, containing accelerometer and + /// gyroscope readings compensated for estimated errors and constant physical + /// effects. The output is valid for inertially referenced center of + /// navigation (IMU body frame) represented in vehicle body frame. + /// + #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Debug, PartialEq, Clone)] + pub struct MsgImuComp { + /// The message sender_id + #[cfg_attr(feature = "serde", serde(skip_serializing, alias = "sender"))] + pub sender_id: Option, + /// Microseconds since reference epoch + #[cfg_attr(feature = "serde", serde(rename = "time"))] + pub time: u64, + /// Contains the applied compensation parameters and time synchronization + /// mode + #[cfg_attr(feature = "serde", serde(rename = "flags"))] + pub flags: u16, + /// Compensated acceleration X axis + #[cfg_attr(feature = "serde", serde(rename = "acc_comp_x"))] + pub acc_comp_x: i32, + /// Compensated acceleration Y axis + #[cfg_attr(feature = "serde", serde(rename = "acc_comp_y"))] + pub acc_comp_y: i32, + /// Compensated acceleration Z axis + #[cfg_attr(feature = "serde", serde(rename = "acc_comp_z"))] + pub acc_comp_z: i32, + /// Compensated angular rate X axis + #[cfg_attr(feature = "serde", serde(rename = "gyr_comp_x"))] + pub gyr_comp_x: i32, + /// Compensated angular rate Y axis + #[cfg_attr(feature = "serde", serde(rename = "gyr_comp_y"))] + pub gyr_comp_y: i32, + /// Compensated angular rate Z axis + #[cfg_attr(feature = "serde", serde(rename = "gyr_comp_z"))] + pub gyr_comp_z: i32, + } + + impl MsgImuComp { + /// Gets the `gyroscopeerrorscompensated` flag. + #[allow(clippy::identity_op)] + pub fn gyroscopeerrorscompensated(&self) -> bool { + ((self.flags >> 6) & 1) == 1 + } + + /// Sets the `gyroscopeerrorscompensated` flag. + pub fn set_gyroscopeerrorscompensated(&mut self, gyroscopeerrorscompensated: bool) { + self.flags ^= (!(gyroscopeerrorscompensated as u16)) & (1 << 6) + } + + /// Gets the `accelerometererrorscompensated` flag. + #[allow(clippy::identity_op)] + pub fn accelerometererrorscompensated(&self) -> bool { + ((self.flags >> 5) & 1) == 1 + } + + /// Sets the `accelerometererrorscompensated` flag. + pub fn set_accelerometererrorscompensated(&mut self, accelerometererrorscompensated: bool) { + self.flags ^= (!(accelerometererrorscompensated as u16)) & (1 << 5) + } + + /// Gets the `corioliseffectcompensated` flag. + #[allow(clippy::identity_op)] + pub fn corioliseffectcompensated(&self) -> bool { + ((self.flags >> 4) & 1) == 1 + } + + /// Sets the `corioliseffectcompensated` flag. + pub fn set_corioliseffectcompensated(&mut self, corioliseffectcompensated: bool) { + self.flags ^= (!(corioliseffectcompensated as u16)) & (1 << 4) + } + + /// Gets the `earthrorationratecompensated` flag. + #[allow(clippy::identity_op)] + pub fn earthrorationratecompensated(&self) -> bool { + ((self.flags >> 3) & 1) == 1 + } + + /// Sets the `earthrorationratecompensated` flag. + pub fn set_earthrorationratecompensated(&mut self, earthrorationratecompensated: bool) { + self.flags ^= (!(earthrorationratecompensated as u16)) & (1 << 3) + } + + /// Gets the `earthgravitycompensated` flag. + #[allow(clippy::identity_op)] + pub fn earthgravitycompensated(&self) -> bool { + ((self.flags >> 2) & 1) == 1 + } + + /// Sets the `earthgravitycompensated` flag. + pub fn set_earthgravitycompensated(&mut self, earthgravitycompensated: bool) { + self.flags ^= (!(earthgravitycompensated as u16)) & (1 << 2) + } + + /// Gets the [TimeStatus][self::TimeStatus] stored in the `flags` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `TimeStatus` 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 `TimeStatus` were added. + pub fn time_status(&self) -> Result { + get_bit_range!(self.flags, u16, u8, 1, 0).try_into() + } + + /// Set the bitrange corresponding to the [TimeStatus][TimeStatus] of the `flags` bitfield. + pub fn set_time_status(&mut self, time_status: TimeStatus) { + set_bit_range!(&mut self.flags, time_status, u16, u8, 1, 0); + } + } + + impl ConcreteMessage for MsgImuComp { + const MESSAGE_TYPE: u16 = 2309; + const MESSAGE_NAME: &'static str = "MSG_IMU_COMP"; + } + + impl SbpMessage for MsgImuComp { + 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 MsgImuComp { + fn friendly_name() -> &'static str { + "IMU COMP" + } + } + + impl TryFrom for MsgImuComp { + type Error = TryFromSbpError; + fn try_from(msg: Sbp) -> Result { + match msg { + Sbp::MsgImuComp(m) => Ok(m), + _ => Err(TryFromSbpError(msg)), + } + } + } + + impl WireFormat for MsgImuComp { + const MIN_LEN: usize = ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN; + fn len(&self) -> usize { + WireFormat::len(&self.time) + + WireFormat::len(&self.flags) + + WireFormat::len(&self.acc_comp_x) + + WireFormat::len(&self.acc_comp_y) + + WireFormat::len(&self.acc_comp_z) + + WireFormat::len(&self.gyr_comp_x) + + WireFormat::len(&self.gyr_comp_y) + + WireFormat::len(&self.gyr_comp_z) + } + fn write(&self, buf: &mut B) { + WireFormat::write(&self.time, buf); + WireFormat::write(&self.flags, buf); + WireFormat::write(&self.acc_comp_x, buf); + WireFormat::write(&self.acc_comp_y, buf); + WireFormat::write(&self.acc_comp_z, buf); + WireFormat::write(&self.gyr_comp_x, buf); + WireFormat::write(&self.gyr_comp_y, buf); + WireFormat::write(&self.gyr_comp_z, buf); + } + fn parse_unchecked(buf: &mut B) -> Self { + MsgImuComp { + sender_id: None, + time: WireFormat::parse_unchecked(buf), + flags: WireFormat::parse_unchecked(buf), + acc_comp_x: WireFormat::parse_unchecked(buf), + acc_comp_y: WireFormat::parse_unchecked(buf), + acc_comp_z: WireFormat::parse_unchecked(buf), + gyr_comp_x: WireFormat::parse_unchecked(buf), + gyr_comp_y: WireFormat::parse_unchecked(buf), + gyr_comp_z: WireFormat::parse_unchecked(buf), + } + } + } + + /// Time status + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum TimeStatus { + /// Reference epoch is start of current GPS week + ReferenceEpochIsStartOfCurrentGpsWeek = 0, + + /// Reference epoch is time of system startup + ReferenceEpochIsTimeOfSystemStartup = 1, + + /// Reference epoch is unknown + ReferenceEpochIsUnknown = 2, + + /// Reference epoch is last PPS + ReferenceEpochIsLastPps = 3, + } + + impl std::fmt::Display for TimeStatus { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + TimeStatus::ReferenceEpochIsStartOfCurrentGpsWeek => { + f.write_str("Reference epoch is start of current GPS week") + } + TimeStatus::ReferenceEpochIsTimeOfSystemStartup => { + f.write_str("Reference epoch is time of system startup") + } + TimeStatus::ReferenceEpochIsUnknown => f.write_str("Reference epoch is unknown"), + TimeStatus::ReferenceEpochIsLastPps => f.write_str("Reference epoch is last PPS"), + } + } + } + + impl TryFrom for TimeStatus { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(TimeStatus::ReferenceEpochIsStartOfCurrentGpsWeek), + 1 => Ok(TimeStatus::ReferenceEpochIsTimeOfSystemStartup), + 2 => Ok(TimeStatus::ReferenceEpochIsUnknown), + 3 => Ok(TimeStatus::ReferenceEpochIsLastPps), + i => Err(i), + } + } + } +} + pub mod msg_imu_raw { #![allow(unused_imports)] diff --git a/rust/sbp/src/messages/mod.rs b/rust/sbp/src/messages/mod.rs index bad1920949..e4c86f0d22 100644 --- a/rust/sbp/src/messages/mod.rs +++ b/rust/sbp/src/messages/mod.rs @@ -77,6 +77,7 @@ use self::flash::msg_stm_flash_unlock_sector::MsgStmFlashUnlockSector; use self::flash::msg_stm_unique_id_req::MsgStmUniqueIdReq; use self::flash::msg_stm_unique_id_resp::MsgStmUniqueIdResp; use self::imu::msg_imu_aux::MsgImuAux; +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; @@ -766,6 +767,8 @@ pub enum Sbp { MsgOdometry(MsgOdometry), /// Accumulated wheeltick count message MsgWheeltick(MsgWheeltick), + /// Compensated IMU data + MsgImuComp(MsgImuComp), /// High level integrity flags MsgSsrFlagHighLevel(MsgSsrFlagHighLevel), /// List of satellites which are faulty, per constellation @@ -1471,6 +1474,9 @@ impl<'de> serde::Deserialize<'de> for Sbp { Some(MsgWheeltick::MESSAGE_TYPE) => { serde_json::from_value::(value).map(Sbp::MsgWheeltick) } + Some(MsgImuComp::MESSAGE_TYPE) => { + serde_json::from_value::(value).map(Sbp::MsgImuComp) + } Some(MsgSsrFlagHighLevel::MESSAGE_TYPE) => { serde_json::from_value::(value).map(Sbp::MsgSsrFlagHighLevel) } @@ -2187,6 +2193,7 @@ impl Sbp { MsgMagRaw::MESSAGE_TYPE => MsgMagRaw::parse(&mut payload).map(Sbp::MsgMagRaw), 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), MsgSsrFlagHighLevel::MESSAGE_TYPE => { MsgSsrFlagHighLevel::parse(&mut payload).map(Sbp::MsgSsrFlagHighLevel) } @@ -2543,6 +2550,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => msg.message_name(), Sbp::MsgOdometry(msg) => msg.message_name(), Sbp::MsgWheeltick(msg) => msg.message_name(), + Sbp::MsgImuComp(msg) => msg.message_name(), Sbp::MsgSsrFlagHighLevel(msg) => msg.message_name(), Sbp::MsgSsrFlagSatellites(msg) => msg.message_name(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.message_name(), @@ -2788,6 +2796,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => msg.message_type(), Sbp::MsgOdometry(msg) => msg.message_type(), Sbp::MsgWheeltick(msg) => msg.message_type(), + Sbp::MsgImuComp(msg) => msg.message_type(), Sbp::MsgSsrFlagHighLevel(msg) => msg.message_type(), Sbp::MsgSsrFlagSatellites(msg) => msg.message_type(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.message_type(), @@ -3033,6 +3042,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => msg.sender_id(), Sbp::MsgOdometry(msg) => msg.sender_id(), Sbp::MsgWheeltick(msg) => msg.sender_id(), + Sbp::MsgImuComp(msg) => msg.sender_id(), Sbp::MsgSsrFlagHighLevel(msg) => msg.sender_id(), Sbp::MsgSsrFlagSatellites(msg) => msg.sender_id(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.sender_id(), @@ -3278,6 +3288,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => msg.set_sender_id(new_id), 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::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), @@ -3523,6 +3534,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => msg.encoded_len(), Sbp::MsgOdometry(msg) => msg.encoded_len(), Sbp::MsgWheeltick(msg) => msg.encoded_len(), + Sbp::MsgImuComp(msg) => msg.encoded_len(), Sbp::MsgSsrFlagHighLevel(msg) => msg.encoded_len(), Sbp::MsgSsrFlagSatellites(msg) => msg.encoded_len(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.encoded_len(), @@ -3771,6 +3783,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => msg.gps_time(), Sbp::MsgOdometry(msg) => msg.gps_time(), Sbp::MsgWheeltick(msg) => msg.gps_time(), + Sbp::MsgImuComp(msg) => msg.gps_time(), Sbp::MsgSsrFlagHighLevel(msg) => msg.gps_time(), Sbp::MsgSsrFlagSatellites(msg) => msg.gps_time(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.gps_time(), @@ -4016,6 +4029,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => msg.friendly_name(), Sbp::MsgOdometry(msg) => msg.friendly_name(), Sbp::MsgWheeltick(msg) => msg.friendly_name(), + Sbp::MsgImuComp(msg) => msg.friendly_name(), Sbp::MsgSsrFlagHighLevel(msg) => msg.friendly_name(), Sbp::MsgSsrFlagSatellites(msg) => msg.friendly_name(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.friendly_name(), @@ -4261,6 +4275,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => msg.is_valid(), Sbp::MsgOdometry(msg) => msg.is_valid(), Sbp::MsgWheeltick(msg) => msg.is_valid(), + Sbp::MsgImuComp(msg) => msg.is_valid(), Sbp::MsgSsrFlagHighLevel(msg) => msg.is_valid(), Sbp::MsgSsrFlagSatellites(msg) => msg.is_valid(), Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.is_valid(), @@ -4567,6 +4582,7 @@ impl SbpMessage for Sbp { Sbp::MsgMagRaw(msg) => Ok(Sbp::MsgMagRaw(msg.into_valid_msg()?)), 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::MsgSsrFlagHighLevel(msg) => Ok(Sbp::MsgSsrFlagHighLevel(msg.into_valid_msg()?)), Sbp::MsgSsrFlagSatellites(msg) => Ok(Sbp::MsgSsrFlagSatellites(msg.into_valid_msg()?)), Sbp::MsgSsrFlagTropoGridPoints(msg) => { @@ -4861,6 +4877,7 @@ impl WireFormat for Sbp { Sbp::MsgMagRaw(msg) => WireFormat::write(msg, buf), Sbp::MsgOdometry(msg) => WireFormat::write(msg, buf), Sbp::MsgWheeltick(msg) => WireFormat::write(msg, buf), + Sbp::MsgImuComp(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), @@ -5106,6 +5123,7 @@ impl WireFormat for Sbp { Sbp::MsgMagRaw(msg) => WireFormat::len(msg), Sbp::MsgOdometry(msg) => WireFormat::len(msg), Sbp::MsgWheeltick(msg) => WireFormat::len(msg), + Sbp::MsgImuComp(msg) => WireFormat::len(msg), Sbp::MsgSsrFlagHighLevel(msg) => WireFormat::len(msg), Sbp::MsgSsrFlagSatellites(msg) => WireFormat::len(msg), Sbp::MsgSsrFlagTropoGridPoints(msg) => WireFormat::len(msg), @@ -6290,6 +6308,12 @@ impl From for Sbp { } } +impl From for Sbp { + fn from(msg: MsgImuComp) -> Self { + Sbp::MsgImuComp(msg) + } +} + impl From for Sbp { fn from(msg: MsgSsrFlagHighLevel) -> Self { Sbp::MsgSsrFlagHighLevel(msg) diff --git a/rust/sbp/src/messages/navigation.rs b/rust/sbp/src/messages/navigation.rs index fd25afa204..c18cde1b03 100644 --- a/rust/sbp/src/messages/navigation.rs +++ b/rust/sbp/src/messages/navigation.rs @@ -4724,6 +4724,9 @@ pub mod msg_pos_llh_acc { /// 95.45% _9545 = 3, + + /// 99.73% + _9973 = 4, } impl std::fmt::Display for ConfidenceLevel { @@ -4732,6 +4735,7 @@ pub mod msg_pos_llh_acc { ConfidenceLevel::_3935 => f.write_str("39.35%"), ConfidenceLevel::_6827 => f.write_str("68.27%"), ConfidenceLevel::_9545 => f.write_str("95.45%"), + ConfidenceLevel::_9973 => f.write_str("99.73%"), } } } @@ -4743,6 +4747,7 @@ pub mod msg_pos_llh_acc { 1 => Ok(ConfidenceLevel::_3935), 2 => Ok(ConfidenceLevel::_6827), 3 => Ok(ConfidenceLevel::_9545), + 4 => Ok(ConfidenceLevel::_9973), i => Err(i), } } diff --git a/rust/sbp/tests/integration/auto_check_sbp_imu_msg_imu_comp.rs b/rust/sbp/tests/integration/auto_check_sbp_imu_msg_imu_comp.rs new file mode 100644 index 0000000000..7a8414592e --- /dev/null +++ b/rust/sbp/tests/integration/auto_check_sbp_imu_msg_imu_comp.rs @@ -0,0 +1,289 @@ +// +// 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/imu/test_MsgImuComp.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_imu_msg_imu_comp() { + { + let mut payload = Cursor::new(vec![ + 85, 5, 9, 52, 18, 34, 26, 1, 0, 192, 0, 0, 0, 0, 206, 0, 96, 0, 0, 0, 223, 255, 255, + 255, 44, 16, 0, 0, 60, 0, 0, 0, 208, 254, 255, 255, 238, 255, 255, 255, 79, 86, + ]); + + // 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::MsgImuComp(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 0x905, + "Incorrect message type, expected 0x905, is {}", + msg_type + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x1234, + "incorrect sender id, expected 0x1234, is {sender_id}" + ); + assert_eq!( + msg.acc_comp_x, 96, + "incorrect value for acc_comp_x, expected 96, is {}", + msg.acc_comp_x + ); + assert_eq!( + msg.acc_comp_y, -33, + "incorrect value for acc_comp_y, expected -33, is {}", + msg.acc_comp_y + ); + assert_eq!( + msg.acc_comp_z, 4140, + "incorrect value for acc_comp_z, expected 4140, is {}", + msg.acc_comp_z + ); + assert_eq!( + msg.flags, 206, + "incorrect value for flags, expected 206, is {}", + msg.flags + ); + assert_eq!( + msg.gyr_comp_x, 60, + "incorrect value for gyr_comp_x, expected 60, is {}", + msg.gyr_comp_x + ); + assert_eq!( + msg.gyr_comp_y, -304, + "incorrect value for gyr_comp_y, expected -304, is {}", + msg.gyr_comp_y + ); + assert_eq!( + msg.gyr_comp_z, -18, + "incorrect value for gyr_comp_z, expected -18, is {}", + msg.gyr_comp_z + ); + assert_eq!( + msg.time, 3221225754, + "incorrect value for time, expected 3221225754, is {}", + msg.time + ); + } + _ => panic!("Invalid message type! Expected a MsgImuComp"), + }; + 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_imu_msg_imu_comp() { + { + let json_input = r#"{"time":3221225754,"flags":206,"acc_comp_x":96,"acc_comp_y":-33,"acc_comp_z":4140,"gyr_comp_x":60,"gyr_comp_y":-304,"gyr_comp_z":-18,"preamble":85,"msg_type":2309,"sender":4660,"payload":"GgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///w==","crc":22095,"length":34}"#.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::MsgImuComp(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 0x905, + "Incorrect message type, expected 0x905, is {}", + msg_type + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x1234, + "incorrect sender id, expected 0x1234, is {sender_id}" + ); + assert_eq!( + msg.acc_comp_x, 96, + "incorrect value for acc_comp_x, expected 96, is {}", + msg.acc_comp_x + ); + assert_eq!( + msg.acc_comp_y, -33, + "incorrect value for acc_comp_y, expected -33, is {}", + msg.acc_comp_y + ); + assert_eq!( + msg.acc_comp_z, 4140, + "incorrect value for acc_comp_z, expected 4140, is {}", + msg.acc_comp_z + ); + assert_eq!( + msg.flags, 206, + "incorrect value for flags, expected 206, is {}", + msg.flags + ); + assert_eq!( + msg.gyr_comp_x, 60, + "incorrect value for gyr_comp_x, expected 60, is {}", + msg.gyr_comp_x + ); + assert_eq!( + msg.gyr_comp_y, -304, + "incorrect value for gyr_comp_y, expected -304, is {}", + msg.gyr_comp_y + ); + assert_eq!( + msg.gyr_comp_z, -18, + "incorrect value for gyr_comp_z, expected -18, is {}", + msg.gyr_comp_z + ); + assert_eq!( + msg.time, 3221225754, + "incorrect value for time, expected 3221225754, is {}", + msg.time + ); + } + _ => panic!("Invalid message type! Expected a MsgImuComp"), + }; + } +} + +/// Tests [`sbp::json::JsonEncoder`] for roundtrip SBP message -> JSON +/// +/// Assumes: +/// - [`self::test_auto_check_sbp_imu_msg_imu_comp`] passes +/// +/// Asserts: +/// - SBP fields equates to that of the field +/// - Payload is identical +#[test] +#[cfg(feature = "json")] +fn test_sbp2json_auto_check_sbp_imu_msg_imu_comp() { + { + let mut payload = Cursor::new(vec![ + 85, 5, 9, 52, 18, 34, 26, 1, 0, 192, 0, 0, 0, 0, 206, 0, 96, 0, 0, 0, 223, 255, 255, + 255, 44, 16, 0, 0, 60, 0, 0, 0, 208, 254, 255, 255, 238, 255, 255, 255, 79, 86, + ]); + + // 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::MsgImuComp( + serde_json::from_str( + std::str::from_utf8(json_buffer.as_slice()) + .unwrap() + .to_string() + .as_str(), + ) + .unwrap(), + ); + match &sbp_msg { + sbp::messages::Sbp::MsgImuComp(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 0x905, + "Incorrect message type, expected 0x905, is {}", + msg_type + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x1234, + "incorrect sender id, expected 0x1234, is {sender_id}" + ); + assert_eq!( + msg.acc_comp_x, 96, + "incorrect value for acc_comp_x, expected 96, is {}", + msg.acc_comp_x + ); + assert_eq!( + msg.acc_comp_y, -33, + "incorrect value for acc_comp_y, expected -33, is {}", + msg.acc_comp_y + ); + assert_eq!( + msg.acc_comp_z, 4140, + "incorrect value for acc_comp_z, expected 4140, is {}", + msg.acc_comp_z + ); + assert_eq!( + msg.flags, 206, + "incorrect value for flags, expected 206, is {}", + msg.flags + ); + assert_eq!( + msg.gyr_comp_x, 60, + "incorrect value for gyr_comp_x, expected 60, is {}", + msg.gyr_comp_x + ); + assert_eq!( + msg.gyr_comp_y, -304, + "incorrect value for gyr_comp_y, expected -304, is {}", + msg.gyr_comp_y + ); + assert_eq!( + msg.gyr_comp_z, -18, + "incorrect value for gyr_comp_z, expected -18, is {}", + msg.gyr_comp_z + ); + assert_eq!( + msg.time, 3221225754, + "incorrect value for time, expected 3221225754, is {}", + msg.time + ); + } + _ => panic!("Invalid message type! Expected a MsgImuComp"), + }; + + // 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 cfc224e26f..db3f62f8a8 100644 --- a/rust/sbp/tests/integration/main.rs +++ b/rust/sbp/tests/integration/main.rs @@ -44,6 +44,7 @@ mod auto_check_sbp_flash_msg_stm_flash_unlock_sector; mod auto_check_sbp_flash_msg_stm_unique_id_req; mod auto_check_sbp_flash_msg_stm_unique_id_resp; mod auto_check_sbp_imu_msg_imu_aux; +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; diff --git a/rust/sbp2json/Cargo.toml b/rust/sbp2json/Cargo.toml index e8c22897ea..30a99c6ba8 100644 --- a/rust/sbp2json/Cargo.toml +++ b/rust/sbp2json/Cargo.toml @@ -7,7 +7,7 @@ [package] name = "sbp2json" -version = "6.1.1-alpha" +version = "6.2.2-alpha" repository = "https://github.com/swift-nav/libsbp" description = "Rust native implementation of SBP (Swift Binary Protocol) to JSON conversion tools" authors = ["Swift Navigation "] @@ -62,4 +62,4 @@ path = "src/bin/json2sbp.rs" [[bin]] name = "json2json" -path = "src/bin/json2json.rs" \ No newline at end of file +path = "src/bin/json2json.rs" diff --git a/sbpjson/elm/SbpJson.elm b/sbpjson/elm/SbpJson.elm index bcee891a1a..e3c48f0d94 100644 --- a/sbpjson/elm/SbpJson.elm +++ b/sbpjson/elm/SbpJson.elm @@ -5,7 +5,7 @@ -- add these imports -- -- import Json.Decode exposing (decodeString)`); --- import SbpJson exposing (acqSvProfile, almanacCommonContent, boundsHeader, carrierPhase, codeBiasesContent, codePhaseBiasesSatSig, doppler, ecdsaSignature, ephemerisCommonContent, estimatedHorizontalErrorEllipse, gnssInputType, gnssCapb, gnssSignal, gpsTime, gpsTimeSEC, gridElement, gridElementNoStd, griddedCorrectionHeader, imuInputType, integritySSRHeader, latency, measurementState, msgAcknowledge, msgAcqResult, msgAcqSvProfile, msgAESCmacSignature, msgAgeCorrections, msgAlmanac, msgAlmanacGPS, msgAlmanacGlo, msgAngularRate, msgBasePosECEF, msgBasePosLLH, msgBaselineECEF, msgBaselineHeading, msgBaselineNED, msgBootloaderHandshakeReq, msgBootloaderHandshakeResp, msgBootloaderJumpToApp, msgCellModemStatus, msgCertificateChain, msgCommandOutput, msgCommandReq, msgCommandResp, msgCsacTelemetry, msgCsacTelemetryLabels, msgCwResults, msgCwStart, msgDeviceMonitor, msgDgnssStatus, msgDops, msgEcdsaCertificate, msgEcdsaSignature, msgEphemerisBds, msgEphemerisGPS, msgEphemerisGal, msgEphemerisGlo, msgEphemerisQzss, msgEphemerisSbas, msgEXTEvent, msgFileioConfigReq, msgFileioConfigResp, msgFileioReadDirReq, msgFileioReadDirResp, msgFileioReadReq, msgFileioReadResp, msgFileioRemove, msgFileioWriteReq, msgFileioWriteResp, msgFlashDone, msgFlashErase, msgFlashProgram, msgFlashReadReq, msgFlashReadResp, msgFrontEndGain, msgFwd, msgGPSTime, msgGPSTimeGnss, msgGloBiases, msgGnssCapb, msgGnssTimeOffset, msgGroupDelay, msgGroupMeta, msgHeartbeat, msgIarState, msgImuAux, msgImuRaw, msgInsStatus, msgInsUpdates, msgIono, msgLinuxCPUState, msgLinuxMemState, msgLinuxProcessFdCount, msgLinuxProcessFdSummary, msgLinuxProcessSocketCounts, msgLinuxProcessSocketQueues, msgLinuxSocketUsage, msgLinuxSysState, msgLog, msgM25FlashWriteStatus, msgMagRaw, msgMaskSatellite, msgMeasurementPoint, msgMeasurementState, msgNapDeviceDnaReq, msgNapDeviceDnaResp, msgNdbEvent, msgNetworkBandwidthUsage, msgNetworkStateReq, msgNetworkStateResp, msgObs, msgOdometry, msgOrientEuler, msgOrientQuat, msgOsr, msgPosECEF, msgPosECEFCov, msgPosECEFCovGnss, msgPosECEFGnss, msgPosLLH, msgPosLLHAcc, msgPosLLHCov, msgPosLLHCovGnss, msgPosLLHGnss, msgPoseRelative, msgPpsTime, msgProfilingResourceCounter, msgProfilingSystemInfo, msgProfilingThreadInfo, msgProtectionLevel, msgReferenceFrameParam, msgReset, msgResetFilters, msgSbasRaw, msgSensorAidEvent, msgSetTime, msgSettingsReadByIndexDone, msgSettingsReadByIndexReq, msgSettingsReadByIndexResp, msgSettingsReadReq, msgSettingsReadResp, msgSettingsRegister, msgSettingsRegisterResp, msgSettingsSave, msgSettingsWrite, msgSettingsWriteResp, msgSolnMeta, msgSpecan, msgSsrCodeBiases, msgSsrCodePhaseBiasesBounds, msgSsrFlagHighLevel, msgSsrFlagIonoGridPointSatLos, msgSsrFlagIonoGridPoints, msgSsrFlagIonoTileSatLos, msgSsrFlagSatellites, msgSsrFlagTropoGridPoints, msgSsrGriddedCorrection, msgSsrGriddedCorrectionBounds, msgSsrOrbitClock, msgSsrOrbitClockBounds, msgSsrOrbitClockBoundsDegradation, msgSsrPhaseBiases, msgSsrSatelliteApc, msgSsrStecCorrection, msgSsrTileDefinition, msgStartup, msgStatusJournal, msgStatusReport, msgStmFlashLockSector, msgStmFlashUnlockSector, msgStmUniqueIDReq, msgStmUniqueIDResp, msgSvAzEl, msgTelSv, msgThreadState, msgTrackingIq, msgTrackingState, msgUARTState, msgUserData, msgUTCLeapSecond, msgUTCTime, msgUTCTimeGnss, msgVelBody, msgVelCog, msgVelECEF, msgVelECEFCov, msgVelECEFCovGnss, msgVelECEFGnss, msgVelNED, msgVelNEDCov, msgVelNEDCovGnss, msgVelNEDGnss, msgWheeltick, networkUsage, observationHeader, odoInputType, orbitClockBound, orbitClockBoundDegradation, packedObsContent, packedOsrContent, period, phaseBiasesContent, resourceBucket, stecHeader, stecResidual, stecResidualNoStd, stecSatElement, stecSatElementIntegrity, satelliteAPC, solutionInputType, statusJournalItem, subSystemReport, svAzEl, svID, telemetrySV, trackingChannelCorrelation, trackingChannelState, troposphericDelayCorrection, troposphericDelayCorrectionNoStd, uartChannel, utcTime) +-- import SbpJson exposing (acqSvProfile, almanacCommonContent, boundsHeader, carrierPhase, codeBiasesContent, codePhaseBiasesSatSig, doppler, ecdsaSignature, ephemerisCommonContent, estimatedHorizontalErrorEllipse, gnssInputType, gnssCapb, gnssSignal, gpsTime, gpsTimeSEC, gridElement, gridElementNoStd, griddedCorrectionHeader, imuInputType, integritySSRHeader, latency, measurementState, msgAcknowledge, msgAcqResult, msgAcqSvProfile, msgAESCmacSignature, msgAgeCorrections, msgAlmanac, msgAlmanacGPS, msgAlmanacGlo, msgAngularRate, msgBasePosECEF, msgBasePosLLH, msgBaselineECEF, msgBaselineHeading, msgBaselineNED, msgBootloaderHandshakeReq, msgBootloaderHandshakeResp, msgBootloaderJumpToApp, msgCellModemStatus, msgCertificateChain, msgCommandOutput, msgCommandReq, msgCommandResp, msgCsacTelemetry, msgCsacTelemetryLabels, msgCwResults, msgCwStart, msgDeviceMonitor, msgDgnssStatus, msgDops, msgEcdsaCertificate, msgEcdsaSignature, msgEphemerisBds, msgEphemerisGPS, msgEphemerisGal, msgEphemerisGlo, msgEphemerisQzss, msgEphemerisSbas, msgEXTEvent, msgFileioConfigReq, msgFileioConfigResp, msgFileioReadDirReq, msgFileioReadDirResp, msgFileioReadReq, msgFileioReadResp, msgFileioRemove, msgFileioWriteReq, msgFileioWriteResp, msgFlashDone, msgFlashErase, msgFlashProgram, msgFlashReadReq, msgFlashReadResp, msgFrontEndGain, msgFwd, msgGPSTime, msgGPSTimeGnss, msgGloBiases, msgGnssCapb, msgGnssTimeOffset, msgGroupDelay, msgGroupMeta, msgHeartbeat, msgIarState, msgImuAux, msgImuComp, msgImuRaw, msgInsStatus, msgInsUpdates, msgIono, msgLinuxCPUState, msgLinuxMemState, msgLinuxProcessFdCount, msgLinuxProcessFdSummary, msgLinuxProcessSocketCounts, msgLinuxProcessSocketQueues, msgLinuxSocketUsage, msgLinuxSysState, msgLog, msgM25FlashWriteStatus, msgMagRaw, msgMaskSatellite, msgMeasurementPoint, msgMeasurementState, msgNapDeviceDnaReq, msgNapDeviceDnaResp, msgNdbEvent, msgNetworkBandwidthUsage, msgNetworkStateReq, msgNetworkStateResp, msgObs, msgOdometry, msgOrientEuler, msgOrientQuat, msgOsr, msgPosECEF, msgPosECEFCov, msgPosECEFCovGnss, msgPosECEFGnss, msgPosLLH, msgPosLLHAcc, msgPosLLHCov, msgPosLLHCovGnss, msgPosLLHGnss, msgPoseRelative, msgPpsTime, msgProfilingResourceCounter, msgProfilingSystemInfo, msgProfilingThreadInfo, msgProtectionLevel, msgReferenceFrameParam, msgReset, msgResetFilters, msgSbasRaw, msgSensorAidEvent, msgSetTime, msgSettingsReadByIndexDone, msgSettingsReadByIndexReq, msgSettingsReadByIndexResp, msgSettingsReadReq, msgSettingsReadResp, msgSettingsRegister, msgSettingsRegisterResp, msgSettingsSave, msgSettingsWrite, msgSettingsWriteResp, msgSolnMeta, msgSpecan, msgSsrCodeBiases, msgSsrCodePhaseBiasesBounds, msgSsrFlagHighLevel, msgSsrFlagIonoGridPointSatLos, msgSsrFlagIonoGridPoints, msgSsrFlagIonoTileSatLos, msgSsrFlagSatellites, msgSsrFlagTropoGridPoints, msgSsrGriddedCorrection, msgSsrGriddedCorrectionBounds, msgSsrOrbitClock, msgSsrOrbitClockBounds, msgSsrOrbitClockBoundsDegradation, msgSsrPhaseBiases, msgSsrSatelliteApc, msgSsrStecCorrection, msgSsrTileDefinition, msgStartup, msgStatusJournal, msgStatusReport, msgStmFlashLockSector, msgStmFlashUnlockSector, msgStmUniqueIDReq, msgStmUniqueIDResp, msgSvAzEl, msgTelSv, msgThreadState, msgTrackingIq, msgTrackingState, msgUARTState, msgUserData, msgUTCLeapSecond, msgUTCTime, msgUTCTimeGnss, msgVelBody, msgVelCog, msgVelECEF, msgVelECEFCov, msgVelECEFCovGnss, msgVelECEFGnss, msgVelNED, msgVelNEDCov, msgVelNEDCovGnss, msgVelNEDGnss, msgWheeltick, networkUsage, observationHeader, odoInputType, orbitClockBound, orbitClockBoundDegradation, packedObsContent, packedOsrContent, period, phaseBiasesContent, resourceBucket, stecHeader, stecResidual, stecResidualNoStd, stecSatElement, stecSatElementIntegrity, satelliteAPC, solutionInputType, statusJournalItem, subSystemReport, svAzEl, svID, telemetrySV, trackingChannelCorrelation, trackingChannelState, troposphericDelayCorrection, troposphericDelayCorrectionNoStd, uartChannel, utcTime) -- -- and you're off to the races with -- @@ -95,6 +95,7 @@ -- decodeString msgHeartbeat myJsonString -- decodeString msgIarState myJsonString -- decodeString msgImuAux myJsonString +-- decodeString msgImuComp myJsonString -- decodeString msgImuRaw myJsonString -- decodeString msgInsStatus myJsonString -- decodeString msgInsUpdates myJsonString @@ -490,6 +491,9 @@ module SbpJson exposing , MsgImuAux , msgImuAuxToString , msgImuAux + , MsgImuComp + , msgImuCompToString + , msgImuComp , MsgImuRaw , msgImuRawToString , msgImuRaw @@ -1820,6 +1824,22 @@ type alias MsgImuAux = , temp : Int } +{-| Data from the Inertial Measurement Unit, containing accelerometer and gyroscope readings +compensated for estimated errors and constant physical effects. The output is valid for +inertially referenced center of navigation (IMU body frame) represented in vehicle body +frame. +-} +type alias MsgImuComp = + { accCompX : Int + , accCompY : Int + , accCompZ : Int + , flags : Int + , gyrCompX : Int + , gyrCompY : Int + , gyrCompZ : Int + , time : Int + } + {-| Raw data from the Inertial Measurement Unit, containing accelerometer and gyroscope readings. The sense of the measurements are to be aligned with the indications on the device itself. Measurement units, which are specific to the device hardware and settings, @@ -3851,6 +3871,9 @@ msgIarStateToString r = Jenc.encode 0 (encodeMsgIarState r) msgImuAuxToString : MsgImuAux -> String msgImuAuxToString r = Jenc.encode 0 (encodeMsgImuAux r) +msgImuCompToString : MsgImuComp -> String +msgImuCompToString r = Jenc.encode 0 (encodeMsgImuComp r) + msgImuRawToString : MsgImuRaw -> String msgImuRawToString r = Jenc.encode 0 (encodeMsgImuRaw r) @@ -5715,6 +5738,31 @@ encodeMsgImuAux x = , ("temp", Jenc.int x.temp) ] +msgImuComp : Jdec.Decoder MsgImuComp +msgImuComp = + Jpipe.decode MsgImuComp + |> Jpipe.required "acc_comp_x" Jdec.int + |> Jpipe.required "acc_comp_y" Jdec.int + |> Jpipe.required "acc_comp_z" Jdec.int + |> Jpipe.required "flags" Jdec.int + |> Jpipe.required "gyr_comp_x" Jdec.int + |> Jpipe.required "gyr_comp_y" Jdec.int + |> Jpipe.required "gyr_comp_z" Jdec.int + |> Jpipe.required "time" Jdec.int + +encodeMsgImuComp : MsgImuComp -> Jenc.Value +encodeMsgImuComp x = + Jenc.object + [ ("acc_comp_x", Jenc.int x.accCompX) + , ("acc_comp_y", Jenc.int x.accCompY) + , ("acc_comp_z", Jenc.int x.accCompZ) + , ("flags", Jenc.int x.flags) + , ("gyr_comp_x", Jenc.int x.gyrCompX) + , ("gyr_comp_y", Jenc.int x.gyrCompY) + , ("gyr_comp_z", Jenc.int x.gyrCompZ) + , ("time", Jenc.int x.time) + ] + msgImuRaw : Jdec.Decoder MsgImuRaw msgImuRaw = Jpipe.decode MsgImuRaw diff --git a/sbpjson/javascript/SbpJson.js b/sbpjson/javascript/SbpJson.js index e539bb8278..13702ffaca 100644 --- a/sbpjson/javascript/SbpJson.js +++ b/sbpjson/javascript/SbpJson.js @@ -88,6 +88,7 @@ // const msgHeartbeat = Convert.toMsgHeartbeat(json); // const msgIarState = Convert.toMsgIarState(json); // const msgImuAux = Convert.toMsgImuAux(json); +// const msgImuComp = Convert.toMsgImuComp(json); // const msgImuRaw = Convert.toMsgImuRaw(json); // const msgInsStatus = Convert.toMsgInsStatus(json); // const msgInsUpdates = Convert.toMsgInsUpdates(json); @@ -917,6 +918,14 @@ function msgImuAuxToJson(value) { return JSON.stringify(uncast(value, r("MsgImuAux")), null, 2); } +function toMsgImuComp(json) { + return cast(JSON.parse(json), r("MsgImuComp")); +} + +function msgImuCompToJson(value) { + return JSON.stringify(uncast(value, r("MsgImuComp")), null, 2); +} + function toMsgImuRaw(json) { return cast(JSON.parse(json), r("MsgImuRaw")); } @@ -2678,6 +2687,16 @@ const typeMap = { { json: "imu_type", js: "imu_type", typ: 0 }, { json: "temp", js: "temp", typ: 0 }, ], "any"), + "MsgImuComp": o([ + { json: "acc_comp_x", js: "acc_comp_x", typ: 0 }, + { json: "acc_comp_y", js: "acc_comp_y", typ: 0 }, + { json: "acc_comp_z", js: "acc_comp_z", typ: 0 }, + { json: "flags", js: "flags", typ: 0 }, + { json: "gyr_comp_x", js: "gyr_comp_x", typ: 0 }, + { json: "gyr_comp_y", js: "gyr_comp_y", typ: 0 }, + { json: "gyr_comp_z", js: "gyr_comp_z", typ: 0 }, + { json: "time", js: "time", typ: 0 }, + ], "any"), "MsgImuRaw": o([ { json: "acc_x", js: "acc_x", typ: 0 }, { json: "acc_y", js: "acc_y", typ: 0 }, @@ -3892,6 +3911,8 @@ module.exports = { "toMsgIarState": toMsgIarState, "msgImuAuxToJson": msgImuAuxToJson, "toMsgImuAux": toMsgImuAux, + "msgImuCompToJson": msgImuCompToJson, + "toMsgImuComp": toMsgImuComp, "msgImuRawToJson": msgImuRawToJson, "toMsgImuRaw": toMsgImuRaw, "msgInsStatusToJson": msgInsStatusToJson, diff --git a/sbpjson/typescript/SbpJson.ts b/sbpjson/typescript/SbpJson.ts index 1915dcdbe8..21d23c70d5 100644 --- a/sbpjson/typescript/SbpJson.ts +++ b/sbpjson/typescript/SbpJson.ts @@ -1,6 +1,6 @@ // To parse this data: // -// import { Convert, AcqSvProfile, AlmanacCommonContent, BoundsHeader, CarrierPhase, CodeBiasesContent, CodePhaseBiasesSatSig, Doppler, ECDSASignature, EphemerisCommonContent, EstimatedHorizontalErrorEllipse, GNSSInputType, GnssCapb, GnssSignal, GpsTime, GpsTimeSEC, GridElement, GridElementNoStd, GriddedCorrectionHeader, IMUInputType, IntegritySSRHeader, Latency, MeasurementState, MsgAcknowledge, MsgAcqResult, MsgAcqSvProfile, MsgAESCmacSignature, MsgAgeCorrections, MsgAlmanacGPS, MsgAlmanacGlo, MsgAngularRate, MsgBasePosECEF, MsgBasePosLLH, MsgBaselineECEF, MsgBaselineHeading, MsgBaselineNED, MsgBootloaderHandshakeResp, MsgBootloaderJumpToApp, MsgCellModemStatus, MsgCertificateChain, MsgCommandOutput, MsgCommandReq, MsgCommandResp, MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgDeviceMonitor, MsgDgnssStatus, MsgDops, MsgEcdsaCertificate, MsgEcdsaSignature, MsgEphemerisBds, MsgEphemerisGPS, MsgEphemerisGal, MsgEphemerisGlo, MsgEphemerisQzss, MsgEphemerisSbas, MsgEXTEvent, MsgFileioConfigReq, MsgFileioConfigResp, MsgFileioReadDirReq, MsgFileioReadDirResp, MsgFileioReadReq, MsgFileioReadResp, MsgFileioRemove, MsgFileioWriteReq, MsgFileioWriteResp, MsgFlashDone, MsgFlashErase, MsgFlashProgram, MsgFlashReadReq, MsgFlashReadResp, MsgFrontEndGain, MsgFwd, MsgGPSTime, MsgGPSTimeGnss, MsgGloBiases, MsgGnssCapb, MsgGnssTimeOffset, MsgGroupDelay, MsgGroupMeta, MsgHeartbeat, MsgIarState, MsgImuAux, MsgImuRaw, MsgInsStatus, MsgInsUpdates, MsgIono, MsgLinuxCPUState, MsgLinuxMemState, MsgLinuxProcessFdCount, MsgLinuxProcessFdSummary, MsgLinuxProcessSocketCounts, MsgLinuxProcessSocketQueues, MsgLinuxSocketUsage, MsgLinuxSysState, MsgLog, MsgM25FlashWriteStatus, MsgMagRaw, MsgMaskSatellite, MsgMeasurementPoint, MsgMeasurementState, MsgNapDeviceDnaResp, MsgNdbEvent, MsgNetworkBandwidthUsage, MsgNetworkStateResp, MsgObs, MsgOdometry, MsgOrientEuler, MsgOrientQuat, MsgOsr, MsgPosECEF, MsgPosECEFCov, MsgPosECEFCovGnss, MsgPosECEFGnss, MsgPosLLH, MsgPosLLHAcc, MsgPosLLHCov, MsgPosLLHCovGnss, MsgPosLLHGnss, MsgPoseRelative, MsgPpsTime, MsgProfilingResourceCounter, MsgProfilingSystemInfo, MsgProfilingThreadInfo, MsgProtectionLevel, MsgReferenceFrameParam, MsgReset, MsgResetFilters, MsgSbasRaw, MsgSensorAidEvent, MsgSettingsReadByIndexReq, MsgSettingsReadByIndexResp, MsgSettingsReadReq, MsgSettingsReadResp, MsgSettingsRegister, MsgSettingsRegisterResp, MsgSettingsWrite, MsgSettingsWriteResp, MsgSolnMeta, MsgSpecan, MsgSsrCodeBiases, MsgSsrCodePhaseBiasesBounds, MsgSsrFlagHighLevel, MsgSsrFlagIonoGridPointSatLos, MsgSsrFlagIonoGridPoints, MsgSsrFlagIonoTileSatLos, MsgSsrFlagSatellites, MsgSsrFlagTropoGridPoints, MsgSsrGriddedCorrection, MsgSsrGriddedCorrectionBounds, MsgSsrOrbitClock, MsgSsrOrbitClockBounds, MsgSsrOrbitClockBoundsDegradation, MsgSsrPhaseBiases, MsgSsrSatelliteApc, MsgSsrStecCorrection, MsgSsrTileDefinition, MsgStartup, MsgStatusJournal, MsgStatusReport, MsgStmFlashLockSector, MsgStmFlashUnlockSector, MsgStmUniqueIDResp, MsgSvAzEl, MsgTelSv, MsgThreadState, MsgTrackingIq, MsgTrackingState, MsgUARTState, MsgUserData, MsgUTCLeapSecond, MsgUTCTime, MsgUTCTimeGnss, MsgVelBody, MsgVelCog, MsgVelECEF, MsgVelECEFCov, MsgVelECEFCovGnss, MsgVelECEFGnss, MsgVelNED, MsgVelNEDCov, MsgVelNEDCovGnss, MsgVelNEDGnss, MsgWheeltick, NetworkUsage, ObservationHeader, OdoInputType, OrbitClockBound, OrbitClockBoundDegradation, PackedObsContent, PackedOsrContent, Period, PhaseBiasesContent, ResourceBucket, STECHeader, STECResidual, STECResidualNoStd, STECSatElement, STECSatElementIntegrity, SatelliteAPC, SolutionInputType, StatusJournalItem, SubSystemReport, SvAzEl, SvID, TelemetrySV, TrackingChannelCorrelation, TrackingChannelState, TroposphericDelayCorrection, TroposphericDelayCorrectionNoStd, UARTChannel, UTCTime } from "./file"; +// import { Convert, AcqSvProfile, AlmanacCommonContent, BoundsHeader, CarrierPhase, CodeBiasesContent, CodePhaseBiasesSatSig, Doppler, ECDSASignature, EphemerisCommonContent, EstimatedHorizontalErrorEllipse, GNSSInputType, GnssCapb, GnssSignal, GpsTime, GpsTimeSEC, GridElement, GridElementNoStd, GriddedCorrectionHeader, IMUInputType, IntegritySSRHeader, Latency, MeasurementState, MsgAcknowledge, MsgAcqResult, MsgAcqSvProfile, MsgAESCmacSignature, MsgAgeCorrections, MsgAlmanacGPS, MsgAlmanacGlo, MsgAngularRate, MsgBasePosECEF, MsgBasePosLLH, MsgBaselineECEF, MsgBaselineHeading, MsgBaselineNED, MsgBootloaderHandshakeResp, MsgBootloaderJumpToApp, MsgCellModemStatus, MsgCertificateChain, MsgCommandOutput, MsgCommandReq, MsgCommandResp, MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgDeviceMonitor, MsgDgnssStatus, MsgDops, MsgEcdsaCertificate, MsgEcdsaSignature, MsgEphemerisBds, MsgEphemerisGPS, MsgEphemerisGal, MsgEphemerisGlo, MsgEphemerisQzss, MsgEphemerisSbas, MsgEXTEvent, MsgFileioConfigReq, MsgFileioConfigResp, MsgFileioReadDirReq, MsgFileioReadDirResp, MsgFileioReadReq, MsgFileioReadResp, MsgFileioRemove, MsgFileioWriteReq, MsgFileioWriteResp, MsgFlashDone, MsgFlashErase, MsgFlashProgram, MsgFlashReadReq, MsgFlashReadResp, MsgFrontEndGain, MsgFwd, MsgGPSTime, MsgGPSTimeGnss, MsgGloBiases, MsgGnssCapb, MsgGnssTimeOffset, MsgGroupDelay, MsgGroupMeta, MsgHeartbeat, MsgIarState, MsgImuAux, MsgImuComp, MsgImuRaw, MsgInsStatus, MsgInsUpdates, MsgIono, MsgLinuxCPUState, MsgLinuxMemState, MsgLinuxProcessFdCount, MsgLinuxProcessFdSummary, MsgLinuxProcessSocketCounts, MsgLinuxProcessSocketQueues, MsgLinuxSocketUsage, MsgLinuxSysState, MsgLog, MsgM25FlashWriteStatus, MsgMagRaw, MsgMaskSatellite, MsgMeasurementPoint, MsgMeasurementState, MsgNapDeviceDnaResp, MsgNdbEvent, MsgNetworkBandwidthUsage, MsgNetworkStateResp, MsgObs, MsgOdometry, MsgOrientEuler, MsgOrientQuat, MsgOsr, MsgPosECEF, MsgPosECEFCov, MsgPosECEFCovGnss, MsgPosECEFGnss, MsgPosLLH, MsgPosLLHAcc, MsgPosLLHCov, MsgPosLLHCovGnss, MsgPosLLHGnss, MsgPoseRelative, MsgPpsTime, MsgProfilingResourceCounter, MsgProfilingSystemInfo, MsgProfilingThreadInfo, MsgProtectionLevel, MsgReferenceFrameParam, MsgReset, MsgResetFilters, MsgSbasRaw, MsgSensorAidEvent, MsgSettingsReadByIndexReq, MsgSettingsReadByIndexResp, MsgSettingsReadReq, MsgSettingsReadResp, MsgSettingsRegister, MsgSettingsRegisterResp, MsgSettingsWrite, MsgSettingsWriteResp, MsgSolnMeta, MsgSpecan, MsgSsrCodeBiases, MsgSsrCodePhaseBiasesBounds, MsgSsrFlagHighLevel, MsgSsrFlagIonoGridPointSatLos, MsgSsrFlagIonoGridPoints, MsgSsrFlagIonoTileSatLos, MsgSsrFlagSatellites, MsgSsrFlagTropoGridPoints, MsgSsrGriddedCorrection, MsgSsrGriddedCorrectionBounds, MsgSsrOrbitClock, MsgSsrOrbitClockBounds, MsgSsrOrbitClockBoundsDegradation, MsgSsrPhaseBiases, MsgSsrSatelliteApc, MsgSsrStecCorrection, MsgSsrTileDefinition, MsgStartup, MsgStatusJournal, MsgStatusReport, MsgStmFlashLockSector, MsgStmFlashUnlockSector, MsgStmUniqueIDResp, MsgSvAzEl, MsgTelSv, MsgThreadState, MsgTrackingIq, MsgTrackingState, MsgUARTState, MsgUserData, MsgUTCLeapSecond, MsgUTCTime, MsgUTCTimeGnss, MsgVelBody, MsgVelCog, MsgVelECEF, MsgVelECEFCov, MsgVelECEFCovGnss, MsgVelECEFGnss, MsgVelNED, MsgVelNEDCov, MsgVelNEDCovGnss, MsgVelNEDGnss, MsgWheeltick, NetworkUsage, ObservationHeader, OdoInputType, OrbitClockBound, OrbitClockBoundDegradation, PackedObsContent, PackedOsrContent, Period, PhaseBiasesContent, ResourceBucket, STECHeader, STECResidual, STECResidualNoStd, STECSatElement, STECSatElementIntegrity, SatelliteAPC, SolutionInputType, StatusJournalItem, SubSystemReport, SvAzEl, SvID, TelemetrySV, TrackingChannelCorrelation, TrackingChannelState, TroposphericDelayCorrection, TroposphericDelayCorrectionNoStd, UARTChannel, UTCTime } from "./file"; // // const acqSvProfile = Convert.toAcqSvProfile(json); // const almanacCommonContent = Convert.toAlmanacCommonContent(json); @@ -88,6 +88,7 @@ // const msgHeartbeat = Convert.toMsgHeartbeat(json); // const msgIarState = Convert.toMsgIarState(json); // const msgImuAux = Convert.toMsgImuAux(json); +// const msgImuComp = Convert.toMsgImuComp(json); // const msgImuRaw = Convert.toMsgImuRaw(json); // const msgInsStatus = Convert.toMsgInsStatus(json); // const msgInsUpdates = Convert.toMsgInsUpdates(json); @@ -1282,6 +1283,24 @@ export interface MsgImuAux { [property: string]: any; } +/** + * Data from the Inertial Measurement Unit, containing accelerometer and gyroscope readings + * compensated for estimated errors and constant physical effects. The output is valid for + * inertially referenced center of navigation (IMU body frame) represented in vehicle body + * frame. + */ +export interface MsgImuComp { + acc_comp_x: number; + acc_comp_y: number; + acc_comp_z: number; + flags: number; + gyr_comp_x: number; + gyr_comp_y: number; + gyr_comp_z: number; + time: number; + [property: string]: any; +} + /** * Raw data from the Inertial Measurement Unit, containing accelerometer and gyroscope * readings. The sense of the measurements are to be aligned with the indications on the @@ -4008,6 +4027,14 @@ export class Convert { return JSON.stringify(uncast(value, r("MsgImuAux")), null, 2); } + public static toMsgImuComp(json: string): MsgImuComp { + return cast(JSON.parse(json), r("MsgImuComp")); + } + + public static msgImuCompToJson(value: MsgImuComp): string { + return JSON.stringify(uncast(value, r("MsgImuComp")), null, 2); + } + public static toMsgImuRaw(json: string): MsgImuRaw { return cast(JSON.parse(json), r("MsgImuRaw")); } @@ -5770,6 +5797,16 @@ const typeMap: any = { { json: "imu_type", js: "imu_type", typ: 0 }, { json: "temp", js: "temp", typ: 0 }, ], "any"), + "MsgImuComp": o([ + { json: "acc_comp_x", js: "acc_comp_x", typ: 0 }, + { json: "acc_comp_y", js: "acc_comp_y", typ: 0 }, + { json: "acc_comp_z", js: "acc_comp_z", typ: 0 }, + { json: "flags", js: "flags", typ: 0 }, + { json: "gyr_comp_x", js: "gyr_comp_x", typ: 0 }, + { json: "gyr_comp_y", js: "gyr_comp_y", typ: 0 }, + { json: "gyr_comp_z", js: "gyr_comp_z", typ: 0 }, + { json: "time", js: "time", typ: 0 }, + ], "any"), "MsgImuRaw": o([ { json: "acc_x", js: "acc_x", typ: 0 }, { json: "acc_y", js: "acc_y", typ: 0 }, diff --git a/scripts/ci_build_rust.bash b/scripts/ci_build_rust.bash index 6679dc2404..6fc04475da 100755 --- a/scripts/ci_build_rust.bash +++ b/scripts/ci_build_rust.bash @@ -22,6 +22,7 @@ else fi cargo build --no-default-features -p sbp +cargo build --no-default-features -p sbp --features swiftnav cargo build --no-default-features -p sbp --features serde cargo build --no-default-features -p sbp --features json cargo build --no-default-features -p sbp --features async diff --git a/spec/tests/yaml/swiftnav/sbp/imu/test_MsgImuComp.yaml b/spec/tests/yaml/swiftnav/sbp/imu/test_MsgImuComp.yaml new file mode 100644 index 0000000000..792ae8fa39 --- /dev/null +++ b/spec/tests/yaml/swiftnav/sbp/imu/test_MsgImuComp.yaml @@ -0,0 +1,27 @@ +--- +description: Unit tests for swiftnav.sbp.imu MsgImuCmp +generated_on: 2024-10-03 01:03:00.00 # manually generated +package: sbp.imu +tests: + - msg: + fields: + time: 3221225754 + flags: 206 + acc_comp_x: 96 + acc_comp_y: -33 + acc_comp_z: 4140 + gyr_comp_x: 60 + gyr_comp_y: -304 + gyr_comp_z: -18 + module: sbp.imu + name: MsgImuComp + msg_type: "0x905" + raw_json: '{"time":3221225754,"flags":206,"acc_comp_x":96,"acc_comp_y":-33,"acc_comp_z":4140,"gyr_comp_x":60,"gyr_comp_y":-304,"gyr_comp_z":-18,"preamble":85,"msg_type":2309,"sender":4660,"payload":"GgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///w==","crc":22095,"length":34}' + raw_packet: VQUJNBIiGgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///09W + sbp: + crc: "0x564f" + length: 34 + msg_type: "0x905" + payload: GgEAwAAAAADOAGAAAADf////LBAAADwAAADQ/v//7v///w== + preamble: "0x55" + sender: "0x1234" diff --git a/spec/yaml/swiftnav/sbp/imu.yaml b/spec/yaml/swiftnav/sbp/imu.yaml index ef2634232f..a814cdba98 100644 --- a/spec/yaml/swiftnav/sbp/imu.yaml +++ b/spec/yaml/swiftnav/sbp/imu.yaml @@ -115,3 +115,64 @@ definitions: - 2: +/- 8g - 3: +/- 16g - 4: +/- 6g + + - MSG_IMU_COMP: + id: 0x0905 + short_desc: Compensated IMU data + desc: > + Data from the Inertial Measurement Unit, containing accelerometer and + gyroscope readings compensated for estimated errors and constant + physical effects. The output is valid for inertially referenced center + of navigation (IMU body frame) represented in vehicle body frame. + fields: + - time: + type: u64 + units: microseconds + desc: Microseconds since reference epoch + - flags: + type: u16 + desc: Contains the applied compensation parameters and time synchronization mode + fields: + - 7-15: + desc: Reserved + - 6: + desc: Gyroscope-errors-compensated + - 5: + desc: Accelerometer-errors-compensated + - 4: + desc: Coriolis-effect-compensated + - 3: + desc: Earth-roration-rate-compensated + - 2: + desc: Earth-gravity-compensated + - 0-1: + desc: Time status + values: + - 0: Reference epoch is start of current GPS week + - 1: Reference epoch is time of system startup + - 2: Reference epoch is unknown + - 3: Reference epoch is last PPS + - acc_comp_x: + type: s32 + units: 1e-6 m/s^2 + desc: Compensated acceleration X axis + - acc_comp_y: + type: s32 + units: 1e-6 m/s^2 + desc: Compensated acceleration Y axis + - acc_comp_z: + type: s32 + units: 1e-6 m/s^2 + desc: Compensated acceleration Z axis + - gyr_comp_x: + type: s32 + units: 1e-6 deg/s + desc: Compensated angular rate X axis + - gyr_comp_y: + type: s32 + units: 1e-6 deg/s + desc: Compensated angular rate Y axis + - gyr_comp_z: + type: s32 + units: 1e-6 deg/s + desc: Compensated angular rate Z axis diff --git a/spec/yaml/swiftnav/sbp/navigation.yaml b/spec/yaml/swiftnav/sbp/navigation.yaml index b383b288db..c44ff2a193 100644 --- a/spec/yaml/swiftnav/sbp/navigation.yaml +++ b/spec/yaml/swiftnav/sbp/navigation.yaml @@ -743,6 +743,7 @@ definitions: - 1: 39.35% - 2: 68.27% - 3: 95.45% + - 4: 99.73% - n_sats: type: u8 desc: Number of satellites used in solution.