Coverage for src / bluetooth_sig / gatt / services / fitness_machine_service.py: 100%

6 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-11 20:14 +0000

1"""Fitness Machine Service implementation.""" 

2 

3from __future__ import annotations 

4 

5from typing import ClassVar 

6 

7from ..characteristics.registry import CharacteristicName 

8from .base import BaseGattService 

9 

10 

11class FitnessMachineService(BaseGattService): 

12 """Fitness Machine Service implementation. 

13 

14 Contains characteristics related to fitness machines: 

15 - Fitness Machine Feature - Mandatory 

16 - Treadmill Data - Optional 

17 - Cross Trainer Data - Optional 

18 - Step Climber Data - Optional 

19 - Stair Climber Data - Optional 

20 - Rower Data - Optional 

21 - Indoor Bike Data - Optional 

22 - Training Status - Optional 

23 - Supported Speed Range - Optional 

24 - Supported Inclination Range - Optional 

25 - Supported Resistance Level Range - Optional 

26 - Supported Heart Rate Range - Optional 

27 - Supported Power Range - Optional 

28 - Fitness Machine Control Point - Optional 

29 - Fitness Machine Status - Optional 

30 """ 

31 

32 service_characteristics: ClassVar[dict[CharacteristicName, bool]] = { 

33 CharacteristicName.FITNESS_MACHINE_FEATURE: True, # mandatory 

34 CharacteristicName.TREADMILL_DATA: False, # optional 

35 CharacteristicName.CROSS_TRAINER_DATA: False, # optional 

36 CharacteristicName.STEP_CLIMBER_DATA: False, # optional 

37 CharacteristicName.STAIR_CLIMBER_DATA: False, # optional 

38 CharacteristicName.ROWER_DATA: False, # optional 

39 CharacteristicName.INDOOR_BIKE_DATA: False, # optional 

40 CharacteristicName.TRAINING_STATUS: False, # optional 

41 CharacteristicName.SUPPORTED_SPEED_RANGE: False, # optional 

42 CharacteristicName.SUPPORTED_INCLINATION_RANGE: False, # optional 

43 CharacteristicName.SUPPORTED_RESISTANCE_LEVEL_RANGE: False, # optional 

44 CharacteristicName.SUPPORTED_HEART_RATE_RANGE: False, # optional 

45 CharacteristicName.SUPPORTED_POWER_RANGE: False, # optional 

46 CharacteristicName.FITNESS_MACHINE_CONTROL_POINT: False, # optional 

47 CharacteristicName.FITNESS_MACHINE_STATUS: False, # optional 

48 }