diff --git a/README.md b/README.md
index ef5c02c..294f931 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ encode policies): [`docs/CAPABILITY_BOUNDARY.md`](docs/CAPABILITY_BOUNDARY.md).
Long-term strict-conformance **roadmap** (target architecture, not current
guarantees): [`docs/FIT_CONFORMANCE_DESIGN.md`](docs/FIT_CONFORMANCE_DESIGN.md).
-Profile in use: `21.212.0` (`fit_tool.SDK_VERSION`).
+Profile in use: `21.213.0` (`fit_tool.SDK_VERSION`).
## Installation
diff --git a/docs/CAPABILITY_BOUNDARY.md b/docs/CAPABILITY_BOUNDARY.md
index 5c9d7c8..e2f40b2 100644
--- a/docs/CAPABILITY_BOUNDARY.md
+++ b/docs/CAPABILITY_BOUNDARY.md
@@ -7,7 +7,7 @@ strict-conformance **target** architecture remains
[`FIT_CONFORMANCE_DESIGN.md`](FIT_CONFORMANCE_DESIGN.md) (not a guarantee of
what the installed package already does).
-Bundled Profile version: **`21.212.0`** (`fit_tool.SDK_VERSION` / `fit_tool/gen/`).
+Bundled Profile version: **`21.213.0`** (`fit_tool.SDK_VERSION` / `fit_tool/gen/`).
Protocol version string: **`2.4`** (`fit_tool.PROTOCOL_VERSION`).
---
@@ -58,7 +58,7 @@ this package against the matrix above, not against full protocol conformance.
| Level | What it checks | Status in code |
| --- | --- | --- |
| `ConformanceLevel.WIRE` | Local IDs, definition field layout/sizes, data records vs active definition | Implemented |
-| `ConformanceLevel.PROFILE` | Scoped Profile semantics via `profile_scope=` / `ProfileScope` | **CORE (default):** developer-field declarations + **ambiguous native subfields** as ERROR. **DOMAIN (opt-in):** CORE + native base-type and closed-enum checks on high-frequency Activity/Workout messages. **FULL (opt-in):** same native rules for the gen-exported catalog from Profile.xlsx `21.212.0`. FULL is never default `strict` (§3.1 O1). Open/ranged enums (e.g. `activity_class`) are excluded from closed-enum checks |
+| `ConformanceLevel.PROFILE` | Scoped Profile semantics via `profile_scope=` / `ProfileScope` | **CORE (default):** developer-field declarations + **ambiguous native subfields** as ERROR. **DOMAIN (opt-in):** CORE + native base-type and closed-enum checks on high-frequency Activity/Workout messages. **FULL (opt-in):** same native rules for the gen-exported catalog from Profile.xlsx `21.213.0`. FULL is never default `strict` (§3.1 O1). Open/ranged enums (e.g. `activity_class`) are excluded from closed-enum checks |
| `ConformanceLevel.FILE_TYPE` | `file_id` first/unique + required fields; Activity, Workout, and Course rules | **`IMPLEMENTED_FILE_TYPES`** = Activity, Workout, Course; other `file_id.type` values **fail closed** |
| `ConformanceLevel.PRESERVATION` | Post-edit rewrite loss (e.g. `UnknownField.raw_bytes` cleared) | **Opt-in** — not in `DEFAULT_LEVELS` / Builder `strict=True` |
diff --git a/docs/EPIC_SHA12_RELEASE_NOTES.md b/docs/EPIC_SHA12_RELEASE_NOTES.md
index 9ab0343..fa9de7d 100644
--- a/docs/EPIC_SHA12_RELEASE_NOTES.md
+++ b/docs/EPIC_SHA12_RELEASE_NOTES.md
@@ -15,7 +15,7 @@ subfields, unknown fields, post-edit PRESERVATION, encode policies, PROFILE
scopes CORE/DOMAIN/FULL, Workout + Course FILE_TYPE). Stage 5 (**L**) publishes
honest Supported/Partial/Not-supported claims.
-Profile / SDK version: **`21.212.0`** (`SDK_VERSION`, `fit_tool/gen/`).
+Profile / SDK version: **`21.213.0`** (`SDK_VERSION`, `fit_tool/gen/`).
## User-visible capabilities (rollup)
diff --git a/docs/FIT_CONFORMANCE_DESIGN.md b/docs/FIT_CONFORMANCE_DESIGN.md
index ece2f30..c1e10e0 100644
--- a/docs/FIT_CONFORMANCE_DESIGN.md
+++ b/docs/FIT_CONFORMANCE_DESIGN.md
@@ -49,7 +49,7 @@ public-claims pass that keeps this table and `docs/CAPABILITY_BOUNDARY.md` hones
| Unknown field ids on known messages (decode retain + raw bytes) | Phase 3 | **E** SHA-17 | **Done** `UnknownField` + `raw_bytes` on main path |
| Post-edit PRESERVATION (edited files, dirty records) | Phase 4 / PRESERVATION level | **F** SHA-18 | **Done** per-record dirty + mixed encode; opt-in PRESERVATION findings |
| Encode policies (canonical vs preserve, strict vs repair) | Phase 4 §6 | **G** SHA-19 | **Done** `EncodeMode` + policy matrix; no silent invalid clamp; `repair()` still future |
-| PROFILE scopes from bundled Profile.xlsx `21.212.0` | Phase 3 PROFILE / §3.1 | **H** SHA-20 | **Done** CORE/DOMAIN/FULL + gen `field_catalog`; default remains CORE; native required fields / units still residual |
+| PROFILE scopes from bundled Profile.xlsx `21.213.0` | Phase 3 PROFILE / §3.1 | **H** SHA-20 | **Done** CORE/DOMAIN/FULL + gen `field_catalog`; default remains CORE; native required fields / units still residual |
| Workout FILE_TYPE rules | Phase 4 §7 | **I** SHA-21 | **Done** required messages/fields; SDK Workout*.fit pass FILE_TYPE |
| Course FILE_TYPE rules | Phase 4 §7 | **J** SHA-22 | **Done** Course required messages/fields; Activity + Workout unchanged |
| Public capability matrix / release-note pass | Phase 5 | **L** SHA-23 | **This pass** — README + this section + §11 residual checklist + Towncrier epic notes |
@@ -82,7 +82,7 @@ Passing one dimension must not be reported as passing all four.
The conformance target is the Garmin FIT Protocol documentation and the exact
`Profile.xlsx` version committed under `fit_tool/gen/`. The current repository
-uses Profile `21.212.0`.
+uses Profile `21.213.0`.
Official references:
@@ -791,7 +791,7 @@ Honest status vs the bullets above. **None** of these residuals re-open C–J as
| Garmin cross-validation | **Incomplete** | SDK samples used as smokes/fixtures; not a release gate for full interop |
| Non-`xfail` tests for listed constructs | **Partial** | Strong constructive coverage for C–J; expand goldens / remove any remaining known-gap xfails as follow-up |
| Strict mode no silent repair | **Met** | `strict=True` / DEFAULT_LEVELS never clamp or auto-repair; no `repair()` on strict path |
-| Published SDK/Profile version | **Met** | Profile / SDK `21.212.0` (`fit_tool/gen/`, `SDK_VERSION`) |
+| Published SDK/Profile version | **Met** | Profile / SDK `21.213.0` (`fit_tool/gen/`, `SDK_VERSION`) |
**Bottom line:** SHA-12 may move to `done` / `in_review` with the residuals
above explicit. Do **not** flip public marketing to “full Garmin FIT
diff --git a/fit_tool/__init__.py b/fit_tool/__init__.py
index 412f448..60939b9 100755
--- a/fit_tool/__init__.py
+++ b/fit_tool/__init__.py
@@ -13,7 +13,7 @@
# import ``from fit_tool import SDK_VERSION`` during package initialization
# (e.g. fit_file_header) see a fully assigned name.
PROTOCOL_VERSION = '2.4'
-SDK_VERSION = '21.212.0'
+SDK_VERSION = '21.213.0'
FIT_DATA_TYPE = b'.FIT'
from fit_tool.api import ( # noqa: E402
diff --git a/fit_tool/gen/Profile_21.212.0.xlsx b/fit_tool/gen/Profile_21.212.0.xlsx
deleted file mode 100644
index eb39061..0000000
Binary files a/fit_tool/gen/Profile_21.212.0.xlsx and /dev/null differ
diff --git a/fit_tool/gen/Profile_21.213.0.xlsx b/fit_tool/gen/Profile_21.213.0.xlsx
new file mode 100644
index 0000000..dd579cc
Binary files /dev/null and b/fit_tool/gen/Profile_21.213.0.xlsx differ
diff --git a/fit_tool/profile/component_registry.py b/fit_tool/profile/component_registry.py
index 2460f01..0d854ba 100644
--- a/fit_tool/profile/component_registry.py
+++ b/fit_tool/profile/component_registry.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
# Main-field components only (subfield-gated components omitted — see Stage 2 D).
"""Profile component registry for decode-time expansion.
diff --git a/fit_tool/profile/field_catalog.py b/fit_tool/profile/field_catalog.py
index fa22d3e..2c08cb1 100644
--- a/fit_tool/profile/field_catalog.py
+++ b/fit_tool/profile/field_catalog.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
"""Native field and closed-enum catalog for PROFILE validation.
Generated from the bundled Garmin Profile spreadsheet by ``gen-profile``.
@@ -16,7 +16,7 @@
from fit_tool.base_type import BaseType
-PROFILE_SDK_VERSION = '21.212.0'
+PROFILE_SDK_VERSION = '21.213.0'
PROFILE_MESSAGE_COUNT = 123
PROFILE_FIELD_COUNT = 1407
PROFILE_ENUM_TYPE_COUNT = 100
diff --git a/fit_tool/profile/messages/aad_accel_features_message.py b/fit_tool/profile/messages/aad_accel_features_message.py
index 56a9e8b..250f519 100644
--- a/fit_tool/profile/messages/aad_accel_features_message.py
+++ b/fit_tool/profile/messages/aad_accel_features_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/accelerometer_data_message.py b/fit_tool/profile/messages/accelerometer_data_message.py
index 6d59021..117aca2 100644
--- a/fit_tool/profile/messages/accelerometer_data_message.py
+++ b/fit_tool/profile/messages/accelerometer_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/activity_message.py b/fit_tool/profile/messages/activity_message.py
index a249a4b..fb88ef8 100644
--- a/fit_tool/profile/messages/activity_message.py
+++ b/fit_tool/profile/messages/activity_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/ant_channel_id_message.py b/fit_tool/profile/messages/ant_channel_id_message.py
index b6c3fa3..ca8c691 100644
--- a/fit_tool/profile/messages/ant_channel_id_message.py
+++ b/fit_tool/profile/messages/ant_channel_id_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/ant_rx_message.py b/fit_tool/profile/messages/ant_rx_message.py
index 218d18f..3f3e11b 100644
--- a/fit_tool/profile/messages/ant_rx_message.py
+++ b/fit_tool/profile/messages/ant_rx_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/ant_tx_message.py b/fit_tool/profile/messages/ant_tx_message.py
index 2283a0a..39b8928 100644
--- a/fit_tool/profile/messages/ant_tx_message.py
+++ b/fit_tool/profile/messages/ant_tx_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/aviation_attitude_message.py b/fit_tool/profile/messages/aviation_attitude_message.py
index 61b50a1..7764ee8 100644
--- a/fit_tool/profile/messages/aviation_attitude_message.py
+++ b/fit_tool/profile/messages/aviation_attitude_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/barometer_data_message.py b/fit_tool/profile/messages/barometer_data_message.py
index 5af1d43..338f6dd 100644
--- a/fit_tool/profile/messages/barometer_data_message.py
+++ b/fit_tool/profile/messages/barometer_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/beat_intervals_message.py b/fit_tool/profile/messages/beat_intervals_message.py
index 048f65d..50990cd 100644
--- a/fit_tool/profile/messages/beat_intervals_message.py
+++ b/fit_tool/profile/messages/beat_intervals_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/bike_profile_message.py b/fit_tool/profile/messages/bike_profile_message.py
index 61c8468..dee5fce 100644
--- a/fit_tool/profile/messages/bike_profile_message.py
+++ b/fit_tool/profile/messages/bike_profile_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/blood_pressure_message.py b/fit_tool/profile/messages/blood_pressure_message.py
index 663f968..6b5d007 100644
--- a/fit_tool/profile/messages/blood_pressure_message.py
+++ b/fit_tool/profile/messages/blood_pressure_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/cadence_zone_message.py b/fit_tool/profile/messages/cadence_zone_message.py
index 77387a4..21dee87 100644
--- a/fit_tool/profile/messages/cadence_zone_message.py
+++ b/fit_tool/profile/messages/cadence_zone_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/camera_event_message.py b/fit_tool/profile/messages/camera_event_message.py
index 6ffb06b..008ff1c 100644
--- a/fit_tool/profile/messages/camera_event_message.py
+++ b/fit_tool/profile/messages/camera_event_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/capabilities_message.py b/fit_tool/profile/messages/capabilities_message.py
index 5494d0d..7f4268c 100644
--- a/fit_tool/profile/messages/capabilities_message.py
+++ b/fit_tool/profile/messages/capabilities_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/chrono_shot_data_message.py b/fit_tool/profile/messages/chrono_shot_data_message.py
index 5deded0..45cbd61 100644
--- a/fit_tool/profile/messages/chrono_shot_data_message.py
+++ b/fit_tool/profile/messages/chrono_shot_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/chrono_shot_session_message.py b/fit_tool/profile/messages/chrono_shot_session_message.py
index a47cb13..848ebd4 100644
--- a/fit_tool/profile/messages/chrono_shot_session_message.py
+++ b/fit_tool/profile/messages/chrono_shot_session_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/climb_pro_message.py b/fit_tool/profile/messages/climb_pro_message.py
index 924b1fa..754629a 100644
--- a/fit_tool/profile/messages/climb_pro_message.py
+++ b/fit_tool/profile/messages/climb_pro_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/common_fields.py b/fit_tool/profile/messages/common_fields.py
index 5dc8a41..d9eb79c 100644
--- a/fit_tool/profile/messages/common_fields.py
+++ b/fit_tool/profile/messages/common_fields.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from fit_tool.base_type import BaseType
from fit_tool.field import Field
diff --git a/fit_tool/profile/messages/connectivity_message.py b/fit_tool/profile/messages/connectivity_message.py
index 33ede56..7cb5ff8 100644
--- a/fit_tool/profile/messages/connectivity_message.py
+++ b/fit_tool/profile/messages/connectivity_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/course_message.py b/fit_tool/profile/messages/course_message.py
index e03f9ee..def8828 100644
--- a/fit_tool/profile/messages/course_message.py
+++ b/fit_tool/profile/messages/course_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/course_point_message.py b/fit_tool/profile/messages/course_point_message.py
index 43770b3..ad9f4ee 100644
--- a/fit_tool/profile/messages/course_point_message.py
+++ b/fit_tool/profile/messages/course_point_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/developer_data_id_message.py b/fit_tool/profile/messages/developer_data_id_message.py
index 6ca54bb..1a5199f 100644
--- a/fit_tool/profile/messages/developer_data_id_message.py
+++ b/fit_tool/profile/messages/developer_data_id_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/device_aux_battery_info_message.py b/fit_tool/profile/messages/device_aux_battery_info_message.py
index 0a6b792..8da2b45 100644
--- a/fit_tool/profile/messages/device_aux_battery_info_message.py
+++ b/fit_tool/profile/messages/device_aux_battery_info_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/device_info_message.py b/fit_tool/profile/messages/device_info_message.py
index 4408548..cd97298 100644
--- a/fit_tool/profile/messages/device_info_message.py
+++ b/fit_tool/profile/messages/device_info_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/device_settings_message.py b/fit_tool/profile/messages/device_settings_message.py
index e94fda5..6267d56 100644
--- a/fit_tool/profile/messages/device_settings_message.py
+++ b/fit_tool/profile/messages/device_settings_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/dive_alarm_message.py b/fit_tool/profile/messages/dive_alarm_message.py
index 832b6e5..1632b52 100644
--- a/fit_tool/profile/messages/dive_alarm_message.py
+++ b/fit_tool/profile/messages/dive_alarm_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/dive_apnea_alarm_message.py b/fit_tool/profile/messages/dive_apnea_alarm_message.py
index 63e895f..35bc261 100644
--- a/fit_tool/profile/messages/dive_apnea_alarm_message.py
+++ b/fit_tool/profile/messages/dive_apnea_alarm_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/dive_gas_message.py b/fit_tool/profile/messages/dive_gas_message.py
index ceb036f..6b9b433 100644
--- a/fit_tool/profile/messages/dive_gas_message.py
+++ b/fit_tool/profile/messages/dive_gas_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/dive_settings_message.py b/fit_tool/profile/messages/dive_settings_message.py
index 2a15df4..00ff9f3 100644
--- a/fit_tool/profile/messages/dive_settings_message.py
+++ b/fit_tool/profile/messages/dive_settings_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/dive_summary_message.py b/fit_tool/profile/messages/dive_summary_message.py
index 0203ca2..ec9c48e 100644
--- a/fit_tool/profile/messages/dive_summary_message.py
+++ b/fit_tool/profile/messages/dive_summary_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/event_message.py b/fit_tool/profile/messages/event_message.py
index bb44a77..42cea2f 100644
--- a/fit_tool/profile/messages/event_message.py
+++ b/fit_tool/profile/messages/event_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/exd_data_concept_configuration_message.py b/fit_tool/profile/messages/exd_data_concept_configuration_message.py
index 6fda0ce..e2f14b8 100644
--- a/fit_tool/profile/messages/exd_data_concept_configuration_message.py
+++ b/fit_tool/profile/messages/exd_data_concept_configuration_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/exd_data_field_configuration_message.py b/fit_tool/profile/messages/exd_data_field_configuration_message.py
index 77493df..654c201 100644
--- a/fit_tool/profile/messages/exd_data_field_configuration_message.py
+++ b/fit_tool/profile/messages/exd_data_field_configuration_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/exd_screen_configuration_message.py b/fit_tool/profile/messages/exd_screen_configuration_message.py
index c940cee..c949bfb 100644
--- a/fit_tool/profile/messages/exd_screen_configuration_message.py
+++ b/fit_tool/profile/messages/exd_screen_configuration_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/exercise_title_message.py b/fit_tool/profile/messages/exercise_title_message.py
index c3be346..073b592 100644
--- a/fit_tool/profile/messages/exercise_title_message.py
+++ b/fit_tool/profile/messages/exercise_title_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/field_capabilities_message.py b/fit_tool/profile/messages/field_capabilities_message.py
index e601264..6cde4d8 100644
--- a/fit_tool/profile/messages/field_capabilities_message.py
+++ b/fit_tool/profile/messages/field_capabilities_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/field_description_message.py b/fit_tool/profile/messages/field_description_message.py
index 5007bd1..b5f9dbd 100644
--- a/fit_tool/profile/messages/field_description_message.py
+++ b/fit_tool/profile/messages/field_description_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/file_capabilities_message.py b/fit_tool/profile/messages/file_capabilities_message.py
index 3778402..c3a30bf 100644
--- a/fit_tool/profile/messages/file_capabilities_message.py
+++ b/fit_tool/profile/messages/file_capabilities_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/file_creator_message.py b/fit_tool/profile/messages/file_creator_message.py
index c460a8a..b0b558b 100644
--- a/fit_tool/profile/messages/file_creator_message.py
+++ b/fit_tool/profile/messages/file_creator_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/file_id_message.py b/fit_tool/profile/messages/file_id_message.py
index b089264..2c1cc38 100644
--- a/fit_tool/profile/messages/file_id_message.py
+++ b/fit_tool/profile/messages/file_id_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/goal_message.py b/fit_tool/profile/messages/goal_message.py
index 018c23a..65034b2 100644
--- a/fit_tool/profile/messages/goal_message.py
+++ b/fit_tool/profile/messages/goal_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/gps_metadata_message.py b/fit_tool/profile/messages/gps_metadata_message.py
index 8323d4c..4e7aacd 100644
--- a/fit_tool/profile/messages/gps_metadata_message.py
+++ b/fit_tool/profile/messages/gps_metadata_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/gyroscope_data_message.py b/fit_tool/profile/messages/gyroscope_data_message.py
index 195ecdd..834f923 100644
--- a/fit_tool/profile/messages/gyroscope_data_message.py
+++ b/fit_tool/profile/messages/gyroscope_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hr_message.py b/fit_tool/profile/messages/hr_message.py
index 6dd8485..be040cb 100644
--- a/fit_tool/profile/messages/hr_message.py
+++ b/fit_tool/profile/messages/hr_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hr_zone_message.py b/fit_tool/profile/messages/hr_zone_message.py
index ec632ab..29c502c 100644
--- a/fit_tool/profile/messages/hr_zone_message.py
+++ b/fit_tool/profile/messages/hr_zone_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hrm_profile_message.py b/fit_tool/profile/messages/hrm_profile_message.py
index 12a830e..dc97f52 100644
--- a/fit_tool/profile/messages/hrm_profile_message.py
+++ b/fit_tool/profile/messages/hrm_profile_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hrv_message.py b/fit_tool/profile/messages/hrv_message.py
index 211a8f1..92d65b7 100644
--- a/fit_tool/profile/messages/hrv_message.py
+++ b/fit_tool/profile/messages/hrv_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hrv_status_summary_message.py b/fit_tool/profile/messages/hrv_status_summary_message.py
index 8b07d46..ebd9159 100644
--- a/fit_tool/profile/messages/hrv_status_summary_message.py
+++ b/fit_tool/profile/messages/hrv_status_summary_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hrv_value_message.py b/fit_tool/profile/messages/hrv_value_message.py
index b9d9f22..220698b 100644
--- a/fit_tool/profile/messages/hrv_value_message.py
+++ b/fit_tool/profile/messages/hrv_value_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_accelerometer_data_message.py b/fit_tool/profile/messages/hsa_accelerometer_data_message.py
index 331fb4d..d29cd53 100644
--- a/fit_tool/profile/messages/hsa_accelerometer_data_message.py
+++ b/fit_tool/profile/messages/hsa_accelerometer_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_body_battery_data_message.py b/fit_tool/profile/messages/hsa_body_battery_data_message.py
index d907b96..a24f646 100644
--- a/fit_tool/profile/messages/hsa_body_battery_data_message.py
+++ b/fit_tool/profile/messages/hsa_body_battery_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_configuration_data_message.py b/fit_tool/profile/messages/hsa_configuration_data_message.py
index db2afb4..e413cd0 100644
--- a/fit_tool/profile/messages/hsa_configuration_data_message.py
+++ b/fit_tool/profile/messages/hsa_configuration_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_event_message.py b/fit_tool/profile/messages/hsa_event_message.py
index 266e6a5..a52c8a9 100644
--- a/fit_tool/profile/messages/hsa_event_message.py
+++ b/fit_tool/profile/messages/hsa_event_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_gyroscope_data_message.py b/fit_tool/profile/messages/hsa_gyroscope_data_message.py
index 658b16a..5682a30 100644
--- a/fit_tool/profile/messages/hsa_gyroscope_data_message.py
+++ b/fit_tool/profile/messages/hsa_gyroscope_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_heart_rate_data_message.py b/fit_tool/profile/messages/hsa_heart_rate_data_message.py
index 9319536..e6795f4 100644
--- a/fit_tool/profile/messages/hsa_heart_rate_data_message.py
+++ b/fit_tool/profile/messages/hsa_heart_rate_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_respiration_data_message.py b/fit_tool/profile/messages/hsa_respiration_data_message.py
index 9b12fa3..ee8f6f5 100644
--- a/fit_tool/profile/messages/hsa_respiration_data_message.py
+++ b/fit_tool/profile/messages/hsa_respiration_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_spo2_data_message.py b/fit_tool/profile/messages/hsa_spo2_data_message.py
index 7caf92e..d2bdb6e 100644
--- a/fit_tool/profile/messages/hsa_spo2_data_message.py
+++ b/fit_tool/profile/messages/hsa_spo2_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_step_data_message.py b/fit_tool/profile/messages/hsa_step_data_message.py
index 4c30274..bfbf222 100644
--- a/fit_tool/profile/messages/hsa_step_data_message.py
+++ b/fit_tool/profile/messages/hsa_step_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_stress_data_message.py b/fit_tool/profile/messages/hsa_stress_data_message.py
index 07ea7a2..df92140 100644
--- a/fit_tool/profile/messages/hsa_stress_data_message.py
+++ b/fit_tool/profile/messages/hsa_stress_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/hsa_wrist_temperature_data_message.py b/fit_tool/profile/messages/hsa_wrist_temperature_data_message.py
index 51f4be6..eb152ed 100644
--- a/fit_tool/profile/messages/hsa_wrist_temperature_data_message.py
+++ b/fit_tool/profile/messages/hsa_wrist_temperature_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/jump_message.py b/fit_tool/profile/messages/jump_message.py
index 13f53a4..e73c6ee 100644
--- a/fit_tool/profile/messages/jump_message.py
+++ b/fit_tool/profile/messages/jump_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/lap_message.py b/fit_tool/profile/messages/lap_message.py
index a016a9f..13927d9 100644
--- a/fit_tool/profile/messages/lap_message.py
+++ b/fit_tool/profile/messages/lap_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/length_message.py b/fit_tool/profile/messages/length_message.py
index 5451dde..b5d1196 100644
--- a/fit_tool/profile/messages/length_message.py
+++ b/fit_tool/profile/messages/length_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/magnetometer_data_message.py b/fit_tool/profile/messages/magnetometer_data_message.py
index af2a203..39a53d8 100644
--- a/fit_tool/profile/messages/magnetometer_data_message.py
+++ b/fit_tool/profile/messages/magnetometer_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/max_met_data_message.py b/fit_tool/profile/messages/max_met_data_message.py
index bddb689..ace67d9 100644
--- a/fit_tool/profile/messages/max_met_data_message.py
+++ b/fit_tool/profile/messages/max_met_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/memo_glob_message.py b/fit_tool/profile/messages/memo_glob_message.py
index 6f262dd..4544fbc 100644
--- a/fit_tool/profile/messages/memo_glob_message.py
+++ b/fit_tool/profile/messages/memo_glob_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/mesg_capabilities_message.py b/fit_tool/profile/messages/mesg_capabilities_message.py
index d072703..3013cab 100644
--- a/fit_tool/profile/messages/mesg_capabilities_message.py
+++ b/fit_tool/profile/messages/mesg_capabilities_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/message_factory.py b/fit_tool/profile/messages/message_factory.py
index f122cd8..7fcc423 100644
--- a/fit_tool/profile/messages/message_factory.py
+++ b/fit_tool/profile/messages/message_factory.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from functools import lru_cache
from importlib import import_module
from typing import List, Optional, Type
diff --git a/fit_tool/profile/messages/met_zone_message.py b/fit_tool/profile/messages/met_zone_message.py
index aa7adad..18c26b7 100644
--- a/fit_tool/profile/messages/met_zone_message.py
+++ b/fit_tool/profile/messages/met_zone_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/monitoring_hr_data_message.py b/fit_tool/profile/messages/monitoring_hr_data_message.py
index dbe220a..d734c04 100644
--- a/fit_tool/profile/messages/monitoring_hr_data_message.py
+++ b/fit_tool/profile/messages/monitoring_hr_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/monitoring_info_message.py b/fit_tool/profile/messages/monitoring_info_message.py
index a8b9867..0842654 100644
--- a/fit_tool/profile/messages/monitoring_info_message.py
+++ b/fit_tool/profile/messages/monitoring_info_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/monitoring_message.py b/fit_tool/profile/messages/monitoring_message.py
index 12e6a7b..726b7ff 100644
--- a/fit_tool/profile/messages/monitoring_message.py
+++ b/fit_tool/profile/messages/monitoring_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/nap_event_message.py b/fit_tool/profile/messages/nap_event_message.py
index 8339231..961a977 100644
--- a/fit_tool/profile/messages/nap_event_message.py
+++ b/fit_tool/profile/messages/nap_event_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/nmea_sentence_message.py b/fit_tool/profile/messages/nmea_sentence_message.py
index e0423a1..4d8624b 100644
--- a/fit_tool/profile/messages/nmea_sentence_message.py
+++ b/fit_tool/profile/messages/nmea_sentence_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/obdii_data_message.py b/fit_tool/profile/messages/obdii_data_message.py
index 4fa7daf..4662285 100644
--- a/fit_tool/profile/messages/obdii_data_message.py
+++ b/fit_tool/profile/messages/obdii_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/ohr_settings_message.py b/fit_tool/profile/messages/ohr_settings_message.py
index a860987..fcf0c0c 100644
--- a/fit_tool/profile/messages/ohr_settings_message.py
+++ b/fit_tool/profile/messages/ohr_settings_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/one_d_sensor_calibration_message.py b/fit_tool/profile/messages/one_d_sensor_calibration_message.py
index 6389cb9..f11272b 100644
--- a/fit_tool/profile/messages/one_d_sensor_calibration_message.py
+++ b/fit_tool/profile/messages/one_d_sensor_calibration_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/power_zone_message.py b/fit_tool/profile/messages/power_zone_message.py
index 174b1c0..0276612 100644
--- a/fit_tool/profile/messages/power_zone_message.py
+++ b/fit_tool/profile/messages/power_zone_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/raw_bbi_message.py b/fit_tool/profile/messages/raw_bbi_message.py
index 258286f..49ec8e7 100644
--- a/fit_tool/profile/messages/raw_bbi_message.py
+++ b/fit_tool/profile/messages/raw_bbi_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/record_message.py b/fit_tool/profile/messages/record_message.py
index 705ddea..bf4adae 100644
--- a/fit_tool/profile/messages/record_message.py
+++ b/fit_tool/profile/messages/record_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/respiration_rate_message.py b/fit_tool/profile/messages/respiration_rate_message.py
index 019d411..a05e4d3 100644
--- a/fit_tool/profile/messages/respiration_rate_message.py
+++ b/fit_tool/profile/messages/respiration_rate_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/schedule_message.py b/fit_tool/profile/messages/schedule_message.py
index 192a22d..0c63113 100644
--- a/fit_tool/profile/messages/schedule_message.py
+++ b/fit_tool/profile/messages/schedule_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/sdm_profile_message.py b/fit_tool/profile/messages/sdm_profile_message.py
index 7961cfb..a354fd3 100644
--- a/fit_tool/profile/messages/sdm_profile_message.py
+++ b/fit_tool/profile/messages/sdm_profile_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/segment_file_message.py b/fit_tool/profile/messages/segment_file_message.py
index 4053e0f..b15e752 100644
--- a/fit_tool/profile/messages/segment_file_message.py
+++ b/fit_tool/profile/messages/segment_file_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/segment_id_message.py b/fit_tool/profile/messages/segment_id_message.py
index c34205f..4a4073b 100644
--- a/fit_tool/profile/messages/segment_id_message.py
+++ b/fit_tool/profile/messages/segment_id_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/segment_lap_message.py b/fit_tool/profile/messages/segment_lap_message.py
index f173a49..f41928a 100644
--- a/fit_tool/profile/messages/segment_lap_message.py
+++ b/fit_tool/profile/messages/segment_lap_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/segment_leaderboard_entry_message.py b/fit_tool/profile/messages/segment_leaderboard_entry_message.py
index f5baa6a..9745ac4 100644
--- a/fit_tool/profile/messages/segment_leaderboard_entry_message.py
+++ b/fit_tool/profile/messages/segment_leaderboard_entry_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/segment_point_message.py b/fit_tool/profile/messages/segment_point_message.py
index ff89a8b..d5ddce8 100644
--- a/fit_tool/profile/messages/segment_point_message.py
+++ b/fit_tool/profile/messages/segment_point_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/session_message.py b/fit_tool/profile/messages/session_message.py
index 38936ad..046597c 100644
--- a/fit_tool/profile/messages/session_message.py
+++ b/fit_tool/profile/messages/session_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/set_message.py b/fit_tool/profile/messages/set_message.py
index 4708a7e..8e7e440 100644
--- a/fit_tool/profile/messages/set_message.py
+++ b/fit_tool/profile/messages/set_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/skin_temp_overnight_message.py b/fit_tool/profile/messages/skin_temp_overnight_message.py
index b6cbbd6..26c1250 100644
--- a/fit_tool/profile/messages/skin_temp_overnight_message.py
+++ b/fit_tool/profile/messages/skin_temp_overnight_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/slave_device_message.py b/fit_tool/profile/messages/slave_device_message.py
index 852d2f3..dbd73ed 100644
--- a/fit_tool/profile/messages/slave_device_message.py
+++ b/fit_tool/profile/messages/slave_device_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/sleep_assessment_message.py b/fit_tool/profile/messages/sleep_assessment_message.py
index 533db10..69b5024 100644
--- a/fit_tool/profile/messages/sleep_assessment_message.py
+++ b/fit_tool/profile/messages/sleep_assessment_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/sleep_disruption_overnight_severity_message.py b/fit_tool/profile/messages/sleep_disruption_overnight_severity_message.py
index 36c8223..46f62ab 100644
--- a/fit_tool/profile/messages/sleep_disruption_overnight_severity_message.py
+++ b/fit_tool/profile/messages/sleep_disruption_overnight_severity_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/sleep_disruption_severity_period_message.py b/fit_tool/profile/messages/sleep_disruption_severity_period_message.py
index a62f602..0dd25d9 100644
--- a/fit_tool/profile/messages/sleep_disruption_severity_period_message.py
+++ b/fit_tool/profile/messages/sleep_disruption_severity_period_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/sleep_level_message.py b/fit_tool/profile/messages/sleep_level_message.py
index 76f1c62..9f3a447 100644
--- a/fit_tool/profile/messages/sleep_level_message.py
+++ b/fit_tool/profile/messages/sleep_level_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/software_message.py b/fit_tool/profile/messages/software_message.py
index 3ec978c..5730c46 100644
--- a/fit_tool/profile/messages/software_message.py
+++ b/fit_tool/profile/messages/software_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/speed_zone_message.py b/fit_tool/profile/messages/speed_zone_message.py
index aa53eef..5c39c00 100644
--- a/fit_tool/profile/messages/speed_zone_message.py
+++ b/fit_tool/profile/messages/speed_zone_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/split_message.py b/fit_tool/profile/messages/split_message.py
index 8afb25d..1bb3ad7 100644
--- a/fit_tool/profile/messages/split_message.py
+++ b/fit_tool/profile/messages/split_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/split_summary_message.py b/fit_tool/profile/messages/split_summary_message.py
index 82df52f..73e31b0 100644
--- a/fit_tool/profile/messages/split_summary_message.py
+++ b/fit_tool/profile/messages/split_summary_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/spo2_data_message.py b/fit_tool/profile/messages/spo2_data_message.py
index 1457aff..b585678 100644
--- a/fit_tool/profile/messages/spo2_data_message.py
+++ b/fit_tool/profile/messages/spo2_data_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/sport_message.py b/fit_tool/profile/messages/sport_message.py
index 1a02924..19865ee 100644
--- a/fit_tool/profile/messages/sport_message.py
+++ b/fit_tool/profile/messages/sport_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/stress_level_message.py b/fit_tool/profile/messages/stress_level_message.py
index 3914725..9014a8b 100644
--- a/fit_tool/profile/messages/stress_level_message.py
+++ b/fit_tool/profile/messages/stress_level_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/tank_summary_message.py b/fit_tool/profile/messages/tank_summary_message.py
index 5f1ddd0..831c4ff 100644
--- a/fit_tool/profile/messages/tank_summary_message.py
+++ b/fit_tool/profile/messages/tank_summary_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/tank_update_message.py b/fit_tool/profile/messages/tank_update_message.py
index 0b707d1..ed14526 100644
--- a/fit_tool/profile/messages/tank_update_message.py
+++ b/fit_tool/profile/messages/tank_update_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/three_d_sensor_calibration_message.py b/fit_tool/profile/messages/three_d_sensor_calibration_message.py
index 864e872..090c48e 100644
--- a/fit_tool/profile/messages/three_d_sensor_calibration_message.py
+++ b/fit_tool/profile/messages/three_d_sensor_calibration_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/time_in_zone_message.py b/fit_tool/profile/messages/time_in_zone_message.py
index 2b6b548..dfefed4 100644
--- a/fit_tool/profile/messages/time_in_zone_message.py
+++ b/fit_tool/profile/messages/time_in_zone_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/timestamp_correlation_message.py b/fit_tool/profile/messages/timestamp_correlation_message.py
index 83369bc..9cf2e77 100644
--- a/fit_tool/profile/messages/timestamp_correlation_message.py
+++ b/fit_tool/profile/messages/timestamp_correlation_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/totals_message.py b/fit_tool/profile/messages/totals_message.py
index dd94a84..4353f05 100644
--- a/fit_tool/profile/messages/totals_message.py
+++ b/fit_tool/profile/messages/totals_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/training_file_message.py b/fit_tool/profile/messages/training_file_message.py
index 1d49a5e..841bca3 100644
--- a/fit_tool/profile/messages/training_file_message.py
+++ b/fit_tool/profile/messages/training_file_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/training_settings_message.py b/fit_tool/profile/messages/training_settings_message.py
index dfd19d1..a46b471 100644
--- a/fit_tool/profile/messages/training_settings_message.py
+++ b/fit_tool/profile/messages/training_settings_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/user_profile_message.py b/fit_tool/profile/messages/user_profile_message.py
index 9ada155..c7ea639 100644
--- a/fit_tool/profile/messages/user_profile_message.py
+++ b/fit_tool/profile/messages/user_profile_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/video_clip_message.py b/fit_tool/profile/messages/video_clip_message.py
index fc3ac9e..f2915d5 100644
--- a/fit_tool/profile/messages/video_clip_message.py
+++ b/fit_tool/profile/messages/video_clip_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/video_description_message.py b/fit_tool/profile/messages/video_description_message.py
index 352bdeb..56bbc3e 100644
--- a/fit_tool/profile/messages/video_description_message.py
+++ b/fit_tool/profile/messages/video_description_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/video_frame_message.py b/fit_tool/profile/messages/video_frame_message.py
index e5702b4..b80a10c 100644
--- a/fit_tool/profile/messages/video_frame_message.py
+++ b/fit_tool/profile/messages/video_frame_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/video_message.py b/fit_tool/profile/messages/video_message.py
index 8a1cbcd..dda4a4f 100644
--- a/fit_tool/profile/messages/video_message.py
+++ b/fit_tool/profile/messages/video_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/video_title_message.py b/fit_tool/profile/messages/video_title_message.py
index 82405d1..de49cf6 100644
--- a/fit_tool/profile/messages/video_title_message.py
+++ b/fit_tool/profile/messages/video_title_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/watchface_settings_message.py b/fit_tool/profile/messages/watchface_settings_message.py
index 95cfd40..4e41d87 100644
--- a/fit_tool/profile/messages/watchface_settings_message.py
+++ b/fit_tool/profile/messages/watchface_settings_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/weather_alert_message.py b/fit_tool/profile/messages/weather_alert_message.py
index e81507b..3b34c1e 100644
--- a/fit_tool/profile/messages/weather_alert_message.py
+++ b/fit_tool/profile/messages/weather_alert_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/weather_conditions_message.py b/fit_tool/profile/messages/weather_conditions_message.py
index 608cc39..f10525f 100644
--- a/fit_tool/profile/messages/weather_conditions_message.py
+++ b/fit_tool/profile/messages/weather_conditions_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/weight_scale_message.py b/fit_tool/profile/messages/weight_scale_message.py
index 90cb2b7..57e752e 100644
--- a/fit_tool/profile/messages/weight_scale_message.py
+++ b/fit_tool/profile/messages/weight_scale_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/workout_message.py b/fit_tool/profile/messages/workout_message.py
index 9acf855..2c57331 100644
--- a/fit_tool/profile/messages/workout_message.py
+++ b/fit_tool/profile/messages/workout_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/workout_session_message.py b/fit_tool/profile/messages/workout_session_message.py
index 7d9b514..a6aac31 100644
--- a/fit_tool/profile/messages/workout_session_message.py
+++ b/fit_tool/profile/messages/workout_session_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/workout_step_message.py b/fit_tool/profile/messages/workout_step_message.py
index 43d2d89..bb5f194 100644
--- a/fit_tool/profile/messages/workout_step_message.py
+++ b/fit_tool/profile/messages/workout_step_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/messages/zones_target_message.py b/fit_tool/profile/messages/zones_target_message.py
index eeb2ee3..2e9f5b5 100644
--- a/fit_tool/profile/messages/zones_target_message.py
+++ b/fit_tool/profile/messages/zones_target_message.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from typing import Optional
from fit_tool.base_type import BaseType
diff --git a/fit_tool/profile/profile_type.py b/fit_tool/profile/profile_type.py
index caa6a92..6605e41 100644
--- a/fit_tool/profile/profile_type.py
+++ b/fit_tool/profile/profile_type.py
@@ -1,6 +1,6 @@
# Autogenerated. Do not modify.
#
-# Profile: 21.212.0
+# Profile: 21.213.0
from enum import Enum
@@ -1950,6 +1950,9 @@ class GarminProduct(Enum):
FENIX8_SMALL = 4534
FENIX8 = 4536
D2_MACH1_PRO = 4556
+ FR970 = 4565
+ FR570_LARGE = 4570
+ FR570_SMALL = 4574
ENDURO3 = 4575
INSTINCT_E_40MM = 4583
INSTINCT_E_45MM = 4584
diff --git a/fit_tool/tests/data/README.md b/fit_tool/tests/data/README.md
index 467346c..1a72371 100644
--- a/fit_tool/tests/data/README.md
+++ b/fit_tool/tests/data/README.md
@@ -23,7 +23,7 @@ Garmin publishes sample FIT files and tools under their FIT SDK license.
- Site:
- Also: and language SDKs such as
(tag must match
- `fit_tool.SDK_VERSION`, currently Profile **21.212.0**).
+ `fit_tool.SDK_VERSION`, currently Profile **21.213.0**).
2. **What you may commit**
- Only small, redistributable SDK examples that Garmin ships as samples.
- Do **not** commit proprietary device dumps, Connect exports with PII, or
@@ -33,7 +33,7 @@ Garmin publishes sample FIT files and tools under their FIT SDK license.
- This repository already vendors a minimal subset under `sdk/` for CI; do
not bulk-replace it with a full SDK tree.
4. **Profile spreadsheet**
- - Bundled at `fit_tool/gen/Profile_21.212.0.xlsx` for codegen only; not a
+ - Bundled at `fit_tool/gen/Profile_21.213.0.xlsx` for codegen only; not a
runtime fixture.
## Live interop (optional)
diff --git a/fit_tool/tests/test_fit_file_header.py b/fit_tool/tests/test_fit_file_header.py
index fae6cca..9b05964 100755
--- a/fit_tool/tests/test_fit_file_header.py
+++ b/fit_tool/tests/test_fit_file_header.py
@@ -33,10 +33,10 @@ def test_profile_version(self):
self.assertEqual(bytes1, bytes2)
def test_current_profile_version_uses_three_digit_minor_version(self):
- profile_version = ProfileVersion(21, 212)
+ profile_version = ProfileVersion(21, 213)
- self.assertEqual(21212, profile_version.version_code)
- self.assertEqual('21.212', str(ProfileVersion.from_bytes(profile_version.to_bytes())))
+ self.assertEqual(21213, profile_version.version_code)
+ self.assertEqual('21.213', str(ProfileVersion.from_bytes(profile_version.to_bytes())))
def test_profile_versions_after_scale_transition_use_current_scale(self):
profile_version = ProfileVersion(22, 0)
@@ -47,7 +47,7 @@ def test_profile_versions_after_scale_transition_use_current_scale(self):
def test_default_profile_version_matches_sdk_version(self):
header = FitFileHeader(records_size=0)
- self.assertEqual('21.212', str(header.profile_version))
+ self.assertEqual('21.213', str(header.profile_version))
def test_generate_crc(self):
protocol_version = ProtocolVersion(2, 3)
diff --git a/fit_tool/tests/test_garmin_sdk_interop.py b/fit_tool/tests/test_garmin_sdk_interop.py
index edd524b..2e85709 100644
--- a/fit_tool/tests/test_garmin_sdk_interop.py
+++ b/fit_tool/tests/test_garmin_sdk_interop.py
@@ -24,9 +24,9 @@
GARMIN_BRIDGE_PATH = TEST_DIR / 'interop' / 'garmin_fit_bridge.mjs'
# file_id payload matching the prior Garmin fit-javascript-sdk encoder sample,
-# with Profile header/CRC updated for SDK 21.212.0 (profile u16 LE 0x52dc).
-GARMIN_JS_21_212_FILE_ID = bytes.fromhex(
- '0e02dc52230000002e4649545f05'
+# with Profile header/CRC updated for SDK 21.213.0 (profile u16 LE 0x52dd).
+GARMIN_JS_21_213_FILE_ID = bytes.fromhex(
+ '0e02dd52230000002e4649540ec0'
'40000000000500010201028402028403048c040486'
'0004ff000000d204000080b4f43ffbfe'
)
@@ -201,10 +201,10 @@ def _run_garmin_bridge(request):
class TestGarminSdkInterop(unittest.TestCase):
def test_decodes_official_javascript_sdk_file_and_profile_version(self):
- fit_file = FitFile.from_bytes(GARMIN_JS_21_212_FILE_ID)
+ fit_file = FitFile.from_bytes(GARMIN_JS_21_213_FILE_ID)
message = fit_file.records[-1].message
- self.assertEqual('21.212', str(fit_file.header.profile_version))
+ self.assertEqual('21.213', str(fit_file.header.profile_version))
self.assertEqual(FileType.ACTIVITY.value, message.type)
self.assertEqual(1234, message.serial_number)
@@ -220,7 +220,7 @@ def test_builder_declares_the_generated_profile_version(self):
builder.add(message)
fit_file = FitFile.from_bytes(builder.build_bytes())
- self.assertEqual('21.212', str(fit_file.header.profile_version))
+ self.assertEqual('21.213', str(fit_file.header.profile_version))
@unittest.skipUnless(
diff --git a/fit_tool/tests/test_public_api.py b/fit_tool/tests/test_public_api.py
index f9d91e5..ace1bbd 100644
--- a/fit_tool/tests/test_public_api.py
+++ b/fit_tool/tests/test_public_api.py
@@ -31,7 +31,7 @@ def test_core_symbols_importable_from_package_root(self) -> None:
validate_fit_file,
)
- self.assertEqual(SDK_VERSION, '21.212.0')
+ self.assertEqual(SDK_VERSION, '21.213.0')
self.assertEqual(PROTOCOL_VERSION, '2.4')
self.assertEqual(FIT_DATA_TYPE, b'.FIT')
self.assertTrue(issubclass(FitCRCError, FitParseError))
diff --git a/news/65.dep b/news/65.dep
new file mode 100644
index 0000000..0cc6e0f
--- /dev/null
+++ b/news/65.dep
@@ -0,0 +1 @@
+Upgrade the bundled Garmin FIT SDK Profile to 21.213.0.