[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