Add the code to generate outgoing FitDefinition- and FitDataStatusMessage.
Add support for incoming FitDefinitionMessage and register handler via deviceEvent (commented for now to avoid leaking).
Refactor FitLocalMessageHandler to support both outgoing and incoming handling of FitDefinition/FitData.
Most of the changes were not tested for the lack of hardware, but at least they show no regressions.
Refactor FitDataMessage to support a two-step message parsing: at first hold a copy of the incoming bytestream and later parse it according to a list of RecordDefinitions.
This allows to remove PredefinedLocalMessage which was already made obsolete by previous changes.
This should also allow to support incoming FitDefinition/FitData exchanges.
Use a temporary MessageHandler to send Definitions and Data in sequence instead of in parallel.
Add functionality to populate FitLocalMessageBuilder record by record instead of with a List, also add helper to get an unused localMessageType.
Don't use hardcoded localMessageTypes for weather message as they are not required.
Add equals() and hashCode() to all classes needed to properly compare RecordDefinition class instances.
Add FitLocalMessageBuilder class to deduplicate the Definitions also recreating the RecordData in case they differ just from previous ones with the same localMessageType (e.g. if they were built specifying the fields in a different order).
Restore a different order in GarminSupport when building weather messages, to test the deduplication.
Add FieldDefinitionWeatherReport as proper enum with explicit Types. Also adapt the code generator and run it (without adding all unrelated changes to generated Messages, only FitWeather).
Implements HuamiHrvSummarySampleProvider to compute HRV summary statistics
on-demand from per-minute HRV value samples. Calculates weekly averages,
last night values, baselines, and HRV status (LOW/UNBALANCED/BALANCED).
This enables full HRV dashboard and status screen functionality for devices
that only provide raw HRV measurements without pre-computed summaries.
- Created HuamiHrvSummarySampleProvider with computed summary logic
- Added getHrvSummarySampleProvider() override in HuamiCoordinator
- Computes 7-day rolling average, last-night stats, and 14-day baselines
- Works retroactively with existing historical HRV data