Я использую Raspberry Pi 3 с свежей установкой Raspberry Pi Os Lite 32-битный. У меня есть ключ Bluetooth, который поддерживает низкую энергию Bluetooth. Я использую Python 3.11.2. < /P>
Я пытаюсь транслировать рекламу Bluetooth. Когда я запускаю свой сценарий Python, я вижу рекламу, используя телефонные приложения LightBlue или NRF Connect. Однако, как только я добавляю производственные данные, я больше не могу видеть рекламу.
import dbus
import dbus.mainloop.glib
import dbus.service
from gi.repository import GLib
MANUFACTURER_ID = 0x0397 # LEGO
PAYLOAD_BYTES = b'\x10\x06\x18\x1a\xb6'
class Advertisement(dbus.service.Object):
PATH_BASE = '/org/bluez/example/advertisement'
def __init__(self, bus, index):
self.path = self.PATH_BASE + str(index)
self.bus = bus
super().__init__(bus, self.path)
def get_path(self):
return dbus.ObjectPath(self.path)
def get_properties(self):
return {
'org.bluez.LEAdvertisement1': {
'Type': 'peripheral',
'LocalName': 'MyBrickPi',
# 'ManufacturerData': {
# dbus.Array([dbus.Byte(0x00)], signature='y')
# dbus.UInt16(0x0397): dbus.Array([dbus.Byte(0x01)], signature='y')
# dbus.UInt16(0x0397): dbus.Array([dbus.Byte(b) for b in b'\x10\x06\x18\x1a\xb6'], signature='y')
# dbus.UInt16(0xFFFF): dbus.Array([dbus.Byte(0x01)], signature='y')
# dbus.UInt16(0x0000): dbus.Array([dbus.Byte(0x01)], signature='y')
# {dbus.UInt16(0x0000): [16, 5, 7, 24, 186, 175, 161]}
# [{16: [[b'4a04389']]}]
# },
# 'IncludeTxPower': True,
# 'Appearance': dbus.UInt16(0),
}
}
@dbus.service.method('org.freedesktop.DBus.Properties',
in_signature='s',
out_signature='a{sv}')
def GetAll(self, interface):
return self.get_properties()['org.bluez.LEAdvertisement1']
@dbus.service.method('org.bluez.LEAdvertisement1',
in_signature='',
out_signature='')
def Release(self):
print('Advertisement released')
def main():
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
adapter_path = '/org/bluez/hci0'
adapter = bus.get_object('org.bluez', adapter_path)
adapter_props = dbus.Interface(adapter, 'org.freedesktop.DBus.Properties')
# Power on adapter if off
try:
powered = adapter_props.Get('org.bluez.Adapter1', 'Powered')
if not powered:
adapter_props.Set('org.bluez.Adapter1', 'Powered', dbus.Boolean(1))
except Exception as e:
print(f"Failed to get/set adapter power state: {e}")
return
ad_manager = dbus.Interface(adapter, 'org.bluez.LEAdvertisingManager1')
advertisement = Advertisement(bus, 0)
def on_success():
print("Advertising started.")
def on_error(error):
print(f"Failed to advertise: {error}")
ad_manager.RegisterAdvertisement(advertisement.get_path(), {},
reply_handler=on_success,
error_handler=on_error)
try:
GLib.MainLoop().run()
except KeyboardInterrupt:
print("\nStopping advertisement...")
try:
ad_manager.UnregisterAdvertisement(advertisement)
except Exception:
print("Advertisement was not registered or already unregistered.")
advertisement.remove_from_connection()
if __name__ == '__main__':
main()
Функция get_properties Возвращает рекламные данные. В настоящее время прокомментируется производители . Как только я внесу это обратно, ошибок нет, но я не могу обнаружить рекламу с помощью LightBlue или NRF Connect. Я оставил в ряде разных форматов для производственных данных, которые я пробовал. И на данный момент мне все равно, каковы вторые данные, просто любая строка ASCII. Я просто хочу что -нибудь работать.
Я использую Raspberry Pi 3 с свежей установкой Raspberry Pi Os Lite 32-битный. У меня есть ключ Bluetooth, который поддерживает низкую энергию Bluetooth. Я использую Python 3.11.2. < /P> Я пытаюсь транслировать рекламу Bluetooth. Когда я запускаю свой сценарий Python, я вижу рекламу, используя телефонные приложения LightBlue или NRF Connect. Однако, как только я добавляю производственные данные, я больше не могу видеть рекламу.[code]import dbus import dbus.mainloop.glib import dbus.service from gi.repository import GLib
# Power on adapter if off try: powered = adapter_props.Get('org.bluez.Adapter1', 'Powered') if not powered: adapter_props.Set('org.bluez.Adapter1', 'Powered', dbus.Boolean(1)) except Exception as e: print(f"Failed to get/set adapter power state: {e}") return
try: GLib.MainLoop().run() except KeyboardInterrupt: print("\nStopping advertisement...") try: ad_manager.UnregisterAdvertisement(advertisement) except Exception: print("Advertisement was not registered or already unregistered.") advertisement.remove_from_connection()
if __name__ == '__main__': main() [/code] Функция get_properties Возвращает рекламные данные. В настоящее время прокомментируется производители . Как только я внесу это обратно, ошибок нет, но я не могу обнаружить рекламу с помощью LightBlue или NRF Connect. Я оставил в ряде разных форматов для производственных данных, которые я пробовал. И на данный момент мне все равно, каковы вторые данные, просто любая строка ASCII. Я просто хочу что -нибудь работать.
Я использую Raspberry Pi 3 с свежей установкой Raspberry Pi Os Lite 32-битный. У меня есть ключ Bluetooth, который поддерживает низкую энергию Bluetooth. Я использую Python 3.11.2.
Я пытаюсь транслировать рекламу Bluetooth. Когда я запускаю свой...
Обновлениеchart.js с версии 2.9.4 до 4.4.4.
Локально (на компьютере используется MAC OS), приложение Rails генерирует диаграммы с обновленной версией.
Когда при развертывании на AWS EC2 сборка Jenkins завершается с ошибкой из-за этой ошибки на этапе...
Я разрабатываю нативное приложение React, которое необходимо подключаться к устройствам через HTTPS.
Эти устройства предоставляют только самопроизводимые сертификаты SSL. tried
• Using react-native-ssl-pinning with disableAllSecurity: true
• Writing...
Я разрабатываю нативное приложение React, которое необходимо подключаться к устройствам через HTTPS.
Эти устройства предоставляют только самопроизводимые сертификаты SSL. tried
• Using react-native-ssl-pinning with disableAllSecurity: true
• Writing...
Я использую Atlite для загрузки данных о погоде для определенной области с использованием ShapeFile. Мой файл формы верен (как я его построил), и он имеет необходимый CRS (EPSG: 4326). Однако, когда я запускаю функцию выреза, я получаю ошибку ниже:...