From c77f2f53720aa436b97d297e353846a5b1d44dcf Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Wed, 11 Jul 2018 22:14:08 +0530 Subject: [PATCH 01/13] gps: do initial addition of gps module --- include/halconf.h | 2 +- modules/gps/gps.c | 142 ++++++++++++++++++++++++++++++++++++++++++ modules/gps/gps.h | 34 ++++++++++ modules/gps/module.mk | 12 ++++ 4 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 modules/gps/gps.c create mode 100644 modules/gps/gps.h create mode 100644 modules/gps/module.mk diff --git a/include/halconf.h b/include/halconf.h index 167585d3..57762876 100644 --- a/include/halconf.h +++ b/include/halconf.h @@ -277,7 +277,7 @@ * buffers. */ #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 +#define SERIAL_BUFFERS_SIZE 32 #endif /*===========================================================================*/ diff --git a/modules/gps/gps.c b/modules/gps/gps.c new file mode 100644 index 00000000..f0697644 --- /dev/null +++ b/modules/gps/gps.c @@ -0,0 +1,142 @@ +#include "gps.h" + +#include +#include +#include +#include +#include +#include + +#ifndef GPS_MSG_QUEUE_DEPTH +#define GPS_MSG_QUEUE_DEPTH 4 +#endif + +struct gps_msg_publisher_topic_s { + uint8_t class_id; + uint8_t msg_id; + void* frame_buffer; + struct gps_handle_s *gps_handle; + size_t frame_buffer_len; + struct pubsub_topic_s* topic; + struct gps_msg_publisher_topic_s* next; +}; + + +static struct gps_msg_publisher_topic_s *gps_msg_topic_list_head; +MEMORYPOOL_DECL(gps_msg_publisher_topic_list_pool, sizeof(struct gps_msg_publisher_topic_s), chCoreAllocAlignedI); + +bool gps_ubx_init_msg_topic(struct gps_handle_s* gps_handle, uint8_t class_id, uint8_t msg_id, void* frame_buffer, size_t frame_buffer_len, struct pubsub_topic_s* topic) +{ + chSysLock(); + if (!topic || !frame_buffer) { + return false; + } + struct gps_msg_publisher_topic_s *topic_handle = chPoolAllocI(&gps_msg_publisher_topic_list_pool); + if (!topic_handle) { + uavcan_send_debug_msg(LOG_LEVEL_ERROR, "GPS", "Failed to init topic for 0x%x 0x%x", class_id, msg_id); + return false; + } + topic_handle->class_id = class_id; + topic_handle->msg_id = msg_id; + topic_handle->gps_handle = gps_handle; + topic_handle->frame_buffer = frame_buffer; + topic_handle->frame_buffer_len = frame_buffer_len; + topic_handle->topic = topic; + LINKED_LIST_APPEND(struct gps_msg_publisher_topic_s, gps_msg_topic_list_head, topic_handle); + chSysUnlock(); + return true; +} + +bool gps_init(struct gps_handle_s* gps_handle) +{ + if (gps_handle == NULL) { + return false; + } + gps_handle->state = MESSAGE_EMPTY; + memset(gps_handle->parser_buffer, 0, sizeof(struct gps_handle_s)); + gps_handle->parser_cnt = 0; + return true; +} + +static void gps_ubx_frame_received(size_t length, uint8_t *buffer) +{ + struct gps_msg_publisher_topic_s* topic_handle = gps_msg_topic_list_head; + while(topic_handle) { + if (topic_handle->class_id == buffer[2] && topic_handle->msg_id == buffer[3]) { + //publish gps message + struct gps_msg msg; + if (topic_handle->frame_buffer_len >= length - 8) { + memcpy(topic_handle->frame_buffer, buffer+6, length - 8); + } + msg.class_id = buffer[2]; + msg.msg_id = buffer[3]; + msg.msg_len = length - 8; + msg.frame_buffer = topic_handle->frame_buffer; + pubsub_publish_message(topic_handle->topic, sizeof(struct gps_msg), pubsub_copy_writer_func, &msg); + } + topic_handle = topic_handle->next; + } +} + +static enum message_validity_t check_ubx_message(struct gps_handle_s* gps_handle, size_t* msg_len) { + if (gps_handle->parser_cnt == 0) { + return MESSAGE_EMPTY; + } + if (gps_handle->parser_cnt >= 1 && gps_handle->parser_buffer[0] != 0xB5) { + return MESSAGE_INVALID; + } + if (gps_handle->parser_cnt >= 2 && gps_handle->parser_buffer[1] != 0x62) { + return MESSAGE_INVALID; + } + if (gps_handle->parser_cnt < 8) { + return MESSAGE_INCOMPLETE; + } + size_t len_field_val = gps_handle->parser_buffer[4] | (uint16_t)gps_handle->parser_buffer[5]<<8; + if (len_field_val+8 > PARSER_BUFFER_SIZE) { + return MESSAGE_INVALID; + } + + if (gps_handle->parser_cnt < len_field_val+8) { + return MESSAGE_INCOMPLETE; + } + + uint8_t ck_a_provided = gps_handle->parser_buffer[6+len_field_val]; + uint8_t ck_b_provided = gps_handle->parser_buffer[7+len_field_val]; + + uint8_t ck_a_computed = 0; + uint8_t ck_b_computed = 0; + + for(uint16_t i=2; i < (len_field_val+6); i++) { + ck_a_computed += gps_handle->parser_buffer[i]; + ck_b_computed += ck_a_computed; + } + + if (ck_a_provided == ck_a_computed && ck_b_provided == ck_b_computed) { + *msg_len = len_field_val+8; + return MESSAGE_VALID; + } else { + return MESSAGE_INVALID; + } +} + + +bool gps_spin(struct gps_handle_s* gps_handle, uint8_t byte) +{ + // Append byte to buffer + gps_handle->parser_buffer[gps_handle->parser_cnt++] = byte; + size_t msg_len; + gps_handle->state = check_ubx_message(gps_handle, &msg_len); + + while (gps_handle->state == MESSAGE_INVALID) { + gps_handle->parser_cnt--; + memmove(gps_handle->parser_buffer, gps_handle->parser_buffer+1, gps_handle->parser_cnt); + gps_handle->state = check_ubx_message(gps_handle, &msg_len); + } + + if (gps_handle->state == MESSAGE_VALID) { + gps_ubx_frame_received(gps_handle->parser_cnt, gps_handle->parser_buffer); + gps_handle->parser_cnt = 0; + return true; + } + return false; +} diff --git a/modules/gps/gps.h b/modules/gps/gps.h new file mode 100644 index 00000000..87e9a8be --- /dev/null +++ b/modules/gps/gps.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include +#include + +#ifndef PARSER_BUFFER_SIZE +#define PARSER_BUFFER_SIZE 1024 +#endif + +enum message_validity_t { + MESSAGE_EMPTY, + MESSAGE_INVALID, + MESSAGE_INCOMPLETE, + MESSAGE_VALID +}; + +struct gps_msg { + struct gps_handle_s *gps_handle; + uint8_t class_id; + uint8_t msg_id; + size_t msg_len; + void *frame_buffer; +}; + +struct gps_handle_s { + enum message_validity_t state; + uint8_t parser_buffer[PARSER_BUFFER_SIZE]; + uint8_t parser_cnt; +}; + +bool gps_ubx_init_msg_topic(struct gps_handle_s* gps_handle, uint8_t class_id, uint8_t msg_id, void* frame_buffer, size_t frame_buffer_len, struct pubsub_topic_s* topic); +bool gps_init(struct gps_handle_s* gps_handle); +bool gps_spin(struct gps_handle_s* gps_handle, uint8_t byte); diff --git a/modules/gps/module.mk b/modules/gps/module.mk new file mode 100644 index 00000000..e15e831f --- /dev/null +++ b/modules/gps/module.mk @@ -0,0 +1,12 @@ +GPS_MODULE_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) + +INCDIR += $(BUILDDIR)/ubx_msgs/include + +$(BUILDDIR)/ubx_msgs.mk: $(GPS_MODULE_DIR)/ubx_parser + rm -rf $(BUILDDIR)/ubx_msgs + python $(GPS_MODULE_DIR)/ubx_parser/ubx_pdf_csv_parser.py $(addprefix --build=,$(UBX_MESSAGES_ENABLED)) $(BUILDDIR)/ubx_msgs + find $(BUILDDIR)/ubx_msgs/src -name "*.c" | xargs echo CSRC += > $(BUILDDIR)/ubx_msgs.mk + +ifneq ($(MAKECMDGOALS),clean) +-include $(BUILDDIR)/ubx_msgs.mk +endif From 78b92db047814eebc3d41773fbc06c81973286e2 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Tue, 17 Jul 2018 18:37:45 +0530 Subject: [PATCH 02/13] gps: fix size var --- modules/gps/gps.c | 4 +++- modules/gps/gps.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/gps/gps.c b/modules/gps/gps.c index f0697644..f92e19b7 100644 --- a/modules/gps/gps.c +++ b/modules/gps/gps.c @@ -126,7 +126,9 @@ bool gps_spin(struct gps_handle_s* gps_handle, uint8_t byte) gps_handle->parser_buffer[gps_handle->parser_cnt++] = byte; size_t msg_len; gps_handle->state = check_ubx_message(gps_handle, &msg_len); - + if (gps_handle->parser_cnt == PARSER_BUFFER_SIZE && (gps_handle->state != MESSAGE_INVALID || gps_handle->state != MESSAGE_VALID)) { + gps_handle->state = MESSAGE_INVALID; + } while (gps_handle->state == MESSAGE_INVALID) { gps_handle->parser_cnt--; memmove(gps_handle->parser_buffer, gps_handle->parser_buffer+1, gps_handle->parser_cnt); diff --git a/modules/gps/gps.h b/modules/gps/gps.h index 87e9a8be..8f258002 100644 --- a/modules/gps/gps.h +++ b/modules/gps/gps.h @@ -26,7 +26,7 @@ struct gps_msg { struct gps_handle_s { enum message_validity_t state; uint8_t parser_buffer[PARSER_BUFFER_SIZE]; - uint8_t parser_cnt; + size_t parser_cnt; }; bool gps_ubx_init_msg_topic(struct gps_handle_s* gps_handle, uint8_t class_id, uint8_t msg_id, void* frame_buffer, size_t frame_buffer_len, struct pubsub_topic_s* topic); From 57f8178883fe6ef5119fba6f92ac975196dabc06 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Wed, 18 Jul 2018 00:01:23 +0530 Subject: [PATCH 03/13] gps: add parser --- modules/gps/ubx_parser/templates/ubx_msg.c | 63 ++++ modules/gps/ubx_parser/templates/ubx_msg.h | 58 +++ ...rDescrProtSpec_(UBX-13003221)_Public-0.csv | 14 + ...rDescrProtSpec_(UBX-13003221)_Public-1.csv | 8 + ...DescrProtSpec_(UBX-13003221)_Public-10.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-100.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-101.csv | 19 + ...escrProtSpec_(UBX-13003221)_Public-102.csv | 2 + ...escrProtSpec_(UBX-13003221)_Public-103.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-104.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-105.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-106.csv | 6 + ...escrProtSpec_(UBX-13003221)_Public-107.csv | 13 + ...escrProtSpec_(UBX-13003221)_Public-108.csv | 6 + ...escrProtSpec_(UBX-13003221)_Public-109.csv | 18 + ...DescrProtSpec_(UBX-13003221)_Public-11.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-110.csv | 18 + ...escrProtSpec_(UBX-13003221)_Public-111.csv | 7 + ...escrProtSpec_(UBX-13003221)_Public-112.csv | 7 + ...escrProtSpec_(UBX-13003221)_Public-113.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-114.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-115.csv | 26 ++ ...escrProtSpec_(UBX-13003221)_Public-116.csv | 9 + ...escrProtSpec_(UBX-13003221)_Public-117.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-118.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-119.csv | 12 + ...DescrProtSpec_(UBX-13003221)_Public-12.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-120.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-121.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-122.csv | 23 ++ ...escrProtSpec_(UBX-13003221)_Public-123.csv | 23 ++ ...escrProtSpec_(UBX-13003221)_Public-124.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-125.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-126.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-127.csv | 5 + ...escrProtSpec_(UBX-13003221)_Public-128.csv | 13 + ...escrProtSpec_(UBX-13003221)_Public-129.csv | 8 + ...DescrProtSpec_(UBX-13003221)_Public-13.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-130.csv | 27 ++ ...escrProtSpec_(UBX-13003221)_Public-131.csv | 6 + ...escrProtSpec_(UBX-13003221)_Public-132.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-133.csv | 21 ++ ...escrProtSpec_(UBX-13003221)_Public-134.csv | 27 ++ ...escrProtSpec_(UBX-13003221)_Public-135.csv | 23 ++ ...escrProtSpec_(UBX-13003221)_Public-136.csv | 4 + ...escrProtSpec_(UBX-13003221)_Public-137.csv | 9 + ...escrProtSpec_(UBX-13003221)_Public-138.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-139.csv | 14 + ...DescrProtSpec_(UBX-13003221)_Public-14.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-140.csv | 19 + ...escrProtSpec_(UBX-13003221)_Public-141.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-142.csv | 25 ++ ...escrProtSpec_(UBX-13003221)_Public-143.csv | 25 ++ ...escrProtSpec_(UBX-13003221)_Public-144.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-145.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-146.csv | 6 + ...escrProtSpec_(UBX-13003221)_Public-147.csv | 21 ++ ...escrProtSpec_(UBX-13003221)_Public-148.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-149.csv | 13 + ...DescrProtSpec_(UBX-13003221)_Public-15.csv | 7 + ...escrProtSpec_(UBX-13003221)_Public-150.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-151.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-152.csv | 4 + ...escrProtSpec_(UBX-13003221)_Public-153.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-154.csv | 28 ++ ...escrProtSpec_(UBX-13003221)_Public-155.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-156.csv | 17 + ...escrProtSpec_(UBX-13003221)_Public-157.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-158.csv | 17 + ...escrProtSpec_(UBX-13003221)_Public-159.csv | 21 ++ ...DescrProtSpec_(UBX-13003221)_Public-16.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-160.csv | 9 + ...escrProtSpec_(UBX-13003221)_Public-161.csv | 24 ++ ...escrProtSpec_(UBX-13003221)_Public-162.csv | 26 ++ ...escrProtSpec_(UBX-13003221)_Public-163.csv | 17 + ...escrProtSpec_(UBX-13003221)_Public-164.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-165.csv | 26 ++ ...escrProtSpec_(UBX-13003221)_Public-166.csv | 25 ++ ...escrProtSpec_(UBX-13003221)_Public-167.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-168.csv | 17 + ...escrProtSpec_(UBX-13003221)_Public-169.csv | 5 + ...DescrProtSpec_(UBX-13003221)_Public-17.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-170.csv | 21 ++ ...escrProtSpec_(UBX-13003221)_Public-171.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-172.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-173.csv | 5 + ...escrProtSpec_(UBX-13003221)_Public-174.csv | 24 ++ ...escrProtSpec_(UBX-13003221)_Public-175.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-176.csv | 5 + ...escrProtSpec_(UBX-13003221)_Public-177.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-178.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-179.csv | 21 ++ ...DescrProtSpec_(UBX-13003221)_Public-18.csv | 2 + ...escrProtSpec_(UBX-13003221)_Public-180.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-181.csv | 31 ++ ...escrProtSpec_(UBX-13003221)_Public-182.csv | 25 ++ ...escrProtSpec_(UBX-13003221)_Public-183.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-184.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-185.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-186.csv | 19 + ...escrProtSpec_(UBX-13003221)_Public-187.csv | 26 ++ ...escrProtSpec_(UBX-13003221)_Public-188.csv | 20 + ...escrProtSpec_(UBX-13003221)_Public-189.csv | 16 + ...DescrProtSpec_(UBX-13003221)_Public-19.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-190.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-191.csv | 17 + ...escrProtSpec_(UBX-13003221)_Public-192.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-193.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-194.csv | 18 + ...escrProtSpec_(UBX-13003221)_Public-195.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-196.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-197.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-198.csv | 13 + ...escrProtSpec_(UBX-13003221)_Public-199.csv | 18 + ...rDescrProtSpec_(UBX-13003221)_Public-2.csv | 13 + ...DescrProtSpec_(UBX-13003221)_Public-20.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-200.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-201.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-202.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-203.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-204.csv | 4 + ...escrProtSpec_(UBX-13003221)_Public-205.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-206.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-207.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-208.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-209.csv | 5 + ...DescrProtSpec_(UBX-13003221)_Public-21.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-210.csv | 18 + ...escrProtSpec_(UBX-13003221)_Public-211.csv | 5 + ...escrProtSpec_(UBX-13003221)_Public-212.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-213.csv | 21 ++ ...escrProtSpec_(UBX-13003221)_Public-214.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-215.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-216.csv | 2 + ...escrProtSpec_(UBX-13003221)_Public-217.csv | 28 ++ ...escrProtSpec_(UBX-13003221)_Public-218.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-219.csv | 20 + ...DescrProtSpec_(UBX-13003221)_Public-22.csv | 7 + ...escrProtSpec_(UBX-13003221)_Public-220.csv | 5 + ...escrProtSpec_(UBX-13003221)_Public-221.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-222.csv | 22 ++ ...escrProtSpec_(UBX-13003221)_Public-223.csv | 27 ++ ...escrProtSpec_(UBX-13003221)_Public-224.csv | 20 + ...escrProtSpec_(UBX-13003221)_Public-225.csv | 7 + ...escrProtSpec_(UBX-13003221)_Public-226.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-227.csv | 7 + ...escrProtSpec_(UBX-13003221)_Public-228.csv | 23 ++ ...escrProtSpec_(UBX-13003221)_Public-229.csv | 21 ++ ...DescrProtSpec_(UBX-13003221)_Public-23.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-230.csv | 5 + ...escrProtSpec_(UBX-13003221)_Public-231.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-232.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-233.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-234.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-235.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-236.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-237.csv | 3 + ...escrProtSpec_(UBX-13003221)_Public-238.csv | 19 + ...escrProtSpec_(UBX-13003221)_Public-239.csv | 14 + ...DescrProtSpec_(UBX-13003221)_Public-24.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-240.csv | 18 + ...escrProtSpec_(UBX-13003221)_Public-241.csv | 28 ++ ...escrProtSpec_(UBX-13003221)_Public-242.csv | 4 + ...escrProtSpec_(UBX-13003221)_Public-243.csv | 33 ++ ...escrProtSpec_(UBX-13003221)_Public-244.csv | 2 + ...escrProtSpec_(UBX-13003221)_Public-245.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-246.csv | 2 + ...escrProtSpec_(UBX-13003221)_Public-247.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-248.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-249.csv | 21 ++ ...DescrProtSpec_(UBX-13003221)_Public-25.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-250.csv | 9 + ...escrProtSpec_(UBX-13003221)_Public-251.csv | 17 + ...escrProtSpec_(UBX-13003221)_Public-252.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-253.csv | 17 + ...escrProtSpec_(UBX-13003221)_Public-254.csv | 13 + ...escrProtSpec_(UBX-13003221)_Public-255.csv | 5 + ...escrProtSpec_(UBX-13003221)_Public-256.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-257.csv | 20 + ...escrProtSpec_(UBX-13003221)_Public-258.csv | 20 + ...escrProtSpec_(UBX-13003221)_Public-259.csv | 9 + ...DescrProtSpec_(UBX-13003221)_Public-26.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-260.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-261.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-262.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-263.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-264.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-265.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-266.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-267.csv | 5 + ...escrProtSpec_(UBX-13003221)_Public-268.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-269.csv | 16 + ...DescrProtSpec_(UBX-13003221)_Public-27.csv | 13 + ...escrProtSpec_(UBX-13003221)_Public-270.csv | 3 + ...escrProtSpec_(UBX-13003221)_Public-271.csv | 16 + ...escrProtSpec_(UBX-13003221)_Public-272.csv | 3 + ...escrProtSpec_(UBX-13003221)_Public-273.csv | 19 + ...escrProtSpec_(UBX-13003221)_Public-274.csv | 19 + ...escrProtSpec_(UBX-13003221)_Public-275.csv | 12 + ...escrProtSpec_(UBX-13003221)_Public-276.csv | 14 + ...escrProtSpec_(UBX-13003221)_Public-277.csv | 2 + ...escrProtSpec_(UBX-13003221)_Public-278.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-279.csv | 4 + ...DescrProtSpec_(UBX-13003221)_Public-28.csv | 10 + ...escrProtSpec_(UBX-13003221)_Public-280.csv | 13 + ...escrProtSpec_(UBX-13003221)_Public-281.csv | 15 + ...escrProtSpec_(UBX-13003221)_Public-282.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-283.csv | 6 + ...escrProtSpec_(UBX-13003221)_Public-284.csv | 8 + ...escrProtSpec_(UBX-13003221)_Public-285.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-286.csv | 11 + ...escrProtSpec_(UBX-13003221)_Public-287.csv | 13 + ...escrProtSpec_(UBX-13003221)_Public-288.csv | 13 + ...DescrProtSpec_(UBX-13003221)_Public-29.csv | 11 + ...rDescrProtSpec_(UBX-13003221)_Public-3.csv | 3 + ...DescrProtSpec_(UBX-13003221)_Public-30.csv | 15 + ...DescrProtSpec_(UBX-13003221)_Public-31.csv | 15 + ...DescrProtSpec_(UBX-13003221)_Public-32.csv | 18 + ...DescrProtSpec_(UBX-13003221)_Public-33.csv | 9 + ...DescrProtSpec_(UBX-13003221)_Public-34.csv | 12 + ...DescrProtSpec_(UBX-13003221)_Public-35.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-36.csv | 25 ++ ...DescrProtSpec_(UBX-13003221)_Public-37.csv | 2 + ...DescrProtSpec_(UBX-13003221)_Public-38.csv | 13 + ...DescrProtSpec_(UBX-13003221)_Public-39.csv | 21 ++ ...rDescrProtSpec_(UBX-13003221)_Public-4.csv | 38 ++ ...DescrProtSpec_(UBX-13003221)_Public-40.csv | 6 + ...DescrProtSpec_(UBX-13003221)_Public-41.csv | 7 + ...DescrProtSpec_(UBX-13003221)_Public-42.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-43.csv | 13 + ...DescrProtSpec_(UBX-13003221)_Public-44.csv | 10 + ...DescrProtSpec_(UBX-13003221)_Public-45.csv | 6 + ...DescrProtSpec_(UBX-13003221)_Public-46.csv | 14 + ...DescrProtSpec_(UBX-13003221)_Public-47.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-48.csv | 10 + ...DescrProtSpec_(UBX-13003221)_Public-49.csv | 11 + ...rDescrProtSpec_(UBX-13003221)_Public-5.csv | 39 ++ ...DescrProtSpec_(UBX-13003221)_Public-50.csv | 4 + ...DescrProtSpec_(UBX-13003221)_Public-51.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-52.csv | 4 + ...DescrProtSpec_(UBX-13003221)_Public-53.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-54.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-55.csv | 12 + ...DescrProtSpec_(UBX-13003221)_Public-56.csv | 12 + ...DescrProtSpec_(UBX-13003221)_Public-57.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-58.csv | 18 + ...DescrProtSpec_(UBX-13003221)_Public-59.csv | 15 + ...rDescrProtSpec_(UBX-13003221)_Public-6.csv | 39 ++ ...DescrProtSpec_(UBX-13003221)_Public-60.csv | 15 + ...DescrProtSpec_(UBX-13003221)_Public-61.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-62.csv | 22 ++ ...DescrProtSpec_(UBX-13003221)_Public-63.csv | 27 ++ ...DescrProtSpec_(UBX-13003221)_Public-64.csv | 8 + ...DescrProtSpec_(UBX-13003221)_Public-65.csv | 13 + ...DescrProtSpec_(UBX-13003221)_Public-66.csv | 8 + ...DescrProtSpec_(UBX-13003221)_Public-67.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-68.csv | 15 + ...DescrProtSpec_(UBX-13003221)_Public-69.csv | 6 + ...rDescrProtSpec_(UBX-13003221)_Public-7.csv | 39 ++ ...DescrProtSpec_(UBX-13003221)_Public-70.csv | 20 + ...DescrProtSpec_(UBX-13003221)_Public-71.csv | 16 + ...DescrProtSpec_(UBX-13003221)_Public-72.csv | 5 + ...DescrProtSpec_(UBX-13003221)_Public-73.csv | 21 ++ ...DescrProtSpec_(UBX-13003221)_Public-74.csv | 21 ++ ...DescrProtSpec_(UBX-13003221)_Public-75.csv | 14 + ...DescrProtSpec_(UBX-13003221)_Public-76.csv | 10 + ...DescrProtSpec_(UBX-13003221)_Public-77.csv | 14 + ...DescrProtSpec_(UBX-13003221)_Public-78.csv | 5 + ...DescrProtSpec_(UBX-13003221)_Public-79.csv | 14 + ...rDescrProtSpec_(UBX-13003221)_Public-8.csv | 39 ++ ...DescrProtSpec_(UBX-13003221)_Public-80.csv | 4 + ...DescrProtSpec_(UBX-13003221)_Public-81.csv | 15 + ...DescrProtSpec_(UBX-13003221)_Public-82.csv | 4 + ...DescrProtSpec_(UBX-13003221)_Public-83.csv | 18 + ...DescrProtSpec_(UBX-13003221)_Public-84.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-85.csv | 2 + ...DescrProtSpec_(UBX-13003221)_Public-86.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-87.csv | 2 + ...DescrProtSpec_(UBX-13003221)_Public-88.csv | 13 + ...DescrProtSpec_(UBX-13003221)_Public-89.csv | 12 + ...rDescrProtSpec_(UBX-13003221)_Public-9.csv | 26 ++ ...DescrProtSpec_(UBX-13003221)_Public-90.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-91.csv | 11 + ...DescrProtSpec_(UBX-13003221)_Public-92.csv | 13 + ...DescrProtSpec_(UBX-13003221)_Public-93.csv | 2 + ...DescrProtSpec_(UBX-13003221)_Public-94.csv | 35 ++ ...DescrProtSpec_(UBX-13003221)_Public-95.csv | 4 + ...DescrProtSpec_(UBX-13003221)_Public-96.csv | 18 + ...DescrProtSpec_(UBX-13003221)_Public-97.csv | 17 + ...DescrProtSpec_(UBX-13003221)_Public-98.csv | 7 + ...DescrProtSpec_(UBX-13003221)_Public-99.csv | 8 + modules/gps/ubx_parser/ubx_pdf_csv_parser.py | 348 ++++++++++++++++++ .../ubx_parser/ubx_pdf_csv_parser_helper.py | 37 ++ 293 files changed, 4413 insertions(+) create mode 100644 modules/gps/ubx_parser/templates/ubx_msg.c create mode 100644 modules/gps/ubx_parser/templates/ubx_msg.h create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-0.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-1.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-10.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-100.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-101.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-102.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-103.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-104.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-105.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-106.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-107.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-108.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-109.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-11.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-110.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-111.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-112.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-113.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-114.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-115.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-116.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-117.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-118.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-119.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-12.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-120.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-121.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-122.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-123.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-124.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-125.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-126.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-127.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-128.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-129.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-13.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-130.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-131.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-132.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-133.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-134.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-135.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-136.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-137.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-138.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-139.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-14.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-140.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-141.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-142.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-143.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-144.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-145.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-146.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-147.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-148.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-149.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-15.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-150.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-151.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-152.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-153.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-154.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-155.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-156.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-157.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-158.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-159.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-16.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-160.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-161.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-162.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-163.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-164.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-165.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-166.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-167.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-168.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-169.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-17.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-170.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-171.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-172.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-173.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-174.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-175.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-176.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-177.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-178.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-179.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-18.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-180.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-181.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-182.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-183.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-184.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-185.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-186.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-187.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-188.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-189.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-19.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-190.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-191.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-192.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-193.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-194.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-195.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-196.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-197.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-198.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-199.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-2.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-20.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-200.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-201.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-202.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-203.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-204.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-205.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-206.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-207.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-208.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-209.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-21.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-210.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-211.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-212.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-213.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-214.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-215.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-216.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-217.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-218.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-219.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-22.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-220.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-221.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-222.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-223.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-224.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-225.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-226.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-227.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-228.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-229.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-23.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-230.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-231.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-232.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-233.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-234.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-235.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-236.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-237.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-238.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-239.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-24.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-240.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-241.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-242.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-243.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-244.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-245.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-246.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-247.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-248.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-249.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-25.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-250.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-251.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-252.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-253.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-254.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-255.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-256.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-257.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-258.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-259.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-26.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-260.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-261.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-262.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-263.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-264.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-265.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-266.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-267.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-268.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-269.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-27.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-270.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-271.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-272.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-273.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-274.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-275.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-276.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-277.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-278.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-279.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-28.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-280.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-281.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-282.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-283.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-284.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-285.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-286.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-287.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-288.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-29.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-3.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-30.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-31.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-32.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-33.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-34.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-35.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-36.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-37.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-38.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-39.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-4.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-40.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-41.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-42.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-43.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-44.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-45.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-46.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-47.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-48.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-49.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-5.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-50.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-51.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-52.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-53.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-54.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-55.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-56.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-57.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-58.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-59.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-6.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-60.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-61.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-62.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-63.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-64.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-65.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-66.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-67.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-68.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-69.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-7.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-70.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-71.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-72.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-73.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-74.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-75.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-76.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-77.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-78.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-79.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-8.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-80.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-81.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-82.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-83.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-84.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-85.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-86.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-87.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-88.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-89.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-9.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-90.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-91.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-92.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-93.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-94.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-95.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-96.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-97.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-98.csv create mode 100755 modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-99.csv create mode 100644 modules/gps/ubx_parser/ubx_pdf_csv_parser.py create mode 100644 modules/gps/ubx_parser/ubx_pdf_csv_parser_helper.py diff --git a/modules/gps/ubx_parser/templates/ubx_msg.c b/modules/gps/ubx_parser/templates/ubx_msg.c new file mode 100644 index 00000000..0d9a27e4 --- /dev/null +++ b/modules/gps/ubx_parser/templates/ubx_msg.c @@ -0,0 +1,63 @@ +@{from ubx_pdf_csv_parser_helper import *} +#include <@(msg_header_name(msg))> +#include + +@[if len(msg.ParsedStructFields)]@ +@(msg_c_type(msg))* ubx_parse_@(msg_full_name(msg).lower())(const uint8_t* buffer, uint8_t buflen) +{ + if (buflen < sizeof(@(msg_c_type(msg)))) { + return NULL; + } + return (@(msg_c_type(msg))*)buffer; +} +@[end if]@ + +@[if len(msg.ParsedStructRepFields)]@ +@(msg_c_type_rep(msg))* ubx_parse_@(msg_full_name(msg).lower())_rep(const uint8_t* buffer, uint8_t buflen, uint8_t *num_repeat_blocks) +{ + uint8_t main_size = 0; +@[if len(msg.ParsedStructFields)]@ + @(msg_c_type(msg))* main_struct = ubx_parse_@(msg_full_name(msg).lower())(buffer, buflen); + if (main_struct == NULL) { + return NULL; + } + main_size = sizeof(@(msg_c_type(msg))); +@[ end if]@ +@[ if len(msg.RepeatVarName) > 2]@ + *num_repeat_blocks = main_struct->@(msg.RepeatVarName); + if (buflen < main_size + sizeof(@(msg_c_type_rep(msg)))*(*num_repeat_blocks)) { + return NULL; + } +@[ else]@ + *num_repeat_blocks = (buflen - main_size) / sizeof(@(msg_c_type_rep(msg))); + if (*num_repeat_blocks == 0) { + return NULL; + } +@[ end if]@ + + return (@(msg_c_type_rep(msg))*)(buffer + main_size); +} +@[end if]@ + +@[if len(msg.ParsedStructOptFields)]@ +@(msg_c_type_opt(msg))* ubx_parse_@(msg_full_name(msg).lower())_opt(const uint8_t* buffer, uint8_t buflen) +{ + @(msg_c_type(msg))* main_struct = ubx_parse_@(msg_full_name(msg).lower())(buffer, buflen); + if (main_struct == NULL) { + return NULL; + } +@[ if len(msg.ParsedStructRepFields)]@ + uint8_t num_repeat_blocks = 0; + ubx_parse_@(msg_full_name(msg).lower())_rep(buffer, buflen, &num_repeat_blocks); + if (buflen < sizeof(@(msg_c_type(msg))) + sizeof(@(msg_c_type_rep(msg)))*(num_repeat_blocks) + sizeof(@(msg_c_type_opt(msg)))) { + return NULL; + } + return (@(msg_c_type_opt(msg))*)(buffer + sizeof(@(msg_c_type(msg))) + sizeof(@(msg_c_type_rep(msg)))*(num_repeat_blocks)); +@[ else]@ + if (buflen < sizeof(@(msg_c_type(msg))) + sizeof(@(msg_c_type_opt(msg)))) { + return NULL; + } + return (@(msg_c_type_opt(msg))*)(buffer + sizeof(@(msg_c_type(msg)))); +@[ end if]@ +} +@[end if]@ diff --git a/modules/gps/ubx_parser/templates/ubx_msg.h b/modules/gps/ubx_parser/templates/ubx_msg.h new file mode 100644 index 00000000..55ad0afb --- /dev/null +++ b/modules/gps/ubx_parser/templates/ubx_msg.h @@ -0,0 +1,58 @@ +@{from ubx_pdf_csv_parser_helper import *}@ +/*@(msg.TableStr)*/ +#pragma once +#include +#include + +#ifndef @(msg_full_name_without_type(msg).upper())_CLASS_ID +#define @(msg_full_name_without_type(msg).upper())_CLASS_ID @(msg.MsgClassId) +#endif +#ifndef @(msg_full_name_without_type(msg).upper())_MSG_ID +#define @(msg_full_name_without_type(msg).upper())_MSG_ID @(msg.MsgId) +#endif + + +@[if len(msg.ParsedStructFields)]@ +@(msg_c_type(msg)) { +@[ for field in msg.ParsedStructFields]@ +@[ if field[2] == 1]@ + @("%s %s" % (field[0], field[1])); +@[ else]@ + @("%s %s[%d]" % (field[0], field[1], field[2])); +@[ end if]@ +@[ end for]@ +}; +@[if msg.MsgType not in ['PollRequest', 'Input', 'Command', 'Set']]@ +@(msg_c_type(msg))* ubx_parse_@(msg_full_name(msg).lower())(const uint8_t* buffer, uint8_t buflen); +@[end if]@ +@[end if]@ + +@[if len(msg.ParsedStructRepFields)]@ +@(msg_c_type_rep(msg)) { +@[ for field in msg.ParsedStructRepFields]@ +@[ if field[2] == 1]@ + @("%s %s" % (field[0], field[1])); +@[ else]@ + @("%s %s[%d]" % (field[0], field[1], field[2])); +@[ end if]@ +@[ end for]@ +}; +@[ if msg.MsgType not in ['PollRequest', 'Input', 'Command', 'Set']]@ +@(msg_c_type_rep(msg))* ubx_parse_@(msg_full_name(msg).lower())_rep(const uint8_t* buffer, uint8_t buflen, uint8_t *num_repeat_blocks); +@[ end if]@ +@[end if] + +@[if len(msg.ParsedStructOptFields)]@ +@(msg_c_type_opt(msg)) { +@[ for field in msg.ParsedStructOptFields]@ +@[ if field[2] == 1]@ + @("%s %s" % (field[0], field[1])); +@[ else]@ + @("%s %s[%d]" % (field[0], field[1], field[2])); +@[ end if]@ +@[ end for]@ +}; +@[ if msg.MsgType not in ['PollRequest', 'Input', 'Command', 'Set']]@ +@(msg_c_type_opt(msg))* ubx_parse_@(msg_full_name(msg).lower())_opt(const uint8_t* buffer, uint8_t buflen); +@[ end if]@ +@[end if]@ \ No newline at end of file diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-0.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-0.csv new file mode 100755 index 00000000..162f269c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-0.csv @@ -0,0 +1,14 @@ +"",Short,Type,"Size (Bytes)",Comment,Min/Max,Resolution +"",U1,Unsigned Char,1,,0..255,1 +"",RU1_3,Unsigned Char,1,"binary floating point with 3 bit exponent, eeeb bbbb, (Value & 0x1F) << (Value >> 5)","0..(31*2^7) non-continuous",~ 2^(Value >> 5) +"",I1,Signed Char,1,2's complement,-128..127,1 +"",X1,Bitfield,1,,n/a,n/a +"",U2,Unsigned Short,2,,0..65535,1 +"",I2,Signed Short,2,2's complement,-32768..32767,1 +"",X2,Bitfield,2,,n/a,n/a +"",U4,Unsigned Long,4,,0..4 '294'967'295,1 +"",I4,Signed Long,4,2's complement,"-2'147'483'648 .. 2'147'483'647",1 +"",X4,Bitfield,4,,n/a,n/a +"",R4,IEEE 754 Single Precision,4,,"-1*2^+127 .. 2^+127",~ Value * 2^-24 +"",R8,IEEE 754 Double Precision,8,,"-1*2^+1023 .. 2^+1023",~ Value * 2^-53 +"",CH,ASCII / ISO 8859.1 Encoding,1,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-1.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-1.csv new file mode 100755 index 00000000..2c265f00 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-1.csv @@ -0,0 +1,8 @@ +gnssId,GNSS +0,GPS +1,SBAS +2,Galileo +3,BeiDou +4,IMES +5,QZSS +6,GLONASS diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-10.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-10.csv new file mode 100755 index 00000000..22847c59 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-10.csv @@ -0,0 +1,11 @@ +Message,ACK-ACK,,,,, +Description,Message Acknowledged,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Output,,,,, +Comment,Output upon processing of an input message,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x05,0x01,2,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,clsID,-,Class ID of the Acknowledged Message, +1,U1,-,msgID,-,Message ID of the Acknowledged Message, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-100.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-100.csv new file mode 100755 index 00000000..1e947f2e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-100.csv @@ -0,0 +1,10 @@ +"",Message,CFG-TP5,,,,, +"",Description,Poll Time Pulse Parameters,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 22",,,,, +"",Type,Poll Request,,,,, +"",Comment,"Sending this message to the receiver results in the receiver returning a message of type CFG-TP5 with a payload as defined below for the specified time pulse.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x31,1,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,tpIdx,-,"Time pulse selection (0 = TIMEPULSE, 1 = TIMEPULSE2)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-101.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-101.csv new file mode 100755 index 00000000..2abb8f9d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-101.csv @@ -0,0 +1,19 @@ +"",Message,CFG-TP5,,,,, +"",Description,Time Pulse Parameters,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 15",,,,, +"",Type,Get/Set,,,,, +"",Comment,"This message is used to get/set time pulse parameters. For more information see section Time pulse.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x31,32,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,tpIdx,-,"Time pulse selection (0 = TIMEPULSE, 1 = TIMEPULSE2)", +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,I2,-,antCableDelay,ns,Antenna cable delay, +"",6,I2,-,rfGroupDelay,ns,RF group delay, +"",8,U4,-,freqPeriod,"Hz_or_ us","Frequency or period time, depending on setting of bit 'isFreq'", +"",12,U4,-,"freqPeriodLoc k","Hz_or_ us","Frequency or period time when locked to GPS time, only used if 'lockedOtherSet' is set", +"",16,U4,-,pulseLenRatio,"us_or_2 ^-32","Pulse length or duty cycle, depending on 'isLength'", +"",20,U4,-,"pulseLenRatio Lock","us_or_2 ^-32","Pulse length or duty cycle when locked to GPS time, only used if 'lockedOtherSet' is set", +"",24,I4,-,"userConfigDel ay",ns,User configurable time pulse delay, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-102.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-102.csv new file mode 100755 index 00000000..aaf8686e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-102.csv @@ -0,0 +1,2 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +28,X4,-,flags,-,Configuration flags (see graphic below) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-103.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-103.csv new file mode 100755 index 00000000..9bc30dc1 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-103.csv @@ -0,0 +1,10 @@ +Message,CFG-TP5,,,,, +Description,Time Pulse Parameters,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 22",,,,, +Type,Get/Set,,,,, +Comment,"This message is used to get/set time pulse parameters. For more information see section Time pulse.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x31,32,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,tpIdx,-,"Time pulse selection (0 = TIMEPULSE, 1 = TIMEPULSE2)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-104.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-104.csv new file mode 100755 index 00000000..ca8091c5 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-104.csv @@ -0,0 +1,11 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +1,U1,-,version,-,Message version (0x01 for this version) +2,U1[2],-,reserved1,-,Reserved +4,I2,-,antCableDelay,ns,Antenna cable delay +6,I2,-,rfGroupDelay,ns,RF group delay +8,U4,-,freqPeriod,"Hz_or_ us","Frequency or period time, depending on setting of bit 'isFreq'" +12,U4,-,"freqPeriodLoc k","Hz_or_ us","Frequency or period time when locked to GNSS time, only used if 'lockedOtherSet' is set" +16,U4,-,pulseLenRatio,"us_or_2 ^-32","Pulse length or duty cycle, depending on 'isLength'" +20,U4,-,"pulseLenRatio Lock","us_or_2 ^-32","Pulse length or duty cycle when locked to GNSS time, only used if 'lockedOtherSet' is set" +24,I4,-,"userConfigDel ay",ns,User configurable time pulse delay +28,X4,-,flags,-,Configuration flags (see graphic below) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-105.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-105.csv new file mode 100755 index 00000000..05e11132 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-105.csv @@ -0,0 +1,11 @@ +"",Message,CFG-TXSLOT,,,,, +"",Description,TX buffer time slots configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Set,,,,, +"",Comment,"This message configures how transmit time slots are defined for the receiver interfaces. These time slots are relative to the chosen time pulse. A receiver that supports this message offers 3 time slots: nr. 0, 1 and 2. These time pulses follow each other and their associated priorities decrease in this order. The end of each can be specified in this message, the beginning is when the circularly previous slot ends (i.e. slot 0 starts when slot 2 finishes).",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x53,16,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,X1,-,enable,-,"Bitfield of ports for which the slots are enabled. (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-106.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-106.csv new file mode 100755 index 00000000..9ca0e9ee --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-106.csv @@ -0,0 +1,6 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +2,U1,-,refTp,-,"Reference timepulse source 0 - Timepulse 1 - Timepulse 2" +3,U1,-,reserved1,-,Reserved +Start of repeated block (3 times),,,,, +4 + 4*N,U4,-,end,-,End of timeslot in milliseconds after time pulse +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-107.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-107.csv new file mode 100755 index 00000000..0fc75c1e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-107.csv @@ -0,0 +1,13 @@ +Message,CFG-USB,,,,, +Description,USB Configuration,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x1B,108,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U2,-,vendorID,-,"Vendor ID. This field shall only be set to registered Vendor IDs. Changing this field requires special Host drivers.", +2,U2,-,productID,-,"Product ID. Changing this field requires special Host drivers.", +4,U1[2],-,reserved1,-,Reserved, +6,U1[2],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-108.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-108.csv new file mode 100755 index 00000000..9a400f00 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-108.csv @@ -0,0 +1,6 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +8,U2,-,"powerConsumpt ion",mA,Power consumed by the device +10,X2,-,flags,-,various configuration flags (see graphic below) +12,CH[32],-,vendorString,-,"String containing the vendor name. 32 ASCII bytes including 0-termination." +44,CH[32],-,productString,-,"String containing the product name. 32 ASCII bytes including 0-termination." +76,CH[32],-,serialNumber,-,"String containing the serial number. 32 ASCII bytes including 0-termination. Changing the String fields requires special Host drivers." diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-109.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-109.csv new file mode 100755 index 00000000..e219dc80 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-109.csv @@ -0,0 +1,18 @@ +Message,ESF-INS,,,,, +Description,Vehicle dynamics information,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 19 up to version 23.01 (only with ADR or UDR products)",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message outputs information about vehicle dynamics computed by the Inertial Navigation System (INS) during ESF-based navigation. For ADR products, the output dynamics information (angular rates and accelerations) is expressed with respect to the vehicle-frame. More information can be found in the ADR Navigation Output section. For UDR products, the output dynamics information (angular rates and accelerations) is expressed with respect to the body-frame. More information can be found in the UDR Navigation Output section.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x10,0x15,36,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,bitfield0,-,Bitfield (see graphic below), +4,U1[4],-,reserved1,-,Reserved, +8,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +12,I4,1e-3,xAngRate,deg/s,Compensated x-axis angular rate., +16,I4,1e-3,yAngRate,deg/s,Compensated y-axis angular rate., +20,I4,1e-3,zAngRate,deg/s,Compensated z-axis angular rate., +24,I4,-,xAccel,mg,Compensated x-axis acceleration (gravity-free)., +28,I4,-,yAccel,mg,Compensated y-axis acceleration (gravity-free)., +32,I4,-,zAccel,mg,Compensated z-axis acceleration (gravity-free)., diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-11.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-11.csv new file mode 100755 index 00000000..744f2db2 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-11.csv @@ -0,0 +1,11 @@ +Message,ACK-NAK,,,,, +Description,Message Not-Acknowledged,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Output,,,,, +Comment,Output upon processing of an input message,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x05,0x00,2,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,clsID,-,Class ID of the Not-Acknowledged Message, +1,U1,-,msgID,-,Message ID of the Not-Acknowledged Message, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-110.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-110.csv new file mode 100755 index 00000000..5e31b9da --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-110.csv @@ -0,0 +1,18 @@ +"",Message,ESF-MEAS,,,,, +"",Description,External Sensor Fusion Measurements,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15.01 up to version 17 (only with ADR products) •u-blox 8 / u-blox M8 from protocol version 19 up to version 23.01 (only with ADR or UDR products)",,,,, +"",Type,Input/Output,,,,, +"",Comment,Possible data types for the data field are described in the ESF Measurement Data section.,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x10,0x02,(8 + 4*N) or (12 + 4*N),see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,timeTag,-,"Time tag of measurement generated by external sensor", +"",4,X2,-,flags,-,"Flags. Set all unused bits to zero. (see graphic below)", +"",6,U2,-,id,-,Identification number of data provider, +"",Start of repeated block (N times),,,,,, +"",8 + 4*N,X4,-,data,-,data (see graphic below), +"",End of repeated block,,,,,, +"",Start of optional block,,,,,, +"",8 + 4*N,U4,-,calibTtag,ms,"Receiver local time calibrated. This field must not be supplied when calibTtagValid is set to 0.", +"",End of optional block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-111.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-111.csv new file mode 100755 index 00000000..005d2a24 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-111.csv @@ -0,0 +1,7 @@ +Message,ESF-RAW,,,,, +Description,Raw sensor measurements,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15.01 up to version 17 (only with ADR products) •u-blox 8 / u-blox M8 from protocol version 19 up to version 23.01 (only with ADR or UDR products)",,,,, +Type,Output,,,,, +Comment,"The message contains measurements from the active inertial sensors connected to the GNSS chip. Possible data types for the data field are accelerometer, gyroscope and temperature readings as described in the ESF Measurement Data section. Note that the rate selected in CFG-MSG is not respected. If a positive rate is selected then all raw measurements will be output. See also Raw Sensor Measurement Data.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +0xB5 0x62,0x10,0x03,4 + 8*N,see below,CK_A CK_B, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-112.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-112.csv new file mode 100755 index 00000000..54e737ed --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-112.csv @@ -0,0 +1,7 @@ +Payload Contents:,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description +0,U1[4],-,reserved1,-,Reserved +Start of repeated block (N times),,,,, +4 + 8*N,X4,-,data,-,"data Its scaling and unit depends on the type and is the same as in ESF-MEAS (see graphic below)" +8 + 8*N,U4,-,sTtag,-,sensor time tag +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-113.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-113.csv new file mode 100755 index 00000000..07679b95 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-113.csv @@ -0,0 +1,12 @@ +Message,ESF-STATUS,,,,, +Description,External Sensor Fusion (ESF) status information,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15.01 up to version 17 (only with ADR products) •u-blox 8 / u-blox M8 from protocol version 19 up to version 23.01 (only with ADR or UDR products)",,,,, +Type,Periodic/Polled,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x10,0x10,16 + 4*numSens,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U1,-,version,-,Message version (2 for this version), +5,U1[7],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-114.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-114.csv new file mode 100755 index 00000000..b6bf3bca --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-114.csv @@ -0,0 +1,10 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +12,U1,-,fusionMode,-,"Fusion mode: 0: Initialization mode: receiver is initializing some unknown values required for doing sensor fusion 1: Fusion mode: GNSS and sensor data are used for navigation solution computation 2: Suspended fusion mode: sensor fusion is temporarily disabled due to e.g. invalid sensor data or detected ferry 3: Disabled fusion mode: sensor fusion is permanently disabled until receiver reset due e. g. to sensor error More details can be found in the Fusion Modes section." +13,U1[2],-,reserved2,-,Reserved +15,U1,-,numSens,-,Number of sensors +Start of repeated block (numSens times),,,,, +16 + 4*N,X1,-,sensStatus1,-,"Sensor status, part 1 (see graphic below)" +17 + 4*N,X1,-,sensStatus2,-,"Sensor status, part 2 (see graphic below)" +18 + 4*N,U1,-,freq,Hz,Observation frequency +19 + 4*N,X1,-,faults,-,Sensor faults (see graphic below) +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-115.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-115.csv new file mode 100755 index 00000000..e112b46a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-115.csv @@ -0,0 +1,26 @@ +Message,HNR-PVT,,,,, +Description,High Rate Output of PVT Solution,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 19 up to version 23.01 (only with ADR or UDR products)",,,,, +Type,Periodic/Polled,,,,, +Comment,"Note that during a leap second there may be more (or less) than 60 seconds in a minute; see the description of leap seconds for details. This message provides the position, velocity and time solution with high output rate.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x28,0x00,72,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U2,-,year,y,Year (UTC), +6,U1,-,month,month,"Month, range 1..12 (UTC)", +7,U1,-,day,d,"Day of month, range 1..31 (UTC)", +8,U1,-,hour,h,"Hour of day, range 0..23 (UTC)", +9,U1,-,min,min,"Minute of hour, range 0..59 (UTC)", +10,U1,-,sec,s,"Seconds of minute, range 0..60 (UTC)", +11,X1,-,valid,-,Validity Flags (see graphic below), +12,I4,-,nano,ns,"Fraction of second, range -1e9 .. 1e9 (UTC)", +16,U1,-,gpsFix,-,"GPSfix Type, range 0..5 0x00 = No Fix 0x01 = Dead Reckoning only 0x02 = 2D-Fix 0x03 = 3D-Fix 0x04 = GPS + dead reckoning combined 0x05 = Time only fix 0x06..0xff: reserved", +17,X1,-,flags,-,Fix Status Flags (see graphic below), +18,U1[2],-,reserved1,-,Reserved, +20,I4,1e-7,lon,deg,Longitude, +24,I4,1e-7,lat,deg,Latitude, +28,I4,-,height,mm,Height above Ellipsoid, +32,I4,-,hMSL,mm,Height above mean sea level, +36,I4,-,gSpeed,mm/s,Ground Speed (2-D), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-116.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-116.csv new file mode 100755 index 00000000..59aa414a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-116.csv @@ -0,0 +1,9 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +40,I4,-,speed,mm/s,Speed (3-D) +44,I4,1e-5,headMot,deg,Heading of motion (2-D) +48,I4,1e-5,headVeh,deg,Heading of vehicle (2-D) +52,U4,-,hAcc,mm,Horizontal accuracy +56,U4,-,vAcc,mm,Vertical accuracy +60,U4,-,sAcc,mm/s,Speed accuracy +64,U4,1e-5,headAcc,deg,Heading accuracy +68,U1[4],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-117.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-117.csv new file mode 100755 index 00000000..0dff8814 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-117.csv @@ -0,0 +1,12 @@ +"",Message,INF-DEBUG,,,,, +"",Description,ASCII output with debug contents,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message has a variable length payload, representing an ASCII string.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x04,0x04,0 + 1*N,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",Start of repeated block (N times),,,,,, +"",N*1,CH,-,str,-,ASCII Character, +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-118.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-118.csv new file mode 100755 index 00000000..4dcf94a6 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-118.csv @@ -0,0 +1,12 @@ +"",Message,INF-ERROR,,,,, +"",Description,ASCII output with error contents,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message has a variable length payload, representing an ASCII string.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x04,0x00,0 + 1*N,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",Start of repeated block (N times),,,,,, +"",N*1,CH,-,str,-,ASCII Character, +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-119.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-119.csv new file mode 100755 index 00000000..6ce1f562 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-119.csv @@ -0,0 +1,12 @@ +"",Message,INF-NOTICE,,,,, +"",Description,ASCII output with informational contents,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message has a variable length payload, representing an ASCII string.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x04,0x02,0 + 1*N,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",Start of repeated block (N times),,,,,, +"",N*1,CH,-,str,-,ASCII Character, +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-12.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-12.csv new file mode 100755 index 00000000..533fd571 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-12.csv @@ -0,0 +1,8 @@ +"",Message,AID-ALM,,,,, +"",Description,Poll GPS Aiding Almanac Data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead Poll GPS Aiding Data (Almanac) for all 32 SVs by sending this message to the receiver without any payload. The receiver will return 32 messages of type AID-ALM as defined below.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0B,0x30,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-120.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-120.csv new file mode 100755 index 00000000..efbf2eaf --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-120.csv @@ -0,0 +1,12 @@ +"",Message,INF-TEST,,,,, +"",Description,ASCII output with test contents,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message has a variable length payload, representing an ASCII string.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x04,0x03,0 + 1*N,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",Start of repeated block (N times),,,,,, +"",N*1,CH,-,str,-,ASCII Character, +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-121.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-121.csv new file mode 100755 index 00000000..e8f5e4e9 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-121.csv @@ -0,0 +1,12 @@ +Message,INF-WARNING,,,,, +Description,ASCII output with warning contents,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Output,,,,, +Comment,"This message has a variable length payload, representing an ASCII string.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x04,0x01,0 + 1*N,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +Start of repeated block (N times),,,,,, +N*1,CH,-,str,-,ASCII Character, +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-122.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-122.csv new file mode 100755 index 00000000..8549cb54 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-122.csv @@ -0,0 +1,23 @@ +"",Message,LOG-BATCH,,,,, +"",Description,Batched data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 23.01",,,,, +"",Type,Polled,,,,, +"",Comment,"Note that during a leap second there may be more (or less) than 60 seconds in a minute; see the description of leap seconds for details. This message combines position, velocity and time solution, including accuracy figures. The output of this message can be requested via UBX-LOG-RETRIEVEBATCH. The content of this message is influenced by UBX-CFG-BATCH. Depending on the flags extraPvt and extraOdo some of the fields in this message may not be valid. This validity information is also indicated in this message via flags of the same name. See Data Batching for more information.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x21,0x11,100,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0x00 for this version), +"",1,X1,-,contentValid,-,Content validity flags (see graphic below), +"",2,U2,-,msgCnt,-,"Message counter; increments for each sent UBX-LOG-BATCH message.", +"",4,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details. Only valid if extraPvt is set.", +"",8,U2,-,year,y,Year (UTC), +"",10,U1,-,month,month,"Month, range 1..12 (UTC)", +"",11,U1,-,day,d,"Day of month, range 1..31 (UTC)", +"",12,U1,-,hour,h,"Hour of day, range 0..23 (UTC)", +"",13,U1,-,min,min,"Minute of hour, range 0..59 (UTC)", +"",14,U1,-,sec,s,"Seconds of minute, range 0..60 (UTC)", +"",15,X1,-,valid,-,Validity flags (see graphic below), +"",16,U4,-,tAcc,ns,"Time accuracy estimate (UTC) Only valid if extraPvt is set.", +"",20,I4,-,fracSec,ns,"Fraction of second, range -1e9 .. 1e9 (UTC)", +"",24,U1,-,fixType,-,"GNSSfix Type: 0: no fix 2: 2D-fix 3: 3D-fix", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-123.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-123.csv new file mode 100755 index 00000000..7294dda9 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-123.csv @@ -0,0 +1,23 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +25,X1,-,flags,-,Fix status flags (see graphic below) +26,X1,-,flags2,-,Additional flags +27,U1,-,numSV,-,"Number of satellites used in Nav Solution Only valid if extraPvt is set." +28,I4,1e-7,lon,deg,Longitude +32,I4,1e-7,lat,deg,Latitude +36,I4,-,height,mm,Height above ellipsoid +40,I4,-,hMSL,mm,"Height above mean sea level Only valid if extraPvt is set." +44,U4,-,hAcc,mm,Horizontal accuracy estimate +48,U4,-,vAcc,mm,"Vertical accuracy estimate Only valid if extraPvt is set." +52,I4,-,velN,mm/s,"NED north velocity Only valid if extraPvt is set." +56,I4,-,velE,mm/s,"NED east velocity Only valid if extraPvt is set." +60,I4,-,velD,mm/s,"NED down velocity Only valid if extraPvt is set." +64,I4,-,gSpeed,mm/s,Ground Speed (2-D) +68,I4,1e-5,headMot,deg,Heading of motion (2-D) +72,U4,-,sAcc,mm/s,"Speed accuracy estimate Only valid if extraPvt is set." +76,U4,1e-5,headAcc,deg,"Heading accuracy estimate Only valid if extraPvt is set." +80,U2,0.01,pDOP,-,"Position DOP Only valid if extraPvt is set." +82,U1[2],-,reserved1,-,Reserved +84,U4,-,distance,m,"Ground distance since last reset Only valid if extraOdo is set." +88,U4,-,totalDistance,m,"Total cumulative ground distance Only valid if extraOdo is set." +92,U4,-,distanceStd,m,"Ground distance accuracy (1-sigma) Only valid if extraOdo is set." +96,U1[4],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-124.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-124.csv new file mode 100755 index 00000000..4f62f16b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-124.csv @@ -0,0 +1,14 @@ +Message,LOG-CREATE,,,,, +Description,Create Log File,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Command,,,,, +Comment,"This message is used to create an initial logging file and activate the logging subsystem. UBX-ACK-ACK or UBX-ACK-NAK are returned to indicate success or failure. This message does not handle activation of recording or filtering of log entries (see UBX-CFG-LOGFILTER).",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x21,0x07,8,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,The version of this message. Set to 0, +1,X1,-,logCfg,-,Config flags (see graphic below), +2,U1,-,reserved1,-,Reserved, +3,U1,-,logSize,-,"Indicates the size of the log: 0 (maximum safe size): Ensures that logging will not be interrupted and enough space will be left available for all other uses of the filestore 1 (minimum size): 2 (user defined): See 'userDefinedSize' below", +4,U4,-,"userDefinedSi ze",bytes,"Sets the maximum amount of space in the filestore that can be used by the logging task. This field is only applicable if logSize is set to user defined.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-125.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-125.csv new file mode 100755 index 00000000..8a060c0b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-125.csv @@ -0,0 +1,8 @@ +"",Message,LOG-ERASE,,,,, +"",Description,Erase Logged Data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Command,,,,, +"",Comment,"This message deactivates the logging system and erases all logged data. UBX-ACK-ACK or UBX-ACK-NAK are returned to indicate success or failure.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x21,0x03,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-126.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-126.csv new file mode 100755 index 00000000..f0e8a37e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-126.csv @@ -0,0 +1,15 @@ +"",Message,LOG-FINDTIME,,,,, +"",Description,Find index of a log entry based on a given time,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message can be used for a time-based search of a log. It can find the index of the first log entry with time equal to the given time, otherwise the index of the most recent entry with time less than the given time. This index can then be used with the UBX-LOG-RETRIEVE message to provide time-based retrieval of log entries. Searching a log is effective for a given time later than the base date (January 1st, 2004). Searching a log for a given time earlier than the base date will result in an 'entry not found' response. (Searching a log for a given time earlier than the base date will result in a UBX-ACK-NAK message in protocol versions less than 18) Searching a log for a given time greater than the last recorded entry's time will return the index of the last recorded entry. (If the logging has stopped due to lack of file space, such a search will result in a UBX-ACK-NAK message in protocol versions less than 18)",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x21,0x0E,12,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (=0 for this version), +"",1,U1,-,type,-,"Message type, 0 for request", +"",2,U1[2],-,reserved1,-,Reserved, +"",4,U2,-,year,-,Year (1-65635) of UTC time, +"",6,U1,-,month,-,Month (1-12) of UTC time, +"",7,U1,-,day,-,Day (1-31) of UTC time, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-127.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-127.csv new file mode 100755 index 00000000..e8c8a34a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-127.csv @@ -0,0 +1,5 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",8,U1,-,hour,-,Hour (0-23) of UTC time +"",9,U1,-,minute,-,Minute (0-59) of UTC time +"",10,U1,-,second,-,Second (0-60) of UTC time +"",11,U1,-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-128.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-128.csv new file mode 100755 index 00000000..6bf2f719 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-128.csv @@ -0,0 +1,13 @@ +"",Message,LOG-FINDTIME,,,,, +"",Description,Response to FINDTIME request.,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x21,0x0E,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (=1 for this version), +"",1,U1,-,type,-,"Message type, 1 for response", +"",2,U1[2],-,reserved1,-,Reserved, +"",4,U4,-,entryNumber,-,"Index of the first log entry with time = given time, otherwise index of the most recent entry with time < given time. If 0xFFFFFFFF, no log entry found with time <= given time. The indexing of log entries is zero based.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-129.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-129.csv new file mode 100755 index 00000000..d287c613 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-129.csv @@ -0,0 +1,8 @@ +"",Message,LOG-INFO,,,,, +"",Description,Poll for log information,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"Upon sending of this message, the receiver returns UBX-LOG-INFO as defined below.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x21,0x08,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-13.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-13.csv new file mode 100755 index 00000000..5ec2aadf --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-13.csv @@ -0,0 +1,10 @@ +"",Message,AID-ALM,,,,, +"",Description,Poll GPS Aiding Almanac Data for a SV,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead Poll GPS Aiding Data (Almanac) for an SV by sending this message to the receiver. The receiver will return one message of type AID-ALM as defined below.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0B,0x30,1,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,svid,-,"SV ID for which the receiver shall return its Almanac Data (Valid Range: 1 .. 32 or 51, 56, 63).", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-130.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-130.csv new file mode 100755 index 00000000..08522159 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-130.csv @@ -0,0 +1,27 @@ +"",Message,LOG-INFO,,,,, +"",Description,Log information,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message is used to report information about the logging subsystem. Note: •The reported maximum log size will be smaller than that originally specified in LOG-CREATE due to logging and filestore implementation overheads. •Log entries are compressed in a variable length fashion, so it may be difficult to predict log space usage with any precision. •There may be times when the receiver does not have an accurate time (e.g. if the week number is not yet known), in which case some entries will not have a timestamp. This may result in the oldest/newest entry time values not taking account of these entries.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x21,0x08,48,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,The version of this message. Set to 1, +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U4,-,"filestoreCapa city",bytes,The capacity of the filestore, +"",8,U1[8],-,reserved2,-,Reserved, +"",16,U4,-,"currentMaxLog Size",bytes,"The maximum size the current log is allowed to grow to", +"",20,U4,-,"currentLogSiz e",bytes,"Approximate amount of space in log currently occupied", +"",24,U4,-,entryCount,-,"Number of entries in the log. Note: for circular logs this value will decrease when a group of entries is deleted to make space for new ones.", +"",28,U2,-,oldestYear,-,"Oldest entry UTC year year (1-65635) or zero if there are no entries with known time", +"",30,U1,-,oldestMonth,-,Oldest month (1-12), +"",31,U1,-,oldestDay,-,Oldest day (1-31), +"",32,U1,-,oldestHour,-,Oldest hour (0-23), +"",33,U1,-,oldestMinute,-,Oldest minute (0-59), +"",34,U1,-,oldestSecond,-,Oldest second (0-60), +"",35,U1,-,reserved3,-,Reserved, +"",36,U2,-,newestYear,-,"Newest year (1-65635) or zero if there are no entries with known time", +"",38,U1,-,newestMonth,-,Newest month (1-12), +"",39,U1,-,newestDay,-,Newest day (1-31), +"",40,U1,-,newestHour,-,Newest hour (0-23), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-131.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-131.csv new file mode 100755 index 00000000..fbfafc50 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-131.csv @@ -0,0 +1,6 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +41,U1,-,newestMinute,-,Newest minute (0-59) +42,U1,-,newestSecond,-,Newest second (0-60) +43,U1,-,reserved4,-,Reserved +44,X1,-,status,-,Log status flags (see graphic below) +45,U1[3],-,reserved5,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-132.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-132.csv new file mode 100755 index 00000000..34003572 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-132.csv @@ -0,0 +1,12 @@ +Message,LOG-RETRIEVEBATCH,,,,, +Description,Request batch data,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 23.01",,,,, +Type,Command,,,,, +Comment,"This message is used to request batched data. Batch entries are returned in chronological order, using one UBX-LOG-BATCH per navigation epoch. The speed of transfer can be maximized by using a high data rate. See Data Batching for more information.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x21,0x10,4,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x00 for this version), +1,X1,-,flags,-,Flags (see graphic below), +2,U1[2],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-133.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-133.csv new file mode 100755 index 00000000..b7a9633c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-133.csv @@ -0,0 +1,21 @@ +Message,LOG-RETRIEVEPOSEXTRA,,,,, +Description,Odometer log entry,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Output,,,,, +Comment,This message is used to report an odometer log entry,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x21,0x0f,32,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,entryIndex,-,The index of this log entry, +4,U1,-,version,-,The version of this message. Set to 0, +5,U1,-,reserved1,-,Reserved, +6,U2,-,year,-,"Year (1-65635) of UTC time. Will be zero if time not known", +8,U1,-,month,-,Month (1-12) of UTC time, +9,U1,-,day,-,Day (1-31) of UTC time, +10,U1,-,hour,-,Hour (0-23) of UTC time, +11,U1,-,minute,-,Minute (0-59) of UTC time, +12,U1,-,second,-,Second (0-60) of UTC time, +13,U1[3],-,reserved2,-,Reserved, +16,U4,-,distance,-,"Odometer distance traveled since the last time the odometer was reset by a UBX-NAV-RESETODO", +20,U1[12],-,reserved3,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-134.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-134.csv new file mode 100755 index 00000000..3586eec2 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-134.csv @@ -0,0 +1,27 @@ +Message,LOG-RETRIEVEPOS,,,,, +Description,Position fix log entry,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Output,,,,, +Comment,This message is used to report a position fix log entry,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x21,0x0b,40,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,entryIndex,-,The index of this log entry, +4,I4,1e-7,lon,deg,Longitude, +8,I4,1e-7,lat,deg,Latitude, +12,I4,-,hMSL,mm,Height above mean sea level, +16,U4,-,hAcc,mm,Horizontal accuracy estimate, +20,U4,-,gSpeed,mm/s,Ground speed (2-D), +24,U4,1e-5,heading,deg,Heading, +28,U1,-,version,-,The version of this message. Set to 0, +29,U1,-,fixType,-,"Fix type: 0x01: Dead Reckoning only 0x02: 2D-Fix 0x03: 3D-Fix 0x04: GNSS + Dead Reckoning combined", +30,U2,-,year,-,Year (1-65635) of UTC time, +32,U1,-,month,-,Month (1-12) of UTC time, +33,U1,-,day,-,Day (1-31) of UTC time, +34,U1,-,hour,-,Hour (0-23) of UTC time, +35,U1,-,minute,-,Minute (0-59) of UTC time, +36,U1,-,second,-,Second (0-60) of UTC time, +37,U1,-,reserved1,-,Reserved, +38,U1,-,numSV,-,Number of satellites used in the position fix, +39,U1,-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-135.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-135.csv new file mode 100755 index 00000000..8356681e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-135.csv @@ -0,0 +1,23 @@ +Message,LOG-RETRIEVESTRING,,,,, +Description,Byte string log entry,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Output,,,,, +Comment,This message is used to report a byte string log entry,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x21,0x0d,16 + 1*byteCount,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,entryIndex,-,The index of this log entry, +4,U1,-,version,-,The version of this message. Set to 0, +5,U1,-,reserved1,-,Reserved, +6,U2,-,year,-,"Year (1-65635) of UTC time. Will be zero if time not known", +8,U1,-,month,-,Month (1-12) of UTC time, +9,U1,-,day,-,Day (1-31) of UTC time, +10,U1,-,hour,-,Hour (0-23) of UTC time, +11,U1,-,minute,-,Minute (0-59) of UTC time, +12,U1,-,second,-,Second (0-60) of UTC time, +13,U1,-,reserved2,-,Reserved, +14,U2,-,byteCount,-,Size of string in bytes, +Start of repeated block (byteCount times),,,,,, +16 + 1*N,U1,-,bytes,-,The bytes of the string, +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-136.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-136.csv new file mode 100755 index 00000000..1bc0f337 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-136.csv @@ -0,0 +1,4 @@ +Message,LOG-RETRIEVE +Description,Request log data +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01" +Type,Command diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-137.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-137.csv new file mode 100755 index 00000000..1f24f3c6 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-137.csv @@ -0,0 +1,9 @@ +"",,"by using a high data rate and temporarily stopping the GPS processing (see UBX-CFG-RST ).",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x21,0x09,12,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,startNumber,-,"Index of first log entry to be transferred. If it is larger than the index of the last available log entry, then the first log entry to be transferred is the last available log entry. The indexing of log entries is zero based.", +"",4,U4,-,entryCount,-,"Number of log entries to transfer in total including the first entry to be transferred. If it is larger than the log entries available starting from the first entry to be transferred, then only the available log entries are transferred followed by a UBX-ACK-NAK. The maximum is 256.", +"",8,U1,-,version,-,The version of this message. Set to 0., +"",9,U1[3],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-138.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-138.csv new file mode 100755 index 00000000..a9877a4a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-138.csv @@ -0,0 +1,12 @@ +"",Message,LOG-STRING,,,,, +"",Description,Store arbitrary string in on-board flash,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Command,,,,, +"",Comment,"This message can be used to store an arbitrary byte string in the on-board flash memory. The maximum length that can be stored is 256 bytes.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x21,0x04,0 + 1*N,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",Start of repeated block (N times),,,,,, +"",N*1,U1,-,bytes,-,The string of bytes to be logged (maximum 256), +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-139.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-139.csv new file mode 100755 index 00000000..4ec192ad --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-139.csv @@ -0,0 +1,14 @@ +"",Message,UBX-MGA-ACK-DATA0,,,,, +"",Description,Multiple GNSS Acknowledge message,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message is sent by a u-blox receiver to acknowledge the receipt of an assistance message. Acknowledgments are enabled by setting the ackAiding parameter in the UBX-CFG-NAVX5 message. See the description of flow control for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x60,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,"Type of acknowledgment: 0: The message was not used by the receiver (see infoCode field for an indication of why) 1: The message was accepted for use by the receiver (the infoCode field will be 0)", +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,infoCode,-,"Provides greater information on what the receiver chose to do with the message contents: 0: The receiver accepted the data 1: The receiver doesn't know the time so can't use the data (To resolve this a UBX-MGA-INI-TIME_UTC message should be supplied first) 2: The message version is not supported by the receiver 3: The message size does not match the message version 4: The message data could not be stored to the database 5: The receiver is not ready to use the message data 6: The message type is unknown", +"",3,U1,-,msgId,-,UBX message ID of the ack'ed message, +"",4,U1[4],-,"msgPayloadSta rt",-,"The first 4 bytes of the ack'ed message's payload", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-14.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-14.csv new file mode 100755 index 00000000..442cf3c1 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-14.csv @@ -0,0 +1,14 @@ +"",Message,AID-ALM,,,,, +"",Description,GPS Aiding Almanac Input/Output Message,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input/Output,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead •If the WEEK Value is 0, DWRD0 to DWRD7 are not sent as the Almanac is not available for the given SV. This may happen even if NAV-SVINFO and RXM-SVSI are indicating almanac availability as the internal data may not represent the content of an original broadcast almanac (or only parts thereof). •DWORD0 to DWORD7 contain the 8 words following the Hand-Over Word ( HOW ) from the GPS navigation message, either pages 1 to 24 of sub-frame 5 or pages 2 to 10 of subframe 4. See IS-GPS-200 for a full description of the contents of the Almanac pages. •In DWORD0 to DWORD7, the parity bits have been removed, and the 24 bits of data are located in Bits 0 to 23. Bits 24 to 31 shall be ignored. •Example: Parameter e (Eccentricity) from Almanac Subframe 4/5, Word 3, Bits 69-84 within the subframe can be found in DWRD0, Bits 15-0 whereas Bit 0 is the LSB.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0B,0x30,(8) or (40),see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,svid,-,"SV ID for which this Almanac Data is (Valid Range: 1 .. 32 or 51, 56, 63).", +"",4,U4,-,week,-,Issue Date of Almanac (GPS week number), +"",Start of optional block,,,,,, +"",8,U4[8],-,dwrd,-,Almanac Words, +End of optional block,,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-140.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-140.csv new file mode 100755 index 00000000..f6ebe624 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-140.csv @@ -0,0 +1,19 @@ +Message,MGA-ANO,,,,, +Description,Multiple GNSS AssistNow Offline Assistance,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Input,,,,, +Comment,"This message is created by the AssistNow Offline service to deliver AssistNow Offline assistance to the receiver. See the description of AssistNow Offline for details.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x13,0x20,76,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,type,-,Message type (0x00 for this type), +1,U1,-,version,-,Message version (0x00 for this version), +2,U1,-,svId,-,Satellite identifier (see Satellite Numbering), +3,U1,-,gnssId,-,GNSS identifier (see Satellite Numbering), +4,U1,-,year,-,years since the year 2000, +5,U1,-,month,-,month (1..12), +6,U1,-,day,-,day (1..31), +7,U1,-,reserved1,-,Reserved, +8,U1[64],-,data,-,assistance data, +72,U1[4],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-141.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-141.csv new file mode 100755 index 00000000..15ba3f8f --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-141.csv @@ -0,0 +1,15 @@ +Message,UBX-MGA-BDS-EPH,,,,, +Description,BDS Ephemeris Assistance,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Input,,,,, +Comment,"This message allows the delivery of BeiDou ephemeris assistance to a receiver. See the description of AssistNow Online for details.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x13,0x03,88,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,type,-,Message type (0x01 for this type), +1,U1,-,version,-,Message version (0x00 for this version), +2,U1,-,svId,-,BDS satellite identifier (see Satellite Numbering), +3,U1,-,reserved1,-,Reserved, +4,U1,-,SatH1,-,Autonomous satellite Health flag, +5,U1,-,IODC,-,"Issue of Data, Clock", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-142.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-142.csv new file mode 100755 index 00000000..0c34a8ea --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-142.csv @@ -0,0 +1,25 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",6,I2,2^-66,a2,s/s^2,Time polynomial coefficient 2 +"",8,I4,2^-50,a1,s/s,Time polynomial coefficient 1 +"",12,I4,2^-33,a0,s,Time polynomial coefficient 0 +"",16,U4,2^3,toc,s,Clock data reference time +"",20,I2,0.1,TGD1,ns,Equipment Group Delay Differential +"",22,U1,-,URAI,-,User Range Accuracy Index +"",23,U1,-,IODE,-,"Issue of Data, Ephemeris" +"",24,U4,2^3,toe,s,Ephemeris reference time +"",28,U4,2^-19,sqrtA,m^0.5,Square root of semi-major axis +"",32,U4,2^-33,e,-,Eccentricity +"",36,I4,2^-31,omega,"semi-cir cles",Argument of perigee +"",40,I2,2^-43,Deltan,"semi-cir cles/s",Mean motion difference from computed value +"",42,I2,2^-43,IDOT,"semi-cir cles/s",Rate of inclination angle +"",44,I4,2^-31,M0,"semi-cir cles",Mean anomaly at reference time +"",48,I4,2^-31,Omega0,"semi-cir cles","Longitude of ascending node of orbital of plane computed according to reference time" +"",52,I4,2^-43,OmegaDot,"semi-cir cles/s",Rate of right ascension +"",56,I4,2^-31,i0,"semi-cir cles",Inclination angle at reference time +"",60,I4,2^-31,Cuc,"semi-cir cles","Amplitude of cosine harmonic correction term to the argument of latitude" +"",64,I4,2^-31,Cus,"semi-cir cles","Amplitude of sine harmonic correction term to the argument of latitude" +"",68,I4,2^-6,Crc,m,"Amplitude of cosine harmonic correction term to the orbit radius" +"",72,I4,2^-6,Crs,m,"Amplitude of sine harmonic correction term to the orbit radius" +"",76,I4,2^-31,Cic,"semi-cir cles","Amplitude of cosine harmonic correction term to the angle of inclination" +"",80,I4,2^-31,Cis,"semi-cir cles","Amplitude of sine harmonic correction term to the angle of inclination" +"",84,U1[4],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-143.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-143.csv new file mode 100755 index 00000000..a4f70890 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-143.csv @@ -0,0 +1,25 @@ +"",Message,UBX-MGA-BDS-ALM,,,,, +"",Description,BDS Almanac Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of BeiDou almanac assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x03,40,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x02 for this version), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,svId,-,"BeiDou satellite identifier (see Satellite Numbering)", +"",3,U1,-,reserved1,-,Reserved, +"",4,U1,-,Wna,week,Almanac Week Number, +"",5,U1,2^12,toa,s,Almanac reference time, +"",6,I2,2^-19,deltaI,"semi-cir cles","Almanac correction of orbit reference inclination at reference time", +"",8,U4,2^-11,sqrtA,m^0.5,Almanac square root of semi-major axis, +"",12,U4,2^-21,e,-,Almanac eccentricity, +"",16,I4,2^-23,omega,"semi-cir cles",Almanac argument of perigee, +"",20,I4,2^-23,M0,"semi-cir cles",Almanac mean anomaly at reference time, +"",24,I4,2^-23,Omega0,"semi-cir cles","Almanac longitude of ascending node of orbit plane at computed according to reference time", +"",28,I4,2^-38,omegaDot,"semi-cir cles/s",Almanac rate of right ascension, +"",32,I2,2^-20,a0,s,Almanac satellite clock bias, +"",34,I2,2^-38,a1,s/s,Almanac satellite clock rate, +"",36,U1[4],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-144.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-144.csv new file mode 100755 index 00000000..78d29421 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-144.csv @@ -0,0 +1,14 @@ +"",Message,UBX-MGA-BDS-HEALTH,,,,, +"",Description,BDS Health Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of BeiDou health assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x03,68,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x04 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,U2[30],-,healthCode,-,"Each two-byte value represents a BDS SV (1-30). The 9 LSBs of each byte contain the 9 bit health code from subframe 5 pages 7,8 of the D1 message, and from subframe 5 pages 35,36 of the D1 message.", +"",64,U1[4],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-145.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-145.csv new file mode 100755 index 00000000..20155f89 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-145.csv @@ -0,0 +1,16 @@ +"",Message,UBX-MGA-BDS-UTC,,,,, +"",Description,BDS UTC Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of BeiDou UTC assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x03,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x05 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,I4,2^-30,a0UTC,s,BDT clock bias relative to UTC, +"",8,I4,2^-50,a1UTC,s/s,BDT clock rate relative to UTC, +"",12,I1,-,dtLS,s,"Delta time due to leap seconds before the new leap second effective", +"",13,U1[1],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-146.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-146.csv new file mode 100755 index 00000000..1be27424 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-146.csv @@ -0,0 +1,6 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",14,U1,-,wnRec,week,"BeiDou week number of reception of this UTC parameter set (8 bit truncated)" +"",15,U1,-,wnLSF,week,Week number of the new leap second +"",16,U1,-,dN,day,Day number of the new leap second +"",17,I1,-,dtLSF,s,"Delta time due to leap seconds after the new leap second effective" +"",18,U1[2],-,reserved3,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-147.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-147.csv new file mode 100755 index 00000000..76a66ab4 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-147.csv @@ -0,0 +1,21 @@ +"",Message,UBX-MGA-BDS-IONO,,,,, +"",Description,BDS Ionospheric Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of BeiDou ionospheric assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x03,16,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x06 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,I1,2^-30,alpha0,s,Ionospheric parameter alpha0, +"",5,I1,2^-27,alpha1,s/pi,Ionospheric parameter alpha1, +"",6,I1,2^-24,alpha2,s/pi^2,Ionospheric parameter alpha2, +"",7,I1,2^-24,alpha3,s/pi^3,Ionospheric parameter alpha3, +"",8,I1,2^11,beta0,s,Ionospheric parameter beta0, +"",9,I1,2^14,beta1,s/pi,Ionospheric parameter beta1, +"",10,I1,2^16,beta2,s/pi^2,Ionospheric parameter beta2, +"",11,I1,2^16,beta3,s/pi^3,Ionospheric parameter beta3, +"",12,U1[4],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-148.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-148.csv new file mode 100755 index 00000000..50a292ba --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-148.csv @@ -0,0 +1,8 @@ +"",Message,MGA-DBD,,,,, +"",Description,Poll the Navigation Database,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"Poll the whole navigation data base. The receiver will send all available data from its internal database. The receiver will indicate the finish of the transmission with a UBX-MGA-ACK. The msgPayloadStart field of the UBX-MGA-ACK message will contain a U4 representing the number of UBX-MGA-DBD-DATA* messages sent.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x13,0x80,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-149.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-149.csv new file mode 100755 index 00000000..25182cab --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-149.csv @@ -0,0 +1,13 @@ +"",Message,MGA-DBD,,,,, +"",Description,Navigation Database Dump Entry,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input/Output,,,,, +"",Comment,"UBX-MGA-DBD messages are only intended to be sent back to the same receiver that generated them. Navigation database entry. The data fields are firmware specific. Transmission of this type of message will be acknowledged by MGA-ACK messages, if acknowledgment has been enabled (see the description of flow control for details). The maximum payload size for firmware 2.01 onwards is 164 bytes (which makes the maximum message size 172 bytes).",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x80,12 + 1*N,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1[12],-,reserved1,-,Reserved, +"",Start of repeated block (N times),,,,,, +"",12 + 1*N,U1,-,data,-,fw specific data, +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-15.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-15.csv new file mode 100755 index 00000000..71254929 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-15.csv @@ -0,0 +1,7 @@ +"",Message,AID-AOP,,,,, +"",Description,"Poll AssistNow Autonomous data, all satellites",,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead Poll AssistNow Autonomous aiding data for all GPS satellites by sending this empty message. The receiver will return an AID-AOP message (see definition below) for each GPS satellite for which data is available.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +0xB5 0x62,0x0B,0x33,0,see below,CK_A CK_B,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-150.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-150.csv new file mode 100755 index 00000000..37c3c3d0 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-150.csv @@ -0,0 +1,16 @@ +"",Message,UBX-MGA-FLASH-DATA,,,,, +"",Description,Transfer MGA-ANO data block to flash,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message is used to transfer a block of MGA-ANO data from host to the receiver. Upon reception of this message, the receiver will write the payload data to its internal non-volatile memory (flash). Also, on reception of the first MGA-FLASH-DATA message, the receiver will erase the flash allocated to storing any existing MGA-ANO data. The payload can be up to 512 bytes. Payloads larger than this would exceed the receiver's internal buffering capabilities. The receiver will ACK/NACK this message using the message alternatives given below. The host shall wait for an acknowledge message before sending the next data block. See Flash-based AssistNow Offline for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x21,6 + 1*size,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x01 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U2,-,sequence,-,"Message sequence number, starting at 0 and increamenting by 1 for each MGA-FLASH-DATA message sent.", +"",4,U2,-,size,-,Payload size in bytes., +"",Start of repeated block (size times),,,,,, +"",6 + 1*N,U1,-,data,-,Payload data., +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-151.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-151.csv new file mode 100755 index 00000000..4bb01f55 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-151.csv @@ -0,0 +1,8 @@ +"",Message,UBX-MGA-FLASH-STOP,,,,, +"",Description,Finish flashing MGA-ANO data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message is used to tell the receiver that there are no more MGA-FLASH type 1 messages coming, and that it can do any final internal operations needed to commit the data to flash as a background activity. A UBX-MGA-ACK message will be sent at the end of this process. Note that there may be a delay of several seconds before the UBX-MGA-ACK for this message is sent because of the time taken for this processing. See Flash-based AssistNow Offline for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x13,0x21,2,see below,CK_A CK_B, +"",Payload Contents:,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-152.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-152.csv new file mode 100755 index 00000000..20915682 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-152.csv @@ -0,0 +1,4 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",0,U1,-,type,-,Message type (0x02 for this type) +"",1,U1,-,version,-,Message version (0x00 for this version) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-153.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-153.csv new file mode 100755 index 00000000..619c5ea1 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-153.csv @@ -0,0 +1,14 @@ +"",Message,UBX-MGA-FLASH-ACK,,,,, +"",Description,Acknowledge last FLASH-DATA or -STOP,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message reports an ACK/NACK to the host for the last MGA-FLASH type 1 or type 2 message message received. See Flash-based AssistNow Offline for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x21,6,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x03 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,ack,-,"Acknowledgment type. 0 - ACK: Message received and written to flash. 1 - NACK: Problem with last message, re-transmission required (this only happens while acknowledging a UBX-MGA_FLASH_DATA message). 2 - NACK: problem with last message, give up.", +"",3,U1,-,reserved1,-,Reserved, +"",4,U2,-,sequence,-,"If acknowledging a UBX-MGA-FLASH-DATA message this is the Message sequence number being ack'ed. If acknowledging a UBX-MGA-FLASH-STOP message it will be set to 0xffff.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-154.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-154.csv new file mode 100755 index 00000000..d4107657 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-154.csv @@ -0,0 +1,28 @@ +"",Message,UBX-MGA-GAL-EPH,,,,, +"",Description,Galileo Ephemeris Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of Galileo ephemeris assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x02,76,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x01 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,svId,-,"Galileo Satellite identifier (see Satellite Numbering)", +"",3,U1,-,reserved1,-,Reserved, +"",4,U2,-,iodNav,-,Ephemeris and clock correction Issue of Data, +"",6,I2,2^-43,deltaN,"semi-cir cles/s",Mean motion difference from computed value, +"",8,I4,2^-31,m0,"semi-cir cles",Mean anomaly at reference time, +"",12,U4,2^-33,e,-,Eccentricity, +"",16,U4,2^-19,sqrtA,m^0.5,Square root of the semi-major axis, +"",20,I4,2^-31,omega0,"semi-cir cles","Longitude of ascending node of orbital plane at weekly epoch", +"",24,I4,2^-31,i0,"semi-cir cles",Inclination angle at reference time, +"",28,I4,2^-31,omega,"semi-cir cles",Argument of perigee, +"",32,I4,2^-43,omegaDot,"semi-cir cles/s",Rate of change of right ascension, +"",36,I2,2^-43,iDot,"semi-cir cles/s",Rate of change of inclination angle, +"",38,I2,2^-29,cuc,radians,"Amplitude of the cosine harmonic correction term to the argument of latitude", +"",40,I2,2^-29,cus,radians,"Amplitude of the sine harmonic correction term to the argument of latitude", +"",42,I2,2^-5,crc,radians,"Amplitude of the cosine harmonic correction term to the orbit radius", +"",44,I2,2^-5,crs,radians,"Amplitude of the sine harmonic correction term to the orbit radius", +"",46,I2,2^-29,cic,radians,"Amplitude of the cosine harmonic correction term to the angle of inclination", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-155.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-155.csv new file mode 100755 index 00000000..9666db05 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-155.csv @@ -0,0 +1,15 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",48,I2,2^-29,cis,radians,"Amplitude of the sine harmonic correction term to the angle of inclination" +"",50,U2,60,toe,s,Ephemeris reference time +"",52,I4,2^-34,af0,s,SV clock bias correction coefficient +"",56,I4,2^-46,af1,s/s,SV clock drift correction coefficient +"",60,I1,2^-59,af2,"s/s squared",SV clock drift rate correction coefficient +"",61,U1,-,"sisaIndexE1E5 b",-,"Signal-In-Space Accuracy index for dual frequency E1-E5b" +"",62,U2,60,toc,s,Clock correction data reference Time of Week +"",64,I2,-,bgdE1E5b,-,E1-E5b Broadcast Group Delay +"",66,U1[2],-,reserved2,-,Reserved +"",68,U1,-,healthE1B,-,E1-B Signal Health Status +"",69,U1,-,"dataValidityE 1B",-,E1-B Data Validity Status +"",70,U1,-,healthE5b,-,E5b Signal Health Status +"",71,U1,-,"dataValidityE 5b",-,E5b Data Validity Status +"",72,U1[4],-,reserved3,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-156.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-156.csv new file mode 100755 index 00000000..0b2794ec --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-156.csv @@ -0,0 +1,17 @@ +"",Message,UBX-MGA-GAL-ALM,,,,, +"",Description,Galileo Almanac Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of Galileo almanac assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x02,32,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x02 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,svId,-,"Galileo Satellite identifier (see Satellite Numbering)", +"",3,U1,-,reserved1,-,Reserved, +"",4,U1,-,ioda,-,Almanac Issue of Data, +"",5,U1,-,almWNa,week,Almanac reference week number, +"",6,U2,600,toa,s,Almanac reference time, +"",8,I2,2^-9,deltaSqrtA,m^0.5,"Difference with respect to the square root of the nominal semi-major axis (29 600 km)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-157.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-157.csv new file mode 100755 index 00000000..874bb13f --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-157.csv @@ -0,0 +1,12 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",10,U2,2^-16,e,-,Eccentricity +"",12,I2,2^-14,deltaI,"semi-cir cles","Inclination at reference time relative to i0 = 56 degree" +"",14,I2,2^-15,omega0,"semi-cir cles","Longitude of ascending node of orbital plane at weekly epoch" +"",16,I2,2^-33,omegaDot,"semi-cir cles/s",Rate of change of right ascension +"",18,I2,2^-15,omega,"semi-cir cles",Argument of perigee +"",20,I2,2^-15,m0,"semi-cir cles",Satellite mean anomaly at reference time +"",22,I2,2^-19,af0,s,Satellite clock correction bias 'truncated' +"",24,I2,2^-38,af1,s/s,Satellite clock correction linear 'truncated' +"",26,U1,-,healthE1B,-,Satellite E1-B signal health status +"",27,U1,-,healthE5b,-,Satellite E5b signal health status +"",28,U1[4],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-158.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-158.csv new file mode 100755 index 00000000..d9dc3437 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-158.csv @@ -0,0 +1,17 @@ +"",Message,UBX-MGA-GAL-TIMEOFFSET,,,,, +"",Description,Galileo GPS time offset assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of Galileo time to GPS time offset. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x02,12,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x03 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,I2,2^-35,a0G,s,"Constant term of the polynomial describing the offset", +"",6,I2,2^-51,a1G,s/s,Rate of change of the offset, +"",8,U1,3600,t0G,s,DReference time for GGTO data, +"",9,U1,-,wn0G,weeks,Week Number of GGTO reference, +"",10,U1[2],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-159.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-159.csv new file mode 100755 index 00000000..25f6c62e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-159.csv @@ -0,0 +1,21 @@ +"",Message,UBX-MGA-GAL-UTC,,,,, +"",Description,Galileo UTC Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of Galileo UTC assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x02,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x05 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,I4,2^-30,a0,s,First parameter of UTC polynomial, +"",8,I4,2^-50,a1,s/s,Second parameter of UTC polynomial, +"",12,I1,-,dtLS,s,Delta time due to current leap seconds, +"",13,U1,3600,tot,s,"UTC parameters reference time of week (Galileo time)", +"",14,U1,-,wnt,weeks,"UTC parameters reference week number (the 8 bit WNt field)", +"",15,U1,-,wnLSF,weeks,"Week number at the end of which the future leap second becomes effective (the 8 bit WNLSF field)", +"",16,U1,-,dN,days,"Day number at the end of which the future leap second becomes effective", +"",17,I1,-,dTLSF,s,Delta time due to future leap seconds, +"",18,U1[2],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-16.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-16.csv new file mode 100755 index 00000000..9d79a90b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-16.csv @@ -0,0 +1,10 @@ +"",Message,AID-AOP,,,,, +"",Description,"Poll AssistNow Autonomous data, one GPS satellite",,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead Poll the AssistNow Autonomous data for the specified GPS satellite. The receiver will return a AID-AOP message (see definition below) if data is available for the requested satellite.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0B,0x33,1,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,svid,-,"GPS SV ID for which the data is requested (valid range: 1..32).", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-160.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-160.csv new file mode 100755 index 00000000..d12783b3 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-160.csv @@ -0,0 +1,9 @@ +"",Message,UBX-MGA-GLO-EPH,,,,, +"",Description,GLONASS Ephemeris Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of GLONASS ephemeris assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x06,48,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-161.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-161.csv new file mode 100755 index 00000000..5c08c74f --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-161.csv @@ -0,0 +1,24 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",0,U1,-,type,-,Message type (0x01 for this type) +"",1,U1,-,version,-,Message version (0x00 for this version) +"",2,U1,-,svId,-,"GLONASS Satellite identifier (see Satellite Numbering)" +"",3,U1,-,reserved1,-,Reserved +"",4,U1,-,FT,-,User range accuracy +"",5,U1,-,B,-,Health flag from string 2 +"",6,U1,-,M,-,"Type of GLONASS satellite (1 indicates GLONASS-M)" +"",7,I1,-,H,-,"Carrier frequency number of navigation RF signal, Range=(-7 .. 6), -128 for unknown" +"",8,I4,2^-11,x,km,"X component of the SV position in PZ-90.02 coordinate System" +"",12,I4,2^-11,y,km,"Y component of the SV position in PZ-90.02 coordinate System" +"",16,I4,2^-11,z,km,"Z component of the SV position in PZ-90.02 coordinate System" +"",20,I4,2^-20,dx,km/s,"X component of the SV velocity in PZ-90.02 coordinate System" +"",24,I4,2^-20,dy,km/s,"Y component of the SV velocity in PZ-90.02 coordinate System" +"",28,I4,2^-20,dz,km/s,"Z component of the SV velocity in PZ-90.02 coordinate System" +"",32,I1,2^-30,ddx,km/s^2,"X component of the SV acceleration in PZ-90.02 coordinate System" +"",33,I1,2^-30,ddy,km/s^2,"Y component of the SV acceleration in PZ-90.02 coordinate System" +"",34,I1,2^-30,ddz,km/s^2,"Z component of the SV acceleration in PZ-90.02 coordinate System" +"",35,U1,15,tb,minutes,"Index of a time interval within current day according to UTC(SU)" +"",36,I2,2^-40,gamma,-,Relative carrier frequency deviation +"",38,U1,-,E,days,Ephemeris data age indicator +"",39,I1,2^-30,deltaTau,s,Time difference between L2 and L1 band +"",40,I4,2^-30,tau,s,SV clock bias +"",44,U1[4],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-162.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-162.csv new file mode 100755 index 00000000..b1b61cca --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-162.csv @@ -0,0 +1,26 @@ +"",Message,UBX-MGA-GLO-ALM,,,,, +"",Description,GLONASS Almanac Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of GLONASS almanac assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x06,36,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x02 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,svId,-,"GLONASS Satellite identifier (see Satellite Numbering)", +"",3,U1,-,reserved1,-,Reserved, +"",4,U2,-,N,days,"Reference calender day number of almanac within the four-year period (from string 5)", +"",6,U1,-,M,-,"Type of GLONASS satellite (1 indicates GLONASS-M)", +"",7,U1,-,C,-,"Unhealthy flag at instant of almanac upload (1 indicates operability of satellite)", +"",8,I2,2^-18,tau,s,Coarse time correction to GLONASS time, +"",10,U2,2^-20,epsilon,-,Eccentricity, +"",12,I4,2^-20,lambda,"semi-cir cles","Longitude of the first (within the N-day) ascending node of satellite orbit in PC-90.02 coordinate system", +"",16,I4,2^-20,deltaI,"semi-cir cles",Correction to the mean value of inclination, +"",20,U4,2^-5,tLambda,s,Time of the first ascending node passage, +"",24,I4,2^-9,deltaT,"s/orbital -period","Correction to the mean value of Draconian period", +"",28,I1,2^-14,deltaDT,"s/orbital -period ^2",Rate of change of Draconian perion, +"",29,I1,-,H,-,"Carrier frequency number of navigation RF signal, Range=(-7 .. 6)", +"",30,I2,-,omega,-,Argument of perigee, +"",32,U1[4],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-163.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-163.csv new file mode 100755 index 00000000..91e15f6f --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-163.csv @@ -0,0 +1,17 @@ +"",Message,UBX-MGA-GLO-TIMEOFFSET,,,,, +"",Description,GLONASS Auxiliary Time Offset Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of auxiliary GLONASS assistance (including the GLONASS time offsets to other GNSS systems) to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x06,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x03 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U2,-,N,days,"Reference calender day number within the four-year period of almanac (from string 5)", +"",4,I4,2^-27,tauC,s,Time scale correction to UTC(SU) time, +"",8,I4,2^-31,tauGps,s,"Correction to GPS time relative to GLONASS time", +"",12,I2,2^-10,B1,s,Coefficient to determine delta UT1, +"",14,I2,2^-16,B2,s/msd,Rate of change of delta UT1, +"",16,U1[4],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-164.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-164.csv new file mode 100755 index 00000000..ec72701d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-164.csv @@ -0,0 +1,15 @@ +"",Message,UBX-MGA-GPS-EPH,,,,, +"",Description,GPS Ephemeris Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of GPS ephemeris assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x00,68,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x01 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,svId,-,GPS Satellite identifier (see Satellite Numbering), +"",3,U1,-,reserved1,-,Reserved, +"",4,U1,-,fitInterval,-,Fit interval flag, +"",5,U1,-,uraIndex,-,URA index, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-165.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-165.csv new file mode 100755 index 00000000..9df44179 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-165.csv @@ -0,0 +1,26 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",6,U1,-,svHealth,-,SV health +"",7,I1,2^-31,tgd,s,Group delay differential +"",8,U2,-,iodc,-,IODC +"",10,U2,2^4,toc,s,Clock data reference time +"",12,U1,-,reserved2,-,Reserved +"",13,I1,2^-55,af2,"s/s squared",Time polynomial coefficient 2 +"",14,I2,2^-43,af1,s/s,Time polynomial coefficient 1 +"",16,I4,2^-31,af0,s,Time polynomial coefficient 0 +"",20,I2,2^-5,crs,m,Crs +"",22,I2,2^-43,deltaN,"semi-cir cles/s",Mean motion difference from computed value +"",24,I4,2^-31,m0,"semi-cir cles",Mean anomaly at reference time +"",28,I2,2^-29,cuc,radians,"Amplitude of cosine harmonic correction term to argument of latitude" +"",30,I2,2^-29,cus,radians,"Amplitude of sine harmonic correction term to argument of latitude" +"",32,U4,2^-33,e,-,Eccentricity +"",36,U4,2^-19,sqrtA,m^0.5,Square root of the semi-major axis +"",40,U2,2^4,toe,s,Reference time of ephemeris +"",42,I2,2^-29,cic,radians,"Amplitude of cos harmonic correction term to angle of inclination" +"",44,I4,2^-31,omega0,"semi-cir cles","Longitude of ascending node of orbit plane at weekly epoch" +"",48,I2,2^-29,cis,radians,"Amplitude of sine harmonic correction term to angle of inclination" +"",50,I2,2^-5,crc,m,"Amplitude of cosine harmonic correction term to orbit radius" +"",52,I4,2^-31,i0,"semi-cir cles",Inclination angle at reference time +"",56,I4,2^-31,omega,"semi-cir cles",Argument of perigee +"",60,I4,2^-43,omegaDot,"semi-cir cles/s",Rate of right ascension +"",64,I2,2^-43,idot,"semi-cir cles/s",Rate of inclination angle +"",66,U1[2],-,reserved3,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-166.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-166.csv new file mode 100755 index 00000000..ba808008 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-166.csv @@ -0,0 +1,25 @@ +"",Message,UBX-MGA-GPS-ALM,,,,, +"",Description,GPS Almanac Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of GPS almanac assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x00,36,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x02 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,svId,-,GPS Satellite identifier (see Satellite Numbering), +"",3,U1,-,svHealth,-,SV health information, +"",4,U2,2^-21,e,-,Eccentricity, +"",6,U1,-,almWNa,week,"Reference week number of almanac (the 8 bit WNa field)", +"",7,U1,2^12,toa,s,Reference time of almanac, +"",8,I2,2^-19,deltaI,"semi-cir cles",Delta inclination angle at reference time, +"",10,I2,2^-38,omegaDot,"semi-cir cles/s",Rate of right ascension, +"",12,U4,2^-11,sqrtA,m^0.5,Square root of the semi-major axis, +"",16,I4,2^-23,omega0,"semi-cir cles",Longitude of ascending node of orbit plane, +"",20,I4,2^-23,omega,"semi-cir cles",Argument of perigee, +"",24,I4,2^-23,m0,"semi-cir cles",Mean anomaly at reference time, +"",28,I2,2^-20,af0,s,Time polynomial coefficient 0 (8 MSBs), +"",30,I2,2^-38,af1,s/s,Time polynomial coefficient 1, +"",32,U1[4],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-167.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-167.csv new file mode 100755 index 00000000..5ca311ef --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-167.csv @@ -0,0 +1,14 @@ +"",Message,UBX-MGA-GPS-HEALTH,,,,, +"",Description,GPS Health Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of GPS health assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x00,40,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x04 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,U1[32],-,healthCode,-,"Each byte represents a GPS SV (1-32). The 6 LSBs of each byte contains the 6 bit health code from subframes 4/5 page 25.", +"",36,U1[4],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-168.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-168.csv new file mode 100755 index 00000000..79983ad3 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-168.csv @@ -0,0 +1,17 @@ +"",Message,UBX-MGA-GPS-UTC,,,,, +"",Description,GPS UTC Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of GPS UTC assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x00,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x05 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,I4,2^-30,utcA0,s,First parameter of UTC polynomial, +"",8,I4,2^-50,utcA1,s/s,Second parameter of UTC polynomial, +"",12,I1,-,utcDtLS,s,Delta time due to current leap seconds, +"",13,U1,2^12,utcTot,s,"UTC parameters reference time of week (GPS time)", +"",14,U1,-,utcWNt,weeks,"UTC parameters reference week number (the 8 bit WNt field)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-169.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-169.csv new file mode 100755 index 00000000..147af677 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-169.csv @@ -0,0 +1,5 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",15,U1,-,utcWNlsf,weeks,"Week number at the end of which the future leap second becomes effective (the 8 bit WNLSF field)" +"",16,U1,-,utcDn,days,"Day number at the end of which the future leap second becomes effective" +"",17,I1,-,utcDtLSF,s,Delta time due to future leap seconds +"",18,U1[2],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-17.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-17.csv new file mode 100755 index 00000000..e0c293e3 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-17.csv @@ -0,0 +1,12 @@ +"",Message,AID-AOP,,,,, +"",Description,AssistNow Autonomous data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input/Output,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead If enabled, this message is output at irregular intervals. It is output whenever AssistNow Autonomous has produced new data for a satellite. Depending on the availability of the optional data the receiver will output either version of the message. If this message is polled using one of the two poll requests described above the receiver will send this message if AssistNow Autonomous data is available or the corresponding poll request message if no AssistNow Autonomous data is available for each satellite (i.e. svid 1..32). At the user's choice the optional data may be chopped from the payload of a previously polled message when sending the message back to the receiver. Sending a valid AID-AOP message to the receiver will automatically enable the AssistNow Autonomous feature on the receiver. See the section AssistNow Autonomous in the receiver description for details on this feature.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0B,0x33,68,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,gnssId,-,GNSS identifier (see Satellite Numbering), +"",1,U1,-,svId,-,Satellite identifier (see Satellite Numbering), +"",2,U1[2],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-170.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-170.csv new file mode 100755 index 00000000..a5ac9882 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-170.csv @@ -0,0 +1,21 @@ +"",Message,UBX-MGA-GPS-IONO,,,,, +"",Description,GPS Ionosphere Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of GPS ionospheric assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x00,16,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x06 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,I1,2^-30,ionoAlpha0,s,Ionospheric parameter alpha0 [s], +"",5,I1,2^-27,ionoAlpha1,"s/semi-c ircle",Ionospheric parameter alpha1 [s/semi-circle], +"",6,I1,2^-24,ionoAlpha2,"s/(semi- circle^2 )",Ionospheric parameter alpha2 [s/semi-circle^2], +"",7,I1,2^-24,ionoAlpha3,"s/(semi- circle^3 )",Ionospheric parameter alpha3 [s/semi-circle^3], +"",8,I1,2^11,ionoBeta0,s,Ionospheric parameter beta0 [s], +"",9,I1,2^14,ionoBeta1,"s/semi-c ircle",Ionospheric parameter beta1 [s/semi-circle], +"",10,I1,2^16,ionoBeta2,"s/(semi- circle^2 )",Ionospheric parameter beta2 [s/semi-circle^2], +"",11,I1,2^16,ionoBeta3,"s/(semi- circle^3 )",Ionospheric parameter beta3 [s/semi-circle^3], +"",12,U1[4],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-171.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-171.csv new file mode 100755 index 00000000..412d8d59 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-171.csv @@ -0,0 +1,16 @@ +"",Message,UBX-MGA-INI-POS_XYZ,,,,, +"",Description,Initial Position Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"Supplying position assistance that is inaccurate by more than the specified position accuracy, may lead to substantially degraded receiver performance. This message allows the delivery of initial position assistance to a receiver in cartesian ECEF coordinates. This message is equivalent to the UBX-MGA-INI-POS_LLH message, except for the coordinate system. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x40,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x00 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,I4,-,ecefX,cm,WGS84 ECEF X coordinate, +"",8,I4,-,ecefY,cm,WGS84 ECEF Y coordinate, +"",12,I4,-,ecefZ,cm,WGS84 ECEF Z coordinate, +"",16,U4,-,posAcc,cm,Position accuracy (stddev), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-172.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-172.csv new file mode 100755 index 00000000..335b95a8 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-172.csv @@ -0,0 +1,12 @@ +"",Message,UBX-MGA-INI-POS_LLH,,,,, +"",Description,Initial Position Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"Supplying position assistance that is inaccurate by more than the specified position accuracy, may lead to substantially degraded receiver performance. This message allows the delivery of initial position assistance to a receiver in WGS84 lat/long/alt coordinates. This message is equivalent to the UBX-MGA-INI-POS_XYZ message, except for the coordinate system. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x40,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x01 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-173.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-173.csv new file mode 100755 index 00000000..4c24a0a1 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-173.csv @@ -0,0 +1,5 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",4,I4,1e-7,lat,deg,WGS84 Latitude +"",8,I4,1e-7,lon,deg,WGS84 Longitude +"",12,I4,-,alt,cm,WGS84 Altitude +"",16,U4,-,posAcc,cm,Position accuracy (stddev) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-174.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-174.csv new file mode 100755 index 00000000..277c2745 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-174.csv @@ -0,0 +1,24 @@ +"",Message,UBX-MGA-INI-TIME_UTC,,,,, +"",Description,Initial Time Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"Supplying time assistance that is inaccurate by more than the specified time accuracy, may lead to substantially degraded receiver performance. This message allows the delivery of UTC time assistance to a receiver. This message is equivalent to the UBX-MGA-INI-TIME_GNSS message, except for the time base. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x40,24,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x10 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,X1,-,ref,-,"Reference to be used to set time (see graphic below)", +"",3,I1,-,leapSecs,s,"Number of leap seconds since 1980 (or 0x80 = -128 if unknown)", +"",4,U2,-,year,-,Year, +"",6,U1,-,month,-,"Month, starting at 1", +"",7,U1,-,day,-,"Day, starting at 1", +"",8,U1,-,hour,-,"Hour, from 0 to 23", +"",9,U1,-,minute,-,"Minute, from 0 to 59", +"",10,U1,-,second,s,"Seconds, from 0 to 59", +"",11,U1,-,reserved1,-,Reserved, +"",12,U4,-,ns,ns,"Nanoseconds, from 0 to 999,999,999", +"",16,U2,-,tAccS,s,Seconds part of time accuracy, +"",18,U1[2],-,reserved2,-,Reserved, +"",20,U4,-,tAccNs,ns,"Nanoseconds part of time accuracy, from 0 to 999,999,999", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-175.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-175.csv new file mode 100755 index 00000000..9a8cb090 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-175.csv @@ -0,0 +1,16 @@ +Message,UBX-MGA-INI-TIME_GNSS,,,,, +Description,Initial Time Assistance,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Input,,,,, +Comment,"Supplying time assistance that is inaccurate by more than the specified time accuracy, may lead to substantially degraded receiver performance. This message allows the delivery of time assistance to a receiver in a chosen GNSS timebase. This message is equivalent to the UBX-MGA-INI-TIME_UTC message, except for the time base. See the description of AssistNow Online for details.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x13,0x40,24,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,type,-,Message type (0x11 for this type), +1,U1,-,version,-,Message version (0x00 for this version), +2,X1,-,ref,-,"Reference to be used to set time (see graphic below)", +3,U1,-,gnssId,-,"Source of time information. Currently supported: 0: GPS time 2: Galileo time 3: BeiDou time 6: GLONASS time: week = 834 + ((N4-1)*1461 + Nt)/7, tow = (((N4-1)*1461 + Nt) % 7) * 86400 + tod", +4,U1[2],-,reserved1,-,Reserved, +6,U2,-,week,-,GNSS week number, +8,U4,-,tow,s,GNSS time of week, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-176.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-176.csv new file mode 100755 index 00000000..e6d7039f --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-176.csv @@ -0,0 +1,5 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +12,U4,-,ns,ns,"GNSS time of week, nanosecond part from 0 to 999,999,999" +16,U2,-,tAccS,s,Seconds part of time accuracy +18,U1[2],-,reserved2,-,Reserved +20,U4,-,tAccNs,ns,"Nanoseconds part of time accuracy, from 0 to 999,999,999" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-177.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-177.csv new file mode 100755 index 00000000..763f686e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-177.csv @@ -0,0 +1,14 @@ +Message,UBX-MGA-INI-CLKD,,,,, +Description,Initial Clock Drift Assistance,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Input,,,,, +Comment,"Supplying clock drift assistance that is inaccurate by more than the specified accuracy, may lead to substantially degraded receiver performance. This message allows the delivery of clock drift assistance to a receiver. See the description of AssistNow Online for details.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x13,0x40,12,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,type,-,Message type (0x20 for this type), +1,U1,-,version,-,Message version (0x00 for this version), +2,U1[2],-,reserved1,-,Reserved, +4,I4,-,clkD,ns/s,Clock drift, +8,U4,-,clkDAcc,ns/s,Clock drift accuracy, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-178.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-178.csv new file mode 100755 index 00000000..6bae3174 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-178.csv @@ -0,0 +1,15 @@ +Message,UBX-MGA-INI-FREQ,,,,, +Description,Initial Frequency Assistance,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Input,,,,, +Comment,"Supplying external frequency assistance that is inaccurate by more than the specified accuracy, may lead to substantially degraded receiver performance. This message allows the delivery of external frequency assistance to a receiver. See the description of AssistNow Online for details.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x13,0x40,12,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,type,-,Message type (0x21 for this type), +1,U1,-,version,-,Message version (0x00 for this version), +2,U1,-,reserved1,-,Reserved, +3,X1,-,flags,-,Frequency reference (see graphic below), +4,I4,1e-2,freq,Hz,Frequency, +8,U4,-,freqAcc,ppb,Frequency accuracy, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-179.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-179.csv new file mode 100755 index 00000000..bd148045 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-179.csv @@ -0,0 +1,21 @@ +"",Message,UBX-MGA-INI-EOP,,,,, +"",Description,Earth Orientation Parameters Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of new Earth Orientation Parameters (EOP) to a receiver to improve AssistNow Autonomous operation.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x40,72,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x30 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,U2,-,d2kRef,d,"reference time (days since 1.1.2000 12.00h UTC)", +"",6,U2,-,d2kMax,d,"expiration time (days since 1.1.2000 12.00h UTC)", +"",8,I4,2^-30,xpP0,arcsec,x_p t^0 polynomial term (offset), +"",12,I4,2^-30,xpP1,"arcsec/ d",x_p t^1 polynomial term (drift), +"",16,I4,2^-30,ypP0,arcsec,y_p t^0 polynomial term (offset), +"",20,I4,2^-30,ypP1,"arcsec/ d",y_p t^1 polynomial term (drift), +"",24,I4,2^-25,dUT1,s,dUT1 t^0 polynomial term (offset), +"",28,I4,2^-30,ddUT1,s/d,dUT1 t^1 polynomial term (drift), +"",32,U1[40],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-18.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-18.csv new file mode 100755 index 00000000..28432693 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-18.csv @@ -0,0 +1,2 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +4,U1[64],-,data,-,assistance data diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-180.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-180.csv new file mode 100755 index 00000000..93803430 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-180.csv @@ -0,0 +1,10 @@ +"",Message,UBX-MGA-QZSS-EPH,,,,, +"",Description,QZSS Ephemeris Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of QZSS ephemeris assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x05,68,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x01 for this type), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-181.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-181.csv new file mode 100755 index 00000000..bca61c68 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-181.csv @@ -0,0 +1,31 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",1,U1,-,version,-,Message version (0x00 for this version) +"",2,U1,-,svId,-,"QZSS Satellite identifier (see Satellite Numbering ), Range 1-5" +"",3,U1,-,reserved1,-,Reserved +"",4,U1,-,fitInterval,-,Fit interval flag +"",5,U1,-,uraIndex,-,URA index +"",6,U1,-,svHealth,-,SV health +"",7,I1,2^-31,tgd,s,Group delay differential +"",8,U2,-,iodc,-,IODC +"",10,U2,2^4,toc,s,Clock data reference time +"",12,U1,-,reserved2,-,Reserved +"",13,I1,2^-55,af2,"s/s squared",Time polynomial coefficient 2 +"",14,I2,2^-43,af1,s/s,Time polynomial coefficient 1 +"",16,I4,2^-31,af0,s,Time polynomial coefficient 0 +"",20,I2,2^-5,crs,m,Crs +"",22,I2,2^-43,deltaN,"semi-cir cles/s",Mean motion difference from computed value +"",24,I4,2^-31,m0,"semi-cir cles",Mean anomaly at reference time +"",28,I2,2^-29,cuc,radians,Amp of cosine harmonic corr term to arg of lat +"",30,I2,2^-29,cus,radians,Amp of sine harmonic corr term to arg of lat +"",32,U4,2^-33,e,-,eccentricity +"",36,U4,2^-19,sqrtA,m^0.5,Square root of the semi-major axis A +"",40,U2,2^4,toe,s,Reference time of ephemeris +"",42,I2,2^-29,cic,radians,"Amp of cos harmonic corr term to angle of inclination" +"",44,I4,2^-31,omega0,"semi-cir cles",Long of asc node of orbit plane at weekly epoch +"",48,I2,2^-29,cis,radians,"Amp of sine harmonic corr term to angle of inclination" +"",50,I2,2^-5,crc,m,"Amp of cosine harmonic corr term to orbit radius" +"",52,I4,2^-31,i0,"semi-cir cles",Inclination angle at reference time +"",56,I4,2^-31,omega,"semi-cir cles",Argument of perigee +"",60,I4,2^-43,omegaDot,"semi-cir cles/s",Rate of right ascension +"",64,I2,2^-43,idot,"semi-cir cles/s",Rate of inclination angle +"",66,U1[2],-,reserved3,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-182.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-182.csv new file mode 100755 index 00000000..8b83cf3a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-182.csv @@ -0,0 +1,25 @@ +"",Message,UBX-MGA-QZSS-ALM,,,,, +"",Description,QZSS Almanac Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of QZSS almanac assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x05,36,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x02 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1,-,svId,-,"QZSS Satellite identifier (see Satellite Numbering ), Range 1-5", +"",3,U1,-,svHealth,-,Almanac SV health information, +"",4,U2,2^-21,e,-,Almanac eccentricity, +"",6,U1,-,almWNa,week,"Reference week number of almanac (the 8 bit WNa field)", +"",7,U1,2^12,toa,s,Reference time of almanac, +"",8,I2,2^-19,deltaI,"semi-cir cles",Delta inclination angle at reference time, +"",10,I2,2^-38,omegaDot,"semi-cir cles/s",Almanac rate of right ascension, +"",12,U4,2^-11,sqrtA,m^0.5,Almanac square root of the semi-major axis A, +"",16,I4,2^-23,omega0,"semi-cir cles","Almanac long of asc node of orbit plane at weekly", +"",20,I4,2^-23,omega,"semi-cir cles",Almanac argument of perigee, +"",24,I4,2^-23,m0,"semi-cir cles",Almanac mean anomaly at reference time, +"",28,I2,2^-20,af0,s,Almanac time polynomial coefficient 0 (8 MSBs), +"",30,I2,2^-38,af1,s/s,Almanac time polynomial coefficient 1, +"",32,U1[4],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-183.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-183.csv new file mode 100755 index 00000000..eb30cf3e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-183.csv @@ -0,0 +1,14 @@ +"",Message,UBX-MGA-QZSS-HEALTH,,,,, +"",Description,QZSS Health Assistance,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input,,,,, +"",Comment,"This message allows the delivery of QZSS health assistance to a receiver. See the description of AssistNow Online for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x13,0x05,12,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0x04 for this type), +"",1,U1,-,version,-,Message version (0x00 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",4,U1[5],-,healthCode,-,"Each byte represents a QZSS SV (1-5). The 6 LSBs of each byte contains the 6 bit health code from subframes 4/5, data ID = 3, SV ID = 51", +"",9,U1[3],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-184.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-184.csv new file mode 100755 index 00000000..de8bb768 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-184.csv @@ -0,0 +1,15 @@ +"",Message,MON-BATCH,,,,, +"",Description,Data batching buffer status,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 23.01",,,,, +"",Type,Polled,,,,, +"",Comment,"This message contains status information about the batching buffer. It can be polled and it can also be sent by the receiver as a response to a UBX-LOG-RETRIEVEBATCH message before the UBX-LOG-BATCH messages. See Data Batching for more information.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0A,0x32,12,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0x00 for this version), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U2,-,fillLevel,-,"Current buffer fill level, i.e. number of epochs currently stored", +"",6,U2,-,dropsAll,-,"Number of dropped epochs since startup Note: changing the batching configuration will reset this counter.", +"",8,U2,-,dropsSinceMon,-,"Number of dropped epochs since last MON-BATCH message", +"",10,U2,-,nextMsgCnt,-,"The next retrieved UBX-LOG-BATCH will have this msgCnt value.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-185.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-185.csv new file mode 100755 index 00000000..3244f75b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-185.csv @@ -0,0 +1,15 @@ +Message,MON-GNSS,,,,, +Description,Information message major GNSS selection,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Polled,,,,, +Comment,"This message reports major GNSS selection. It does this by means of bit masks in U1 fields. Each bit in a bit mask corresponds to one major GNSS. Augmentation systems are not reported.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0A,0x28,8,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x01for this version), +1,X1,-,supported,-,"A bit mask showing the major GNSS that can be supported by this receiver (see graphic below)", +2,X1,-,defaultGnss,-,"A bit mask showing the default major GNSS selection. If the default major GNSS selection is currently configured in the efuse for this receiver, it takes precedence over the default major GNSS selection configured in the executing firmware of this receiver. (see graphic below)", +3,X1,-,enabled,-,"A bit mask showing the current major GNSS selection enabled for this receiver (see graphic below)", +4,U1,-,simultaneous,-,"Maximum number of concurrent major GNSS that can be supported by this receiver", +5,U1[3],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-186.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-186.csv new file mode 100755 index 00000000..e71c7275 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-186.csv @@ -0,0 +1,19 @@ +"",Message,MON-HW2,,,,, +"",Description,Extended Hardware Status,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"Status of different aspects of the hardware such as Imbalance, Low-Level Configuration and POST Results. The first four parameters of this message represent the complex signal from the RF front end. The following rules of thumb apply: •The smaller the absolute value of the variable ofsI and ofsQ, the better. •Ideally, the magnitude of the I-part (magI) and the Q-part (magQ) of the complex signal should be the same.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0A,0x0B,28,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,I1,-,ofsI,-,"Imbalance of I-part of complex signal, scaled (-128 = max. negative imbalance, 127 = max. positive imbalance)", +"",1,U1,-,magI,-,"Magnitude of I-part of complex signal, scaled (0 = no signal, 255 = max. magnitude)", +"",2,I1,-,ofsQ,-,"Imbalance of Q-part of complex signal, scaled (-128 = max. negative imbalance, 127 = max. positive imbalance)", +"",3,U1,-,magQ,-,"Magnitude of Q-part of complex signal, scaled (0 = no signal, 255 = max. magnitude)", +"",4,U1,-,cfgSource,-,"Source of low-level configuration (114 = ROM, 111 = OTP, 112 = config pins, 102 = flash image)", +"",5,U1[3],-,reserved1,-,Reserved, +"",8,U4,-,lowLevCfg,-,"Low-level configuration (obsolete in protocol versions greater than 15)", +"",12,U1[8],-,reserved2,-,Reserved, +"",20,U4,-,postStatus,-,POST status word, +"",24,U1[4],-,reserved3,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-187.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-187.csv new file mode 100755 index 00000000..1c763301 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-187.csv @@ -0,0 +1,26 @@ +"",Message,MON-HW,,,,, +"",Description,Hardware Status,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"Status of different aspect of the hardware, such as Antenna, PIO/Peripheral Pins, Noise Level, Automatic Gain Control (AGC)",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0A,0x09,60,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,X4,-,pinSel,-,Mask of Pins Set as Peripheral/PIO, +"",4,X4,-,pinBank,-,Mask of Pins Set as Bank A/B, +"",8,X4,-,pinDir,-,Mask of Pins Set as Input/Output, +"",12,X4,-,pinVal,-,Mask of Pins Value Low/High, +"",16,U2,-,noisePerMS,-,Noise Level as measured by the GPS Core, +"",18,U2,-,agcCnt,-,"AGC Monitor (counts SIGHI xor SIGLO, range 0 to 8191)", +"",20,U1,-,aStatus,-,"Status of the Antenna Supervisor State Machine (0=INIT, 1=DONTKNOW, 2=OK, 3=SHORT, 4=OPEN)", +"",21,U1,-,aPower,-,"Current PowerStatus of Antenna (0=OFF, 1=ON, 2=DONTKNOW)", +"",22,X1,-,flags,-,Flags (see graphic below), +"",23,U1,-,reserved1,-,Reserved, +"",24,X4,-,usedMask,-,"Mask of Pins that are used by the Virtual Pin Manager", +"",28,U1[17],-,VP,-,"Array of Pin Mappings for each of the 17 Physical Pins", +"",45,U1,-,jamInd,-,"CW Jamming indicator, scaled (0 = no CW jamming, 255 = strong CW jamming)", +"",46,U1[2],-,reserved2,-,Reserved, +"",48,X4,-,pinIrq,-,Mask of Pins Value using the PIO Irq, +"",52,X4,-,pullH,-,"Mask of Pins Value using the PIO Pull High Resistor", +"",56,X4,-,pullL,-,"Mask of Pins Value using the PIO Pull Low Resistor", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-188.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-188.csv new file mode 100755 index 00000000..208c0c0c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-188.csv @@ -0,0 +1,20 @@ +Message,MON-IO,,,,, +Description,I/O Subsystem Status,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"The size of the message is determined by the number of ports 'N' the receiver supports, i.e. on u-blox 5 the number of ports is 6.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0A,0x02,0 + 20*N,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +Start of repeated block (N times),,,,,, +N*20,U4,-,rxBytes,bytes,Number of bytes ever received, +4 + 20*N,U4,-,txBytes,bytes,Number of bytes ever sent, +8 + 20*N,U2,-,parityErrs,-,Number of 100ms timeslots with parity errors, +10 + 20*N,U2,-,framingErrs,-,Number of 100ms timeslots with framing errors, +12 + 20*N,U2,-,overrunErrs,-,Number of 100ms timeslots with overrun errors, +14 + 20*N,U2,-,breakCond,-,"Number of 100ms timeslots with break conditions", +16 + 20*N,U1,-,rxBusy,-,Flag is receiver is busy, +17 + 20*N,U1,-,txBusy,-,Flag is transmitter is busy, +18 + 20*N,U1[2],-,reserved1,-,Reserved, +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-189.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-189.csv new file mode 100755 index 00000000..17c7f039 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-189.csv @@ -0,0 +1,16 @@ +"",Message,MON-MSGPP,,,,, +"",Description,Message Parse and Process Status,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0A,0x06,120,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U2[8],-,msg1,msgs,"Number of successfully parsed messages for each protocol on port0", +"",16,U2[8],-,msg2,msgs,"Number of successfully parsed messages for each protocol on port1", +"",32,U2[8],-,msg3,msgs,"Number of successfully parsed messages for each protocol on port2", +"",48,U2[8],-,msg4,msgs,"Number of successfully parsed messages for each protocol on port3", +"",64,U2[8],-,msg5,msgs,"Number of successfully parsed messages for each protocol on port4", +"",80,U2[8],-,msg6,msgs,"Number of successfully parsed messages for each protocol on port5", +"",96,U4[6],-,skipped,bytes,Number skipped bytes for each port, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-19.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-19.csv new file mode 100755 index 00000000..31ca52f5 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-19.csv @@ -0,0 +1,8 @@ +Message,AID-EPH,,,,, +Description,Poll GPS Aiding Ephemeris Data,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Poll Request,,,,, +Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead Poll GPS Aiding Data (Ephemeris) for all 32 SVs by sending this message to the receiver without any payload. The receiver will return 32 messages of type AID-EPH as defined below.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +0xB5 0x62,0x0B,0x31,0,see below,CK_A CK_B, +No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-190.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-190.csv new file mode 100755 index 00000000..00ef1f9f --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-190.csv @@ -0,0 +1,8 @@ +"",Message,MON-PATCH,,,,, +"",Description,Poll Request for installed patches,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0A,0x27,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-191.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-191.csv new file mode 100755 index 00000000..47a94656 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-191.csv @@ -0,0 +1,17 @@ +Message,MON-PATCH,,,,, +Description,Output information about installed patches.,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Polled,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0A,0x27,4 + 16*nEntries,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U2,-,version,-,Type of the message. 0x1 for this one., +2,U2,-,nEntries,-,The number of patches that is output., +Start of repeated block (nEntries times),,,,,, +4 + 16*N,X4,-,patchInfo,-,"Additional information about the patch not stated in the patch header. (see graphic below)", +8 + 16*N,U4,-,"comparatorNum ber",-,The number of the comparator., +12 + 16*N,U4,-,patchAddress,-,The address that the targeted by the patch., +16 + 16*N,U4,-,patchData,-,"The data that will be inserted at the patchAddress.", +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-192.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-192.csv new file mode 100755 index 00000000..884e6d8e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-192.csv @@ -0,0 +1,12 @@ +Message,MON-RXBUF,,,,, +Description,Receiver Buffer Status,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0A,0x07,24,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U2[6],-,pending,bytes,"Number of bytes pending in receiver buffer for each target", +12,U1[6],-,usage,%,"Maximum usage receiver buffer during the last sysmon period for each target", +18,U1[6],-,peakUsage,%,Maximum usage receiver buffer for each target, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-193.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-193.csv new file mode 100755 index 00000000..e4af6fc6 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-193.csv @@ -0,0 +1,10 @@ +Message,MON-RXR,,,,, +Description,Receiver Status Information,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Output,,,,, +Comment,The receiver ready message is sent when the receiver changes from or to backup mode.,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0A,0x21,1,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,X1,-,flags,-,Receiver status flags (see graphic below), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-194.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-194.csv new file mode 100755 index 00000000..9a580f3c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-194.csv @@ -0,0 +1,18 @@ +"",Message,MON-SMGR,,,,, +"",Description,Synchronization Manager Status,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message reports the status of internal and external oscillators and sources as well as whether GNSS is used for disciplining.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0A,0x2E,16,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U4,-,iTOW,ms,Time of the week, +"",8,X2,-,intOsc,-,"A bit mask, indicating the status of the local oscillator (see graphic below)", +"",10,X2,-,extOsc,-,"A bit mask, indicating the status of the external oscillator (see graphic below)", +"",12,U1,-,discSrc,-,"Disciplining source identifier: 0: internal oscillator 1: GNSS 2: EXTINT0 3: EXTINT1 4: internal oscillator measured by the host 5: external oscillator measured by the host", +"",13,X1,-,gnss,-,"A bit mask, indicating the status of the GNSS (see graphic below)", +"",14,X1,-,extInt0,-,"A bit mask, indicating the status of the external input 0 (see graphic below)", +"",15,X1,-,extInt1,-,"A bit mask, indicating the status of the external input 1 (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-195.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-195.csv new file mode 100755 index 00000000..00b75413 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-195.csv @@ -0,0 +1,16 @@ +Message,MON-TXBUF,,,,, +Description,Transmitter Buffer Status,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0A,0x08,28,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U2[6],-,pending,bytes,"Number of bytes pending in transmitter buffer for each target", +12,U1[6],-,usage,%,"Maximum usage transmitter buffer during the last sysmon period for each target", +18,U1[6],-,peakUsage,%,"Maximum usage transmitter buffer for each target", +24,U1,-,tUsage,%,"Maximum usage of transmitter buffer during the last sysmon period for all targets", +25,U1,-,tPeakusage,%,"Maximum usage of transmitter buffer for all targets", +26,X1,-,errors,-,Error bitmask (see graphic below), +27,U1,-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-196.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-196.csv new file mode 100755 index 00000000..086d5590 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-196.csv @@ -0,0 +1,8 @@ +"",Message,MON-VER,,,,, +"",Description,Poll Receiver/Software Version,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0A,0x04,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-197.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-197.csv new file mode 100755 index 00000000..aa1b6aea --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-197.csv @@ -0,0 +1,14 @@ +"",Message,MON-VER,,,,, +"",Description,Receiver/Software Version,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Polled,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0A,0x04,40 + 30*N,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,CH[30],-,swVersion,-,Zero-terminated Software Version String., +"",30,CH[10],-,hwVersion,-,Zero-terminated Hardware Version String, +"",Start of repeated block (N times),,,,,, +"",40 + 30*N,CH[30],-,extension,-,"Extended software information strings. A series of zero-terminated strings. Each extension field is 30 characters long and contains varying software information. Not all extension fields may appear. Example reported information can be: the software version string of the underlying ROM (when the receiver's firmware is running from flash), the firmware version, the supported protocol version, the module identifier, the Flash Information Structure (FIS) file information, the supported major GNSS, the supported augmentation systems.", +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-198.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-198.csv new file mode 100755 index 00000000..7b664145 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-198.csv @@ -0,0 +1,13 @@ +Message,NAV-AOPSTATUS,,,,, +Description,AssistNow Autonomous Status,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message provides information on the status of the AssistNow Autonomous subsystem on the receiver. For example, a host application can determine the optimal time to shut down the receiver by monitoring the status field for a steady 0. See the chapter AssistNow Autonomous in the receiver description for details on this feature.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x60,16,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U1,-,aopCfg,-,"AssistNow Autonomous configuration (see graphic below)", +5,U1,-,status,-,"AssistNow Autonomous subsystem is idle (0) or running (not 0)", +6,U1[10],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-199.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-199.csv new file mode 100755 index 00000000..ec9f11ba --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-199.csv @@ -0,0 +1,18 @@ +"",Message,NAV-ATT,,,,, +"",Description,Attitude Solution,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 19 up to version 23.01 (only with ADR or UDR products)",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message outputs the attitude solution as roll, pitch and heading angles. More details about vehicle attitude can be found in the Vehicle Attitude Output (ADR) section for ADR products. More details about vehicle attitude can be found in the Vehicle Attitude Output (UDR) section for UDR products.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x05,32,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,U1,-,version,-,Message version (0 for this version), +"",5,U1[3],-,reserved1,-,Reserved, +"",8,I4,1e-5,roll,deg,Vehicle roll., +"",12,I4,1e-5,pitch,deg,Vehicle pitch., +"",16,I4,1e-5,heading,deg,Vehicle heading., +"",20,U4,1e-5,accRoll,deg,"Vehicle roll accuracy (if null, roll angle is not available).", +"",24,U4,1e-5,accPitch,deg,"Vehicle pitch accuracy (if null, pitch angle is not available).", +"",28,U4,1e-5,accHeading,deg,"Vehicle heading accuracy (if null, heading angle is not available).", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-2.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-2.csv new file mode 100755 index 00000000..af128e35 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-2.csv @@ -0,0 +1,13 @@ +Name,Class,Description +NAV,0x01,"Navigation Results Messages: Position, Speed, Time, Acceleration, Heading, DOP, SVs used" +RXM,0x02,"Receiver Manager Messages: Satellite Status, RTC Status" +INF,0x04,"Information Messages: Printf-Style Messages, with IDs such as Error, Warning, Notice" +ACK,0x05,Ack/Nak Messages: Acknowledge or Reject messages to CFG input messages +CFG,0x06,"Configuration Input Messages: Set Dynamic Model, Set DOP Mask, Set Baud Rate, etc." +UPD,0x09,"Firmware Update Messages: Memory/Flash erase/write, Reboot, Flash identification, etc." +MON,0x0A,"Monitoring Messages: Communication Status, CPU Load, Stack Usage, Task Status" +AID,0x0B,"AssistNow Aiding Messages: Ephemeris, Almanac, other A-GPS data input" +TIM,0x0D,"Timing Messages: Time Pulse Output, Time Mark Results" +ESF,0x10,External Sensor Fusion Messages: External Sensor Measurements and Status Information +MGA,0x13,Multiple GNSS Assistance Messages: Assistance data for various GNSS +LOG,0x21,"Logging Messages: Log creation, deletion, info and retrieval" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-20.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-20.csv new file mode 100755 index 00000000..73d0d02a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-20.csv @@ -0,0 +1,10 @@ +"",Message,AID-EPH,,,,, +"",Description,Poll GPS Aiding Ephemeris Data for a SV,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead Poll GPS Constellation Data (Ephemeris) for an SV by sending this message to the receiver. The receiver will return one message of type AID-EPH as defined below.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0B,0x31,1,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,svid,-,"SV ID for which the receiver shall return its Ephemeris Data (Valid Range: 1 .. 32).", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-200.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-200.csv new file mode 100755 index 00000000..29a63946 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-200.csv @@ -0,0 +1,14 @@ +"",Message,NAV-CLOCK,,,,, +"",Description,Clock Solution,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x22,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,I4,-,clkB,ns,Clock bias, +"",8,I4,-,clkD,ns/s,Clock drift, +"",12,U4,-,tAcc,ns,Time accuracy estimate, +"",16,U4,-,fAcc,ps/s,Frequency accuracy estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-201.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-201.csv new file mode 100755 index 00000000..1565faec --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-201.csv @@ -0,0 +1,16 @@ +"",Message,NAV-DGPS,,,,, +"",Description,DGPS Data Used for NAV,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message outputs the DGPS correction data that has been applied to the current NAV Solution. See also the notes on the RTCM protocol.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x31,16 + 12*numCh,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,I4,-,age,ms,Age of newest correction data, +"",8,I2,-,baseId,-,DGPS base station identifier, +"",10,I2,-,baseHealth,-,DGPS base station health status, +"",12,U1,-,numCh,-,"Number of channels for which correction data is following", +"",13,U1,-,status,-,"DGPS correction type status: 0x00: none 0x01: PR+PRR correction", +"",14,U1[2],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-202.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-202.csv new file mode 100755 index 00000000..22b3ae07 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-202.csv @@ -0,0 +1,8 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +Start of repeated block (numCh times),,,,, +16 + 12*N,U1,-,svid,-,Satellite ID +17 + 12*N,X1,-,flags,-,Channel number and usage (see graphic below) +18 + 12*N,U2,-,ageC,ms,Age of latest correction data +20 + 12*N,R4,-,prc,m,Pseudorange correction +24 + 12*N,R4,-,prrc,m/s,Pseudorange rate correction +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-203.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-203.csv new file mode 100755 index 00000000..7540f76e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-203.csv @@ -0,0 +1,14 @@ +Message,NAV-DOP,,,,, +Description,Dilution of precision,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"•DOP values are dimensionless. •All DOP values are scaled by a factor of 100. If the unit transmits a value of e.g. 156, the DOP value is 1.56.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x04,18,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U2,0.01,gDOP,-,Geometric DOP, +6,U2,0.01,pDOP,-,Position DOP, +8,U2,0.01,tDOP,-,Time DOP, +10,U2,0.01,vDOP,-,Vertical DOP, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-204.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-204.csv new file mode 100755 index 00000000..d3675a3e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-204.csv @@ -0,0 +1,4 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",12,U2,0.01,hDOP,-,Horizontal DOP +"",14,U2,0.01,nDOP,-,Northing DOP +"",16,U2,0.01,eDOP,-,Easting DOP diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-205.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-205.csv new file mode 100755 index 00000000..bd99c9d8 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-205.csv @@ -0,0 +1,10 @@ +"",Message,NAV-EOE,,,,, +"",Description,End Of Epoch,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Periodic,,,,, +"",Comment,"This message is intended to be used as a marker to collect all navigation messages of an epoch. It is output after all enabled NAV class messages (except NAV-HNR) and after all enabled NMEA messages.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x61,4,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-206.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-206.csv new file mode 100755 index 00000000..7a1c0567 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-206.csv @@ -0,0 +1,11 @@ +"",Message,NAV-GEOFENCE,,,,, +"",Description,Geofencing status,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message outputs the evaluated states of all configured geofences for the current epoch's position. See the Geofencing description for feature details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x39,8 + 2*numFences,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,U1,-,version,-,Message version (0x00 for this version), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-207.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-207.csv new file mode 100755 index 00000000..3caa9083 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-207.csv @@ -0,0 +1,8 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",5,U1,-,status,-,"Geofencing status 0 - Geofencing not available or not reliable 1 - Geofencing active" +"",6,U1,-,numFences,-,Number of geofences +"",7,U1,-,combState,-,"Combined (logical OR) state of all geofences 0 - Unknown 1 - Inside 2 - Outside" +"",Start of repeated block (numFences times),,,,, +"",8 + 2*N,U1,-,state,-,"Geofence state 0 - Unknown 1 - Inside 2 - Outside" +"",9 + 2*N,U1[1],-,reserved1,-,Reserved +"",End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-208.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-208.csv new file mode 100755 index 00000000..f7b339cb --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-208.csv @@ -0,0 +1,16 @@ +"",Message,NAV-HPPOSECEF,,,,, +"",Description,High Precision Position Solution in ECEF,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 20.01 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"See important comments concerning validity of position given in section Navigation Output Filters. -",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x13,28,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",8,I4,-,ecefX,cm,ECEF X coordinate, +"",12,I4,-,ecefY,cm,ECEF Y coordinate, +"",16,I4,-,ecefZ,cm,ECEF Z coordinate, +"",20,I1,0.1,ecefXHp,mm,"High precision component of ECEF X coordinate. Must be in the range of -99..+99. Precise coordinate in cm = ecefX + (ecefXHp * 1e-2).", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-209.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-209.csv new file mode 100755 index 00000000..92dab3e1 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-209.csv @@ -0,0 +1,5 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",21,I1,0.1,ecefYHp,mm,"High precision component of ECEF Y coordinate. Must be in the range of -99..+99. Precise coordinate in cm = ecefY + (ecefYHp * 1e-2)." +"",22,I1,0.1,ecefZHp,mm,"High precision component of ECEF Z coordinate. Must be in the range of -99..+99. Precise coordinate in cm = ecefZ + (ecefZHp * 1e-2)." +"",23,U1,-,reserved2,-,Reserved +"",24,U4,0.1,pAcc,mm,Position Accuracy Estimate diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-21.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-21.csv new file mode 100755 index 00000000..24b3129b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-21.csv @@ -0,0 +1,10 @@ +"",Message,AID-EPH,,,,, +"",Description,GPS Aiding Ephemeris Input/Output Message,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input/Output,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead •SF1D0 to SF3D7 is only sent if ephemeris is available for this SV. If not, the payload may be reduced to 8 Bytes, or all bytes are set to zero, indicating that this SV Number does not have valid ephemeris for the moment. This may happen even if NAV-SVINFO and RXM-SVSI are indicating ephemeris availability as the internal data may not represent the content of an original broadcast ephemeris (or only parts thereof). •SF1D0 to SF3D7 contain the 24 words following the Hand-Over Word ( HOW ) from the GPS navigation message, subframes 1 to 3. The Truncated TOW Count is not valid and cannot be used. See IS-GPS-200 for a full description of the contents of the Subframes. •In SF1D0 to SF3D7, the parity bits have been removed, and the 24 bits of data are located in Bits 0 to 23. Bits 24 to 31 shall be ignored. •When polled, the data contained in this message does not represent the full original ephemeris broadcast. Some fields that are irrelevant to u-blox receivers may be missing. The week number in Subframe 1 has already been modified to match the Time Of Ephemeris (TOE).",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0B,0x31,(8) or (104),see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,svid,-,"SV ID for which this ephemeris data is (Valid Range: 1 .. 32).", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-210.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-210.csv new file mode 100755 index 00000000..a31a83dc --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-210.csv @@ -0,0 +1,18 @@ +"",Message,NAV-HPPOSLLH,,,,, +"",Description,High Precision Geodetic Position Solution,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 20.01 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"See important comments concerning validity of position given in section Navigation Output Filters. This message outputs the Geodetic position with high precision in the currently selected ellipsoid. The default is the WGS84 Ellipsoid, but can be changed with the message CFG-DAT.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x14,36,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",8,I4,1e-7,lon,deg,Longitude, +"",12,I4,1e-7,lat,deg,Latitude, +"",16,I4,-,height,mm,Height above ellipsoid., +"",20,I4,-,hMSL,mm,Height above mean sea level, +"",24,I1,1e-9,lonHp,deg,"High precision component of longitude. Must be in the range -99..+99. Precise longitude in deg * 1e-7 = lon + (lonHp * 1e-2).", +"",25,I1,1e-9,latHp,deg,"High precision component of latitude. Must be in the range -99..+99. Precise latitude in deg * 1e-7 = lat + (latHp * 1e-2).", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-211.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-211.csv new file mode 100755 index 00000000..e6b4a4a5 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-211.csv @@ -0,0 +1,5 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",26,I1,0.1,heightHp,mm,"High precision component of height above ellipsoid. Must be in the range -9..+9. Precise height in mm = height + (heightHp * 0.1)." +"",27,I1,0.1,hMSLHp,mm,"High precision component of height above mean sea level. Must be in range -9..+9. Precise height in mm = hMSL + (hMSLHp * 0.1)" +"",28,U4,0.1,hAcc,mm,Horizontal accuracy estimate +"",32,U4,0.1,vAcc,mm,Vertical accuracy estimate diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-212.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-212.csv new file mode 100755 index 00000000..1b8967d0 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-212.csv @@ -0,0 +1,15 @@ +"",Message,NAV-ODO,,,,, +"",Description,Odometer Solution,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message outputs the traveled distance since last reset (see NAV-RESETODO) together with an associated estimated accuracy and the total cumulated ground distance (can only be reset by a cold start of the receiver).",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x09,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",8,U4,-,distance,m,Ground distance since last reset, +"",12,U4,-,totalDistance,m,Total cumulative ground distance, +"",16,U4,-,distanceStd,m,Ground distance accuracy (1-sigma), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-213.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-213.csv new file mode 100755 index 00000000..796b1e93 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-213.csv @@ -0,0 +1,21 @@ +Message,NAV-ORB,,,,, +Description,GNSS Orbit Database Info,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,Status of the GNSS orbit database knowledge.,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x34,8 + 6*numSv,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U1,-,version,-,"Message version (1, for this version)", +5,U1,-,numSv,-,Number of SVs in the database, +6,U1[2],-,reserved1,-,Reserved, +Start of repeated block (numSv times),,,,,, +8 + 6*N,U1,-,gnssId,-,GNSS ID, +9 + 6*N,U1,-,svId,-,Satellite ID, +10 + 6*N,X1,-,svFlag,-,Information Flags (see graphic below), +11 + 6*N,X1,-,eph,-,Ephemeris data (see graphic below), +12 + 6*N,X1,-,alm,-,Almanac data (see graphic below), +13 + 6*N,X1,-,otherOrb,-,Other orbit data available (see graphic below), +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-214.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-214.csv new file mode 100755 index 00000000..a74b2970 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-214.csv @@ -0,0 +1,14 @@ +"",Message,NAV-POSECEF,,,,, +"",Description,Position Solution in ECEF,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"See important comments concerning validity of position given in section Navigation Output Filters. -",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x01,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,I4,-,ecefX,cm,ECEF X coordinate, +"",8,I4,-,ecefY,cm,ECEF Y coordinate, +"",12,I4,-,ecefZ,cm,ECEF Z coordinate, +"",16,U4,-,pAcc,cm,Position Accuracy Estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-215.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-215.csv new file mode 100755 index 00000000..cfe4c1df --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-215.csv @@ -0,0 +1,15 @@ +"",Message,NAV-POSLLH,,,,, +"",Description,Geodetic Position Solution,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"See important comments concerning validity of position given in section Navigation Output Filters. This message outputs the Geodetic position in the currently selected ellipsoid. The default is the WGS84 Ellipsoid, but can be changed with the message CFG-DAT.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x02,28,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,I4,1e-7,lon,deg,Longitude, +"",8,I4,1e-7,lat,deg,Latitude, +"",12,I4,-,height,mm,Height above ellipsoid, +"",16,I4,-,hMSL,mm,Height above mean sea level, +"",20,U4,-,hAcc,mm,Horizontal accuracy estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-216.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-216.csv new file mode 100755 index 00000000..28bec95e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-216.csv @@ -0,0 +1,2 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",24,U4,-,vAcc,mm,Vertical accuracy estimate diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-217.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-217.csv new file mode 100755 index 00000000..0bd33ece --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-217.csv @@ -0,0 +1,28 @@ +"",Message,NAV-PVT,,,,, +"",Description,Navigation Position Velocity Time Solution,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"Note that during a leap second there may be more (or less) than 60 seconds in a minute; see the description of leap seconds for details. This message combines position, velocity and time solution, including accuracy figures",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x07,92,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,U2,-,year,y,Year (UTC), +"",6,U1,-,month,month,"Month, range 1..12 (UTC)", +"",7,U1,-,day,d,"Day of month, range 1..31 (UTC)", +"",8,U1,-,hour,h,"Hour of day, range 0..23 (UTC)", +"",9,U1,-,min,min,"Minute of hour, range 0..59 (UTC)", +"",10,U1,-,sec,s,"Seconds of minute, range 0..60 (UTC)", +"",11,X1,-,valid,-,Validity flags (see graphic below), +"",12,U4,-,tAcc,ns,Time accuracy estimate (UTC), +"",16,I4,-,nano,ns,"Fraction of second, range -1e9 .. 1e9 (UTC)", +"",20,U1,-,fixType,-,"GNSSfix Type: 0: no fix 1: dead reckoning only 2: 2D-fix 3: 3D-fix 4: GNSS + dead reckoning combined 5: time only fix", +"",21,X1,-,flags,-,Fix status flags (see graphic below), +"",22,X1,-,flags2,-,Additional flags (see graphic below), +"",23,U1,-,numSV,-,Number of satellites used in Nav Solution, +"",24,I4,1e-7,lon,deg,Longitude, +"",28,I4,1e-7,lat,deg,Latitude, +"",32,I4,-,height,mm,Height above ellipsoid, +"",36,I4,-,hMSL,mm,Height above mean sea level, +"",40,U4,-,hAcc,mm,Horizontal accuracy estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-218.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-218.csv new file mode 100755 index 00000000..5bcdd169 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-218.csv @@ -0,0 +1,14 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +44,U4,-,vAcc,mm,Vertical accuracy estimate +48,I4,-,velN,mm/s,NED north velocity +52,I4,-,velE,mm/s,NED east velocity +56,I4,-,velD,mm/s,NED down velocity +60,I4,-,gSpeed,mm/s,Ground Speed (2-D) +64,I4,1e-5,headMot,deg,Heading of motion (2-D) +68,U4,-,sAcc,mm/s,Speed accuracy estimate +72,U4,1e-5,headAcc,deg,"Heading accuracy estimate (both motion and vehicle)" +76,U2,0.01,pDOP,-,Position DOP +78,U1[6],-,reserved1,-,Reserved +84,I4,1e-5,headVeh,deg,Heading of vehicle (2-D) +88,I2,1e-2,magDec,deg,Magnetic declination +90,U2,1e-2,magAcc,deg,Magnetic declination accuracy diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-219.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-219.csv new file mode 100755 index 00000000..270cefe2 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-219.csv @@ -0,0 +1,20 @@ +"",Message,NAV-RELPOSNED,,,,, +"",Description,Relative Positioning Information in NED frame,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 20 up to version 23.01 (only with High Precision GNSS products)",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"The NED frame is defined as the local topological system at the reference station. The relative position vector components in this message, along with their associated accuracies, are given in that local topological system This message contains the relative position vector from the Reference Station to the Rover, including accuracy figures, in the local topological system defined at the reference station",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x3C,40,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0x00 for this version), +"",1,U1,-,reserved1,-,Reserved, +"",2,U2,-,refStationId,-,"Reference Station ID. Must be in the range 0.. 4095", +"",4,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",8,I4,-,relPosN,cm,North component of relative position vector, +"",12,I4,-,relPosE,cm,East component of relative position vector, +"",16,I4,-,relPosD,cm,Down component of relative position vector, +"",20,I1,0.1,relPosHPN,mm,"High-precision North component of relative position vector. Must be in the range -99 to +99. The full North component of the relative position vector, in units of cm, is given by relPosN + (relPosHPN * 1e-2)", +"",21,I1,0.1,relPosHPE,mm,"High-precision East component of relative position vector. Must be in the range -99 to +99. The full East component of the relative position vector, in units of cm, is given by relPosE + (relPosHPE * 1e-2)", +"",22,I1,0.1,relPosHPD,mm,"High-precision Down component of relative position vector. Must be in the range -99 to +99. The full Down component of the relative position vector, in units of cm, is given by relPosD + (relPosHPD * 1e-2)", +"",23,U1,-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-22.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-22.csv new file mode 100755 index 00000000..cc3198ea --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-22.csv @@ -0,0 +1,7 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",4,U4,-,how,-,"Hand-Over Word of first Subframe. This is required if data is sent to the receiver. 0 indicates that no Ephemeris Data is following." +"",Start of optional block,,,,, +"",8,U4[8],-,sf1d,-,Subframe 1 Words 3..10 (SF1D0..SF1D7) +"",40,U4[8],-,sf2d,-,Subframe 2 Words 3..10 (SF2D0..SF2D7) +"",72,U4[8],-,sf3d,-,Subframe 3 Words 3..10 (SF3D0..SF3D7) +"",End of optional block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-220.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-220.csv new file mode 100755 index 00000000..d98dc15e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-220.csv @@ -0,0 +1,5 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +24,U4,0.1,accN,mm,Accuracy of relative position North component +28,U4,0.1,accE,mm,Accuracy of relative position East component +32,U4,0.1,accD,mm,Accuracy of relative position Down component +36,X4,-,flags,-,Flags (see graphic below) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-221.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-221.csv new file mode 100755 index 00000000..4def7444 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-221.csv @@ -0,0 +1,8 @@ +Message,NAV-RESETODO,,,,, +Description,Reset odometer,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Command,,,,, +Comment,"This message resets the traveled distance computed by the odometer (see UBX-NAV-ODO). UBX-ACK-ACK or UBX-ACK-NAK are returned to indicate success or failure.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +0xB5 0x62,0x01,0x10,0,see below,CK_A CK_B, +No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-222.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-222.csv new file mode 100755 index 00000000..a7620be6 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-222.csv @@ -0,0 +1,22 @@ +Message,NAV-SAT,,,,, +Description,Satellite Information,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message displays information about SVs which are either known to be visible or currently tracked by the receiver. All signal related information corresponds to the subset of signals specified in Signal Identifiers.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x35,8 + 12*numSvs,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U1,-,version,-,Message version (1 for this version), +5,U1,-,numSvs,-,Number of satellites, +6,U1[2],-,reserved1,-,Reserved, +Start of repeated block (numSvs times),,,,,, +8 + 12*N,U1,-,gnssId,-,"GNSS identifier (see Satellite numbering) for assignment", +9 + 12*N,U1,-,svId,-,"Satellite identifier (see Satellite numbering) for assignment", +10 + 12*N,U1,-,cno,dBHz,Carrier to noise ratio (signal strength), +11 + 12*N,I1,-,elev,deg,"Elevation (range: +/-90), unknown if out of range", +12 + 12*N,I2,-,azim,deg,"Azimuth (range 0-360), unknown if elevation is out of range", +14 + 12*N,I2,0.1,prRes,m,Pseudorange residual, +16 + 12*N,X4,-,flags,-,Bitmask (see graphic below), +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-223.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-223.csv new file mode 100755 index 00000000..5f2b59f5 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-223.csv @@ -0,0 +1,27 @@ +"",Message,NAV-SBAS,,,,, +"",Description,SBAS Status Data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,This message outputs the status of the SBAS sub system,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x32,12 + 12*cnt,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,U1,-,geo,-,"PRN Number of the GEO where correction and integrity data is used from", +"",5,U1,-,mode,-,"SBAS Mode 0 Disabled 1 Enabled Integrity 3 Enabled Testmode", +"",6,I1,-,sys,-,"SBAS System (WAAS/EGNOS/...) -1 Unknown 0 WAAS 1 EGNOS 2 MSAS 3 GAGAN 16 GPS", +"",7,X1,-,service,-,SBAS Services available (see graphic below), +"",8,U1,-,cnt,-,Number of SV data following, +"",9,U1[3],-,reserved1,-,Reserved, +"",Start of repeated block (cnt times),,,,,, +"",12 + 12*N,U1,-,svid,-,SV ID, +"",13 + 12*N,U1,-,flags,-,Flags for this SV, +"",14 + 12*N,U1,-,udre,-,Monitoring status, +"",15 + 12*N,U1,-,svSys,-,"System (WAAS/EGNOS/...) same as SYS", +"",16 + 12*N,U1,-,svService,-,"Services available same as SERVICE", +"",17 + 12*N,U1,-,reserved2,-,Reserved, +"",18 + 12*N,I2,-,prc,cm,Pseudo Range correction in [cm], +"",20 + 12*N,U1[2],-,reserved3,-,Reserved, +"",22 + 12*N,I2,-,ic,cm,Ionosphere correction in [cm], +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-224.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-224.csv new file mode 100755 index 00000000..5b36260a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-224.csv @@ -0,0 +1,20 @@ +Message,NAV-SOL,,,,, +Description,Navigation Solution Information,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message combines position, velocity and time solution in ECEF, including accuracy figures. This message has only been retained for backwards compatibility; users are recommended to use the UBX-NAV-PVT message in preference.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x06,52,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,I4,-,fTOW,ns,"Fractional part of iTOW (range: +/-500000). The precise GPS time of week in seconds is: (iTOW * 1e-3) + (fTOW * 1e-9)", +8,I2,-,week,weeks,GPS week number of the navigation epoch, +10,U1,-,gpsFix,-,"GPSfix Type, range 0..5 0x00 = No Fix 0x01 = Dead Reckoning only 0x02 = 2D-Fix 0x03 = 3D-Fix 0x04 = GPS + dead reckoning combined 0x05 = Time only fix 0x06..0xff: reserved", +11,X1,-,flags,-,Fix Status Flags (see graphic below), +12,I4,-,ecefX,cm,ECEF X coordinate, +16,I4,-,ecefY,cm,ECEF Y coordinate, +20,I4,-,ecefZ,cm,ECEF Z coordinate, +24,U4,-,pAcc,cm,3D Position Accuracy Estimate, +28,I4,-,ecefVX,cm/s,ECEF X velocity, +32,I4,-,ecefVY,cm/s,ECEF Y velocity, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-225.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-225.csv new file mode 100755 index 00000000..9123779b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-225.csv @@ -0,0 +1,7 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +36,I4,-,ecefVZ,cm/s,ECEF Z velocity +40,U4,-,sAcc,cm/s,Speed Accuracy Estimate +44,U2,0.01,pDOP,-,Position DOP +46,U1,-,reserved1,-,Reserved +47,U1,-,numSV,-,Number of SVs used in Nav Solution +48,U1[4],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-226.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-226.csv new file mode 100755 index 00000000..da2a5191 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-226.csv @@ -0,0 +1,10 @@ +Message,NAV-STATUS,,,,, +Description,Receiver Navigation Status,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"See important comments concerning validity of position and velocity given in section Navigation Output Filters. -",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x03,16,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-227.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-227.csv new file mode 100755 index 00000000..ab4ba906 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-227.csv @@ -0,0 +1,7 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +4,U1,-,gpsFix,-,"GPSfix Type, this value does not qualify a fix as valid and within the limits. See note on flag gpsFixOk below. 0x00 = no fix 0x01 = dead reckoning only 0x02 = 2D-fix 0x03 = 3D-fix 0x04 = GPS + dead reckoning combined 0x05 = Time only fix 0x06..0xff = reserved" +5,X1,-,flags,-,Navigation Status Flags (see graphic below) +6,X1,-,fixStat,-,Fix Status Information (see graphic below) +7,X1,-,flags2,-,"further information about navigation output (see graphic below)" +8,U4,-,ttff,ms,Time to first fix (millisecond time tag) +12,U4,-,msss,ms,Milliseconds since Startup / Reset diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-228.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-228.csv new file mode 100755 index 00000000..eb86aabb --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-228.csv @@ -0,0 +1,23 @@ +Message,NAV-SVINFO,,,,, +Description,Space Vehicle Information,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"Information about satellites used or visible This message has only been retained for backwards compatibility; users are recommended to use the UBX-NAV-SAT message in preference.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x30,8 + 12*numCh,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U1,-,numCh,-,Number of channels, +5,X1,-,globalFlags,-,Bitmask (see graphic below), +6,U1[2],-,reserved1,-,Reserved, +Start of repeated block (numCh times),,,,,, +8 + 12*N,U1,-,chn,-,"Channel number, 255 for SVs not assigned to a channel", +9 + 12*N,U1,-,svid,-,"Satellite ID, see Satellite numbering for assignment", +10 + 12*N,X1,-,flags,-,Bitmask (see graphic below), +11 + 12*N,X1,-,quality,-,Bitfield (see graphic below), +12 + 12*N,U1,-,cno,dBHz,Carrier to Noise Ratio (Signal Strength), +13 + 12*N,I1,-,elev,deg,Elevation in integer degrees, +14 + 12*N,I2,-,azim,deg,Azimuth in integer degrees, +16 + 12*N,I4,-,prRes,cm,Pseudo range residual in centimeters, +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-229.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-229.csv new file mode 100755 index 00000000..a9e5f8a5 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-229.csv @@ -0,0 +1,21 @@ +"",Message,NAV-SVIN,,,,, +"",Description,Survey-in data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 20 (only with High Precision GNSS products)",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,This message contains information about survey-in parameters.,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x3B,40,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0x00 for this version), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",8,U4,-,dur,s,Passed survey-in observation time, +"",12,I4,-,meanX,cm,"Current survey-in mean position ECEF X coordinate", +"",16,I4,-,meanY,cm,"Current survey-in mean position ECEF Y coordinate", +"",20,I4,-,meanZ,cm,"Current survey-in mean position ECEF Z coordinate", +"",24,I1,-,meanXHP,"0. 1_mm","Current high-precision survey-in mean position ECEF X coordinate. Must be in the range -99.. +99. The current survey-in mean position ECEF X coordinate, in units of cm, is given by meanX + (0.01 * meanXHP)", +"",25,I1,-,meanYHP,"0. 1_mm","Current high-precision survey-in mean position ECEF Y coordinate. Must be in the range -99.. +99. The current survey-in mean position ECEF Y coordinate, in units of cm, is given by meanY + (0.01 * meanYHP)", +"",26,I1,-,meanZHP,"0. 1_mm","Current high-precision survey-in mean position ECEF Z coordinate. Must be in the range -99.. +99. The current survey-in mean position ECEF Z coordinate, in units of cm, is given by meanZ + (0.01 * meanZHP)", +"",27,U1,-,reserved2,-,Reserved, +"",28,U4,-,meanAcc,"0. 1_mm",Current survey-in mean position accuracy, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-23.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-23.csv new file mode 100755 index 00000000..63f7882f --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-23.csv @@ -0,0 +1,8 @@ +"",Message,AID-HUI,,,,, +"",Description,"Poll GPS Health, UTC, ionosphere parameters",,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead -",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0B,0x02,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-230.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-230.csv new file mode 100755 index 00000000..25011157 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-230.csv @@ -0,0 +1,5 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +32,U4,-,obs,-,"Number of position observations used during survey-in" +36,U1,-,valid,-,"Survey-in position validity flag, 1 = valid, otherwise 0" +37,U1,-,active,-,"Survey-in in progress flag, 1 = in-progress, otherwise 0" +38,U1[2],-,reserved3,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-231.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-231.csv new file mode 100755 index 00000000..1b108c84 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-231.csv @@ -0,0 +1,16 @@ +Message,NAV-TIMEBDS,,,,, +Description,BDS Time Solution,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 17 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message reports the precise BDS time of the most recent navigation solution including validity flags and an accuracy estimate.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x24,20,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U4,-,SOW,s,BDS time of week (rounded to seconds), +8,I4,-,fSOW,ns,"Fractional part of SOW (range: +/-500000000). The precise BDS time of week in seconds is: SOW + fSOW * 1e-9", +12,I2,-,week,-,BDS week number of the navigation epoch, +14,I1,-,leapS,s,BDS leap seconds (BDS-UTC), +15,X1,-,valid,-,Validity Flags (see graphic below), +16,U4,-,tAcc,ns,Time Accuracy Estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-232.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-232.csv new file mode 100755 index 00000000..ccdc2f27 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-232.csv @@ -0,0 +1,16 @@ +Message,NAV-TIMEGAL,,,,, +Description,Galileo Time Solution,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message reports the precise Galileo time of the most recent navigation solution including validity flags and an accuracy estimate.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x25,20,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U4,-,galTow,s,Galileo time of week (rounded to seconds), +8,I4,-,fGalTow,ns,"Fractional part of SOW (range: +/-500000000). The precise Galileo time of week in seconds is: galTow + fGalTow * 1e-9", +12,I2,-,galWno,-,Galileo week number, +14,I1,-,leapS,s,Galileo leap seconds (Galileo-UTC), +15,X1,-,valid,-,Validity Flags (see graphic below), +16,U4,-,tAcc,ns,Time Accuracy Estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-233.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-233.csv new file mode 100755 index 00000000..a92eef74 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-233.csv @@ -0,0 +1,16 @@ +Message,NAV-TIMEGLO,,,,, +Description,GLO Time Solution,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 17 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message reports the precise GLO time of the most recent navigation solution including validity flags and an accuracy estimate.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x23,20,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U4,-,TOD,s,"GLONASS time of day (rounded to integer seconds)", +8,I4,-,fTOD,ns,"Fractional part of TOD (range: +/-500000000). The precise GLONASS time of day in seconds is: TOD + fTOD * 1e-9", +12,U2,-,Nt,days,"Current date (range: 1-1461), starting at 1 from the 1st Jan of the year indicated by N4 and ending at 1461 at the 31st Dec of the third year after that indicated by N4", +14,U1,-,N4,-,"Four-year interval number starting from 1996 (1=1996, 2=2000, 3=2004...)", +15,X1,-,valid,-,Validity flags (see graphic below), +16,U4,-,tAcc,ns,Time Accuracy Estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-234.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-234.csv new file mode 100755 index 00000000..5e286a72 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-234.csv @@ -0,0 +1,15 @@ +Message,NAV-TIMEGPS,,,,, +Description,GPS Time Solution,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message reports the precise GPS time of the most recent navigation solution including validity flags and an accuracy estimate.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x20,16,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,I4,-,fTOW,ns,"Fractional part of iTOW (range: +/-500000). The precise GPS time of week in seconds is: (iTOW * 1e-3) + (fTOW * 1e-9)", +8,I2,-,week,-,GPS week number of the navigation epoch, +10,I1,-,leapS,s,GPS leap seconds (GPS-UTC), +11,X1,-,valid,-,Validity Flags (see graphic below), +12,U4,-,tAcc,ns,Time Accuracy Estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-235.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-235.csv new file mode 100755 index 00000000..32596a87 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-235.csv @@ -0,0 +1,14 @@ +"",Message,NAV-TIMELS,,,,, +"",Description,Leap second event information,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,Information about the upcoming leap second event if one is scheduled.,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x26,24,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,U1,-,version,-,Message version (0x00 for this version)., +"",5,U1[3],-,reserved1,-,Reserved, +"",8,U1,-,srcOfCurrLs,-,"Information source for the current number of leap seconds. 0: Default (hardcoded in the firmware, can be outdated) 1: Derived from time difference between GPS and GLONASS time 2: GPS 3: SBAS 4: BeiDou 5: Galileo 6: Aided data 7: Configured 255: Unknown", +"",9,I1,-,currLs,s,"Current number of leap seconds since start of GPS time (Jan 6, 1980). It reflects how much GPS time is ahead of UTC time. Galileo number of leap seconds is the same as GPS. BeiDou number of leap seconds is 14 less than GPS. GLONASS follows UTC time, so no leap seconds.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-236.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-236.csv new file mode 100755 index 00000000..083d833e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-236.csv @@ -0,0 +1,8 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +10,U1,-,srcOfLsChange,-,"Information source for the future leap second event. 0: No source 2: GPS 3: SBAS 4: BeiDou 5: Galileo 6: GLONASS" +11,I1,-,lsChange,s,"Future leap second change if one is scheduled. +1 = positive leap second, -1 = negative leap second, 0 = no future leap second event scheduled or no information available." +12,I4,-,timeToLsEvent,s,"Number of seconds until the next leap second event, or from the last leap second event if no future event scheduled. If > 0 event is in the future, = 0 event is now, < 0 event is in the past. Valid only if validTimeToLsEvent = 1." +16,U2,-,dateOfLsGpsWn,-,"GPS week number (WN) of the next leap second event or the last one if no future event scheduled. Valid only if validTimeToLsEvent = 1." +18,U2,-,dateOfLsGpsDn,-,"GPS day of week number (DN) for the next leap second event or the last one if no future event scheduled. Valid only if validTimeToLsEvent = 1. (GPS and Galileo DN: from 1 = Sun to 7 = Sat. BeiDou DN: from 0 = Sun to 6 = Sat.)" +20,U1[3],-,reserved2,-,Reserved +23,X1,-,valid,-,Validity flags (see graphic below) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-237.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-237.csv new file mode 100755 index 00000000..23fab8bb --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-237.csv @@ -0,0 +1,3 @@ +Name,Description +validCurrLs,1 = Valid current number of leap seconds value. +"validTimeToLs Event",1 = Valid time to next leap second event or from the last leap second event if no future event scheduled. diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-238.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-238.csv new file mode 100755 index 00000000..824d63db --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-238.csv @@ -0,0 +1,19 @@ +Message,NAV-TIMEUTC,,,,, +Description,UTC Time Solution,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"Note that during a leap second there may be more or less than 60 seconds in a minute; see the description of leap seconds for details. -",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x01,0x21,20,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +4,U4,-,tAcc,ns,Time accuracy estimate (UTC), +8,I4,-,nano,ns,"Fraction of second, range -1e9 .. 1e9 (UTC)", +12,U2,-,year,y,"Year, range 1999..2099 (UTC)", +14,U1,-,month,month,"Month, range 1..12 (UTC)", +15,U1,-,day,d,"Day of month, range 1..31 (UTC)", +16,U1,-,hour,h,"Hour of day, range 0..23 (UTC)", +17,U1,-,min,min,"Minute of hour, range 0..59 (UTC)", +18,U1,-,sec,s,"Seconds of minute, range 0..60 (UTC)", +19,X1,-,valid,-,Validity Flags (see graphic below), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-239.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-239.csv new file mode 100755 index 00000000..7c99a74d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-239.csv @@ -0,0 +1,14 @@ +"",Message,NAV-VELECEF,,,,, +"",Description,Velocity Solution in ECEF,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"See important comments concerning validity of velocity given in section Navigation Output Filters. -",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x11,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,I4,-,ecefVX,cm/s,ECEF X velocity, +"",8,I4,-,ecefVY,cm/s,ECEF Y velocity, +"",12,I4,-,ecefVZ,cm/s,ECEF Z velocity, +"",16,U4,-,sAcc,cm/s,Speed accuracy estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-24.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-24.csv new file mode 100755 index 00000000..5effefdf --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-24.csv @@ -0,0 +1,14 @@ +"",Message,AID-HUI,,,,, +"",Description,"GPS Health, UTC and ionosphere parameters",,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input/Output,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead This message contains a health bit mask, UTC time and Klobuchar parameters. For more information on these parameters, see the ICD-GPS-200 documentation.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0B,0x02,72,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,X4,-,health,-,"Bitmask, every bit represenst a GPS SV (1-32). If the bit is set the SV is healthy.", +"",4,R8,-,utcA0,-,UTC - parameter A0, +"",12,R8,-,utcA1,-,UTC - parameter A1, +"",20,I4,-,utcTOW,-,UTC - reference time of week, +"",24,I2,-,utcWNT,-,UTC - reference week number, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-240.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-240.csv new file mode 100755 index 00000000..7bfd25fd --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-240.csv @@ -0,0 +1,18 @@ +"",Message,NAV-VELNED,,,,, +"",Description,Velocity Solution in NED,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"See important comments concerning validity of velocity given in section Navigation Output Filters. -",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x01,0x12,36,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details.", +"",4,I4,-,velN,cm/s,North velocity component, +"",8,I4,-,velE,cm/s,East velocity component, +"",12,I4,-,velD,cm/s,Down velocity component, +"",16,U4,-,speed,cm/s,Speed (3-D), +"",20,U4,-,gSpeed,cm/s,Ground speed (2-D), +"",24,I4,1e-5,heading,deg,Heading of motion 2-D, +"",28,U4,-,sAcc,cm/s,Speed accuracy Estimate, +"",32,U4,1e-5,cAcc,deg,Course / Heading accuracy estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-241.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-241.csv new file mode 100755 index 00000000..aaf6025d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-241.csv @@ -0,0 +1,28 @@ +"",Message,RXM-IMES,,,,, +"",Description,Indoor Messaging System Information,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message shows the IMES stations the receiver is currently tracking, their data rate, the signal level, the Doppler (with respect to 1575.4282MHz) and what data (without protocol specific overhead) it has received from these stations so far. This message is sent out at the navigation rate the receiver is currently set to. Therefore it allows users to get an overview on the receiver's current state from the IMES perspective.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x02,0x61,4 + 44*numTx,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,numTx,-,"Number of transmitters contained in the message", +"",1,U1,-,version,-,Message version (0x01 for this version), +"",2,U1[2],-,reserved1,-,Reserved, +"",Start of repeated block (numTx times),,,,,, +"",4 + 44*N,U1,-,reserved2,-,Reserved, +"",5 + 44*N,U1,-,txId,-,Transmitter identifier, +"",6 + 44*N,U1[3],-,reserved3,-,Reserved, +"",9 + 44*N,U1,-,cno,dBHz,Carrier to Noise Ratio (Signal Strength), +"",10 + 44*N,U1[2],-,reserved4,-,Reserved, +"",12 + 44*N,I4,2^-12,doppler,Hz,"Doppler frequency with respect to 1575. 4282MHz [IIIII.FFF Hz]", +"",16 + 44*N,X4,-,position1_1,-,Position 1 Frame (part 1/2) (see graphic below), +"",20 + 44*N,X4,-,position1_2,-,Position 1 Frame (part 2/2) (see graphic below), +"",24 + 44*N,X4,-,position2_1,-,Position 2 Frame (part 1/3) (see graphic below), +"",28 + 44*N,I4,"{180*2^ -24}",lat,deg,"Latitude, Position 2 Frame (part 2/3)", +"",32 + 44*N,I4,"{360*2^ -25}",lon,deg,"Longitude, Position 2 Frame (part 3/3)", +"",36 + 44*N,X4,-,shortIdFrame,-,Short ID Frame (see graphic below), +"",40 + 44*N,U4,-,mediumIdLSB,-,"Medium ID LSB, Medium ID Frame (part 1/2)", +"",44 + 44*N,X4,-,mediumId_2,-,Medium ID Frame (part 2/2) (see graphic below), +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-242.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-242.csv new file mode 100755 index 00000000..f6f09eff --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-242.csv @@ -0,0 +1,4 @@ +Message,RXM-MEASX +Description,Satellite Measurements for RRLP +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01" +Type,Periodic diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-243.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-243.csv new file mode 100755 index 00000000..7856a2fb --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-243.csv @@ -0,0 +1,33 @@ +"",,"response to the SMLC. Reference: [1] ETSI TS 144 031 V11.0.0 (2012-10), Digital cellular telecommunications system (Phase 2+), Location Services (LCS), Mobile Station (MS) - Serving Mobile Location Centre (SMLC), Radio Resource LCS Protocol (RRLP), (3GPP TS 44.031 version 11.0.0 Release 11).",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x02,0x14,44 + 24*numSV,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,"Message version, currently 0x00", +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U4,-,gpsTOW,ms,GPS measurement reference time, +"",8,U4,-,gloTOW,ms,GLONASS measurement reference time, +"",12,U4,-,bdsTOW,ms,BeiDou measurement reference time, +"",16,U1[4],-,reserved2,-,Reserved, +"",20,U4,-,qzssTOW,ms,QZSS measurement reference time, +"",24,U2,2^-4,gpsTOWacc,ms,"GPS measurement reference time accuracy (0xffff = > 4s)", +"",26,U2,2^-4,gloTOWacc,ms,"GLONASS measurement reference time accuracy (0xffff = > 4s)", +"",28,U2,2^-4,bdsTOWacc,ms,"BeiDou measurement reference time accuracy (0xffff = > 4s)", +"",30,U1[2],-,reserved3,-,Reserved, +"",32,U2,2^-4,qzssTOWacc,ms,"QZSS measurement reference time accuracy (0xffff = > 4s)", +"",34,U1,-,numSV,-,Number of satellites in repeated block, +"",35,U1,-,flags,-,Flags (see graphic below), +"",36,U1[8],-,reserved4,-,Reserved, +"",Start of repeated block (numSV times),,,,,, +"",44 + 24*N,U1,-,gnssId,-,GNSS ID (see Satellite Numbering), +"",45 + 24*N,U1,-,svId,-,Satellite ID (see Satellite Numbering), +"",46 + 24*N,U1,-,cNo,-,carrier noise ratio (0..63), +"",47 + 24*N,U1,-,mpathIndic,-,"multipath index (according to [1]) (0 = not measured, 1 = low, 2 = medium, 3 = high)", +"",48 + 24*N,I4,0.04,dopplerMS,m/s,Doppler measurement, +"",52 + 24*N,I4,0.2,dopplerHz,Hz,Doppler measurement, +"",56 + 24*N,U2,-,wholeChips,-,"whole value of the code phase measurement (0. .1022 for GPS)", +"",58 + 24*N,U2,-,fracChips,-,"fractional value of the code phase measurement (0..1023)", +"",60 + 24*N,U4,2^-21,codePhase,ms,Code phase, +"",64 + 24*N,U1,-,intCodePhase,ms,Integer (part of the) code phase, +"",65 + 24*N,U1,-,"pseuRangeRMSE rr",-,"pseudorange RMS error index (according to [1]) (0..63)", +"",66 + 24*N,U1[2],-,reserved5,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-244.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-244.csv new file mode 100755 index 00000000..1d5793aa --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-244.csv @@ -0,0 +1,2 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-245.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-245.csv new file mode 100755 index 00000000..4e5d6d49 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-245.csv @@ -0,0 +1,11 @@ +Message,RXM-PMREQ,,,,, +Description,Requests a Power Management task,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Command,,,,, +Comment,Request of a Power Management related task of the receiver.,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x02,0x41,8,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,duration,ms,"Duration of the requested task, set to zero for infinite duration. The maximum supported time is 12 days.", +4,X4,-,flags,-,task flags (see graphic below), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-246.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-246.csv new file mode 100755 index 00000000..492f5ef8 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-246.csv @@ -0,0 +1,2 @@ +Name,Description +backup,"The receiver goes into backup mode for a time period defined by duration. Provided that it is not connected to USB" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-247.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-247.csv new file mode 100755 index 00000000..d726fc90 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-247.csv @@ -0,0 +1,14 @@ +Message,RXM-PMREQ,,,,, +Description,Requests a Power Management task,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +Type,Command,,,,, +Comment,Request of a Power Management related task of the receiver.,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x02,0x41,16,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x00 for this version), +1,U1[3],-,reserved1,-,Reserved, +4,U4,-,duration,ms,"Duration of the requested task, set to zero for infinite duration. The maximum supported time is 12 days.", +8,X4,-,flags,-,task flags (see graphic below), +12,X4,-,wakeupSources,-,"Configure pins to wakeup the receiver. The receiver wakes up if there is either a falling or a rising edge on one of the configured pins (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-248.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-248.csv new file mode 100755 index 00000000..28c5b788 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-248.csv @@ -0,0 +1,11 @@ +Message,RXM-RAWX,,,,, +Description,Multi-GNSS Raw Measurement Data,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 17 (only with Time Sync products)",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message contains the information needed to be able to generate a RINEX 3 multi-GNSS observation file. This message contains pseudorange, Doppler, carrier phase, phase lock and signal quality information for GNSS satellites once signals have been synchronized. This message supports all active GNSS.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x02,0x15,16 + 32*numMeas,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,R8,-,rcvTow,s,"Measurement time of week in receiver local time approximately aligned to the GPS time system. The receiver local time of week, week number and leap second information can be used to translate the time to other time systems. More information about the difference in time systems can be found in RINEX 3 documentation. For a receiver operating in GLONASS only mode, UTC time can be determined by subtracting the leapS field from GPS time regardless of whether the GPS leap seconds are valid.", +8,U2,-,week,weeks,GPS week number in receiver local time., diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-249.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-249.csv new file mode 100755 index 00000000..1615052d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-249.csv @@ -0,0 +1,21 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",10,I1,-,leapS,s,"GPS leap seconds (GPS-UTC). This field represents the receiver's best knowledge of the leap seconds offset. A flag is given in the recStat bitfield to indicate if the leap seconds are known." +"",11,U1,-,numMeas,-,Number of measurements to follow +"",12,X1,-,recStat,-,"Receiver tracking status bitfield (see graphic below)" +"",13,U1[3],-,reserved1,-,Reserved +"",Start of repeated block (numMeas times),,,,, +"",16 + 32*N,R8,-,prMes,m,"Pseudorange measurement [m]. GLONASS inter frequency channel delays are compensated with an internal calibration table." +"",24 + 32*N,R8,-,cpMes,cycles,"Carrier phase measurement [cycles]. The carrier phase initial ambiguity is initialized using an approximate value to make the magnitude of the phase close to the pseudorange measurement. Clock resets are applied to both phase and code measurements in accordance with the RINEX specification." +"",32 + 32*N,R4,-,doMes,Hz,"Doppler measurement (positive sign for approaching satellites) [Hz]" +"",36 + 32*N,U1,-,gnssId,-,"GNSS identifier (see Satellite Numbering for a list of identifiers)" +"",37 + 32*N,U1,-,svId,-,Satellite identifier (see Satellite Numbering) +"",38 + 32*N,U1,-,reserved2,-,Reserved +"",39 + 32*N,U1,-,freqId,-,"Only used for GLONASS: This is the frequency slot + 7 (range from 0 to 13)" +"",40 + 32*N,U2,-,locktime,ms,"Carrier phase locktime counter (maximum 64500ms)" +"",42 + 32*N,U1,-,cno,dBHz,"Carrier-to-noise density ratio (signal strength) [dB-Hz]" +"",43 + 32*N,X1,"0. 01*2^n",prStdev,m,"Estimated pseudorange measurement standard deviation (see graphic below)" +"",44 + 32*N,X1,0.004,cpStdev,cycles,"Estimated carrier phase measurement standard deviation (note a raw value of 0x0F indicates the value is invalid) (see graphic below)" +"",45 + 32*N,X1,"0. 002*2^ n",doStdev,Hz,"Estimated Doppler measurement standard deviation. (see graphic below)" +"",46 + 32*N,X1,-,trkStat,-,Tracking status bitfield (see graphic below) +"",47 + 32*N,U1,-,reserved3,-,Reserved +"",End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-25.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-25.csv new file mode 100755 index 00000000..f255b237 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-25.csv @@ -0,0 +1,15 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +26,I2,-,utcLS,-,"UTC - time difference due to leap seconds before event" +28,I2,-,utcWNF,-,"UTC - week number when next leap second event occurs" +30,I2,-,utcDN,-,"UTC - day of week when next leap second event occurs" +32,I2,-,utcLSF,-,"UTC - time difference due to leap seconds after event" +34,I2,-,utcSpare,-,"UTC - Spare to ensure structure is a multiple of 4 bytes" +36,R4,-,klobA0,s,Klobuchar - alpha 0 +40,R4,-,klobA1,"s/semici rcle",Klobuchar - alpha 1 +44,R4,-,klobA2,"s/semici rcle^2",Klobuchar - alpha 2 +48,R4,-,klobA3,"s/semici rcle^3",Klobuchar - alpha 3 +52,R4,-,klobB0,s,Klobuchar - beta 0 +56,R4,-,klobB1,"s/semici rcle",Klobuchar - beta 1 +60,R4,-,klobB2,"s/semici rcle^2",Klobuchar - beta 2 +64,R4,-,klobB3,"s/semici rcle^3",Klobuchar - beta 3 +68,X4,-,flags,-,flags (see graphic below) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-250.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-250.csv new file mode 100755 index 00000000..866de109 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-250.csv @@ -0,0 +1,9 @@ +Message,RXM-RAWX,,,,, +Description,Multi-GNSS Raw Measurement Data,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01 (only with Time Sync products)",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message contains the information needed to be able to generate a RINEX 3 multi-GNSS observation file. This message contains pseudorange, Doppler, carrier phase, phase lock and signal quality information for GNSS satellites once signals have been synchronized. This message supports all active GNSS. The only difference between this version of the message and the previous version is the addition of the version field.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x02,0x15,16 + 32*numMeas,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-251.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-251.csv new file mode 100755 index 00000000..7b1fb4ac --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-251.csv @@ -0,0 +1,17 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",0,R8,-,rcvTow,s,"Measurement time of week in receiver local time approximately aligned to the GPS time system. The receiver local time of week, week number and leap second information can be used to translate the time to other time systems. More information about the difference in time systems can be found in RINEX 3 documentation. For a receiver operating in GLONASS only mode, UTC time can be determined by subtracting the leapS field from GPS time regardless of whether the GPS leap seconds are valid." +"",8,U2,-,week,weeks,GPS week number in receiver local time. +"",10,I1,-,leapS,s,"GPS leap seconds (GPS-UTC). This field represents the receiver's best knowledge of the leap seconds offset. A flag is given in the recStat bitfield to indicate if the leap seconds are known." +"",11,U1,-,numMeas,-,Number of measurements to follow +"",12,X1,-,recStat,-,"Receiver tracking status bitfield (see graphic below)" +"",13,U1,-,version,-,Message version (0x01 for this version). +"",14,U1[2],-,reserved1,-,Reserved +"",Start of repeated block (numMeas times),,,,, +"",16 + 32*N,R8,-,prMes,m,"Pseudorange measurement [m]. GLONASS inter frequency channel delays are compensated with an internal calibration table." +"",24 + 32*N,R8,-,cpMes,cycles,"Carrier phase measurement [cycles]. The carrier phase initial ambiguity is initialized using an approximate value to make the magnitude of the phase close to the pseudorange measurement. Clock resets are applied to both phase and code measurements in accordance with the RINEX specification." +"",32 + 32*N,R4,-,doMes,Hz,"Doppler measurement (positive sign for approaching satellites) [Hz]" +"",36 + 32*N,U1,-,gnssId,-,"GNSS identifier (see Satellite Numbering for a list of identifiers)" +"",37 + 32*N,U1,-,svId,-,Satellite identifier (see Satellite Numbering) +"",38 + 32*N,U1,-,reserved2,-,Reserved +"",39 + 32*N,U1,-,freqId,-,"Only used for GLONASS: This is the frequency slot + 7 (range from 0 to 13)" +"",40 + 32*N,U2,-,locktime,ms,"Carrier phase locktime counter (maximum 64500ms)" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-252.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-252.csv new file mode 100755 index 00000000..d1612ca6 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-252.csv @@ -0,0 +1,8 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +42 + 32*N,U1,-,cno,dBHz,"Carrier-to-noise density ratio (signal strength) [dB-Hz]" +43 + 32*N,X1,"0. 01*2^n",prStdev,m,"Estimated pseudorange measurement standard deviation (see graphic below)" +44 + 32*N,X1,0.004,cpStdev,cycles,"Estimated carrier phase measurement standard deviation (note a raw value of 0x0F indicates the value is invalid) (see graphic below)" +45 + 32*N,X1,"0. 002*2^ n",doStdev,Hz,"Estimated Doppler measurement standard deviation. (see graphic below)" +46 + 32*N,X1,-,trkStat,-,Tracking status bitfield (see graphic below) +47 + 32*N,U1,-,reserved3,-,Reserved +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-253.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-253.csv new file mode 100755 index 00000000..e078f12a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-253.csv @@ -0,0 +1,17 @@ +"",Message,RXM-RLM,,,,, +"",Description,Galileo SAR Short-RLM report,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message contains the contents of any Galileo Search and Rescue (SAR) Short Return Link Message detected by the receiver.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x02,0x59,16,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0x00 for this version), +"",1,U1,-,type,-,Message type (0x01 for Short-RLM), +"",2,U1,-,svId,-,"Identifier of transmitting satellite (see Satellite Numbering)", +"",3,U1,-,reserved1,-,Reserved, +"",4,U1[8],-,beacon,-,"Beacon identifier (60 bits), with bytes ordered by earliest transmitted (most significant) first. Top four bits of first byte are zero.", +"",12,U1,-,message,-,Message code (4 bits), +"",13,U1[2],-,params,-,"Parameters (16 bits), with bytes ordered by earliest transmitted (most significant) first.", +"",15,U1,-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-254.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-254.csv new file mode 100755 index 00000000..0396af57 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-254.csv @@ -0,0 +1,13 @@ +"",Message,RXM-RLM,,,,, +"",Description,Galileo SAR Long-RLM report,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message contains the contents of any Galileo Search and Rescue (SAR) Long Return Link Message detected by the receiver.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x02,0x59,28,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0x00 for this version), +"",1,U1,-,type,-,Message type (0x02 for Long-RLM), +"",2,U1,-,svId,-,"Identifier of transmitting satellite (see Satellite Numbering)", +"",3,U1,-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-255.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-255.csv new file mode 100755 index 00000000..33ec17fb --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-255.csv @@ -0,0 +1,5 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +4,U1[8],-,beacon,-,"Beacon identifier (60 bits), with bytes ordered by earliest transmitted (most significant) first. Top four bits of first byte are zero." +12,U1,-,message,-,Message code (4 bits) +13,U1[12],-,params,-,"Parameters (96 bits), with bytes ordered by earliest transmitted (most significant) first." +25,U1[3],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-256.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-256.csv new file mode 100755 index 00000000..272c9b25 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-256.csv @@ -0,0 +1,14 @@ +Message,RXM-RTCM,,,,, +Description,RTCM input status,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 20.01 up to version 23.01",,,,, +Type,Output,,,,, +Comment,Output upon processing of an RTCM input message,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x02,0x32,8,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x02 for this version), +1,X1,-,flags,-,RTCM input status flags (see graphic below), +2,U1[2],-,reserved1,-,Reserved, +4,U2,-,refStation,-,Reference station ID, +6,U2,-,msgType,-,Message type, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-257.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-257.csv new file mode 100755 index 00000000..a6567f53 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-257.csv @@ -0,0 +1,20 @@ +"",Message,RXM-SFRBX,,,,, +"",Description,Broadcast Navigation Data Subframe,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 17 (only with Time Sync products)",,,,, +"",Type,Output,,,,, +"",Comment,"This message reports a complete subframe of broadcast navigation data decoded from a single signal. The number of data words reported in each message depends on the nature of the signal. See the section on Broadcast Navigation Data for further details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x02,0x13,8 + 4*numWords,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,gnssId,-,GNSS identifier (see Satellite Numbering), +"",1,U1,-,svId,-,Satellite identifier (see Satellite Numbering), +"",2,U1,-,reserved1,-,Reserved, +"",3,U1,-,freqId,-,"Only used for GLONASS: This is the frequency slot + 7 (range from 0 to 13)", +"",4,U1,-,numWords,-,"The number of data words contained in this message (0..16)", +"",5,U1,-,reserved2,-,Reserved, +"",6,U1,-,version,-,Message version (0x01 for this version), +"",7,U1,-,reserved3,-,Reserved, +"",Start of repeated block (numWords times),,,,,, +"",8 + 4*N,U4,-,dwrd,-,The data words, +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-258.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-258.csv new file mode 100755 index 00000000..effba09e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-258.csv @@ -0,0 +1,20 @@ +"",Message,RXM-SFRBX,,,,, +"",Description,Broadcast Navigation Data Subframe,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"This message reports a complete subframe of broadcast navigation data decoded from a single signal. The number of data words reported in each message depends on the nature of the signal. See the section on Broadcast Navigation Data for further details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x02,0x13,8 + 4*numWords,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,gnssId,-,GNSS identifier (see Satellite Numbering), +"",1,U1,-,svId,-,Satellite identifier (see Satellite Numbering), +"",2,U1,-,reserved1,-,Reserved, +"",3,U1,-,freqId,-,"Only used for GLONASS: This is the frequency slot + 7 (range from 0 to 13)", +"",4,U1,-,numWords,-,"The number of data words contained in this message (up to 10, for currently supported signals)", +"",5,U1,-,chn,-,"The tracking channel number the message was received on", +"",6,U1,-,version,-,"Message version, (0x02 for this version)", +"",7,U1,-,reserved2,-,Reserved, +"",Start of repeated block (numWords times),,,,,, +"",8 + 4*N,U4,-,dwrd,-,The data words, +"",End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-259.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-259.csv new file mode 100755 index 00000000..97699771 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-259.csv @@ -0,0 +1,9 @@ +"",Message,RXM-SVSI,,,,, +"",Description,SV Status Info,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"Status of the receiver manager knowledge about GPS Orbit Validity This message has only been retained for backwards compatibility; users are recommended to use the UBX-NAV-ORB message in preference.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x02,0x20,8 + 6*numSV,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-26.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-26.csv new file mode 100755 index 00000000..5070c63d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-26.csv @@ -0,0 +1,8 @@ +"",Message,AID-INI,,,,, +"",Description,Poll GPS Initial Aiding Data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead -",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0B,0x01,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-260.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-260.csv new file mode 100755 index 00000000..839e15f8 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-260.csv @@ -0,0 +1,12 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +0,U4,-,iTOW,ms,"GPS time of week of the navigation epoch. See the description of iTOW for details." +4,I2,-,week,weeks,GPS week number of the navigation epoch +6,U1,-,numVis,-,Number of visible satellites +7,U1,-,numSV,-,Number of per-SV data blocks following +Start of repeated block (numSV times),,,,, +8 + 6*N,U1,-,svid,-,Satellite ID +9 + 6*N,X1,-,svFlag,-,Information Flags (see graphic below) +10 + 6*N,I2,-,azim,-,Azimuth +12 + 6*N,I1,-,elev,-,Elevation +13 + 6*N,X1,-,age,-,"Age of Almanac and Ephemeris: (see graphic below)" +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-261.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-261.csv new file mode 100755 index 00000000..f07b5e8b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-261.csv @@ -0,0 +1,15 @@ +Message,SEC-SIGN,,,,, +Description,Signature of a previous message,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +Type,Output,,,,, +Comment,"The message is the signature of a previously sent message. The signature is generated with a hash using the SHA-256 algorithm with the programmed seeds.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x27,0x01,40,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x01 for this version), +1,U1[3],-,reserved1,-,Reserved, +4,U1,-,classID,-,Class ID of the referring message, +5,U1,-,messageID,-,Message ID of the referring message, +6,U2,-,checksum,-,UBX Checksum of the referring message, +8,U1[32],-,hash,-,SHA-256 hash of the referring message, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-262.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-262.csv new file mode 100755 index 00000000..fba10bcd --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-262.csv @@ -0,0 +1,12 @@ +Message,SEC-UNIQID,,,,, +Description,Unique Chip ID,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +Type,Output,,,,, +Comment,"This message is used to retrieve a unique chip identifier (40 bits, 5 bytes).",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x27,0x03,9,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x01 for this version), +1,U1[3],-,reserved1,-,Reserved, +4,U1[5],-,uniqueId,-,Unique chip ID, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-263.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-263.csv new file mode 100755 index 00000000..919d91a4 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-263.csv @@ -0,0 +1,12 @@ +"",Message,TIM-DOSC,,,,, +"",Description,Disciplined oscillator control,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Output,,,,, +"",Comment,"The receiver sends this message when it is disciplining an external oscillator and the external oscillator is set up to be controlled via the host.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x11,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U4,-,value,-,"The raw value to be applied to the DAC controlling the external oscillator. The least significant bits should be written to the DAC, with the higher bits being ignored.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-264.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-264.csv new file mode 100755 index 00000000..60ca7923 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-264.csv @@ -0,0 +1,11 @@ +"",Message,TIM-FCHG,,,,, +"",Description,Oscillator frequency changed notification,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message reports frequency changes commanded by the sync manager for the internal and external oscillator. It is output at the configured rate even if the sync manager decides not to command a frequency change.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x16,32,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1[3],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-265.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-265.csv new file mode 100755 index 00000000..24118458 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-265.csv @@ -0,0 +1,8 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",4,U4,-,iTOW,ms,"GPS time of week of the navigation epoch from which the sync manager obtains the GNSS specific data. Like for the NAV message, the iTOW can be used to group messages of a single sync manager run together (See the description of iTOW for details)" +"",8,I4,2^-8,intDeltaFreq,ppb,Frequency increment of the internal oscillator +"",12,U4,2^-8,"intDeltaFreqU nc",ppb,"Uncertainty of the internal oscillator frequency increment" +"",16,U4,-,intRaw,-,"Current raw DAC setting commanded to the internal oscillator" +"",20,I4,2^-8,extDeltaFreq,ppb,Frequency increment of the external oscillator +"",24,U4,2^-8,"extDeltaFreqU nc",ppb,"Uncertainty of the external oscillator frequency increment" +"",28,U4,-,extRaw,-,"Current raw DAC setting commanded to the external oscillator" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-266.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-266.csv new file mode 100755 index 00000000..cb267f94 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-266.csv @@ -0,0 +1,10 @@ +"",Message,TIM-HOC,,,,, +"",Description,Host oscillator control,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Input,,,,, +"",Comment,"This message can be sent by the host to force the receiver to bypass the disciplining algorithms in the SMGR and carry out the instructed changes to internal or external oscillator frequency. No checks are carried out on the size of the frequency change requested, so normal limits imposed by the SMGR are ignored. It is recommended that the disciplining of that oscillator is disabled before this message is sent (i.e. by clearing the enableInternal or enableExternal flag in the CFG-SMGR message), otherwise the autonomous disciplining processes may cancel the effect of the direct command. Note that the GNSS subsystem may temporarily lose track of some/all satellite signals if a large change of the internal oscillator is made.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x17,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-267.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-267.csv new file mode 100755 index 00000000..3e080d5a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-267.csv @@ -0,0 +1,5 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +1,U1,-,oscId,-,"Id of oscillator: 0: internal oscillator 1: external oscillator" +2,U1,-,flags,-,Flags (see graphic below) +3,U1,-,reserved1,-,Reserved +4,I4,2^-8,value,ppb/-,"Required frequency offset or raw output, depending on the flags" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-268.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-268.csv new file mode 100755 index 00000000..41166b64 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-268.csv @@ -0,0 +1,8 @@ +Message,TIM-SMEAS,,,,, +Description,Source measurement,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +Type,Input/Output,,,,, +Comment,"Frequency and/or phase measurement of synchronization sources. The measurements are relative to the nominal frequency and nominal phase. The receiver reports the measurements on its sync sources using this message. Which measurements are reported can be configured using UBX-CFG-SMGR. The host may report offset of the receiver's outputs with this message as well. The receiver has to be configured using UBX-CFG-SMGR to enable the use of the external measurement messages. Otherwise the receiver will ignore them.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +0xB5 0x62,0x0D,0x13,12 + 24*numMeas,see below,CK_A CK_B, +Payload Contents:,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-269.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-269.csv new file mode 100755 index 00000000..b18b32ce --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-269.csv @@ -0,0 +1,16 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",0,U1,-,version,-,Message version (0 for this version) +"",1,U1,-,numMeas,-,Number of measurements in repeated block +"",2,U1[2],-,reserved1,-,Reserved +"",4,U4,-,iTOW,ms,Time of the week +"",8,U1[4],-,reserved2,-,Reserved +"",Start of repeated block (numMeas times),,,,, +"",12 + 24*N,U1,-,sourceId,-,"Index of source. SMEAS can provide six measurement sources. The first four sourceId values represent measurements made by the receiver and sent to the host. The first of these with a sourceId value of 0 is a measurement of the internal oscillator against the current receiver time-and-frequency estimate. The internal oscillator is being disciplined against that estimate and this result represents the current offset between the actual and desired internal oscillator states. The next three sourceId values represent frequency and time measurements made by the receiver against the internal oscillator. sourceId 1 represents the GNSS-derived frequency and time compared with the internal oscillator frequency and time. sourceId2 give measurements of a signal coming in on EXTINT0. sourceId 3 corresponds to a similar measurement on EXTINT1. The remaining two of these measurements (sourceId 4 and 5) are made by the host and sent to the receiver. A measurement with sourceId 4 is a measurement by the host of the internal oscillator and sourceId 5 indicates a host measurement of the external oscillator." +"",13 + 24*N,X1,-,flags,-,Flags (see graphic below) +"",14 + 24*N,I1,2^-8,"phaseOffsetFr ac",ns,"Sub-nanosecond phase offset; the total offset is the sum of phaseOffset and phaseOffsetFrac" +"",15 + 24*N,U1,2^-8,phaseUncFrac,ns,Sub-nanosecond phase uncertainty +"",16 + 24*N,I4,-,phaseOffset,ns,"Phase offset, positive if the source lags accurate phase and negative if the source is early" +"",20 + 24*N,U4,-,phaseUnc,ns,Phase uncertainty (one standard deviation) +"",24 + 24*N,U1[4],-,reserved3,-,Reserved +"",28 + 24*N,I4,2^-8,freqOffset,ppb,"Frequency offset, positive if the source frequency is too high, negative if the frequency is too low." diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-27.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-27.csv new file mode 100755 index 00000000..410793f4 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-27.csv @@ -0,0 +1,13 @@ +"",Message,AID-INI,,,,, +"",Description,"Aiding position, time, frequency, clock drift",,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Input/Output,,,,, +"",Comment,"All UBX-AID messages are deprecated; use UBX-MGA messages instead This message contains position, time and clock drift information. The position can be input in either the ECEF X/Y/Z coordinate system or as lat/lon/height. The time can either be input as inexact value via the standard communication interface, suffering from latency depending on the baud rate, or using hardware time synchronization where an accurate time pulse is input on the external interrupts. It is also possible to supply hardware frequency aiding by connecting a continuous signal to an external interrupt.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0B,0x01,48,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,I4,-,ecefXOrLat,"cm_or_ deg*1e -7","WGS84 ECEF X coordinate or latitude, depending on flags below", +"",4,I4,-,ecefYOrLon,"cm_or_ deg*1e -7","WGS84 ECEF Y coordinate or longitude, depending on flags below", +"",8,I4,-,ecefZOrAlt,cm,"WGS84 ECEF Z coordinate or altitude, depending on flags below", +"",12,U4,-,posAcc,cm,Position accuracy (stddev), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-270.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-270.csv new file mode 100755 index 00000000..632f2542 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-270.csv @@ -0,0 +1,3 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +32 + 24*N,U4,2^-8,freqUnc,ppb,Frequency uncertainty (one standard deviation) +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-271.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-271.csv new file mode 100755 index 00000000..a3cac4c4 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-271.csv @@ -0,0 +1,16 @@ +Message,TIM-SVIN,,,,, +Description,Survey-in data,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01 (only with Time & Frequency Sync or Time Sync products)",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message contains information about survey-in parameters. For details about the Time Mode see section Time Mode Configuration.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0D,0x04,28,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U4,-,dur,s,Passed survey-in observation time, +4,I4,-,meanX,cm,"Current survey-in mean position ECEF X coordinate", +8,I4,-,meanY,cm,"Current survey-in mean position ECEF Y coordinate", +12,I4,-,meanZ,cm,"Current survey-in mean position ECEF Z coordinate", +16,U4,-,meanV,mm^2,Current survey-in mean position 3D variance, +20,U4,-,obs,-,"Number of position observations used during survey-in", +24,U1,-,valid,-,"Survey-in position validity flag, 1 = valid, otherwise 0", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-272.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-272.csv new file mode 100755 index 00000000..4dea1f55 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-272.csv @@ -0,0 +1,3 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +25,U1,-,active,-,"Survey-in in progress flag, 1 = in-progress, otherwise 0" +26,U1[2],-,reserved1,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-273.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-273.csv new file mode 100755 index 00000000..df0f6b1f --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-273.csv @@ -0,0 +1,19 @@ +Message,TIM-TM2,,,,, +Description,Time mark data,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Periodic/Polled,,,,, +Comment,"This message contains information for high precision time stamping / pulse counting. The delay figures and timebase given in CFG-TP5 are also applied to the time results output in this message.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x0D,0x03,28,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,ch,-,"Channel (i.e. EXTINT) upon which the pulse was measured", +1,X1,-,flags,-,Bitmask (see graphic below), +2,U2,-,count,-,rising edge counter., +4,U2,-,wnR,-,week number of last rising edge, +6,U2,-,wnF,-,week number of last falling edge, +8,U4,-,towMsR,ms,tow of rising edge, +12,U4,-,towSubMsR,ns,"millisecond fraction of tow of rising edge in nanoseconds", +16,U4,-,towMsF,ms,tow of falling edge, +20,U4,-,towSubMsF,ns,"millisecond fraction of tow of falling edge in nanoseconds", +24,U4,-,accEst,ns,Accuracy estimate, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-274.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-274.csv new file mode 100755 index 00000000..cf99db62 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-274.csv @@ -0,0 +1,19 @@ +"",Message,TIM-TOS,,,,, +"",Description,Time Pulse Time and Frequency Data,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Periodic,,,,, +"",Comment,"This message contains information about the time pulse that has just happened and the state of the disciplined oscillators(s) at the time of the pulse. It gives the UTC and GNSS times and time uncertainty of the pulse together with frequency and frequency uncertainty of the disciplined oscillators. It also supplies leap second information.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x12,56,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1,-,gnssId,-,"GNSS system used for reporting GNSS time (see Satellite Numbering)", +"",2,U1[2],-,reserved1,-,Reserved, +"",4,X4,-,flags,-,Flags (see graphic below), +"",8,U2,-,year,y,Year of UTC time, +"",10,U1,-,month,month,Month of UTC time, +"",11,U1,-,day,d,Day of UTC time, +"",12,U1,-,hour,h,Hour of UTC time, +"",13,U1,-,minute,min,Minute of UTC time, +"",14,U1,-,second,s,Second of UTC time, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-275.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-275.csv new file mode 100755 index 00000000..e2993e24 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-275.csv @@ -0,0 +1,12 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +15,U1,-,utcStandard,-,"UTC standard identifier: 0: unknown 3: UTC as operated by the U.S. Naval Observatory (USNO) 6: UTC as operated by the former Soviet Union 7: UTC as operated by the National Time Service Center, China" +16,I4,-,utcOffset,ns,"Time offset between the preceding pulse and UTC top of second" +20,U4,-,"utcUncertaint y",ns,Uncertainty of utcOffset +24,U4,-,week,-,GNSS week number +28,U4,-,TOW,s,GNSS time of week +32,I4,-,gnssOffset,ns,"Time offset between the preceding pulse and GNSS top of second" +36,U4,-,"gnssUncertain ty",ns,Uncertainty of gnssOffset +40,I4,2^-8,intOscOffset,ppb,Internal oscillator frequency offset +44,U4,2^-8,"intOscUncerta inty",ppb,Internal oscillator frequency uncertainty +48,I4,2^-8,extOscOffset,ppb,External oscillator frequency offset +52,U4,2^-8,"extOscUncerta inty",ppb,External oscillator frequency uncertainty diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-276.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-276.csv new file mode 100755 index 00000000..3c2c512d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-276.csv @@ -0,0 +1,14 @@ +"",Message,TIM-TP,,,,, +"",Description,Time Pulse Timedata,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 22",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message contains information on the timing of the next pulse at the TIMEPULSE0 output. The recommended configuration when using this message is to set both the measurement rate (CFG-RATE) and the timepulse frequency (CFG-TP5) to 1Hz. For more information see section Time pulse. TIMEPULSE0 and this message are not available from DR products using the dedicated I2C sensor interface, including NEO-M8L and NEO-M8U modules",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x01,16,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U4,-,towMS,ms,Time pulse time of week according to time base, +"",4,U4,2^-32,towSubMS,ms,Submillisecond part of TOWMS, +"",8,I4,-,qErr,ps,"Quantization error of time pulse (not supported for the FTS product variant).", +"",12,U2,-,week,weeks,"Time pulse week number according to time base", +"",14,X1,-,flags,-,bitmask (see graphic below), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-277.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-277.csv new file mode 100755 index 00000000..730734ca --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-277.csv @@ -0,0 +1,2 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +15,X1,-,refInfo,-,Time reference information (see graphic below) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-278.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-278.csv new file mode 100755 index 00000000..40d63fbf --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-278.csv @@ -0,0 +1,10 @@ +"",Message,TIM-VCOCAL,,,,, +"",Description,Stop calibration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Command,,,,, +"",Comment,Stop all ongoing calibration (both oscillators are affected),,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x15,1,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (0 for this message), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-279.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-279.csv new file mode 100755 index 00000000..8bba99d5 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-279.csv @@ -0,0 +1,4 @@ +"",Message,TIM-VCOCAL +"",Description,VCO calibration extended command +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)" +"",Type,Command diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-28.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-28.csv new file mode 100755 index 00000000..134cfedb --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-28.csv @@ -0,0 +1,10 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +16,X2,-,tmCfg,-,Time mark configuration (see graphic below) +18,U2,-,wnoOrDate,"week_o r_year Month","Actual week number or yearSince2000/Month (YYMM), depending on flags below" +20,U4,-,towOrTime,"ms_or_ dayHou rMinute Sec","Actual time of week or DayOfMonth/Hour/Minute/Second (DDHHMMSS), depending on flags below" +24,I4,-,towNs,ns,Fractional part of time of week +28,U4,-,tAccMs,ms,Milliseconds part of time accuracy +32,U4,-,tAccNs,ns,Nanoseconds part of time accuracy +36,I4,-,clkDOrFreq,"ns/s_or _Hz*1e -2","Clock drift or frequency, depending on flags below" +40,U4,-,"clkDAccOrFreq Acc","ns/s_or _ppb","Accuracy of clock drift or frequency, depending on flags below" +44,X4,-,flags,-,"Bitmask with the following flags (see graphic below)" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-280.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-280.csv new file mode 100755 index 00000000..5d851376 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-280.csv @@ -0,0 +1,13 @@ +"",,"measured result. Normal operation then resumes. If the control value movement is less than maxStepSize then the transition will happen in one step - this will give fast calibration. Care must be taken when calibrating the internal oscillator against the GNSS source. In that case the changes applied to the oscillator frequency could be severe enough to lose satellite signal tracking, especially when signals are weak. If too many signals are lost, the GNSS system will lose its fix and be unable to measure the oscillator frequency - the calibration will then fail. In this case maxStepSize must be reasonably small. It is also important that only the chosen frequency source is enabled during the calibration process and that it remains stable throughout the calibration period; otherwise incorrect oscillator measurements will be made and this will lead to miscalibration and poor subsequent operation of the receiver.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x15,12,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (2 for this message), +"",1,U1,-,version,-,Message version (0 for this version), +"",2,U1,-,oscId,-,"Oscillator to be calibrated: 0: internal oscillator 1: external oscillator", +"",3,U1,-,srcId,-,"Reference source: 0: internal oscillator 1: GNSS 2: EXTINT0 3: EXTINT1 Option 0 should be used when calibrating the external oscillator. Options 1-3 should be used when calibrating the internal oscillator.", +"",4,U1[2],-,reserved1,-,Reserved, +"",6,U2,-,raw0,-,First value used for calibration, +"",8,U2,-,raw1,-,Second value used for calibration, +"",10,U2,-,maxStepSize,"raw value/s",Maximum step size to be used, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-281.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-281.csv new file mode 100755 index 00000000..cd1e0ea1 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-281.csv @@ -0,0 +1,15 @@ +"",Message,TIM-VCOCAL,,,,, +"",Description,Results of the calibration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message is sent when the oscillator gain calibration process is finished (successful or unsuccessful). It notifies the user of the calibrated oscillator gain. If the oscillator gain calibration process was successful, this message will contain the measured gain (field gainVco) and its uncertainty (field gainUncertainty). The calibration process can however fail. In that case the two fields gainVco and gainUncertainty are set to zero.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x15,12,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,type,-,Message type (3 for this message), +"",1,U1,-,version,-,Message version (0 for this version), +"",2,U1,-,oscId,-,"Id of oscillator: 0: internal oscillator 1: external oscillator", +"",3,U1[3],-,reserved1,-,Reserved, +"",6,U2,2^-16,"gainUncertain ty",1/1,"Relative gain uncertainty after calibration, 0 if calibration failed", +"",8,I4,2^-16,gainVco,"ppb/ra w LSB",Calibrated gain or 0 if calibration failed, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-282.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-282.csv new file mode 100755 index 00000000..0b0e7453 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-282.csv @@ -0,0 +1,11 @@ +"",Message,TIM-VRFY,,,,, +"",Description,Sourced Time Verification,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Periodic/Polled,,,,, +"",Comment,"This message contains verification information about previous time received via AID-INI or from RTC",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x0D,0x06,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,I4,-,itow,ms,integer millisecond tow received by source, +"",4,I4,-,frac,ns,sub-millisecond part of tow, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-283.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-283.csv new file mode 100755 index 00000000..2d303cd3 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-283.csv @@ -0,0 +1,6 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +8,I4,-,deltaMs,ms,"integer milliseconds of delta time (current time minus sourced time)" +12,I4,-,deltaNs,ns,sub-millisecond part of delta time +16,U2,-,wno,week,week number +18,X1,-,flags,-,information flags (see graphic below) +19,U1,-,reserved1,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-284.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-284.csv new file mode 100755 index 00000000..9c2d980c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-284.csv @@ -0,0 +1,8 @@ +"",Message,UPD-SOS,,,,, +"",Description,Poll Backup File Restore Status,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"Sending this (empty / no-payload) message to the receiver results in the receiver returning a System Restored from Backup message as defined below.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x09,0x14,0,see below,CK_A CK_B, +"",No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-285.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-285.csv new file mode 100755 index 00000000..3c91690a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-285.csv @@ -0,0 +1,11 @@ +"",Message,UPD-SOS,,,,, +"",Description,Create Backup File in Flash,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Command,,,,, +"",Comment,"The host can send this message in order to save part of the BBR memory in a file in flash file system. The feature is designed in order to emulate the presence of the backup battery even if it is not present; the host can issue the save on shutdown command before switching off the device supply. It is recommended to issue a GNSS stop command before, in order to keep the BBR memory content consistent.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x09,0x14,4,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,cmd,-,Command (must be 0), +"",1,U1[3],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-286.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-286.csv new file mode 100755 index 00000000..e2ece999 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-286.csv @@ -0,0 +1,11 @@ +"",Message,UPD-SOS,,,,, +"",Description,Clear Backup in Flash,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Command,,,,, +"",Comment,"The host can send this message in order to erase the backup file present in flash. It is recommended that the clear operation is issued after the host has received the notification that the memory has been restored after a reset. Alternatively the host can parse the startup string 'Restored data saved on shutdown' or poll the UBX-UPD-SOS message for getting the status.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x09,0x14,4,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,cmd,-,Command (must be 1), +"",1,U1[3],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-287.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-287.csv new file mode 100755 index 00000000..c3ae52c0 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-287.csv @@ -0,0 +1,13 @@ +"",Message,UPD-SOS,,,,, +"",Description,Backup File Creation Acknowledge,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"The message is sent from the device as confirmation of creation of a backup file in flash. The host can safely shut down the device after received this message.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x09,0x14,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,cmd,-,Command (must be 2), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U1,-,response,-,"0: Not acknowledged 1: Acknowledged", +"",5,U1[3],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-288.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-288.csv new file mode 100755 index 00000000..befc1ae4 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-288.csv @@ -0,0 +1,13 @@ +"",Message,UPD-SOS,,,,, +"",Description,System Restored from Backup,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Output,,,,, +"",Comment,"The message is sent from the device to notify the host the BBR has been restored from a backup file in flash. The host should clear the backup file after receiving this message. If the UBX-UPD-SOS message is polled, this message will be resent.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x09,0x14,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,cmd,-,Command (must be 3), +"",1,U1[3],-,reserved1,-,Reserved, +"",4,U1,-,response,-,"0: Unknown 1: Failed restoring from backup file 2: Restored from backup file 3: Not restored (no backup)", +"",5,U1[3],-,reserved2,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-29.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-29.csv new file mode 100755 index 00000000..0f19d659 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-29.csv @@ -0,0 +1,11 @@ +Message,CFG-ANT,,,,, +Description,Antenna Control Settings,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x13,4,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,X2,-,flags,-,Antenna Flag Mask (see graphic below), +2,X2,-,pins,-,Antenna Pin Configuration (see graphic below), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-3.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-3.csv new file mode 100755 index 00000000..c8b8c778 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-3.csv @@ -0,0 +1,3 @@ +Name,Class,Description +SEC,0x27,Security Feature Messages +HNR,0x28,"High Rate Navigation Results Messages: High rate time, position, speed, heading" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-30.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-30.csv new file mode 100755 index 00000000..9397edf0 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-30.csv @@ -0,0 +1,15 @@ +Message,CFG-BATCH,,,,, +Description,Get/Set data batching configuration,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 23.01",,,,, +Type,Get/Set,,,,, +Comment,"Gets or sets the configuration for data batching. See Data Batching for more information.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x93,8,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x00 for this version), +1,X1,-,flags,-,Flags (see graphic below), +2,U2,-,bufSize,-,Size of buffer in number of epochs to store, +4,U2,-,notifThrs,-,"Buffer fill level that triggers PIO notification, in number of epochs stored", +6,U1,-,pioId,-,PIO ID to use for buffer level notification, +7,U1,-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-31.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-31.csv new file mode 100755 index 00000000..ee451c10 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-31.csv @@ -0,0 +1,15 @@ +"",Message,CFG-CFG,,,,, +"",Description,"Clear, Save and Load configurations",,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Command,,,,, +"",Comment,"See Receiver Configuration for a detailed description on how Receiver Configuration should be used. The three masks are made up of individual bits, each bit indicating the sub-section of all configurations on which the corresponding action shall be carried out. The reserved bits in the masks must be set to '0'. For detailed information refer to the Organization of the Configuration Sections. Note that commands can be combined. The sequence of execution is Clear, Save, Load.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x09,(12) or (13),see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,X4,-,clearMask,-,"Mask with configuration sub-sections to clear (i. e. load default configurations to permanent configurations in non-volatile memory) (see graphic below)", +"",4,X4,-,saveMask,-,"Mask with configuration sub-sections to save (i. e. save current configurations to non-volatile memory), see ID description of clearMask", +"",8,X4,-,loadMask,-,"Mask with configuration sub-sections to load (i. e. load permanent configurations from non-volatile memory to current configurations), see ID description of clearMask", +"",Start of optional block,,,,,, +"",12,X1,-,deviceMask,-,"Mask which selects the memory devices for this command. (see graphic below)", +"",End of optional block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-32.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-32.csv new file mode 100755 index 00000000..51cb1430 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-32.csv @@ -0,0 +1,18 @@ +"",Message,CFG-DAT,,,,, +"",Description,Set User-defined Datum.,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Set,,,,, +"",Comment,For more information see the description of Geodetic Systems and Frames.,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x06,44,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,R8,-,majA,m,"Semi-major Axis ( accepted range = 6,300,000.0 to 6,500,000.0 meters ).", +"",8,R8,-,flat,-,"1.0 / Flattening ( accepted range is 0.0 to 500.0 ).", +"",16,R4,-,dX,m,"X Axis shift at the origin ( accepted range is +/- 5000.0 meters ).", +"",20,R4,-,dY,m,"Y Axis shift at the origin ( accepted range is +/- 5000.0 meters ).", +"",24,R4,-,dZ,m,"Z Axis shift at the origin ( accepted range is +/- 5000.0 meters ).", +"",28,R4,-,rotX,s,"Rotation about the X Axis ( accepted range is +/- 20.0 milli-arc seconds ).", +"",32,R4,-,rotY,s,"Rotation about the Y Axis ( accepted range is +/- 20.0 milli-arc seconds ).", +"",36,R4,-,rotZ,s,"Rotation about the Z Axis ( accepted range is +/- 20.0 milli-arc seconds ).", +"",40,R4,-,scale,ppm,"Scale change ( accepted range is 0.0 to 50.0 parts per million ).", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-33.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-33.csv new file mode 100755 index 00000000..18ed7670 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-33.csv @@ -0,0 +1,9 @@ +"",Message,CFG-DAT,,,,, +"",Description,The currently defined Datum,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get,,,,, +"",Comment,"Returns the parameters of the currently defined datum. If no user-defined datum has been set, this will default to WGS84.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x06,52,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-34.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-34.csv new file mode 100755 index 00000000..8993b5a7 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-34.csv @@ -0,0 +1,12 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",0,U2,-,datumNum,-,"Datum Number: 0 = WGS84, 0xFFFF = user-defined" +"",2,CH[6],-,datumName,-,ASCII String: WGS84 or USER +"",8,R8,-,majA,m,"Semi-major Axis ( accepted range = 6,300,000.0 to 6,500,000.0 meters )." +"",16,R8,-,flat,-,"1.0 / Flattening ( accepted range is 0.0 to 500.0 )." +"",24,R4,-,dX,m,"X Axis shift at the origin ( accepted range is +/- 5000.0 meters )." +"",28,R4,-,dY,m,"Y Axis shift at the origin ( accepted range is +/- 5000.0 meters )." +"",32,R4,-,dZ,m,"Z Axis shift at the origin ( accepted range is +/- 5000.0 meters )." +"",36,R4,-,rotX,s,"Rotation about the X Axis ( accepted range is +/- 20.0 milli-arc seconds )." +"",40,R4,-,rotY,s,"Rotation about the Y Axis ( accepted range is +/- 20.0 milli-arc seconds )." +"",44,R4,-,rotZ,s,"Rotation about the Z Axis ( accepted range is +/- 20.0 milli-arc seconds )." +"",48,R4,-,scale,ppm,"Scale change ( accepted range is 0.0 to 50.0 parts per million )." diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-35.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-35.csv new file mode 100755 index 00000000..71a6302e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-35.csv @@ -0,0 +1,11 @@ +"",Message,CFG-DGNSS,,,,, +"",Description,DGNSS configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 20.01 up to version 23.01 (only with High Precision GNSS products)",,,,, +"",Type,Get/Set,,,,, +"",Comment,This message allows the user to configure the DGNSS configuration of the receiver.,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x70,4,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,dgnssMode,-,"Specifies differential mode: 2: RTK float: No attempts are made to fix ambiguities. 3: RTK fixed: Ambiguities are fixed whenever possible.", +"",1,U1[3],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-36.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-36.csv new file mode 100755 index 00000000..8a40736b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-36.csv @@ -0,0 +1,25 @@ +"",Message,CFG-DOSC,,,,, +"",Description,Disciplined oscillator configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Get/Set,,,,, +"",Comment,"This message allows the characteristics of the internal or external oscillator to be described to the receiver. The gainVco and gainUncertainty parameters are normally set using the calibration process initiated using UBX-TIM-VCOCAL. The behavior of the system can be badly affected by setting the wrong values, so customers are advised to only change these parameters with care.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x61,4 + 32*numOsc,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1,-,numOsc,-,"Number of oscillators to configure (affects length of this message)", +"",2,U1[2],-,reserved1,-,Reserved, +"",Start of repeated block (numOsc times),,,,,, +"",4 + 32*N,U1,-,oscId,-,"Id of oscillator. 0 - internal oscillator 1 - external oscillator", +"",5 + 32*N,U1,-,reserved2,-,Reserved, +"",6 + 32*N,X2,-,flags,-,flags (see graphic below), +"",8 + 32*N,U4,2^-2,freq,Hz,Nominal frequency of source, +"",12 + 32*N,I4,-,phaseOffset,ps,"Intended phase offset of the oscillator relative to the leading edge of the time pulse", +"",16 + 32*N,U4,2^-8,withTemp,ppb,"Oscillator stability limit over operating temperature range (must be > 0)", +"",20 + 32*N,U4,2^-8,withAge,"ppb/yea r",Oscillator stability with age (must be > 0), +"",24 + 32*N,U2,-,timeToTemp,s,"The minimum time that it could take for a temperature variation to move the oscillator frequency by 'withTemp' (must be > 0)", +"",26 + 32*N,U1[2],-,reserved3,-,Reserved, +"",28 + 32*N,I4,2^-16,gainVco,"ppb/ra w LSB","Oscillator control gain/slope; change of frequency per unit change in raw control change", +"",32 + 32*N,U1,2^-8,"gainUncertain ty",-,"Relative uncertainty (1 standard deviation) of oscillator control gain/slope", +"",33 + 32*N,U1[3],-,reserved4,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-37.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-37.csv new file mode 100755 index 00000000..1d5793aa --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-37.csv @@ -0,0 +1,2 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-38.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-38.csv new file mode 100755 index 00000000..d0ecd1ae --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-38.csv @@ -0,0 +1,13 @@ +Message,CFG-DYNSEED,,,,, +Description,Programming the dynamic seed for the host interface signature,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +Type,Set,,,,, +Comment,"The message can be used to program the dynamic seed for the host interface signature. If successfully configured, the message will answer with ACK, otherwise with NAK. Before the first programming, it is assumed that the dynamic seed is all '0'.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x85,12,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x01 for this version), +1,U1[3],-,reserved1,-,Reserved, +4,U4,-,seedHi,-,high word of dynamic seed, +8,U4,-,seedLo,-,low word of dynamic seed, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-39.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-39.csv new file mode 100755 index 00000000..e596519a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-39.csv @@ -0,0 +1,21 @@ +"",Message,CFG-ESRC,,,,, +"",Description,External synchronization source configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & Frequency Sync products)",,,,, +"",Type,Get/Set,,,,, +"",Comment,"External time or frequency source configuration. The stability of time and frequency sources is described using different fields, see sourceType field documentation.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x60,4 + 36*numSources,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0 for this version), +"",1,U1,-,numSources,-,"Number of sources (affects length of this message)", +"",2,U1[2],-,reserved1,-,Reserved, +"",Start of repeated block (numSources times),,,,,, +"",4 + 36*N,U1,-,extInt,-,"EXTINT index of this source (0 for EXTINT0 and 1 for EXTINT1)", +"",5 + 36*N,U1,-,sourceType,-,"Source type: 0: none 1: frequency source; use withTemp, withAge, timeToTemp and maxDevLifeTime to describe the stability of the source 2: time source; use offset, offsetUncertainty and jitter fields to describe the stability of the source 3: feedback from external oscillator; stability data is taken from the external oscillator's configuration", +"",6 + 36*N,X2,-,flags,-,Flags (see graphic below), +"",8 + 36*N,U4,2^-2,freq,Hz,Nominal frequency of source, +"",12 + 36*N,U1[4],-,reserved2,-,Reserved, +"",16 + 36*N,U4,2^-8,withTemp,ppb,"Oscillator stability limit over operating temperature range (must be > 0) Only used if sourceType is 1.", +"",20 + 36*N,U4,2^-8,withAge,"ppb/yea r","Oscillator stability with age (must be > 0) Only used if sourceType is 1.", +"",24 + 36*N,U2,-,timeToTemp,s,"The minimum time that it could take for a temperature variation to move the oscillator frequency by 'withTemp' (must be > 0) Only used if sourceType is 1.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-4.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-4.csv new file mode 100755 index 00000000..8ca4dc87 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-4.csv @@ -0,0 +1,38 @@ +Page,Mnemonic,Cls/ID,Length,Type,Description +"",UBX Class ACK,Ack/Nak Messages,,, +14,ACK-ACK,0x05 0x01,2,Output,Message Acknowledged +14,ACK-NAK,0x05 0x00,2,Output,Message Not-Acknowledged +"",UBX Class AID,AssistNow Aiding Messages,,, +14,AID-ALM,0x0B 0x30,0,Poll Request,Poll GPS Aiding Almanac Data +14,AID-ALM,0x0B 0x30,1,Poll Request,Poll GPS Aiding Almanac Data for a SV +14,AID-ALM,0x0B 0x30,(8) or (40),Input/Output,GPS Aiding Almanac Input/Output Message +14,AID-AOP,0x0B 0x33,0,Poll Request,"Poll AssistNow Autonomous data, all satellites" +14,AID-AOP,0x0B 0x33,1,Poll Request,"Poll AssistNow Autonomous data, one GPS..." +14,AID-AOP,0x0B 0x33,68,Input/Output,AssistNow Autonomous data +14,AID-EPH,0x0B 0x31,0,Poll Request,Poll GPS Aiding Ephemeris Data +15,AID-EPH,0x0B 0x31,1,Poll Request,Poll GPS Aiding Ephemeris Data for a SV +15,AID-EPH,0x0B 0x31,(8) or (104),Input/Output,GPS Aiding Ephemeris Input/Output Message +15,AID-HUI,0x0B 0x02,0,Poll Request,"Poll GPS Health, UTC, ionosphere parameters" +15,AID-HUI,0x0B 0x02,72,Input/Output,"GPS Health, UTC and ionosphere parameters" +15,AID-INI,0x0B 0x01,0,Poll Request,Poll GPS Initial Aiding Data +15,AID-INI,0x0B 0x01,48,Input/Output,"Aiding position, time, frequency, clock drift" +"",UBX Class CFG,Configuration Input Messages,,, +15,CFG-ANT,0x06 0x13,4,Get/Set,Antenna Control Settings +15,CFG-BATCH,0x06 0x93,8,Get/Set,Get/Set data batching configuration +15,CFG-CFG,0x06 0x09,(12) or (13),Command,"Clear, Save and Load configurations" +16,CFG-DAT,0x06 0x06,44,Set,Set User-defined Datum. +16,CFG-DAT,0x06 0x06,52,Get,The currently defined Datum +16,CFG-DGNSS,0x06 0x70,4,Get/Set,DGNSS configuration +16,CFG-DOSC,0x06 0x61,4 + 32*numOsc,Get/Set,Disciplined oscillator configuration +16,CFG-DYNSEED,0x06 0x85,12,Set,Programming the dynamic seed for the host... +16,CFG-ESRC,0x06 0x60,4 + 36*numSo..,Get/Set,External synchronization source configuration +16,CFG-FIXSEED,0x06 0x84,12 + 2*length,Set,Programming the fixed seed for host... +16,CFG-GEOFENCE,0x06 0x69,8 + 12*numFe..,Get/Set,Geofencing configuration +16,CFG-GNSS,0x06 0x3E,4 + 8*numCo...,Get/Set,GNSS system configuration +16,CFG-HNR,0x06 0x5C,4,Get/Set,High Navigation Rate Settings +17,CFG-INF,0x06 0x02,1,Poll Request,Poll configuration for one protocol +17,CFG-INF,0x06 0x02,0 + 10*N,Get/Set,Information message configuration +17,CFG-ITFM,0x06 0x39,8,Get/Set,Jamming/Interference Monitor configuration +17,CFG-LOGFILTER,0x06 0x47,12,Get/Set,Data Logger Configuration +17,CFG-MSG,0x06 0x01,2,Poll Request,Poll a message configuration +17,CFG-MSG,0x06 0x01,8,Get/Set,Set Message Rate(s) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-40.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-40.csv new file mode 100755 index 00000000..24d7bd08 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-40.csv @@ -0,0 +1,6 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +26 + 36*N,U2,-,"maxDevLifeTim e",ppb,"Maximum frequency deviation during lifetime (must be > 0) Only used if sourceType is 1." +28 + 36*N,I4,-,offset,ns,"Phase offset of signal Only used if sourceType is 2." +32 + 36*N,U4,-,"offsetUncerta inty",ns,"Uncertainty of phase offset (one standard deviation) Only used if sourceType is 2." +36 + 36*N,U4,-,jitter,ns/s,"Phase jitter (must be > 0) Only used if sourceType is 2." +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-41.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-41.csv new file mode 100755 index 00000000..112113c2 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-41.csv @@ -0,0 +1,7 @@ +Message,CFG-FIXSEED,,,,, +Description,Programming the fixed seed for host interface signature,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +Type,Set,,,,, +Comment,"The message can be used to program the fixed seed for the host interface signature. Moreover it will configure the set of messages that will be signed (min. 1, max. 10). If the class ID of the message is 0 the configuration is ignored for that message. If successfully configured, the message will answer with ACK, otherwise with NAK. See the configuring the fixed seed and register messages description for feature details.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +0xB5 0x62,0x06,0x84,12 + 2*length,see below,CK_A CK_B, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-42.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-42.csv new file mode 100755 index 00000000..c8d8df5d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-42.csv @@ -0,0 +1,11 @@ +"",Payload Contents:,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",0,U1,-,version,-,Message version (0x02 for this version) +"",1,U1,-,length,-,"Number of registered messages (min. 1, max. 10)" +"",2,U1[2],-,reserved1,-,Reserved +"",4,U4,-,seedHi,-,high word of fixed seed +"",8,U4,-,seedLo,-,low word of fixed seed +"",Start of repeated block (length times),,,,, +"",12 + 2*N,U1,-,classId,-,Class ID on the message +"",13 + 2*N,U1,-,msgId,-,Message ID on the message +"",End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-43.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-43.csv new file mode 100755 index 00000000..b552d40d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-43.csv @@ -0,0 +1,13 @@ +"",Message,CFG-GEOFENCE,,,,, +"",Description,Geofencing configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"Gets or sets the geofencing configuration See the Geofencing description for feature details. If the receiver is sent a valid new configuration, it will respond with a UBX-ACK-ACK message and immediately change to the new configuration. Otherwise the receiver will reject the request, by issuing a UBX-ACK-NAK and continuing operation with the previous configuration. Note that the acknowledge message does not indicate whether the PIO configuration has been successfully applied (pin assigned), it only indicates the successful configuration of the feature. The configured PIO must be previously unoccupied for successful assignment.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x69,8 + 12*numFences,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (=0x00 for this version), +"",1,U1,-,numFences,-,"Number of geofences contained in this message. Note that the receiver can only store a limited number of geofences (currently 4).", +"",2,U1,-,confLvl,-,"Required confidence level for state evaluation. This value times the position's standard deviation (sigma) defines the confidence band. 0=no confidence required, 1=68%, 2=95%, 3=99.7% etc.", +"",3,U1[1],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-44.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-44.csv new file mode 100755 index 00000000..a10730e2 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-44.csv @@ -0,0 +1,10 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",4,U1,-,pioEnabled,-,"1 = Enable PIO combined fence state output, 0 = disable" +"",5,U1,-,pinPolarity,-,"PIO pin polarity. 0 = Low means inside, 1 = Low means outside. Unknown state is always high." +"",6,U1,-,pin,-,PIO pin number +"",7,U1[1],-,reserved2,-,Reserved +"",Start of repeated block (numFences times),,,,, +"",8 + 12*N,I4,1e-7,lat,deg,Latitude of the geofence circle center +"",12 + 12*N,I4,1e-7,lon,deg,Longitude of the geofence circle center +"",16 + 12*N,U4,1e-2,radius,m,Radius of the geofence circle +"",End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-45.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-45.csv new file mode 100755 index 00000000..c271697a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-45.csv @@ -0,0 +1,6 @@ +"",Message,CFG-GNSS,,, +"",Description,GNSS system configuration,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,, +"",Type,Get/Set,,, +"",Comment,"Gets or sets the GNSS system channel sharing configuration. If the receiver is sent a valid new configuration, it will respond with a UBX-ACK-ACK message and immediately change to the new configuration. Otherwise the receiver will reject the request, by issuing a UBX-ACK-NAK and continuing operation with the previous configuration. Configuration requirements: •It is necessary for at least one major GNSS to be enabled, after applying the new configuration to the current one. •It is also required that at least 4 tracking channels are available to each enabled major GNSS, i.e. maxTrkCh must have a minimum value of 4 for each enabled major GNSS. •The number of tracking channels in use must not exceed the number of tracking channels available in hardware, and the sum of all reserved tracking channels needs to be less than or equal to the number of tracking channels in use. Notes: •To avoid cross-correlation issues, it is recommended that GPS and QZSS are always both enabled or both disabled. •Polling this message returns the configuration of all supported GNSS, whether enabled or not; it may also include GNSS unsupported by the particular product, but in such cases the enable flag will always be unset. •See section GNSS Configuration for a discussion of the use of this message and section Satellite Numbering for a description of the GNSS IDs available. •Configuration specific to the GNSS system can be done via other messages (e.g. UBX-CFG-SBAS).",,, +Header,Class,ID,Length (Bytes),Payload,Checksum diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-46.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-46.csv new file mode 100755 index 00000000..12f867e9 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-46.csv @@ -0,0 +1,14 @@ +Message Structure,0xB5 0x62,0x06,0x3E,4 + 8*numConfigBlocks,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,msgVer,-,Message version (=0 for this version), +1,U1,-,numTrkChHw,-,"Number of tracking channels available in hardware (read only)", +2,U1,-,numTrkChUse,-,"(Read only in protocol versions greater than 23) Number of tracking channels to use. Must be > 0, <= numTrkChHw. If 0xFF, then number of tracking channels to use will be set to numTrkChHw.", +3,U1,-,"numConfigBloc ks",-,Number of configuration blocks following, +Start of repeated block (numConfigBlocks times),,,,,, +4 + 8*N,U1,-,gnssId,-,System identifier (see Satellite Numbering), +5 + 8*N,U1,-,resTrkCh,-,"(Read only in protocol versions greater than 23) Number of reserved (minimum) tracking channels for this system.", +6 + 8*N,U1,-,maxTrkCh,-,"(Read only in protocol versions greater than 23) Maximum number of tracking channels used for this system. Must be > 0, >= resTrkChn, <= numTrkChUse and <= maximum number of tracking channels supported for this system.", +7 + 8*N,U1,-,reserved1,-,Reserved, +8 + 8*N,X4,-,flags,-,"bitfield of flags. At least one signal must be configured in every enabled system. (see graphic below)", +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-47.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-47.csv new file mode 100755 index 00000000..8e24e8cf --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-47.csv @@ -0,0 +1,11 @@ +"",Message,CFG-HNR,,,,, +"",Description,High Navigation Rate Settings,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15.01 up to version 17 (only with ADR products) •u-blox 8 / u-blox M8 from protocol version 19 up to version 23.01 (only with ADR or UDR products)",,,,, +"",Type,Get/Set,,,,, +"",Comment,"The u-blox receivers support high rates of navigation update up to 30 Hz. The navigation solution output (NAV-HNR) will not be aligned to the top of a second. •The update rate has a direct influence on the power consumption. The more fixes that are required, the more CPU power and communication resources are required. •For most applications a 1 Hz update rate would be sufficient.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x5C,4,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,highNavRate,Hz,Rate of navigation solution output, +"",1,U1[3],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-48.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-48.csv new file mode 100755 index 00000000..67aca181 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-48.csv @@ -0,0 +1,10 @@ +"",Message,CFG-INF,,,,, +"",Description,Poll configuration for one protocol,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x02,1,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,protocolID,-,"Protocol Identifier, identifying the output protocol for this Poll Request. The following are valid Protocol Identifiers: 0: UBX Protocol 1: NMEA Protocol 2-255: Reserved", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-49.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-49.csv new file mode 100755 index 00000000..72fed41d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-49.csv @@ -0,0 +1,11 @@ +"",Message,CFG-INF,,,,, +"",Description,Information message configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"The value of infMsgMask[x] below are that each bit represents one of the INF class messages (Bit 0 for ERROR, Bit 1 for WARNING and so on.). For a complete list, see the Message Class INF. Several configurations can be concatenated to one input message. In this case the payload length can be a multiple of the normal length. Output messages from the module contain only one configuration unit. Note that I/O Ports 1 and 2 correspond to serial ports 1 and 2. I/O port 0 is DDC. I/O port 3 is USB. I/O port 4 is SPI. I/O port 5 is reserved for future use.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x02,0 + 10*N,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",Start of repeated block (N times),,,,,, +"",N*10,U1,-,protocolID,-,"Protocol Identifier, identifying for which protocol the configuration is set/get. The following are valid Protocol Identifiers: 0: UBX Protocol 1: NMEA Protocol 2-255: Reserved", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-5.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-5.csv new file mode 100755 index 00000000..36c03234 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-5.csv @@ -0,0 +1,39 @@ +Page,Mnemonic,Cls/ID,Length,Type,Description +17,CFG-MSG,0x06 0x01,3,Get/Set,Set Message Rate +17,CFG-NAV5,0x06 0x24,36,Get/Set,Navigation Engine Settings +17,CFG-NAVX5,0x06 0x23,40,Get/Set,Navigation Engine Expert Settings +17,CFG-NAVX5,0x06 0x23,40,Get/Set,Navigation Engine Expert Settings +18,CFG-NAVX5,0x06 0x23,44,Get/Set,Navigation Engine Expert Settings +18,CFG-NMEA,0x06 0x17,4,Get/Set,NMEA protocol configuration (deprecated) +18,CFG-NMEA,0x06 0x17,12,Get/Set,NMEA protocol configuration V0 (deprecated) +18,CFG-NMEA,0x06 0x17,20,Get/Set,Extended NMEA protocol configuration V1 +19,CFG-ODO,0x06 0x1E,20,Get/Set,"Odometer, Low-speed COG Engine Settings" +19,CFG-PM2,0x06 0x3B,44,Get/Set,Extended Power Management configuration +19,CFG-PM2,0x06 0x3B,48,Get/Set,Extended Power Management configuration +19,CFG-PM2,0x06 0x3B,48,Get/Set,Extended Power Management configuration +19,CFG-PMS,0x06 0x86,8,Get/Set,Power Mode Setup +19,CFG-PRT,0x06 0x00,1,Poll Request,Polls the configuration for one I/O Port +19,CFG-PRT,0x06 0x00,20,Get/Set,Port Configuration for UART +20,CFG-PRT,0x06 0x00,20,Get/Set,Port Configuration for USB Port +20,CFG-PRT,0x06 0x00,20,Get/Set,Port Configuration for SPI Port +20,CFG-PRT,0x06 0x00,20,Get/Set,Port Configuration for DDC Port +20,CFG-PWR,0x06 0x57,8,Set,Put receiver in a defined power state. +21,CFG-RATE,0x06 0x08,6,Get/Set,Navigation/Measurement Rate Settings +21,CFG-RINV,0x06 0x34,1 + 1*N,Get/Set,Contents of Remote Inventory +21,CFG-RST,0x06 0x04,4,Command,Reset Receiver / Clear Backup Data Structures +21,CFG-RXM,0x06 0x11,2,Get/Set,RXM configuration +21,CFG-RXM,0x06 0x11,2,Get/Set,RXM configuration +21,CFG-SBAS,0x06 0x16,8,Get/Set,SBAS Configuration +21,CFG-SMGR,0x06 0x62,20,Get/Set,Synchronization manager configuration +21,CFG-TMODE2,0x06 0x3D,28,Get/Set,Time Mode Settings 2 +22,CFG-TMODE3,0x06 0x71,40,Get/Set,Time Mode Settings 3 +22,CFG-TP5,0x06 0x31,0,Poll Request,Poll Time Pulse Parameters for Time Pulse 0 +22,CFG-TP5,0x06 0x31,1,Poll Request,Poll Time Pulse Parameters +22,CFG-TP5,0x06 0x31,32,Get/Set,Time Pulse Parameters +22,CFG-TP5,0x06 0x31,32,Get/Set,Time Pulse Parameters +22,CFG-TXSLOT,0x06 0x53,16,Set,TX buffer time slots configuration +22,CFG-USB,0x06 0x1B,108,Get/Set,USB Configuration +"",UBX Class ESF,External Sensor Fusion Messages,,, +22,ESF-INS,0x10 0x15,36,Periodic/Polled,Vehicle dynamics information +22,ESF-MEAS,0x10 0x02,(8 + 4*N) or (1..,Input/Output,External Sensor Fusion Measurements +23,ESF-RAW,0x10 0x03,4 + 8*N,Output,Raw sensor measurements diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-50.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-50.csv new file mode 100755 index 00000000..9afc149d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-50.csv @@ -0,0 +1,4 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +1 + 10*N,U1[3],-,reserved1,-,Reserved +4 + 10*N,X1[6],-,infMsgMask,-,"A bit mask, saying which information messages are enabled on each I/O port (see graphic below )" +End of repeated block,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-51.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-51.csv new file mode 100755 index 00000000..febf8839 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-51.csv @@ -0,0 +1,11 @@ +Message,CFG-ITFM,,,,, +Description,Jamming/Interference Monitor configuration,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,Configuration of Jamming/Interference monitor.,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x39,8,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,X4,-,config,-,interference config word. (see graphic below), +4,X4,-,config2,-,"extra settings for jamming/interference monitor (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-52.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-52.csv new file mode 100755 index 00000000..36143fe0 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-52.csv @@ -0,0 +1,4 @@ +Message,CFG-LOGFILTER +Description,Data Logger Configuration +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01" +Type,Get/Set diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-53.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-53.csv new file mode 100755 index 00000000..e7715c7b --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-53.csv @@ -0,0 +1,11 @@ +"","It is supported to configure the data logger in the absence of a logging file. By doing so, once the logging file is created, the data logger configuration will take effect immediately and logging recording and filtering will activate according to the configuration.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x47,12,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,The version of this message. Set to 1, +1,X1,-,flags,-,Flags (see graphic below), +2,U2,-,minInterval,s,"Minimum time interval between logged positions (0 = not set). This is only applied in combination with the speed and/or position thresholds. If both minInterval and timeThreshold are set, minInterval must be less than or equal to timeThreshold.", +4,U2,-,timeThreshold,s,"If the time difference is greater than the threshold then the position is logged (0 = not set).", +6,U2,-,"speedThreshol d",m/s,"If the current speed is greater than the threshold then the position is logged (0 = not set). minInterval also applies", +8,U4,-,"positionThres hold",m,"If the 3D position difference is greater than the threshold then the position is logged (0 = not set). minInterval also applies", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-54.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-54.csv new file mode 100755 index 00000000..92f37592 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-54.csv @@ -0,0 +1,11 @@ +"",Message,CFG-MSG,,,,, +"",Description,Poll a message configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x01,2,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,msgClass,-,Message Class, +"",1,U1,-,msgID,-,Message Identifier, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-55.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-55.csv new file mode 100755 index 00000000..5a2cfe98 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-55.csv @@ -0,0 +1,12 @@ +"",Message,CFG-MSG,,,,, +"",Description,Set Message Rate(s),,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"Set/Get message rate configuration (s) to/from the receiver. See also section How to change between protocols. •Send rate is relative to the event a message is registered on. For example, if the rate of a navigation message is set to 2, the message is sent every second navigation solution. For configuring NMEA messages, the section NMEA Messages Overview describes Class and Identifier numbers used.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x01,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,msgClass,-,Message Class, +"",1,U1,-,msgID,-,Message Identifier, +"",2,U1[6],-,rate,-,Send rate on I/O Port (6 Ports), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-56.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-56.csv new file mode 100755 index 00000000..edf13115 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-56.csv @@ -0,0 +1,12 @@ +"",Message,CFG-MSG,,,,, +"",Description,Set Message Rate,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"Set message rate configuration for the current port. See also section How to change between protocols.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x01,3,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,msgClass,-,Message Class, +"",1,U1,-,msgID,-,Message Identifier, +"",2,U1,-,rate,-,Send rate on current Port, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-57.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-57.csv new file mode 100755 index 00000000..138627c3 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-57.csv @@ -0,0 +1,11 @@ +"",Message,CFG-NAV5,,,,, +"",Description,Navigation Engine Settings,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"See the Navigation Configuration Settings Description for a detailed description of how these settings affect receiver operation.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x24,36,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,X2,-,mask,-,"Parameters Bitmask. Only the masked parameters will be applied. (see graphic below)", +"",2,U1,-,dynModel,-,"Dynamic platform model: 0: portable 2: stationary 3: pedestrian 4: automotive 5: sea 6: airborne with <1g acceleration 7: airborne with <2g acceleration 8: airborne with <4g acceleration 9: wrist worn watch (not supported in protocol versions less than 18)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-58.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-58.csv new file mode 100755 index 00000000..1f261a5e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-58.csv @@ -0,0 +1,18 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",3,U1,-,fixMode,-,"Position Fixing Mode: 1: 2D only 2: 3D only 3: auto 2D/3D" +"",4,I4,0.01,fixedAlt,m,Fixed altitude (mean sea level) for 2D fix mode. +"",8,U4,0.0001,fixedAltVar,m^2,Fixed altitude variance for 2D mode. +"",12,I1,-,minElev,deg,"Minimum Elevation for a GNSS satellite to be used in NAV" +"",13,U1,-,drLimit,s,Reserved +"",14,U2,0.1,pDop,-,Position DOP Mask to use +"",16,U2,0.1,tDop,-,Time DOP Mask to use +"",18,U2,-,pAcc,m,Position Accuracy Mask +"",20,U2,-,tAcc,m,Time Accuracy Mask +"",22,U1,-,"staticHoldThr esh",cm/s,Static hold threshold +"",23,U1,-,dgnssTimeout,s,DGNSS timeout +"",24,U1,-,"cnoThreshNumS Vs",-,"Number of satellites required to have C/N0 above cnoThresh for a fix to be attempted" +"",25,U1,-,cnoThresh,dBHz,"C/N0 threshold for deciding whether to attempt a fix" +"",26,U1[2],-,reserved1,-,Reserved +"",28,U2,-,"staticHoldMax Dist",m,"Static hold distance threshold (before quitting static hold)" +"",30,U1,-,utcStandard,-,"UTC standard to be used: 0: Automatic; receiver selects based on GNSS configuration (see GNSS time bases). 3: UTC as operated by the U.S. Naval Observatory (USNO); derived from GPS time 6: UTC as operated by the former Soviet Union; derived from GLONASS time 7: UTC as operated by the National Time Service Center, China; derived from BeiDou time (not supported in protocol versions less than 16)." +"",31,U1[5],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-59.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-59.csv new file mode 100755 index 00000000..41723139 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-59.csv @@ -0,0 +1,15 @@ +Message,CFG-NAVX5,,,,, +Description,Navigation Engine Expert Settings,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 17",,,,, +Type,Get/Set,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x23,40,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U2,-,version,-,Message version (0 for this version), +2,X2,-,mask1,-,"First parameters bitmask. Only the flagged parameters will be applied, unused bits must be set to 0. (see graphic below)", +4,X4,-,mask2,-,"Second parameters bitmask. Only the flagged parameters will be applied, unused bits must be set to 0. (see graphic below)", +8,U1[2],-,reserved1,-,Reserved, +10,U1,-,minSVs,"#SVs",Minimum number of satellites for navigation, +11,U1,-,maxSVs,"#SVs",Maximum number of satellites for navigation, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-6.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-6.csv new file mode 100755 index 00000000..02d19150 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-6.csv @@ -0,0 +1,39 @@ +Page,Mnemonic,Cls/ID,Length,Type,Description +23,ESF-STATUS,0x10 0x10,16 + 4*numSen,Periodic/Polled,External Sensor Fusion (ESF) status information +"",UBX Class HNR,High Rate Navigation Results Messages,,, +23,HNR-PVT,0x28 0x00,72,Periodic/Polled,High Rate Output of PVT Solution +"",UBX Class INF,Information Messages,,, +23,INF-DEBUG,0x04 0x04,0 + 1*N,Output,ASCII output with debug contents +23,INF-ERROR,0x04 0x00,0 + 1*N,Output,ASCII output with error contents +23,INF-NOTICE,0x04 0x02,0 + 1*N,Output,ASCII output with informational contents +23,INF-TEST,0x04 0x03,0 + 1*N,Output,ASCII output with test contents +23,INF-WARNING,0x04 0x01,0 + 1*N,Output,ASCII output with warning contents +"",UBX Class LOG,Logging Messages,,, +24,LOG-BATCH,0x21 0x11,100,Polled,Batched data +24,LOG-CREATE,0x21 0x07,8,Command,Create Log File +24,LOG-ERASE,0x21 0x03,0,Command,Erase Logged Data +24,LOG-FINDTIME,0x21 0x0E,12,Input,Find index of a log entry based on a given time +24,LOG-FINDTIME,0x21 0x0E,8,Output,Response to FINDTIME request. +24,LOG-INFO,0x21 0x08,0,Poll Request,Poll for log information +24,LOG-INFO,0x21 0x08,48,Output,Log information +24,LOG-RETRIEVEBATCH,0x21 0x10,4,Command,Request batch data +24,LOG-RETRIEVEPOSE...,0x21 0x0f,32,Output,Odometer log entry +24,LOG-RETRIEVEPOS,0x21 0x0b,40,Output,Position fix log entry +25,LOG-RETRIEVESTRING,0x21 0x0d,16 + 1*byteC...,Output,Byte string log entry +25,LOG-RETRIEVE,0x21 0x09,12,Command,Request log data +25,LOG-STRING,0x21 0x04,0 + 1*N,Command,Store arbitrary string in on-board flash +"",UBX Class MGA,Multiple GNSS Assistance Messages,,, +25,MGA-ACK-DATA0,0x13 0x60,8,Output,Multiple GNSS Acknowledge message +25,MGA-ANO,0x13 0x20,76,Input,Multiple GNSS AssistNow Offline Assistance +25,MGA-BDS-EPH,0x13 0x03,88,Input,BDS Ephemeris Assistance +25,MGA-BDS-ALM,0x13 0x03,40,Input,BDS Almanac Assistance +25,MGA-BDS-HEALTH,0x13 0x03,68,Input,BDS Health Assistance +25,MGA-BDS-UTC,0x13 0x03,20,Input,BDS UTC Assistance +25,MGA-BDS-IONO,0x13 0x03,16,Input,BDS Ionospheric Assistance +25,MGA-DBD,0x13 0x80,0,Poll Request,Poll the Navigation Database +25,MGA-DBD,0x13 0x80,12 + 1*N,Input/Output,Navigation Database Dump Entry +25,MGA-FLASH-DATA,0x13 0x21,6 + 1*size,Input,Transfer MGA-ANO data block to flash +25,MGA-FLASH-STOP,0x13 0x21,2,Input,Finish flashing MGA-ANO data +26,MGA-FLASH-ACK,0x13 0x21,6,Output,Acknowledge last FLASH-DATA or -STOP +26,MGA-GAL-EPH,0x13 0x02,76,Input,Galileo Ephemeris Assistance +26,MGA-GAL-ALM,0x13 0x02,32,Input,Galileo Almanac Assistance diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-60.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-60.csv new file mode 100755 index 00000000..762be11e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-60.csv @@ -0,0 +1,15 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +12,U1,-,minCNO,dBHz,Minimum satellite signal level for navigation +13,U1,-,reserved2,-,Reserved +14,U1,-,iniFix3D,-,1 = initial fix must be 3D +15,U1[2],-,reserved3,-,Reserved +17,U1,-,ackAiding,-,"1 = issue acknowledgements for assistance message input" +18,U2,-,wknRollover,-,"GPS week rollover number; GPS week numbers will be set correctly from this week up to 1024 weeks after this week. Setting this to 0 reverts to firmware default." +20,U1[6],-,reserved4,-,Reserved +26,U1,-,usePPP,-,"1 = use Precise Point Positioning (only available with the PPP product variant)" +27,U1,-,aopCfg,-,"AssistNow Autonomous configuration (see graphic below)" +28,U1[2],-,reserved5,-,Reserved +30,U2,-,aopOrbMaxErr,m,"Maximum acceptable (modeled) AssistNow Autonomous orbit error (valid range = 5..1000, or 0 = reset to firmware default)" +32,U1[4],-,reserved6,-,Reserved +36,U1[3],-,reserved7,-,Reserved +39,U1,-,useAdr,-,"Only supported on certain products Enable/disable ADR sensor fusion (if 0: sensor fusion is disabled - if 1: sensor fusion is enabled)." diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-61.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-61.csv new file mode 100755 index 00000000..efe1ae6a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-61.csv @@ -0,0 +1,11 @@ +Message,CFG-NAVX5,,,,, +Description,Navigation Engine Expert Settings,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x23,40,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U2,-,version,-,Message version (2 for this version), +2,X2,-,mask1,-,"First parameters bitmask. Only the flagged parameters will be applied, unused bits must be set to 0. (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-62.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-62.csv new file mode 100755 index 00000000..8409c082 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-62.csv @@ -0,0 +1,22 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",4,X4,-,mask2,-,"Second parameters bitmask. Only the flagged parameters will be applied, unused bits must be set to 0. (see graphic below)" +"",8,U1[2],-,reserved1,-,Reserved +"",10,U1,-,minSVs,"#SVs",Minimum number of satellites for navigation +"",11,U1,-,maxSVs,"#SVs",Maximum number of satellites for navigation +"",12,U1,-,minCNO,dBHz,Minimum satellite signal level for navigation +"",13,U1,-,reserved2,-,Reserved +"",14,U1,-,iniFix3D,-,1 = initial fix must be 3D +"",15,U1[2],-,reserved3,-,Reserved +"",17,U1,-,ackAiding,-,"1 = issue acknowledgements for assistance message input" +"",18,U2,-,wknRollover,-,"GPS week rollover number; GPS week numbers will be set correctly from this week up to 1024 weeks after this week. Setting this to 0 reverts to firmware default." +"",20,U1,-,"sigAttenCompM ode",dBHz,"Only supported on certain products Permanently attenuated signal compensation (0 = disabled, 255 = automatic, 1..63 = maximum expected C/N0 value)" +"",21,U1,-,reserved4,-,Reserved +"",22,U1[2],-,reserved5,-,Reserved +"",24,U1[2],-,reserved6,-,Reserved +"",26,U1,-,usePPP,-,"1 = use Precise Point Positioning (only available with the PPP product variant)" +"",27,U1,-,aopCfg,-,"AssistNow Autonomous configuration (see graphic below)" +"",28,U1[2],-,reserved7,-,Reserved +"",30,U2,-,aopOrbMaxErr,m,"Maximum acceptable (modeled) AssistNow Autonomous orbit error (valid range = 5..1000, or 0 = reset to firmware default)" +"",32,U1[4],-,reserved8,-,Reserved +"",36,U1[3],-,reserved9,-,Reserved +"",39,U1,-,useAdr,-,"Only supported on certain products Enable/disable ADR/UDR sensor fusion (if 0: sensor fusion is disabled - if 1: sensor fusion is enabled)." diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-63.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-63.csv new file mode 100755 index 00000000..775c9fb9 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-63.csv @@ -0,0 +1,27 @@ +"",Message,CFG-NAVX5,,,,, +"",Description,Navigation Engine Expert Settings,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 19.1",,,,, +"",Type,Get/Set,,,,, +"",Comment,-,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x23,44,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U2,-,version,-,Message version (3 for this version), +"",2,X2,-,mask1,-,"First parameters bitmask. Only the flagged parameters will be applied, unused bits must be set to 0. (see graphic below)", +"",4,X4,-,mask2,-,"Second parameters bitmask. Only the flagged parameters will be applied, unused bits must be set to 0. (see graphic below)", +"",8,U1[2],-,reserved1,-,Reserved, +"",10,U1,-,minSVs,"#SVs",Minimum number of satellites for navigation, +"",11,U1,-,maxSVs,"#SVs",Maximum number of satellites for navigation, +"",12,U1,-,minCNO,dBHz,Minimum satellite signal level for navigation, +"",13,U1,-,reserved2,-,Reserved, +"",14,U1,-,iniFix3D,-,1 = initial fix must be 3D, +"",15,U1[2],-,reserved3,-,Reserved, +"",17,U1,-,ackAiding,-,"1 = issue acknowledgements for assistance message input", +"",18,U2,-,wknRollover,-,"GPS week rollover number; GPS week numbers will be set correctly from this week up to 1024 weeks after this week. Setting this to 0 reverts to firmware default.", +"",20,U1,-,"sigAttenCompM ode",dBHz,"Only supported on certain products Permanently attenuated signal compensation (0 = disabled, 255 = automatic, 1..63 = maximum expected C/N0 value)", +"",21,U1,-,reserved4,-,Reserved, +"",22,U1[2],-,reserved5,-,Reserved, +"",24,U1[2],-,reserved6,-,Reserved, +"",26,U1,-,usePPP,-,"1 = use Precise Point Positioning (only available with the PPP product variant)", +"",27,U1,-,aopCfg,-,"AssistNow Autonomous configuration (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-64.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-64.csv new file mode 100755 index 00000000..f76a9a00 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-64.csv @@ -0,0 +1,8 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +28,U1[2],-,reserved7,-,Reserved +30,U2,-,aopOrbMaxErr,m,"Maximum acceptable (modeled) AssistNow Autonomous orbit error (valid range = 5..1000, or 0 = reset to firmware default)" +32,U1[4],-,reserved8,-,Reserved +36,U1[3],-,reserved9,-,Reserved +39,U1,-,useAdr,-,"Only supported on certain products Enable/disable ADR/UDR sensor fusion (if 0: sensor fusion is disabled - if 1: sensor fusion is enabled)." +40,U1[2],-,reserved10,-,Reserved +42,U1[2],-,reserved11,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-65.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-65.csv new file mode 100755 index 00000000..1e229470 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-65.csv @@ -0,0 +1,13 @@ +Message,CFG-NMEA,,,,, +Description,NMEA protocol configuration (deprecated),,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,"This message version is provided for backwards compatibility only. Use the last version listed below instead (its fields are backwards compatible with this version, it just has extra fields defined). Set/Get the NMEA protocol configuration. See section NMEA Protocol Configuration for a detailed description of the configuration effects on NMEA output.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x17,4,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,X1,-,filter,-,filter flags (see graphic below), +1,U1,-,nmeaVersion,-,"0x23: NMEA version 2.3 0x21: NMEA version 2.1", +2,U1,-,numSV,-,"Maximum Number of SVs to report per TalkerId. 0: unlimited 8: 8 SVs 12: 12 SVs 16: 16 SVs", +3,X1,-,flags,-,flags (see graphic below), diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-66.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-66.csv new file mode 100755 index 00000000..f3c8eafa --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-66.csv @@ -0,0 +1,8 @@ +Message,CFG-NMEA,,,,, +Description,NMEA protocol configuration V0 (deprecated),,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,"This message version is provided for backwards compatibility only. Use the last version listed below instead (its fields are backwards compatible with this version, it just has extra fields defined). Set/Get the NMEA protocol configuration. See section NMEA Protocol Configuration for a detailed description of the configuration effects on NMEA output.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +0xB5 0x62,0x06,0x17,12,see below,CK_A CK_B, +Payload Contents:,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-67.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-67.csv new file mode 100755 index 00000000..e362e80a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-67.csv @@ -0,0 +1,11 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",0,X1,-,filter,-,filter flags (see graphic below) +"",1,U1,-,nmeaVersion,-,"0x23: NMEA version 2.3 0x21: NMEA version 2.1" +"",2,U1,-,numSV,-,"Maximum Number of SVs to report per TalkerId. 0: unlimited 8: 8 SVs 12: 12 SVs 16: 16 SVs" +"",3,X1,-,flags,-,flags (see graphic below) +"",4,X4,-,gnssToFilter,-,"Filters out satellites based on their GNSS. If a bitfield is enabled, the corresponding satellites will be not output. (see graphic below)" +"",8,U1,-,svNumbering,-,"Configures the display of satellites that do not have an NMEA-defined value. Note: this does not apply to satellites with an unknown ID. 0: Strict - Satellites are not output 1: Extended - Use proprietary numbering (see Satellite numbering)" +"",9,U1,-,mainTalkerId,-,"By default the main Talker ID (i.e. the Talker ID used for all messages other than GSV) is determined by the GNSS assignment of the receiver's channels (see UBX-CFG-GNSS). This field enables the main Talker ID to be overridden. 0: Main Talker ID is not overridden 1: Set main Talker ID to 'GP' 2: Set main Talker ID to 'GL' 3: Set main Talker ID to 'GN' 4: Set main Talker ID to 'GA' 5: Set main Talker ID to 'GB'" +"",10,U1,-,gsvTalkerId,-,"By default the Talker ID for GSV messages is GNSS specific (as defined by NMEA). This field enables the GSV Talker ID to be overridden. 0: Use GNSS specific Talker ID (as defined by NMEA) 1: Use the main Talker ID" +"",11,U1,-,version,-,Message version (set to 0 for this version) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-68.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-68.csv new file mode 100755 index 00000000..9099c538 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-68.csv @@ -0,0 +1,15 @@ +"",Message,CFG-NMEA,,,,, +"",Description,Extended NMEA protocol configuration V1,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"Set/Get the NMEA protocol configuration. See section NMEA Protocol Configuration for a detailed description of the configuration effects on NMEA output.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x17,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,X1,-,filter,-,filter flags (see graphic below), +"",1,U1,-,nmeaVersion,-,"0x41: NMEA version 4.1 0x40: NMEA version 4.0 0x23: NMEA version 2.3 0x21: NMEA version 2.1", +"",2,U1,-,numSV,-,"Maximum Number of SVs to report per TalkerId. 0: unlimited 8: 8 SVs 12: 12 SVs 16: 16 SVs", +"",3,X1,-,flags,-,flags (see graphic below), +"",4,X4,-,gnssToFilter,-,"Filters out satellites based on their GNSS. If a bitfield is enabled, the corresponding satellites will be not output. (see graphic below)", +"",8,U1,-,svNumbering,-,"Configures the display of satellites that do not have an NMEA-defined value. Note: this does not apply to satellites with an unknown ID. 0: Strict - Satellites are not output 1: Extended - Use proprietary numbering (see Satellite numbering)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-69.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-69.csv new file mode 100755 index 00000000..775f996a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-69.csv @@ -0,0 +1,6 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +9,U1,-,mainTalkerId,-,"By default the main Talker ID (i.e. the Talker ID used for all messages other than GSV) is determined by the GNSS assignment of the receiver's channels (see UBX-CFG-GNSS). This field enables the main Talker ID to be overridden. 0: Main Talker ID is not overridden 1: Set main Talker ID to 'GP' 2: Set main Talker ID to 'GL' 3: Set main Talker ID to 'GN' 4: Set main Talker ID to 'GA' 5: Set main Talker ID to 'GB'" +10,U1,-,gsvTalkerId,-,"By default the Talker ID for GSV messages is GNSS specific (as defined by NMEA). This field enables the GSV Talker ID to be overridden. 0: Use GNSS specific Talker ID (as defined by NMEA) 1: Use the main Talker ID" +11,U1,-,version,-,Message version (set to 1 for this version) +12,CH[2],-,bdsTalkerId,-,"Sets the two characters that should be used for the BeiDou Talker ID If these are set to zero, the default BeiDou TalkerId will be used" +14,U1[6],-,reserved1,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-7.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-7.csv new file mode 100755 index 00000000..bfcf4967 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-7.csv @@ -0,0 +1,39 @@ +Page,Mnemonic,Cls/ID,Length,Type,Description +26,MGA-GAL-TIMEOFF...,0x13 0x02,12,Input,Galileo GPS time offset assistance +26,MGA-GAL-UTC,0x13 0x02,20,Input,Galileo UTC Assistance +26,MGA-GLO-EPH,0x13 0x06,48,Input,GLONASS Ephemeris Assistance +26,MGA-GLO-ALM,0x13 0x06,36,Input,GLONASS Almanac Assistance +26,MGA-GLO-TIMEOFF...,0x13 0x06,20,Input,GLONASS Auxiliary Time Offset Assistance +26,MGA-GPS-EPH,0x13 0x00,68,Input,GPS Ephemeris Assistance +26,MGA-GPS-ALM,0x13 0x00,36,Input,GPS Almanac Assistance +27,MGA-GPS-HEALTH,0x13 0x00,40,Input,GPS Health Assistance +27,MGA-GPS-UTC,0x13 0x00,20,Input,GPS UTC Assistance +27,MGA-GPS-IONO,0x13 0x00,16,Input,GPS Ionosphere Assistance +27,MGA-INI-POS_XYZ,0x13 0x40,20,Input,Initial Position Assistance +27,MGA-INI-POS_LLH,0x13 0x40,20,Input,Initial Position Assistance +27,MGA-INI-TIME_UTC,0x13 0x40,24,Input,Initial Time Assistance +27,MGA-INI-TIME_GNSS,0x13 0x40,24,Input,Initial Time Assistance +27,MGA-INI-CLKD,0x13 0x40,12,Input,Initial Clock Drift Assistance +27,MGA-INI-FREQ,0x13 0x40,12,Input,Initial Frequency Assistance +27,MGA-INI-EOP,0x13 0x40,72,Input,Earth Orientation Parameters Assistance +27,MGA-QZSS-EPH,0x13 0x05,68,Input,QZSS Ephemeris Assistance +27,MGA-QZSS-ALM,0x13 0x05,36,Input,QZSS Almanac Assistance +28,MGA-QZSS-HEALTH,0x13 0x05,12,Input,QZSS Health Assistance +"",UBX Class MON,Monitoring Messages,,, +28,MON-BATCH,0x0A 0x32,12,Polled,Data batching buffer status +28,MON-GNSS,0x0A 0x28,8,Polled,Information message major GNSS selection +28,MON-HW2,0x0A 0x0B,28,Periodic/Polled,Extended Hardware Status +28,MON-HW,0x0A 0x09,60,Periodic/Polled,Hardware Status +28,MON-IO,0x0A 0x02,0 + 20*N,Periodic/Polled,I/O Subsystem Status +28,MON-MSGPP,0x0A 0x06,120,Periodic/Polled,Message Parse and Process Status +28,MON-PATCH,0x0A 0x27,0,Poll Request,Poll Request for installed patches +28,MON-PATCH,0x0A 0x27,4 + 16*nEntries,Polled,Output information about installed patches. +28,MON-RXBUF,0x0A 0x07,24,Periodic/Polled,Receiver Buffer Status +28,MON-RXR,0x0A 0x21,1,Output,Receiver Status Information +29,MON-SMGR,0x0A 0x2E,16,Periodic/Polled,Synchronization Manager Status +29,MON-TXBUF,0x0A 0x08,28,Periodic/Polled,Transmitter Buffer Status +29,MON-VER,0x0A 0x04,0,Poll Request,Poll Receiver/Software Version +29,MON-VER,0x0A 0x04,40 + 30*N,Polled,Receiver/Software Version +"",UBX Class NAV,Navigation Results Messages,,, +29,NAV-AOPSTATUS,0x01 0x60,16,Periodic/Polled,AssistNow Autonomous Status +29,NAV-ATT,0x01 0x05,32,Periodic/Polled,Attitude Solution diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-70.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-70.csv new file mode 100755 index 00000000..1d4b897c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-70.csv @@ -0,0 +1,20 @@ +Message,CFG-ODO,,,,, +Description,"Odometer, Low-speed COG Engine Settings",,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,"This feature is not supported for the FTS product variant. -",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x1E,20,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0 for this version), +1,U1[3],-,reserved1,-,Reserved, +4,U1,-,flags,-,"Odometer/Low-speed COG filter flags (see graphic below)", +5,X1,-,odoCfg,-,Odometer filter settings (see graphic below), +6,U1[6],-,reserved2,-,Reserved, +12,U1,1e-1,cogMaxSpeed,m/s,"Speed below which course-over-ground (COG) is computed with the low-speed COG filter", +13,U1,-,cogMaxPosAcc,m,"Maximum acceptable position accuracy for computing COG with the low-speed COG filter", +14,U1[2],-,reserved3,-,Reserved, +16,U1,-,velLpGain,-,"Velocity low-pass filter level, range 0..255", +17,U1,-,cogLpGain,-,"COG low-pass filter level (at speed < 8 m/s), range 0..255", +18,U1[2],-,reserved4,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-71.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-71.csv new file mode 100755 index 00000000..30d6e3b0 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-71.csv @@ -0,0 +1,16 @@ +Message,CFG-PM2,,,,, +Description,Extended Power Management configuration,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01 This message is marked as deprecated in protocol version 18 and is likely to be removed in any future products. u-blox strongly advises to use Version 2 instead.",,,,, +Type,Get/Set,,,,, +Comment,"This feature is not supported for either the ADR or FTS products. -",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x3B,44,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0x01 for this version), +1,U1,-,reserved1,-,Reserved, +2,U1,-,"maxStartupSta teDur",s,"Maximum time to spend in Acquisition state. If 0: bound disabled (see maxStartupStateDur). (not supported in protocol versions less than 17)", +3,U1,-,reserved2,-,Reserved, +4,X4,-,flags,-,PSM configuration flags (see graphic below), +8,U4,-,updatePeriod,ms,"Position update period. If set to 0, the receiver will never retry a fix and it will wait for external events", +12,U4,-,searchPeriod,ms,"Acquisition retry period if previously failed. If set to 0, the receiver will never retry a startup", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-72.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-72.csv new file mode 100755 index 00000000..3c5b3568 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-72.csv @@ -0,0 +1,5 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +16,U4,-,gridOffset,ms,Grid offset relative to GPS start of week +20,U2,-,onTime,s,Time to stay in Tracking state +22,U2,-,minAcqTime,s,minimal search time +24,U1[20],-,reserved3,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-73.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-73.csv new file mode 100755 index 00000000..b6d4f171 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-73.csv @@ -0,0 +1,21 @@ +"",Message,CFG-PM2,,,,, +"",Description,Extended Power Management configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 22",,,,, +"",Type,Get/Set,,,,, +"",Comment,"This feature is not supported for either the ADR or FTS products. -",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x3B,48,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,"Message version (0x02 for this version) Note: the message version number is the same as for protocol version 23.01; please select correct message version based on the protocol version supported by your firmware.", +"",1,U1,-,reserved1,-,Reserved, +"",2,U1,-,"maxStartupSta teDur",s,"Maximum time to spend in Acquisition state. If 0: bound disabled (see maxStartupStateDur). (not supported in protocol versions less than 17)", +"",3,U1,-,reserved2,-,Reserved, +"",4,X4,-,flags,-,PSM configuration flags (see graphic below), +"",8,U4,-,updatePeriod,ms,"Position update period. If set to 0, the receiver will never retry a fix and it will wait for external events", +"",12,U4,-,searchPeriod,ms,"Acquisition retry period if previously failed. If set to 0, the receiver will never retry a startup", +"",16,U4,-,gridOffset,ms,Grid offset relative to GPS start of week, +"",20,U2,-,onTime,s,Time to stay in Tracking state, +"",22,U2,-,minAcqTime,s,minimal search time, +"",24,U1[20],-,reserved3,-,Reserved, +"",44,U4,-,"extintInactiv ityMs",ms,inactivity time out on EXTINT pint if enabled, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-74.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-74.csv new file mode 100755 index 00000000..74ad5ffa --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-74.csv @@ -0,0 +1,21 @@ +"",Message,CFG-PM2,,,,, +"",Description,Extended Power Management configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"This feature is not supported for either the ADR or FTS products. -",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x3B,48,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,"Message version (0x02 for this version) Note: the message version number is the same as for protocol versions 18 up to 22; please select correct message version based on the protocol version supported by your firmware.", +"",1,U1,-,reserved1,-,Reserved, +"",2,U1,-,"maxStartupSta teDur",s,"Maximum time to spend in Acquisition state. If 0: bound disabled (see maxStartupStateDur). (not supported in protocol versions 23 to 23.01)", +"",3,U1,-,reserved2,-,Reserved, +"",4,X4,-,flags,-,PSM configuration flags (see graphic below), +"",8,U4,-,updatePeriod,ms,"Position update period. If set to 0, the receiver will never retry a fix and it will wait for external events", +"",12,U4,-,searchPeriod,ms,"Acquisition retry period if previously failed. If set to 0, the receiver will never retry a startup (not supported in protocol versions 23 to 23.01)", +"",16,U4,-,gridOffset,ms,"Grid offset relative to GPS start of week (not supported in protocol versions 23 to 23.01)", +"",20,U2,-,onTime,s,"Time to stay in Tracking state (not supported in protocol versions 23 to 23.01)", +"",22,U2,-,minAcqTime,s,minimal search time, +"",24,U1[20],-,reserved3,-,Reserved, +"",44,U4,-,"extintInactiv ityMs",ms,inactivity time out on EXTINT pint if enabled, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-75.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-75.csv new file mode 100755 index 00000000..8154bf44 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-75.csv @@ -0,0 +1,14 @@ +"",Message,CFG-PMS,,,,, +"",Description,Power Mode Setup,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"Using UBX-CFG-PMS to set Super-E mode 1, 2, 4Hz navigation rates sets 180 s minAcqTime instead the default 300 s in protocol version 23.01.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x86,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0x00 for this version), +"",1,U1,-,"powerSetupVal ue",-,"Power setup value 0x00 -> Full power 0x01 -> Balanced 0x02 -> Interval 0x03 -> Aggressive with 1Hz 0x04 -> Aggressive with 2Hz 0x05 -> Aggressive with 4Hz 0xFF -> Invalid (only when polling)", +"",2,U2,-,period,s,"Position update period and search period. Recommended minimum period is 10s, although the receiver accepts any value bigger than 5s. Only valid when powerSetupValueset to Interval, otherwise must be set to '0'.", +"",4,U2,-,onTime,s,"Duration of the ON phase, must be smaller than the period. Only valid when powerSetupValue set to Interval, otherwise must be set to '0'.", +"",6,U1[2],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-76.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-76.csv new file mode 100755 index 00000000..1f98c540 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-76.csv @@ -0,0 +1,10 @@ +"",Message,CFG-PRT,,,,, +"",Description,Polls the configuration for one I/O Port,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Poll Request,,,,, +"",Comment,"Sending this message with a port ID as payload results in having the receiver return the configuration for the specified port.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x00,1,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,PortID,-,"Port Identifier Number (see the other versions of CFG-PRT for valid values)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-77.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-77.csv new file mode 100755 index 00000000..9b9bfbda --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-77.csv @@ -0,0 +1,14 @@ +"",Message,CFG-PRT,,,,, +"",Description,Port Configuration for UART,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"Several configurations can be concatenated to one input message. In this case the payload length can be a multiple of the normal length (see the other versions of CFG-PRT). Output messages from the module contain only one configuration unit. Note that this message can affect baud rate and other transmission parameters. Because there may be messages queued for transmission there may be uncertainty about which protocol applies to such messages. In addition a message currently in transmission may be corrupted by a protocol change. Host data reception paramaters may have to be changed to be able to receive future messages, including the acknowledge message resulting from the CFG-PRT message.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x00,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,portID,-,"Port Identifier Number (see Serial Communication Ports Description for valid UART port IDs)", +"",1,U1,-,reserved1,-,Reserved, +"",2,X2,-,txReady,-,TX ready PIN configuration (see graphic below), +"",4,X4,-,mode,-,"A bit mask describing the UART mode (see graphic below)", +"",8,U4,-,baudRate,Bits/s,Baud rate in bits/second, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-78.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-78.csv new file mode 100755 index 00000000..4bab6704 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-78.csv @@ -0,0 +1,5 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +12,X2,-,inProtoMask,-,"A mask describing which input protocols are active. Each bit of this mask is used for a protocol. Through that, multiple protocols can be defined on a single port. (see graphic below)" +14,X2,-,outProtoMask,-,"A mask describing which output protocols are active. Each bit of this mask is used for a protocol. Through that, multiple protocols can be defined on a single port. (see graphic below)" +16,X2,-,flags,-,Flags bit mask (see graphic below) +18,U1[2],-,reserved2,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-79.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-79.csv new file mode 100755 index 00000000..88a2d779 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-79.csv @@ -0,0 +1,14 @@ +Message,CFG-PRT,,,,, +Description,Port Configuration for USB Port,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,"Several configurations can be concatenated to one input message. In this case the payload length can be a multiple of the normal length (see the other versions of CFG-PRT). Output messages from the module contain only one configuration unit.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x00,20,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,portID,-,Port Identifier Number (= 3 for USB port), +1,U1,-,reserved1,-,Reserved, +2,X2,-,txReady,-,TX ready PIN configuration (see graphic below), +4,U1[8],-,reserved2,-,Reserved, +12,X2,-,inProtoMask,-,"A mask describing which input protocols are active. Each bit of this mask is used for a protocol. Through that, multiple protocols can be defined on a single port. (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-8.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-8.csv new file mode 100755 index 00000000..e620a8ff --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-8.csv @@ -0,0 +1,39 @@ +Page,Mnemonic,Cls/ID,Length,Type,Description +29,NAV-CLOCK,0x01 0x22,20,Periodic/Polled,Clock Solution +29,NAV-DGPS,0x01 0x31,16 + 12*numC,Periodic/Polled,DGPS Data Used for NAV +29,NAV-DOP,0x01 0x04,18,Periodic/Polled,Dilution of precision +29,NAV-EOE,0x01 0x61,4,Periodic,End Of Epoch +29,NAV-GEOFENCE,0x01 0x39,8 + 2*numFen..,Periodic/Polled,Geofencing status +30,NAV-HPPOSECEF,0x01 0x13,28,Periodic/Polled,High Precision Position Solution in ECEF +30,NAV-HPPOSLLH,0x01 0x14,36,Periodic/Polled,High Precision Geodetic Position Solution +30,NAV-ODO,0x01 0x09,20,Periodic/Polled,Odometer Solution +30,NAV-ORB,0x01 0x34,8 + 6*numSv,Periodic/Polled,GNSS Orbit Database Info +30,NAV-POSECEF,0x01 0x01,20,Periodic/Polled,Position Solution in ECEF +30,NAV-POSLLH,0x01 0x02,28,Periodic/Polled,Geodetic Position Solution +30,NAV-PVT,0x01 0x07,92,Periodic/Polled,Navigation Position Velocity Time Solution +31,NAV-RELPOSNED,0x01 0x3C,40,Periodic/Polled,Relative Positioning Information in NED frame +31,NAV-RESETODO,0x01 0x10,0,Command,Reset odometer +31,NAV-SAT,0x01 0x35,8 + 12*numSvs,Periodic/Polled,Satellite Information +31,NAV-SBAS,0x01 0x32,12 + 12*cnt,Periodic/Polled,SBAS Status Data +31,NAV-SOL,0x01 0x06,52,Periodic/Polled,Navigation Solution Information +31,NAV-STATUS,0x01 0x03,16,Periodic/Polled,Receiver Navigation Status +31,NAV-SVINFO,0x01 0x30,8 + 12*numCh,Periodic/Polled,Space Vehicle Information +32,NAV-SVIN,0x01 0x3B,40,Periodic/Polled,Survey-in data +32,NAV-TIMEBDS,0x01 0x24,20,Periodic/Polled,BDS Time Solution +32,NAV-TIMEGAL,0x01 0x25,20,Periodic/Polled,Galileo Time Solution +32,NAV-TIMEGLO,0x01 0x23,20,Periodic/Polled,GLO Time Solution +32,NAV-TIMEGPS,0x01 0x20,16,Periodic/Polled,GPS Time Solution +32,NAV-TIMELS,0x01 0x26,24,Periodic/Polled,Leap second event information +32,NAV-TIMEUTC,0x01 0x21,20,Periodic/Polled,UTC Time Solution +32,NAV-VELECEF,0x01 0x11,20,Periodic/Polled,Velocity Solution in ECEF +33,NAV-VELNED,0x01 0x12,36,Periodic/Polled,Velocity Solution in NED +"",UBX Class RXM,Receiver Manager Messages,,, +33,RXM-IMES,0x02 0x61,4 + 44*numTx,Periodic/Polled,Indoor Messaging System Information +33,RXM-MEASX,0x02 0x14,44 + 24*numSV,Periodic,Satellite Measurements for RRLP +33,RXM-PMREQ,0x02 0x41,8,Command,Requests a Power Management task +33,RXM-PMREQ,0x02 0x41,16,Command,Requests a Power Management task +33,RXM-RAWX,0x02 0x15,16 + 32*num...,Periodic/Polled,Multi-GNSS Raw Measurement Data +34,RXM-RAWX,0x02 0x15,16 + 32*num...,Periodic/Polled,Multi-GNSS Raw Measurement Data +34,RXM-RLM,0x02 0x59,16,Output,Galileo SAR Short-RLM report +34,RXM-RLM,0x02 0x59,28,Output,Galileo SAR Long-RLM report +34,RXM-RTCM,0x02 0x32,8,Output,RTCM input status diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-80.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-80.csv new file mode 100755 index 00000000..7d96d36c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-80.csv @@ -0,0 +1,4 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +14,X2,-,outProtoMask,-,"A mask describing which output protocols are active. Each bit of this mask is used for a protocol. Through that, multiple protocols can be defined on a single port. (see graphic below)" +16,U1[2],-,reserved3,-,Reserved +18,U1[2],-,reserved4,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-81.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-81.csv new file mode 100755 index 00000000..d13e560e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-81.csv @@ -0,0 +1,15 @@ +Message,CFG-PRT,,,,, +Description,Port Configuration for SPI Port,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,"Several configurations can be concatenated to one input message. In this case the payload length can be a multiple of the normal length (see the other versions of CFG-PRT). Output messages from the module contain only one configuration unit.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x00,20,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,portID,-,Port Identifier Number (= 4 for SPI port), +1,U1,-,reserved1,-,Reserved, +2,X2,-,txReady,-,TX ready PIN configuration (see graphic below), +4,X4,-,mode,-,SPI Mode Flags (see graphic below), +8,U1[4],-,reserved2,-,Reserved, +12,X2,-,inProtoMask,-,"A mask describing which input protocols are active. Each bit of this mask is used for a protocol. Through that, multiple protocols can be defined on a single port. (The bitfield inRtcm3 is not supported in protocol versions less than 20) (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-82.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-82.csv new file mode 100755 index 00000000..5ff44222 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-82.csv @@ -0,0 +1,4 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +14,X2,-,outProtoMask,-,"A mask describing which output protocols are active. Each bit of this mask is used for a protocol. Through that, multiple protocols can be defined on a single port. (The bitfield outRtcm3 is not supported in protocol versions less than 20) (see graphic below)" +16,X2,-,flags,-,Flags bit mask (see graphic below) +18,U1[2],-,reserved3,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-83.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-83.csv new file mode 100755 index 00000000..c2994736 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-83.csv @@ -0,0 +1,18 @@ +"",Message,CFG-PRT,,,,, +"",Description,Port Configuration for DDC Port,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"Several configurations can be concatenated to one input message. In this case the payload length can be a multiple of the normal length (see the other versions of CFG-PRT). Output messages from the module contain only one configuration unit.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x00,20,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,portID,-,Port Identifier Number (= 0 for DDC port), +"",1,U1,-,reserved1,-,Reserved, +"",2,X2,-,txReady,-,TX ready PIN configuration (see graphic below), +"",4,X4,-,mode,-,DDC Mode Flags (see graphic below), +"",8,U1[4],-,reserved2,-,Reserved, +"",12,X2,-,inProtoMask,-,"A mask describing which input protocols are active. Each bit of this mask is used for a protocol. Through that, multiple protocols can be defined on a single port. (The bitfield inRtcm3 is not supported in protocol versions less than 20) (see graphic below)", +"",14,X2,-,outProtoMask,-,"A mask describing which output protocols are active. Each bit of this mask is used for a protocol. Through that, multiple protocols can be defined on a single port. (The bitfield outRtcm3 is not supported in protocol versions less than 20) (see graphic below)", +"",16,X2,-,flags,-,Flags bit mask (see graphic below), +"",18,U1[2],-,reserved3,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-84.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-84.csv new file mode 100755 index 00000000..86064003 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-84.csv @@ -0,0 +1,11 @@ +Message,CFG-PWR,,,,, +Description,Put receiver in a defined power state.,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Set,,,,, +Comment,"This message is deprecated in protocol versions greater than 17. Use UBX-CFG-RST for GNSS start/stop and UBX-RXM-PMREQ for software backup. -",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x57,8,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (1 for this version), +1,U1[3],-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-85.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-85.csv new file mode 100755 index 00000000..79ff9c80 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-85.csv @@ -0,0 +1,2 @@ +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description +"",4,U4,-,state,-,"Enter system state 0x52554E20: GNSS running 0x53544F50: GNSS stopped 0x42434B50: Software Backup. USB interface will be disabled, other wakeup source is needed." diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-86.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-86.csv new file mode 100755 index 00000000..87736749 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-86.csv @@ -0,0 +1,11 @@ +"",Message,CFG-RATE,,,,, +"",Description,Navigation/Measurement Rate Settings,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"This feature is not supported for the FTS product variant. This message allows the user to alter the rate at which navigation solutions (and the measurements that they depend on) are generated by the receiver. The calculation of the navigation solution will always be aligned to the top of a second zero (first second of the week) of the configured reference time system. For protocol version 18 and later the navigation period is an integer multiple of the measurement period. •Each measurement triggers the measurements generation and raw data output. •The navRate value defines that every nth measurement triggers a navigation epoch. •The update rate has a direct influence on the power consumption. The more fixes that are required, the more CPU power and communication resources are required. •For most applications a 1 Hz update rate would be sufficient. •When using Power Save Mode, measurement and navigation rate can differ from the values configured here. See Measurement and navigation rate with Power Save Mode for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x08,6,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U2,-,measRate,ms,"The elapsed time between GNSS measurements, which defines the rate, e.g. 100ms => 10Hz, 1000ms => 1Hz, 10000ms => 0.1Hz", +"",2,U2,-,navRate,cycles,"The ratio between the number of measurements and the number of navigation solutions, e.g. 5 means five measurements for every navigation solution. Max. value is 127. (This parameter is ignored and the navRate is fixed to 1 in protocol versions less than 18)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-87.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-87.csv new file mode 100755 index 00000000..d74613bb --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-87.csv @@ -0,0 +1,2 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +4,U2,-,timeRef,-,"The time system to which measurements are aligned: 0: UTC time 1: GPS time 2: GLONASS time (not supported in protocol versions less than 18) 3: BeiDou time (not supported in protocol versions less than 18) 4: Galileo time (not supported in protocol versions less than 18)" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-88.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-88.csv new file mode 100755 index 00000000..e9643a8d --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-88.csv @@ -0,0 +1,13 @@ +Message,CFG-RINV,,,,, +Description,Contents of Remote Inventory,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Get/Set,,,,, +Comment,"If N is greater than 30, the excess bytes are discarded.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x34,1 + 1*N,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,X1,-,flags,-,Flags (see graphic below), +Start of repeated block (N times),,,,,, +1 + 1*N,U1,-,data,-,Data to store/stored in Remote Inventory., +End of repeated block,,,,,, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-89.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-89.csv new file mode 100755 index 00000000..f477fcb8 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-89.csv @@ -0,0 +1,12 @@ +Message,CFG-RST,,,,, +Description,Reset Receiver / Clear Backup Data Structures,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +Type,Command,,,,, +Comment,"Don't expect this message to be acknowledged by the receiver. •Newer FW version won't acknowledge this message at all. •Older FW version will acknowledge this message but the acknowledge may not be sent completely before the receiver is reset.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x04,4,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,X2,-,navBbrMask,-,"BBR Sections to clear. The following Special Sets apply: 0x0000 Hot start 0x0001 Warm start 0xFFFF Cold start (see graphic below)", +2,U1,-,resetMode,-,"Reset Type 0x00 - Hardware reset (Watchdog) immediately 0x01 - Controlled Software reset 0x02 - Controlled Software reset (GNSS only) 0x04 - Hardware reset (Watchdog) after shutdown 0x08 - Controlled GNSS stop 0x09 - Controlled GNSS start", +3,U1,-,reserved1,-,Reserved, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-9.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-9.csv new file mode 100755 index 00000000..77f36c03 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-9.csv @@ -0,0 +1,26 @@ +Page,Mnemonic,Cls/ID,Length,Type,Description +346,RXM-SFRBX,0x02 0x13,8 + 4*numWo..,Output,Broadcast Navigation Data Subframe +347,RXM-SFRBX,0x02 0x13,8 + 4*numWo..,Output,Broadcast Navigation Data Subframe +347,RXM-SVSI,0x02 0x20,8 + 6*numSV,Periodic/Polled,SV Status Info +UBX Class SEC,Security Feature Messages,,,, +350,SEC-SIGN,0x27 0x01,40,Output,Signature of a previous message +350,SEC-UNIQID,0x27 0x03,9,Output,Unique Chip ID +UBX Class TIM,Timing Messages,,,, +351,TIM-DOSC,0x0D 0x11,8,Output,Disciplined oscillator control +351,TIM-FCHG,0x0D 0x16,32,Periodic/Polled,Oscillator frequency changed notification +352,TIM-HOC,0x0D 0x17,8,Input,Host oscillator control +353,TIM-SMEAS,0x0D 0x13,12 + 24*num...,Input/Output,Source measurement +355,TIM-SVIN,0x0D 0x04,28,Periodic/Polled,Survey-in data +356,TIM-TM2,0x0D 0x03,28,Periodic/Polled,Time mark data +357,TIM-TOS,0x0D 0x12,56,Periodic,Time Pulse Time and Frequency Data +359,TIM-TP,0x0D 0x01,16,Periodic/Polled,Time Pulse Timedata +361,TIM-VCOCAL,0x0D 0x15,1,Command,Stop calibration +361,TIM-VCOCAL,0x0D 0x15,12,Command,VCO calibration extended command +363,TIM-VCOCAL,0x0D 0x15,12,Periodic/Polled,Results of the calibration +363,TIM-VRFY,0x0D 0x06,20,Periodic/Polled,Sourced Time Verification +UBX Class UPD,Firmware Update Messages,,,, +365,UPD-SOS,0x09 0x14,0,Poll Request,Poll Backup File Restore Status +365,UPD-SOS,0x09 0x14,4,Command,Create Backup File in Flash +366,UPD-SOS,0x09 0x14,4,Command,Clear Backup in Flash +366,UPD-SOS,0x09 0x14,8,Output,Backup File Creation Acknowledge +367,UPD-SOS,0x09 0x14,8,Output,System Restored from Backup diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-90.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-90.csv new file mode 100755 index 00000000..73a12976 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-90.csv @@ -0,0 +1,11 @@ +"",Message,CFG-RXM,,,,, +"",Description,RXM configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 17",,,,, +"",Type,Get/Set,,,,, +"",Comment,"For a detailed description see section Power Management. Note that Power Save Mode cannot be selected when the receiver is configured to process GLONASS signals (using CFG-GNSS).",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x11,2,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,reserved1,-,Reserved, +"",1,U1,-,lpMode,-,"Low Power Mode 0: Continuous Mode 1: Power Save Mode 4: Continuous Mode Note that for receivers with protocol versions larger or equal to 14, both Low Power Mode settings 0 and 4 configure the receiver to Continuous Mode.", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-91.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-91.csv new file mode 100755 index 00000000..ca5e044a --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-91.csv @@ -0,0 +1,11 @@ +"",Message,CFG-RXM,,,,, +"",Description,RXM configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 18 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,For a detailed description see section Power Management.,,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x11,2,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,reserved1,-,Reserved, +"",1,U1,-,lpMode,-,"Low Power Mode 0: Continuous Mode 1: Power Save Mode 4: Continuous Mode", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-92.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-92.csv new file mode 100755 index 00000000..d2b6c038 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-92.csv @@ -0,0 +1,13 @@ +"",Message,CFG-SBAS,,,,, +"",Description,SBAS Configuration,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01",,,,, +"",Type,Get/Set,,,,, +"",Comment,"This message configures the SBAS receiver subsystem (i.e. WAAS, EGNOS, MSAS). See the SBAS Configuration Settings Description for a detailed description of how these settings affect receiver operation.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x16,8,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,X1,-,mode,-,SBAS Mode (see graphic below), +"",1,X1,-,usage,-,SBAS Usage (see graphic below), +"",2,U1,-,maxSBAS,-,"Maximum Number of SBAS prioritized tracking channels (valid range: 0 - 3) to use (obsolete and superseeded by UBX-CFG-GNSS in protocol versions 14+).", +"",3,X1,-,scanmode2,-,"Continuation of scanmode bitmask below (see graphic below)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-93.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-93.csv new file mode 100755 index 00000000..db0182a5 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-93.csv @@ -0,0 +1,2 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +4,X4,-,scanmode1,-,"Which SBAS PRN numbers to search for (Bitmask) If all Bits are set to zero, auto-scan (i.e. all valid PRNs) are searched. Every bit corresponds to a PRN number (see graphic below)" diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-94.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-94.csv new file mode 100755 index 00000000..0e3a7bde --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-94.csv @@ -0,0 +1,35 @@ +Message,CFG-SMGR,,,,, +Description,Synchronization manager configuration,,,,, +Firmware,"Supported on: +•u-blox 8 / u-blox M8 from protocol version 16 up to version 23.01 (only with Time & +Frequency Sync products)",,,,, +Type,Get/Set,,,,, +Comment,-,,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x62,20,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number +Format",Scaling,Name,Unit,Description, +0,U1,-,version,-,Message version (0 for this version), +1,U1,-,minGNSSFix,-,"Minimum number of GNSS fixes before we +commit to use it as a source", +2,U2,-,"maxFreqChange +Rate",ppb/s,"Maximum frequency change rate during +disciplining. Must not exceed 30ppb/s", +4,U2,-,"maxPhaseCorrR +ate",ns/s,"Maximum phase correction rate in coherent +time pulse mode. +For maximum phase correction rate in corrective +time pulse mode see maxSlewRate. +Note that in coherent time pulse mode phase +correction is achieved by intentional frequency +offset. Allowing for a high phase correction rate +can result in large intentional frequency offset. +Must not exceed 100ns/s", +6,U1[2],-,reserved1,-,Reserved, +8,U2,-,freqTolerance,ppb,"Limit of possible deviation from nominal before +TIM-TOS indicates that frequency is out of +tolerance", +10,U2,-,timeTolerance,ns,"Limit of possible deviation from nominal before +TIM-TOS indicates that time pulse is out of +tolerance", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-95.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-95.csv new file mode 100755 index 00000000..2e665156 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-95.csv @@ -0,0 +1,4 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +12,X2,-,messageCfg,-,"Sync manager message configuration (see graphic below)" +14,U2,-,maxSlewRate,us/s,"Maximum slew rate, the maximum time correction that shall be applied between locked pulses in corrective time pulse mode. To have no limit on the slew rate, set the flag disableMaxSlewRate to 1 For maximum phase correction rate in coherent time pulse mode see maxPhaseCorrRate." +16,X4,-,flags,-,Flags (see graphic below) diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-96.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-96.csv new file mode 100755 index 00000000..e48f8146 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-96.csv @@ -0,0 +1,18 @@ +Message,CFG-TMODE2,,,,, +Description,Time Mode Settings 2,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 23.01 (only with Time & Frequency Sync or Time Sync products)",,,,, +Type,Get/Set,,,,, +Comment,"This message is available only for timing receivers See the Time Mode Description for details. This message replaces the deprecated UBX-CFG-TMODE message.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",0xB5 0x62,0x06,0x3D,28,see below,CK_A CK_B +Payload Contents:,,,,,, +Byte Offset,"Number Format",Scaling,Name,Unit,Description, +0,U1,-,timeMode,-,"Time Transfer Mode: 0 Disabled 1 Survey In 2 Fixed Mode (true position information required) 3-255 Reserved", +1,U1,-,reserved1,-,Reserved, +2,X2,-,flags,-,Time mode flags (see graphic below), +4,I4,-,ecefXOrLat,"cm_or_ deg*1e -7","WGS84 ECEF X coordinate or latitude, depending on flags above", +8,I4,-,ecefYOrLon,"cm_or_ deg*1e -7","WGS84 ECEF Y coordinate or longitude, depending on flags above", +12,I4,-,ecefZOrAlt,cm,"WGS84 ECEF Z coordinate or altitude, depending on flags above", +16,U4,-,fixedPosAcc,mm,Fixed position 3D accuracy, +20,U4,-,svinMinDur,s,Survey-in minimum duration, +24,U4,-,svinAccLimit,mm,Survey-in position accuracy limit, diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-97.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-97.csv new file mode 100755 index 00000000..256a2e73 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-97.csv @@ -0,0 +1,17 @@ +"",Message,CFG-TMODE3,,,,, +"",Description,Time Mode Settings 3,,,,, +"",Firmware,"Supported on: •u-blox 8 / u-blox M8 with protocol version 20 (only with High Precision GNSS products)",,,,, +"",Type,Get/Set,,,,, +"",Comment,"Configures the receiver to be in Time Mode. The position referred to in this message is that of the Antenna Reference Point (ARP). See the Time Mode Description for details.",,,,, +"",Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +"",,0xB5 0x62,0x06,0x71,40,see below,CK_A CK_B +"",Payload Contents:,,,,,, +"",Byte Offset,"Number Format",Scaling,Name,Unit,Description, +"",0,U1,-,version,-,Message version (0x00 for this version), +"",1,U1,-,reserved1,-,Reserved, +"",2,X2,-,flags,-,Receiver mode flags (see graphic below), +"",4,I4,-,ecefXOrLat,"cm_or_ deg*1e -7","WGS84 ECEF X coordinate (or latitude) of the ARP position, depending on flags above", +"",8,I4,-,ecefYOrLon,"cm_or_ deg*1e -7","WGS84 ECEF Y coordinate (or longitude) of the ARP position, depending on flags above", +"",12,I4,-,ecefZOrAlt,cm,"WGS84 ECEF Z coordinate (or altitude) of the ARP position, depending on flags above", +"",16,I1,-,ecefXOrLatHP,"0. 1_mm_ or_deg *1e-9","High-precision WGS84 ECEF X coordinate (or latitude) of the ARP position, depending on flags above. Must be in the range -99..+99. The precise WGS84 ECEF X coordinate in units of cm, or the precise WGS84 ECEF latitude in units of 1e-7 degrees, is given by ecefXOrLat + (ecefXOrLatHP * 1e-2)", +"",17,I1,-,ecefYOrLonHP,"0. 1_mm_ or_deg *1e-9","High-precision WGS84 ECEF Y coordinate (or longitude) of the ARP position, depending on flags above. Must be in the range -99..+99. The precise WGS84 ECEF Y coordinate in units of cm, or the precise WGS84 ECEF longitude in units of 1e-7 degrees, is given by ecefYOrLon + (ecefYOrLonHP * 1e-2)", diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-98.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-98.csv new file mode 100755 index 00000000..af50a1d5 --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-98.csv @@ -0,0 +1,7 @@ +Byte Offset,"Number Format",Scaling,Name,Unit,Description +18,I1,-,ecefZOrAltHP,"0. 1_mm","High-precision WGS84 ECEF Z coordinate (or altitude) of the ARP position, depending on flags above. Must be in the range -99..+99. The precise WGS84 ECEF Z coordinate, or altitude coordinate, in units of cm is given by ecefZOrAlt + (ecefZOrAltHP * 1e-2)" +19,U1,-,reserved2,-,Reserved +20,U4,-,fixedPosAcc,"0. 1_mm",Fixed position 3D accuracy +24,U4,-,svinMinDur,s,Survey-in minimum duration +28,U4,-,svinAccLimit,"0. 1_mm",Survey-in position accuracy limit +32,U1[8],-,reserved3,-,Reserved diff --git a/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-99.csv b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-99.csv new file mode 100755 index 00000000..b31c5c7c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_csv_tables/tabula-u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public-99.csv @@ -0,0 +1,8 @@ +Message,CFG-TP5,,,,, +Description,Poll Time Pulse Parameters for Time Pulse 0,,,,, +Firmware,"Supported on: •u-blox 8 / u-blox M8 from protocol version 15 up to version 22",,,,, +Type,Poll Request,,,,, +Comment,"Sending this (empty / no-payload) message to the receiver results in the receiver returning a message of type CFG-TP5 with a payload as defined below for timepulse 0.",,,,, +Message Structure,Header,Class,ID,Length (Bytes),Payload,Checksum +0xB5 0x62,0x06,0x31,0,see below,CK_A CK_B, +No payload,,,,,, diff --git a/modules/gps/ubx_parser/ubx_pdf_csv_parser.py b/modules/gps/ubx_parser/ubx_pdf_csv_parser.py new file mode 100644 index 00000000..1ac7a75e --- /dev/null +++ b/modules/gps/ubx_parser/ubx_pdf_csv_parser.py @@ -0,0 +1,348 @@ +import glob +import pandas as pd +from natsort import natsorted +from StringIO import StringIO +from tabulate import tabulate +import re +import numpy as np +import em +import os +from ubx_pdf_csv_parser_helper import * +import argparse +import sys +import copy + +parser = argparse.ArgumentParser() +parser.add_argument('build_dir', nargs=1) +parser.add_argument('--build', action='append') +args = parser.parse_args() + +build_dir = args.build_dir[0] +buildlist = None + +if args.build: + buildlist = set(args.build) + +mkdir_p(os.path.dirname(os.path.join(build_dir, 'include/ubx_msgs.h'))) +common_msg_header = open(os.path.join(build_dir, 'include/ubx_msgs.h'), 'wb') +templates = [ + {'source_file': 'ubx_msg.h', + 'output_file': 'include/@(msg_header_name(msg))'}, + {'source_file': 'ubx_msg.c', + 'output_file': 'src/@(msg_c_file_name(msg))'}, +] +templates_dir = os.path.dirname(sys.argv[0]) + '/templates' +for template in templates: + with open(os.path.join(templates_dir, template['source_file']), 'rb') as f: + template['source'] = f.read() + +class UbxCsvParser: + + TableColumns = { + "VarType":'"",Short,Type,"Size\r(Bytes)",Comment,Min/Max,Resolution\r\n', + "GnssID":'gnssId,GNSS\r\n', + "MsgClass":'Name,Class,Description\r\n', + "MsgID":'Page,Mnemonic,Cls/ID,Length,Type,Description\r\n' + } + def __init__(self): + self.Msgs = {} + self.GnssId = {} + self.ByteDefs = [] + self.ClassDict = {} + self.VarType = {} + self.LineCount = 0 + self.curr_msg = None + self.parsed_msg = None + self.parsed_cnt = {} + self.curr_msg_type = "" + self.curr_df = None + self.new_msg = False + + def selectParser(self, line): + for key, value in self.TableColumns.iteritems(): + if line == value: + return key + return "" + + def doParseGeneric(self, filename, parsetype): + df = pd.read_csv(filename) + if (parsetype == "VarType"): + pass + # print tabulate(df, headers='keys', tablefmt='psql') + elif (parsetype == "GnssID"): + self.GnssId = df.set_index('GNSS').to_dict()["gnssId"] + elif (parsetype == "MsgClass"): + class_details = df.set_index('Name').to_dict('index') + self.ClassDict.update(class_details) + elif (parsetype == "MsgID"): + df = df.dropna() + msg_details = df.set_index(['Mnemonic','Type']).to_dict(orient='index') + for key, value in sorted(msg_details.iteritems()): + old_key = key + key = (re.sub('[\.]', '', key[0]), re.sub('[^A-Za-z0-9]+', '', key[1])) + msg_details[key] = value + if key != old_key: + del msg_details[old_key] + self.Msgs.update(msg_details) + return + + def doParseMsg(self, lines, curr_msg): + struct_field = ([line for line in lines if 'Byte Offset,"Number' in line]) + if len(struct_field): + # print "\n", curr_msg, self.Msgs[curr_msg]['Cls/ID'] + # print "Page:", int(self.Msgs[curr_msg]['Page']), 'Length:' , self.Msgs[curr_msg]['Length'] + struct_table = '\r\n'.join(lines[lines.index(struct_field[0]):]) + df = pd.read_csv(StringIO(struct_table)) + df = df.dropna(axis='columns', how='all') + if not self.new_msg: + self.curr_df = self.curr_df.append(df,ignore_index=True) + else: + if self.parsed_msg is not None: + self.Msgs[self.parsed_msg]['DataFrame'] = self.curr_df + self.curr_df = df + self.parsed_msg = curr_msg + self.new_msg = False + return + + def parseFile(self, filename): + file = open(filename, 'r') + lines = file.readlines() + parsetype = self.selectParser(lines[0]) + if (parsetype != ""): + self.doParseGeneric(filename, parsetype) + else: + msg_name = None + type_line = None + if 'Message,' in lines[0]: + #find MsgName + prev_str = "" + for s in self.Msgs.keys(): + if s[0] in lines[0] and len(s[0]) > len(prev_str): + msg_name = s[0] + prev_str = s[0] + if msg_name == None: + raise Exception(lines[0], "Bad MsgName") + if msg_name: + self.new_msg = True + self.curr_msg = None + #find type + type_line = [line for line in lines if "Type," in line] + if type_line: + type_line = type_line[0].split(',') + msg_type = re.sub('[^A-Za-z0-9]+', '', type_line[type_line.index("Type") + 1]) + self.curr_msg = [key for key in ubx.Msgs.keys() if key[0] == msg_name and msg_type in key[1]][0] + if self.curr_msg in self.parsed_cnt.keys(): + self.parsed_cnt[self.curr_msg] += 1 + initial_msg_key = self.curr_msg + self.curr_msg = (self.curr_msg[0] + str(self.parsed_cnt[self.curr_msg]), self.curr_msg[1]) + self.Msgs[self.curr_msg] = copy.deepcopy(self.Msgs[initial_msg_key]) + else: + self.parsed_cnt[self.curr_msg] = 0 + if self.curr_msg is not None: + self.doParseMsg(lines, self.curr_msg) + else: + raise Exception(msg_name, type_line, "Bad TypeName") + if self.parsed_msg is not None: + self.Msgs[self.parsed_msg]['DataFrame'] = self.curr_df + +class UbxStruct: + + #+---------+-----------------------------+-----------+------------------+-------------------+------------------+ + #| Short | Type | Size | Comment | Min/Max | Resolution | + #| | | (Bytes) | | | | + #+---------+-----------------------------+-----------+------------------+-------------------+------------------| + #| U1 | Unsigned Char | 1 | | 0..255 | 1 | + #| RU1_3 | Unsigned Char | 1 | binary floating | 0..(31*2^7) | ~ 2^(Value >> 5) | + #| | | | point with 3 bit | non-continuous | | + #| | | | exponent, eeeb | | | + #| | | | bbbb, (Value & | | | + #| | | | 0x1F) << (Value | | | + #| | | | >> 5) | | | + #| I1 | Signed Char | 1 | 2's complement | -128..127 | 1 | + #| X1 | Bitfield | 1 | | | | + #| U2 | Unsigned Short | 2 | | 0..65535 | 1 | + #| I2 | Signed Short | 2 | 2's complement | -32768..32767 | 1 | + #| X2 | Bitfield | 2 | | | | + #| U4 | Unsigned Long | 4 | | 0..4'294'967'295 | 1 | + #| I4 | Signed Long | 4 | 2's complement | -2'147'483'648 .. | 1 | + #| | | | | 2'147'483'647 | | + #| X4 | Bitfield | 4 | | | | + #| R4 | IEEE 754 Single Precision | 4 | | -1*2^+127 .. | ~ Value * 2^-24 | + #| | | | | 2^+127 | | + #| R8 | IEEE 754 Double Precision | 8 | | -1*2^+1023 .. | ~ Value * 2^-53 | + #| | | | | 2^+1023 | | + #| CH | ASCII / ISO 8859.1 Encoding | 1 | | | | + #+---------+-----------------------------+-----------+------------------+-------------------+------------------+ + UbxToCTypes = { + 'U1' : 'uint8_t', + 'RU1_3' : 'uint8_t', #currently unsupported by default in dsdl + 'I1' : 'int8_t', + 'X1' : 'uint8_t', + 'U2' : 'uint16_t', + 'I2' : 'int16_t', + 'X2' : 'uint16_t', + 'U4' : 'uint32_t', + 'I4' : 'int32_t', + 'X4' : 'uint32_t', + 'R4' : 'float', + 'R8' : 'double', + 'CH' : 'int8_t' + } + def __init__(self, msginfo, msg): + self.DataFrame = msginfo['DataFrame'] + self.MsgName = msg[0].replace('-', '_') + self.MsgType = msg[1] + self.MsgSize = msginfo['Length'] + self.MsgClassId = msginfo['Cls/ID'].split(' ')[0] + self.MsgId = msginfo['Cls/ID'].split(' ')[1] + + self.TableStr = "\nMsg: " + self.MsgName + self.TableStr += "\nMsgType: " + self.MsgType + self.TableStr += "\nMsgSize: " + self.MsgSize + self.TableStr += "\nMsgClassId: " + self.MsgClassId + self.TableStr += "\nMsgId: " + self.MsgId + "\n" + self.TableStr += tabulate(self.DataFrame.set_index('Name'), headers='keys', tablefmt='psql') + self.TableStr += "\n" + # print "\n# ".join(self.TableStr.splitlines()) + + self.RepeatedBlock = [] + self.RepeatVarName = "" + self.extractRepeatedBlock() #removes the field that are part of repeated block + self.OptionalBlock = [] + self.extractOptionalBlock() #removes the field that are part of optional block + + self.ParsedStructFields = [] + self.ParsedStructRepFields = [] + self.ParsedStructOptFields = [] + self.parseStructFields() + # self.VarList = self.extractVarList() + self.build_message() + + def extractRepeatedBlock(self): + repeat_blocks_started = False + for i, row in self.DataFrame.iterrows(): + m = None + for key, value in row.iteritems(): + if type(value) is not str: + continue + m = re.search('Start of repeated block \((.+?) times\)', value) + if "End of repeated block" in value: + repeat_blocks_started = False + self.DataFrame.drop(i, inplace=True) + return + if m: + self.RepeatVarName = m.group(1) + repeat_blocks_started = True + self.DataFrame.drop(i, inplace=True) + continue + if repeat_blocks_started: + self.RepeatedBlock.append(row) + self.DataFrame.drop(i, inplace=True) + + def extractOptionalBlock(self): + opt_blocks_started = False + for i, row in self.DataFrame.iterrows(): + for key, value in row.iteritems(): + continue_i = False + if type(value) is not str: + continue + if 'Start of optional block' in value: + opt_blocks_started = True + self.DataFrame.drop(i, inplace=True) + continue_i = True + break + if "End of optional block" in value: + opt_blocks_started = False + self.DataFrame.drop(i, inplace=True) + return + if continue_i: + continue + if opt_blocks_started: + self.OptionalBlock.append(row) + self.DataFrame.drop(i, inplace=True) + + def parseStructFields(self): + #Extract general vars into struct string + for i,row in self.DataFrame.iterrows(): + if self.getParsedField(row): + self.ParsedStructFields.append(self.getParsedField(row)) + + #Extract repeated vars into struct string + if len(self.RepeatedBlock): + for row in self.RepeatedBlock: + if self.getParsedField(row): + self.ParsedStructRepFields.append(self.getParsedField(row)) + + if len(self.OptionalBlock): + for row in self.OptionalBlock: + if self.getParsedField(row): + self.ParsedStructOptFields.append(self.getParsedField(row)) + # print self.StructString,"\n" + # print self.StructRepString,"\n" + # print self.StructOptString,"\n" + + def getParsedField(self, row): + fmts = [value for col, value in row.iteritems() if 'Number' in col] + num_fmt = [value for value in fmts if value is not np.nan] + if len(num_fmt): + cfmt = [self.UbxToCTypes[key] for key in self.UbxToCTypes.keys() if key in num_fmt[0]] + if not len(cfmt): + return None + carrsize = "" + m = re.search(r'\[(.*)\]', num_fmt[0]) + if m: + carrsize = m.group(1) + if cfmt: + if len(carrsize): + return [cfmt[0], row['Name'], int(carrsize)] + else: + return [cfmt[0], row['Name'], 1] + return None + + def build_message(self): + print 'building %s' % (self.MsgName,) + global common_msg_header + for template in templates: + if template['source_file'] == 'ubx_msg.c' and (self.MsgType in ['PollRequest', 'Input', 'Command', 'Set']): + continue + output = em.expand(template['source'], msg=self) + if not output.strip(): + continue + + output_file = os.path.join(build_dir, em.expand('@{from ubx_pdf_csv_parser_helper import *}'+template['output_file'], msg=self)) + mkdir_p(os.path.dirname(output_file)) + with open(output_file, 'wb') as f: + f.write(output) + if template['source_file'] == 'ubx_msg.h': + common_msg_header.write('#include <%s>\r\n'%output_file) + + def checkMsgSanity(self): + if len(self.RepeatedBlock) and self.RepeatVarName: + pass + elif len(self.RepeatedBlock) or self.RepeatVarName: + raise Exception("Bad Repeat Block") + +ubx = UbxCsvParser() +f = natsorted(glob.glob(os.path.dirname(sys.argv[0]) + "/ubx_csv_tables/*.csv")) +for filename in f: + # print filename + ubx.parseFile(filename) + +for key in sorted(ubx.Msgs.iterkeys()): + if ubx.Msgs[key]['Length'] != "0": + if 'DataFrame' in ubx.Msgs[key].keys(): + for i, row in ubx.Msgs[key]['DataFrame'].iterrows(): + if not pd.isnull(ubx.Msgs[key]['DataFrame'].at[i,'Name']): + ubx.Msgs[key]['DataFrame'].at[i,'Name'] = re.sub('[^A-Za-z0-9]+', '', ubx.Msgs[key]['DataFrame'].at[i,'Name']) + if key[0] in buildlist: + ubxstruct = UbxStruct(ubx.Msgs[key], key) + +# print "GNSS ID" +# for key, value in ubx.GnssId.iteritems(): +# print key, value +# print "Class List" +# for key, value in ubx.ClassDict.iteritems(): +# print key, value +# print "Messages" +# for key, value in sorted(ubx.Msgs.iteritems()): +# print key[0], '\t\t', key[1], '\t\t\t', value \ No newline at end of file diff --git a/modules/gps/ubx_parser/ubx_pdf_csv_parser_helper.py b/modules/gps/ubx_parser/ubx_pdf_csv_parser_helper.py new file mode 100644 index 00000000..5f072a8c --- /dev/null +++ b/modules/gps/ubx_parser/ubx_pdf_csv_parser_helper.py @@ -0,0 +1,37 @@ +import os +import errno +import em +import math +import copy + + +def msg_c_type(obj): + return 'struct __attribute__((__packed__)) %s_s' % (msg_full_name(obj).lower()) + +def msg_c_type_rep(obj): + return 'struct __attribute__((__packed__)) %s_rep_s' % (msg_full_name(obj).lower()) + +def msg_c_type_opt(obj): + return 'struct __attribute__((__packed__)) %s_opt_s' % (msg_full_name(obj).lower()) + +def msg_header_name(obj): + return '%s.h' % ('ubx_'+obj.MsgName.lower()+'_'+obj.MsgType.lower(),) + +def msg_c_file_name(obj): + return '%s.c' % ('ubx_'+obj.MsgName.lower()+'_'+obj.MsgType.lower(),) + +def msg_full_name(obj): + return 'ubx_'+obj.MsgName.lower()+'_'+obj.MsgType.lower() + +def msg_full_name_without_type(obj): + return 'ubx_'+obj.MsgName.lower() + +# https://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python +def mkdir_p(path): + try: + os.makedirs(path) + except OSError as exc: # Python >2.5 + if exc.errno == errno.EEXIST and os.path.isdir(path): + pass + else: + raise From fdd772c06e3761fd5a503436614ea8785ed78231 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Wed, 26 Sep 2018 16:24:39 +0530 Subject: [PATCH 04/13] modules: add modules to support AK09916 magnetometer --- modules/driver_ak09916/driver_ak09916.c | 222 ++++++++++++++++++++ modules/driver_ak09916/driver_ak09916.h | 17 ++ modules/driver_icm20x48/driver_icm20x48.c | 147 +++++++++++++ modules/driver_icm20x48/driver_icm20x48.h | 21 ++ modules/driver_icm20x48/icm20x48_internal.h | 139 ++++++++++++ 5 files changed, 546 insertions(+) create mode 100644 modules/driver_ak09916/driver_ak09916.c create mode 100644 modules/driver_ak09916/driver_ak09916.h create mode 100644 modules/driver_icm20x48/driver_icm20x48.c create mode 100644 modules/driver_icm20x48/driver_icm20x48.h create mode 100644 modules/driver_icm20x48/icm20x48_internal.h diff --git a/modules/driver_ak09916/driver_ak09916.c b/modules/driver_ak09916/driver_ak09916.c new file mode 100644 index 00000000..9c9e2c83 --- /dev/null +++ b/modules/driver_ak09916/driver_ak09916.c @@ -0,0 +1,222 @@ +#include +#include "driver_ak09916.h" +#include +#include +#pragma GCC optimize ("O0") + +#define AK09916_I2C_ADDR 0x0C + +struct compass_register_s { + const uint8_t address; + const bool writeable; + const bool read_locks_data; + const int8_t next_address; + uint8_t value; +}; + +static struct compass_register_s compass_registers[] = { + {0x00, false, false, 0x01, 0x48}, + {0x01, false, false, 0x02, 0x09}, + {0x02, false, false, 0x03, 0x00}, + {0x03, false, false, 0x10, 0x00}, + {0x10, false, false, 0x11, 0x00}, + {0x11, false, true, 0x12, 0x00}, + {0x12, false, true, 0x13, 0x00}, + {0x13, false, true, 0x14, 0x00}, + {0x14, false, true, 0x15, 0x00}, + {0x15, false, true, 0x16, 0x00}, + {0x16, false, true, 0x17, 0x00}, + {0x17, false, true, 0x18, 0x00}, + {0x18, false, false, 0x00, 0x00}, + {0x30, true, false, 0x31, 0x00}, + {0x31, true, false, 0x32, 0x00}, + {0x32, true, false, 0x30, 0x00}, +}; + +static bool compass_update_lock; +static struct compass_register_s* compass_curr_register = &compass_registers[0]; +static uint8_t compass_new_data_counter; + +static struct compass_register_s* get_compass_register(uint8_t address) { + for(uint8_t i=0; iwriteable) { + compass_curr_register->value = recv_byte; + } + + set_emulated_register(compass_curr_register->next_address); + } +} + +uint8_t ak09916_send_byte() { + struct compass_register_s* st1_reg = get_compass_register(0x10); + struct compass_register_s* accessed_reg = compass_curr_register; + + if (accessed_reg->read_locks_data && (st1_reg->value&(1<<1)) != 0) { + compass_update_lock = true; + st1_reg->value &= ~0b11; + } + + if (accessed_reg->address == 0x18) { + compass_update_lock = false; + } + + set_emulated_register(accessed_reg->next_address); + + return accessed_reg->value; +} + +// for now, it is assumed that this is called at 100hz +static void i2c_slave_new_compass_data(struct ak09916_instance_s *instance) { + struct compass_register_s* st1_reg = get_compass_register(0x10); + struct compass_register_s* st2_reg = get_compass_register(0x18); + struct compass_register_s* cntl2_reg = get_compass_register(0x31); + + bool update_now = false; + + switch(cntl2_reg->value&0x1F) { + case 0b00001: + update_now = true; + break; + case 0b00010: // 10Hz + update_now = compass_new_data_counter%10 == 0; + break; + case 0b00100: // 20Hz + update_now = compass_new_data_counter%5 == 0; + break; + case 0b00110: // 50Hz + update_now = compass_new_data_counter%2 == 0; + break; + case 0b01000: // 100Hz + update_now = true; + break; + } + + if (compass_update_lock) { + st1_reg->value |= (1<<1); + update_now = false; + } + + if (update_now) { + float x,y,z; + x = constrain_float(instance->meas.x*32752.0f/49120.0f, -32752.0f, 32752.0f); + y = constrain_float(-instance->meas.y*32752.0f/49120.0f, -32752.0f, 32752.0f); + z = constrain_float(-instance->meas.z*32752.0f/49120.0f, -32752.0f, 32752.0f); + + struct compass_register_s* meas_reg = get_compass_register(0x11); + (meas_reg++)->value = (int16_t)x & 0xff; + (meas_reg++)->value = ((int16_t)x >> 8) & 0xff; + (meas_reg++)->value = (int16_t)y & 0xff; + (meas_reg++)->value = ((int16_t)y >> 8) & 0xff; + (meas_reg++)->value = (int16_t)z & 0xff; + (meas_reg++)->value = ((int16_t)z >> 8) & 0xff; + if (instance->meas.hofl) { + st2_reg->value |= 1<<3; // HOFL + } + st1_reg->value |= 1; // DRDY + + if ((cntl2_reg->value&0x1F) == 1) { + cntl2_reg->value = 0; + } + } + + compass_new_data_counter = (compass_new_data_counter+1) % 10; +} + +bool ak09916_init(struct ak09916_instance_s *instance, struct icm20x48_instance_s* icm_instance) +{ + instance->icm_dev = icm_instance; + + icm20x48_i2c_slv_read_enable(icm_instance); + if (!icm20x48_i2c_slv_set_passthrough(icm_instance, 0, AK09916_I2C_ADDR|0x80, 0x00, 2)) { + return false; + } + usleep(10000); + + // Check the AK09916 WHO_I_AM registers + bool failed = false; + uint8_t byte; + + failed = failed || !icm20x48_i2c_slv_read(icm_instance, AK09916_I2C_ADDR, 0x00, &byte) || byte != 0x48; + failed = failed || !icm20x48_i2c_slv_read(icm_instance, AK09916_I2C_ADDR, 0x01, &byte) || byte != 0x09; + + if (failed) { + return false; + } + + // Reset AK09916 + if (!icm20x48_i2c_slv_write(icm_instance, AK09916_I2C_ADDR, 0x32, 1)) { + return false; + } + + usleep(100000); + + // Place AK09916 in continuous measurement mode 4 (100hz), readback and verify + if (!icm20x48_i2c_slv_write(icm_instance, AK09916_I2C_ADDR, 0x31, 0x08)) { + return false; + } + + failed = failed || !icm20x48_i2c_slv_read(icm_instance, AK09916_I2C_ADDR, 0x31, &byte) || byte != 0x08; + + if (failed) { + return false; + } + + //Configure the I2C master to read the status register and measuremnt data + if (!icm20x48_i2c_slv_set_passthrough(icm_instance, 0, AK09916_I2C_ADDR|0x80, 0x10, 9)) { + return false; + } + return true; +} + +bool ak09916_update(struct ak09916_instance_s *instance) +{ + // TODO interrupt driven + if ((icm20x48_read_reg(instance->icm_dev, ICM20948_REG_EXT_SLV_SENS_DATA_00) & (1<<0)) == 0) { + return false; + } + + uint8_t meas_bytes[6]; + for (uint8_t i=0; i<6; i++) { + meas_bytes[i] = icm20x48_read_reg(instance->icm_dev, ICM20948_REG_EXT_SLV_SENS_DATA_01+i); + } + + uint8_t st2 = icm20x48_read_reg(instance->icm_dev, ICM20948_REG_EXT_SLV_SENS_DATA_08); + + int16_t temp = 0; + temp |= (uint16_t)meas_bytes[0]; + temp |= (uint16_t)meas_bytes[1]<<8; + instance->meas.x = temp*42120.0f/32752.0f; + + temp = 0; + temp |= (uint16_t)meas_bytes[2]; + temp |= (uint16_t)meas_bytes[3]<<8; + instance->meas.y = temp*42120.0f/32752.0f; + + temp = 0; + temp |= (uint16_t)meas_bytes[4]; + temp |= (uint16_t)meas_bytes[5]<<8; + instance->meas.z = temp*42120.0f/32752.0f; + + instance->meas.hofl = (st2 & (1<<3)) != 0; + i2c_slave_new_compass_data(instance); + return true; +} + diff --git a/modules/driver_ak09916/driver_ak09916.h b/modules/driver_ak09916/driver_ak09916.h new file mode 100644 index 00000000..77d95522 --- /dev/null +++ b/modules/driver_ak09916/driver_ak09916.h @@ -0,0 +1,17 @@ +#include + +struct ak09916_instance_s { + struct icm20x48_instance_s *icm_dev; + struct { + uint64_t timestamp; + float x; + float y; + float z; + bool hofl; + } meas; +}; + +bool ak09916_init(struct ak09916_instance_s *instance, struct icm20x48_instance_s* icm_instance); +bool ak09916_update(struct ak09916_instance_s* instance); +void ak09916_recv_byte(uint8_t recv_byte_idx, uint8_t recv_byte); +uint8_t ak09916_send_byte(void); diff --git a/modules/driver_icm20x48/driver_icm20x48.c b/modules/driver_icm20x48/driver_icm20x48.c new file mode 100644 index 00000000..6883ce7d --- /dev/null +++ b/modules/driver_icm20x48/driver_icm20x48.c @@ -0,0 +1,147 @@ +#include "driver_icm20x48.h" +#include "icm20x48_internal.h" +#include +#include +#ifdef MODULE_UAVCAN_DEBUG_ENABLED +#include +#define ICM_DEBUG(...) uavcan_send_debug_msg(UAVCAN_PROTOCOL_DEBUG_LOGLEVEL_DEBUG, "ICM", __VA_ARGS__) +#else +#define ICM_DEBUG(...) {} +#endif + +static uint8_t icm20x48_get_whoami(enum icm20x48_imu_type_t imu_type); + +bool icm20x48_init(struct icm20x48_instance_s* instance, uint8_t spi_idx, uint32_t select_line, enum icm20x48_imu_type_t imu_type) { + // Ensure sufficient power-up time has elapsed + chThdSleep(MS2ST(100)); + + instance->curr_bank = 99; + + spi_device_init(&instance->spi_dev, spi_idx, select_line, 8000000, 16, SPI_DEVICE_FLAG_CPHA|SPI_DEVICE_FLAG_CPOL); + + if (icm20x48_read_reg(instance, ICM20948_REG_WHO_AM_I) != icm20x48_get_whoami(imu_type)) { + return false; + } + + // Read USER_CTRL, disable MST_I2C, write USER_CTRL, and wait long enough for any active I2C transaction to complete + icm20x48_write_reg(instance, ICM20948_REG_USER_CTRL, icm20x48_read_reg(instance, ICM20948_REG_USER_CTRL) & ~(1<<5)); + chThdSleep(MS2ST(10)); + // Perform a device reset, wait for completion, then wake the device + // Datasheet is unclear on time required for wait time after reset, but mentions 100ms under "start-up time for register read/write from power-up" + icm20x48_write_reg(instance, ICM20948_REG_PWR_MGMT_1, 1<<7); + usleep(10000); + + icm20x48_write_reg(instance, ICM20948_REG_PWR_MGMT_1, 1); + // Wait for reset to complete + { + uint32_t tbegin = chVTGetSystemTimeX(); + while (icm20x48_read_reg(instance, ICM20948_REG_PWR_MGMT_1) & 1<<7) { + uint32_t tnow = chVTGetSystemTimeX(); + if (tnow-tbegin > MS2ST(100)) { + return false; + } + } + } + + return true; +} + +void icm20x48_i2c_slv_read_enable(struct icm20x48_instance_s* instance) +{ + // Disable the I2C slave interface (SPI-only) and enable the I2C master interface to the AK09916 + icm20x48_write_reg(instance, ICM20948_REG_USER_CTRL, (1<<4)|(1<<5)); + + // Set up the I2C master clock as recommended in the datasheet + icm20x48_write_reg(instance, ICM20948_REG_I2C_MST_CTRL, 7); + + // Configure the I2C master to enable access at sample rate specified in SLV4 + icm20x48_write_reg(instance, ICM20948_REG_I2C_MST_DELAY_CTRL, 1<<7); +} + +bool icm20x48_i2c_slv_set_passthrough(struct icm20x48_instance_s* instance, uint8_t slv_id, uint8_t addr, uint8_t reg, uint8_t size) +{ + if (size > 15) { + return false; + } + //icm20x48_write_reg(instance, ICM20948_REG_I2C_MST_STATUS, 0); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV0_ADDR + 4*slv_id, addr); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV0_REG + 4*slv_id, reg); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV0_CTRL + 4*slv_id, (1<<7)|size); + return true; +} + +static void icm20x48_select_bank(struct icm20x48_instance_s* instance, uint8_t bank) { + uint16_t data = (ICM20948_REG_BANK_SEL << 8) | (bank<<4); + instance->curr_bank = bank; + spi_device_begin(&instance->spi_dev); + spi_device_send(&instance->spi_dev, 1, &data); + spi_device_end(&instance->spi_dev); +} + +uint8_t icm20x48_read_reg(struct icm20x48_instance_s* instance, uint16_t reg){ + + uint16_t _reg = (((uint16_t)(GET_REG(reg) | 0x80)) << 8); + uint16_t ret = 0; + uint8_t _bank = GET_BANK(reg); + if (_bank != instance->curr_bank) { + icm20x48_select_bank(instance, _bank); + } + spi_device_begin(&instance->spi_dev); + spi_device_exchange(&instance->spi_dev, 1, &_reg, &ret); + spi_device_end(&instance->spi_dev); + return ret; +} + +void icm20x48_write_reg(struct icm20x48_instance_s* instance, uint16_t reg, uint8_t value) { + uint8_t _bank = GET_BANK(reg); + uint16_t data = (((uint16_t)GET_REG(reg)) << 8) | value; + if (_bank != instance->curr_bank) { + icm20x48_select_bank(instance, _bank); + } + spi_device_begin(&instance->spi_dev); + spi_device_send(&instance->spi_dev, 1 , &data); + spi_device_end(&instance->spi_dev); +} + +static uint8_t icm20x48_get_whoami(enum icm20x48_imu_type_t imu_type) { + switch(imu_type) { + case ICM20x48_IMU_TYPE_ICM20948: + return 0xEA; + } + return 0; +} + +static bool icm20x48_i2c_slv_wait_for_completion(struct icm20x48_instance_s* instance, uint32_t timeout_us) { + uint32_t tbegin_us = micros(); + while(!(icm20x48_read_reg(instance, ICM20948_REG_I2C_MST_STATUS) & (1<<6))) { + if (micros() - tbegin_us > timeout_us) { + return false; + } + } + return true; +} + +bool icm20x48_i2c_slv_read(struct icm20x48_instance_s* instance, uint8_t address, uint8_t reg, uint8_t* ret) { + icm20x48_write_reg(instance, ICM20948_REG_I2C_MST_STATUS, 0); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV4_ADDR, address|0x80); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV4_REG, reg); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV4_CTRL, (1<<7)|(1<<6)); + if (!icm20x48_i2c_slv_wait_for_completion(instance, 10000)) { + return false; + } + *ret = icm20x48_read_reg(instance, ICM20948_REG_I2C_SLV4_DI); + return true; +} + +bool icm20x48_i2c_slv_write(struct icm20x48_instance_s* instance, uint8_t address, uint8_t reg, uint8_t value) { + icm20x48_write_reg(instance, ICM20948_REG_I2C_MST_STATUS, 0); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV4_ADDR, address); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV4_REG, reg); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV4_DO, value); + icm20x48_write_reg(instance, ICM20948_REG_I2C_SLV4_CTRL, (1<<7)|(1<<6)); + if (!icm20x48_i2c_slv_wait_for_completion(instance, 10000)) { + return false; + } + return true; +} + diff --git a/modules/driver_icm20x48/driver_icm20x48.h b/modules/driver_icm20x48/driver_icm20x48.h new file mode 100644 index 00000000..4a28553a --- /dev/null +++ b/modules/driver_icm20x48/driver_icm20x48.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +enum icm20x48_imu_type_t { + ICM20x48_IMU_TYPE_ICM20948, +}; + +struct icm20x48_instance_s { + struct spi_device_s spi_dev; + enum icm20x48_imu_type_t imu_type; + uint8_t curr_bank; +}; + +bool icm20x48_init(struct icm20x48_instance_s* instance, uint8_t spi_idx, uint32_t select_line, enum icm20x48_imu_type_t imu_type); +void icm20x48_i2c_slv_read_enable(struct icm20x48_instance_s* instance); +bool icm20x48_i2c_slv_set_passthrough(struct icm20x48_instance_s* instance, uint8_t slv_id, uint8_t addr, uint8_t reg, uint8_t size); +bool icm20x48_i2c_slv_read(struct icm20x48_instance_s* instance, uint8_t address, uint8_t reg, uint8_t* ret); +bool icm20x48_i2c_slv_write(struct icm20x48_instance_s* instance, uint8_t address, uint8_t reg, uint8_t value); +uint8_t icm20x48_read_reg(struct icm20x48_instance_s* instance, uint16_t reg); +void icm20x48_write_reg(struct icm20x48_instance_s* instance, uint16_t reg, uint8_t value); diff --git a/modules/driver_icm20x48/icm20x48_internal.h b/modules/driver_icm20x48/icm20x48_internal.h new file mode 100644 index 00000000..43b2207a --- /dev/null +++ b/modules/driver_icm20x48/icm20x48_internal.h @@ -0,0 +1,139 @@ +#pragma once + +#include "driver_icm20x48.h" + +#define REG_BANK0 0x00U +#define REG_BANK1 0x01U +#define REG_BANK2 0x02U +#define REG_BANK3 0x03U + + +#define ICM20x48_REG(b, r) ((((uint16_t)b) << 8)|(r)) +#define GET_BANK(r) ((r) >> 8) +#define GET_REG(r) ((r) & 0xFFU) +//Register Map +#define ICM20948_REG_WHO_AM_I ICM20x48_REG(REG_BANK0,0x00U) +#define ICM20948_REG_USER_CTRL ICM20x48_REG(REG_BANK0,0x03U) +#define ICM20948_REG_LP_CONFIG ICM20x48_REG(REG_BANK0,0x05U) +#define ICM20948_REG_PWR_MGMT_1 ICM20x48_REG(REG_BANK0,0x06U) +#define ICM20948_REG_PWR_MGMT_2 ICM20x48_REG(REG_BANK0,0x07U) +#define ICM20948_REG_INT_PIN_CFG ICM20x48_REG(REG_BANK0,0x0FU) +#define ICM20948_REG_INT_ENABLE ICM20x48_REG(REG_BANK0,0x10U) +#define ICM20948_REG_INT_ENABLE_1 ICM20x48_REG(REG_BANK0,0x11U) +#define ICM20948_REG_INT_ENABLE_2 ICM20x48_REG(REG_BANK0,0x12U) +#define ICM20948_REG_INT_ENABLE_3 ICM20x48_REG(REG_BANK0,0x13U) +#define ICM20948_REG_I2C_MST_STATUS ICM20x48_REG(REG_BANK0,0x17U) +#define ICM20948_REG_INT_STATUS ICM20x48_REG(REG_BANK0,0x19U) +#define ICM20948_REG_INT_STATUS_1 ICM20x48_REG(REG_BANK0,0x1AU) +#define ICM20948_REG_INT_STATUS_2 ICM20x48_REG(REG_BANK0,0x1BU) +#define ICM20948_REG_INT_STATUS_3 ICM20x48_REG(REG_BANK0,0x1CU) +#define ICM20948_REG_DELAY_TIMEH ICM20x48_REG(REG_BANK0,0x28U) +#define ICM20948_REG_DELAY_TIMEL ICM20x48_REG(REG_BANK0,0x29U) +#define ICM20948_REG_ACCEL_XOUT_H ICM20x48_REG(REG_BANK0,0x2DU) +#define ICM20948_REG_ACCEL_XOUT_L ICM20x48_REG(REG_BANK0,0x2EU) +#define ICM20948_REG_ACCEL_YOUT_H ICM20x48_REG(REG_BANK0,0x2FU) +#define ICM20948_REG_ACCEL_YOUT_L ICM20x48_REG(REG_BANK0,0x30U) +#define ICM20948_REG_ACCEL_ZOUT_H ICM20x48_REG(REG_BANK0,0x31U) +#define ICM20948_REG_ACCEL_ZOUT_L ICM20x48_REG(REG_BANK0,0x32U) +#define ICM20948_REG_GYRO_XOUT_H ICM20x48_REG(REG_BANK0,0x33U) +#define ICM20948_REG_GYRO_XOUT_L ICM20x48_REG(REG_BANK0,0x34U) +#define ICM20948_REG_GYRO_YOUT_H ICM20x48_REG(REG_BANK0,0x35U) +#define ICM20948_REG_GYRO_YOUT_L ICM20x48_REG(REG_BANK0,0x36U) +#define ICM20948_REG_GYRO_ZOUT_H ICM20x48_REG(REG_BANK0,0x37U) +#define ICM20948_REG_GYRO_ZOUT_L ICM20x48_REG(REG_BANK0,0x38U) +#define ICM20948_REG_TEMP_OUT_H ICM20x48_REG(REG_BANK0,0x39U) +#define ICM20948_REG_TEMP_OUT_L ICM20x48_REG(REG_BANK0,0x3AU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_00 ICM20x48_REG(REG_BANK0,0x3BU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_01 ICM20x48_REG(REG_BANK0,0x3CU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_02 ICM20x48_REG(REG_BANK0,0x3DU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_03 ICM20x48_REG(REG_BANK0,0x3EU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_04 ICM20x48_REG(REG_BANK0,0x3FU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_05 ICM20x48_REG(REG_BANK0,0x40U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_06 ICM20x48_REG(REG_BANK0,0x41U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_07 ICM20x48_REG(REG_BANK0,0x42U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_08 ICM20x48_REG(REG_BANK0,0x43U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_09 ICM20x48_REG(REG_BANK0,0x44U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_10 ICM20x48_REG(REG_BANK0,0x45U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_11 ICM20x48_REG(REG_BANK0,0x46U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_12 ICM20x48_REG(REG_BANK0,0x47U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_13 ICM20x48_REG(REG_BANK0,0x48U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_14 ICM20x48_REG(REG_BANK0,0x49U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_15 ICM20x48_REG(REG_BANK0,0x4AU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_16 ICM20x48_REG(REG_BANK0,0x4BU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_17 ICM20x48_REG(REG_BANK0,0x4CU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_18 ICM20x48_REG(REG_BANK0,0x4DU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_19 ICM20x48_REG(REG_BANK0,0x4EU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_20 ICM20x48_REG(REG_BANK0,0x4FU) +#define ICM20948_REG_EXT_SLV_SENS_DATA_21 ICM20x48_REG(REG_BANK0,0x50U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_22 ICM20x48_REG(REG_BANK0,0x51U) +#define ICM20948_REG_EXT_SLV_SENS_DATA_23 ICM20x48_REG(REG_BANK0,0x52U) +#define ICM20948_REG_FIFO_EN_1 ICM20x48_REG(REG_BANK0,0x66U) +#define ICM20948_REG_FIFO_EN_2 ICM20x48_REG(REG_BANK0,0x67U) +#define ICM20948_REG_FIFO_RST ICM20x48_REG(REG_BANK0,0x68U) +#define ICM20948_REG_FIFO_MODE ICM20x48_REG(REG_BANK0,0x69U) +#define ICM20948_REG_FIFO_COUNTH ICM20x48_REG(REG_BANK0,0x70U) +#define ICM20948_REG_FIFO_COUNTL ICM20x48_REG(REG_BANK0,0x71U) +#define ICM20948_REG_FIFO_R_W ICM20x48_REG(REG_BANK0,0x72U) +#define ICM20948_REG_DATA_RDY_STATUS ICM20x48_REG(REG_BANK0,0x74U) +#define ICM20948_REG_FIFO_CFG ICM20x48_REG(REG_BANK0,0x76U) + +#define ICM20948_REG_SELF_TEST_X_GYRO ICM20x48_REG(REG_BANK1,0x02U) +#define ICM20948_REG_SELF_TEST_Y_GYRO ICM20x48_REG(REG_BANK1,0x03U) +#define ICM20948_REG_SELF_TEST_Z_GYRO ICM20x48_REG(REG_BANK1,0x04U) +#define ICM20948_REG_SELF_TEST_X_ACCEL ICM20x48_REG(REG_BANK1,0x0EU) +#define ICM20948_REG_SELF_TEST_Y_ACCEL ICM20x48_REG(REG_BANK1,0x0FU) +#define ICM20948_REG_SELF_TEST_Z_ACCEL ICM20x48_REG(REG_BANK1,0x10U) +#define ICM20948_REG_XA_OFFS_H ICM20x48_REG(REG_BANK1,0x14U) +#define ICM20948_REG_XA_OFFS_L ICM20x48_REG(REG_BANK1,0x15U) +#define ICM20948_REG_YA_OFFS_H ICM20x48_REG(REG_BANK1,0x17U) +#define ICM20948_REG_YA_OFFS_L ICM20x48_REG(REG_BANK1,0x18U) +#define ICM20948_REG_ZA_OFFS_H ICM20x48_REG(REG_BANK1,0x1AU) +#define ICM20948_REG_ZA_OFFS_L ICM20x48_REG(REG_BANK1,0x1BU) +#define ICM20948_REG_TIMEBASE_CORRECTIO ICM20x48_REG(REG_BANK1,0x28U) + +#define ICM20948_REG_GYRO_SMPLRT_DIV ICM20x48_REG(REG_BANK2,0x00U) +#define ICM20948_REG_GYRO_CONFIG_1 ICM20x48_REG(REG_BANK2,0x01U) +#define ICM20948_REG_2 ICM20x48_REG(REG_BANK2,0xCEU) +#define ICM20948_REG_XG_OFFS_USRH ICM20x48_REG(REG_BANK2,0x03U) +#define ICM20948_REG_XG_OFFS_USRL ICM20x48_REG(REG_BANK2,0x04U) +#define ICM20948_REG_YG_OFFS_USRH ICM20x48_REG(REG_BANK2,0x05U) +#define ICM20948_REG_YG_OFFS_USRL ICM20x48_REG(REG_BANK2,0x06U) +#define ICM20948_REG_ZG_OFFS_USRH ICM20x48_REG(REG_BANK2,0x07U) +#define ICM20948_REG_ZG_OFFS_USRL ICM20x48_REG(REG_BANK2,0x08U) +#define ICM20948_REG_ODR_ALIGN_EN ICM20x48_REG(REG_BANK2,0x09U) +#define ICM20948_REG_ACCEL_SMPLRT_DIV_1 ICM20x48_REG(REG_BANK2,0x10U) +#define ICM20948_REG_ACCEL_SMPLRT_DIV_2 ICM20x48_REG(REG_BANK2,0x11U) +#define ICM20948_REG_ACCEL_INTEL_CTRL ICM20x48_REG(REG_BANK2,0x12U) +#define ICM20948_REG_ACCEL_WOM_THR ICM20x48_REG(REG_BANK2,0x13U) +#define ICM20948_REG_ACCEL_CONFIG ICM20x48_REG(REG_BANK2,0x14U) +#define ICM20948_REG_21 ICM20x48_REG(REG_BANK2,0xCEU) +#define ICM20948_REG_FSYNC_CONFIG ICM20x48_REG(REG_BANK2,0x52U) +#define ICM20948_REG_TEMP_CONFIG ICM20x48_REG(REG_BANK2,0x53U) +#define ICM20948_REG_MOD_CTRL_USR ICM20x48_REG(REG_BANK2,0x54U) + +#define ICM20948_REG_I2C_MST_ODR_CONFIG ICM20x48_REG(REG_BANK3,0x00U) +#define ICM20948_REG_I2C_MST_CTRL ICM20x48_REG(REG_BANK3,0x01U) +#define ICM20948_REG_I2C_MST_DELAY_CTRL ICM20x48_REG(REG_BANK3,0x02U) +#define ICM20948_REG_I2C_SLV0_ADDR ICM20x48_REG(REG_BANK3,0x03U) +#define ICM20948_REG_I2C_SLV0_REG ICM20x48_REG(REG_BANK3,0x04U) +#define ICM20948_REG_I2C_SLV0_CTRL ICM20x48_REG(REG_BANK3,0x05U) +#define ICM20948_REG_I2C_SLV0_DO ICM20x48_REG(REG_BANK3,0x06U) +#define ICM20948_REG_I2C_SLV1_ADDR ICM20x48_REG(REG_BANK3,0x07U) +#define ICM20948_REG_I2C_SLV1_REG ICM20x48_REG(REG_BANK3,0x08U) +#define ICM20948_REG_I2C_SLV1_CTRL ICM20x48_REG(REG_BANK3,0x09U) +#define ICM20948_REG_I2C_SLV1_DO ICM20x48_REG(REG_BANK3,0x0AU) +#define ICM20948_REG_I2C_SLV2_ADDR ICM20x48_REG(REG_BANK3,0x0BU) +#define ICM20948_REG_I2C_SLV2_REG ICM20x48_REG(REG_BANK3,0x0CU) +#define ICM20948_REG_I2C_SLV2_CTRL ICM20x48_REG(REG_BANK3,0x0DU) +#define ICM20948_REG_I2C_SLV2_DO ICM20x48_REG(REG_BANK3,0x0EU) +#define ICM20948_REG_I2C_SLV3_ADDR ICM20x48_REG(REG_BANK3,0x0FU) +#define ICM20948_REG_I2C_SLV3_REG ICM20x48_REG(REG_BANK3,0x10U) +#define ICM20948_REG_I2C_SLV3_CTRL ICM20x48_REG(REG_BANK3,0x11U) +#define ICM20948_REG_I2C_SLV3_DO ICM20x48_REG(REG_BANK3,0x12U) +#define ICM20948_REG_I2C_SLV4_ADDR ICM20x48_REG(REG_BANK3,0x13U) +#define ICM20948_REG_I2C_SLV4_REG ICM20x48_REG(REG_BANK3,0x14U) +#define ICM20948_REG_I2C_SLV4_CTRL ICM20x48_REG(REG_BANK3,0x15U) +#define ICM20948_REG_I2C_SLV4_DO ICM20x48_REG(REG_BANK3,0x16U) +#define ICM20948_REG_I2C_SLV4_DI ICM20x48_REG(REG_BANK3,0x17U) + +#define ICM20948_REG_BANK_SEL 0x7F \ No newline at end of file From f2be9d085e8e7c76f510050abbc0c04a3c99903f Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Wed, 26 Sep 2018 16:25:13 +0530 Subject: [PATCH 05/13] add build files to list of ignored files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index fbfa7d1b..30328b2d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ **/*.pyc +*.o.* From 6e677f8762c8aa8cf1455ca4193d0215a05c0ce5 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Wed, 26 Sep 2018 16:25:55 +0530 Subject: [PATCH 06/13] modules: spi_device: fix setting for SPI Clock --- modules/spi_device/spi_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/spi_device/spi_device.c b/modules/spi_device/spi_device.c index 6ccf1155..ddd36b60 100644 --- a/modules/spi_device/spi_device.c +++ b/modules/spi_device/spi_device.c @@ -124,7 +124,7 @@ void spi_device_exchange(struct spi_device_s* dev, uint32_t n, const void* txbuf static SPIConfig spi_make_config(struct spi_device_s* dev) { uint8_t br_regval; - for (br_regval=0; br_regval<8; br_regval++) { + for (br_regval=0; br_regval<7; br_regval++) { if ((uint32_t)STM32_SPIx_CLK(dev->bus_idx)/(2<max_speed_hz) { break; } From 118731bed23813de5929ee3f05dc339af6cb609a Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Wed, 26 Sep 2018 16:26:49 +0530 Subject: [PATCH 07/13] examples: add ak09916 example --- examples/driver_ak09916/Makefile | 32 +++++++ .../board/com.hex.here+_2.0/board.c | 81 ++++++++++++++++ .../board/com.hex.here+_2.0/board.h | 34 +++++++ .../board/com.hex.here+_2.0/board.mk | 4 + .../board/com.hex.here+_2.0/mcuconf.h | 83 +++++++++++++++++ examples/driver_ak09916/include/app_config.h | 10 ++ .../driver_ak09916/include/framework_conf.h | 40 ++++++++ examples/driver_ak09916/openocd.cfg | 5 + examples/driver_ak09916/src/ak09916_test.c | 92 +++++++++++++++++++ examples/driver_ak09916/src/setup.c | 8 ++ 10 files changed, 389 insertions(+) create mode 100755 examples/driver_ak09916/Makefile create mode 100644 examples/driver_ak09916/board/com.hex.here+_2.0/board.c create mode 100644 examples/driver_ak09916/board/com.hex.here+_2.0/board.h create mode 100644 examples/driver_ak09916/board/com.hex.here+_2.0/board.mk create mode 100644 examples/driver_ak09916/board/com.hex.here+_2.0/mcuconf.h create mode 100644 examples/driver_ak09916/include/app_config.h create mode 100644 examples/driver_ak09916/include/framework_conf.h create mode 100644 examples/driver_ak09916/openocd.cfg create mode 100644 examples/driver_ak09916/src/ak09916_test.c create mode 100644 examples/driver_ak09916/src/setup.c diff --git a/examples/driver_ak09916/Makefile b/examples/driver_ak09916/Makefile new file mode 100755 index 00000000..e76e6216 --- /dev/null +++ b/examples/driver_ak09916/Makefile @@ -0,0 +1,32 @@ +CSRC = $(shell find src -name "*.c") +INCDIR = ./include +USE_OPT = -O1 -g +USE_LTO = no +MODULES_ENABLED = \ +chibios_sys_init \ +chibios_hal_init \ +app_descriptor \ +boot_msg \ +timing \ +system \ +pubsub \ +worker_thread \ +can_driver_stm32 \ +can \ +can_autobaud \ +uavcan \ +uavcan_nodestatus_publisher \ +uavcan_getnodeinfo_server \ +uavcan_beginfirmwareupdate_server \ +uavcan_allocatee \ +uavcan_restart \ +freemem_check \ +spi_device \ +uavcan_debug \ +driver_ak09916 \ +driver_icm20x48 + +MESSAGES_ENABLED = \ +uavcan.protocol.debug.LogMessage + +include ../../include.mk diff --git a/examples/driver_ak09916/board/com.hex.here+_2.0/board.c b/examples/driver_ak09916/board/com.hex.here+_2.0/board.c new file mode 100644 index 00000000..3ac27fcb --- /dev/null +++ b/examples/driver_ak09916/board/com.hex.here+_2.0/board.c @@ -0,0 +1,81 @@ +#include +#define TOSHIBALED_I2C_ADDRESS 0x55 +#define AK09916_I2C_ADDRESS 0x0C + +/** + * @name TIMINGR register definitions + * @{ + */ +#define STM32_TIMINGR_PRESC_MASK (15U << 28) +#define STM32_TIMINGR_PRESC(n) ((n) << 28) +#define STM32_TIMINGR_SCLDEL_MASK (15U << 20) +#define STM32_TIMINGR_SCLDEL(n) ((n) << 20) +#define STM32_TIMINGR_SDADEL_MASK (15U << 16) +#define STM32_TIMINGR_SDADEL(n) ((n) << 16) +#define STM32_TIMINGR_SCLH_MASK (255U << 8) +#define STM32_TIMINGR_SCLH(n) ((n) << 8) +#define STM32_TIMINGR_SCLL_MASK (255U << 0) +#define STM32_TIMINGR_SCLL(n) ((n) << 0) + +void boardInit(void) { + palSetLineMode(BOARD_PAL_LINE_SPI3_SCK, PAL_MODE_ALTERNATE(6) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_PULLDOWN); // SPI3 SCK + palSetLineMode(BOARD_PAL_LINE_SPI3_MISO, PAL_MODE_ALTERNATE(6) | PAL_STM32_OSPEED_HIGHEST); // SPI3 MISO + palSetLineMode(BOARD_PAL_LINE_SPI3_MOSI, PAL_MODE_ALTERNATE(6) | PAL_STM32_OSPEED_HIGHEST); // SPI3 MOSI + palSetLineMode(BOARD_PAL_LINE_SPI3_ICM_CS, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); // SPI CS + palSetLineMode(BOARD_PAL_LINE_SPI3_MS5611_CS, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); // SPI CS + palSetLineMode(BOARD_PAL_LINE_CAN_RX, PAL_MODE_ALTERNATE(9) | PAL_STM32_OSPEED_HIGHEST); + palSetLineMode(BOARD_PAL_LINE_CAN_TX, PAL_MODE_ALTERNATE(9) | PAL_STM32_OSPEED_HIGHEST); + palSetLineMode(BOARD_PAL_LINE_GPS_RX, PAL_MODE_ALTERNATE(7) | PAL_STM32_OSPEED_HIGHEST); //GPS Rx USART2_Rx + palSetLineMode(BOARD_PAL_LINE_GPS_TX, PAL_MODE_ALTERNATE(7) | PAL_STM32_OSPEED_HIGHEST); //GPS Tx USART2_Tx + palSetLineMode(BOARD_PAL_LINE_I2C_SLAVE_SCL, PAL_MODE_ALTERNATE(4)); + palSetLineMode(BOARD_PAL_LINE_I2C_SLAVE_SDA, PAL_MODE_ALTERNATE(4)); + + + //Setup I2C slave + + rccEnableI2C2(FALSE); + rccResetI2C2(); + + //Disable I2C + I2C2->CR1 &= ~I2C_CR1_PE; + + //Enable Analog Filter + I2C2->CR1 &= ~I2C_CR1_ANFOFF; + + //Disable Digital Filter + I2C2->CR1 &= ~(I2C_CR1_DNF); + + //Set Prescaler + I2C2->TIMINGR = (I2C2->TIMINGR & ~STM32_TIMINGR_PRESC_MASK) | + (STM32_TIMINGR_PRESC(8)); + + //Set Data Setup Time + I2C2->TIMINGR = (I2C2->TIMINGR & ~STM32_TIMINGR_SCLDEL_MASK) | + (STM32_TIMINGR_SCLDEL(9)); + + + + //Set Data Hold Time + I2C2->TIMINGR = (I2C2->TIMINGR & ~STM32_TIMINGR_SDADEL_MASK) | + (STM32_TIMINGR_SDADEL(11)); + + //Enable Stretching + I2C2->CR1 &= ~I2C_CR1_NOSTRETCH; + + //7Bit Address Mode + I2C2->CR2 &= ~I2C_CR2_ADD10; + + + I2C2->OAR1 = (TOSHIBALED_I2C_ADDRESS & 0xFF) << 1; //Emulate Toshiba LED I2C Slave + I2C2->OAR1 |= (1<<15); + I2C2->OAR2 = (AK09916_I2C_ADDRESS & 0xFF) << 1; //Emulate AK09916 I2C Slave + I2C2->OAR2 |= (1<<15); + //Enable I2C interrupt + nvicEnableVector(I2C2_EV_IRQn, 3); + + I2C2->CR1 |= (1<<1); // TXIE + I2C2->CR1 |= (1<<2); // RXIE + I2C2->CR1 |= (1<<3); // ADDRIE + I2C2->CR1 |= I2C_CR1_PE; +} + diff --git a/examples/driver_ak09916/board/com.hex.here+_2.0/board.h b/examples/driver_ak09916/board/com.hex.here+_2.0/board.h new file mode 100644 index 00000000..beb19ad6 --- /dev/null +++ b/examples/driver_ak09916/board/com.hex.here+_2.0/board.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include + +#define BOARD_CONFIG_HW_NAME "org.hex.here+" +#define BOARD_CONFIG_HW_MAJOR_VER 2 +#define BOARD_CONFIG_HW_MINOR_VER 0 + +#define BOARD_CONFIG_HW_INFO_STRUCTURE { \ + .hw_name = BOARD_CONFIG_HW_NAME, \ + .hw_major_version = BOARD_CONFIG_HW_MAJOR_VER, \ + .hw_minor_version = BOARD_CONFIG_HW_MINOR_VER, \ + .board_desc_fmt = SHARED_HW_INFO_BOARD_DESC_FMT_NONE, \ + .board_desc = 0, \ +} + +#define BOARD_PAL_LINE_SPI3_SCK PAL_LINE(GPIOB,3) +#define BOARD_PAL_LINE_SPI3_MISO PAL_LINE(GPIOB,4) +#define BOARD_PAL_LINE_SPI3_MOSI PAL_LINE(GPIOB,5) +#define BOARD_PAL_LINE_SPI3_ICM_CS PAL_LINE(GPIOB,0) // NOTE: never drive high by external source +#define BOARD_PAL_LINE_SPI3_MS5611_CS PAL_LINE(GPIOA,5) +#define BOARD_PAL_LINE_CAN_RX PAL_LINE(GPIOA,11) +#define BOARD_PAL_LINE_CAN_TX PAL_LINE(GPIOA,12) +#define BOARD_PAL_LINE_GPS_RX PAL_LINE(GPIOA,2) +#define BOARD_PAL_LINE_GPS_TX PAL_LINE(GPIOA,3) +#define BOARD_PAL_LINE_I2C_SLAVE_SCL PAL_LINE(GPIOA,9) +#define BOARD_PAL_LINE_I2C_SLAVE_SDA PAL_LINE(GPIOA,10) + + +#define GPS_SERIAL SD2 + +#define HAL_USE_SERIAL TRUE +#define SERIAL_BUFFERS_SIZE 32 diff --git a/examples/driver_ak09916/board/com.hex.here+_2.0/board.mk b/examples/driver_ak09916/board/com.hex.here+_2.0/board.mk new file mode 100644 index 00000000..18649f37 --- /dev/null +++ b/examples/driver_ak09916/board/com.hex.here+_2.0/board.mk @@ -0,0 +1,4 @@ +BOARD_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) +BOARD_SRC = $(BOARD_DIR)/board.c +BOARD_INC = $(BOARD_DIR) +MODULES_ENABLED += platform_stm32f302x8 diff --git a/examples/driver_ak09916/board/com.hex.here+_2.0/mcuconf.h b/examples/driver_ak09916/board/com.hex.here+_2.0/mcuconf.h new file mode 100644 index 00000000..94c51753 --- /dev/null +++ b/examples/driver_ak09916/board/com.hex.here+_2.0/mcuconf.h @@ -0,0 +1,83 @@ +#pragma once + +#define STM32F3xx_MCUCONF +#define STM32_HSECLK 24000000 + +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PREDIV_VALUE 3 +#define STM32_PLLMUL_VALUE 9 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADC12PRES STM32_ADC12PRES_DIV1 +#define STM32_ADC34PRES STM32_ADC34PRES_DIV1 +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_USART2SW STM32_USART2SW_PCLK +#define STM32_USART3SW STM32_USART3SW_PCLK +#define STM32_UART4SW STM32_UART4SW_PCLK +#define STM32_UART5SW STM32_UART5SW_PCLK +#define STM32_I2C1SW STM32_I2C1SW_SYSCLK +#define STM32_I2C2SW STM32_I2C2SW_SYSCLK +#define STM32_TIM1SW STM32_TIM1SW_PCLK2 +#define STM32_TIM8SW STM32_TIM8SW_PCLK2 +#define STM32_RTCSEL STM32_RTCSEL_LSI +#define STM32_USB_CLOCK_REQUIRED FALSE +#define STM32_USBPRE STM32_USBPRE_DIV1P5 + +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 TRUE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 TRUE +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_SERIAL_USART1_PRIORITY 12 +#define STM32_SERIAL_USART2_PRIORITY 12 +#define STM32_SERIAL_USART3_PRIORITY 12 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_CAN1 TRUE +#define STM32_CAN_CAN1_IRQ_PRIORITY 11 + +#define STM32_ST_IRQ_PRIORITY 8 +#define STM32_ST_USE_TIMER 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI20_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI21_22_29_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI30_32_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI33_IRQ_PRIORITY 6 \ No newline at end of file diff --git a/examples/driver_ak09916/include/app_config.h b/examples/driver_ak09916/include/app_config.h new file mode 100644 index 00000000..9eadd067 --- /dev/null +++ b/examples/driver_ak09916/include/app_config.h @@ -0,0 +1,10 @@ +#pragma once + +#define APP_CONFIG_BOOT_DELAY_SEC 0 +#define APP_CONFIG_CAN_DEFAULT_BAUDRATE 1000000 +#define APP_CONFIG_CAN_LOCAL_NODE_ID 0 +#define APP_CONFIG_CAN_AUTO_BAUD_ENABLE 0 + +#define SHARED_APP_DESCRIPTOR_MAJOR_VERSION 1 +#define SHARED_APP_DESCRIPTOR_MINOR_VERSION 0 + diff --git a/examples/driver_ak09916/include/framework_conf.h b/examples/driver_ak09916/include/framework_conf.h new file mode 100644 index 00000000..ad64a047 --- /dev/null +++ b/examples/driver_ak09916/include/framework_conf.h @@ -0,0 +1,40 @@ +#pragma once + +// +// Configure worker threads +// + +#define TIMING_WORKER_THREAD lpwork_thread +#define UAVCAN_NODESTATUS_PUBLISHER_WORKER_THREAD lpwork_thread +#define CAN_AUTOBAUD_WORKER_THREAD lpwork_thread +#define UAVCAN_PARAM_INTERFACE_WORKER_THREAD lpwork_thread +#define UAVCAN_GETNODEINFO_SERVER_WORKER_THREAD lpwork_thread +#define UAVCAN_RESTART_WORKER_THREAD lpwork_thread +#define UAVCAN_BEGINFIRMWAREUPDATE_SERVER_WORKER_THREAD lpwork_thread +#define UAVCAN_ALLOCATEE_WORKER_THREAD lpwork_thread +#define PIN_CHANGE_PUBLISHER_WORKER_THREAD lpwork_thread + +#define CAN_TRX_WORKER_THREAD can_thread +#define CAN_EXPIRE_WORKER_THREAD can_thread +#define UAVCAN_RX_WORKER_THREAD can_thread + +// +// Configure topic groups +// + +#define PUBSUB_DEFAULT_TOPIC_GROUP default_topic_group + +// +// Misc configs +// + +#define REQUIRED_RAM_MARGIN_AFTER_INIT 512 + +// +// Configure debug checks +// + +#define CH_DBG_SYSTEM_STATE_CHECK TRUE +#define CH_DBG_ENABLE_CHECKS TRUE +#define CH_DBG_ENABLE_ASSERTS TRUE +#define CH_DBG_ENABLE_STACK_CHECK TRUE diff --git a/examples/driver_ak09916/openocd.cfg b/examples/driver_ak09916/openocd.cfg new file mode 100644 index 00000000..bd7b216c --- /dev/null +++ b/examples/driver_ak09916/openocd.cfg @@ -0,0 +1,5 @@ +source [find interface/stlink-v2.cfg] +source [find target/stm32f3x.cfg] +init +reset run +#$_TARGETNAME configure -rtos ChibiOS diff --git a/examples/driver_ak09916/src/ak09916_test.c b/examples/driver_ak09916/src/ak09916_test.c new file mode 100644 index 00000000..44183034 --- /dev/null +++ b/examples/driver_ak09916/src/ak09916_test.c @@ -0,0 +1,92 @@ +#include +#include +#include +#include +#include + +#define WT hpwork_thread +WORKER_THREAD_DECLARE_EXTERN(WT) + +#define AK09916_I2C_ADDR 0x0C + + +static struct ak09916_instance_s ak09916; +static struct icm20x48_instance_s icm20x48; +static struct worker_thread_timer_task_s ak09916_test_task; +static void ak09916_test_task_func(struct worker_thread_timer_task_s* task); +bool ak09916_initialised; +RUN_AFTER(INIT_END) { + for (uint8_t i = 0; i < 5; i++) { + if (icm20x48_init(&icm20x48, 3, BOARD_PAL_LINE_SPI3_ICM_CS, ICM20x48_IMU_TYPE_ICM20948)) { + if (ak09916_init(&ak09916, &icm20x48)) { + ak09916_initialised = true; + break; + } + } + usleep(10000); + } + worker_thread_add_timer_task(&WT, &ak09916_test_task, ak09916_test_task_func, NULL, MS2ST(1), true); +} + +static void ak09916_test_task_func(struct worker_thread_timer_task_s* task) { + (void)task; + if (!ak09916_initialised) { + if (icm20x48_init(&icm20x48, 3, BOARD_PAL_LINE_SPI3_ICM_CS, ICM20x48_IMU_TYPE_ICM20948)) { + if (ak09916_init(&ak09916, &icm20x48)) { + ak09916_initialised = true; + } + } + usleep(10000); + } else if (ak09916_update(&ak09916)) { + uavcan_send_debug_keyvalue("magX", ak09916.meas.x); + uavcan_send_debug_keyvalue("magY", ak09916.meas.y); + uavcan_send_debug_keyvalue("magZ", ak09916.meas.z); + } +} + +void i2c_serve_interrupt(uint32_t isr) { + static uint8_t i2c2_transfer_byte_idx; + static uint8_t i2c2_transfer_address; + static uint8_t i2c2_transfer_direction; + if (isr & (1<<3)) { // ADDR + i2c2_transfer_address = (isr >> 17) & 0x7FU; // ADDCODE + i2c2_transfer_direction = (isr >> 16) & 1; // direction + i2c2_transfer_byte_idx = 0; + if (i2c2_transfer_direction) { + I2C2->ISR |= (1<<0); // TXE + } + I2C2->ICR |= (1<<3); // ADDRCF + } + + if (isr & I2C_ISR_RXNE) { + uint8_t recv_byte = I2C2->RXDR & 0xff;; // reading clears our interrupt flag + switch(i2c2_transfer_address) { + case AK09916_I2C_ADDR: + ak09916_recv_byte(i2c2_transfer_byte_idx, recv_byte); + break; + } + i2c2_transfer_byte_idx++; + } + + if (isr & I2C_ISR_TXIS) { + uint8_t send_byte = 0; + switch(i2c2_transfer_address) { + case AK09916_I2C_ADDR: + send_byte = ak09916_send_byte(); + break; + } + I2C2->TXDR = send_byte; + + i2c2_transfer_byte_idx++; + } +} + +OSAL_IRQ_HANDLER(STM32_I2C2_EVENT_HANDLER) { + uint32_t isr = I2C2->ISR; + + OSAL_IRQ_PROLOGUE(); + + i2c_serve_interrupt(isr); + + OSAL_IRQ_EPILOGUE(); +} diff --git a/examples/driver_ak09916/src/setup.c b/examples/driver_ak09916/src/setup.c new file mode 100644 index 00000000..53ad7f5d --- /dev/null +++ b/examples/driver_ak09916/src/setup.c @@ -0,0 +1,8 @@ +#include +#include + +WORKER_THREAD_TAKEOVER_MAIN(lpwork_thread, LOWPRIO) +WORKER_THREAD_SPAWN(can_thread, LOWPRIO, 1024) +WORKER_THREAD_SPAWN(hpwork_thread, HIGHPRIO, 1024) + +PUBSUB_TOPIC_GROUP_CREATE(default_topic_group, 1024) From 8b85b758ecda8bead50479399335fef14d98a89e Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Mon, 8 Oct 2018 22:01:21 +0530 Subject: [PATCH 08/13] uavcan: fix issue with node id allocation --- modules/gps/gps.c | 2 +- modules/uavcan/uavcan.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/gps/gps.c b/modules/gps/gps.c index f92e19b7..678d0088 100644 --- a/modules/gps/gps.c +++ b/modules/gps/gps.c @@ -53,7 +53,7 @@ bool gps_init(struct gps_handle_s* gps_handle) return false; } gps_handle->state = MESSAGE_EMPTY; - memset(gps_handle->parser_buffer, 0, sizeof(struct gps_handle_s)); + memset(gps_handle->parser_buffer, 0, PARSER_BUFFER_SIZE * sizeof(uint8_t)); gps_handle->parser_cnt = 0; return true; } diff --git a/modules/uavcan/uavcan.c b/modules/uavcan/uavcan.c index 37e1f7f7..d87957d6 100644 --- a/modules/uavcan/uavcan.c +++ b/modules/uavcan/uavcan.c @@ -5,6 +5,7 @@ #include #include #include +#include #ifdef MODULE_BOOT_MSG_ENABLED #include @@ -94,7 +95,10 @@ static struct uavcan_instance_s* uavcan_instance_list_head; #ifdef MODULE_PARAM_ENABLED #include -PARAM_DEFINE_UINT8_PARAM_STATIC(node_id_param, "uavcan.node_id", 0, 0, 125) +#ifndef UAVCAN_DEFAULT_NODE_ID +#define UAVCAN_DEFAULT_NODE_ID 0 +#endif +PARAM_DEFINE_UINT8_PARAM_STATIC(node_id_param, "uavcan.node_id", UAVCAN_DEFAULT_NODE_ID, 0, 125) #endif RUN_ON(UAVCAN_INIT) { @@ -144,7 +148,7 @@ static void uavcan_init(uint8_t can_dev_idx) { #endif #ifdef MODULE_PARAM_ENABLED - if (node_id_param != 0) { + if (node_id_param != 0 && node_id == 0) { node_id = node_id_param; } #endif From cffb61e4dd0a9a2b4a6657742692abf0304bf631 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Mon, 8 Oct 2018 22:10:07 +0530 Subject: [PATCH 09/13] profiled: check if color array already allocated outside init --- modules/driver_profiLED/profiLED.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/driver_profiLED/profiLED.c b/modules/driver_profiLED/profiLED.c index 4eff7d40..28afc8ec 100644 --- a/modules/driver_profiLED/profiLED.c +++ b/modules/driver_profiLED/profiLED.c @@ -2,6 +2,7 @@ #include #include "profiLED.h" #include +#include #define MAX_NUM_PROFILEDS 64 #define PROFILED_OUTPUT_BUFFER_SIZE PROFILED_GEN_BUF_SIZE(MAX_NUM_PROFILEDS) @@ -32,7 +33,10 @@ void profiLED_init(struct profiLED_instance_s* instance, uint8_t spi_bus_idx, ui #endif size_t colors_size = sizeof(struct profiLED_gen_color_s) * num_leds; +#ifndef PROFILED_COLOR_ALLOCATED instance->colors = chHeapAlloc(NULL, colors_size); +#endif + if (!instance->colors) goto fail; memset(instance->colors, 0, colors_size); @@ -46,7 +50,9 @@ void profiLED_init(struct profiLED_instance_s* instance, uint8_t spi_bus_idx, ui return; fail: +#ifndef PROFILED_COLOR_ALLOCATED chHeapFree(instance->colors); +#endif instance->colors = NULL; } From c07cf1c9382732b63d99d116cf885a69fdcdc7e2 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Fri, 19 Oct 2018 14:34:58 +0800 Subject: [PATCH 10/13] dsdlc: fix nested array compound type message generation --- modules/uavcan/canard_dsdlc/templates/msg.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/modules/uavcan/canard_dsdlc/templates/msg.c b/modules/uavcan/canard_dsdlc/templates/msg.c index 97cfe022..c8636384 100644 --- a/modules/uavcan/canard_dsdlc/templates/msg.c +++ b/modules/uavcan/canard_dsdlc/templates/msg.c @@ -177,13 +177,30 @@ void _decode_@(msg_underscored_name)(const CanardRxTransfer* transfer, uint32_t* @(ind)*bit_ofs += @(array_len_field_bitlen(field.type)); @[ if field == msg_fields[-1] and field.type.value_type.get_min_bitlen() >= 8]@ @{indent -= 1}@{ind = ' '*indent}@ +@[ if field.type.value_type.category == field.type.value_type.CATEGORY_PRIMITIVE]@ @(ind)} else { @{indent += 1}@{ind = ' '*indent}@ @(ind)msg->@(field.name)_len = ((transfer->payload_len*8)-*bit_ofs)/@(field.type.value_type.bitlen); @{indent -= 1}@{ind = ' '*indent}@ +@[ end if]@ @(ind)} @[ end if]@ +@[ if field.type.value_type.category == field.type.value_type.CATEGORY_COMPOUND]@ + +@(ind)if (tao) { +@{indent += 1}@{ind = ' '*indent}@ +msg->@(field.name)_len = 0; +@(ind)while (((transfer->payload_len*8)-*bit_ofs) > 0) { +@{indent += 1}@{ind = ' '*indent}@ +@(ind)_decode_@(underscored_name(field.type.value_type))(transfer, bit_ofs, &msg->@(field.name)[msg->@(field.name)_len], @[if field == msg_fields[-1] and field.type.value_type.get_min_bitlen() < 8]tao && i==msg->@(field.name)_len@[else]false@[end if]@); +@(ind)msg->@(field.name)_len++; +@{indent -= 1}@{ind = ' '*indent}@ +@(ind)} +@{indent -= 1}@{ind = ' '*indent}@ +@(ind)} else { +@{indent += 1}@{ind = ' '*indent}@ +@[ end if]@ @(ind)for (size_t i=0; i < msg->@(field.name)_len; i++) { @[ else]@ @(ind)for (size_t i=0; i < @(field.type.max_size); i++) { @@ -205,6 +222,10 @@ void _decode_@(msg_underscored_name)(const CanardRxTransfer* transfer, uint32_t* @[ end if]@ @{indent -= 1}@{ind = ' '*indent}@ @(ind)} +@[ if field.type.value_type.category == field.type.value_type.CATEGORY_COMPOUND]@ +@{indent -= 1}@{ind = ' '*indent}@ +@(ind)} +@[ end if]@ @[ elif field.type.category == field.type.CATEGORY_VOID]@ @(ind)*bit_ofs += @(field.type.bitlen); @[ end if]@ From 58a134ed9a0e4a91e72eba4d6ec7427b32bc451d Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Sun, 21 Oct 2018 12:11:19 +0800 Subject: [PATCH 11/13] example: add example for driver_ms5611 --- examples/driver_ms5611/Makefile | 31 +++++++ .../board/com.hex.here+_2.0/board.c | 80 ++++++++++++++++++ .../board/com.hex.here+_2.0/board.h | 36 ++++++++ .../board/com.hex.here+_2.0/board.mk | 4 + .../board/com.hex.here+_2.0/mcuconf.h | 83 +++++++++++++++++++ examples/driver_ms5611/include/app_config.h | 10 +++ .../driver_ms5611/include/framework_conf.h | 40 +++++++++ examples/driver_ms5611/openocd.cfg | 5 ++ examples/driver_ms5611/src/ms5611_test.c | 60 ++++++++++++++ examples/driver_ms5611/src/setup.c | 8 ++ 10 files changed, 357 insertions(+) create mode 100755 examples/driver_ms5611/Makefile create mode 100644 examples/driver_ms5611/board/com.hex.here+_2.0/board.c create mode 100644 examples/driver_ms5611/board/com.hex.here+_2.0/board.h create mode 100644 examples/driver_ms5611/board/com.hex.here+_2.0/board.mk create mode 100644 examples/driver_ms5611/board/com.hex.here+_2.0/mcuconf.h create mode 100644 examples/driver_ms5611/include/app_config.h create mode 100644 examples/driver_ms5611/include/framework_conf.h create mode 100644 examples/driver_ms5611/openocd.cfg create mode 100644 examples/driver_ms5611/src/ms5611_test.c create mode 100644 examples/driver_ms5611/src/setup.c diff --git a/examples/driver_ms5611/Makefile b/examples/driver_ms5611/Makefile new file mode 100755 index 00000000..4649e2df --- /dev/null +++ b/examples/driver_ms5611/Makefile @@ -0,0 +1,31 @@ +CSRC = $(shell find src -name "*.c") +INCDIR = ./include +USE_OPT = -Os -g +USE_LTO = no +MODULES_ENABLED = \ +chibios_sys_init \ +chibios_hal_init \ +app_descriptor \ +boot_msg \ +timing \ +system \ +pubsub \ +worker_thread \ +can_driver_stm32 \ +can \ +can_autobaud \ +uavcan \ +uavcan_nodestatus_publisher \ +uavcan_getnodeinfo_server \ +uavcan_beginfirmwareupdate_server \ +uavcan_allocatee \ +uavcan_restart \ +freemem_check \ +spi_device \ +uavcan_debug \ +driver_ms5611 + +MESSAGES_ENABLED = \ +uavcan.protocol.debug.LogMessage + +include ../../include.mk diff --git a/examples/driver_ms5611/board/com.hex.here+_2.0/board.c b/examples/driver_ms5611/board/com.hex.here+_2.0/board.c new file mode 100644 index 00000000..0a59237f --- /dev/null +++ b/examples/driver_ms5611/board/com.hex.here+_2.0/board.c @@ -0,0 +1,80 @@ +#include +#define TOSHIBALED_I2C_ADDRESS 0x55 +#define AK09916_I2C_ADDRESS 0x0C + +/** + * TIMINGR register definitions + */ +#define STM32_TIMINGR_PRESC_MASK (15U << 28) +#define STM32_TIMINGR_PRESC(n) ((n) << 28) +#define STM32_TIMINGR_SCLDEL_MASK (15U << 20) +#define STM32_TIMINGR_SCLDEL(n) ((n) << 20) +#define STM32_TIMINGR_SDADEL_MASK (15U << 16) +#define STM32_TIMINGR_SDADEL(n) ((n) << 16) +#define STM32_TIMINGR_SCLH_MASK (255U << 8) +#define STM32_TIMINGR_SCLH(n) ((n) << 8) +#define STM32_TIMINGR_SCLL_MASK (255U << 0) +#define STM32_TIMINGR_SCLL(n) ((n) << 0) + +void boardInit(void) { + palSetLineMode(BOARD_PAL_LINE_SPI3_SCK, PAL_MODE_ALTERNATE(6) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_PULLDOWN); // SPI3 SCK + palSetLineMode(BOARD_PAL_LINE_SPI3_MISO, PAL_MODE_ALTERNATE(6) | PAL_STM32_OSPEED_HIGHEST); // SPI3 MISO + palSetLineMode(BOARD_PAL_LINE_SPI3_MOSI, PAL_MODE_ALTERNATE(6) | PAL_STM32_OSPEED_HIGHEST); // SPI3 MOSI + palSetLineMode(BOARD_PAL_LINE_SPI3_ICM_CS, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); // SPI CS + palSetLineMode(BOARD_PAL_LINE_SPI3_MS5611_CS, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); // SPI CS + palSetLineMode(BOARD_PAL_LINE_SPI3_PROFILED_CS, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); // SPI CS + palSetLineMode(BOARD_PAL_LINE_CAN_RX, PAL_MODE_ALTERNATE(9) | PAL_STM32_OSPEED_HIGHEST); + palSetLineMode(BOARD_PAL_LINE_CAN_TX, PAL_MODE_ALTERNATE(9) | PAL_STM32_OSPEED_HIGHEST); + palSetLineMode(BOARD_PAL_LINE_GPS_RX, PAL_MODE_ALTERNATE(7) | PAL_STM32_OSPEED_HIGHEST); //GPS Rx USART2_Rx + palSetLineMode(BOARD_PAL_LINE_GPS_TX, PAL_MODE_ALTERNATE(7) | PAL_STM32_OSPEED_HIGHEST); //GPS Tx USART2_Tx + palSetLineMode(BOARD_PAL_LINE_I2C_SLAVE_SCL, PAL_MODE_ALTERNATE(4)); + palSetLineMode(BOARD_PAL_LINE_I2C_SLAVE_SDA, PAL_MODE_ALTERNATE(4)); + palSetLine(BOARD_PAL_LINE_SPI3_ICM_CS); + palClearLine(BOARD_PAL_LINE_SPI3_PROFILED_CS); +/* + * + * Setup I2C Slave + * + */ + rccEnableI2C2(FALSE); + rccResetI2C2(); + + //Disable I2C + I2C2->CR1 &= ~I2C_CR1_PE; + + //Enable Analog Filter + I2C2->CR1 &= ~I2C_CR1_ANFOFF; + + //Disable Digital Filter + I2C2->CR1 &= ~(I2C_CR1_DNF); + + //Set Prescaler + I2C2->TIMINGR = (I2C2->TIMINGR & ~STM32_TIMINGR_PRESC_MASK) | + (STM32_TIMINGR_PRESC(8)); + + //Set Data Setup Time + I2C2->TIMINGR = (I2C2->TIMINGR & ~STM32_TIMINGR_SCLDEL_MASK) | + (STM32_TIMINGR_SCLDEL(9)); + + //Set Data Hold Time + I2C2->TIMINGR = (I2C2->TIMINGR & ~STM32_TIMINGR_SDADEL_MASK) | + (STM32_TIMINGR_SDADEL(11)); + + //Enable Stretching + I2C2->CR1 &= ~I2C_CR1_NOSTRETCH; + + //7Bit Address Mode + I2C2->CR2 &= ~I2C_CR2_ADD10; + + I2C2->OAR1 = (TOSHIBALED_I2C_ADDRESS & 0xFF) << 1; //Emulate Toshiba LED I2C Slave + I2C2->OAR1 |= (1<<15); + I2C2->OAR2 = (AK09916_I2C_ADDRESS & 0xFF) << 1; //Emulate AK09916 I2C Slave + I2C2->OAR2 |= (1<<15); + //Enable I2C interrupt + nvicEnableVector(I2C2_EV_IRQn, 3); + + I2C2->CR1 |= (1<<1); // TXIE + I2C2->CR1 |= (1<<2); // RXIE + I2C2->CR1 |= (1<<3); // ADDRIE + I2C2->CR1 |= I2C_CR1_PE; // Enable I2C +} diff --git a/examples/driver_ms5611/board/com.hex.here+_2.0/board.h b/examples/driver_ms5611/board/com.hex.here+_2.0/board.h new file mode 100644 index 00000000..2139d2a9 --- /dev/null +++ b/examples/driver_ms5611/board/com.hex.here+_2.0/board.h @@ -0,0 +1,36 @@ +#pragma once + +#include +#include + +#define BOARD_CONFIG_HW_NAME "org.hex.here+" +#define BOARD_CONFIG_HW_MAJOR_VER 2 +#define BOARD_CONFIG_HW_MINOR_VER 0 + +#define BOARD_CONFIG_HW_INFO_STRUCTURE { \ + .hw_name = BOARD_CONFIG_HW_NAME, \ + .hw_major_version = BOARD_CONFIG_HW_MAJOR_VER, \ + .hw_minor_version = BOARD_CONFIG_HW_MINOR_VER, \ + .board_desc_fmt = SHARED_HW_INFO_BOARD_DESC_FMT_NONE, \ + .board_desc = 0, \ +} + +#define BOARD_PAL_LINE_SPI3_SCK PAL_LINE(GPIOB,3) +#define BOARD_PAL_LINE_SPI3_MISO PAL_LINE(GPIOB,4) +#define BOARD_PAL_LINE_SPI3_MOSI PAL_LINE(GPIOB,5) +#define BOARD_PAL_LINE_SPI3_ICM_CS PAL_LINE(GPIOB,0) // NOTE: never drive high by external source +#define BOARD_PAL_LINE_SPI3_MS5611_CS PAL_LINE(GPIOA,5) +#define BOARD_PAL_LINE_SPI3_PROFILED_CS PAL_LINE(GPIOA,15) + +#define BOARD_PAL_LINE_CAN_RX PAL_LINE(GPIOA,11) +#define BOARD_PAL_LINE_CAN_TX PAL_LINE(GPIOA,12) +#define BOARD_PAL_LINE_GPS_RX PAL_LINE(GPIOA,2) +#define BOARD_PAL_LINE_GPS_TX PAL_LINE(GPIOA,3) +#define BOARD_PAL_LINE_I2C_SLAVE_SCL PAL_LINE(GPIOA,9) +#define BOARD_PAL_LINE_I2C_SLAVE_SDA PAL_LINE(GPIOA,10) + + +#define GPS_SERIAL SD2 + +#define HAL_USE_SERIAL TRUE +#define SERIAL_BUFFERS_SIZE 32 diff --git a/examples/driver_ms5611/board/com.hex.here+_2.0/board.mk b/examples/driver_ms5611/board/com.hex.here+_2.0/board.mk new file mode 100644 index 00000000..18649f37 --- /dev/null +++ b/examples/driver_ms5611/board/com.hex.here+_2.0/board.mk @@ -0,0 +1,4 @@ +BOARD_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) +BOARD_SRC = $(BOARD_DIR)/board.c +BOARD_INC = $(BOARD_DIR) +MODULES_ENABLED += platform_stm32f302x8 diff --git a/examples/driver_ms5611/board/com.hex.here+_2.0/mcuconf.h b/examples/driver_ms5611/board/com.hex.here+_2.0/mcuconf.h new file mode 100644 index 00000000..94c51753 --- /dev/null +++ b/examples/driver_ms5611/board/com.hex.here+_2.0/mcuconf.h @@ -0,0 +1,83 @@ +#pragma once + +#define STM32F3xx_MCUCONF +#define STM32_HSECLK 24000000 + +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PREDIV_VALUE 3 +#define STM32_PLLMUL_VALUE 9 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_ADC12PRES STM32_ADC12PRES_DIV1 +#define STM32_ADC34PRES STM32_ADC34PRES_DIV1 +#define STM32_USART1SW STM32_USART1SW_PCLK +#define STM32_USART2SW STM32_USART2SW_PCLK +#define STM32_USART3SW STM32_USART3SW_PCLK +#define STM32_UART4SW STM32_UART4SW_PCLK +#define STM32_UART5SW STM32_UART5SW_PCLK +#define STM32_I2C1SW STM32_I2C1SW_SYSCLK +#define STM32_I2C2SW STM32_I2C2SW_SYSCLK +#define STM32_TIM1SW STM32_TIM1SW_PCLK2 +#define STM32_TIM8SW STM32_TIM8SW_PCLK2 +#define STM32_RTCSEL STM32_RTCSEL_LSI +#define STM32_USB_CLOCK_REQUIRED FALSE +#define STM32_USBPRE STM32_USBPRE_DIV1P5 + +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 TRUE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 TRUE +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_SERIAL_USART1_PRIORITY 12 +#define STM32_SERIAL_USART2_PRIORITY 12 +#define STM32_SERIAL_USART3_PRIORITY 12 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_CAN1 TRUE +#define STM32_CAN_CAN1_IRQ_PRIORITY 11 + +#define STM32_ST_IRQ_PRIORITY 8 +#define STM32_ST_USE_TIMER 2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI20_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI21_22_29_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI30_32_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI33_IRQ_PRIORITY 6 \ No newline at end of file diff --git a/examples/driver_ms5611/include/app_config.h b/examples/driver_ms5611/include/app_config.h new file mode 100644 index 00000000..9eadd067 --- /dev/null +++ b/examples/driver_ms5611/include/app_config.h @@ -0,0 +1,10 @@ +#pragma once + +#define APP_CONFIG_BOOT_DELAY_SEC 0 +#define APP_CONFIG_CAN_DEFAULT_BAUDRATE 1000000 +#define APP_CONFIG_CAN_LOCAL_NODE_ID 0 +#define APP_CONFIG_CAN_AUTO_BAUD_ENABLE 0 + +#define SHARED_APP_DESCRIPTOR_MAJOR_VERSION 1 +#define SHARED_APP_DESCRIPTOR_MINOR_VERSION 0 + diff --git a/examples/driver_ms5611/include/framework_conf.h b/examples/driver_ms5611/include/framework_conf.h new file mode 100644 index 00000000..ad64a047 --- /dev/null +++ b/examples/driver_ms5611/include/framework_conf.h @@ -0,0 +1,40 @@ +#pragma once + +// +// Configure worker threads +// + +#define TIMING_WORKER_THREAD lpwork_thread +#define UAVCAN_NODESTATUS_PUBLISHER_WORKER_THREAD lpwork_thread +#define CAN_AUTOBAUD_WORKER_THREAD lpwork_thread +#define UAVCAN_PARAM_INTERFACE_WORKER_THREAD lpwork_thread +#define UAVCAN_GETNODEINFO_SERVER_WORKER_THREAD lpwork_thread +#define UAVCAN_RESTART_WORKER_THREAD lpwork_thread +#define UAVCAN_BEGINFIRMWAREUPDATE_SERVER_WORKER_THREAD lpwork_thread +#define UAVCAN_ALLOCATEE_WORKER_THREAD lpwork_thread +#define PIN_CHANGE_PUBLISHER_WORKER_THREAD lpwork_thread + +#define CAN_TRX_WORKER_THREAD can_thread +#define CAN_EXPIRE_WORKER_THREAD can_thread +#define UAVCAN_RX_WORKER_THREAD can_thread + +// +// Configure topic groups +// + +#define PUBSUB_DEFAULT_TOPIC_GROUP default_topic_group + +// +// Misc configs +// + +#define REQUIRED_RAM_MARGIN_AFTER_INIT 512 + +// +// Configure debug checks +// + +#define CH_DBG_SYSTEM_STATE_CHECK TRUE +#define CH_DBG_ENABLE_CHECKS TRUE +#define CH_DBG_ENABLE_ASSERTS TRUE +#define CH_DBG_ENABLE_STACK_CHECK TRUE diff --git a/examples/driver_ms5611/openocd.cfg b/examples/driver_ms5611/openocd.cfg new file mode 100644 index 00000000..bd7b216c --- /dev/null +++ b/examples/driver_ms5611/openocd.cfg @@ -0,0 +1,5 @@ +source [find interface/stlink-v2.cfg] +source [find target/stm32f3x.cfg] +init +reset run +#$_TARGETNAME configure -rtos ChibiOS diff --git a/examples/driver_ms5611/src/ms5611_test.c b/examples/driver_ms5611/src/ms5611_test.c new file mode 100644 index 00000000..58ae6758 --- /dev/null +++ b/examples/driver_ms5611/src/ms5611_test.c @@ -0,0 +1,60 @@ +#include +#include +#include +#include +#include +#include +#include + +#define WT hpwork_thread +WORKER_THREAD_DECLARE_EXTERN(WT) + +static struct ms5611_instance_s ms5611; +static struct worker_thread_timer_task_s ms5611_task; +static void ms5611_task_func(struct worker_thread_timer_task_s* task); +static struct uavcan_equipment_air_data_StaticTemperature_s temp; +static struct uavcan_equipment_air_data_StaticPressure_s press; + +bool ms5611_initialised; + +RUN_AFTER(INIT_END) { + for (uint8_t i = 0; i < 5; i++) { + if (ms5611_init(&ms5611, 3, BOARD_PAL_LINE_SPI3_MS5611_CS)) { + ms5611_initialised = true; + ms5611_measure_temperature(&ms5611); + } + usleep(10000); + } + worker_thread_add_timer_task(&WT, &ms5611_task, ms5611_task_func, NULL, MS2ST(10), true); +} + +static void ms5611_task_func(struct worker_thread_timer_task_s* task) { + (void)task; + static uint8_t _state = 0; + static uint8_t accum_count; + if (!ms5611_initialised) { + if (ms5611_init(&ms5611, 3, BOARD_PAL_LINE_SPI3_MS5611_CS)) { + ms5611_initialised = true; + ms5611_measure_temperature(&ms5611); + } + } else { + if (_state == 0) { + ms5611_accum_temperature(&ms5611); + ms5611_measure_pressure(&ms5611); + _state = 1; + } else if (_state == 1) { + ms5611_accum_pressure(&ms5611); + ms5611_measure_temperature(&ms5611); + if (accum_count >= 2) { + press.static_pressure = (float)ms5611_read_pressure(&ms5611); + temp.static_temperature = ((float)ms5611_read_temperature(&ms5611))/100.0f; + uavcan_broadcast(0, &uavcan_equipment_air_data_StaticPressure_descriptor, CANARD_TRANSFER_PRIORITY_HIGH, &press); + uavcan_broadcast(0, &uavcan_equipment_air_data_StaticTemperature_descriptor, CANARD_TRANSFER_PRIORITY_HIGH, &temp); + accum_count = 0; + } else { + accum_count++; + } + _state = 0; + } + } +} diff --git a/examples/driver_ms5611/src/setup.c b/examples/driver_ms5611/src/setup.c new file mode 100644 index 00000000..53ad7f5d --- /dev/null +++ b/examples/driver_ms5611/src/setup.c @@ -0,0 +1,8 @@ +#include +#include + +WORKER_THREAD_TAKEOVER_MAIN(lpwork_thread, LOWPRIO) +WORKER_THREAD_SPAWN(can_thread, LOWPRIO, 1024) +WORKER_THREAD_SPAWN(hpwork_thread, HIGHPRIO, 1024) + +PUBSUB_TOPIC_GROUP_CREATE(default_topic_group, 1024) From 4bc53674e76ec46ed1e55fd44ea20cea101bc684 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Sun, 21 Oct 2018 12:11:42 +0800 Subject: [PATCH 12/13] modules: add driver for ms5611 baro --- modules/driver_ms5611/driver_ms5611.c | 210 ++++++++++++++++++++++++++ modules/driver_ms5611/driver_ms5611.h | 64 ++++++++ 2 files changed, 274 insertions(+) create mode 100644 modules/driver_ms5611/driver_ms5611.c create mode 100644 modules/driver_ms5611/driver_ms5611.h diff --git a/modules/driver_ms5611/driver_ms5611.c b/modules/driver_ms5611/driver_ms5611.c new file mode 100644 index 00000000..f77ecca0 --- /dev/null +++ b/modules/driver_ms5611/driver_ms5611.c @@ -0,0 +1,210 @@ +#include "driver_ms5611.h" +#include +#include + +static bool ms5611_read_prom(struct ms5611_instance_s* instance); +static uint32_t ms5611_read_adc(struct ms5611_instance_s* instance); +static void ms5611_cmd(struct ms5611_instance_s* instance, uint8_t cmd); +static void ms5611_read(struct ms5611_instance_s* instance, uint8_t addr, uint8_t n, uint8_t* buf); +static bool crc4(uint16_t *prom); + +bool ms5611_init(struct ms5611_instance_s* instance, uint8_t spi_idx, uint32_t select_line) +{ + // Ensure sufficient power-up time has elapsed + chThdSleep(MS2ST(100)); + + spi_device_init(&instance->spi_dev, spi_idx, select_line, 20000000, 8, SPI_DEVICE_FLAG_CPHA|SPI_DEVICE_FLAG_CPOL); + + // Reset device + ms5611_cmd(instance, MS5611_CMD_RESET); + + chThdSleep(MS2ST(20)); + + if (!ms5611_read_prom(instance)) { + return false; + } + return true; +} + +bool ms5611_measure_temperature(struct ms5611_instance_s* instance) { + if (instance->temperature_read_started || instance->pressure_read_started) { + return false; + } + ms5611_cmd(instance, MS5611_CMD_CVT_D2_1024); + instance->temperature_read_started = true; + return true; +} + +bool ms5611_measure_pressure(struct ms5611_instance_s* instance) { + if (instance->temperature_read_started || instance->pressure_read_started) { + return false; + } + ms5611_cmd(instance, MS5611_CMD_CVT_D1_1024); + instance->pressure_read_started = true; + return true; +} + +void ms5611_accum_temperature(struct ms5611_instance_s* instance) +{ + if (!instance->temperature_read_started) { + return; + } + instance->sD2 += ms5611_read_adc(instance); + instance->sD2_count++; + + instance->temperature_read_started = false; +} + +void ms5611_accum_pressure(struct ms5611_instance_s* instance) +{ + if (!instance->pressure_read_started) { + return; + } + instance->sD1 += ms5611_read_adc(instance); + instance->sD1_count++; + + instance->pressure_read_started = false; +} + +int32_t ms5611_read_temperature(struct ms5611_instance_s* instance) +{ + if (!instance->sD2_count) { + return 0; + } + uint32_t D2 = (uint32_t)(instance->sD2 / instance->sD2_count); + instance->sD2 = 0; + instance->sD2_count = 0; + + /* temperature offset (in ADC units) */ + int32_t dT = (int32_t)D2 - ((int32_t)instance->prom.s.c5_reference_temp << 8); + + /* absolute temperature in centidegrees - note intermediate value is outside 32-bit range */ + instance->TEMP = 2000 + (int32_t)(((int64_t)dT * instance->prom.s.c6_temp_coeff_temp) >> 23); + + /* Perform MS5611 Caculation */ + + instance->OFF = ((int64_t)instance->prom.s.c2_pressure_offset << 16) + (((int64_t)instance->prom.s.c4_temp_coeff_pres_offset * dT) >> 7); + instance->SENS = ((int64_t)instance->prom.s.c1_pressure_sens << 15) + (((int64_t)instance->prom.s.c3_temp_coeff_pres_sens * dT) >> 8); + + /* MS5611 temperature compensation */ + + if (instance->TEMP < 2000) { + + int32_t T2 = SQ(dT) >> 31; + + int64_t f = SQ((int64_t)instance->TEMP - 2000); + int64_t OFF2 = 5 * f >> 1; + int64_t SENS2 = 5 * f >> 2; + + if (instance->TEMP < -1500) { + + int64_t f2 = SQ(instance->TEMP + 1500); + OFF2 += 7 * f2; + SENS2 += 11 * f2 >> 1; + } + + instance->TEMP -= T2; + instance->OFF -= OFF2; + instance->SENS -= SENS2; + } + + return instance->TEMP; +} + +int32_t ms5611_read_pressure(struct ms5611_instance_s* instance) { + if (!instance->sD1_count) { + return 0; + } + int64_t P = instance->sD1 / instance->sD1_count; + instance->sD1_count = 0; + instance->sD1 = 0; + P = (((P * instance->SENS) >> 21) - instance->OFF) >> 15; + + instance->pressure_read_started = false; + return P; +} + +static bool ms5611_read_prom(struct ms5611_instance_s* instance) { + uint8_t val[3] = {0}; + uint8_t addr = MS5611_CMD_PROM_READ; + bool prom_read_failed = true; + for (uint8_t i = 0; i < 8; i++) { + ms5611_read(instance, addr, 2, val); + addr += 2; + instance->prom.c[i] = (val[0] << 8) | val[1]; + if (instance->prom.c[i] != 0) { + prom_read_failed = false; + } + } + if (prom_read_failed) { + return false; + } + if (crc4(instance->prom.c)) { + return true; + } + return false; +} + +static bool crc4(uint16_t *prom) +{ + int16_t cnt; + uint16_t n_rem; + uint16_t crc_read; + uint8_t n_bit; + + n_rem = 0x00; + + /* save the read crc */ + crc_read = prom[7]; + + /* remove CRC byte */ + prom[7] = (0xFF00 & (prom[7])); + + for (cnt = 0; cnt < 16; cnt++) { + /* uneven bytes */ + if (cnt & 1) { + n_rem ^= (uint8_t)((prom[cnt >> 1]) & 0x00FF); + + } else { + n_rem ^= (uint8_t)(prom[cnt >> 1] >> 8); + } + + for (n_bit = 8; n_bit > 0; n_bit--) { + if (n_rem & 0x8000) { + n_rem = (n_rem << 1) ^ 0x3000; + + } else { + n_rem = (n_rem << 1); + } + } + } + + /* final 4 bit remainder is CRC value */ + n_rem = (0x000F & (n_rem >> 12)); + prom[7] = crc_read; + + /* return true if CRCs match */ + return (0x000F & crc_read) == (n_rem ^ 0x00); +} + +static uint32_t ms5611_read_adc(struct ms5611_instance_s* instance) { + uint8_t val[3] = {0}; + ms5611_read(instance, MS5611_CMD_ADC_READ, 3, val); + return (val[0] << 16) | (val[1] << 8) | val[2]; +} + +static void ms5611_cmd(struct ms5611_instance_s* instance, uint8_t cmd) { + spi_device_begin(&instance->spi_dev); + spi_device_send(&instance->spi_dev, sizeof(cmd), &cmd); + spi_device_end(&instance->spi_dev); +} + +static void ms5611_read(struct ms5611_instance_s* instance, uint8_t addr, uint8_t n, uint8_t* buf) +{ + spi_device_begin(&instance->spi_dev); + spi_device_send(&instance->spi_dev, 1, &addr); + spi_device_receive(&instance->spi_dev, n, buf); + spi_device_end(&instance->spi_dev); +} + + diff --git a/modules/driver_ms5611/driver_ms5611.h b/modules/driver_ms5611/driver_ms5611.h new file mode 100644 index 00000000..ab9129c4 --- /dev/null +++ b/modules/driver_ms5611/driver_ms5611.h @@ -0,0 +1,64 @@ +#pragma once + +#include + +#define MS5611_CMD_RESET 0x1E +#define MS5611_CMD_CVT_D1_256 0x40 +#define MS5611_CMD_CVT_D1_512 0x42 +#define MS5611_CMD_CVT_D1_1024 0x44 +#define MS5611_CMD_CVT_D1_2048 0x46 +#define MS5611_CMD_CVT_D1_4096 0x48 +#define MS5611_CMD_CVT_D2_256 0x50 +#define MS5611_CMD_CVT_D2_512 0x52 +#define MS5611_CMD_CVT_D2_1024 0x54 +#define MS5611_CMD_CVT_D2_2048 0x56 +#define MS5611_CMD_CVT_D2_4096 0x58 +#define MS5611_CMD_ADC_READ 0x00 +#define MS5611_CMD_PROM_READ 0xA0 +/** + * Calibration PROM as reported by the device. + */ +#pragma pack(push,1) +struct prom_s { + uint16_t factory_setup; + uint16_t c1_pressure_sens; + uint16_t c2_pressure_offset; + uint16_t c3_temp_coeff_pres_sens; + uint16_t c4_temp_coeff_pres_offset; + uint16_t c5_reference_temp; + uint16_t c6_temp_coeff_temp; + uint16_t serial_and_crc; +}; + +/** + * Grody hack for crc4() + */ +union prom_u { + uint16_t c[8]; + struct prom_s s; +}; +#pragma pack(pop) + +struct ms5611_instance_s { + struct spi_device_s spi_dev; + union prom_u prom; + int32_t TEMP; + int64_t OFF; + int64_t SENS; + int64_t sD1; + uint64_t sD2; + uint8_t sD1_count; + uint8_t sD2_count; + bool prom_read_ok; + bool temperature_read_started; + bool pressure_read_started; +}; + + +bool ms5611_init(struct ms5611_instance_s* instance, uint8_t spi_idx, uint32_t select_line); +bool ms5611_measure_temperature(struct ms5611_instance_s* instance); +bool ms5611_measure_pressure(struct ms5611_instance_s* instance); +void ms5611_accum_temperature(struct ms5611_instance_s* instance); +void ms5611_accum_pressure(struct ms5611_instance_s* instance); +int32_t ms5611_get_temperature(struct ms5611_instance_s* instance); +int32_t ms5611_get_pressure(struct ms5611_instance_s* instance); From a13e9ffbfeeaa9a8fa26346af22fff3f9a543509 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Fri, 30 Nov 2018 12:17:58 +0800 Subject: [PATCH 13/13] update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 30328b2d..1de54169 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ **/*.pyc *.o.* +*.DS_Store \ No newline at end of file