Coverage for src / bluetooth_sig / gatt / characteristics / apparent_power.py: 100%
12 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-11 20:14 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-11 20:14 +0000
1"""Apparent Power characteristic implementation."""
3from __future__ import annotations
5from ..context import CharacteristicContext
6from .base import BaseCharacteristic
7from .utils.data_parser import DataParser
10class ApparentPowerCharacteristic(BaseCharacteristic[float]):
11 """Apparent Power characteristic."""
13 _manual_unit: str | None = "VA" # YAML: electrical_apparent_power.volt_ampere, units.yaml: power.volt_ampere
15 def _decode_value(self, data: bytearray, ctx: CharacteristicContext | None = None) -> float:
16 """Decode the apparent power value."""
17 value = DataParser.parse_int24(data, 0, signed=False)
19 return value * 0.1 # Resolution 0.1 VA
21 def _encode_value(self, data: float) -> bytearray:
22 """Encode the apparent power value."""
23 encoded = int(data / 0.1)
24 return DataParser.encode_int24(encoded, signed=False)