[bluez/bluez] 9ab88d: battery: Add component battery objects

Matthias Kurz <[email protected]>
Newsgroups org.kernel.vger.linux-bluetooth
Message-ID <bluez/bluez/push/refs/heads/1149924/[email protected]>
  Branch: refs/heads/1149924
  Home:   https://github.com/bluez/bluez
  Commit: 9ab88d0763238ae8c7ba85fed11bc33773a2b80c
      https://github.com/bluez/bluez/commit/9ab88d0763238ae8c7ba85fed11bc33773a2b80c
  Author: Matthias Kurz <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M src/battery.c
    M src/battery.h

  Log Message:
  -----------
  battery: Add component battery objects

Allow one Bluetooth device to export multiple Battery1 objects while
keeping the legacy aggregate object at the device path.

Component objects expose their parent Device1 path, a stable identifier,
an optional percentage, and an optional charging state. Extend
BatteryProvider1 handling with the same semantics so external providers can
publish multiple batteries too.

Keep component objects and their new properties behind the experimental
D-Bus flag while the API is being established.

Assisted-by: Codex:gpt-5.6-sol


  Commit: 6d2e72a68fa77812d0dbf2014c663feeab6200f9
      https://github.com/bluez/bluez/commit/6d2e72a68fa77812d0dbf2014c663feeab6200f9
  Author: Matthias Kurz <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M doc/org.bluez.Battery.rst
    M doc/org.bluez.BatteryProvider.rst

  Log Message:
  -----------
  doc: Document component battery objects

Describe the experimental component Battery1 properties, their opaque
object paths, and how BatteryProvider1 implementations publish several
batteries for one device.

Assisted-by: Codex:gpt-5.6-sol


  Commit: a5aa7e55ce267ac510968e3cfcbc19440d48309f
      https://github.com/bluez/bluez/commit/a5aa7e55ce267ac510968e3cfcbc19440d48309f
  Author: Matthias Kurz <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M .gitignore
    M Makefile.am
    M Makefile.plugins
    M doc/test-coverage.txt
    A profiles/fastpair/fastpair.c
    A profiles/fastpair/message-stream.c
    A profiles/fastpair/message-stream.h
    A unit/test-fastpair.c

  Log Message:
  -----------
  fastpair: Add Message Stream battery profile

Connect to the experimental Fast Pair Message Stream service advertised by
compatible BR/EDR devices and parse its 16-bit-length framed messages.

The Message Stream specification defines a fixed endpoint UUID over RFCOMM
and a separate L2CAP PSM transport. This implementation supports the RFCOMM
variant; L2CAP support is left for future work:

https://developers.google.com/nearby/fast-pair/specifications/extensions/messagestream

Publish left, right, and case values as component Battery1 objects. The
Device Information extension defines the battery update message. Its three
component bytes use the Battery Notification encoding:

https://developers.google.com/nearby/fast-pair/specifications/extensions/deviceinformation
https://developers.google.com/nearby/fast-pair/specifications/extensions/batterynotification

Include unknown percentage and charging-state transitions. Decode unknown
levels using the generic Battery Notification status bit while treating the
TWS-specific case value 0xff as unavailable, as required for hearables:

https://developers.google.com/nearby/fast-pair/specifications/devicefeaturerequirement/devicefeaturerequirement_hearables

If only the Message Stream is lost, invalidate its values and reconnect.
Use exponential backoff and reset it only after a battery-producing stream
remains stable. Remove the objects once the BR/EDR bearer disappears.

Keep pending connection callbacks alive through cancellation and ignore
callbacks for detached or superseded channels.

Assisted-by: Codex:gpt-5.6-sol


  Commit: 8fa503661cb8cbbde1ebae72fbc8db48ae18ded8
      https://github.com/bluez/bluez/commit/8fa503661cb8cbbde1ebae72fbc8db48ae18ded8
  Author: Matthias Kurz <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M Makefile.tools
    A test/test-fastpair

  Log Message:
  -----------
  test: Add Fast Pair Message Stream tool

Add a standalone profile client that prints Fast Pair Message Stream frames
and can optionally publish left, right, and case values through
BatteryProvider1.

Publish dynamic component lifecycle signals, scope providers per adapter,
and invalidate measurements when a stream closes. Warn users to disable the
built-in Fast Pair plugin when using the external profile.

Assisted-by: Codex:gpt-5.6-sol


Compare: https://github.com/bluez/bluez/compare/9ab88d076323%5E...8fa503661cb8

To unsubscribe from these emails, change your notification settings at https://github.com/bluez/bluez/settings/notifications
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.