45 lines
836 B
Python
45 lines
836 B
Python
from dataclasses import dataclass
|
|
from pathlib import Path
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class FieldDefinition:
|
|
num: int
|
|
size: int
|
|
base_type: int
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class LocalDefinition:
|
|
global_message_num: int
|
|
endian: str
|
|
fields: tuple[FieldDefinition, ...]
|
|
developer_field_size: int
|
|
|
|
|
|
GARMIN_MANUFACTURER_ID = 1
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class GarminDevice:
|
|
manufacturer_id: int = GARMIN_MANUFACTURER_ID
|
|
product_id: int = 3570
|
|
product_name: str = "Edge 1030 Plus"
|
|
serial_number: int | None = None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class FitConversionResult:
|
|
source_path: Path
|
|
output_path: Path
|
|
patched_field_count: int
|
|
header_crc: int | None
|
|
file_crc: int
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class DeviceFieldValue:
|
|
global_message_num: int
|
|
field_num: int
|
|
value: int | str
|