src.bluetooth_sig.gatt.characteristics.utils.ieee11073_parser

IEEE 11073 medical device format support utilities.

Classes

Name

Description

IEEE11073Parser

Utility class for IEEE-11073 medical device format support.

Module Contents

class src.bluetooth_sig.gatt.characteristics.utils.ieee11073_parser.IEEE11073Parser

Utility class for IEEE-11073 medical device format support.

static encode_float32(value: float) bytearray

Encode float to IEEE 11073 32-bit FLOAT.

static encode_sfloat(value: float) bytearray

Encode float to IEEE 11073 16-bit SFLOAT.

static encode_timestamp(timestamp: datetime.datetime) bytearray

Encode timestamp to IEEE-11073 7-byte format.

static parse_float32(data: bytes | bytearray, offset: int = 0) float

Parse IEEE 11073 32-bit FLOAT.

static parse_sfloat(data: bytes | bytearray, offset: int = 0) float

Parse IEEE 11073 16-bit SFLOAT.

Parameters:
  • data – Raw bytes/bytearray

  • offset – Offset in the data

static parse_timestamp(data: bytearray, offset: int) datetime.datetime

Parse IEEE-11073 timestamp format (7 bytes).

DAY_MAX = 31
DAY_MIN = 1
FLOAT32_EXPONENT_BIAS = 128
FLOAT32_EXPONENT_BIT_WIDTH = 8
FLOAT32_EXPONENT_CONVERSION = 256
FLOAT32_EXPONENT_MASK = 255
FLOAT32_EXPONENT_MAX = 127
FLOAT32_EXPONENT_MIN = -128
FLOAT32_EXPONENT_SIGN_BIT = 128
FLOAT32_EXPONENT_START_BIT = 24
FLOAT32_MANTISSA_BIT_WIDTH = 24
FLOAT32_MANTISSA_CONVERSION = 16777216
FLOAT32_MANTISSA_MASK = 16777215
FLOAT32_MANTISSA_MAX = 8388608
FLOAT32_MANTISSA_SIGN_BIT = 8388608
FLOAT32_MANTISSA_START_BIT = 0
FLOAT32_NAN = 8388607
FLOAT32_NEGATIVE_INFINITY = 8388610
FLOAT32_NRES = 8388608
FLOAT32_POSITIVE_INFINITY = 8388606
FLOAT32_RFU = 8388609
HOUR_MAX = 23
HOUR_MIN = 0
IEEE11073_MIN_YEAR = 1582
MINUTE_MAX = 59
MINUTE_MIN = 0
MONTH_MAX = 12
MONTH_MIN = 1
SECOND_MAX = 59
SECOND_MIN = 0
SFLOAT_EXPONENT_BIAS = 8
SFLOAT_EXPONENT_BIT_WIDTH = 4
SFLOAT_EXPONENT_CONVERSION = 16
SFLOAT_EXPONENT_MASK = 15
SFLOAT_EXPONENT_MAX = 7
SFLOAT_EXPONENT_MIN = -8
SFLOAT_EXPONENT_SIGN_BIT = 8
SFLOAT_EXPONENT_START_BIT = 12
SFLOAT_MANTISSA_BIT_WIDTH = 12
SFLOAT_MANTISSA_CONVERSION = 4096
SFLOAT_MANTISSA_MASK = 4095
SFLOAT_MANTISSA_MAX = 2048
SFLOAT_MANTISSA_SIGN_BIT = 2048
SFLOAT_MANTISSA_START_BIT = 0
SFLOAT_NAN = 2047
SFLOAT_NEGATIVE_INFINITY = 2050
SFLOAT_NRES = 2048
SFLOAT_POSITIVE_INFINITY = 2046
TIMESTAMP_LENGTH = 7