diff --git a/c/include/libsbp/cpp/message_traits.h b/c/include/libsbp/cpp/message_traits.h index 2d7bb0adea..4a22e72a6c 100644 --- a/c/include/libsbp/cpp/message_traits.h +++ b/c/include/libsbp/cpp/message_traits.h @@ -1097,6 +1097,12 @@ struct MessageTraits { }; +template<> +struct MessageTraits { + static constexpr u16 id = 65290; +}; + + template<> struct MessageTraits { static constexpr u16 id = 65535; diff --git a/c/include/libsbp/system.h b/c/include/libsbp/system.h index 7bd77b66f2..8b72211262 100644 --- a/c/include/libsbp/system.h +++ b/c/include/libsbp/system.h @@ -146,6 +146,23 @@ typedef struct SBP_ATTR_PACKED { } msg_gnss_time_offset_t; +/** Solution Group Metadata + * + * This leading message lists the time metadata of the Solution Group. + * It also lists the atomic contents (i.e. types of messages included) of the Solution Group. + */ +#define SBP_MSG_GROUP_META 0xFF0A +typedef struct SBP_ATTR_PACKED { + u16 wn; /**< GPS Week Number or zero if Reference epoch is not GPS [weeks] */ + u32 tom; /**< Time of Measurement in Milliseconds since reference epoch [ms] */ + s32 ns_residual; /**< Nanosecond residual of millisecond-rounded TOM (ranges +from -500000 to 500000) + [ns] */ + u8 flags; /**< Status flags (reserved) */ + u16 group_msgs[0]; /**< An inorder list of message types included in the Solution Group */ +} msg_group_meta_t; + + /** \} */ SBP_PACK_END diff --git a/c/test/auto_check_sbp_acquisition_39.c b/c/test/auto_check_sbp_acquisition_39.c index 987d3214e0..3908d0cb34 100644 --- a/c/test/auto_check_sbp_acquisition_39.c +++ b/c/test/auto_check_sbp_acquisition_39.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_bootload_40.c b/c/test/auto_check_sbp_bootload_40.c index eb66c17bf4..239ee805be 100644 --- a/c/test/auto_check_sbp_bootload_40.c +++ b/c/test/auto_check_sbp_bootload_40.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_ext_events_41.c b/c/test/auto_check_sbp_ext_events_41.c index afa2e0e88a..c3077f2635 100644 --- a/c/test/auto_check_sbp_ext_events_41.c +++ b/c/test/auto_check_sbp_ext_events_41.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_logging_42.c b/c/test/auto_check_sbp_logging_42.c index 18e19050df..edbc56c55b 100644 --- a/c/test/auto_check_sbp_logging_42.c +++ b/c/test/auto_check_sbp_logging_42.c @@ -10,7 +10,7 @@ * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. */ -// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/test_msgFwd.yaml by generate.py. Do not modify by hand! +// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/test_logging.yaml by generate.py. Do not modify by hand! #include #include // for debugging @@ -97,12 +97,12 @@ START_TEST( test_auto_check_sbp_logging_42 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x402, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x10, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,2,4,66,0,18,0,0,86,81,68,47,81,103,65,69,65,65,65,65,65,69,97,103,125,95, }; + u8 test_data[] = {85,16,0,34,34,43,73,78,70,79,58,32,97,99,113,58,32,80,82,78,32,49,53,32,102,111,117,110,100,32,64,32,45,50,52,57,55,32,72,122,44,32,50,48,32,83,78,82,10,116,103, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x402, 66, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x10, 8738, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -111,7 +111,7 @@ START_TEST( test_auto_check_sbp_logging_42 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 66, + fail_unless(last_sender_id == 8738, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -122,12 +122,215 @@ START_TEST( test_auto_check_sbp_logging_42 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_fwd_t* msg = ( msg_fwd_t *)((void *)last_msg + 6); + msg_print_dep_t* msg = ( msg_print_dep_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(strstr(msg->fwd_payload, ((char []){(char)86,(char)81,(char)68,(char)47,(char)81,(char)103,(char)65,(char)69,(char)65,(char)65,(char)65,(char)65,(char)65,(char)69,(char)97,(char)103,0})) != NULL, "incorrect value for msg->fwd_payload, expected string '%s', is '%s'", ((char []){(char)86,(char)81,(char)68,(char)47,(char)81,(char)103,(char)65,(char)69,(char)65,(char)65,(char)65,(char)65,(char)65,(char)69,(char)97,(char)103,0}), msg->fwd_payload); - fail_unless(msg->protocol == 0, "incorrect value for protocol, expected 0, is %d", msg->protocol); - fail_unless(msg->source == 0, "incorrect value for source, expected 0, is %d", msg->source); + fail_unless(strstr(msg->text, ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)97,(char)99,(char)113,(char)58,(char)32,(char)80,(char)82,(char)78,(char)32,(char)49,(char)53,(char)32,(char)102,(char)111,(char)117,(char)110,(char)100,(char)32,(char)64,(char)32,(char)45,(char)50,(char)52,(char)57,(char)55,(char)32,(char)72,(char)122,(char)44,(char)32,(char)50,(char)48,(char)32,(char)83,(char)78,(char)82,(char)10,0})) != NULL, "incorrect value for msg->text, expected string '%s', is '%s'", ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)97,(char)99,(char)113,(char)58,(char)32,(char)80,(char)82,(char)78,(char)32,(char)49,(char)53,(char)32,(char)102,(char)111,(char)117,(char)110,(char)100,(char)32,(char)64,(char)32,(char)45,(char)50,(char)52,(char)57,(char)55,(char)32,(char)72,(char)122,(char)44,(char)32,(char)50,(char)48,(char)32,(char)83,(char)78,(char)82,(char)10,0}), msg->text); + } + // 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_register_callback(&sbp_state, 0x10, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 test_data[] = {85,16,0,34,34,42,73,78,70,79,58,32,97,99,113,58,32,80,82,78,32,51,49,32,102,111,117,110,100,32,64,32,52,50,52,53,32,72,122,44,32,50,49,32,83,78,82,10,140,43, }; + + dummy_reset(); + sbp_send_message(&sbp_state, 0x10, 8738, sizeof(test_data), test_data, &dummy_write); + + while (dummy_rd < dummy_wr) { + fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + fail_unless(n_callbacks_logged == 1, + "one callback should have been logged"); + fail_unless(last_sender_id == 8738, + "sender_id decoded incorrectly"); + fail_unless(last_len == sizeof(test_data), + "len decoded incorrectly"); + fail_unless(memcmp(last_msg, test_data, sizeof(test_data)) + == 0, + "test data decoded incorrectly"); + fail_unless(last_context == &DUMMY_MEMORY_FOR_CALLBACKS, + "context pointer incorrectly passed"); + + // Cast to expected message type - the +6 byte offset is where the payload starts + msg_print_dep_t* msg = ( msg_print_dep_t *)((void *)last_msg + 6); + // Run tests against fields + fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); + fail_unless(strstr(msg->text, ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)97,(char)99,(char)113,(char)58,(char)32,(char)80,(char)82,(char)78,(char)32,(char)51,(char)49,(char)32,(char)102,(char)111,(char)117,(char)110,(char)100,(char)32,(char)64,(char)32,(char)52,(char)50,(char)52,(char)53,(char)32,(char)72,(char)122,(char)44,(char)32,(char)50,(char)49,(char)32,(char)83,(char)78,(char)82,(char)10,0})) != NULL, "incorrect value for msg->text, expected string '%s', is '%s'", ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)97,(char)99,(char)113,(char)58,(char)32,(char)80,(char)82,(char)78,(char)32,(char)51,(char)49,(char)32,(char)102,(char)111,(char)117,(char)110,(char)100,(char)32,(char)64,(char)32,(char)52,(char)50,(char)52,(char)53,(char)32,(char)72,(char)122,(char)44,(char)32,(char)50,(char)49,(char)32,(char)83,(char)78,(char)82,(char)10,0}), msg->text); + } + // 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_register_callback(&sbp_state, 0x10, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 test_data[] = {85,16,0,34,34,35,73,78,70,79,58,32,68,105,115,97,98,108,105,110,103,32,99,104,97,110,110,101,108,32,48,32,40,80,82,78,32,49,49,41,10,23,143, }; + + dummy_reset(); + sbp_send_message(&sbp_state, 0x10, 8738, sizeof(test_data), test_data, &dummy_write); + + while (dummy_rd < dummy_wr) { + fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + fail_unless(n_callbacks_logged == 1, + "one callback should have been logged"); + fail_unless(last_sender_id == 8738, + "sender_id decoded incorrectly"); + fail_unless(last_len == sizeof(test_data), + "len decoded incorrectly"); + fail_unless(memcmp(last_msg, test_data, sizeof(test_data)) + == 0, + "test data decoded incorrectly"); + fail_unless(last_context == &DUMMY_MEMORY_FOR_CALLBACKS, + "context pointer incorrectly passed"); + + // Cast to expected message type - the +6 byte offset is where the payload starts + msg_print_dep_t* msg = ( msg_print_dep_t *)((void *)last_msg + 6); + // Run tests against fields + fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); + fail_unless(strstr(msg->text, ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)68,(char)105,(char)115,(char)97,(char)98,(char)108,(char)105,(char)110,(char)103,(char)32,(char)99,(char)104,(char)97,(char)110,(char)110,(char)101,(char)108,(char)32,(char)48,(char)32,(char)40,(char)80,(char)82,(char)78,(char)32,(char)49,(char)49,(char)41,(char)10,0})) != NULL, "incorrect value for msg->text, expected string '%s', is '%s'", ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)68,(char)105,(char)115,(char)97,(char)98,(char)108,(char)105,(char)110,(char)103,(char)32,(char)99,(char)104,(char)97,(char)110,(char)110,(char)101,(char)108,(char)32,(char)48,(char)32,(char)40,(char)80,(char)82,(char)78,(char)32,(char)49,(char)49,(char)41,(char)10,0}), msg->text); + } + // 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_register_callback(&sbp_state, 0x10, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 test_data[] = {85,16,0,34,34,41,73,78,70,79,58,32,97,99,113,58,32,80,82,78,32,50,32,102,111,117,110,100,32,64,32,51,57,57,54,32,72,122,44,32,50,48,32,83,78,82,10,239,48, }; + + dummy_reset(); + sbp_send_message(&sbp_state, 0x10, 8738, sizeof(test_data), test_data, &dummy_write); + + while (dummy_rd < dummy_wr) { + fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + fail_unless(n_callbacks_logged == 1, + "one callback should have been logged"); + fail_unless(last_sender_id == 8738, + "sender_id decoded incorrectly"); + fail_unless(last_len == sizeof(test_data), + "len decoded incorrectly"); + fail_unless(memcmp(last_msg, test_data, sizeof(test_data)) + == 0, + "test data decoded incorrectly"); + fail_unless(last_context == &DUMMY_MEMORY_FOR_CALLBACKS, + "context pointer incorrectly passed"); + + // Cast to expected message type - the +6 byte offset is where the payload starts + msg_print_dep_t* msg = ( msg_print_dep_t *)((void *)last_msg + 6); + // Run tests against fields + fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); + fail_unless(strstr(msg->text, ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)97,(char)99,(char)113,(char)58,(char)32,(char)80,(char)82,(char)78,(char)32,(char)50,(char)32,(char)102,(char)111,(char)117,(char)110,(char)100,(char)32,(char)64,(char)32,(char)51,(char)57,(char)57,(char)54,(char)32,(char)72,(char)122,(char)44,(char)32,(char)50,(char)48,(char)32,(char)83,(char)78,(char)82,(char)10,0})) != NULL, "incorrect value for msg->text, expected string '%s', is '%s'", ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)97,(char)99,(char)113,(char)58,(char)32,(char)80,(char)82,(char)78,(char)32,(char)50,(char)32,(char)102,(char)111,(char)117,(char)110,(char)100,(char)32,(char)64,(char)32,(char)51,(char)57,(char)57,(char)54,(char)32,(char)72,(char)122,(char)44,(char)32,(char)50,(char)48,(char)32,(char)83,(char)78,(char)82,(char)10,0}), msg->text); + } + // 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_register_callback(&sbp_state, 0x10, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 test_data[] = {85,16,0,34,34,42,73,78,70,79,58,32,97,99,113,58,32,80,82,78,32,52,32,102,111,117,110,100,32,64,32,45,55,52,57,50,32,72,122,44,32,50,48,32,83,78,82,10,47,248, }; + + dummy_reset(); + sbp_send_message(&sbp_state, 0x10, 8738, sizeof(test_data), test_data, &dummy_write); + + while (dummy_rd < dummy_wr) { + fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + fail_unless(n_callbacks_logged == 1, + "one callback should have been logged"); + fail_unless(last_sender_id == 8738, + "sender_id decoded incorrectly"); + fail_unless(last_len == sizeof(test_data), + "len decoded incorrectly"); + fail_unless(memcmp(last_msg, test_data, sizeof(test_data)) + == 0, + "test data decoded incorrectly"); + fail_unless(last_context == &DUMMY_MEMORY_FOR_CALLBACKS, + "context pointer incorrectly passed"); + + // Cast to expected message type - the +6 byte offset is where the payload starts + msg_print_dep_t* msg = ( msg_print_dep_t *)((void *)last_msg + 6); + // Run tests against fields + fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); + fail_unless(strstr(msg->text, ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)97,(char)99,(char)113,(char)58,(char)32,(char)80,(char)82,(char)78,(char)32,(char)52,(char)32,(char)102,(char)111,(char)117,(char)110,(char)100,(char)32,(char)64,(char)32,(char)45,(char)55,(char)52,(char)57,(char)50,(char)32,(char)72,(char)122,(char)44,(char)32,(char)50,(char)48,(char)32,(char)83,(char)78,(char)82,(char)10,0})) != NULL, "incorrect value for msg->text, expected string '%s', is '%s'", ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)97,(char)99,(char)113,(char)58,(char)32,(char)80,(char)82,(char)78,(char)32,(char)52,(char)32,(char)102,(char)111,(char)117,(char)110,(char)100,(char)32,(char)64,(char)32,(char)45,(char)55,(char)52,(char)57,(char)50,(char)32,(char)72,(char)122,(char)44,(char)32,(char)50,(char)48,(char)32,(char)83,(char)78,(char)82,(char)10,0}), msg->text); + } + // 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_register_callback(&sbp_state, 0x10, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 test_data[] = {85,16,0,34,34,35,73,78,70,79,58,32,68,105,115,97,98,108,105,110,103,32,99,104,97,110,110,101,108,32,49,32,40,80,82,78,32,49,53,41,10,158,139, }; + + dummy_reset(); + sbp_send_message(&sbp_state, 0x10, 8738, sizeof(test_data), test_data, &dummy_write); + + while (dummy_rd < dummy_wr) { + fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + fail_unless(n_callbacks_logged == 1, + "one callback should have been logged"); + fail_unless(last_sender_id == 8738, + "sender_id decoded incorrectly"); + fail_unless(last_len == sizeof(test_data), + "len decoded incorrectly"); + fail_unless(memcmp(last_msg, test_data, sizeof(test_data)) + == 0, + "test data decoded incorrectly"); + fail_unless(last_context == &DUMMY_MEMORY_FOR_CALLBACKS, + "context pointer incorrectly passed"); + + // Cast to expected message type - the +6 byte offset is where the payload starts + msg_print_dep_t* msg = ( msg_print_dep_t *)((void *)last_msg + 6); + // Run tests against fields + fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); + fail_unless(strstr(msg->text, ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)68,(char)105,(char)115,(char)97,(char)98,(char)108,(char)105,(char)110,(char)103,(char)32,(char)99,(char)104,(char)97,(char)110,(char)110,(char)101,(char)108,(char)32,(char)49,(char)32,(char)40,(char)80,(char)82,(char)78,(char)32,(char)49,(char)53,(char)41,(char)10,0})) != NULL, "incorrect value for msg->text, expected string '%s', is '%s'", ((char []){(char)73,(char)78,(char)70,(char)79,(char)58,(char)32,(char)68,(char)105,(char)115,(char)97,(char)98,(char)108,(char)105,(char)110,(char)103,(char)32,(char)99,(char)104,(char)97,(char)110,(char)110,(char)101,(char)108,(char)32,(char)49,(char)32,(char)40,(char)80,(char)82,(char)78,(char)32,(char)49,(char)53,(char)41,(char)10,0}), msg->text); } } END_TEST diff --git a/c/test/auto_check_sbp_logging_43.c b/c/test/auto_check_sbp_logging_43.c index 566a08417d..38dd646445 100644 --- a/c/test/auto_check_sbp_logging_43.c +++ b/c/test/auto_check_sbp_logging_43.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_navigation_44.c b/c/test/auto_check_sbp_navigation_44.c index 777f3d34ab..f3ccf8fedc 100644 --- a/c/test/auto_check_sbp_navigation_44.c +++ b/c/test/auto_check_sbp_navigation_44.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_observation_45.c b/c/test/auto_check_sbp_observation_45.c index 3019e7c571..95f4e4e320 100644 --- a/c/test/auto_check_sbp_observation_45.c +++ b/c/test/auto_check_sbp_observation_45.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_piksi_46.c b/c/test/auto_check_sbp_piksi_46.c index 329be3ef92..70ace74ed7 100644 --- a/c/test/auto_check_sbp_piksi_46.c +++ b/c/test/auto_check_sbp_piksi_46.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_system_36.c b/c/test/auto_check_sbp_system_36.c index 5006320e9a..61e047d176 100644 --- a/c/test/auto_check_sbp_system_36.c +++ b/c/test/auto_check_sbp_system_36.c @@ -10,7 +10,7 @@ * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. */ -// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/system/test_MsgHeartbeat.yaml by generate.py. Do not modify by hand! +// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/system/test_MsgGroupMeta.yaml by generate.py. Do not modify by hand! #include #include // for debugging @@ -97,12 +97,12 @@ START_TEST( test_auto_check_sbp_system_36 ) logging_reset(); - sbp_register_callback(&sbp_state, 0xffff, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0xFF0A, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,255,255,246,215,4,0,50,0,0,249,216, }; + u8 test_data[] = {85,10,255,238,238,15,192,7,64,226,1,0,0,0,0,0,3,10,2,2,255,156,76, }; dummy_reset(); - sbp_send_message(&sbp_state, 0xffff, 55286, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0xFF0A, 61166, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -111,7 +111,7 @@ START_TEST( test_auto_check_sbp_system_36 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 55286, + fail_unless(last_sender_id == 61166, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -122,10 +122,15 @@ START_TEST( test_auto_check_sbp_system_36 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_heartbeat_t* msg = ( msg_heartbeat_t *)((void *)last_msg + 6); + msg_group_meta_t* msg = ( msg_group_meta_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(msg->flags == 12800, "incorrect value for flags, expected 12800, is %d", msg->flags); + fail_unless(msg->flags == 3, "incorrect value for flags, expected 3, is %d", msg->flags); + fail_unless(msg->group_msgs[0] == 522, "incorrect value for group_msgs[0], expected 522, is %d", msg->group_msgs[0]); + fail_unless(msg->group_msgs[1] == 65282, "incorrect value for group_msgs[1], expected 65282, is %d", msg->group_msgs[1]); + fail_unless(msg->ns_residual == 0, "incorrect value for ns_residual, expected 0, is %d", msg->ns_residual); + fail_unless(msg->tom == 123456, "incorrect value for tom, expected 123456, is %d", msg->tom); + fail_unless(msg->wn == 1984, "incorrect value for wn, expected 1984, is %d", msg->wn); } } END_TEST diff --git a/c/test/auto_check_sbp_system_37.c b/c/test/auto_check_sbp_system_37.c index 979998013a..599957abf1 100644 --- a/c/test/auto_check_sbp_system_37.c +++ b/c/test/auto_check_sbp_system_37.c @@ -10,7 +10,7 @@ * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. */ -// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/system/test_MsgStartup.yaml by generate.py. Do not modify by hand! +// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/system/test_MsgHeartbeat.yaml by generate.py. Do not modify by hand! #include #include // for debugging @@ -97,12 +97,12 @@ START_TEST( test_auto_check_sbp_system_37 ) logging_reset(); - sbp_register_callback(&sbp_state, 0xff00, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0xffff, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,0,255,66,0,4,0,0,0,0,70,160, }; + u8 test_data[] = {85,255,255,246,215,4,0,50,0,0,249,216, }; dummy_reset(); - sbp_send_message(&sbp_state, 0xff00, 66, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0xffff, 55286, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -111,7 +111,7 @@ START_TEST( test_auto_check_sbp_system_37 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 66, + fail_unless(last_sender_id == 55286, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -122,12 +122,10 @@ START_TEST( test_auto_check_sbp_system_37 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_startup_t* msg = ( msg_startup_t *)((void *)last_msg + 6); + msg_heartbeat_t* msg = ( msg_heartbeat_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(msg->cause == 0, "incorrect value for cause, expected 0, is %d", msg->cause); - fail_unless(msg->reserved == 0, "incorrect value for reserved, expected 0, is %d", msg->reserved); - fail_unless(msg->startup_type == 0, "incorrect value for startup_type, expected 0, is %d", msg->startup_type); + fail_unless(msg->flags == 12800, "incorrect value for flags, expected 12800, is %d", msg->flags); } } END_TEST diff --git a/c/test/auto_check_sbp_system_38.c b/c/test/auto_check_sbp_system_38.c index c015551500..f51b916129 100644 --- a/c/test/auto_check_sbp_system_38.c +++ b/c/test/auto_check_sbp_system_38.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_system_47.c b/c/test/auto_check_sbp_system_47.c index c857002a1d..8500435b6a 100644 --- a/c/test/auto_check_sbp_system_47.c +++ b/c/test/auto_check_sbp_system_47.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_tracking_48.c b/c/test/auto_check_sbp_tracking_48.c index 58a1752e88..f69852b6dc 100644 --- a/c/test/auto_check_sbp_tracking_48.c +++ b/c/test/auto_check_sbp_tracking_48.c @@ -10,7 +10,7 @@ * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. */ -// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/tracking/test_MsgTrackingState.yaml by generate.py. Do not modify by hand! +// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/test_tracking.yaml by generate.py. Do not modify by hand! #include #include // for debugging @@ -97,12 +97,12 @@ START_TEST( test_auto_check_sbp_tracking_48 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x16, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,197,253,28,66,1,203,0,0,0,231,99,16,66,1,208,0,0,0,212,129,22,66,1,212,0,0,0,58,21,28,66,1,217,0,0,0,178,33,40,66,1,218,0,0,0,235,189,21,66,1,220,0,0,0,29,177,25,66,1,222,0,0,0,43,169,27,66,1,225,0,0,0,137,125,42,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,222,97, }; + u8 test_data[] = {85,22,0,195,4,66,1,0,204,177,51,65,1,2,198,4,39,65,1,3,219,182,27,65,1,7,132,120,101,65,1,10,91,91,251,64,1,13,42,37,163,64,1,22,130,184,215,64,1,30,115,53,75,65,1,31,16,74,126,65,1,25,132,196,135,64,1,6,100,59,223,64,17,225, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x16, 1219, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -111,7 +111,7 @@ START_TEST( test_auto_check_sbp_tracking_48 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 55286, + fail_unless(last_sender_id == 1219, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -122,64 +122,42 @@ START_TEST( test_auto_check_sbp_tracking_48 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); + msg_tracking_state_dep_a_t* msg = ( msg_tracking_state_dep_a_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless((msg->states[0].cn0*100 - 39.2478218079*100) < 0.05, "incorrect value for states[0].cn0, expected 39.2478218079, is %f", msg->states[0].cn0); - fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); - fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); - fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless((msg->states[0].cn0*100 - 11.2309074402*100) < 0.05, "incorrect value for states[0].cn0, expected 11.2309074402, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].prn == 0, "incorrect value for states[0].prn, expected 0, is %d", msg->states[0].prn); fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); - fail_unless((msg->states[1].cn0*100 - 36.0975608826*100) < 0.05, "incorrect value for states[1].cn0, expected 36.0975608826, is %f", msg->states[1].cn0); - fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); - fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); - fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless((msg->states[1].cn0*100 - 10.43866539*100) < 0.05, "incorrect value for states[1].cn0, expected 10.43866539, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].prn == 2, "incorrect value for states[1].prn, expected 2, is %d", msg->states[1].prn); fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); - fail_unless((msg->states[2].cn0*100 - 37.6267852783*100) < 0.05, "incorrect value for states[2].cn0, expected 37.6267852783, is %f", msg->states[2].cn0); - fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); - fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); - fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless((msg->states[2].cn0*100 - 9.73214244843*100) < 0.05, "incorrect value for states[2].cn0, expected 9.73214244843, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].prn == 3, "incorrect value for states[2].prn, expected 3, is %d", msg->states[2].prn); fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); - fail_unless((msg->states[3].cn0*100 - 39.0207290649*100) < 0.05, "incorrect value for states[3].cn0, expected 39.0207290649, is %f", msg->states[3].cn0); - fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); - fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); - fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); + fail_unless((msg->states[3].cn0*100 - 14.34192276*100) < 0.05, "incorrect value for states[3].cn0, expected 14.34192276, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].prn == 7, "incorrect value for states[3].prn, expected 7, is %d", msg->states[3].prn); fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); - fail_unless((msg->states[4].cn0*100 - 42.0329055786*100) < 0.05, "incorrect value for states[4].cn0, expected 42.0329055786, is %f", msg->states[4].cn0); - fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); - fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); - fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); + fail_unless((msg->states[4].cn0*100 - 7.85490179062*100) < 0.05, "incorrect value for states[4].cn0, expected 7.85490179062, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].prn == 10, "incorrect value for states[4].prn, expected 10, is %d", msg->states[4].prn); fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); - fail_unless((msg->states[5].cn0*100 - 37.4354667664*100) < 0.05, "incorrect value for states[5].cn0, expected 37.4354667664, is %f", msg->states[5].cn0); - fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); - fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); - fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); + fail_unless((msg->states[5].cn0*100 - 5.09828662872*100) < 0.05, "incorrect value for states[5].cn0, expected 5.09828662872, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].prn == 13, "incorrect value for states[5].prn, expected 13, is %d", msg->states[5].prn); fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); - fail_unless((msg->states[6].cn0*100 - 38.4229621887*100) < 0.05, "incorrect value for states[6].cn0, expected 38.4229621887, is %f", msg->states[6].cn0); - fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); - fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); - fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); + fail_unless((msg->states[6].cn0*100 - 6.74127292633*100) < 0.05, "incorrect value for states[6].cn0, expected 6.74127292633, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].prn == 22, "incorrect value for states[6].prn, expected 22, is %d", msg->states[6].prn); fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); - fail_unless((msg->states[7].cn0*100 - 38.9152030945*100) < 0.05, "incorrect value for states[7].cn0, expected 38.9152030945, is %f", msg->states[7].cn0); - fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); - fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); - fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); + fail_unless((msg->states[7].cn0*100 - 12.7005491257*100) < 0.05, "incorrect value for states[7].cn0, expected 12.7005491257, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].prn == 30, "incorrect value for states[7].prn, expected 30, is %d", msg->states[7].prn); fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); - fail_unless((msg->states[8].cn0*100 - 42.622592926*100) < 0.05, "incorrect value for states[8].cn0, expected 42.622592926, is %f", msg->states[8].cn0); - fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); - fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); - fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); + fail_unless((msg->states[8].cn0*100 - 15.893081665*100) < 0.05, "incorrect value for states[8].cn0, expected 15.893081665, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].prn == 31, "incorrect value for states[8].prn, expected 31, is %d", msg->states[8].prn); fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); - fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); - fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); - fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); - fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); - fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); - fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); - fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); - fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); - fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); - fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); + fail_unless((msg->states[9].cn0*100 - 4.24273872375*100) < 0.05, "incorrect value for states[9].cn0, expected 4.24273872375, is %f", msg->states[9].cn0); + fail_unless(msg->states[9].prn == 25, "incorrect value for states[9].prn, expected 25, is %d", msg->states[9].prn); + fail_unless(msg->states[9].state == 1, "incorrect value for states[9].state, expected 1, is %d", msg->states[9].state); + fail_unless((msg->states[10].cn0*100 - 6.97599983215*100) < 0.05, "incorrect value for states[10].cn0, expected 6.97599983215, is %f", msg->states[10].cn0); + fail_unless(msg->states[10].prn == 6, "incorrect value for states[10].prn, expected 6, is %d", msg->states[10].prn); + fail_unless(msg->states[10].state == 1, "incorrect value for states[10].state, expected 1, is %d", msg->states[10].state); } // Test successful parsing of a message { @@ -192,12 +170,12 @@ START_TEST( test_auto_check_sbp_tracking_48 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x16, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,250,249,27,66,1,203,0,0,0,40,143,11,66,1,208,0,0,0,190,200,21,66,1,212,0,0,0,251,233,26,66,1,217,0,0,0,209,238,39,66,1,218,0,0,0,162,219,21,66,1,220,0,0,0,162,197,25,66,1,222,0,0,0,14,35,28,66,1,225,0,0,0,9,153,43,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,20,31, }; + u8 test_data[] = {85,22,0,195,4,66,1,0,216,57,48,65,1,2,145,41,46,65,1,3,4,26,34,65,1,7,177,67,109,65,1,10,61,80,249,64,1,13,250,199,155,64,1,22,55,19,215,64,1,30,138,138,79,65,1,31,214,179,119,65,1,25,53,138,120,64,1,6,183,247,129,64,168,173, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x16, 1219, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -206,7 +184,7 @@ START_TEST( test_auto_check_sbp_tracking_48 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 55286, + fail_unless(last_sender_id == 1219, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -217,64 +195,42 @@ START_TEST( test_auto_check_sbp_tracking_48 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); + msg_tracking_state_dep_a_t* msg = ( msg_tracking_state_dep_a_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless((msg->states[0].cn0*100 - 38.9941177368*100) < 0.05, "incorrect value for states[0].cn0, expected 38.9941177368, is %f", msg->states[0].cn0); - fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); - fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); - fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless((msg->states[0].cn0*100 - 11.0141220093*100) < 0.05, "incorrect value for states[0].cn0, expected 11.0141220093, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].prn == 0, "incorrect value for states[0].prn, expected 0, is %d", msg->states[0].prn); fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); - fail_unless((msg->states[1].cn0*100 - 34.8898010254*100) < 0.05, "incorrect value for states[1].cn0, expected 34.8898010254, is %f", msg->states[1].cn0); - fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); - fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); - fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless((msg->states[1].cn0*100 - 10.8851480484*100) < 0.05, "incorrect value for states[1].cn0, expected 10.8851480484, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].prn == 2, "incorrect value for states[1].prn, expected 2, is %d", msg->states[1].prn); fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); - fail_unless((msg->states[2].cn0*100 - 37.4460372925*100) < 0.05, "incorrect value for states[2].cn0, expected 37.4460372925, is %f", msg->states[2].cn0); - fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); - fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); - fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless((msg->states[2].cn0*100 - 10.1313514709*100) < 0.05, "incorrect value for states[2].cn0, expected 10.1313514709, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].prn == 3, "incorrect value for states[2].prn, expected 3, is %d", msg->states[2].prn); fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); - fail_unless((msg->states[3].cn0*100 - 38.7284965515*100) < 0.05, "incorrect value for states[3].cn0, expected 38.7284965515, is %f", msg->states[3].cn0); - fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); - fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); - fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); + fail_unless((msg->states[3].cn0*100 - 14.8290262222*100) < 0.05, "incorrect value for states[3].cn0, expected 14.8290262222, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].prn == 7, "incorrect value for states[3].prn, expected 7, is %d", msg->states[3].prn); fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); - fail_unless((msg->states[4].cn0*100 - 41.9832191467*100) < 0.05, "incorrect value for states[4].cn0, expected 41.9832191467, is %f", msg->states[4].cn0); - fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); - fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); - fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); + fail_unless((msg->states[4].cn0*100 - 7.79104471207*100) < 0.05, "incorrect value for states[4].cn0, expected 7.79104471207, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].prn == 10, "incorrect value for states[4].prn, expected 10, is %d", msg->states[4].prn); fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); - fail_unless((msg->states[5].cn0*100 - 37.4644851685*100) < 0.05, "incorrect value for states[5].cn0, expected 37.4644851685, is %f", msg->states[5].cn0); - fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); - fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); - fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); + fail_unless((msg->states[5].cn0*100 - 4.86816120148*100) < 0.05, "incorrect value for states[5].cn0, expected 4.86816120148, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].prn == 13, "incorrect value for states[5].prn, expected 13, is %d", msg->states[5].prn); fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); - fail_unless((msg->states[6].cn0*100 - 38.4430007935*100) < 0.05, "incorrect value for states[6].cn0, expected 38.4430007935, is %f", msg->states[6].cn0); - fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); - fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); - fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); + fail_unless((msg->states[6].cn0*100 - 6.72109556198*100) < 0.05, "incorrect value for states[6].cn0, expected 6.72109556198, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].prn == 22, "incorrect value for states[6].prn, expected 22, is %d", msg->states[6].prn); fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); - fail_unless((msg->states[7].cn0*100 - 39.0342330933*100) < 0.05, "incorrect value for states[7].cn0, expected 39.0342330933, is %f", msg->states[7].cn0); - fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); - fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); - fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); + fail_unless((msg->states[7].cn0*100 - 12.9713230133*100) < 0.05, "incorrect value for states[7].cn0, expected 12.9713230133, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].prn == 30, "incorrect value for states[7].prn, expected 30, is %d", msg->states[7].prn); fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); - fail_unless((msg->states[8].cn0*100 - 42.8994483948*100) < 0.05, "incorrect value for states[8].cn0, expected 42.8994483948, is %f", msg->states[8].cn0); - fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); - fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); - fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); + fail_unless((msg->states[8].cn0*100 - 15.4814052582*100) < 0.05, "incorrect value for states[8].cn0, expected 15.4814052582, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].prn == 31, "incorrect value for states[8].prn, expected 31, is %d", msg->states[8].prn); fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); - fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); - fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); - fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); - fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); - fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); - fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); - fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); - fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); - fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); - fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); + fail_unless((msg->states[9].cn0*100 - 3.88343548775*100) < 0.05, "incorrect value for states[9].cn0, expected 3.88343548775, is %f", msg->states[9].cn0); + fail_unless(msg->states[9].prn == 25, "incorrect value for states[9].prn, expected 25, is %d", msg->states[9].prn); + fail_unless(msg->states[9].state == 1, "incorrect value for states[9].state, expected 1, is %d", msg->states[9].state); + fail_unless((msg->states[10].cn0*100 - 4.06148862839*100) < 0.05, "incorrect value for states[10].cn0, expected 4.06148862839, is %f", msg->states[10].cn0); + fail_unless(msg->states[10].prn == 6, "incorrect value for states[10].prn, expected 6, is %d", msg->states[10].prn); + fail_unless(msg->states[10].state == 1, "incorrect value for states[10].state, expected 1, is %d", msg->states[10].state); } // Test successful parsing of a message { @@ -287,12 +243,12 @@ START_TEST( test_auto_check_sbp_tracking_48 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x16, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,123,209,27,66,1,203,0,0,0,214,64,15,66,1,208,0,0,0,56,55,22,66,1,212,0,0,0,91,142,27,66,1,217,0,0,0,253,154,41,66,1,218,0,0,0,128,142,22,66,1,220,0,0,0,17,174,23,66,1,222,0,0,0,155,2,29,66,1,225,0,0,0,162,100,42,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,233,71, }; + u8 test_data[] = {85,22,0,195,4,66,1,0,141,76,60,65,1,2,69,139,46,65,1,3,146,27,30,65,1,7,235,56,97,65,1,10,141,213,243,64,1,13,250,170,166,64,1,22,17,101,201,64,1,30,172,183,83,65,1,31,238,193,120,65,1,25,220,48,132,64,1,6,49,214,54,64,110,179, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x16, 1219, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -301,7 +257,7 @@ START_TEST( test_auto_check_sbp_tracking_48 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 55286, + fail_unless(last_sender_id == 1219, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -312,63 +268,114 @@ START_TEST( test_auto_check_sbp_tracking_48 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); + msg_tracking_state_dep_a_t* msg = ( msg_tracking_state_dep_a_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless((msg->states[0].cn0*100 - 38.9545707703*100) < 0.05, "incorrect value for states[0].cn0, expected 38.9545707703, is %f", msg->states[0].cn0); - fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); - fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); - fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless((msg->states[0].cn0*100 - 11.7686891556*100) < 0.05, "incorrect value for states[0].cn0, expected 11.7686891556, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].prn == 0, "incorrect value for states[0].prn, expected 0, is %d", msg->states[0].prn); fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); - fail_unless((msg->states[1].cn0*100 - 35.8133163452*100) < 0.05, "incorrect value for states[1].cn0, expected 35.8133163452, is %f", msg->states[1].cn0); - fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); - fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); - fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless((msg->states[1].cn0*100 - 10.9090013504*100) < 0.05, "incorrect value for states[1].cn0, expected 10.9090013504, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].prn == 2, "incorrect value for states[1].prn, expected 2, is %d", msg->states[1].prn); fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); - fail_unless((msg->states[2].cn0*100 - 37.5539245605*100) < 0.05, "incorrect value for states[2].cn0, expected 37.5539245605, is %f", msg->states[2].cn0); - fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); - fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); - fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless((msg->states[2].cn0*100 - 9.88173103333*100) < 0.05, "incorrect value for states[2].cn0, expected 9.88173103333, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].prn == 3, "incorrect value for states[2].prn, expected 3, is %d", msg->states[2].prn); fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); - fail_unless((msg->states[3].cn0*100 - 38.8890190125*100) < 0.05, "incorrect value for states[3].cn0, expected 38.8890190125, is %f", msg->states[3].cn0); - fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); - fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); - fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); + fail_unless((msg->states[3].cn0*100 - 14.0763959885*100) < 0.05, "incorrect value for states[3].cn0, expected 14.0763959885, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].prn == 7, "incorrect value for states[3].prn, expected 7, is %d", msg->states[3].prn); fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); - fail_unless((msg->states[4].cn0*100 - 42.4013557434*100) < 0.05, "incorrect value for states[4].cn0, expected 42.4013557434, is %f", msg->states[4].cn0); - fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); - fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); - fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); + fail_unless((msg->states[4].cn0*100 - 7.6198182106*100) < 0.05, "incorrect value for states[4].cn0, expected 7.6198182106, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].prn == 10, "incorrect value for states[4].prn, expected 10, is %d", msg->states[4].prn); fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); - fail_unless((msg->states[5].cn0*100 - 37.6391601562*100) < 0.05, "incorrect value for states[5].cn0, expected 37.6391601562, is %f", msg->states[5].cn0); - fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); - fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); - fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); + fail_unless((msg->states[5].cn0*100 - 5.20837116241*100) < 0.05, "incorrect value for states[5].cn0, expected 5.20837116241, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].prn == 13, "incorrect value for states[5].prn, expected 13, is %d", msg->states[5].prn); fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); - fail_unless((msg->states[6].cn0*100 - 37.9199867249*100) < 0.05, "incorrect value for states[6].cn0, expected 37.9199867249, is %f", msg->states[6].cn0); - fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); - fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); - fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); + fail_unless((msg->states[6].cn0*100 - 6.29358720779*100) < 0.05, "incorrect value for states[6].cn0, expected 6.29358720779, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].prn == 22, "incorrect value for states[6].prn, expected 22, is %d", msg->states[6].prn); fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); - fail_unless((msg->states[7].cn0*100 - 39.2525444031*100) < 0.05, "incorrect value for states[7].cn0, expected 39.2525444031, is %f", msg->states[7].cn0); - fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); - fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); - fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); + fail_unless((msg->states[7].cn0*100 - 13.2323417664*100) < 0.05, "incorrect value for states[7].cn0, expected 13.2323417664, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].prn == 30, "incorrect value for states[7].prn, expected 30, is %d", msg->states[7].prn); fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); - fail_unless((msg->states[8].cn0*100 - 42.598274231*100) < 0.05, "incorrect value for states[8].cn0, expected 42.598274231, is %f", msg->states[8].cn0); - fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); - fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); - fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); + fail_unless((msg->states[8].cn0*100 - 15.5473461151*100) < 0.05, "incorrect value for states[8].cn0, expected 15.5473461151, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].prn == 31, "incorrect value for states[8].prn, expected 31, is %d", msg->states[8].prn); fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); + fail_unless((msg->states[9].cn0*100 - 4.13096427917*100) < 0.05, "incorrect value for states[9].cn0, expected 4.13096427917, is %f", msg->states[9].cn0); + fail_unless(msg->states[9].prn == 25, "incorrect value for states[9].prn, expected 25, is %d", msg->states[9].prn); + fail_unless(msg->states[9].state == 1, "incorrect value for states[9].state, expected 1, is %d", msg->states[9].state); + fail_unless((msg->states[10].cn0*100 - 2.85682320595*100) < 0.05, "incorrect value for states[10].cn0, expected 2.85682320595, is %f", msg->states[10].cn0); + fail_unless(msg->states[10].prn == 6, "incorrect value for states[10].prn, expected 6, is %d", msg->states[10].prn); + fail_unless(msg->states[10].state == 1, "incorrect value for states[10].state, expected 1, is %d", msg->states[10].state); + } + // 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_register_callback(&sbp_state, 0x16, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 test_data[] = {85,22,0,195,4,66,1,0,55,143,120,66,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,248,89, }; + + dummy_reset(); + sbp_send_message(&sbp_state, 0x16, 1219, sizeof(test_data), test_data, &dummy_write); + + while (dummy_rd < dummy_wr) { + fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + fail_unless(n_callbacks_logged == 1, + "one callback should have been logged"); + fail_unless(last_sender_id == 1219, + "sender_id decoded incorrectly"); + fail_unless(last_len == sizeof(test_data), + "len decoded incorrectly"); + fail_unless(memcmp(last_msg, test_data, sizeof(test_data)) + == 0, + "test data decoded incorrectly"); + fail_unless(last_context == &DUMMY_MEMORY_FOR_CALLBACKS, + "context pointer incorrectly passed"); + + // Cast to expected message type - the +6 byte offset is where the payload starts + msg_tracking_state_dep_a_t* msg = ( msg_tracking_state_dep_a_t *)((void *)last_msg + 6); + // Run tests against fields + fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); + fail_unless((msg->states[0].cn0*100 - 62.1398582458*100) < 0.05, "incorrect value for states[0].cn0, expected 62.1398582458, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].prn == 0, "incorrect value for states[0].prn, expected 0, is %d", msg->states[0].prn); + fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); + fail_unless((msg->states[1].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[1].cn0, expected -1.0, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].prn == 0, "incorrect value for states[1].prn, expected 0, is %d", msg->states[1].prn); + fail_unless(msg->states[1].state == 0, "incorrect value for states[1].state, expected 0, is %d", msg->states[1].state); + fail_unless((msg->states[2].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[2].cn0, expected -1.0, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].prn == 0, "incorrect value for states[2].prn, expected 0, is %d", msg->states[2].prn); + fail_unless(msg->states[2].state == 0, "incorrect value for states[2].state, expected 0, is %d", msg->states[2].state); + fail_unless((msg->states[3].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[3].cn0, expected -1.0, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].prn == 0, "incorrect value for states[3].prn, expected 0, is %d", msg->states[3].prn); + fail_unless(msg->states[3].state == 0, "incorrect value for states[3].state, expected 0, is %d", msg->states[3].state); + fail_unless((msg->states[4].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[4].cn0, expected -1.0, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].prn == 0, "incorrect value for states[4].prn, expected 0, is %d", msg->states[4].prn); + fail_unless(msg->states[4].state == 0, "incorrect value for states[4].state, expected 0, is %d", msg->states[4].state); + fail_unless((msg->states[5].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[5].cn0, expected -1.0, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].prn == 0, "incorrect value for states[5].prn, expected 0, is %d", msg->states[5].prn); + fail_unless(msg->states[5].state == 0, "incorrect value for states[5].state, expected 0, is %d", msg->states[5].state); + fail_unless((msg->states[6].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[6].cn0, expected -1.0, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].prn == 0, "incorrect value for states[6].prn, expected 0, is %d", msg->states[6].prn); + fail_unless(msg->states[6].state == 0, "incorrect value for states[6].state, expected 0, is %d", msg->states[6].state); + fail_unless((msg->states[7].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[7].cn0, expected -1.0, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].prn == 0, "incorrect value for states[7].prn, expected 0, is %d", msg->states[7].prn); + fail_unless(msg->states[7].state == 0, "incorrect value for states[7].state, expected 0, is %d", msg->states[7].state); + fail_unless((msg->states[8].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[8].cn0, expected -1.0, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].prn == 0, "incorrect value for states[8].prn, expected 0, is %d", msg->states[8].prn); + fail_unless(msg->states[8].state == 0, "incorrect value for states[8].state, expected 0, is %d", msg->states[8].state); fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); - fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); - fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); - fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); + fail_unless(msg->states[9].prn == 0, "incorrect value for states[9].prn, expected 0, is %d", msg->states[9].prn); fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); - fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); - fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); - fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); + fail_unless(msg->states[10].prn == 0, "incorrect value for states[10].prn, expected 0, is %d", msg->states[10].prn); fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); } // Test successful parsing of a message @@ -382,12 +389,12 @@ START_TEST( test_auto_check_sbp_tracking_48 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x16, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,120,122,29,66,1,203,0,0,0,66,22,18,66,1,208,0,0,0,153,163,24,66,1,212,0,0,0,178,204,28,66,1,217,0,0,0,220,59,38,66,1,218,0,0,0,161,27,20,66,1,220,0,0,0,125,107,24,66,1,222,0,0,0,242,46,28,66,1,225,0,0,0,231,130,41,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,73,193, }; + u8 test_data[] = {85,22,0,195,4,66,1,0,218,14,19,66,1,2,210,3,21,65,1,3,234,214,134,65,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,84,101, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x16, 1219, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -396,7 +403,7 @@ START_TEST( test_auto_check_sbp_tracking_48 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 55286, + fail_unless(last_sender_id == 1219, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -407,63 +414,41 @@ START_TEST( test_auto_check_sbp_tracking_48 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); + msg_tracking_state_dep_a_t* msg = ( msg_tracking_state_dep_a_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless((msg->states[0].cn0*100 - 39.3695983887*100) < 0.05, "incorrect value for states[0].cn0, expected 39.3695983887, is %f", msg->states[0].cn0); - fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); - fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); - fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless((msg->states[0].cn0*100 - 36.764503479*100) < 0.05, "incorrect value for states[0].cn0, expected 36.764503479, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].prn == 0, "incorrect value for states[0].prn, expected 0, is %d", msg->states[0].prn); fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); - fail_unless((msg->states[1].cn0*100 - 36.521736145*100) < 0.05, "incorrect value for states[1].cn0, expected 36.521736145, is %f", msg->states[1].cn0); - fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); - fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); - fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless((msg->states[1].cn0*100 - 9.31343269348*100) < 0.05, "incorrect value for states[1].cn0, expected 9.31343269348, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].prn == 2, "incorrect value for states[1].prn, expected 2, is %d", msg->states[1].prn); fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); - fail_unless((msg->states[2].cn0*100 - 38.1597633362*100) < 0.05, "incorrect value for states[2].cn0, expected 38.1597633362, is %f", msg->states[2].cn0); - fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); - fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); - fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless((msg->states[2].cn0*100 - 16.8549385071*100) < 0.05, "incorrect value for states[2].cn0, expected 16.8549385071, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].prn == 3, "incorrect value for states[2].prn, expected 3, is %d", msg->states[2].prn); fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); - fail_unless((msg->states[3].cn0*100 - 39.1998977661*100) < 0.05, "incorrect value for states[3].cn0, expected 39.1998977661, is %f", msg->states[3].cn0); - fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); - fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); - fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); - fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); - fail_unless((msg->states[4].cn0*100 - 41.5584564209*100) < 0.05, "incorrect value for states[4].cn0, expected 41.5584564209, is %f", msg->states[4].cn0); - fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); - fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); - fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); - fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); - fail_unless((msg->states[5].cn0*100 - 37.0269813538*100) < 0.05, "incorrect value for states[5].cn0, expected 37.0269813538, is %f", msg->states[5].cn0); - fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); - fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); - fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); - fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); - fail_unless((msg->states[6].cn0*100 - 38.1049690247*100) < 0.05, "incorrect value for states[6].cn0, expected 38.1049690247, is %f", msg->states[6].cn0); - fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); - fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); - fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); - fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); - fail_unless((msg->states[7].cn0*100 - 39.0458450317*100) < 0.05, "incorrect value for states[7].cn0, expected 39.0458450317, is %f", msg->states[7].cn0); - fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); - fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); - fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); - fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); - fail_unless((msg->states[8].cn0*100 - 42.3778343201*100) < 0.05, "incorrect value for states[8].cn0, expected 42.3778343201, is %f", msg->states[8].cn0); - fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); - fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); - fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); - fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); + fail_unless((msg->states[3].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[3].cn0, expected -1.0, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].prn == 0, "incorrect value for states[3].prn, expected 0, is %d", msg->states[3].prn); + fail_unless(msg->states[3].state == 0, "incorrect value for states[3].state, expected 0, is %d", msg->states[3].state); + fail_unless((msg->states[4].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[4].cn0, expected -1.0, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].prn == 0, "incorrect value for states[4].prn, expected 0, is %d", msg->states[4].prn); + fail_unless(msg->states[4].state == 0, "incorrect value for states[4].state, expected 0, is %d", msg->states[4].state); + fail_unless((msg->states[5].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[5].cn0, expected -1.0, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].prn == 0, "incorrect value for states[5].prn, expected 0, is %d", msg->states[5].prn); + fail_unless(msg->states[5].state == 0, "incorrect value for states[5].state, expected 0, is %d", msg->states[5].state); + fail_unless((msg->states[6].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[6].cn0, expected -1.0, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].prn == 0, "incorrect value for states[6].prn, expected 0, is %d", msg->states[6].prn); + fail_unless(msg->states[6].state == 0, "incorrect value for states[6].state, expected 0, is %d", msg->states[6].state); + fail_unless((msg->states[7].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[7].cn0, expected -1.0, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].prn == 0, "incorrect value for states[7].prn, expected 0, is %d", msg->states[7].prn); + fail_unless(msg->states[7].state == 0, "incorrect value for states[7].state, expected 0, is %d", msg->states[7].state); + fail_unless((msg->states[8].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[8].cn0, expected -1.0, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].prn == 0, "incorrect value for states[8].prn, expected 0, is %d", msg->states[8].prn); + fail_unless(msg->states[8].state == 0, "incorrect value for states[8].state, expected 0, is %d", msg->states[8].state); fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); - fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); - fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); - fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); + fail_unless(msg->states[9].prn == 0, "incorrect value for states[9].prn, expected 0, is %d", msg->states[9].prn); fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); - fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); - fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); - fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); + fail_unless(msg->states[10].prn == 0, "incorrect value for states[10].prn, expected 0, is %d", msg->states[10].prn); fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); } // Test successful parsing of a message @@ -477,12 +462,12 @@ START_TEST( test_auto_check_sbp_tracking_48 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x16, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,103,208,30,66,1,203,0,0,0,117,24,18,66,1,208,0,0,0,200,173,20,66,1,212,0,0,0,137,68,27,66,1,217,0,0,0,243,51,40,66,1,218,0,0,0,225,58,23,66,1,220,0,0,0,132,221,22,66,1,222,0,0,0,157,29,26,66,1,225,0,0,0,133,21,41,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,126,47, }; + u8 test_data[] = {85,22,0,195,4,66,1,0,98,39,219,65,1,2,0,0,56,64,1,3,121,123,7,65,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,0,0,0,0,128,191,37,123, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x16, 1219, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -491,7 +476,7 @@ START_TEST( test_auto_check_sbp_tracking_48 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 55286, + fail_unless(last_sender_id == 1219, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -502,63 +487,41 @@ START_TEST( test_auto_check_sbp_tracking_48 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); + msg_tracking_state_dep_a_t* msg = ( msg_tracking_state_dep_a_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless((msg->states[0].cn0*100 - 39.7035179138*100) < 0.05, "incorrect value for states[0].cn0, expected 39.7035179138, is %f", msg->states[0].cn0); - fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); - fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); - fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless((msg->states[0].cn0*100 - 27.3942298889*100) < 0.05, "incorrect value for states[0].cn0, expected 27.3942298889, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].prn == 0, "incorrect value for states[0].prn, expected 0, is %d", msg->states[0].prn); fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); - fail_unless((msg->states[1].cn0*100 - 36.5238838196*100) < 0.05, "incorrect value for states[1].cn0, expected 36.5238838196, is %f", msg->states[1].cn0); - fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); - fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); - fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless((msg->states[1].cn0*100 - 2.875*100) < 0.05, "incorrect value for states[1].cn0, expected 2.875, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].prn == 2, "incorrect value for states[1].prn, expected 2, is %d", msg->states[1].prn); fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); - fail_unless((msg->states[2].cn0*100 - 37.169708252*100) < 0.05, "incorrect value for states[2].cn0, expected 37.169708252, is %f", msg->states[2].cn0); - fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); - fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); - fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless((msg->states[2].cn0*100 - 8.46764469147*100) < 0.05, "incorrect value for states[2].cn0, expected 8.46764469147, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].prn == 3, "incorrect value for states[2].prn, expected 3, is %d", msg->states[2].prn); fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); - fail_unless((msg->states[3].cn0*100 - 38.8169288635*100) < 0.05, "incorrect value for states[3].cn0, expected 38.8169288635, is %f", msg->states[3].cn0); - fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); - fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); - fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); - fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); - fail_unless((msg->states[4].cn0*100 - 42.0507316589*100) < 0.05, "incorrect value for states[4].cn0, expected 42.0507316589, is %f", msg->states[4].cn0); - fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); - fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); - fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); - fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); - fail_unless((msg->states[5].cn0*100 - 37.8074989319*100) < 0.05, "incorrect value for states[5].cn0, expected 37.8074989319, is %f", msg->states[5].cn0); - fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); - fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); - fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); - fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); - fail_unless((msg->states[6].cn0*100 - 37.7163238525*100) < 0.05, "incorrect value for states[6].cn0, expected 37.7163238525, is %f", msg->states[6].cn0); - fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); - fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); - fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); - fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); - fail_unless((msg->states[7].cn0*100 - 38.52891922*100) < 0.05, "incorrect value for states[7].cn0, expected 38.52891922, is %f", msg->states[7].cn0); - fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); - fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); - fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); - fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); - fail_unless((msg->states[8].cn0*100 - 42.2710151672*100) < 0.05, "incorrect value for states[8].cn0, expected 42.2710151672, is %f", msg->states[8].cn0); - fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); - fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); - fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); - fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); + fail_unless((msg->states[3].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[3].cn0, expected -1.0, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].prn == 0, "incorrect value for states[3].prn, expected 0, is %d", msg->states[3].prn); + fail_unless(msg->states[3].state == 0, "incorrect value for states[3].state, expected 0, is %d", msg->states[3].state); + fail_unless((msg->states[4].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[4].cn0, expected -1.0, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].prn == 0, "incorrect value for states[4].prn, expected 0, is %d", msg->states[4].prn); + fail_unless(msg->states[4].state == 0, "incorrect value for states[4].state, expected 0, is %d", msg->states[4].state); + fail_unless((msg->states[5].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[5].cn0, expected -1.0, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].prn == 0, "incorrect value for states[5].prn, expected 0, is %d", msg->states[5].prn); + fail_unless(msg->states[5].state == 0, "incorrect value for states[5].state, expected 0, is %d", msg->states[5].state); + fail_unless((msg->states[6].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[6].cn0, expected -1.0, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].prn == 0, "incorrect value for states[6].prn, expected 0, is %d", msg->states[6].prn); + fail_unless(msg->states[6].state == 0, "incorrect value for states[6].state, expected 0, is %d", msg->states[6].state); + fail_unless((msg->states[7].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[7].cn0, expected -1.0, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].prn == 0, "incorrect value for states[7].prn, expected 0, is %d", msg->states[7].prn); + fail_unless(msg->states[7].state == 0, "incorrect value for states[7].state, expected 0, is %d", msg->states[7].state); + fail_unless((msg->states[8].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[8].cn0, expected -1.0, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].prn == 0, "incorrect value for states[8].prn, expected 0, is %d", msg->states[8].prn); + fail_unless(msg->states[8].state == 0, "incorrect value for states[8].state, expected 0, is %d", msg->states[8].state); fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); - fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); - fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); - fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); + fail_unless(msg->states[9].prn == 0, "incorrect value for states[9].prn, expected 0, is %d", msg->states[9].prn); fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); - fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); - fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); - fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); + fail_unless(msg->states[10].prn == 0, "incorrect value for states[10].prn, expected 0, is %d", msg->states[10].prn); fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); } } diff --git a/c/test/auto_check_sbp_tracking_49.c b/c/test/auto_check_sbp_tracking_49.c index 15350d2d4d..44c960d6b8 100644 --- a/c/test/auto_check_sbp_tracking_49.c +++ b/c/test/auto_check_sbp_tracking_49.c @@ -10,7 +10,7 @@ * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. */ -// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/tracking/test_MsgTrackingStateDetailedDep.yaml by generate.py. Do not modify by hand! +// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/tracking/test_MsgTrackingState.yaml by generate.py. Do not modify by hand! #include #include // for debugging @@ -97,12 +97,12 @@ START_TEST( test_auto_check_sbp_tracking_49 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x11, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,17,0,59,103,55,163,151,112,215,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,5,0,0,169,177,208,54,15,0,0,0,85,61,0,0,39,0,1,0,0,0,0,0,0,0,40,0,108,1,0,11,0,0,9,166,214, }; + u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,197,253,28,66,1,203,0,0,0,231,99,16,66,1,208,0,0,0,212,129,22,66,1,212,0,0,0,58,21,28,66,1,217,0,0,0,178,33,40,66,1,218,0,0,0,235,189,21,66,1,220,0,0,0,29,177,25,66,1,222,0,0,0,43,169,27,66,1,225,0,0,0,137,125,42,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,222,97, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x11, 26427, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -111,7 +111,7 @@ START_TEST( test_auto_check_sbp_tracking_49 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 26427, + fail_unless(last_sender_id == 55286, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -122,34 +122,64 @@ START_TEST( test_auto_check_sbp_tracking_49 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_detailed_dep_t* msg = ( msg_tracking_state_detailed_dep_t *)((void *)last_msg + 6); + msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(msg->L.f == 169, "incorrect value for L.f, expected 169, is %d", msg->L.f); - fail_unless(msg->L.i == 1319, "incorrect value for L.i, expected 1319, is %d", msg->L.i); - fail_unless(msg->P == 0, "incorrect value for P, expected 0, is %d", msg->P); - fail_unless(msg->P_std == 0, "incorrect value for P_std, expected 0, is %d", msg->P_std); - fail_unless(msg->acceleration == 108, "incorrect value for acceleration, expected 108, is %d", msg->acceleration); - fail_unless(msg->clock_drift == 0, "incorrect value for clock_drift, expected 0, is %d", msg->clock_drift); - fail_unless(msg->clock_offset == 0, "incorrect value for clock_offset, expected 0, is %d", msg->clock_offset); - fail_unless(msg->cn0 == 177, "incorrect value for cn0, expected 177, is %d", msg->cn0); - fail_unless(msg->corr_spacing == 40, "incorrect value for corr_spacing, expected 40, is %d", msg->corr_spacing); - fail_unless(msg->doppler == 15701, "incorrect value for doppler, expected 15701, is %d", msg->doppler); - fail_unless(msg->doppler_std == 39, "incorrect value for doppler_std, expected 39, is %d", msg->doppler_std); - fail_unless(msg->lock == 14032, "incorrect value for lock, expected 14032, is %d", msg->lock); - fail_unless(msg->misc_flags == 9, "incorrect value for misc_flags, expected 9, is %d", msg->misc_flags); - fail_unless(msg->nav_flags == 0, "incorrect value for nav_flags, expected 0, is %d", msg->nav_flags); - fail_unless(msg->pset_flags == 0, "incorrect value for pset_flags, expected 0, is %d", msg->pset_flags); - fail_unless(msg->recv_time == 7909447587, "incorrect value for recv_time, expected 7909447587, is %d", msg->recv_time); - fail_unless(msg->sid.code == 0, "incorrect value for sid.code, expected 0, is %d", msg->sid.code); - fail_unless(msg->sid.reserved == 0, "incorrect value for sid.reserved, expected 0, is %d", msg->sid.reserved); - fail_unless(msg->sid.sat == 15, "incorrect value for sid.sat, expected 15, is %d", msg->sid.sat); - fail_unless(msg->sync_flags == 1, "incorrect value for sync_flags, expected 1, is %d", msg->sync_flags); - fail_unless(msg->tot.tow == 0, "incorrect value for tot.tow, expected 0, is %d", msg->tot.tow); - fail_unless(msg->tot.wn == 0, "incorrect value for tot.wn, expected 0, is %d", msg->tot.wn); - fail_unless(msg->tow_flags == 0, "incorrect value for tow_flags, expected 0, is %d", msg->tow_flags); - fail_unless(msg->track_flags == 11, "incorrect value for track_flags, expected 11, is %d", msg->track_flags); - fail_unless(msg->uptime == 1, "incorrect value for uptime, expected 1, is %d", msg->uptime); + fail_unless((msg->states[0].cn0*100 - 39.2478218079*100) < 0.05, "incorrect value for states[0].cn0, expected 39.2478218079, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); + fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); + fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); + fail_unless((msg->states[1].cn0*100 - 36.0975608826*100) < 0.05, "incorrect value for states[1].cn0, expected 36.0975608826, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); + fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); + fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); + fail_unless((msg->states[2].cn0*100 - 37.6267852783*100) < 0.05, "incorrect value for states[2].cn0, expected 37.6267852783, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); + fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); + fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); + fail_unless((msg->states[3].cn0*100 - 39.0207290649*100) < 0.05, "incorrect value for states[3].cn0, expected 39.0207290649, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); + fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); + fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); + fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); + fail_unless((msg->states[4].cn0*100 - 42.0329055786*100) < 0.05, "incorrect value for states[4].cn0, expected 42.0329055786, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); + fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); + fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); + fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); + fail_unless((msg->states[5].cn0*100 - 37.4354667664*100) < 0.05, "incorrect value for states[5].cn0, expected 37.4354667664, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); + fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); + fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); + fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); + fail_unless((msg->states[6].cn0*100 - 38.4229621887*100) < 0.05, "incorrect value for states[6].cn0, expected 38.4229621887, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); + fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); + fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); + fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); + fail_unless((msg->states[7].cn0*100 - 38.9152030945*100) < 0.05, "incorrect value for states[7].cn0, expected 38.9152030945, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); + fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); + fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); + fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); + fail_unless((msg->states[8].cn0*100 - 42.622592926*100) < 0.05, "incorrect value for states[8].cn0, expected 42.622592926, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); + fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); + fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); + fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); + fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); + fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); + fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); + fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); + fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); + fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); + fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); + fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); + fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); + fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); } // Test successful parsing of a message { @@ -162,12 +192,12 @@ START_TEST( test_auto_check_sbp_tracking_49 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x11, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,17,0,59,103,55,97,251,61,245,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,7,0,0,14,175,208,54,15,0,0,0,51,61,0,0,30,0,1,0,0,0,0,0,0,0,40,0,224,1,0,11,0,0,9,136,179, }; + u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,250,249,27,66,1,203,0,0,0,40,143,11,66,1,208,0,0,0,190,200,21,66,1,212,0,0,0,251,233,26,66,1,217,0,0,0,209,238,39,66,1,218,0,0,0,162,219,21,66,1,220,0,0,0,162,197,25,66,1,222,0,0,0,14,35,28,66,1,225,0,0,0,9,153,43,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,20,31, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x11, 26427, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -176,7 +206,7 @@ START_TEST( test_auto_check_sbp_tracking_49 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 26427, + fail_unless(last_sender_id == 55286, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -187,34 +217,64 @@ START_TEST( test_auto_check_sbp_tracking_49 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_detailed_dep_t* msg = ( msg_tracking_state_detailed_dep_t *)((void *)last_msg + 6); + msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(msg->L.f == 14, "incorrect value for L.f, expected 14, is %d", msg->L.f); - fail_unless(msg->L.i == 1810, "incorrect value for L.i, expected 1810, is %d", msg->L.i); - fail_unless(msg->P == 0, "incorrect value for P, expected 0, is %d", msg->P); - fail_unless(msg->P_std == 0, "incorrect value for P_std, expected 0, is %d", msg->P_std); - fail_unless(msg->acceleration == -32, "incorrect value for acceleration, expected -32, is %d", msg->acceleration); - fail_unless(msg->clock_drift == 0, "incorrect value for clock_drift, expected 0, is %d", msg->clock_drift); - fail_unless(msg->clock_offset == 0, "incorrect value for clock_offset, expected 0, is %d", msg->clock_offset); - fail_unless(msg->cn0 == 175, "incorrect value for cn0, expected 175, is %d", msg->cn0); - fail_unless(msg->corr_spacing == 40, "incorrect value for corr_spacing, expected 40, is %d", msg->corr_spacing); - fail_unless(msg->doppler == 15667, "incorrect value for doppler, expected 15667, is %d", msg->doppler); - fail_unless(msg->doppler_std == 30, "incorrect value for doppler_std, expected 30, is %d", msg->doppler_std); - fail_unless(msg->lock == 14032, "incorrect value for lock, expected 14032, is %d", msg->lock); - fail_unless(msg->misc_flags == 9, "incorrect value for misc_flags, expected 9, is %d", msg->misc_flags); - fail_unless(msg->nav_flags == 0, "incorrect value for nav_flags, expected 0, is %d", msg->nav_flags); - fail_unless(msg->pset_flags == 0, "incorrect value for pset_flags, expected 0, is %d", msg->pset_flags); - fail_unless(msg->recv_time == 8409447265, "incorrect value for recv_time, expected 8409447265, is %d", msg->recv_time); - fail_unless(msg->sid.code == 0, "incorrect value for sid.code, expected 0, is %d", msg->sid.code); - fail_unless(msg->sid.reserved == 0, "incorrect value for sid.reserved, expected 0, is %d", msg->sid.reserved); - fail_unless(msg->sid.sat == 15, "incorrect value for sid.sat, expected 15, is %d", msg->sid.sat); - fail_unless(msg->sync_flags == 1, "incorrect value for sync_flags, expected 1, is %d", msg->sync_flags); - fail_unless(msg->tot.tow == 0, "incorrect value for tot.tow, expected 0, is %d", msg->tot.tow); - fail_unless(msg->tot.wn == 0, "incorrect value for tot.wn, expected 0, is %d", msg->tot.wn); - fail_unless(msg->tow_flags == 0, "incorrect value for tow_flags, expected 0, is %d", msg->tow_flags); - fail_unless(msg->track_flags == 11, "incorrect value for track_flags, expected 11, is %d", msg->track_flags); - fail_unless(msg->uptime == 1, "incorrect value for uptime, expected 1, is %d", msg->uptime); + fail_unless((msg->states[0].cn0*100 - 38.9941177368*100) < 0.05, "incorrect value for states[0].cn0, expected 38.9941177368, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); + fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); + fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); + fail_unless((msg->states[1].cn0*100 - 34.8898010254*100) < 0.05, "incorrect value for states[1].cn0, expected 34.8898010254, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); + fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); + fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); + fail_unless((msg->states[2].cn0*100 - 37.4460372925*100) < 0.05, "incorrect value for states[2].cn0, expected 37.4460372925, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); + fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); + fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); + fail_unless((msg->states[3].cn0*100 - 38.7284965515*100) < 0.05, "incorrect value for states[3].cn0, expected 38.7284965515, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); + fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); + fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); + fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); + fail_unless((msg->states[4].cn0*100 - 41.9832191467*100) < 0.05, "incorrect value for states[4].cn0, expected 41.9832191467, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); + fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); + fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); + fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); + fail_unless((msg->states[5].cn0*100 - 37.4644851685*100) < 0.05, "incorrect value for states[5].cn0, expected 37.4644851685, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); + fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); + fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); + fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); + fail_unless((msg->states[6].cn0*100 - 38.4430007935*100) < 0.05, "incorrect value for states[6].cn0, expected 38.4430007935, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); + fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); + fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); + fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); + fail_unless((msg->states[7].cn0*100 - 39.0342330933*100) < 0.05, "incorrect value for states[7].cn0, expected 39.0342330933, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); + fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); + fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); + fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); + fail_unless((msg->states[8].cn0*100 - 42.8994483948*100) < 0.05, "incorrect value for states[8].cn0, expected 42.8994483948, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); + fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); + fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); + fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); + fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); + fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); + fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); + fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); + fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); + fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); + fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); + fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); + fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); + fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); } // Test successful parsing of a message { @@ -227,12 +287,12 @@ START_TEST( test_auto_check_sbp_tracking_49 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x11, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,17,0,59,103,55,139,218,236,18,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,8,0,0,8,179,208,54,15,0,0,0,67,61,0,0,22,0,2,0,0,0,0,0,0,0,40,0,27,1,0,11,0,2,9,217,159, }; + u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,123,209,27,66,1,203,0,0,0,214,64,15,66,1,208,0,0,0,56,55,22,66,1,212,0,0,0,91,142,27,66,1,217,0,0,0,253,154,41,66,1,218,0,0,0,128,142,22,66,1,220,0,0,0,17,174,23,66,1,222,0,0,0,155,2,29,66,1,225,0,0,0,162,100,42,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,233,71, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x11, 26427, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -241,7 +301,7 @@ START_TEST( test_auto_check_sbp_tracking_49 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 26427, + fail_unless(last_sender_id == 55286, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -252,34 +312,64 @@ START_TEST( test_auto_check_sbp_tracking_49 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_detailed_dep_t* msg = ( msg_tracking_state_detailed_dep_t *)((void *)last_msg + 6); + msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(msg->L.f == 8, "incorrect value for L.f, expected 8, is %d", msg->L.f); - fail_unless(msg->L.i == 2298, "incorrect value for L.i, expected 2298, is %d", msg->L.i); - fail_unless(msg->P == 0, "incorrect value for P, expected 0, is %d", msg->P); - fail_unless(msg->P_std == 0, "incorrect value for P_std, expected 0, is %d", msg->P_std); - fail_unless(msg->acceleration == 27, "incorrect value for acceleration, expected 27, is %d", msg->acceleration); - fail_unless(msg->clock_drift == 0, "incorrect value for clock_drift, expected 0, is %d", msg->clock_drift); - fail_unless(msg->clock_offset == 0, "incorrect value for clock_offset, expected 0, is %d", msg->clock_offset); - fail_unless(msg->cn0 == 179, "incorrect value for cn0, expected 179, is %d", msg->cn0); - fail_unless(msg->corr_spacing == 40, "incorrect value for corr_spacing, expected 40, is %d", msg->corr_spacing); - fail_unless(msg->doppler == 15683, "incorrect value for doppler, expected 15683, is %d", msg->doppler); - fail_unless(msg->doppler_std == 22, "incorrect value for doppler_std, expected 22, is %d", msg->doppler_std); - fail_unless(msg->lock == 14032, "incorrect value for lock, expected 14032, is %d", msg->lock); - fail_unless(msg->misc_flags == 9, "incorrect value for misc_flags, expected 9, is %d", msg->misc_flags); - fail_unless(msg->nav_flags == 0, "incorrect value for nav_flags, expected 0, is %d", msg->nav_flags); - fail_unless(msg->pset_flags == 2, "incorrect value for pset_flags, expected 2, is %d", msg->pset_flags); - fail_unless(msg->recv_time == 8907446923, "incorrect value for recv_time, expected 8907446923, is %d", msg->recv_time); - fail_unless(msg->sid.code == 0, "incorrect value for sid.code, expected 0, is %d", msg->sid.code); - fail_unless(msg->sid.reserved == 0, "incorrect value for sid.reserved, expected 0, is %d", msg->sid.reserved); - fail_unless(msg->sid.sat == 15, "incorrect value for sid.sat, expected 15, is %d", msg->sid.sat); - fail_unless(msg->sync_flags == 1, "incorrect value for sync_flags, expected 1, is %d", msg->sync_flags); - fail_unless(msg->tot.tow == 0, "incorrect value for tot.tow, expected 0, is %d", msg->tot.tow); - fail_unless(msg->tot.wn == 0, "incorrect value for tot.wn, expected 0, is %d", msg->tot.wn); - fail_unless(msg->tow_flags == 0, "incorrect value for tow_flags, expected 0, is %d", msg->tow_flags); - fail_unless(msg->track_flags == 11, "incorrect value for track_flags, expected 11, is %d", msg->track_flags); - fail_unless(msg->uptime == 2, "incorrect value for uptime, expected 2, is %d", msg->uptime); + fail_unless((msg->states[0].cn0*100 - 38.9545707703*100) < 0.05, "incorrect value for states[0].cn0, expected 38.9545707703, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); + fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); + fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); + fail_unless((msg->states[1].cn0*100 - 35.8133163452*100) < 0.05, "incorrect value for states[1].cn0, expected 35.8133163452, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); + fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); + fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); + fail_unless((msg->states[2].cn0*100 - 37.5539245605*100) < 0.05, "incorrect value for states[2].cn0, expected 37.5539245605, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); + fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); + fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); + fail_unless((msg->states[3].cn0*100 - 38.8890190125*100) < 0.05, "incorrect value for states[3].cn0, expected 38.8890190125, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); + fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); + fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); + fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); + fail_unless((msg->states[4].cn0*100 - 42.4013557434*100) < 0.05, "incorrect value for states[4].cn0, expected 42.4013557434, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); + fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); + fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); + fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); + fail_unless((msg->states[5].cn0*100 - 37.6391601562*100) < 0.05, "incorrect value for states[5].cn0, expected 37.6391601562, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); + fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); + fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); + fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); + fail_unless((msg->states[6].cn0*100 - 37.9199867249*100) < 0.05, "incorrect value for states[6].cn0, expected 37.9199867249, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); + fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); + fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); + fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); + fail_unless((msg->states[7].cn0*100 - 39.2525444031*100) < 0.05, "incorrect value for states[7].cn0, expected 39.2525444031, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); + fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); + fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); + fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); + fail_unless((msg->states[8].cn0*100 - 42.598274231*100) < 0.05, "incorrect value for states[8].cn0, expected 42.598274231, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); + fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); + fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); + fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); + fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); + fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); + fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); + fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); + fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); + fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); + fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); + fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); + fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); + fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); } // Test successful parsing of a message { @@ -292,12 +382,12 @@ START_TEST( test_auto_check_sbp_tracking_49 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x11, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,17,0,59,103,55,255,251,170,48,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,226,10,0,0,125,181,208,54,15,0,0,0,29,61,0,0,10,0,2,0,0,0,0,0,0,0,40,0,220,1,0,11,0,3,9,66,95, }; + u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,120,122,29,66,1,203,0,0,0,66,22,18,66,1,208,0,0,0,153,163,24,66,1,212,0,0,0,178,204,28,66,1,217,0,0,0,220,59,38,66,1,218,0,0,0,161,27,20,66,1,220,0,0,0,125,107,24,66,1,222,0,0,0,242,46,28,66,1,225,0,0,0,231,130,41,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,73,193, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x11, 26427, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -306,7 +396,7 @@ START_TEST( test_auto_check_sbp_tracking_49 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 26427, + fail_unless(last_sender_id == 55286, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -317,34 +407,64 @@ START_TEST( test_auto_check_sbp_tracking_49 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_detailed_dep_t* msg = ( msg_tracking_state_detailed_dep_t *)((void *)last_msg + 6); + msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(msg->L.f == 125, "incorrect value for L.f, expected 125, is %d", msg->L.f); - fail_unless(msg->L.i == 2786, "incorrect value for L.i, expected 2786, is %d", msg->L.i); - fail_unless(msg->P == 0, "incorrect value for P, expected 0, is %d", msg->P); - fail_unless(msg->P_std == 0, "incorrect value for P_std, expected 0, is %d", msg->P_std); - fail_unless(msg->acceleration == -36, "incorrect value for acceleration, expected -36, is %d", msg->acceleration); - fail_unless(msg->clock_drift == 0, "incorrect value for clock_drift, expected 0, is %d", msg->clock_drift); - fail_unless(msg->clock_offset == 0, "incorrect value for clock_offset, expected 0, is %d", msg->clock_offset); - fail_unless(msg->cn0 == 181, "incorrect value for cn0, expected 181, is %d", msg->cn0); - fail_unless(msg->corr_spacing == 40, "incorrect value for corr_spacing, expected 40, is %d", msg->corr_spacing); - fail_unless(msg->doppler == 15645, "incorrect value for doppler, expected 15645, is %d", msg->doppler); - fail_unless(msg->doppler_std == 10, "incorrect value for doppler_std, expected 10, is %d", msg->doppler_std); - fail_unless(msg->lock == 14032, "incorrect value for lock, expected 14032, is %d", msg->lock); - fail_unless(msg->misc_flags == 9, "incorrect value for misc_flags, expected 9, is %d", msg->misc_flags); - fail_unless(msg->nav_flags == 0, "incorrect value for nav_flags, expected 0, is %d", msg->nav_flags); - fail_unless(msg->pset_flags == 3, "incorrect value for pset_flags, expected 3, is %d", msg->pset_flags); - fail_unless(msg->recv_time == 9406446591, "incorrect value for recv_time, expected 9406446591, is %d", msg->recv_time); - fail_unless(msg->sid.code == 0, "incorrect value for sid.code, expected 0, is %d", msg->sid.code); - fail_unless(msg->sid.reserved == 0, "incorrect value for sid.reserved, expected 0, is %d", msg->sid.reserved); - fail_unless(msg->sid.sat == 15, "incorrect value for sid.sat, expected 15, is %d", msg->sid.sat); - fail_unless(msg->sync_flags == 1, "incorrect value for sync_flags, expected 1, is %d", msg->sync_flags); - fail_unless(msg->tot.tow == 0, "incorrect value for tot.tow, expected 0, is %d", msg->tot.tow); - fail_unless(msg->tot.wn == 0, "incorrect value for tot.wn, expected 0, is %d", msg->tot.wn); - fail_unless(msg->tow_flags == 0, "incorrect value for tow_flags, expected 0, is %d", msg->tow_flags); - fail_unless(msg->track_flags == 11, "incorrect value for track_flags, expected 11, is %d", msg->track_flags); - fail_unless(msg->uptime == 2, "incorrect value for uptime, expected 2, is %d", msg->uptime); + fail_unless((msg->states[0].cn0*100 - 39.3695983887*100) < 0.05, "incorrect value for states[0].cn0, expected 39.3695983887, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); + fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); + fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); + fail_unless((msg->states[1].cn0*100 - 36.521736145*100) < 0.05, "incorrect value for states[1].cn0, expected 36.521736145, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); + fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); + fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); + fail_unless((msg->states[2].cn0*100 - 38.1597633362*100) < 0.05, "incorrect value for states[2].cn0, expected 38.1597633362, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); + fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); + fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); + fail_unless((msg->states[3].cn0*100 - 39.1998977661*100) < 0.05, "incorrect value for states[3].cn0, expected 39.1998977661, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); + fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); + fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); + fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); + fail_unless((msg->states[4].cn0*100 - 41.5584564209*100) < 0.05, "incorrect value for states[4].cn0, expected 41.5584564209, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); + fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); + fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); + fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); + fail_unless((msg->states[5].cn0*100 - 37.0269813538*100) < 0.05, "incorrect value for states[5].cn0, expected 37.0269813538, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); + fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); + fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); + fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); + fail_unless((msg->states[6].cn0*100 - 38.1049690247*100) < 0.05, "incorrect value for states[6].cn0, expected 38.1049690247, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); + fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); + fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); + fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); + fail_unless((msg->states[7].cn0*100 - 39.0458450317*100) < 0.05, "incorrect value for states[7].cn0, expected 39.0458450317, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); + fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); + fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); + fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); + fail_unless((msg->states[8].cn0*100 - 42.3778343201*100) < 0.05, "incorrect value for states[8].cn0, expected 42.3778343201, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); + fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); + fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); + fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); + fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); + fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); + fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); + fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); + fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); + fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); + fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); + fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); + fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); + fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); } // Test successful parsing of a message { @@ -357,12 +477,12 @@ START_TEST( test_auto_check_sbp_tracking_49 ) logging_reset(); - sbp_register_callback(&sbp_state, 0x11, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); + sbp_register_callback(&sbp_state, 0x13, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,17,0,59,103,55,189,95,120,78,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,203,12,0,0,64,184,208,54,15,0,0,0,24,61,0,0,4,0,3,0,0,0,0,0,0,0,40,0,2,1,0,11,0,3,9,194,206, }; + u8 test_data[] = {85,19,0,246,215,99,1,202,0,0,0,103,208,30,66,1,203,0,0,0,117,24,18,66,1,208,0,0,0,200,173,20,66,1,212,0,0,0,137,68,27,66,1,217,0,0,0,243,51,40,66,1,218,0,0,0,225,58,23,66,1,220,0,0,0,132,221,22,66,1,222,0,0,0,157,29,26,66,1,225,0,0,0,133,21,41,66,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,128,191,126,47, }; dummy_reset(); - sbp_send_message(&sbp_state, 0x11, 26427, sizeof(test_data), test_data, &dummy_write); + sbp_send_message(&sbp_state, 0x13, 55286, sizeof(test_data), test_data, &dummy_write); while (dummy_rd < dummy_wr) { fail_unless(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, @@ -371,7 +491,7 @@ START_TEST( test_auto_check_sbp_tracking_49 ) fail_unless(n_callbacks_logged == 1, "one callback should have been logged"); - fail_unless(last_sender_id == 26427, + fail_unless(last_sender_id == 55286, "sender_id decoded incorrectly"); fail_unless(last_len == sizeof(test_data), "len decoded incorrectly"); @@ -382,34 +502,64 @@ START_TEST( test_auto_check_sbp_tracking_49 ) "context pointer incorrectly passed"); // Cast to expected message type - the +6 byte offset is where the payload starts - msg_tracking_state_detailed_dep_t* msg = ( msg_tracking_state_detailed_dep_t *)((void *)last_msg + 6); + msg_tracking_state_dep_b_t* msg = ( msg_tracking_state_dep_b_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(msg->L.f == 64, "incorrect value for L.f, expected 64, is %d", msg->L.f); - fail_unless(msg->L.i == 3275, "incorrect value for L.i, expected 3275, is %d", msg->L.i); - fail_unless(msg->P == 0, "incorrect value for P, expected 0, is %d", msg->P); - fail_unless(msg->P_std == 0, "incorrect value for P_std, expected 0, is %d", msg->P_std); - fail_unless(msg->acceleration == 2, "incorrect value for acceleration, expected 2, is %d", msg->acceleration); - fail_unless(msg->clock_drift == 0, "incorrect value for clock_drift, expected 0, is %d", msg->clock_drift); - fail_unless(msg->clock_offset == 0, "incorrect value for clock_offset, expected 0, is %d", msg->clock_offset); - fail_unless(msg->cn0 == 184, "incorrect value for cn0, expected 184, is %d", msg->cn0); - fail_unless(msg->corr_spacing == 40, "incorrect value for corr_spacing, expected 40, is %d", msg->corr_spacing); - fail_unless(msg->doppler == 15640, "incorrect value for doppler, expected 15640, is %d", msg->doppler); - fail_unless(msg->doppler_std == 4, "incorrect value for doppler_std, expected 4, is %d", msg->doppler_std); - fail_unless(msg->lock == 14032, "incorrect value for lock, expected 14032, is %d", msg->lock); - fail_unless(msg->misc_flags == 9, "incorrect value for misc_flags, expected 9, is %d", msg->misc_flags); - fail_unless(msg->nav_flags == 0, "incorrect value for nav_flags, expected 0, is %d", msg->nav_flags); - fail_unless(msg->pset_flags == 3, "incorrect value for pset_flags, expected 3, is %d", msg->pset_flags); - fail_unless(msg->recv_time == 9906446269, "incorrect value for recv_time, expected 9906446269, is %d", msg->recv_time); - fail_unless(msg->sid.code == 0, "incorrect value for sid.code, expected 0, is %d", msg->sid.code); - fail_unless(msg->sid.reserved == 0, "incorrect value for sid.reserved, expected 0, is %d", msg->sid.reserved); - fail_unless(msg->sid.sat == 15, "incorrect value for sid.sat, expected 15, is %d", msg->sid.sat); - fail_unless(msg->sync_flags == 1, "incorrect value for sync_flags, expected 1, is %d", msg->sync_flags); - fail_unless(msg->tot.tow == 0, "incorrect value for tot.tow, expected 0, is %d", msg->tot.tow); - fail_unless(msg->tot.wn == 0, "incorrect value for tot.wn, expected 0, is %d", msg->tot.wn); - fail_unless(msg->tow_flags == 0, "incorrect value for tow_flags, expected 0, is %d", msg->tow_flags); - fail_unless(msg->track_flags == 11, "incorrect value for track_flags, expected 11, is %d", msg->track_flags); - fail_unless(msg->uptime == 3, "incorrect value for uptime, expected 3, is %d", msg->uptime); + fail_unless((msg->states[0].cn0*100 - 39.7035179138*100) < 0.05, "incorrect value for states[0].cn0, expected 39.7035179138, is %f", msg->states[0].cn0); + fail_unless(msg->states[0].sid.code == 0, "incorrect value for states[0].sid.code, expected 0, is %d", msg->states[0].sid.code); + fail_unless(msg->states[0].sid.reserved == 0, "incorrect value for states[0].sid.reserved, expected 0, is %d", msg->states[0].sid.reserved); + fail_unless(msg->states[0].sid.sat == 202, "incorrect value for states[0].sid.sat, expected 202, is %d", msg->states[0].sid.sat); + fail_unless(msg->states[0].state == 1, "incorrect value for states[0].state, expected 1, is %d", msg->states[0].state); + fail_unless((msg->states[1].cn0*100 - 36.5238838196*100) < 0.05, "incorrect value for states[1].cn0, expected 36.5238838196, is %f", msg->states[1].cn0); + fail_unless(msg->states[1].sid.code == 0, "incorrect value for states[1].sid.code, expected 0, is %d", msg->states[1].sid.code); + fail_unless(msg->states[1].sid.reserved == 0, "incorrect value for states[1].sid.reserved, expected 0, is %d", msg->states[1].sid.reserved); + fail_unless(msg->states[1].sid.sat == 203, "incorrect value for states[1].sid.sat, expected 203, is %d", msg->states[1].sid.sat); + fail_unless(msg->states[1].state == 1, "incorrect value for states[1].state, expected 1, is %d", msg->states[1].state); + fail_unless((msg->states[2].cn0*100 - 37.169708252*100) < 0.05, "incorrect value for states[2].cn0, expected 37.169708252, is %f", msg->states[2].cn0); + fail_unless(msg->states[2].sid.code == 0, "incorrect value for states[2].sid.code, expected 0, is %d", msg->states[2].sid.code); + fail_unless(msg->states[2].sid.reserved == 0, "incorrect value for states[2].sid.reserved, expected 0, is %d", msg->states[2].sid.reserved); + fail_unless(msg->states[2].sid.sat == 208, "incorrect value for states[2].sid.sat, expected 208, is %d", msg->states[2].sid.sat); + fail_unless(msg->states[2].state == 1, "incorrect value for states[2].state, expected 1, is %d", msg->states[2].state); + fail_unless((msg->states[3].cn0*100 - 38.8169288635*100) < 0.05, "incorrect value for states[3].cn0, expected 38.8169288635, is %f", msg->states[3].cn0); + fail_unless(msg->states[3].sid.code == 0, "incorrect value for states[3].sid.code, expected 0, is %d", msg->states[3].sid.code); + fail_unless(msg->states[3].sid.reserved == 0, "incorrect value for states[3].sid.reserved, expected 0, is %d", msg->states[3].sid.reserved); + fail_unless(msg->states[3].sid.sat == 212, "incorrect value for states[3].sid.sat, expected 212, is %d", msg->states[3].sid.sat); + fail_unless(msg->states[3].state == 1, "incorrect value for states[3].state, expected 1, is %d", msg->states[3].state); + fail_unless((msg->states[4].cn0*100 - 42.0507316589*100) < 0.05, "incorrect value for states[4].cn0, expected 42.0507316589, is %f", msg->states[4].cn0); + fail_unless(msg->states[4].sid.code == 0, "incorrect value for states[4].sid.code, expected 0, is %d", msg->states[4].sid.code); + fail_unless(msg->states[4].sid.reserved == 0, "incorrect value for states[4].sid.reserved, expected 0, is %d", msg->states[4].sid.reserved); + fail_unless(msg->states[4].sid.sat == 217, "incorrect value for states[4].sid.sat, expected 217, is %d", msg->states[4].sid.sat); + fail_unless(msg->states[4].state == 1, "incorrect value for states[4].state, expected 1, is %d", msg->states[4].state); + fail_unless((msg->states[5].cn0*100 - 37.8074989319*100) < 0.05, "incorrect value for states[5].cn0, expected 37.8074989319, is %f", msg->states[5].cn0); + fail_unless(msg->states[5].sid.code == 0, "incorrect value for states[5].sid.code, expected 0, is %d", msg->states[5].sid.code); + fail_unless(msg->states[5].sid.reserved == 0, "incorrect value for states[5].sid.reserved, expected 0, is %d", msg->states[5].sid.reserved); + fail_unless(msg->states[5].sid.sat == 218, "incorrect value for states[5].sid.sat, expected 218, is %d", msg->states[5].sid.sat); + fail_unless(msg->states[5].state == 1, "incorrect value for states[5].state, expected 1, is %d", msg->states[5].state); + fail_unless((msg->states[6].cn0*100 - 37.7163238525*100) < 0.05, "incorrect value for states[6].cn0, expected 37.7163238525, is %f", msg->states[6].cn0); + fail_unless(msg->states[6].sid.code == 0, "incorrect value for states[6].sid.code, expected 0, is %d", msg->states[6].sid.code); + fail_unless(msg->states[6].sid.reserved == 0, "incorrect value for states[6].sid.reserved, expected 0, is %d", msg->states[6].sid.reserved); + fail_unless(msg->states[6].sid.sat == 220, "incorrect value for states[6].sid.sat, expected 220, is %d", msg->states[6].sid.sat); + fail_unless(msg->states[6].state == 1, "incorrect value for states[6].state, expected 1, is %d", msg->states[6].state); + fail_unless((msg->states[7].cn0*100 - 38.52891922*100) < 0.05, "incorrect value for states[7].cn0, expected 38.52891922, is %f", msg->states[7].cn0); + fail_unless(msg->states[7].sid.code == 0, "incorrect value for states[7].sid.code, expected 0, is %d", msg->states[7].sid.code); + fail_unless(msg->states[7].sid.reserved == 0, "incorrect value for states[7].sid.reserved, expected 0, is %d", msg->states[7].sid.reserved); + fail_unless(msg->states[7].sid.sat == 222, "incorrect value for states[7].sid.sat, expected 222, is %d", msg->states[7].sid.sat); + fail_unless(msg->states[7].state == 1, "incorrect value for states[7].state, expected 1, is %d", msg->states[7].state); + fail_unless((msg->states[8].cn0*100 - 42.2710151672*100) < 0.05, "incorrect value for states[8].cn0, expected 42.2710151672, is %f", msg->states[8].cn0); + fail_unless(msg->states[8].sid.code == 0, "incorrect value for states[8].sid.code, expected 0, is %d", msg->states[8].sid.code); + fail_unless(msg->states[8].sid.reserved == 0, "incorrect value for states[8].sid.reserved, expected 0, is %d", msg->states[8].sid.reserved); + fail_unless(msg->states[8].sid.sat == 225, "incorrect value for states[8].sid.sat, expected 225, is %d", msg->states[8].sid.sat); + fail_unless(msg->states[8].state == 1, "incorrect value for states[8].state, expected 1, is %d", msg->states[8].state); + fail_unless((msg->states[9].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[9].cn0, expected -1.0, is %f", msg->states[9].cn0); + fail_unless(msg->states[9].sid.code == 0, "incorrect value for states[9].sid.code, expected 0, is %d", msg->states[9].sid.code); + fail_unless(msg->states[9].sid.reserved == 0, "incorrect value for states[9].sid.reserved, expected 0, is %d", msg->states[9].sid.reserved); + fail_unless(msg->states[9].sid.sat == 0, "incorrect value for states[9].sid.sat, expected 0, is %d", msg->states[9].sid.sat); + fail_unless(msg->states[9].state == 0, "incorrect value for states[9].state, expected 0, is %d", msg->states[9].state); + fail_unless((msg->states[10].cn0*100 - -1.0*100) < 0.05, "incorrect value for states[10].cn0, expected -1.0, is %f", msg->states[10].cn0); + fail_unless(msg->states[10].sid.code == 0, "incorrect value for states[10].sid.code, expected 0, is %d", msg->states[10].sid.code); + fail_unless(msg->states[10].sid.reserved == 0, "incorrect value for states[10].sid.reserved, expected 0, is %d", msg->states[10].sid.reserved); + fail_unless(msg->states[10].sid.sat == 0, "incorrect value for states[10].sid.sat, expected 0, is %d", msg->states[10].sid.sat); + fail_unless(msg->states[10].state == 0, "incorrect value for states[10].state, expected 0, is %d", msg->states[10].state); } } END_TEST diff --git a/c/test/auto_check_sbp_tracking_50.c b/c/test/auto_check_sbp_tracking_50.c index 998bf782e6..669f640c23 100644 --- a/c/test/auto_check_sbp_tracking_50.c +++ b/c/test/auto_check_sbp_tracking_50.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. diff --git a/c/test/auto_check_sbp_vehicle_51.c b/c/test/auto_check_sbp_vehicle_51.c index 0d5dc2669b..ef1aed098a 100644 --- a/c/test/auto_check_sbp_vehicle_51.c +++ b/c/test/auto_check_sbp_vehicle_51.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 Swift Navigation Inc. - * Contact: Joshua Gross + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation * * This source is subject to the license found in the file 'LICENSE' which must * be be distributed together with this source. All other rights reserved. @@ -99,7 +99,7 @@ START_TEST( test_auto_check_sbp_vehicle_51 ) sbp_register_callback(&sbp_state, 0x903, &logging_callback, &DUMMY_MEMORY_FOR_CALLBACKS, &n); - u8 test_data[] = {85,3,9,66,0,9,7,0,0,0,3,0,0,0,3,36,82, }; + u8 test_data[] = {85,3,9,66,0,9,8,0,0,0,7,0,0,0,1,52,99, }; dummy_reset(); sbp_send_message(&sbp_state, 0x903, 66, sizeof(test_data), test_data, &dummy_write); @@ -125,9 +125,9 @@ START_TEST( test_auto_check_sbp_vehicle_51 ) msg_odometry_t* msg = ( msg_odometry_t *)((void *)last_msg + 6); // Run tests against fields fail_unless(msg != 0, "stub to prevent warnings if msg isn't used"); - fail_unless(msg->flags == 3, "incorrect value for flags, expected 3, is %d", msg->flags); - fail_unless(msg->tow == 7, "incorrect value for tow, expected 7, is %d", msg->tow); - fail_unless(msg->velocity == 3, "incorrect value for velocity, expected 3, is %d", msg->velocity); + fail_unless(msg->flags == 1, "incorrect value for flags, expected 1, is %d", msg->flags); + fail_unless(msg->tow == 8, "incorrect value for tow, expected 8, is %d", msg->tow); + fail_unless(msg->velocity == 7, "incorrect value for velocity, expected 7, is %d", msg->velocity); } } END_TEST diff --git a/c/test/check_main.c b/c/test/check_main.c index 8410f738c1..07ea49fb15 100644 --- a/c/test/check_main.c +++ b/c/test/check_main.c @@ -63,19 +63,20 @@ int main(void) srunner_add_suite(sr, auto_check_sbp_system_35_suite()); srunner_add_suite(sr, auto_check_sbp_system_36_suite()); srunner_add_suite(sr, auto_check_sbp_system_37_suite()); - srunner_add_suite(sr, auto_check_sbp_acquisition_38_suite()); - srunner_add_suite(sr, auto_check_sbp_bootload_39_suite()); - srunner_add_suite(sr, auto_check_sbp_ext_events_40_suite()); - srunner_add_suite(sr, auto_check_sbp_logging_41_suite()); + srunner_add_suite(sr, auto_check_sbp_system_38_suite()); + srunner_add_suite(sr, auto_check_sbp_acquisition_39_suite()); + srunner_add_suite(sr, auto_check_sbp_bootload_40_suite()); + srunner_add_suite(sr, auto_check_sbp_ext_events_41_suite()); srunner_add_suite(sr, auto_check_sbp_logging_42_suite()); - srunner_add_suite(sr, auto_check_sbp_navigation_43_suite()); - srunner_add_suite(sr, auto_check_sbp_observation_44_suite()); - srunner_add_suite(sr, auto_check_sbp_piksi_45_suite()); - srunner_add_suite(sr, auto_check_sbp_system_46_suite()); - srunner_add_suite(sr, auto_check_sbp_tracking_47_suite()); + srunner_add_suite(sr, auto_check_sbp_logging_43_suite()); + srunner_add_suite(sr, auto_check_sbp_navigation_44_suite()); + srunner_add_suite(sr, auto_check_sbp_observation_45_suite()); + srunner_add_suite(sr, auto_check_sbp_piksi_46_suite()); + srunner_add_suite(sr, auto_check_sbp_system_47_suite()); srunner_add_suite(sr, auto_check_sbp_tracking_48_suite()); srunner_add_suite(sr, auto_check_sbp_tracking_49_suite()); - srunner_add_suite(sr, auto_check_sbp_vehicle_50_suite()); + srunner_add_suite(sr, auto_check_sbp_tracking_50_suite()); + srunner_add_suite(sr, auto_check_sbp_vehicle_51_suite()); srunner_set_fork_status(sr, CK_NOFORK); srunner_run_all(sr, CK_NORMAL); diff --git a/c/test/check_suites.h b/c/test/check_suites.h index 53d0ff1d5c..12c6d21aff 100644 --- a/c/test/check_suites.h +++ b/c/test/check_suites.h @@ -54,18 +54,19 @@ Suite* auto_check_sbp_settings_34_suite(void); Suite* auto_check_sbp_system_35_suite(void); Suite* auto_check_sbp_system_36_suite(void); Suite* auto_check_sbp_system_37_suite(void); -Suite* auto_check_sbp_acquisition_38_suite(void); -Suite* auto_check_sbp_bootload_39_suite(void); -Suite* auto_check_sbp_ext_events_40_suite(void); -Suite* auto_check_sbp_logging_41_suite(void); +Suite* auto_check_sbp_system_38_suite(void); +Suite* auto_check_sbp_acquisition_39_suite(void); +Suite* auto_check_sbp_bootload_40_suite(void); +Suite* auto_check_sbp_ext_events_41_suite(void); Suite* auto_check_sbp_logging_42_suite(void); -Suite* auto_check_sbp_navigation_43_suite(void); -Suite* auto_check_sbp_observation_44_suite(void); -Suite* auto_check_sbp_piksi_45_suite(void); -Suite* auto_check_sbp_system_46_suite(void); -Suite* auto_check_sbp_tracking_47_suite(void); +Suite* auto_check_sbp_logging_43_suite(void); +Suite* auto_check_sbp_navigation_44_suite(void); +Suite* auto_check_sbp_observation_45_suite(void); +Suite* auto_check_sbp_piksi_46_suite(void); +Suite* auto_check_sbp_system_47_suite(void); Suite* auto_check_sbp_tracking_48_suite(void); Suite* auto_check_sbp_tracking_49_suite(void); -Suite* auto_check_sbp_vehicle_50_suite(void); +Suite* auto_check_sbp_tracking_50_suite(void); +Suite* auto_check_sbp_vehicle_51_suite(void); #endif /* CHECK_SUITES_H */ \ No newline at end of file diff --git a/docs/sbp.pdf b/docs/sbp.pdf index d23fe36487..a41a51d14a 100644 Binary files a/docs/sbp.pdf and b/docs/sbp.pdf differ diff --git a/generator/sbpg/targets/javascript.py b/generator/sbpg/targets/javascript.py index a1aa21d748..114077131f 100644 --- a/generator/sbpg/targets/javascript.py +++ b/generator/sbpg/targets/javascript.py @@ -139,15 +139,16 @@ def construct_format(f, type_map=CONSTRUCT_CODE): field_type = "%s.prototype.parser" % f_.type_id else: field_type = "'%s'" % field_type + d = { "'uint16'" : "'uint16le'", "'uint32'" : "'uint32le'", "'uint64'" : "'uint16le'", + "'int16'" : "'int16le'", "'int32'" : "'int32le'", "'int64'" : "'int16le'" } if size is not None: - d = { "'uint16'" : "'uint16le'", "'uint32'" : "'uint32le'", "'uint64'" : "'uint16le'", - "'int16'" : "'int16le'", "'int32'" : "'int32le'", "'int64'" : "'int16le'" } field_type_arr = d.get(field_type, field_type) return "array('%s', { length: %d, type: %s })" % (f.identifier, size.value, field_type_arr) elif f.options.get('size_fn') is not None: return "array('%s', { type: %s, length: '%s' })" % (f_.identifier, field_type, size_fn.value) else: - return "array('%s', { type: %s, readUntil: 'eof' })" % (f_.identifier, field_type) + field_type_arr = d.get(field_type, field_type) + return "array('%s', { type: %s, readUntil: 'eof' })" % (f_.identifier, field_type_arr) else: return "nest('%s', { type: %s.prototype.parser })" % (f.identifier, f.type_id) return formatted diff --git a/haskell/src/SwiftNav/SBP/System.hs b/haskell/src/SwiftNav/SBP/System.hs index bfd1c52275..c29d829e7d 100644 --- a/haskell/src/SwiftNav/SBP/System.hs +++ b/haskell/src/SwiftNav/SBP/System.hs @@ -303,3 +303,45 @@ instance Binary MsgGnssTimeOffset where $(makeSBP 'msgGnssTimeOffset ''MsgGnssTimeOffset) $(makeJSON "_msgGnssTimeOffset_" ''MsgGnssTimeOffset) $(makeLenses ''MsgGnssTimeOffset) + +msgGroupMeta :: Word16 +msgGroupMeta = 0xFF0A + +-- | SBP class for message MSG_GROUP_META (0xFF0A). +-- +-- This leading message lists the time metadata of the Solution Group. It also +-- lists the atomic contents (i.e. types of messages included) of the Solution +-- Group. +data MsgGroupMeta = MsgGroupMeta + { _msgGroupMeta_wn :: !Word16 + -- ^ GPS Week Number or zero if Reference epoch is not GPS + , _msgGroupMeta_tom :: !Word32 + -- ^ Time of Measurement in Milliseconds since reference epoch + , _msgGroupMeta_ns_residual :: !Int32 + -- ^ Nanosecond residual of millisecond-rounded TOM (ranges from -500000 to + -- 500000) + , _msgGroupMeta_flags :: !Word8 + -- ^ Status flags (reserved) + , _msgGroupMeta_group_msgs :: ![Word16] + -- ^ An inorder list of message types included in the Solution Group + } deriving ( Show, Read, Eq ) + +instance Binary MsgGroupMeta where + get = do + _msgGroupMeta_wn <- getWord16le + _msgGroupMeta_tom <- getWord32le + _msgGroupMeta_ns_residual <- (fromIntegral <$> getWord32le) + _msgGroupMeta_flags <- getWord8 + _msgGroupMeta_group_msgs <- whileM (not <$> isEmpty) getWord16le + pure MsgGroupMeta {..} + + put MsgGroupMeta {..} = do + putWord16le _msgGroupMeta_wn + putWord32le _msgGroupMeta_tom + (putWord32le . fromIntegral) _msgGroupMeta_ns_residual + putWord8 _msgGroupMeta_flags + mapM_ putWord16le _msgGroupMeta_group_msgs + +$(makeSBP 'msgGroupMeta ''MsgGroupMeta) +$(makeJSON "_msgGroupMeta_" ''MsgGroupMeta) +$(makeLenses ''MsgGroupMeta) diff --git a/java/src/com/swiftnav/sbp/client/MessageTable.java b/java/src/com/swiftnav/sbp/client/MessageTable.java index 35612d6f7c..442416a4eb 100644 --- a/java/src/com/swiftnav/sbp/client/MessageTable.java +++ b/java/src/com/swiftnav/sbp/client/MessageTable.java @@ -189,6 +189,7 @@ import com.swiftnav.sbp.system.MsgCsacTelemetryLabels; import com.swiftnav.sbp.system.MsgInsUpdates; import com.swiftnav.sbp.system.MsgGnssTimeOffset; +import com.swiftnav.sbp.system.MsgGroupMeta; import com.swiftnav.sbp.tracking.MsgTrackingStateDetailedDepA; import com.swiftnav.sbp.tracking.MsgTrackingStateDetailedDep; import com.swiftnav.sbp.tracking.MsgTrackingState; @@ -553,6 +554,8 @@ static SBPMessage dispatch(SBPMessage msg) throws SBPBinaryException { return new MsgInsUpdates(msg); case MsgGnssTimeOffset.TYPE: return new MsgGnssTimeOffset(msg); + case MsgGroupMeta.TYPE: + return new MsgGroupMeta(msg); case MsgTrackingStateDetailedDepA.TYPE: return new MsgTrackingStateDetailedDepA(msg); case MsgTrackingStateDetailedDep.TYPE: diff --git a/java/src/com/swiftnav/sbp/system/MsgGroupMeta.java b/java/src/com/swiftnav/sbp/system/MsgGroupMeta.java new file mode 100644 index 0000000000..fbb00fad2e --- /dev/null +++ b/java/src/com/swiftnav/sbp/system/MsgGroupMeta.java @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2015-2018 Swift Navigation Inc. + * Contact: Swift Navigation + * + * This source is subject to the license found in the file 'LICENSE' which must + * be 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.system; + +import java.math.BigInteger; + +import com.swiftnav.sbp.SBPMessage; +import com.swiftnav.sbp.SBPBinaryException; +import com.swiftnav.sbp.SBPStruct; + +import org.json.JSONObject; +import org.json.JSONArray; + + +/** SBP class for message MSG_GROUP_META (0xFF0A). + * + * You can have MSG_GROUP_META inherent its fields directly from + * an inherited SBP object, or construct it inline using a dict of its + * fields. + * + * This leading message lists the time metadata of the Solution Group. + * It also lists the atomic contents (i.e. types of messages included) of the Solution Group. */ + +public class MsgGroupMeta extends SBPMessage { + public static final int TYPE = 0xFF0A; + + + /** GPS Week Number or zero if Reference epoch is not GPS */ + public int wn; + + /** Time of Measurement in Milliseconds since reference epoch */ + public long tom; + + /** Nanosecond residual of millisecond-rounded TOM (ranges +from -500000 to 500000) + */ + public int ns_residual; + + /** Status flags (reserved) */ + public int flags; + + /** An inorder list of message types included in the Solution Group */ + public int[] group_msgs; + + + public MsgGroupMeta (int sender) { super(sender, TYPE); } + public MsgGroupMeta () { super(TYPE); } + public MsgGroupMeta (SBPMessage msg) throws SBPBinaryException { + super(msg); + assert msg.type != TYPE; + } + + @Override + protected void parse(Parser parser) throws SBPBinaryException { + /* Parse fields from binary */ + wn = parser.getU16(); + tom = parser.getU32(); + ns_residual = parser.getS32(); + flags = parser.getU8(); + group_msgs = parser.getArrayofU16(); + } + + @Override + protected void build(Builder builder) { + builder.putU16(wn); + builder.putU32(tom); + builder.putS32(ns_residual); + builder.putU8(flags); + builder.putArrayofU16(group_msgs); + } + + @Override + public JSONObject toJSON() { + JSONObject obj = super.toJSON(); + obj.put("wn", wn); + obj.put("tom", tom); + obj.put("ns_residual", ns_residual); + obj.put("flags", flags); + obj.put("group_msgs", new JSONArray(group_msgs)); + return obj; + } +} \ No newline at end of file diff --git a/javascript/sbp.bundle.js b/javascript/sbp.bundle.js index 51c36de10f..f86b554aa6 100644 --- a/javascript/sbp.bundle.js +++ b/javascript/sbp.bundle.js @@ -12,4 +12,4 @@ var p=r(24),o=r(25),i=r(17);function s(){return a.TYPED_ARRAY_SUPPORT?2147483647 * @author Feross Aboukhadijeh * @license MIT */ -function p(e,t){if(e===t)return 0;for(var r=e.length,p=t.length,o=0,i=Math.min(r,p);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],r,p))return!1;return!0}(e,t,r,s))}return r?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,r,p){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(p=r,r=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),p=(r&&r.name?" ("+r.name+").":".")+(p?" "+p:"."),e&&!o&&_(o,r,"Missing expected exception"+p);var s="string"==typeof p,n=!e&&o&&!r;if((!e&&i.isError(o)&&s&&E(o,r)||n)&&_(o,r,"Got unwanted exception"+p),e&&o&&r&&!E(o,r)||!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 f(d(e.actual),128)+" "+e.operator+" "+f(d(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||_;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var p=r.stack,o=h(t),i=p.indexOf("\n"+o);if(i>=0){var s=p.indexOf("\n",i+1);p=p.substring(s+1)}this.stack=p}}},i.inherits(u.AssertionError,Error),u.fail=_,u.ok=S,u.equal=function(e,t,r){e!=t&&_(e,t,r,"==",u.equal)},u.notEqual=function(e,t,r){e==t&&_(e,t,r,"!=",u.notEqual)},u.deepEqual=function(e,t,r){g(e,t,!1)||_(e,t,r,"deepEqual",u.deepEqual)},u.deepStrictEqual=function(e,t,r){g(e,t,!0)||_(e,t,r,"deepStrictEqual",u.deepStrictEqual)},u.notDeepEqual=function(e,t,r){g(e,t,!1)&&_(e,t,r,"notDeepEqual",u.notDeepEqual)},u.notDeepStrictEqual=function e(t,r,p){g(t,r,!0)&&_(t,r,p,"notDeepStrictEqual",e)},u.strictEqual=function(e,t,r){e!==t&&_(e,t,r,"===",u.strictEqual)},u.notStrictEqual=function(e,t,r){e===t&&_(e,t,r,"!==",u.notStrictEqual)},u.throws=function(e,t,r){m(!0,e,t,r)},u.doesNotThrow=function(e,t,r){m(!1,e,t,r)},u.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var r in e)s.call(e,r)&&t.push(r);return t}}).call(this,r(5))},function(e,t,r){(function(e,p){var o=/%[sdj%]/g;t.format=function(e){if(!S(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(p[r++]);case"%d":return Number(p[r++]);case"%j":try{return JSON.stringify(p[r++])}catch(e){return"[Circular]"}default:return e}})),a=p[r];r=3&&(p.depth=arguments[2]),arguments.length>=4&&(p.colors=arguments[3]),f(r)?p.showHidden=r:r&&t._extend(p,r),g(p.showHidden)&&(p.showHidden=!1),g(p.depth)&&(p.depth=2),g(p.colors)&&(p.colors=!1),g(p.customInspect)&&(p.customInspect=!0),p.colors&&(p.stylize=a),c(p,e,p.depth)}function a(e,t){var r=n.styles[t];return r?"["+n.colors[r][0]+"m"+e+"["+n.colors[r][1]+"m":e}function l(e,t){return e}function c(e,r,p){if(e.customInspect&&r&&v(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(p,e);return S(o)||(o=c(e,o,p)),o}var i=function(e,t){if(g(t))return e.stylize("undefined","undefined");if(S(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(_(t))return e.stylize(""+t,"number");if(f(t))return e.stylize(""+t,"boolean");if(d(t))return e.stylize("null","null")}(e,r);if(i)return i;var s=Object.keys(r),n=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(r)),b(r)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return u(r);if(0===s.length){if(v(r)){var a=r.name?": "+r.name:"";return e.stylize("[Function"+a+"]","special")}if(w(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(m(r))return e.stylize(Date.prototype.toString.call(r),"date");if(b(r))return u(r)}var l,E="",L=!1,I=["{","}"];(h(r)&&(L=!0,I=["[","]"]),v(r))&&(E=" [Function"+(r.name?": "+r.name:"")+"]");return w(r)&&(E=" "+RegExp.prototype.toString.call(r)),m(r)&&(E=" "+Date.prototype.toUTCString.call(r)),b(r)&&(E=" "+u(r)),0!==s.length||L&&0!=r.length?p<0?w(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),l=L?function(e,t,r,p,o){for(var i=[],s=0,n=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(l,E,I)):I[0]+E+I[1]}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function y(e,t,r,p,o,i){var s,n,a;if((a=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?n=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(n=e.stylize("[Setter]","special")),U(p,o)||(s="["+o+"]"),n||(e.seen.indexOf(a.value)<0?(n=d(r)?c(e,a.value,null):c(e,a.value,r-1)).indexOf("\n")>-1&&(n=i?n.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+n.split("\n").map((function(e){return" "+e})).join("\n")):n=e.stylize("[Circular]","special")),g(s)){if(i&&o.match(/^\d+$/))return n;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+n}function h(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function d(e){return null===e}function _(e){return"number"==typeof e}function S(e){return"string"==typeof e}function g(e){return void 0===e}function w(e){return E(e)&&"[object RegExp]"===L(e)}function E(e){return"object"==typeof e&&null!==e}function m(e){return E(e)&&"[object Date]"===L(e)}function b(e){return E(e)&&("[object Error]"===L(e)||e instanceof Error)}function v(e){return"function"==typeof e}function L(e){return Object.prototype.toString.call(e)}function I(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(g(i)&&(i=p.env.NODE_DEBUG||""),e=e.toUpperCase(),!s[e])if(new RegExp("\\b"+e+"\\b","i").test(i)){var r=p.pid;s[e]=function(){var p=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,p)}}else s[e]=function(){};return s[e]},t.inspect=n,n.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},n.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=f,t.isNull=d,t.isNullOrUndefined=function(e){return null==e},t.isNumber=_,t.isString=S,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=g,t.isRegExp=w,t.isObject=E,t.isDate=m,t.isError=b,t.isFunction=v,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(43);var T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function M(){var e=new Date,t=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(":");return[e.getDate(),T[e.getMonth()],t].join(" ")}function U(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",M(),t.format.apply(t,arguments))},t.inherits=r(6),t._extend=function(e,t){if(!t||!E(t))return e;for(var r=Object.keys(t),p=r.length;p--;)e[r[p]]=t[r[p]];return e}}).call(this,r(5),r(9))},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,r){var p;!function(r){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 r=parseInt(e,t||10);return this._low=65535&r,this._high=r>>>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,r=t>>>16;return r+=this._high+e._high,this._low=65535&t,this._high=65535&r,this},o.prototype.subtract=function(e){return this.add(e.clone().negate())},o.prototype.multiply=function(e){var t,r,p=this._high,o=this._low,i=e._high,s=e._low;return t=(r=o*s)>>>16,t+=p*s,t&=65535,t+=o*i,this._low=65535&r,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(),r=-1;!this.lt(t);)t.shiftLeft(1,!0),r++;for(this.remainder=this.clone(),this._low=0,this._high=0;r>=0;r--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),r>=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===(p=function(){return o}.apply(t,[]))||(e.exports=p)}()},function(e,t,r){var p;!function(r){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,r,p){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,r,p)}function n(e,t,r,p){return void 0===r?(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|r,this._a48=0|p,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 r=o[t]||new s(Math.pow(t,5)),p=0,i=e.length;p=0&&(r.div(t),p[o]=r.remainder.toNumber().toString(e),r.gt(t));o--);return p[o-1]=r.toNumber().toString(e),p.join("")},s.prototype.add=function(e){var t=this._a00+e._a00,r=t>>>16,p=(r+=this._a16+e._a16)>>>16,o=(p+=this._a32+e._a32)>>>16;return o+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&r,this._a32=65535&p,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,r=this._a16,p=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+=r*i)>>>16;var u=(c+=t*n)>>>16;return c&=65535,u+=(c+=r*s)>>>16,c&=65535,u+=(c+=p*i)>>>16,u+=t*e._a48,u&=65535,u+=r*n,u&=65535,u+=p*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(),r=-1;!this.lt(t);)t.shiftLeft(1,!0),r++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;r>=0;r--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),r>=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 r=this._a48<<16|this._a32,p=this._a16<<16|this._a00,o=r<>>32-e,i=p<>>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 r=this._a48<<16|this._a32,p=this._a16<<16|this._a00,o=r>>>e|p<<32-e,i=p>>>e|r<<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===(p=function(){return s}.apply(t,[]))||(e.exports=p)}()},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=r(0).GnssSignalDep,n=(r(0).GPSTime,r(0).CarrierPhase,r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep,r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_RESULT",this.fields=t||this.parser.parse(e.payload),this});(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="AcqSvProfile",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="AcqSvProfileDep",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_ACQ_SV_PROFILE",h.prototype.msg_type=46,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:u.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["acq_sv_profile","array",u.prototype.fieldSpec,function(){return this.fields.array.length},null]);var f=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",f.prototype.msg_type=30,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.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:h,MsgAcqSvProfile:h,30:f,MsgAcqSvProfileDep:f}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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=[];var s=function(e,t){return p.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_BOOTLOADER_JUMP_TO_APP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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=[];var l=function(e,t){return p.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_EXT_EVENT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_READ_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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").array("contents",{type:"uint8",readUntil:"eof"}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),a.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_REMOVE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_WRITE_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_CONFIG_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_CONFIG_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_FILEIO_CONFIG_RESP",h.prototype.msg_type=4098,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("window_size").uint32("batch_size").uint32("fileio_version"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),h.prototype.fieldSpec.push(["window_size","writeUInt32LE",4]),h.prototype.fieldSpec.push(["batch_size","writeUInt32LE",4]),h.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:h,MsgFileioConfigResp:h}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_PROGRAM",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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"]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_DONE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_ERASE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_STM_FLASH_LOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_STM_FLASH_UNLOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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=[];var h=function(e,t){return p.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_STM_UNIQUE_ID_RESP",h.prototype.msg_type=229,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("stm_id",{length:12,type:"uint8"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["stm_id","array","writeUInt8",function(){return 1},12]);var f=function(e,t){return p.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",f.prototype.msg_type=243,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),f.prototype.fieldSpec=[],f.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:h,MsgStmUniqueIdResp:h,243:f,MsgM25FlashWriteStatus:f}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_IMU_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_IMU_AUX",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_CPU_STATE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.prototype)).messageType="MSG_LINUX_CPU_STATE",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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.prototype)).messageType="MSG_LINUX_MEM_STATE",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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.prototype)).messageType="MSG_LINUX_SYS_STATE",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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_SOCKET_USAGE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_COUNT",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_SUMMARY",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]),e.exports={32512:i,MsgLinuxCpuState:i,32513:s,MsgLinuxMemState:s,32514:n,MsgLinuxSysState:n,32515:a,MsgLinuxProcessSocketCounts:a,32516:l,MsgLinuxProcessSocketQueues:l,32517:c,MsgLinuxSocketUsage:c,32518:u,MsgLinuxProcessFdCount:u,32519:y,MsgLinuxProcessFdSummary:y}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_LOG",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_FWD",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.prototype)).messageType="MSG_FWD",s.prototype.msg_type=1026,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("source").uint8("protocol").string("fwd_payload",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["protocol","writeUInt8",1]),s.prototype.fieldSpec.push(["fwd_payload","string",null]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_PRINT_DEP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_MAG_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_GPS_TIME",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_UTC_TIME",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.prototype)).messageType="MSG_UTC_TIME",s.prototype.msg_type=259,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["year","writeUInt16LE",2]),s.prototype.fieldSpec.push(["month","writeUInt8",1]),s.prototype.fieldSpec.push(["day","writeUInt8",1]),s.prototype.fieldSpec.push(["hours","writeUInt8",1]),s.prototype.fieldSpec.push(["minutes","writeUInt8",1]),s.prototype.fieldSpec.push(["seconds","writeUInt8",1]),s.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_DOPS",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.prototype)).messageType="MSG_DOPS",n.prototype.msg_type=520,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop").uint8("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF",a.prototype.msg_type=521,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["x","writeDoubleLE",8]),a.prototype.fieldSpec.push(["y","writeDoubleLE",8]),a.prototype.fieldSpec.push(["z","writeDoubleLE",8]),a.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),a.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),a.prototype.fieldSpec.push(["flags","writeUInt8",1]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF_COV",l.prototype.msg_type=532,l.prototype.constructor=l,l.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"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["x","writeDoubleLE",8]),l.prototype.fieldSpec.push(["y","writeDoubleLE",8]),l.prototype.fieldSpec.push(["z","writeDoubleLE",8]),l.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),l.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),l.prototype.fieldSpec.push(["flags","writeUInt8",1]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH",c.prototype.msg_type=522,c.prototype.constructor=c,c.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"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),c.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),c.prototype.fieldSpec.push(["height","writeDoubleLE",8]),c.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH_COV",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH_COV",u.prototype.msg_type=529,u.prototype.constructor=u,u.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"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),u.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),u.prototype.fieldSpec.push(["height","writeDoubleLE",8]),u.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),u.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),u.prototype.fieldSpec.push(["flags","writeUInt8",1]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_ECEF",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_ECEF",y.prototype.msg_type=523,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["tow","writeUInt32LE",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(["accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_NED",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_NED",h.prototype.msg_type=524,h.prototype.constructor=h,h.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"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),h.prototype.fieldSpec.push(["n","writeInt32LE",4]),h.prototype.fieldSpec.push(["e","writeInt32LE",4]),h.prototype.fieldSpec.push(["d","writeInt32LE",4]),h.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),h.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),h.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]);var f=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_VEL_ECEF",f.prototype.msg_type=525,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]);var d=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.prototype)).messageType="MSG_VEL_ECEF_COV",d.prototype.msg_type=533,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["x","writeInt32LE",4]),d.prototype.fieldSpec.push(["y","writeInt32LE",4]),d.prototype.fieldSpec.push(["z","writeInt32LE",4]),d.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),d.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]);var _=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED",_.prototype.msg_type=526,_.prototype.constructor=_,_.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"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),_.prototype.fieldSpec.push(["n","writeInt32LE",4]),_.prototype.fieldSpec.push(["e","writeInt32LE",4]),_.prototype.fieldSpec.push(["d","writeInt32LE",4]),_.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);var S=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED_COV",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED_COV",S.prototype.msg_type=530,S.prototype.constructor=S,S.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"),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(["cov_n_n","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),S.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);var g=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF_GNSS",g.prototype.msg_type=553,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),g.prototype.fieldSpec.push(["x","writeDoubleLE",8]),g.prototype.fieldSpec.push(["y","writeDoubleLE",8]),g.prototype.fieldSpec.push(["z","writeDoubleLE",8]),g.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),g.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt8",1]);var w=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF_COV_GNSS",w.prototype.msg_type=564,w.prototype.constructor=w,w.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"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),w.prototype.fieldSpec.push(["x","writeDoubleLE",8]),w.prototype.fieldSpec.push(["y","writeDoubleLE",8]),w.prototype.fieldSpec.push(["z","writeDoubleLE",8]),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]);var E=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH_GNSS",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH_GNSS",E.prototype.msg_type=554,E.prototype.constructor=E,E.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"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),E.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),E.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),E.prototype.fieldSpec.push(["height","writeDoubleLE",8]),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]);var m=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH_COV_GNSS",m.prototype.msg_type=561,m.prototype.constructor=m,m.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"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),m.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),m.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),m.prototype.fieldSpec.push(["height","writeDoubleLE",8]),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]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.prototype)).messageType="MSG_VEL_ECEF_GNSS",b.prototype.msg_type=557,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),b.prototype.fieldSpec.push(["x","writeInt32LE",4]),b.prototype.fieldSpec.push(["y","writeInt32LE",4]),b.prototype.fieldSpec.push(["z","writeInt32LE",4]),b.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["flags","writeUInt8",1]);var v=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.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]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED_GNSS",L.prototype.msg_type=558,L.prototype.constructor=L,L.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"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),L.prototype.fieldSpec.push(["n","writeInt32LE",4]),L.prototype.fieldSpec.push(["e","writeInt32LE",4]),L.prototype.fieldSpec.push(["d","writeInt32LE",4]),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]);var I=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED_COV_GNSS",I.prototype.msg_type=562,I.prototype.constructor=I,I.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"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),I.prototype.fieldSpec.push(["n","writeInt32LE",4]),I.prototype.fieldSpec.push(["e","writeInt32LE",4]),I.prototype.fieldSpec.push(["d","writeInt32LE",4]),I.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),I.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),I.prototype.fieldSpec.push(["flags","writeUInt8",1]);var T=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(p.prototype)).messageType="MSG_VEL_BODY",T.prototype.msg_type=531,T.prototype.constructor=T,T.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"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),T.prototype.fieldSpec.push(["x","writeInt32LE",4]),T.prototype.fieldSpec.push(["y","writeInt32LE",4]),T.prototype.fieldSpec.push(["z","writeInt32LE",4]),T.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["flags","writeUInt8",1]);var M=function(e,t){return p.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(p.prototype)).messageType="MSG_AGE_CORRECTIONS",M.prototype.msg_type=528,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),M.prototype.fieldSpec.push(["age","writeUInt16LE",2]);var U=function(e,t){return p.call(this,e),this.messageType="MSG_GPS_TIME_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(p.prototype)).messageType="MSG_GPS_TIME_DEP_A",U.prototype.msg_type=256,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),U.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),U.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);var D=function(e,t){return p.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(p.prototype)).messageType="MSG_DOPS_DEP_A",D.prototype.msg_type=518,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),D.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),D.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),D.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),D.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]);var O=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF_DEP_A",O.prototype.msg_type=512,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["x","writeDoubleLE",8]),O.prototype.fieldSpec.push(["y","writeDoubleLE",8]),O.prototype.fieldSpec.push(["z","writeDoubleLE",8]),O.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);var G=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH_DEP_A",G.prototype.msg_type=513,G.prototype.constructor=G,G.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"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),G.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),G.prototype.fieldSpec.push(["height","writeDoubleLE",8]),G.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),G.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),G.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),G.prototype.fieldSpec.push(["flags","writeUInt8",1]);var A=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",A.prototype.msg_type=514,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").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(["accuracy","writeUInt16LE",2]),A.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),A.prototype.fieldSpec.push(["flags","writeUInt8",1]);var R=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_NED_DEP_A",R.prototype.msg_type=515,R.prototype.constructor=R,R.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"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["n","writeInt32LE",4]),R.prototype.fieldSpec.push(["e","writeInt32LE",4]),R.prototype.fieldSpec.push(["d","writeInt32LE",4]),R.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),R.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),R.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),R.prototype.fieldSpec.push(["flags","writeUInt8",1]);var C=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(p.prototype)).messageType="MSG_VEL_ECEF_DEP_A",C.prototype.msg_type=516,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),C.prototype.fieldSpec.push(["x","writeInt32LE",4]),C.prototype.fieldSpec.push(["y","writeInt32LE",4]),C.prototype.fieldSpec.push(["z","writeInt32LE",4]),C.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),C.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),C.prototype.fieldSpec.push(["flags","writeUInt8",1]);var P=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED_DEP_A",P.prototype.msg_type=517,P.prototype.constructor=P,P.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"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),P.prototype.fieldSpec.push(["n","writeInt32LE",4]),P.prototype.fieldSpec.push(["e","writeInt32LE",4]),P.prototype.fieldSpec.push(["d","writeInt32LE",4]),P.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),P.prototype.fieldSpec.push(["flags","writeUInt8",1]);var N=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_HEADING_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_HEADING_DEP_A",N.prototype.msg_type=519,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);var j=function(e,t){return p.call(this,e),this.messageType="MSG_PROTECTION_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(p.prototype)).messageType="MSG_PROTECTION_LEVEL",j.prototype.msg_type=534,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").uint16("vpl").uint16("hpl").doublele("lat").doublele("lon").doublele("height").uint8("flags"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),j.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),j.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),j.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),j.prototype.fieldSpec.push(["height","writeDoubleLE",8]),j.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={258:i,MsgGpsTime:i,259:s,MsgUtcTime:s,520:n,MsgDops:n,521:a,MsgPosEcef:a,532:l,MsgPosEcefCov:l,522:c,MsgPosLlh:c,529:u,MsgPosLlhCov:u,523:y,MsgBaselineEcef:y,524:h,MsgBaselineNed:h,525:f,MsgVelEcef:f,533:d,MsgVelEcefCov:d,526:_,MsgVelNed:_,530:S,MsgVelNedCov:S,553:g,MsgPosEcefGnss:g,564:w,MsgPosEcefCovGnss:w,554:E,MsgPosLlhGnss:E,561:m,MsgPosLlhCovGnss:m,557:b,MsgVelEcefGnss:b,565:v,MsgVelEcefCovGnss:v,558:L,MsgVelNedGnss:L,562:I,MsgVelNedCovGnss:I,531:T,MsgVelBody:T,528:M,MsgAgeCorrections:M,256:U,MsgGpsTimeDepA:U,518:D,MsgDopsDepA:D,512:O,MsgPosEcefDepA:O,513:G,MsgPosLlhDepA:G,514:A,MsgBaselineEcefDepA:A,515:R,MsgBaselineNedDepA:R,516:C,MsgVelEcefDepA:C,517:P,MsgVelNedDepA:P,519:N,MsgBaselineHeadingDepA:N,534:j,MsgProtectionLevel:j}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=(r(0).GnssSignalDep,r(0).GPSTime,r(0).CarrierPhase,r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep,r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_NDB_EVENT",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=r(0).GnssSignalDep,n=r(0).GPSTime,a=r(0).CarrierPhase,l=(n=r(0).GPSTime,r(0).GPSTimeSec),c=r(0).GPSTimeDep,u=(r(0).SvId,function(e,t){return p.call(this,e),this.messageType="ObservationHeader",this.fields=t||this.parser.parse(e.payload),this});(u.prototype=Object.create(p.prototype)).messageType="ObservationHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("t",{type:n.prototype.parser}).uint8("n_obs"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);var y=function(e,t){return p.call(this,e),this.messageType="Doppler",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]);var h=function(e,t){return p.call(this,e),this.messageType="PackedObsContent",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="PackedObsContent",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:a.prototype.parser}).nest("D",{type:y.prototype.parser}).uint8("cn0").uint8("lock").uint8("flags").nest("sid",{type:i.prototype.parser}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["P","writeUInt32LE",4]),h.prototype.fieldSpec.push(["L",a.prototype.fieldSpec]),h.prototype.fieldSpec.push(["D",y.prototype.fieldSpec]),h.prototype.fieldSpec.push(["cn0","writeUInt8",1]),h.prototype.fieldSpec.push(["lock","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);var f=function(e,t){return p.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="PackedOsrContent",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:a.prototype.parser}).uint8("lock").uint8("flags").nest("sid",{type:i.prototype.parser}).uint16("iono_std").uint16("tropo_std").uint16("range_std"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["P","writeUInt32LE",4]),f.prototype.fieldSpec.push(["L",a.prototype.fieldSpec]),f.prototype.fieldSpec.push(["lock","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),f.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),f.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);var d=function(e,t){return p.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.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:h.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),d.prototype.fieldSpec.push(["obs","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]);var _=function(e,t){return p.call(this,e),this.messageType="MSG_BASE_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.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]);var S=function(e,t){return p.call(this,e),this.messageType="MSG_BASE_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.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]);var g=function(e,t){return p.call(this,e),this.messageType="EphemerisCommonContent",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.prototype)).messageType="EphemerisCommonContent",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).nest("toe",{type:l.prototype.parser}).floatle("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),g.prototype.fieldSpec.push(["toe",l.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]);var w=function(e,t){return p.call(this,e),this.messageType="EphemerisCommonContentDepB",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.prototype)).messageType="EphemerisCommonContentDepB",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).nest("toe",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["toe",l.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]);var E=function(e,t){return p.call(this,e),this.messageType="EphemerisCommonContentDepA",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.prototype)).messageType="EphemerisCommonContentDepA",E.prototype.constructor=E,E.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"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),E.prototype.fieldSpec.push(["toe",c.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]);var m=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_E",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.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:c.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",c.prototype.fieldSpec]),m.prototype.fieldSpec.push(["iode","writeUInt8",1]),m.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_F",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.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:l.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",l.prototype.fieldSpec]),b.prototype.fieldSpec.push(["iode","writeUInt8",1]),b.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var v=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GPS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GPS",v.prototype.msg_type=138,v.prototype.constructor=v,v.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:l.prototype.parser}).uint8("iode").uint16("iodc"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),v.prototype.fieldSpec.push(["tgd","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","writeFloatLE",4]),v.prototype.fieldSpec.push(["af1","writeFloatLE",4]),v.prototype.fieldSpec.push(["af2","writeFloatLE",4]),v.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),v.prototype.fieldSpec.push(["iode","writeUInt8",1]),v.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_QZSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.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:l.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",l.prototype.fieldSpec]),L.prototype.fieldSpec.push(["iode","writeUInt8",1]),L.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var I=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_BDS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_BDS",I.prototype.msg_type=137,I.prototype.constructor=I,I.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:l.prototype.parser}).uint8("iode").uint16("iodc"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),I.prototype.fieldSpec.push(["tgd1","writeFloatLE",4]),I.prototype.fieldSpec.push(["tgd2","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","writeDoubleLE",8]),I.prototype.fieldSpec.push(["af1","writeFloatLE",4]),I.prototype.fieldSpec.push(["af2","writeFloatLE",4]),I.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),I.prototype.fieldSpec.push(["iode","writeUInt8",1]),I.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var T=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",T.prototype.msg_type=149,T.prototype.constructor=T,T.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:l.prototype.parser}).uint16("iode").uint16("iodc"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),T.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),T.prototype.fieldSpec.push(["bgd_e1e5b","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","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af2","writeFloatLE",4]),T.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),T.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),T.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var M=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GAL",M.prototype.msg_type=141,M.prototype.constructor=M,M.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:l.prototype.parser}).uint16("iode").uint16("iodc").uint8("source"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),M.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),M.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),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","writeFloatLE",4]),M.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),M.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),M.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),M.prototype.fieldSpec.push(["source","writeUInt8",1]);var U=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",U.prototype.msg_type=130,U.prototype.constructor=U,U.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"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),U.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),U.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),U.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),U.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);var D=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(p.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]);var O=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(p.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]);var G=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(p.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]);var A=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(p.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]);var R=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_C",R.prototype.msg_type=135,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"),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]);var C=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",C.prototype.msg_type=136,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").uint8("iod"),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]),C.prototype.fieldSpec.push(["iod","writeUInt8",1]);var P=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(p.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]);var N=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(p.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:s.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",s.prototype.fieldSpec]),N.prototype.fieldSpec.push(["iode","writeUInt8",1]),N.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),N.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);var j=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(p.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]);var x=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(p.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]);var F=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(p.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:s.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",s.prototype.fieldSpec]),F.prototype.fieldSpec.push(["iode","writeUInt8",1]),F.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),F.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);var k=function(e,t){return p.call(this,e),this.messageType="ObservationHeaderDep",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(p.prototype)).messageType="ObservationHeaderDep",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").nest("t",{type:c.prototype.parser}).uint8("n_obs"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["t",c.prototype.fieldSpec]),k.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);var B=function(e,t){return p.call(this,e),this.messageType="CarrierPhaseDepA",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(p.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]);var q=function(e,t){return p.call(this,e),this.messageType="PackedObsContentDepA",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(p.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]);var z=function(e,t){return p.call(this,e),this.messageType="PackedObsContentDepB",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(p.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:s.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",s.prototype.fieldSpec]);var H=function(e,t){return p.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(p.prototype)).messageType="PackedObsContentDepC",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:a.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:s.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["P","writeUInt32LE",4]),H.prototype.fieldSpec.push(["L",a.prototype.fieldSpec]),H.prototype.fieldSpec.push(["cn0","writeUInt8",1]),H.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),H.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);var V=function(e,t){return p.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(p.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]);var W=function(e,t){return p.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(W.prototype=Object.create(p.prototype)).messageType="MSG_OBS_DEP_B",W.prototype.msg_type=67,W.prototype.constructor=W,W.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",z.prototype.fieldSpec,function(){return this.fields.array.length},null]);var Y=function(e,t){return p.call(this,e),this.messageType="MSG_OBS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(p.prototype)).messageType="MSG_OBS_DEP_C",Y.prototype.msg_type=73,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:H.prototype.parser,readUntil:"eof"}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),Y.prototype.fieldSpec.push(["obs","array",H.prototype.fieldSpec,function(){return this.fields.array.length},null]);var Q=function(e,t){return p.call(this,e),this.messageType="MSG_IONO",this.fields=t||this.parser.parse(e.payload),this};(Q.prototype=Object.create(p.prototype)).messageType="MSG_IONO",Q.prototype.msg_type=144,Q.prototype.constructor=Q,Q.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:l.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",l.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]);var K=function(e,t){return p.call(this,e),this.messageType="MSG_SV_CONFIGURATION_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(K.prototype=Object.create(p.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:l.prototype.parser}).uint32("l2c_mask"),K.prototype.fieldSpec=[],K.prototype.fieldSpec.push(["t_nmct",l.prototype.fieldSpec]),K.prototype.fieldSpec.push(["l2c_mask","writeUInt32LE",4]);var X=function(e,t){return p.call(this,e),this.messageType="GnssCapb",this.fields=t||this.parser.parse(e.payload),this};(X.prototype=Object.create(p.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]);var J=function(e,t){return p.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(p.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:l.prototype.parser}).nest("gc",{type:X.prototype.parser}),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_nmct",l.prototype.fieldSpec]),J.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);var $=function(e,t){return p.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(p.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",$.prototype.msg_type=146,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).uint8("prn").uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),$.prototype.fieldSpec.push(["prn","writeUInt8",1]),$.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]);var Z=function(e,t){return p.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(p.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",Z.prototype.msg_type=147,Z.prototype.constructor=Z,Z.prototype.parser=(new o).endianess("little").nest("t_op",{type:l.prototype.parser}).nest("sid",{type:s.prototype.parser}).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(["sid",s.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["valid","writeUInt8",1]),Z.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);var ee=function(e,t){return p.call(this,e),this.messageType="MSG_GROUP_DELAY",this.fields=t||this.parser.parse(e.payload),this};(ee.prototype=Object.create(p.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:l.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),ee.prototype.fieldSpec=[],ee.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["sid",i.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]);var te=function(e,t){return p.call(this,e),this.messageType="AlmanacCommonContent",this.fields=t||this.parser.parse(e.payload),this};(te.prototype=Object.create(p.prototype)).messageType="AlmanacCommonContent",te.prototype.constructor=te,te.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).nest("toa",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),te.prototype.fieldSpec=[],te.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),te.prototype.fieldSpec.push(["toa",l.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]);var re=function(e,t){return p.call(this,e),this.messageType="AlmanacCommonContentDep",this.fields=t||this.parser.parse(e.payload),this};(re.prototype=Object.create(p.prototype)).messageType="AlmanacCommonContentDep",re.prototype.constructor=re,re.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toa",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),re.prototype.fieldSpec=[],re.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),re.prototype.fieldSpec.push(["toa",l.prototype.fieldSpec]),re.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),re.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),re.prototype.fieldSpec.push(["valid","writeUInt8",1]),re.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);var pe=function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(pe.prototype=Object.create(p.prototype)).messageType="MSG_ALMANAC_GPS_DEP",pe.prototype.msg_type=112,pe.prototype.constructor=pe,pe.prototype.parser=(new o).endianess("little").nest("common",{type:re.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),pe.prototype.fieldSpec=[],pe.prototype.fieldSpec.push(["common",re.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["w","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);var oe=function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC_GPS",this.fields=t||this.parser.parse(e.payload),this};(oe.prototype=Object.create(p.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]);var ie=function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC_GLO_DEP",this.fields=t||this.parser.parse(e.payload),this};(ie.prototype=Object.create(p.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:re.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",re.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]);var se=function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC_GLO",this.fields=t||this.parser.parse(e.payload),this};(se.prototype=Object.create(p.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]);var ne=function(e,t){return p.call(this,e),this.messageType="MSG_GLO_BIASES",this.fields=t||this.parser.parse(e.payload),this};(ne.prototype=Object.create(p.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]);var ae=function(e,t){return p.call(this,e),this.messageType="SvAzEl",this.fields=t||this.parser.parse(e.payload),this};(ae.prototype=Object.create(p.prototype)).messageType="SvAzEl",ae.prototype.constructor=ae,ae.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("az").int8("el"),ae.prototype.fieldSpec=[],ae.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),ae.prototype.fieldSpec.push(["az","writeUInt8",1]),ae.prototype.fieldSpec.push(["el","writeInt8",1]);var le=function(e,t){return p.call(this,e),this.messageType="MSG_SV_AZ_EL",this.fields=t||this.parser.parse(e.payload),this};(le.prototype=Object.create(p.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]);var ce=function(e,t){return p.call(this,e),this.messageType="MSG_OSR",this.fields=t||this.parser.parse(e.payload),this};(ce.prototype=Object.create(p.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:f.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:h,PackedOsrContent:f,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:v,MsgEphemerisGps:v,142:L,MsgEphemerisQzss:L,137:I,MsgEphemerisBds:I,149:T,MsgEphemerisGalDepA:T,141:M,MsgEphemerisGal:M,130:U,MsgEphemerisSbasDepA:U,131:D,MsgEphemerisGloDepA:D,132:O,MsgEphemerisSbasDepB:O,140:G,MsgEphemerisSbas:G,133:A,MsgEphemerisGloDepB:A,135:R,MsgEphemerisGloDepC:R,136:C,MsgEphemerisGloDepD:C,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:W,MsgObsDepB:W,73:Y,MsgObsDepC:Y,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:J,MsgGnssCapb:J,146:$,MsgGroupDelayDepA:$,147:Z,MsgGroupDelayDepB:Z,148:ee,MsgGroupDelay:ee,AlmanacCommonContent:te,AlmanacCommonContentDep:re,112:pe,MsgAlmanacGpsDep:pe,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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=r(0).GnssSignalDep,n=r(0).GPSTime,a=(r(0).CarrierPhase,n=r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep),l=(r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC",this.fields=t||this.parser.parse(e.payload),this});(l.prototype=Object.create(p.prototype)).messageType="MSG_ALMANAC",l.prototype.msg_type=105,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little"),l.prototype.fieldSpec=[];var c=function(e,t){return p.call(this,e),this.messageType="MSG_SET_TIME",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.prototype)).messageType="MSG_SET_TIME",c.prototype.msg_type=104,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little"),c.prototype.fieldSpec=[];var u=function(e,t){return p.call(this,e),this.messageType="MSG_RESET",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_RESET_DEP",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.prototype)).messageType="MSG_RESET_DEP",y.prototype.msg_type=178,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];var h=function(e,t){return p.call(this,e),this.messageType="MSG_CW_RESULTS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_CW_RESULTS",h.prototype.msg_type=192,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little"),h.prototype.fieldSpec=[];var f=function(e,t){return p.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_CW_START",f.prototype.msg_type=193,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little"),f.prototype.fieldSpec=[];var d=function(e,t){return p.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.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]);var _=function(e,t){return p.call(this,e),this.messageType="MSG_INIT_BASE_DEP",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.prototype)).messageType="MSG_INIT_BASE_DEP",_.prototype.msg_type=35,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little"),_.prototype.fieldSpec=[];var S=function(e,t){return p.call(this,e),this.messageType="MSG_THREAD_STATE",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.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]);var g=function(e,t){return p.call(this,e),this.messageType="UARTChannel",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.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]);var w=function(e,t){return p.call(this,e),this.messageType="Period",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.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]);var E=function(e,t){return p.call(this,e),this.messageType="Latency",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.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]);var m=function(e,t){return p.call(this,e),this.messageType="MSG_UART_STATE",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.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]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_UART_STATE_DEPA",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.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]);var v=function(e,t){return p.call(this,e),this.messageType="MSG_IAR_STATE",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.prototype)).messageType="MSG_IAR_STATE",v.prototype.msg_type=25,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("num_hyps"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["num_hyps","writeUInt32LE",4]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_MASK_SATELLITE",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.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]);var I=function(e,t){return p.call(this,e),this.messageType="MSG_MASK_SATELLITE_DEP",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(p.prototype)).messageType="MSG_MASK_SATELLITE_DEP",I.prototype.msg_type=27,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:s.prototype.parser}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["mask","writeUInt8",1]),I.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);var T=function(e,t){return p.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(p.prototype)).messageType="MSG_DEVICE_MONITOR",T.prototype.msg_type=181,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),T.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);var M=function(e,t){return p.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(p.prototype)).messageType="MSG_COMMAND_REQ",M.prototype.msg_type=184,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["command","string",null]);var U=function(e,t){return p.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(p.prototype)).messageType="MSG_COMMAND_RESP",U.prototype.msg_type=185,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),U.prototype.fieldSpec.push(["code","writeInt32LE",4]);var D=function(e,t){return p.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(p.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]);var O=function(e,t){return p.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(p.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=[];var G=function(e,t){return p.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(p.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]);var A=function(e,t){return p.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(p.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]);var R=function(e,t){return p.call(this,e),this.messageType="MSG_NETWORK_BANDWIDTH_USAGE",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(p.prototype)).messageType="MSG_NETWORK_BANDWIDTH_USAGE",R.prototype.msg_type=189,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").array("interfaces",{type:A.prototype.parser,readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["interfaces","array",A.prototype.fieldSpec,function(){return this.fields.array.length},null]);var C=function(e,t){return p.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(p.prototype)).messageType="MSG_CELL_MODEM_STATUS",C.prototype.msg_type=190,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),C.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),C.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},null]);var P=function(e,t){return p.call(this,e),this.messageType="MSG_SPECAN_DEP",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(p.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]);var N=function(e,t){return p.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(p.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]);var j=function(e,t){return p.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(p.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:h,MsgCwResults:h,193:f,MsgCwStart:f,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:v,MsgIarState:v,43:L,MsgMaskSatellite:L,27:I,MsgMaskSatelliteDep:I,181:T,MsgDeviceMonitor:T,184:M,MsgCommandReq:M,185:U,MsgCommandResp:U,188:D,MsgCommandOutput:D,186:O,MsgNetworkStateReq:O,187:G,MsgNetworkStateResp:G,NetworkUsage:A,189:R,MsgNetworkBandwidthUsage:R,190:C,MsgCellModemStatus:C,80:P,MsgSpecanDep:P,81:N,MsgSpecan:N,191:j,MsgFrontEndGain:j}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=(r(0).GnssSignalDep,r(0).GPSTime,r(0).CarrierPhase,r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep,r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_SBAS_RAW",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_SAVE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.prototype)).messageType="MSG_SETTINGS_SAVE",i.prototype.msg_type=161,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];var s=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_WRITE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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=[];var h=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_REGISTER",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_SETTINGS_REGISTER",h.prototype.msg_type=174,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["setting","string",null]);var f=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",f.prototype.msg_type=431,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["status","writeUInt8",1]),f.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:h,MsgSettingsRegister:h,431:f,MsgSettingsRegisterResp:f}},function(e,t,r){var p=r(2),o=r(13).Parser,i=function(e){return p.call(this,e),this.messageType="SBPSignal",this.fields=this.parser.parse(e.payload),this};(i.prototype=Object.create(p.prototype)).constructor=i,i.prototype.parser=(new o).endianess("little").uint16("sat").uint8("band").uint8("constellation"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sat","writeUInt16LE",2]),i.prototype.fieldSpec.push(["band","writeUInt8",1]),i.prototype.fieldSpec.push(["constellation","writeUInt8",1]),e.exports={SBPSignal:i}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=(r(0).GnssSignalDep,r(0).GPSTime,r(0).CarrierPhase,r(0).GPSTime,r(0).GPSTimeSec),n=(r(0).GPSTimeDep,r(0).SvId),a=function(e,t){return p.call(this,e),this.messageType="CodeBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="PhaseBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="STECHeader",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.prototype)).messageType="STECHeader",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]);var u=function(e,t){return p.call(this,e),this.messageType="GriddedCorrectionHeader",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.prototype)).messageType="GriddedCorrectionHeader",u.prototype.constructor=u,u.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"),u.prototype.fieldSpec=[],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]);var y=function(e,t){return p.call(this,e),this.messageType="STECSatElement",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]);var h=function(e,t){return p.call(this,e),this.messageType="TroposphericDelayCorrectionNoStd",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="TroposphericDelayCorrectionNoStd",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),h.prototype.fieldSpec.push(["wet","writeInt8",1]);var f=function(e,t){return p.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="TroposphericDelayCorrection",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),f.prototype.fieldSpec.push(["wet","writeInt8",1]),f.prototype.fieldSpec.push(["stddev","writeUInt8",1]);var d=function(e,t){return p.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.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]);var _=function(e,t){return p.call(this,e),this.messageType="STECResidual",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.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]);var S=function(e,t){return p.call(this,e),this.messageType="GridElementNoStd",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.prototype)).messageType="GridElementNoStd",S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:d.prototype.parser,readUntil:"eof"}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["index","writeUInt16LE",2]),S.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),S.prototype.fieldSpec.push(["stec_residuals","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]);var g=function(e,t){return p.call(this,e),this.messageType="GridElement",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.prototype)).messageType="GridElement",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["index","writeUInt16LE",2]),g.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),g.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);var w=function(e,t){return p.call(this,e),this.messageType="GridDefinitionHeader",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.prototype)).messageType="GridDefinitionHeader",w.prototype.constructor=w,w.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"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["region_size_inverse","writeUInt8",1]),w.prototype.fieldSpec.push(["area_width","writeUInt16LE",2]),w.prototype.fieldSpec.push(["lat_nw_corner_enc","writeUInt16LE",2]),w.prototype.fieldSpec.push(["lon_nw_corner_enc","writeUInt16LE",2]),w.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),w.prototype.fieldSpec.push(["seq_num","writeUInt8",1]);var E=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.prototype)).messageType="MSG_SSR_ORBIT_CLOCK",E.prototype.msg_type=1501,E.prototype.constructor=E,E.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"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),E.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),E.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),E.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),E.prototype.fieldSpec.push(["iod","writeUInt32LE",4]),E.prototype.fieldSpec.push(["radial","writeInt32LE",4]),E.prototype.fieldSpec.push(["along","writeInt32LE",4]),E.prototype.fieldSpec.push(["cross","writeInt32LE",4]),E.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),E.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),E.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),E.prototype.fieldSpec.push(["c0","writeInt32LE",4]),E.prototype.fieldSpec.push(["c1","writeInt32LE",4]),E.prototype.fieldSpec.push(["c2","writeInt32LE",4]);var m=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",m.prototype.msg_type=1500,m.prototype.constructor=m,m.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"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),m.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),m.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),m.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),m.prototype.fieldSpec.push(["iod","writeUInt8",1]),m.prototype.fieldSpec.push(["radial","writeInt32LE",4]),m.prototype.fieldSpec.push(["along","writeInt32LE",4]),m.prototype.fieldSpec.push(["cross","writeInt32LE",4]),m.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),m.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),m.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),m.prototype.fieldSpec.push(["c0","writeInt32LE",4]),m.prototype.fieldSpec.push(["c1","writeInt32LE",4]),m.prototype.fieldSpec.push(["c2","writeInt32LE",4]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_CODE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.prototype)).messageType="MSG_SSR_CODE_BIASES",b.prototype.msg_type=1505,b.prototype.constructor=b,b.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"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),b.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),b.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),b.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),b.prototype.fieldSpec.push(["biases","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);var v=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_PHASE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.prototype)).messageType="MSG_SSR_PHASE_BIASES",v.prototype.msg_type=1510,v.prototype.constructor=v,v.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"}),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),v.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),v.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),v.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),v.prototype.fieldSpec.push(["dispersive_bias","writeUInt8",1]),v.prototype.fieldSpec.push(["mw_consistency","writeUInt8",1]),v.prototype.fieldSpec.push(["yaw","writeUInt16LE",2]),v.prototype.fieldSpec.push(["yaw_rate","writeInt8",1]),v.prototype.fieldSpec.push(["biases","array",l.prototype.fieldSpec,function(){return this.fields.array.length},null]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.prototype)).messageType="MSG_SSR_STEC_CORRECTION",L.prototype.msg_type=1515,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("header",{type:c.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["header",c.prototype.fieldSpec]),L.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);var I=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(p.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD",I.prototype.msg_type=1520,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).nest("element",{type:S.prototype.parser}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),I.prototype.fieldSpec.push(["element",S.prototype.fieldSpec]);var T=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(p.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION",T.prototype.msg_type=1530,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).nest("element",{type:g.prototype.parser}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),T.prototype.fieldSpec.push(["element",g.prototype.fieldSpec]);var M=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_GRID_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(p.prototype)).messageType="MSG_SSR_GRID_DEFINITION",M.prototype.msg_type=1525,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("header",{type:w.prototype.parser}).array("rle_list",{type:"uint8",readUntil:"eof"}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["header",w.prototype.fieldSpec]),M.prototype.fieldSpec.push(["rle_list","array","writeUInt8",function(){return 1},null]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:h,TroposphericDelayCorrection:f,STECResidualNoStd:d,STECResidual:_,GridElementNoStd:S,GridElement:g,GridDefinitionHeader:w,1501:E,MsgSsrOrbitClock:E,1500:m,MsgSsrOrbitClockDepA:m,1505:b,MsgSsrCodeBiases:b,1510:v,MsgSsrPhaseBiases:v,1515:L,MsgSsrStecCorrection:L,1520:I,MsgSsrGriddedCorrectionNoStd:I,1530:T,MsgSsrGriddedCorrection:T,1525:M,MsgSsrGridDefinition:M}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_STARTUP",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_DGNSS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_HEARTBEAT",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_INS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.prototype)).messageType="MSG_INS_STATUS",a.prototype.msg_type=65283,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_CSAC_TELEMETRY",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.prototype)).messageType="MSG_CSAC_TELEMETRY",l.prototype.msg_type=65284,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["id","writeUInt8",1]),l.prototype.fieldSpec.push(["telemetry","string",null]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",c.prototype.msg_type=65285,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["id","writeUInt8",1]),c.prototype.fieldSpec.push(["telemetry_labels","string",null]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.prototype)).messageType="MSG_INS_UPDATES",u.prototype.msg_type=65286,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),u.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),u.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),u.prototype.fieldSpec.push(["speed","writeUInt8",1]),u.prototype.fieldSpec.push(["nhc","writeUInt8",1]),u.prototype.fieldSpec.push(["zerovel","writeUInt8",1]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_GNSS_TIME_OFFSET",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.prototype)).messageType="MSG_GNSS_TIME_OFFSET",y.prototype.msg_type=65287,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").int16("weeks").int32("milliseconds").int16("microseconds").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["weeks","writeInt16LE",2]),y.prototype.fieldSpec.push(["milliseconds","writeInt32LE",4]),y.prototype.fieldSpec.push(["microseconds","writeInt16LE",2]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={65280:i,MsgStartup:i,65282:s,MsgDgnssStatus:s,65535:n,MsgHeartbeat:n,65283:a,MsgInsStatus:a,65284:l,MsgCsacTelemetry:l,65285:c,MsgCsacTelemetryLabels:c,65286:u,MsgInsUpdates:u,65287:y,MsgGnssTimeOffset:y}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=r(0).GnssSignalDep,n=r(0).GPSTime,a=r(0).CarrierPhase,l=(n=r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep),c=(r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(c.prototype=Object.create(p.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:n.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:a.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:i.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",n.prototype.fieldSpec]),c.prototype.fieldSpec.push(["P","writeUInt32LE",4]),c.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["L",a.prototype.fieldSpec]),c.prototype.fieldSpec.push(["cn0","writeUInt8",1]),c.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),c.prototype.fieldSpec.push(["sid",i.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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:a.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"),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",a.prototype.fieldSpec]),u.prototype.fieldSpec.push(["cn0","writeUInt8",1]),u.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sid",s.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]);var y=function(e,t){return p.call(this,e),this.messageType="TrackingChannelState",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.prototype)).messageType="TrackingChannelState",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("fcn").uint8("cn0"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),y.prototype.fieldSpec.push(["fcn","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt8",1]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_TRACKING_STATE",h.prototype.msg_type=65,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("states",{type:y.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["states","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);var f=function(e,t){return p.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MeasurementState",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").nest("mesid",{type:i.prototype.parser}).uint8("cn0"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["mesid",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["cn0","writeUInt8",1]);var d=function(e,t){return p.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.prototype)).messageType="MSG_MEASUREMENT_STATE",d.prototype.msg_type=97,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("states",{type:f.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["states","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]);var _=function(e,t){return p.call(this,e),this.messageType="TrackingChannelCorrelation",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.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]);var S=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_IQ",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.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:i.prototype.parser}).array("corrs",{length:3,type:_.prototype.parser}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["channel","writeUInt8",1]),S.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),S.prototype.fieldSpec.push(["corrs","array",_.prototype.fieldSpec,function(){return this.fields.array.length},3]);var g=function(e,t){return p.call(this,e),this.messageType="TrackingChannelCorrelationDep",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.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]);var w=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.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:i.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",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);var E=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.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:s.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",s.prototype.fieldSpec]),E.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);var m=function(e,t){return p.call(this,e),this.messageType="TrackingChannelStateDepA",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.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]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.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]);var v=function(e,t){return p.call(this,e),this.messageType="TrackingChannelStateDepB",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.prototype)).messageType="TrackingChannelStateDepB",v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint8("state").nest("sid",{type:s.prototype.parser}).floatle("cn0"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["state","writeUInt8",1]),v.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),v.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.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:v.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["states","array",v.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={33:c,MsgTrackingStateDetailedDepA:c,17:u,MsgTrackingStateDetailedDep:u,TrackingChannelState:y,65:h,MsgTrackingState:h,MeasurementState:f,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:v,19:L,MsgTrackingStateDepB:L}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_USER_DATA",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_ODOMETRY",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_WHEELTICK",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_HEADING",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_ORIENT_QUAT",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_ORIENT_EULER",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_ANGULAR_RATE",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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}}]); \ No newline at end of file +function p(e,t){if(e===t)return 0;for(var r=e.length,p=t.length,o=0,i=Math.min(r,p);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],r,p))return!1;return!0}(e,t,r,s))}return r?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,r,p){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(p=r,r=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),p=(r&&r.name?" ("+r.name+").":".")+(p?" "+p:"."),e&&!o&&_(o,r,"Missing expected exception"+p);var s="string"==typeof p,n=!e&&o&&!r;if((!e&&i.isError(o)&&s&&E(o,r)||n)&&_(o,r,"Got unwanted exception"+p),e&&o&&r&&!E(o,r)||!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 f(d(e.actual),128)+" "+e.operator+" "+f(d(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||_;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var p=r.stack,o=h(t),i=p.indexOf("\n"+o);if(i>=0){var s=p.indexOf("\n",i+1);p=p.substring(s+1)}this.stack=p}}},i.inherits(u.AssertionError,Error),u.fail=_,u.ok=S,u.equal=function(e,t,r){e!=t&&_(e,t,r,"==",u.equal)},u.notEqual=function(e,t,r){e==t&&_(e,t,r,"!=",u.notEqual)},u.deepEqual=function(e,t,r){g(e,t,!1)||_(e,t,r,"deepEqual",u.deepEqual)},u.deepStrictEqual=function(e,t,r){g(e,t,!0)||_(e,t,r,"deepStrictEqual",u.deepStrictEqual)},u.notDeepEqual=function(e,t,r){g(e,t,!1)&&_(e,t,r,"notDeepEqual",u.notDeepEqual)},u.notDeepStrictEqual=function e(t,r,p){g(t,r,!0)&&_(t,r,p,"notDeepStrictEqual",e)},u.strictEqual=function(e,t,r){e!==t&&_(e,t,r,"===",u.strictEqual)},u.notStrictEqual=function(e,t,r){e===t&&_(e,t,r,"!==",u.notStrictEqual)},u.throws=function(e,t,r){m(!0,e,t,r)},u.doesNotThrow=function(e,t,r){m(!1,e,t,r)},u.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var r in e)s.call(e,r)&&t.push(r);return t}}).call(this,r(5))},function(e,t,r){(function(e,p){var o=/%[sdj%]/g;t.format=function(e){if(!S(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(p[r++]);case"%d":return Number(p[r++]);case"%j":try{return JSON.stringify(p[r++])}catch(e){return"[Circular]"}default:return e}})),a=p[r];r=3&&(p.depth=arguments[2]),arguments.length>=4&&(p.colors=arguments[3]),f(r)?p.showHidden=r:r&&t._extend(p,r),g(p.showHidden)&&(p.showHidden=!1),g(p.depth)&&(p.depth=2),g(p.colors)&&(p.colors=!1),g(p.customInspect)&&(p.customInspect=!0),p.colors&&(p.stylize=a),c(p,e,p.depth)}function a(e,t){var r=n.styles[t];return r?"["+n.colors[r][0]+"m"+e+"["+n.colors[r][1]+"m":e}function l(e,t){return e}function c(e,r,p){if(e.customInspect&&r&&v(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(p,e);return S(o)||(o=c(e,o,p)),o}var i=function(e,t){if(g(t))return e.stylize("undefined","undefined");if(S(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(_(t))return e.stylize(""+t,"number");if(f(t))return e.stylize(""+t,"boolean");if(d(t))return e.stylize("null","null")}(e,r);if(i)return i;var s=Object.keys(r),n=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(r)),b(r)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return u(r);if(0===s.length){if(v(r)){var a=r.name?": "+r.name:"";return e.stylize("[Function"+a+"]","special")}if(w(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(m(r))return e.stylize(Date.prototype.toString.call(r),"date");if(b(r))return u(r)}var l,E="",L=!1,I=["{","}"];(h(r)&&(L=!0,I=["[","]"]),v(r))&&(E=" [Function"+(r.name?": "+r.name:"")+"]");return w(r)&&(E=" "+RegExp.prototype.toString.call(r)),m(r)&&(E=" "+Date.prototype.toUTCString.call(r)),b(r)&&(E=" "+u(r)),0!==s.length||L&&0!=r.length?p<0?w(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),l=L?function(e,t,r,p,o){for(var i=[],s=0,n=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(l,E,I)):I[0]+E+I[1]}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function y(e,t,r,p,o,i){var s,n,a;if((a=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?n=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(n=e.stylize("[Setter]","special")),U(p,o)||(s="["+o+"]"),n||(e.seen.indexOf(a.value)<0?(n=d(r)?c(e,a.value,null):c(e,a.value,r-1)).indexOf("\n")>-1&&(n=i?n.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+n.split("\n").map((function(e){return" "+e})).join("\n")):n=e.stylize("[Circular]","special")),g(s)){if(i&&o.match(/^\d+$/))return n;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+n}function h(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function d(e){return null===e}function _(e){return"number"==typeof e}function S(e){return"string"==typeof e}function g(e){return void 0===e}function w(e){return E(e)&&"[object RegExp]"===L(e)}function E(e){return"object"==typeof e&&null!==e}function m(e){return E(e)&&"[object Date]"===L(e)}function b(e){return E(e)&&("[object Error]"===L(e)||e instanceof Error)}function v(e){return"function"==typeof e}function L(e){return Object.prototype.toString.call(e)}function I(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(g(i)&&(i=p.env.NODE_DEBUG||""),e=e.toUpperCase(),!s[e])if(new RegExp("\\b"+e+"\\b","i").test(i)){var r=p.pid;s[e]=function(){var p=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,p)}}else s[e]=function(){};return s[e]},t.inspect=n,n.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},n.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=f,t.isNull=d,t.isNullOrUndefined=function(e){return null==e},t.isNumber=_,t.isString=S,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=g,t.isRegExp=w,t.isObject=E,t.isDate=m,t.isError=b,t.isFunction=v,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(43);var T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function M(){var e=new Date,t=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(":");return[e.getDate(),T[e.getMonth()],t].join(" ")}function U(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",M(),t.format.apply(t,arguments))},t.inherits=r(6),t._extend=function(e,t){if(!t||!E(t))return e;for(var r=Object.keys(t),p=r.length;p--;)e[r[p]]=t[r[p]];return e}}).call(this,r(5),r(9))},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,r){var p;!function(r){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 r=parseInt(e,t||10);return this._low=65535&r,this._high=r>>>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,r=t>>>16;return r+=this._high+e._high,this._low=65535&t,this._high=65535&r,this},o.prototype.subtract=function(e){return this.add(e.clone().negate())},o.prototype.multiply=function(e){var t,r,p=this._high,o=this._low,i=e._high,s=e._low;return t=(r=o*s)>>>16,t+=p*s,t&=65535,t+=o*i,this._low=65535&r,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(),r=-1;!this.lt(t);)t.shiftLeft(1,!0),r++;for(this.remainder=this.clone(),this._low=0,this._high=0;r>=0;r--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),r>=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===(p=function(){return o}.apply(t,[]))||(e.exports=p)}()},function(e,t,r){var p;!function(r){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,r,p){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,r,p)}function n(e,t,r,p){return void 0===r?(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|r,this._a48=0|p,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 r=o[t]||new s(Math.pow(t,5)),p=0,i=e.length;p=0&&(r.div(t),p[o]=r.remainder.toNumber().toString(e),r.gt(t));o--);return p[o-1]=r.toNumber().toString(e),p.join("")},s.prototype.add=function(e){var t=this._a00+e._a00,r=t>>>16,p=(r+=this._a16+e._a16)>>>16,o=(p+=this._a32+e._a32)>>>16;return o+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&r,this._a32=65535&p,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,r=this._a16,p=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+=r*i)>>>16;var u=(c+=t*n)>>>16;return c&=65535,u+=(c+=r*s)>>>16,c&=65535,u+=(c+=p*i)>>>16,u+=t*e._a48,u&=65535,u+=r*n,u&=65535,u+=p*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(),r=-1;!this.lt(t);)t.shiftLeft(1,!0),r++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;r>=0;r--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),r>=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 r=this._a48<<16|this._a32,p=this._a16<<16|this._a00,o=r<>>32-e,i=p<>>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 r=this._a48<<16|this._a32,p=this._a16<<16|this._a00,o=r>>>e|p<<32-e,i=p>>>e|r<<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===(p=function(){return s}.apply(t,[]))||(e.exports=p)}()},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=r(0).GnssSignalDep,n=(r(0).GPSTime,r(0).CarrierPhase,r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep,r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_RESULT",this.fields=t||this.parser.parse(e.payload),this});(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="AcqSvProfile",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="AcqSvProfileDep",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_ACQ_SV_PROFILE",h.prototype.msg_type=46,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:u.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["acq_sv_profile","array",u.prototype.fieldSpec,function(){return this.fields.array.length},null]);var f=function(e,t){return p.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",f.prototype.msg_type=30,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.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:h,MsgAcqSvProfile:h,30:f,MsgAcqSvProfileDep:f}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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=[];var s=function(e,t){return p.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_BOOTLOADER_JUMP_TO_APP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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=[];var l=function(e,t){return p.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_EXT_EVENT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_READ_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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").array("contents",{type:"uint8",readUntil:"eof"}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),a.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_REMOVE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_WRITE_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_CONFIG_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_FILEIO_CONFIG_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_FILEIO_CONFIG_RESP",h.prototype.msg_type=4098,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("window_size").uint32("batch_size").uint32("fileio_version"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),h.prototype.fieldSpec.push(["window_size","writeUInt32LE",4]),h.prototype.fieldSpec.push(["batch_size","writeUInt32LE",4]),h.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:h,MsgFileioConfigResp:h}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_PROGRAM",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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"]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_DONE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_FLASH_ERASE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_STM_FLASH_LOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_STM_FLASH_UNLOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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=[];var h=function(e,t){return p.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_STM_UNIQUE_ID_RESP",h.prototype.msg_type=229,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("stm_id",{length:12,type:"uint8"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["stm_id","array","writeUInt8",function(){return 1},12]);var f=function(e,t){return p.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",f.prototype.msg_type=243,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),f.prototype.fieldSpec=[],f.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:h,MsgStmUniqueIdResp:h,243:f,MsgM25FlashWriteStatus:f}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_IMU_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_IMU_AUX",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_CPU_STATE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.prototype)).messageType="MSG_LINUX_CPU_STATE",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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.prototype)).messageType="MSG_LINUX_MEM_STATE",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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.prototype)).messageType="MSG_LINUX_SYS_STATE",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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_SOCKET_USAGE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_COUNT",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_SUMMARY",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]),e.exports={32512:i,MsgLinuxCpuState:i,32513:s,MsgLinuxMemState:s,32514:n,MsgLinuxSysState:n,32515:a,MsgLinuxProcessSocketCounts:a,32516:l,MsgLinuxProcessSocketQueues:l,32517:c,MsgLinuxSocketUsage:c,32518:u,MsgLinuxProcessFdCount:u,32519:y,MsgLinuxProcessFdSummary:y}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_LOG",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_FWD",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.prototype)).messageType="MSG_FWD",s.prototype.msg_type=1026,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("source").uint8("protocol").string("fwd_payload",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["protocol","writeUInt8",1]),s.prototype.fieldSpec.push(["fwd_payload","string",null]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_PRINT_DEP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_MAG_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_GPS_TIME",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_UTC_TIME",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.prototype)).messageType="MSG_UTC_TIME",s.prototype.msg_type=259,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["year","writeUInt16LE",2]),s.prototype.fieldSpec.push(["month","writeUInt8",1]),s.prototype.fieldSpec.push(["day","writeUInt8",1]),s.prototype.fieldSpec.push(["hours","writeUInt8",1]),s.prototype.fieldSpec.push(["minutes","writeUInt8",1]),s.prototype.fieldSpec.push(["seconds","writeUInt8",1]),s.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_DOPS",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.prototype)).messageType="MSG_DOPS",n.prototype.msg_type=520,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop").uint8("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF",a.prototype.msg_type=521,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["x","writeDoubleLE",8]),a.prototype.fieldSpec.push(["y","writeDoubleLE",8]),a.prototype.fieldSpec.push(["z","writeDoubleLE",8]),a.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),a.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),a.prototype.fieldSpec.push(["flags","writeUInt8",1]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF_COV",l.prototype.msg_type=532,l.prototype.constructor=l,l.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"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["x","writeDoubleLE",8]),l.prototype.fieldSpec.push(["y","writeDoubleLE",8]),l.prototype.fieldSpec.push(["z","writeDoubleLE",8]),l.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),l.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),l.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),l.prototype.fieldSpec.push(["flags","writeUInt8",1]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH",c.prototype.msg_type=522,c.prototype.constructor=c,c.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"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),c.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),c.prototype.fieldSpec.push(["height","writeDoubleLE",8]),c.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH_COV",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH_COV",u.prototype.msg_type=529,u.prototype.constructor=u,u.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"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),u.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),u.prototype.fieldSpec.push(["height","writeDoubleLE",8]),u.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),u.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),u.prototype.fieldSpec.push(["flags","writeUInt8",1]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_ECEF",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_ECEF",y.prototype.msg_type=523,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["tow","writeUInt32LE",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(["accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_NED",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_NED",h.prototype.msg_type=524,h.prototype.constructor=h,h.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"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),h.prototype.fieldSpec.push(["n","writeInt32LE",4]),h.prototype.fieldSpec.push(["e","writeInt32LE",4]),h.prototype.fieldSpec.push(["d","writeInt32LE",4]),h.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),h.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),h.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]);var f=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_VEL_ECEF",f.prototype.msg_type=525,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]);var d=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.prototype)).messageType="MSG_VEL_ECEF_COV",d.prototype.msg_type=533,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["x","writeInt32LE",4]),d.prototype.fieldSpec.push(["y","writeInt32LE",4]),d.prototype.fieldSpec.push(["z","writeInt32LE",4]),d.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),d.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),d.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]);var _=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED",_.prototype.msg_type=526,_.prototype.constructor=_,_.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"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),_.prototype.fieldSpec.push(["n","writeInt32LE",4]),_.prototype.fieldSpec.push(["e","writeInt32LE",4]),_.prototype.fieldSpec.push(["d","writeInt32LE",4]),_.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);var S=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED_COV",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED_COV",S.prototype.msg_type=530,S.prototype.constructor=S,S.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"),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(["cov_n_n","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),S.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),S.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);var g=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF_GNSS",g.prototype.msg_type=553,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),g.prototype.fieldSpec.push(["x","writeDoubleLE",8]),g.prototype.fieldSpec.push(["y","writeDoubleLE",8]),g.prototype.fieldSpec.push(["z","writeDoubleLE",8]),g.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),g.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt8",1]);var w=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF_COV_GNSS",w.prototype.msg_type=564,w.prototype.constructor=w,w.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"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),w.prototype.fieldSpec.push(["x","writeDoubleLE",8]),w.prototype.fieldSpec.push(["y","writeDoubleLE",8]),w.prototype.fieldSpec.push(["z","writeDoubleLE",8]),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]);var E=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH_GNSS",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH_GNSS",E.prototype.msg_type=554,E.prototype.constructor=E,E.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"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),E.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),E.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),E.prototype.fieldSpec.push(["height","writeDoubleLE",8]),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]);var m=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH_COV_GNSS",m.prototype.msg_type=561,m.prototype.constructor=m,m.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"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),m.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),m.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),m.prototype.fieldSpec.push(["height","writeDoubleLE",8]),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]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.prototype)).messageType="MSG_VEL_ECEF_GNSS",b.prototype.msg_type=557,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),b.prototype.fieldSpec.push(["x","writeInt32LE",4]),b.prototype.fieldSpec.push(["y","writeInt32LE",4]),b.prototype.fieldSpec.push(["z","writeInt32LE",4]),b.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["flags","writeUInt8",1]);var v=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.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]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED_GNSS",L.prototype.msg_type=558,L.prototype.constructor=L,L.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"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),L.prototype.fieldSpec.push(["n","writeInt32LE",4]),L.prototype.fieldSpec.push(["e","writeInt32LE",4]),L.prototype.fieldSpec.push(["d","writeInt32LE",4]),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]);var I=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED_COV_GNSS",I.prototype.msg_type=562,I.prototype.constructor=I,I.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"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),I.prototype.fieldSpec.push(["n","writeInt32LE",4]),I.prototype.fieldSpec.push(["e","writeInt32LE",4]),I.prototype.fieldSpec.push(["d","writeInt32LE",4]),I.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),I.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),I.prototype.fieldSpec.push(["flags","writeUInt8",1]);var T=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(p.prototype)).messageType="MSG_VEL_BODY",T.prototype.msg_type=531,T.prototype.constructor=T,T.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"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),T.prototype.fieldSpec.push(["x","writeInt32LE",4]),T.prototype.fieldSpec.push(["y","writeInt32LE",4]),T.prototype.fieldSpec.push(["z","writeInt32LE",4]),T.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["flags","writeUInt8",1]);var M=function(e,t){return p.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(p.prototype)).messageType="MSG_AGE_CORRECTIONS",M.prototype.msg_type=528,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),M.prototype.fieldSpec.push(["age","writeUInt16LE",2]);var U=function(e,t){return p.call(this,e),this.messageType="MSG_GPS_TIME_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(p.prototype)).messageType="MSG_GPS_TIME_DEP_A",U.prototype.msg_type=256,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),U.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),U.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);var D=function(e,t){return p.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(p.prototype)).messageType="MSG_DOPS_DEP_A",D.prototype.msg_type=518,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),D.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),D.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),D.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),D.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]);var O=function(e,t){return p.call(this,e),this.messageType="MSG_POS_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(p.prototype)).messageType="MSG_POS_ECEF_DEP_A",O.prototype.msg_type=512,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["x","writeDoubleLE",8]),O.prototype.fieldSpec.push(["y","writeDoubleLE",8]),O.prototype.fieldSpec.push(["z","writeDoubleLE",8]),O.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);var G=function(e,t){return p.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(p.prototype)).messageType="MSG_POS_LLH_DEP_A",G.prototype.msg_type=513,G.prototype.constructor=G,G.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"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),G.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),G.prototype.fieldSpec.push(["height","writeDoubleLE",8]),G.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),G.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),G.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),G.prototype.fieldSpec.push(["flags","writeUInt8",1]);var A=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",A.prototype.msg_type=514,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").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(["accuracy","writeUInt16LE",2]),A.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),A.prototype.fieldSpec.push(["flags","writeUInt8",1]);var R=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_NED_DEP_A",R.prototype.msg_type=515,R.prototype.constructor=R,R.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"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["n","writeInt32LE",4]),R.prototype.fieldSpec.push(["e","writeInt32LE",4]),R.prototype.fieldSpec.push(["d","writeInt32LE",4]),R.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),R.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),R.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),R.prototype.fieldSpec.push(["flags","writeUInt8",1]);var C=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(p.prototype)).messageType="MSG_VEL_ECEF_DEP_A",C.prototype.msg_type=516,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),C.prototype.fieldSpec.push(["x","writeInt32LE",4]),C.prototype.fieldSpec.push(["y","writeInt32LE",4]),C.prototype.fieldSpec.push(["z","writeInt32LE",4]),C.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),C.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),C.prototype.fieldSpec.push(["flags","writeUInt8",1]);var P=function(e,t){return p.call(this,e),this.messageType="MSG_VEL_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(p.prototype)).messageType="MSG_VEL_NED_DEP_A",P.prototype.msg_type=517,P.prototype.constructor=P,P.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"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),P.prototype.fieldSpec.push(["n","writeInt32LE",4]),P.prototype.fieldSpec.push(["e","writeInt32LE",4]),P.prototype.fieldSpec.push(["d","writeInt32LE",4]),P.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),P.prototype.fieldSpec.push(["flags","writeUInt8",1]);var N=function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_HEADING_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(p.prototype)).messageType="MSG_BASELINE_HEADING_DEP_A",N.prototype.msg_type=519,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);var j=function(e,t){return p.call(this,e),this.messageType="MSG_PROTECTION_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(p.prototype)).messageType="MSG_PROTECTION_LEVEL",j.prototype.msg_type=534,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").uint16("vpl").uint16("hpl").doublele("lat").doublele("lon").doublele("height").uint8("flags"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),j.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),j.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),j.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),j.prototype.fieldSpec.push(["height","writeDoubleLE",8]),j.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={258:i,MsgGpsTime:i,259:s,MsgUtcTime:s,520:n,MsgDops:n,521:a,MsgPosEcef:a,532:l,MsgPosEcefCov:l,522:c,MsgPosLlh:c,529:u,MsgPosLlhCov:u,523:y,MsgBaselineEcef:y,524:h,MsgBaselineNed:h,525:f,MsgVelEcef:f,533:d,MsgVelEcefCov:d,526:_,MsgVelNed:_,530:S,MsgVelNedCov:S,553:g,MsgPosEcefGnss:g,564:w,MsgPosEcefCovGnss:w,554:E,MsgPosLlhGnss:E,561:m,MsgPosLlhCovGnss:m,557:b,MsgVelEcefGnss:b,565:v,MsgVelEcefCovGnss:v,558:L,MsgVelNedGnss:L,562:I,MsgVelNedCovGnss:I,531:T,MsgVelBody:T,528:M,MsgAgeCorrections:M,256:U,MsgGpsTimeDepA:U,518:D,MsgDopsDepA:D,512:O,MsgPosEcefDepA:O,513:G,MsgPosLlhDepA:G,514:A,MsgBaselineEcefDepA:A,515:R,MsgBaselineNedDepA:R,516:C,MsgVelEcefDepA:C,517:P,MsgVelNedDepA:P,519:N,MsgBaselineHeadingDepA:N,534:j,MsgProtectionLevel:j}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=(r(0).GnssSignalDep,r(0).GPSTime,r(0).CarrierPhase,r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep,r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_NDB_EVENT",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=r(0).GnssSignalDep,n=r(0).GPSTime,a=r(0).CarrierPhase,l=(n=r(0).GPSTime,r(0).GPSTimeSec),c=r(0).GPSTimeDep,u=(r(0).SvId,function(e,t){return p.call(this,e),this.messageType="ObservationHeader",this.fields=t||this.parser.parse(e.payload),this});(u.prototype=Object.create(p.prototype)).messageType="ObservationHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("t",{type:n.prototype.parser}).uint8("n_obs"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);var y=function(e,t){return p.call(this,e),this.messageType="Doppler",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]);var h=function(e,t){return p.call(this,e),this.messageType="PackedObsContent",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="PackedObsContent",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:a.prototype.parser}).nest("D",{type:y.prototype.parser}).uint8("cn0").uint8("lock").uint8("flags").nest("sid",{type:i.prototype.parser}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["P","writeUInt32LE",4]),h.prototype.fieldSpec.push(["L",a.prototype.fieldSpec]),h.prototype.fieldSpec.push(["D",y.prototype.fieldSpec]),h.prototype.fieldSpec.push(["cn0","writeUInt8",1]),h.prototype.fieldSpec.push(["lock","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);var f=function(e,t){return p.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="PackedOsrContent",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:a.prototype.parser}).uint8("lock").uint8("flags").nest("sid",{type:i.prototype.parser}).uint16("iono_std").uint16("tropo_std").uint16("range_std"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["P","writeUInt32LE",4]),f.prototype.fieldSpec.push(["L",a.prototype.fieldSpec]),f.prototype.fieldSpec.push(["lock","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),f.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),f.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);var d=function(e,t){return p.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.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:h.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),d.prototype.fieldSpec.push(["obs","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]);var _=function(e,t){return p.call(this,e),this.messageType="MSG_BASE_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.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]);var S=function(e,t){return p.call(this,e),this.messageType="MSG_BASE_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.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]);var g=function(e,t){return p.call(this,e),this.messageType="EphemerisCommonContent",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.prototype)).messageType="EphemerisCommonContent",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).nest("toe",{type:l.prototype.parser}).floatle("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),g.prototype.fieldSpec.push(["toe",l.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]);var w=function(e,t){return p.call(this,e),this.messageType="EphemerisCommonContentDepB",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.prototype)).messageType="EphemerisCommonContentDepB",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).nest("toe",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["toe",l.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]);var E=function(e,t){return p.call(this,e),this.messageType="EphemerisCommonContentDepA",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.prototype)).messageType="EphemerisCommonContentDepA",E.prototype.constructor=E,E.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"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),E.prototype.fieldSpec.push(["toe",c.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]);var m=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_E",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.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:c.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",c.prototype.fieldSpec]),m.prototype.fieldSpec.push(["iode","writeUInt8",1]),m.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_F",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.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:l.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",l.prototype.fieldSpec]),b.prototype.fieldSpec.push(["iode","writeUInt8",1]),b.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var v=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GPS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GPS",v.prototype.msg_type=138,v.prototype.constructor=v,v.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:l.prototype.parser}).uint8("iode").uint16("iodc"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),v.prototype.fieldSpec.push(["tgd","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","writeFloatLE",4]),v.prototype.fieldSpec.push(["af1","writeFloatLE",4]),v.prototype.fieldSpec.push(["af2","writeFloatLE",4]),v.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),v.prototype.fieldSpec.push(["iode","writeUInt8",1]),v.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_QZSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.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:l.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",l.prototype.fieldSpec]),L.prototype.fieldSpec.push(["iode","writeUInt8",1]),L.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var I=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_BDS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_BDS",I.prototype.msg_type=137,I.prototype.constructor=I,I.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:l.prototype.parser}).uint8("iode").uint16("iodc"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),I.prototype.fieldSpec.push(["tgd1","writeFloatLE",4]),I.prototype.fieldSpec.push(["tgd2","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","writeDoubleLE",8]),I.prototype.fieldSpec.push(["af1","writeFloatLE",4]),I.prototype.fieldSpec.push(["af2","writeFloatLE",4]),I.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),I.prototype.fieldSpec.push(["iode","writeUInt8",1]),I.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var T=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",T.prototype.msg_type=149,T.prototype.constructor=T,T.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:l.prototype.parser}).uint16("iode").uint16("iodc"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),T.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),T.prototype.fieldSpec.push(["bgd_e1e5b","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","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af2","writeFloatLE",4]),T.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),T.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),T.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var M=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GAL",M.prototype.msg_type=141,M.prototype.constructor=M,M.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:l.prototype.parser}).uint16("iode").uint16("iodc").uint8("source"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),M.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),M.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),M.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),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","writeFloatLE",4]),M.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),M.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),M.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),M.prototype.fieldSpec.push(["source","writeUInt8",1]);var U=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",U.prototype.msg_type=130,U.prototype.constructor=U,U.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"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),U.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),U.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),U.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),U.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);var D=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(p.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]);var O=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(p.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]);var G=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(p.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]);var A=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(p.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]);var R=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_C",R.prototype.msg_type=135,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"),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]);var C=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(p.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",C.prototype.msg_type=136,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").uint8("iod"),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]),C.prototype.fieldSpec.push(["iod","writeUInt8",1]);var P=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_GLO",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(p.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]);var N=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(p.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:s.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",s.prototype.fieldSpec]),N.prototype.fieldSpec.push(["iode","writeUInt8",1]),N.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),N.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);var j=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(p.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]);var x=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(p.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]);var F=function(e,t){return p.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(p.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:s.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",s.prototype.fieldSpec]),F.prototype.fieldSpec.push(["iode","writeUInt8",1]),F.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),F.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);var k=function(e,t){return p.call(this,e),this.messageType="ObservationHeaderDep",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(p.prototype)).messageType="ObservationHeaderDep",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").nest("t",{type:c.prototype.parser}).uint8("n_obs"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["t",c.prototype.fieldSpec]),k.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);var B=function(e,t){return p.call(this,e),this.messageType="CarrierPhaseDepA",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(p.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]);var q=function(e,t){return p.call(this,e),this.messageType="PackedObsContentDepA",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(p.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]);var z=function(e,t){return p.call(this,e),this.messageType="PackedObsContentDepB",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(p.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:s.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",s.prototype.fieldSpec]);var H=function(e,t){return p.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(p.prototype)).messageType="PackedObsContentDepC",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:a.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:s.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["P","writeUInt32LE",4]),H.prototype.fieldSpec.push(["L",a.prototype.fieldSpec]),H.prototype.fieldSpec.push(["cn0","writeUInt8",1]),H.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),H.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);var V=function(e,t){return p.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(p.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]);var W=function(e,t){return p.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(W.prototype=Object.create(p.prototype)).messageType="MSG_OBS_DEP_B",W.prototype.msg_type=67,W.prototype.constructor=W,W.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",z.prototype.fieldSpec,function(){return this.fields.array.length},null]);var Y=function(e,t){return p.call(this,e),this.messageType="MSG_OBS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(p.prototype)).messageType="MSG_OBS_DEP_C",Y.prototype.msg_type=73,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:H.prototype.parser,readUntil:"eof"}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),Y.prototype.fieldSpec.push(["obs","array",H.prototype.fieldSpec,function(){return this.fields.array.length},null]);var Q=function(e,t){return p.call(this,e),this.messageType="MSG_IONO",this.fields=t||this.parser.parse(e.payload),this};(Q.prototype=Object.create(p.prototype)).messageType="MSG_IONO",Q.prototype.msg_type=144,Q.prototype.constructor=Q,Q.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:l.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",l.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]);var K=function(e,t){return p.call(this,e),this.messageType="MSG_SV_CONFIGURATION_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(K.prototype=Object.create(p.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:l.prototype.parser}).uint32("l2c_mask"),K.prototype.fieldSpec=[],K.prototype.fieldSpec.push(["t_nmct",l.prototype.fieldSpec]),K.prototype.fieldSpec.push(["l2c_mask","writeUInt32LE",4]);var X=function(e,t){return p.call(this,e),this.messageType="GnssCapb",this.fields=t||this.parser.parse(e.payload),this};(X.prototype=Object.create(p.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]);var J=function(e,t){return p.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(p.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:l.prototype.parser}).nest("gc",{type:X.prototype.parser}),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_nmct",l.prototype.fieldSpec]),J.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);var $=function(e,t){return p.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(p.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",$.prototype.msg_type=146,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).uint8("prn").uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),$.prototype.fieldSpec.push(["prn","writeUInt8",1]),$.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]);var Z=function(e,t){return p.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(p.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",Z.prototype.msg_type=147,Z.prototype.constructor=Z,Z.prototype.parser=(new o).endianess("little").nest("t_op",{type:l.prototype.parser}).nest("sid",{type:s.prototype.parser}).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(["sid",s.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["valid","writeUInt8",1]),Z.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);var ee=function(e,t){return p.call(this,e),this.messageType="MSG_GROUP_DELAY",this.fields=t||this.parser.parse(e.payload),this};(ee.prototype=Object.create(p.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:l.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),ee.prototype.fieldSpec=[],ee.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["sid",i.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]);var te=function(e,t){return p.call(this,e),this.messageType="AlmanacCommonContent",this.fields=t||this.parser.parse(e.payload),this};(te.prototype=Object.create(p.prototype)).messageType="AlmanacCommonContent",te.prototype.constructor=te,te.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).nest("toa",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),te.prototype.fieldSpec=[],te.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),te.prototype.fieldSpec.push(["toa",l.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]);var re=function(e,t){return p.call(this,e),this.messageType="AlmanacCommonContentDep",this.fields=t||this.parser.parse(e.payload),this};(re.prototype=Object.create(p.prototype)).messageType="AlmanacCommonContentDep",re.prototype.constructor=re,re.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toa",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),re.prototype.fieldSpec=[],re.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),re.prototype.fieldSpec.push(["toa",l.prototype.fieldSpec]),re.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),re.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),re.prototype.fieldSpec.push(["valid","writeUInt8",1]),re.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);var pe=function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(pe.prototype=Object.create(p.prototype)).messageType="MSG_ALMANAC_GPS_DEP",pe.prototype.msg_type=112,pe.prototype.constructor=pe,pe.prototype.parser=(new o).endianess("little").nest("common",{type:re.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),pe.prototype.fieldSpec=[],pe.prototype.fieldSpec.push(["common",re.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["w","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);var oe=function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC_GPS",this.fields=t||this.parser.parse(e.payload),this};(oe.prototype=Object.create(p.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]);var ie=function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC_GLO_DEP",this.fields=t||this.parser.parse(e.payload),this};(ie.prototype=Object.create(p.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:re.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",re.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]);var se=function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC_GLO",this.fields=t||this.parser.parse(e.payload),this};(se.prototype=Object.create(p.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]);var ne=function(e,t){return p.call(this,e),this.messageType="MSG_GLO_BIASES",this.fields=t||this.parser.parse(e.payload),this};(ne.prototype=Object.create(p.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]);var ae=function(e,t){return p.call(this,e),this.messageType="SvAzEl",this.fields=t||this.parser.parse(e.payload),this};(ae.prototype=Object.create(p.prototype)).messageType="SvAzEl",ae.prototype.constructor=ae,ae.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("az").int8("el"),ae.prototype.fieldSpec=[],ae.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),ae.prototype.fieldSpec.push(["az","writeUInt8",1]),ae.prototype.fieldSpec.push(["el","writeInt8",1]);var le=function(e,t){return p.call(this,e),this.messageType="MSG_SV_AZ_EL",this.fields=t||this.parser.parse(e.payload),this};(le.prototype=Object.create(p.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]);var ce=function(e,t){return p.call(this,e),this.messageType="MSG_OSR",this.fields=t||this.parser.parse(e.payload),this};(ce.prototype=Object.create(p.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:f.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:h,PackedOsrContent:f,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:v,MsgEphemerisGps:v,142:L,MsgEphemerisQzss:L,137:I,MsgEphemerisBds:I,149:T,MsgEphemerisGalDepA:T,141:M,MsgEphemerisGal:M,130:U,MsgEphemerisSbasDepA:U,131:D,MsgEphemerisGloDepA:D,132:O,MsgEphemerisSbasDepB:O,140:G,MsgEphemerisSbas:G,133:A,MsgEphemerisGloDepB:A,135:R,MsgEphemerisGloDepC:R,136:C,MsgEphemerisGloDepD:C,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:W,MsgObsDepB:W,73:Y,MsgObsDepC:Y,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:J,MsgGnssCapb:J,146:$,MsgGroupDelayDepA:$,147:Z,MsgGroupDelayDepB:Z,148:ee,MsgGroupDelay:ee,AlmanacCommonContent:te,AlmanacCommonContentDep:re,112:pe,MsgAlmanacGpsDep:pe,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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=r(0).GnssSignalDep,n=r(0).GPSTime,a=(r(0).CarrierPhase,n=r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep),l=(r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_ALMANAC",this.fields=t||this.parser.parse(e.payload),this});(l.prototype=Object.create(p.prototype)).messageType="MSG_ALMANAC",l.prototype.msg_type=105,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little"),l.prototype.fieldSpec=[];var c=function(e,t){return p.call(this,e),this.messageType="MSG_SET_TIME",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.prototype)).messageType="MSG_SET_TIME",c.prototype.msg_type=104,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little"),c.prototype.fieldSpec=[];var u=function(e,t){return p.call(this,e),this.messageType="MSG_RESET",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_RESET_DEP",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.prototype)).messageType="MSG_RESET_DEP",y.prototype.msg_type=178,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];var h=function(e,t){return p.call(this,e),this.messageType="MSG_CW_RESULTS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_CW_RESULTS",h.prototype.msg_type=192,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little"),h.prototype.fieldSpec=[];var f=function(e,t){return p.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_CW_START",f.prototype.msg_type=193,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little"),f.prototype.fieldSpec=[];var d=function(e,t){return p.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.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]);var _=function(e,t){return p.call(this,e),this.messageType="MSG_INIT_BASE_DEP",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.prototype)).messageType="MSG_INIT_BASE_DEP",_.prototype.msg_type=35,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little"),_.prototype.fieldSpec=[];var S=function(e,t){return p.call(this,e),this.messageType="MSG_THREAD_STATE",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.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]);var g=function(e,t){return p.call(this,e),this.messageType="UARTChannel",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.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]);var w=function(e,t){return p.call(this,e),this.messageType="Period",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.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]);var E=function(e,t){return p.call(this,e),this.messageType="Latency",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.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]);var m=function(e,t){return p.call(this,e),this.messageType="MSG_UART_STATE",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.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]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_UART_STATE_DEPA",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.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]);var v=function(e,t){return p.call(this,e),this.messageType="MSG_IAR_STATE",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.prototype)).messageType="MSG_IAR_STATE",v.prototype.msg_type=25,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("num_hyps"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["num_hyps","writeUInt32LE",4]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_MASK_SATELLITE",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.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]);var I=function(e,t){return p.call(this,e),this.messageType="MSG_MASK_SATELLITE_DEP",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(p.prototype)).messageType="MSG_MASK_SATELLITE_DEP",I.prototype.msg_type=27,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:s.prototype.parser}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["mask","writeUInt8",1]),I.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);var T=function(e,t){return p.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(p.prototype)).messageType="MSG_DEVICE_MONITOR",T.prototype.msg_type=181,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),T.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);var M=function(e,t){return p.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(p.prototype)).messageType="MSG_COMMAND_REQ",M.prototype.msg_type=184,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["command","string",null]);var U=function(e,t){return p.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(p.prototype)).messageType="MSG_COMMAND_RESP",U.prototype.msg_type=185,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),U.prototype.fieldSpec.push(["code","writeInt32LE",4]);var D=function(e,t){return p.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(p.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]);var O=function(e,t){return p.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(p.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=[];var G=function(e,t){return p.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(p.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]);var A=function(e,t){return p.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(p.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]);var R=function(e,t){return p.call(this,e),this.messageType="MSG_NETWORK_BANDWIDTH_USAGE",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(p.prototype)).messageType="MSG_NETWORK_BANDWIDTH_USAGE",R.prototype.msg_type=189,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").array("interfaces",{type:A.prototype.parser,readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["interfaces","array",A.prototype.fieldSpec,function(){return this.fields.array.length},null]);var C=function(e,t){return p.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(p.prototype)).messageType="MSG_CELL_MODEM_STATUS",C.prototype.msg_type=190,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),C.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),C.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},null]);var P=function(e,t){return p.call(this,e),this.messageType="MSG_SPECAN_DEP",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(p.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]);var N=function(e,t){return p.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(p.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]);var j=function(e,t){return p.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(p.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:h,MsgCwResults:h,193:f,MsgCwStart:f,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:v,MsgIarState:v,43:L,MsgMaskSatellite:L,27:I,MsgMaskSatelliteDep:I,181:T,MsgDeviceMonitor:T,184:M,MsgCommandReq:M,185:U,MsgCommandResp:U,188:D,MsgCommandOutput:D,186:O,MsgNetworkStateReq:O,187:G,MsgNetworkStateResp:G,NetworkUsage:A,189:R,MsgNetworkBandwidthUsage:R,190:C,MsgCellModemStatus:C,80:P,MsgSpecanDep:P,81:N,MsgSpecan:N,191:j,MsgFrontEndGain:j}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=(r(0).GnssSignalDep,r(0).GPSTime,r(0).CarrierPhase,r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep,r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_SBAS_RAW",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_SAVE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.prototype)).messageType="MSG_SETTINGS_SAVE",i.prototype.msg_type=161,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];var s=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_WRITE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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=[];var h=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_REGISTER",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_SETTINGS_REGISTER",h.prototype.msg_type=174,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["setting","string",null]);var f=function(e,t){return p.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",f.prototype.msg_type=431,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["status","writeUInt8",1]),f.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:h,MsgSettingsRegister:h,431:f,MsgSettingsRegisterResp:f}},function(e,t,r){var p=r(2),o=r(13).Parser,i=function(e){return p.call(this,e),this.messageType="SBPSignal",this.fields=this.parser.parse(e.payload),this};(i.prototype=Object.create(p.prototype)).constructor=i,i.prototype.parser=(new o).endianess("little").uint16("sat").uint8("band").uint8("constellation"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sat","writeUInt16LE",2]),i.prototype.fieldSpec.push(["band","writeUInt8",1]),i.prototype.fieldSpec.push(["constellation","writeUInt8",1]),e.exports={SBPSignal:i}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=(r(0).GnssSignalDep,r(0).GPSTime,r(0).CarrierPhase,r(0).GPSTime,r(0).GPSTimeSec),n=(r(0).GPSTimeDep,r(0).SvId),a=function(e,t){return p.call(this,e),this.messageType="CodeBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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]);var l=function(e,t){return p.call(this,e),this.messageType="PhaseBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.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]);var c=function(e,t){return p.call(this,e),this.messageType="STECHeader",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.prototype)).messageType="STECHeader",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]);var u=function(e,t){return p.call(this,e),this.messageType="GriddedCorrectionHeader",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.prototype)).messageType="GriddedCorrectionHeader",u.prototype.constructor=u,u.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"),u.prototype.fieldSpec=[],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]);var y=function(e,t){return p.call(this,e),this.messageType="STECSatElement",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.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]);var h=function(e,t){return p.call(this,e),this.messageType="TroposphericDelayCorrectionNoStd",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="TroposphericDelayCorrectionNoStd",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),h.prototype.fieldSpec.push(["wet","writeInt8",1]);var f=function(e,t){return p.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="TroposphericDelayCorrection",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),f.prototype.fieldSpec.push(["wet","writeInt8",1]),f.prototype.fieldSpec.push(["stddev","writeUInt8",1]);var d=function(e,t){return p.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.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]);var _=function(e,t){return p.call(this,e),this.messageType="STECResidual",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.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]);var S=function(e,t){return p.call(this,e),this.messageType="GridElementNoStd",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.prototype)).messageType="GridElementNoStd",S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:d.prototype.parser,readUntil:"eof"}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["index","writeUInt16LE",2]),S.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),S.prototype.fieldSpec.push(["stec_residuals","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]);var g=function(e,t){return p.call(this,e),this.messageType="GridElement",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.prototype)).messageType="GridElement",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["index","writeUInt16LE",2]),g.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),g.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);var w=function(e,t){return p.call(this,e),this.messageType="GridDefinitionHeader",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.prototype)).messageType="GridDefinitionHeader",w.prototype.constructor=w,w.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"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["region_size_inverse","writeUInt8",1]),w.prototype.fieldSpec.push(["area_width","writeUInt16LE",2]),w.prototype.fieldSpec.push(["lat_nw_corner_enc","writeUInt16LE",2]),w.prototype.fieldSpec.push(["lon_nw_corner_enc","writeUInt16LE",2]),w.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),w.prototype.fieldSpec.push(["seq_num","writeUInt8",1]);var E=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.prototype)).messageType="MSG_SSR_ORBIT_CLOCK",E.prototype.msg_type=1501,E.prototype.constructor=E,E.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"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),E.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),E.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),E.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),E.prototype.fieldSpec.push(["iod","writeUInt32LE",4]),E.prototype.fieldSpec.push(["radial","writeInt32LE",4]),E.prototype.fieldSpec.push(["along","writeInt32LE",4]),E.prototype.fieldSpec.push(["cross","writeInt32LE",4]),E.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),E.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),E.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),E.prototype.fieldSpec.push(["c0","writeInt32LE",4]),E.prototype.fieldSpec.push(["c1","writeInt32LE",4]),E.prototype.fieldSpec.push(["c2","writeInt32LE",4]);var m=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",m.prototype.msg_type=1500,m.prototype.constructor=m,m.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"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),m.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),m.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),m.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),m.prototype.fieldSpec.push(["iod","writeUInt8",1]),m.prototype.fieldSpec.push(["radial","writeInt32LE",4]),m.prototype.fieldSpec.push(["along","writeInt32LE",4]),m.prototype.fieldSpec.push(["cross","writeInt32LE",4]),m.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),m.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),m.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),m.prototype.fieldSpec.push(["c0","writeInt32LE",4]),m.prototype.fieldSpec.push(["c1","writeInt32LE",4]),m.prototype.fieldSpec.push(["c2","writeInt32LE",4]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_CODE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.prototype)).messageType="MSG_SSR_CODE_BIASES",b.prototype.msg_type=1505,b.prototype.constructor=b,b.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"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),b.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),b.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),b.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),b.prototype.fieldSpec.push(["biases","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);var v=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_PHASE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.prototype)).messageType="MSG_SSR_PHASE_BIASES",v.prototype.msg_type=1510,v.prototype.constructor=v,v.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"}),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),v.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),v.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),v.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),v.prototype.fieldSpec.push(["dispersive_bias","writeUInt8",1]),v.prototype.fieldSpec.push(["mw_consistency","writeUInt8",1]),v.prototype.fieldSpec.push(["yaw","writeUInt16LE",2]),v.prototype.fieldSpec.push(["yaw_rate","writeInt8",1]),v.prototype.fieldSpec.push(["biases","array",l.prototype.fieldSpec,function(){return this.fields.array.length},null]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.prototype)).messageType="MSG_SSR_STEC_CORRECTION",L.prototype.msg_type=1515,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("header",{type:c.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["header",c.prototype.fieldSpec]),L.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);var I=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(p.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD",I.prototype.msg_type=1520,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).nest("element",{type:S.prototype.parser}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),I.prototype.fieldSpec.push(["element",S.prototype.fieldSpec]);var T=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(p.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION",T.prototype.msg_type=1530,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).nest("element",{type:g.prototype.parser}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),T.prototype.fieldSpec.push(["element",g.prototype.fieldSpec]);var M=function(e,t){return p.call(this,e),this.messageType="MSG_SSR_GRID_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(p.prototype)).messageType="MSG_SSR_GRID_DEFINITION",M.prototype.msg_type=1525,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("header",{type:w.prototype.parser}).array("rle_list",{type:"uint8",readUntil:"eof"}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["header",w.prototype.fieldSpec]),M.prototype.fieldSpec.push(["rle_list","array","writeUInt8",function(){return 1},null]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:h,TroposphericDelayCorrection:f,STECResidualNoStd:d,STECResidual:_,GridElementNoStd:S,GridElement:g,GridDefinitionHeader:w,1501:E,MsgSsrOrbitClock:E,1500:m,MsgSsrOrbitClockDepA:m,1505:b,MsgSsrCodeBiases:b,1510:v,MsgSsrPhaseBiases:v,1515:L,MsgSsrStecCorrection:L,1520:I,MsgSsrGriddedCorrectionNoStd:I,1530:T,MsgSsrGriddedCorrection:T,1525:M,MsgSsrGridDefinition:M}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_STARTUP",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_DGNSS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_HEARTBEAT",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_INS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.prototype)).messageType="MSG_INS_STATUS",a.prototype.msg_type=65283,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);var l=function(e,t){return p.call(this,e),this.messageType="MSG_CSAC_TELEMETRY",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(p.prototype)).messageType="MSG_CSAC_TELEMETRY",l.prototype.msg_type=65284,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["id","writeUInt8",1]),l.prototype.fieldSpec.push(["telemetry","string",null]);var c=function(e,t){return p.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(p.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",c.prototype.msg_type=65285,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["id","writeUInt8",1]),c.prototype.fieldSpec.push(["telemetry_labels","string",null]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.prototype)).messageType="MSG_INS_UPDATES",u.prototype.msg_type=65286,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),u.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),u.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),u.prototype.fieldSpec.push(["speed","writeUInt8",1]),u.prototype.fieldSpec.push(["nhc","writeUInt8",1]),u.prototype.fieldSpec.push(["zerovel","writeUInt8",1]);var y=function(e,t){return p.call(this,e),this.messageType="MSG_GNSS_TIME_OFFSET",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.prototype)).messageType="MSG_GNSS_TIME_OFFSET",y.prototype.msg_type=65287,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").int16("weeks").int32("milliseconds").int16("microseconds").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["weeks","writeInt16LE",2]),y.prototype.fieldSpec.push(["milliseconds","writeInt32LE",4]),y.prototype.fieldSpec.push(["microseconds","writeInt16LE",2]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_GROUP_META",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_GROUP_META",h.prototype.msg_type=65290,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tom").int32("ns_residual").uint8("flags").array("group_msgs",{type:"uint16le",readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),h.prototype.fieldSpec.push(["tom","writeUInt32LE",4]),h.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["group_msgs","array","writeUInt16LE",function(){return 2},null]),e.exports={65280:i,MsgStartup:i,65282:s,MsgDgnssStatus:s,65535:n,MsgHeartbeat:n,65283:a,MsgInsStatus:a,65284:l,MsgCsacTelemetry:l,65285:c,MsgCsacTelemetryLabels:c,65286:u,MsgInsUpdates:u,65287:y,MsgGnssTimeOffset:y,65290:h,MsgGroupMeta:h}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,r(0).GnssSignal),s=r(0).GnssSignalDep,n=r(0).GPSTime,a=r(0).CarrierPhase,l=(n=r(0).GPSTime,r(0).GPSTimeSec,r(0).GPSTimeDep),c=(r(0).SvId,function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(c.prototype=Object.create(p.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:n.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:a.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:i.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",n.prototype.fieldSpec]),c.prototype.fieldSpec.push(["P","writeUInt32LE",4]),c.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["L",a.prototype.fieldSpec]),c.prototype.fieldSpec.push(["cn0","writeUInt8",1]),c.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),c.prototype.fieldSpec.push(["sid",i.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]);var u=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(p.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:a.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"),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",a.prototype.fieldSpec]),u.prototype.fieldSpec.push(["cn0","writeUInt8",1]),u.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sid",s.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]);var y=function(e,t){return p.call(this,e),this.messageType="TrackingChannelState",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(p.prototype)).messageType="TrackingChannelState",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("fcn").uint8("cn0"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),y.prototype.fieldSpec.push(["fcn","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt8",1]);var h=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(p.prototype)).messageType="MSG_TRACKING_STATE",h.prototype.msg_type=65,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("states",{type:y.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["states","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);var f=function(e,t){return p.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(p.prototype)).messageType="MeasurementState",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").nest("mesid",{type:i.prototype.parser}).uint8("cn0"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["mesid",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["cn0","writeUInt8",1]);var d=function(e,t){return p.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(p.prototype)).messageType="MSG_MEASUREMENT_STATE",d.prototype.msg_type=97,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("states",{type:f.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["states","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]);var _=function(e,t){return p.call(this,e),this.messageType="TrackingChannelCorrelation",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(p.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]);var S=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_IQ",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(p.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:i.prototype.parser}).array("corrs",{length:3,type:_.prototype.parser}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["channel","writeUInt8",1]),S.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),S.prototype.fieldSpec.push(["corrs","array",_.prototype.fieldSpec,function(){return this.fields.array.length},3]);var g=function(e,t){return p.call(this,e),this.messageType="TrackingChannelCorrelationDep",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(p.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]);var w=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(p.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:i.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",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);var E=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(p.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:s.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",s.prototype.fieldSpec]),E.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);var m=function(e,t){return p.call(this,e),this.messageType="TrackingChannelStateDepA",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(p.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]);var b=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(p.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]);var v=function(e,t){return p.call(this,e),this.messageType="TrackingChannelStateDepB",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(p.prototype)).messageType="TrackingChannelStateDepB",v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint8("state").nest("sid",{type:s.prototype.parser}).floatle("cn0"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["state","writeUInt8",1]),v.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),v.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);var L=function(e,t){return p.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(p.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:v.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["states","array",v.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={33:c,MsgTrackingStateDetailedDepA:c,17:u,MsgTrackingStateDetailedDep:u,TrackingChannelState:y,65:h,MsgTrackingState:h,MeasurementState:f,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:v,19:L,MsgTrackingStateDepB:L}},function(e,t,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_USER_DATA",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_ODOMETRY",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_WHEELTICK",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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,r){var p=r(2),o=r(4),i=(r(3),r(1).UINT64,function(e,t){return p.call(this,e),this.messageType="MSG_BASELINE_HEADING",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(p.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]);var s=function(e,t){return p.call(this,e),this.messageType="MSG_ORIENT_QUAT",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(p.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]);var n=function(e,t){return p.call(this,e),this.messageType="MSG_ORIENT_EULER",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(p.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]);var a=function(e,t){return p.call(this,e),this.messageType="MSG_ANGULAR_RATE",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(p.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}}]); \ No newline at end of file diff --git a/javascript/sbp/parser.js b/javascript/sbp/parser.js index 1d8c1ce41c..3bbc35a74d 100644 --- a/javascript/sbp/parser.js +++ b/javascript/sbp/parser.js @@ -16,7 +16,7 @@ var Parser = require('binary-parser').Parser; */ Parser.prototype.uint64 = function uint64 (fieldName, options) { return this.setNextParser('uint64', fieldName, Object.assign({}, options, { - formatter: function (recv_time) { + formatter: function (_recv_time) { var UInt64 = require('cuint').UINT64; var low = buffer.readUInt32LE(offset); offset += 4; diff --git a/javascript/sbp/system.js b/javascript/sbp/system.js index a23d97f967..b091dbdf45 100644 --- a/javascript/sbp/system.js +++ b/javascript/sbp/system.js @@ -305,6 +305,47 @@ MsgGnssTimeOffset.prototype.fieldSpec.push(['milliseconds', 'writeInt32LE', 4]); MsgGnssTimeOffset.prototype.fieldSpec.push(['microseconds', 'writeInt16LE', 2]); MsgGnssTimeOffset.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); +/** + * SBP class for message MSG_GROUP_META (0xFF0A). + * + * This leading message lists the time metadata of the Solution Group. It also + * lists the atomic contents (i.e. types of messages included) of the Solution + * Group. + * + * Fields in the SBP payload (`sbp.payload`): + * @field wn number (unsigned 16-bit int, 2 bytes) GPS Week Number or zero if Reference epoch is not GPS + * @field tom number (unsigned 32-bit int, 4 bytes) Time of Measurement in Milliseconds since reference epoch + * @field ns_residual number (signed 32-bit int, 4 bytes) Nanosecond residual of millisecond-rounded TOM (ranges from -500000 to 500000) + * @field flags number (unsigned 8-bit int, 1 byte) Status flags (reserved) + * @field group_msgs array An inorder list of message types included in the Solution Group + * + * @param sbp An SBP object with a payload to be decoded. + */ +var MsgGroupMeta = function (sbp, fields) { + SBP.call(this, sbp); + this.messageType = "MSG_GROUP_META"; + this.fields = (fields || this.parser.parse(sbp.payload)); + + return this; +}; +MsgGroupMeta.prototype = Object.create(SBP.prototype); +MsgGroupMeta.prototype.messageType = "MSG_GROUP_META"; +MsgGroupMeta.prototype.msg_type = 0xFF0A; +MsgGroupMeta.prototype.constructor = MsgGroupMeta; +MsgGroupMeta.prototype.parser = new Parser() + .endianess('little') + .uint16('wn') + .uint32('tom') + .int32('ns_residual') + .uint8('flags') + .array('group_msgs', { type: 'uint16le', readUntil: 'eof' }); +MsgGroupMeta.prototype.fieldSpec = []; +MsgGroupMeta.prototype.fieldSpec.push(['wn', 'writeUInt16LE', 2]); +MsgGroupMeta.prototype.fieldSpec.push(['tom', 'writeUInt32LE', 4]); +MsgGroupMeta.prototype.fieldSpec.push(['ns_residual', 'writeInt32LE', 4]); +MsgGroupMeta.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); +MsgGroupMeta.prototype.fieldSpec.push(['group_msgs', 'array', 'writeUInt16LE', function () { return 2; }, null]); + module.exports = { 0xFF00: MsgStartup, MsgStartup: MsgStartup, @@ -322,4 +363,6 @@ module.exports = { MsgInsUpdates: MsgInsUpdates, 0xFF07: MsgGnssTimeOffset, MsgGnssTimeOffset: MsgGnssTimeOffset, + 0xFF0A: MsgGroupMeta, + MsgGroupMeta: MsgGroupMeta, } \ No newline at end of file diff --git a/proto/system.proto b/proto/system.proto index 7294e9e932..2415898db5 100644 --- a/proto/system.proto +++ b/proto/system.proto @@ -119,4 +119,17 @@ message MsgGnssTimeOffset { sint32 milliseconds = 2; sint32 microseconds = 3; uint32 flags = 4; +} + +/** Solution Group Metadata + * + * This leading message lists the time metadata of the Solution Group. + * It also lists the atomic contents (i.e. types of messages included) of the Solution Group. + */ +message MsgGroupMeta { + uint32 wn = 1; + uint32 tom = 2; + sint32 ns_residual = 3; + uint32 flags = 4; + repeated uint32 group_msgs = 5; } \ No newline at end of file diff --git a/python/sbp/jit/system.py b/python/sbp/jit/system.py index 8f4c0c5192..ddc5f7bd3b 100644 --- a/python/sbp/jit/system.py +++ b/python/sbp/jit/system.py @@ -353,6 +353,53 @@ def _unpack_members(self, buf, offset, length): return res, off, length +SBP_MSG_GROUP_META = 0xFF0A +class MsgGroupMeta(SBP): + """SBP class for message MSG_GROUP_META (0xFF0A). + + You can have MSG_GROUP_META inherit its fields directly + from an inherited SBP object, or construct it inline using a dict + of its fields. + + + This leading message lists the time metadata of the Solution Group. +It also lists the atomic contents (i.e. types of messages included) of the Solution Group. + + + """ + __slots__ = ['wn', + 'tom', + 'ns_residual', + 'flags', + 'group_msgs', + ] + @classmethod + def parse_members(cls, buf, offset, length): + ret = {} + (__wn, offset, length) = get_u16(buf, offset, length) + ret['wn'] = __wn + (__tom, offset, length) = get_u32(buf, offset, length) + ret['tom'] = __tom + (__ns_residual, offset, length) = get_s32(buf, offset, length) + ret['ns_residual'] = __ns_residual + (__flags, offset, length) = get_u8(buf, offset, length) + ret['flags'] = __flags + (__group_msgs, offset, length) = get_array(get_u16)(buf, offset, length) + ret['group_msgs'] = __group_msgs + return ret, offset, length + + def _unpack_members(self, buf, offset, length): + res, off, length = self.parse_members(buf, offset, length) + if off == offset: + return {}, offset, length + self.wn = res['wn'] + self.tom = res['tom'] + self.ns_residual = res['ns_residual'] + self.flags = res['flags'] + self.group_msgs = res['group_msgs'] + return res, off, length + + msg_classes = { 0xFF00: MsgStartup, @@ -363,4 +410,5 @@ def _unpack_members(self, buf, offset, length): 0xFF05: MsgCsacTelemetryLabels, 0xFF06: MsgInsUpdates, 0xFF07: MsgGnssTimeOffset, + 0xFF0A: MsgGroupMeta, } \ No newline at end of file diff --git a/python/sbp/system.py b/python/sbp/system.py index b75466f5ee..b49d30f080 100644 --- a/python/sbp/system.py +++ b/python/sbp/system.py @@ -847,6 +847,119 @@ def to_json_dict(self): d.update(j) return d +SBP_MSG_GROUP_META = 0xFF0A +class MsgGroupMeta(SBP): + """SBP class for message MSG_GROUP_META (0xFF0A). + + You can have MSG_GROUP_META inherit its fields directly + from an inherited SBP object, or construct it inline using a dict + of its fields. + + + This leading message lists the time metadata of the Solution Group. +It also lists the atomic contents (i.e. types of messages included) of the Solution Group. + + + Parameters + ---------- + sbp : SBP + SBP parent object to inherit from. + wn : int + GPS Week Number or zero if Reference epoch is not GPS + tom : int + Time of Measurement in Milliseconds since reference epoch + ns_residual : int + Nanosecond residual of millisecond-rounded TOM (ranges +from -500000 to 500000) + + flags : int + Status flags (reserved) + group_msgs : array + An inorder list of message types included in the Solution Group + sender : int + Optional sender ID, defaults to SENDER_ID (see sbp/msg.py). + + """ + _parser = construct.Struct( + 'wn' / construct.Int16ul, + 'tom' / construct.Int32ul, + 'ns_residual' / construct.Int32sl, + 'flags' / construct.Int8ul, + construct.GreedyRange('group_msgs' / construct.Int16ul),) + __slots__ = [ + 'wn', + 'tom', + 'ns_residual', + 'flags', + 'group_msgs', + ] + + def __init__(self, sbp=None, **kwargs): + if sbp: + super( MsgGroupMeta, + self).__init__(sbp.msg_type, sbp.sender, sbp.length, + sbp.payload, sbp.crc) + self.from_binary(sbp.payload) + else: + super( MsgGroupMeta, self).__init__() + self.msg_type = SBP_MSG_GROUP_META + self.sender = kwargs.pop('sender', SENDER_ID) + self.wn = kwargs.pop('wn') + self.tom = kwargs.pop('tom') + self.ns_residual = kwargs.pop('ns_residual') + self.flags = kwargs.pop('flags') + self.group_msgs = kwargs.pop('group_msgs') + + 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 MsgGroupMeta.from_json_dict(d) + + @staticmethod + def from_json_dict(d): + sbp = SBP.from_json_dict(d) + return MsgGroupMeta(sbp, **d) + + + def from_binary(self, d): + """Given a binary payload d, update the appropriate payload fields of + the message. + + """ + p = MsgGroupMeta._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 = MsgGroupMeta._parser.build(c) + return self.pack() + + 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 = MsgGroupMeta._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( MsgGroupMeta, self).to_json_dict() + j = walk_json_dict(exclude_fields(self)) + d.update(j) + return d + msg_classes = { 0xFF00: MsgStartup, @@ -857,4 +970,5 @@ def to_json_dict(self): 0xFF05: MsgCsacTelemetryLabels, 0xFF06: MsgInsUpdates, 0xFF07: MsgGnssTimeOffset, + 0xFF0A: MsgGroupMeta, } \ No newline at end of file diff --git a/python/tests/sbp/test_table.py b/python/tests/sbp/test_table.py index 7fc8514d24..7589c4d223 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 = 186 + number_of_messages = 187 assert len(_SBP_TABLE) == number_of_messages def test_table_unqiue_count(): diff --git a/rust/sbp/src/messages/mod.rs b/rust/sbp/src/messages/mod.rs index 2a9c15fa2f..1412dda733 100644 --- a/rust/sbp/src/messages/mod.rs +++ b/rust/sbp/src/messages/mod.rs @@ -200,6 +200,7 @@ use self::system::MsgCsacTelemetry; use self::system::MsgCsacTelemetryLabels; use self::system::MsgDgnssStatus; use self::system::MsgGnssTimeOffset; +use self::system::MsgGroupMeta; use self::system::MsgHeartbeat; use self::system::MsgInsStatus; use self::system::MsgInsUpdates; @@ -418,6 +419,7 @@ pub enum SBP { MsgCsacTelemetryLabels(MsgCsacTelemetryLabels), MsgInsUpdates(MsgInsUpdates), MsgGnssTimeOffset(MsgGnssTimeOffset), + MsgGroupMeta(MsgGroupMeta), MsgHeartbeat(MsgHeartbeat), Unknown(Unknown), } @@ -1350,6 +1352,11 @@ impl SBP { msg.set_sender_id(sender_id); Ok(SBP::MsgGnssTimeOffset(msg)) } + 65290 => { + let mut msg = MsgGroupMeta::parse(payload)?; + msg.set_sender_id(sender_id); + Ok(SBP::MsgGroupMeta(msg)) + } 65535 => { let mut msg = MsgHeartbeat::parse(payload)?; msg.set_sender_id(sender_id); @@ -1554,6 +1561,7 @@ impl SBP { SBP::MsgCsacTelemetryLabels(msg) => msg, SBP::MsgInsUpdates(msg) => msg, SBP::MsgGnssTimeOffset(msg) => msg, + SBP::MsgGroupMeta(msg) => msg, SBP::MsgHeartbeat(msg) => msg, SBP::Unknown(msg) => msg, } diff --git a/rust/sbp/src/messages/system.rs b/rust/sbp/src/messages/system.rs index 3d6ef7afd0..71078198a6 100644 --- a/rust/sbp/src/messages/system.rs +++ b/rust/sbp/src/messages/system.rs @@ -289,6 +289,82 @@ impl crate::serialize::SbpSerialize for MsgGnssTimeOffset { } } +/// Solution Group Metadata +/// +/// This leading message lists the time metadata of the Solution Group. +/// It also lists the atomic contents (i.e. types of messages included) of the Solution Group. +/// +#[cfg_attr(feature = "sbp_serde", derive(Serialize, Deserialize))] +#[derive(Debug, Clone)] +#[allow(non_snake_case)] +pub struct MsgGroupMeta { + pub sender_id: Option, + /// GPS Week Number or zero if Reference epoch is not GPS + pub wn: u16, + /// Time of Measurement in Milliseconds since reference epoch + pub tom: u32, + /// Nanosecond residual of millisecond-rounded TOM (ranges from -500000 to + /// 500000) + pub ns_residual: i32, + /// Status flags (reserved) + pub flags: u8, + /// An inorder list of message types included in the Solution Group + pub group_msgs: Vec, +} + +impl MsgGroupMeta { + #[rustfmt::skip] + pub fn parse(_buf: &mut &[u8]) -> Result { + Ok( MsgGroupMeta{ + sender_id: None, + wn: _buf.read_u16::()?, + tom: _buf.read_u32::()?, + ns_residual: _buf.read_i32::()?, + flags: _buf.read_u8()?, + group_msgs: crate::parser::read_u16_array(_buf)?, + } ) + } +} +impl super::SBPMessage for MsgGroupMeta { + fn get_message_type(&self) -> u16 { + 65290 + } + + fn get_sender_id(&self) -> Option { + self.sender_id + } + + fn set_sender_id(&mut self, new_id: u16) { + self.sender_id = Some(new_id); + } + + fn to_frame(&self) -> std::result::Result, crate::framer::FramerError> { + let trait_object = self as &dyn super::SBPMessage; + crate::framer::to_frame(trait_object) + } +} + +impl crate::serialize::SbpSerialize for MsgGroupMeta { + #[allow(unused_variables)] + fn append_to_sbp_buffer(&self, buf: &mut Vec) { + self.wn.append_to_sbp_buffer(buf); + self.tom.append_to_sbp_buffer(buf); + self.ns_residual.append_to_sbp_buffer(buf); + self.flags.append_to_sbp_buffer(buf); + self.group_msgs.append_to_sbp_buffer(buf); + } + + fn sbp_size(&self) -> usize { + let mut size = 0; + size += self.wn.sbp_size(); + size += self.tom.sbp_size(); + size += self.ns_residual.sbp_size(); + size += self.flags.sbp_size(); + size += self.group_msgs.sbp_size(); + size + } +} + /// System heartbeat message /// /// The heartbeat message is sent periodically to inform the host diff --git a/rust/sbp/src/parser/mod.rs b/rust/sbp/src/parser/mod.rs index 01ccf3b5d0..581bc0ea1e 100644 --- a/rust/sbp/src/parser/mod.rs +++ b/rust/sbp/src/parser/mod.rs @@ -213,6 +213,31 @@ fn test_read_string() { assert_eq!(string, " string".to_string()); } +pub(crate) fn read_u16_array(buf: &mut &[u8]) -> Result> { + // buf is in fact an array of u16, so at least 2 u8 elem, unless buf is empty + let iter = buf.chunks_exact(2); + // collect() guarantees that it will return Err if at least one Err is found while iterating over the Vec + // https://doc.rust-lang.org/std/iter/trait.FromIterator.html#method.from_iter-14 + // map_err necessary to convert the generic read_u16's Error into our Error enum type + // LittleEndian means chunks are read from right-to-left + let v = iter + .map(|mut x| x.read_u16::().map_err(|e| e.into())) + .collect(); + v +} + +#[test] +fn test_read_u16_array() { + // A basic unit test for read_u16_array, LittleEndian convention assumed everywhere + let mock_data: [u8; 4] = [0b00000001, 0b00010000, 0b00000010, 0b00000001]; + let mut expected_vec = Vec::with_capacity(2); + // 0b00010000+0b00000001 + expected_vec.push(4097); + expected_vec.push(258); + let returned_vec = read_u16_array(&mut &mock_data[..]).unwrap(); + assert_eq!(expected_vec, returned_vec); +} + pub(crate) fn read_u8_array(buf: &mut &[u8]) -> Result> { Ok(buf.to_vec()) } diff --git a/spec/tests/yaml/swiftnav/sbp/system/test_MsgGroupMeta.yaml b/spec/tests/yaml/swiftnav/sbp/system/test_MsgGroupMeta.yaml new file mode 100644 index 0000000000..fbbab81753 --- /dev/null +++ b/spec/tests/yaml/swiftnav/sbp/system/test_MsgGroupMeta.yaml @@ -0,0 +1,30 @@ +--- +description: Unit tests for swiftnav.sbp.system MsgGroupMeta +generated_on: 2020-07-17 00:00:00.00 # manually generated +package: sbp.system +tests: + +- msg: + fields: + wn: 1984 + tom: 123456 + ns_residual: 0 + flags: 0b00000011 + group_msgs: [522, 65282] # pos_lla & msg_ins_updates + module: sbp.system + name: MsgGroupMeta + msg_type: '0xFF0A' + raw_json: '{"crc": 19612, "flags": 3, "wn": 1984, "sender": 61166, "msg_type": 65290, + "tom": 123456, "ns_residual": 0, "length": 15, "group_msgs": [522, 65282], "preamble": 85, "payload": + "wAdA4gEAAAAAAAMKAgL/"}' + # base64 + raw_packet: VQr/7u4PwAdA4gEAAAAAAAMKAgL/nEw= + sbp: + crc: '0x4c9c' + length: 15 + msg_type: '0xFF0A' + payload: wAdA4gEAAAAAAAMKAgL/ + preamble: '0x55' + sender: '0xEEEE' +version: 3.1 +... \ No newline at end of file diff --git a/spec/yaml/swiftnav/sbp/system.yaml b/spec/yaml/swiftnav/sbp/system.yaml index 6cb31edb18..58331d261d 100644 --- a/spec/yaml/swiftnav/sbp/system.yaml +++ b/spec/yaml/swiftnav/sbp/system.yaml @@ -304,4 +304,51 @@ definitions: desc: Microseconds portion of the time offset - flags: type: u8 - desc: Status flags (reserved) \ No newline at end of file + desc: Status flags (reserved) + + - MSG_GROUP_META: + id: 0xFF0A + short_desc: Solution Group Metadata + public: true + desc: | + This leading message lists the time metadata of the Solution Group. + It also lists the atomic contents (i.e. types of messages included) of the Solution Group. + fields: + - wn: + type: u16 + units: weeks + desc: GPS Week Number or zero if Reference epoch is not GPS + - tom: + type: u32 + units: ms + desc: Time of Measurement in Milliseconds since reference epoch + - ns_residual: + type: s32 + units: ns + desc: | + Nanosecond residual of millisecond-rounded TOM (ranges + from -500000 to 500000) + - flags: + type: u8 + desc: Status flags (reserved) + fields: + - 4-7: + desc: Reserved + - 2-3: + desc: Solution Group type + values: + - 0: None (invalid) + - 1: GNSS only + - 2: GNSS+INS (Fuzed) + - 3: Reserved + - 0-1: + desc: Time source + values: + - 0: Reference epoch is start of current GPS week + - 1: Reference epoch is Sensor Time Init + - 2: Reference epoch is unknown + - 3: Reference epoch is last PPS + - group_msgs: + type: array + fill: u16 + desc: An inorder list of message types included in the Solution Group