Coverage for src / bluetooth_sig / gatt / characteristics / voltage_frequency.py: 100%

9 statements  

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

1"""Voltage Frequency characteristic implementation.""" 

2 

3from __future__ import annotations 

4 

5from ...types.units import ElectricalUnit 

6from .base import BaseCharacteristic 

7from .templates import ScaledUint16Template 

8 

9 

10class VoltageFrequencyCharacteristic(BaseCharacteristic[float]): 

11 """Voltage Frequency characteristic (0x2BE8). 

12 

13 org.bluetooth.characteristic.voltage_frequency 

14 

15 Voltage Frequency characteristic. 

16 

17 Measures voltage frequency with 1/256 Hz resolution. 

18 """ 

19 

20 _template = ScaledUint16Template(scale_factor=1 / 256) 

21 

22 _manual_unit: str = ElectricalUnit.HERTZ.value # Override template's "units" default 

23 resolution: float = 1 / 256 

24 # YAML encodes min/max as "Minimum: 1" "Maximum: 65533" (not "Allowed range"). 

25 max_value: float = 65533.0 * (1.0 / 256.0) # Exclude special values 0xFFFE and 0xFFFF