Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • bleak
  • master
2 results

Target

Select target project
  • Teckids/hacknfun/libs/mynit
  • schubisu/esp-init
2 results
Select Git revision
  • bleak
  • master
2 results
Show changes

Commits on Source 3

......@@ -6,7 +6,13 @@ VERSION_FULL := $(VERSION)
ARCH := arm64-v8a
$(DIST)-debug-$(VERSION_FULL)-$(ARCH).apk:
SOURCES := \
app.py \
bluetooth.py \
main.py \
mynitcompanion.kv
$(DIST)-debug-$(VERSION_FULL)-$(ARCH).apk: $(SOURCES)
p4a apk \
--dist_name $(DIST) \
--private . \
......
from kivy.app import App
from kivy.logger import Logger
from kivy.properties import ObjectProperty
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from bluetooth import MynitBluetooth
class DeviceListWidget(Widget):
app = ObjectProperty()
device_buttons = None
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._devices_buttons_map = {}
def update_device_buttons(self, devices):
Logger.debug("Updating device buttons")
self._devices_buttons_map = devices
self.device_buttons.clear_widgets()
for label, device in self._devices_buttons_map.items():
Logger.debug("Adding button for %s" % label)
btn = Button(text=label)
self.device_buttons.add_widget(btn)
class MynitCompanionApp(App):
def __init__(self, *args, **kwargs):
......@@ -14,7 +32,8 @@ class MynitCompanionApp(App):
self._bluetooth = MynitBluetooth(self)
def update_device_list(self, devices):
pass
self.widget.update_device_buttons({device.getAddress(): device for device in devices})
def build(self):
return DeviceListWidget(app=self)
self.widget = DeviceListWidget()
return self.widget
......@@ -20,11 +20,12 @@ class MynitBluetooth(BluetoothDispatcher):
self._characteristics = None, None
Logger.info("Starting BLE scanning")
self.start_scan(filters=[ServiceUUIDFilter(_UART_SERVICE_UUID)])
# self.start_scan(filters=[ServiceUUIDFilter(_UART_SERVICE_UUID)])
self.start_scan()
def on_device(self, device, rssi, advertisement):
Logger.debug("BLE device discovered: %s" % device.getAddress())
self.stop_scan()
if device not in self._available_devices:
Logger.info("New BLE device discovered: %s" % device.getAddress())
self._available_devices.add(device)
......@@ -45,4 +46,4 @@ class MynitBluetooth(BluetoothDispatcher):
self._characteristics = None, None
def on_services(self, status, services):
self._characteristics = (services.search(_UART_SERVICE_TX_UUID), services.search(_UART_SERVICE_RX_UUID)
self._characteristics = (services.search(_UART_SERVICE_TX_UUID), services.search(_UART_SERVICE_RX_UUID))
#:kivy 1.0.9
<DeviceListWidget>:
cols: 1
device_buttons: device_buttons
BoxLayout:
Label:
text: str(root.app._bluetooth._available_devices)
text: "Device List"
BoxLayout:
id: device_buttons