Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RESET_GNSS_TIME and POSE_RESET enums for reset requests #338

Merged
merged 7 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions python/fusion_engine_client/messages/control.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,8 @@ class ResetRequest(MessagePayload):
RESTART_NAVIGATION_ENGINE = 0x00000001
## Delete all GNSS corrections information.
RESET_GNSS_CORRECTIONS = 0x00000002
## Delete all GNSS time information. */
RESET_GNSS_TIME = 0x00000004
## @}

##
Expand Down Expand Up @@ -221,6 +223,7 @@ class ResetRequest(MessagePayload):
#
# Not reset/performed:
# - All runtime data (GNSS corrections (@ref RESET_GNSS_CORRECTIONS), etc.)
# - GNSS times (@ref RESET_GNSS_TIME)
# - Position, velocity, orientation (@ref RESET_POSITION_DATA)
# - GNSS ephemeris data (@ref RESET_EPHEMERIS)
# - Fast IMU corrections (@ref RESET_FAST_IMU_CORRECTIONS)
Expand All @@ -247,6 +250,7 @@ class ResetRequest(MessagePayload):
#
# Not reset/performed:
# - All runtime data (GNSS corrections (@ref RESET_GNSS_CORRECTIONS), etc.)
# - GNSS times (@ref RESET_GNSS_TIME)
# - Position, velocity, orientation (@ref RESET_POSITION_DATA)
# - Fast IMU corrections (@ref RESET_FAST_IMU_CORRECTIONS)
# - Training parameters (slowly estimated IMU corrections, temperature
Expand All @@ -258,10 +262,10 @@ class ResetRequest(MessagePayload):
WARM_START = 0x00000201

##
# Perform a PVT reset: reset all position, velocity, orientation, and time
# Perform a pose reset: reset all position, velocity, and orientation
# information (i.e., the navigation engine's kinematic state).
#
# A PVT reset is typically used to reset the kinematic portion of the
# A pose reset is typically used to reset the kinematic portion of the
# navigation engine's state if you are experiencing errors on startup or
# after a @ref HOT_START.
#
Expand All @@ -271,6 +275,7 @@ class ResetRequest(MessagePayload):
# - Position, velocity, orientation (@ref RESET_POSITION_DATA)
#
# Not reset/performed:
# - GNSS times (@ref RESET_GNSS_TIME)
# - GNSS ephemeris data (@ref RESET_EPHEMERIS)
# - Fast IMU corrections (@ref RESET_FAST_IMU_CORRECTIONS)
# - Training parameters (slowly estimated IMU corrections, temperature
Expand All @@ -279,7 +284,7 @@ class ResetRequest(MessagePayload):
# - User configuration settings (@ref RESET_CONFIG)
# - Reboot GNSS measurement engine (@ref REBOOT_GNSS_MEASUREMENT_ENGINE)
# - Reboot navigation processor (@ref REBOOT_NAVIGATION_PROCESSOR)
PVT_RESET = 0x000001FF
POSE_RESET = 0x000001FB

##
# Perform a device cold start.
Expand All @@ -290,6 +295,7 @@ class ResetRequest(MessagePayload):
# To be reset:
# - The navigation engine (@ref RESTART_NAVIGATION_ENGINE)
# - All runtime data (GNSS corrections (@ref RESET_GNSS_CORRECTIONS), etc.)
# - GNSS times (@ref RESET_GNSS_TIME)
# - Position, velocity, orientation (@ref RESET_POSITION_DATA)
# - GNSS ephemeris data (@ref RESET_EPHEMERIS)
# - Fast IMU corrections (@ref RESET_FAST_IMU_CORRECTIONS)
Expand Down Expand Up @@ -365,8 +371,8 @@ def _get_known_mask_name(cls, mask) -> str:
return 'HOT_START'
elif mask == cls.WARM_START:
return 'WARM_START'
elif mask == cls.PVT_RESET:
return 'PVT_RESET'
elif mask == cls.POSE_RESET:
return 'POSE_RESET'
elif mask == cls.COLD_START:
return 'COLD_START'
elif mask == cls.FACTORY_RESET:
Expand Down
16 changes: 11 additions & 5 deletions src/point_one/fusion_engine/messages/control.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ struct P1_ALIGNAS(4) ResetRequest : public MessagePayload {
static constexpr uint32_t RESTART_NAVIGATION_ENGINE = 0x00000001;
/** Delete all GNSS corrections information. */
static constexpr uint32_t RESET_GNSS_CORRECTIONS = 0x00000002;
/** Delete all GNSS time information. */
static constexpr uint32_t RESET_GNSS_TIME = 0x00000004;
/** @} */

/**
Expand Down Expand Up @@ -190,8 +192,8 @@ struct P1_ALIGNAS(4) ResetRequest : public MessagePayload {
* - Flush internal data buffers on the device
*
* Note that this does _not_ reset the navigation engine's position data,
* training parameters, or calibration. If the navigation engine has existing
* position information, it will be used.
* GNSS times, training parameters, or calibration. If the navigation engine
* has existing position information, it will be used.
*
* This reset may be combined with other resets as needed to clear additional
* information.
Expand All @@ -215,6 +217,7 @@ struct P1_ALIGNAS(4) ResetRequest : public MessagePayload {
*
* Not reset/performed:
* - All runtime data (GNSS corrections (@ref RESET_GNSS_CORRECTIONS), etc.)
* - GNSS times (@ref RESET_GNSS_TIME)
* - Position, velocity, orientation (@ref RESET_POSITION_DATA)
* - GNSS ephemeris data (@ref RESET_EPHEMERIS)
* - Fast IMU corrections (@ref RESET_FAST_IMU_CORRECTIONS)
Expand Down Expand Up @@ -242,6 +245,7 @@ struct P1_ALIGNAS(4) ResetRequest : public MessagePayload {
*
* Not reset/performed:
* - All runtime data (GNSS corrections (@ref RESET_GNSS_CORRECTIONS), etc.)
* - GNSS times (@ref RESET_GNSS_TIME)
* - Position, velocity, orientation (@ref RESET_POSITION_DATA)
* - Fast IMU corrections (@ref RESET_FAST_IMU_CORRECTIONS)
* - Training parameters (slowly estimated IMU corrections, temperature
Expand All @@ -254,10 +258,10 @@ struct P1_ALIGNAS(4) ResetRequest : public MessagePayload {
static constexpr uint32_t WARM_START = 0x00000201;

/**
* Perform a PVT reset: reset all position, velocity, orientation, and time
* Perform a pose reset: reset all position, velocity, and orientation
* information (i.e., the navigation engine's kinematic state).
*
* A PVT reset is typically used to reset the kinematic portion of the
* A pose reset is typically used to reset the kinematic portion of the
* navigation engine's state if you are experiencing errors on startup or
* after a @ref HOT_START.
*
Expand All @@ -267,6 +271,7 @@ struct P1_ALIGNAS(4) ResetRequest : public MessagePayload {
* - Position, velocity, orientation (@ref RESET_POSITION_DATA)
*
* Not reset/performed:
* - GNSS times (@ref RESET_GNSS_TIME)
* - GNSS ephemeris data (@ref RESET_EPHEMERIS)
* - Fast IMU corrections (@ref RESET_FAST_IMU_CORRECTIONS)
* - Training parameters (slowly estimated IMU corrections, temperature
Expand All @@ -276,7 +281,7 @@ struct P1_ALIGNAS(4) ResetRequest : public MessagePayload {
* - Reboot GNSS measurement engine (@ref REBOOT_GNSS_MEASUREMENT_ENGINE)
* - Reboot navigation processor (@ref REBOOT_NAVIGATION_PROCESSOR)
*/
static constexpr uint32_t PVT_RESET = 0x000001FF;
static constexpr uint32_t POSE_RESET = 0x000001FB;

/**
* Perform a device cold start.
Expand All @@ -287,6 +292,7 @@ struct P1_ALIGNAS(4) ResetRequest : public MessagePayload {
* To be reset:
* - The navigation engine (@ref RESTART_NAVIGATION_ENGINE)
* - All runtime data (GNSS corrections (@ref RESET_GNSS_CORRECTIONS), etc.)
* - GNSS times (@ref RESET_GNSS_TIME)
* - Position, velocity, orientation (@ref RESET_POSITION_DATA)
* - GNSS ephemeris data (@ref RESET_EPHEMERIS)
* - Fast IMU corrections (@ref RESET_FAST_IMU_CORRECTIONS)
Expand Down
Loading