Можно ли иметь более одного клиента, подключающегося к серверу Python BLE сразу?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли иметь более одного клиента, подключающегося к серверу Python BLE сразу?

Сообщение Anonymous »

Я тестировал «Благословение» на бле. Это код сервера, который я скопировал: < /p>
import sys
import logging
import asyncio
import threading

from typing import Any, Union

from bless import ( # type: ignore
BlessServer,
BlessGATTCharacteristic,
GATTCharacteristicProperties,
GATTAttributePermissions,
)

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(name=__name__)

# NOTE: Some systems require different synchronization methods.
trigger: Union[asyncio.Event, threading.Event]
if sys.platform in ["darwin", "win32"]:
trigger = threading.Event()
else:
trigger = asyncio.Event()

def read_request(characteristic: BlessGATTCharacteristic, **kwargs) -> bytearray:
logger.debug(f"Reading {characteristic.value}")
return characteristic.value

def write_request(characteristic: BlessGATTCharacteristic, value: Any, **kwargs):
characteristic.value = value
logger.debug(f"Char value set to {characteristic.value}")
if characteristic.value == b"\x0f":
logger.debug("NICE")
trigger.set()

async def run(loop):
trigger.clear()
# Instantiate the server
my_service_name = "Test Service"
server = BlessServer(name=my_service_name, loop=loop)
server.read_request_func = read_request
server.write_request_func = write_request

# Add Service
my_service_uuid = "A07498CA-AD5B-474E-940D-16F1FBE7E8CD"
await server.add_new_service(my_service_uuid)

# Add a Characteristic to the service
my_char_uuid = "51FF12BB-3ED8-46E5-B4F9-D64E2FEC021B"
char_flags = (
GATTCharacteristicProperties.read
| GATTCharacteristicProperties.write
| GATTCharacteristicProperties.indicate
)
permissions = GATTAttributePermissions.readable | GATTAttributePermissions.writeable
await server.add_new_characteristic(
my_service_uuid, my_char_uuid, char_flags, None, permissions
)

logger.debug(server.get_characteristic(my_char_uuid))
await server.start()
logger.debug("Advertising")
logger.info(f"Write '0xF' to the advertised characteristic: {my_char_uuid}")
if trigger.__module__ == "threading":
trigger.wait()
else:
await trigger.wait()

await asyncio.sleep(2)
logger.debug("Updating")
server.get_characteristic(my_char_uuid)
server.update_value(my_service_uuid, "51FF12BB-3ED8-46E5-B4F9-D64E2FEC021B")
await asyncio.sleep(5)
await server.stop()

loop = asyncio.get_event_loop()
loop.run_until_complete(run(loop))
< /code>
Это доступно здесь. Другим клиентам придется сначала отключиться. Можно ли сделать это каким -то образом с этой библиотекой или, каким -то другим? Возможно ли это с помощью BLE вообще?>

Подробнее здесь: https://stackoverflow.com/questions/794 ... erver-at-o
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»