From d1798680ae962cd4031e617f172f3cb50ef1eb50 Mon Sep 17 00:00:00 2001 From: ktnyt Date: Mon, 14 Oct 2024 23:06:59 +0900 Subject: [PATCH 1/6] Add PNP ID designation to DeviceInfoService --- adafruit_ble/services/standard/device_info.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/adafruit_ble/services/standard/device_info.py b/adafruit_ble/services/standard/device_info.py index 0ebd8ac..b3d74d5 100644 --- a/adafruit_ble/services/standard/device_info.py +++ b/adafruit_ble/services/standard/device_info.py @@ -14,9 +14,11 @@ import binascii import os import sys +from collections.abc import Iterable from .. import Service from ...uuid import StandardUUID +from ...characteristics import StructCharacteristic from ...characteristics.string import FixedStringCharacteristic try: @@ -42,6 +44,7 @@ class DeviceInfoService(Service): hardware_revision = FixedStringCharacteristic(uuid=StandardUUID(0x2A27)) software_revision = FixedStringCharacteristic(uuid=StandardUUID(0x2A28)) manufacturer = FixedStringCharacteristic(uuid=StandardUUID(0x2A29)) + pnp_id = StructCharacteristic(" None: if not service: @@ -75,5 +79,6 @@ def __init__( serial_number=serial_number, firmware_revision=firmware_revision, hardware_revision=hardware_revision, + pnp_id=pnp_id, service=service, ) From 59ecf7111b65b26a5d8ee17019b632502fd9574d Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Thu, 17 Oct 2024 15:24:39 -0400 Subject: [PATCH 2/6] Make UARTService characteristics be at least as large as max MTU-3 --- .pre-commit-config.yaml | 2 +- adafruit_ble/characteristics/stream.py | 11 ++++++++--- adafruit_ble/services/nordic.py | 6 ++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 70ade69..374676d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/pycqa/pylint - rev: v2.17.4 + rev: v3.3.1 hooks: - id: pylint name: pylint (library code) diff --git a/adafruit_ble/characteristics/stream.py b/adafruit_ble/characteristics/stream.py index 5053971..58d1afe 100755 --- a/adafruit_ble/characteristics/stream.py +++ b/adafruit_ble/characteristics/stream.py @@ -53,7 +53,7 @@ def write(self, buf: ReadableBuffer) -> None: class StreamOut(ComplexCharacteristic): """Output stream from the Service server.""" - def __init__( + def __init__( # pylint: disable=too-many-arguments self, *, uuid: Optional[UUID] = None, @@ -66,7 +66,11 @@ def __init__( self._timeout = timeout self._buffer_size = buffer_size super().__init__( - uuid=uuid, properties=properties, read_perm=read_perm, write_perm=write_perm + uuid=uuid, + properties=properties, + read_perm=read_perm, + write_perm=write_perm, + max_length=buffer_size, ) def bind( @@ -88,7 +92,7 @@ def bind( class StreamIn(ComplexCharacteristic): """Input stream into the Service server.""" - def __init__( + def __init__( # pylint: disable=too-many-arguments self, *, uuid: Optional[UUID] = None, @@ -104,6 +108,7 @@ def __init__( properties=properties, read_perm=Attribute.NO_ACCESS, write_perm=write_perm, + max_length=buffer_size, ) def bind( diff --git a/adafruit_ble/services/nordic.py b/adafruit_ble/services/nordic.py index d4db39b..f71e761 100755 --- a/adafruit_ble/services/nordic.py +++ b/adafruit_ble/services/nordic.py @@ -43,12 +43,14 @@ class UARTService(Service): _server_tx = StreamOut( uuid=VendorUUID("6E400003-B5A3-F393-E0A9-E50E24DCCA9E"), timeout=1.0, - buffer_size=64, + # 512 is the largest negotiated MTU-3 value for all CircuitPython ports. + buffer_size=512, ) _server_rx = StreamIn( uuid=VendorUUID("6E400002-B5A3-F393-E0A9-E50E24DCCA9E"), timeout=1.0, - buffer_size=64, + # 512 is the largest negotiated MTU-3 value for all CircuitPython ports. + buffer_size=512, ) def __init__(self, service: Optional[_bleio.Service] = None) -> None: From 7c7c7dd8a24fb16fc9cdb5f241ed87e86971b059 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Thu, 17 Oct 2024 15:53:00 -0400 Subject: [PATCH 3/6] pylint: disable=too-many-arguments --- adafruit_ble/__init__.py | 2 +- adafruit_ble/characteristics/__init__.py | 2 ++ adafruit_ble/characteristics/float.py | 2 ++ adafruit_ble/characteristics/int.py | 2 ++ adafruit_ble/characteristics/json.py | 2 ++ adafruit_ble/characteristics/stream.py | 6 ++++-- adafruit_ble/characteristics/string.py | 2 ++ adafruit_ble/services/standard/device_info.py | 2 +- adafruit_ble/services/standard/hid.py | 2 ++ examples/ble_packet_buffer_service.py | 2 +- 10 files changed, 19 insertions(+), 5 deletions(-) diff --git a/adafruit_ble/__init__.py b/adafruit_ble/__init__.py index 693a47f..cd285a7 100755 --- a/adafruit_ble/__init__.py +++ b/adafruit_ble/__init__.py @@ -12,7 +12,7 @@ from __future__ import annotations -# pylint: disable=wrong-import-position +# pylint: disable=wrong-import-position,too-many-arguments import sys diff --git a/adafruit_ble/characteristics/__init__.py b/adafruit_ble/characteristics/__init__.py index 42a5868..cf22393 100644 --- a/adafruit_ble/characteristics/__init__.py +++ b/adafruit_ble/characteristics/__init__.py @@ -10,6 +10,8 @@ from __future__ import annotations +# pylint: disable=too-many-arguments + import struct import _bleio diff --git a/adafruit_ble/characteristics/float.py b/adafruit_ble/characteristics/float.py index 69915eb..adbd537 100644 --- a/adafruit_ble/characteristics/float.py +++ b/adafruit_ble/characteristics/float.py @@ -12,6 +12,8 @@ from __future__ import annotations +# pylint: disable=too-many-arguments + from . import Attribute from . import StructCharacteristic diff --git a/adafruit_ble/characteristics/int.py b/adafruit_ble/characteristics/int.py index 52dbd80..18521f3 100755 --- a/adafruit_ble/characteristics/int.py +++ b/adafruit_ble/characteristics/int.py @@ -12,6 +12,8 @@ from __future__ import annotations +# pylint: disable=too-many-arguments + from . import Attribute from . import StructCharacteristic diff --git a/adafruit_ble/characteristics/json.py b/adafruit_ble/characteristics/json.py index 2622cfd..5b0e4f4 100644 --- a/adafruit_ble/characteristics/json.py +++ b/adafruit_ble/characteristics/json.py @@ -12,6 +12,8 @@ from __future__ import annotations +# pylint: disable=too-many-arguments + import json from . import Attribute from . import Characteristic diff --git a/adafruit_ble/characteristics/stream.py b/adafruit_ble/characteristics/stream.py index 58d1afe..426f13b 100755 --- a/adafruit_ble/characteristics/stream.py +++ b/adafruit_ble/characteristics/stream.py @@ -13,6 +13,8 @@ from __future__ import annotations +# pylint: disable=too-many-arguments + import _bleio from . import Attribute @@ -53,7 +55,7 @@ def write(self, buf: ReadableBuffer) -> None: class StreamOut(ComplexCharacteristic): """Output stream from the Service server.""" - def __init__( # pylint: disable=too-many-arguments + def __init__( self, *, uuid: Optional[UUID] = None, @@ -92,7 +94,7 @@ def bind( class StreamIn(ComplexCharacteristic): """Input stream into the Service server.""" - def __init__( # pylint: disable=too-many-arguments + def __init__( self, *, uuid: Optional[UUID] = None, diff --git a/adafruit_ble/characteristics/string.py b/adafruit_ble/characteristics/string.py index 7326bc7..b94ba1a 100755 --- a/adafruit_ble/characteristics/string.py +++ b/adafruit_ble/characteristics/string.py @@ -12,6 +12,8 @@ from __future__ import annotations +# pylint: disable=too-many-arguments + from . import Attribute from . import Characteristic diff --git a/adafruit_ble/services/standard/device_info.py b/adafruit_ble/services/standard/device_info.py index b3d74d5..19b8004 100644 --- a/adafruit_ble/services/standard/device_info.py +++ b/adafruit_ble/services/standard/device_info.py @@ -46,7 +46,7 @@ class DeviceInfoService(Service): manufacturer = FixedStringCharacteristic(uuid=StandardUUID(0x2A29)) pnp_id = StructCharacteristic(" Date: Fri, 18 Oct 2024 17:27:59 -0400 Subject: [PATCH 4/6] device_info.py: Fix use of Iterable Iterable is used only for type-checking. Use `from typing` instead of importing from `collections.abc` --- adafruit_ble/services/standard/device_info.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/adafruit_ble/services/standard/device_info.py b/adafruit_ble/services/standard/device_info.py index b3d74d5..1eeb39b 100644 --- a/adafruit_ble/services/standard/device_info.py +++ b/adafruit_ble/services/standard/device_info.py @@ -14,7 +14,6 @@ import binascii import os import sys -from collections.abc import Iterable from .. import Service from ...uuid import StandardUUID @@ -22,7 +21,7 @@ from ...characteristics.string import FixedStringCharacteristic try: - from typing import Optional, TYPE_CHECKING + from typing import Iterable, Optional, TYPE_CHECKING if TYPE_CHECKING: import _bleio From e1df45fb269868e7cc846e38dcf016cfaf3be145 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Sat, 19 Oct 2024 19:54:13 -0400 Subject: [PATCH 5/6] Use default values when pnp_id is not supplied; max-args increased in .pylintrc --- .pre-commit-config.yaml | 2 +- .pylintrc | 3 ++- adafruit_ble/services/standard/device_info.py | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 70ade69..aed9dec 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/pycqa/pylint - rev: v2.17.4 + rev: v3.3.0 hooks: - id: pylint name: pylint (library code) diff --git a/.pylintrc b/.pylintrc index f945e92..82b04fe 100644 --- a/.pylintrc +++ b/.pylintrc @@ -361,7 +361,8 @@ valid-metaclass-classmethod-first-arg=mcs [DESIGN] # Maximum number of arguments for function / method -max-args=5 +# Changed for this library, Adafruit_CircuitPython_BLE +max-args=9 # Maximum number of attributes for a class (see R0902). # max-attributes=7 diff --git a/adafruit_ble/services/standard/device_info.py b/adafruit_ble/services/standard/device_info.py index 1eeb39b..ebed6a7 100644 --- a/adafruit_ble/services/standard/device_info.py +++ b/adafruit_ble/services/standard/device_info.py @@ -71,6 +71,10 @@ def __init__( pass if firmware_revision is None: firmware_revision = getattr(os.uname(), "version", None) + if pnp_id is None: + # These values are not necessarily valid according to the spec, + # but they work on Android and iOS. + pnp_id = (0x00, 0x0000, 0x0000, 0x0000) super().__init__( manufacturer=manufacturer, software_revision=software_revision, From d1d3fea2a66d6cacd290e19e6c2f3b8e0f23a0e8 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Mon, 21 Oct 2024 13:54:11 -0400 Subject: [PATCH 6/6] remove pylint too-many-args disable in favor of max-args in .pylintrc --- adafruit_ble/__init__.py | 2 +- adafruit_ble/characteristics/__init__.py | 2 -- adafruit_ble/characteristics/float.py | 2 -- adafruit_ble/characteristics/int.py | 2 -- adafruit_ble/characteristics/json.py | 2 -- adafruit_ble/characteristics/stream.py | 2 -- adafruit_ble/characteristics/string.py | 2 -- adafruit_ble/services/standard/device_info.py | 2 +- adafruit_ble/services/standard/hid.py | 2 -- examples/ble_packet_buffer_service.py | 2 +- 10 files changed, 3 insertions(+), 17 deletions(-) diff --git a/adafruit_ble/__init__.py b/adafruit_ble/__init__.py index cd285a7..693a47f 100755 --- a/adafruit_ble/__init__.py +++ b/adafruit_ble/__init__.py @@ -12,7 +12,7 @@ from __future__ import annotations -# pylint: disable=wrong-import-position,too-many-arguments +# pylint: disable=wrong-import-position import sys diff --git a/adafruit_ble/characteristics/__init__.py b/adafruit_ble/characteristics/__init__.py index cf22393..42a5868 100644 --- a/adafruit_ble/characteristics/__init__.py +++ b/adafruit_ble/characteristics/__init__.py @@ -10,8 +10,6 @@ from __future__ import annotations -# pylint: disable=too-many-arguments - import struct import _bleio diff --git a/adafruit_ble/characteristics/float.py b/adafruit_ble/characteristics/float.py index adbd537..69915eb 100644 --- a/adafruit_ble/characteristics/float.py +++ b/adafruit_ble/characteristics/float.py @@ -12,8 +12,6 @@ from __future__ import annotations -# pylint: disable=too-many-arguments - from . import Attribute from . import StructCharacteristic diff --git a/adafruit_ble/characteristics/int.py b/adafruit_ble/characteristics/int.py index 18521f3..52dbd80 100755 --- a/adafruit_ble/characteristics/int.py +++ b/adafruit_ble/characteristics/int.py @@ -12,8 +12,6 @@ from __future__ import annotations -# pylint: disable=too-many-arguments - from . import Attribute from . import StructCharacteristic diff --git a/adafruit_ble/characteristics/json.py b/adafruit_ble/characteristics/json.py index 5b0e4f4..2622cfd 100644 --- a/adafruit_ble/characteristics/json.py +++ b/adafruit_ble/characteristics/json.py @@ -12,8 +12,6 @@ from __future__ import annotations -# pylint: disable=too-many-arguments - import json from . import Attribute from . import Characteristic diff --git a/adafruit_ble/characteristics/stream.py b/adafruit_ble/characteristics/stream.py index 426f13b..1582e9d 100755 --- a/adafruit_ble/characteristics/stream.py +++ b/adafruit_ble/characteristics/stream.py @@ -13,8 +13,6 @@ from __future__ import annotations -# pylint: disable=too-many-arguments - import _bleio from . import Attribute diff --git a/adafruit_ble/characteristics/string.py b/adafruit_ble/characteristics/string.py index b94ba1a..7326bc7 100755 --- a/adafruit_ble/characteristics/string.py +++ b/adafruit_ble/characteristics/string.py @@ -12,8 +12,6 @@ from __future__ import annotations -# pylint: disable=too-many-arguments - from . import Attribute from . import Characteristic diff --git a/adafruit_ble/services/standard/device_info.py b/adafruit_ble/services/standard/device_info.py index b8e3762..ebed6a7 100644 --- a/adafruit_ble/services/standard/device_info.py +++ b/adafruit_ble/services/standard/device_info.py @@ -45,7 +45,7 @@ class DeviceInfoService(Service): manufacturer = FixedStringCharacteristic(uuid=StandardUUID(0x2A29)) pnp_id = StructCharacteristic(" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy