Fix up docs and lint examples

This commit is contained in:
Scott Shawcroft 2020-02-25 17:42:42 -08:00
parent 214e27739c
commit a9de053311
No known key found for this signature in database
GPG key ID: 9349BC7E64B1921E
10 changed files with 56 additions and 65 deletions

View file

@ -52,7 +52,7 @@ confidence=
# no Warning level messages displayed, use"--disable=all --enable=classes
# --disable=W"
# disable=import-error,print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call
disable=print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call,import-error
disable=print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call,import-error,bad-continuation
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option

View file

@ -28,11 +28,8 @@ This is easily achieved by downloading
Installing from PyPI
=====================
.. note:: This library is not available on PyPI yet. Install documentation is included
as a standard element. Stay tuned for PyPI availability!
.. todo:: Remove the above note if PyPI version is/will be available at time of release.
If the library is not planned for PyPI, remove the entire 'Installing from PyPI' section.
.. note:: Only the bridge examples work on Raspberry Pi because Blinka `_bleio` doesn't support
advertising, only scanning.
On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
PyPI <https://pypi.org/project/adafruit-circuitpython-ble_broadcastnet/>`_. To install for current user:
@ -59,7 +56,7 @@ To install in a virtual environment in your current project:
Usage Example
=============
.. todo:: Add a quick, simple example. It and other examples should live in the examples folder and be included in docs/examples.rst.
Add a secrets.py file and then run ``ble_broadcastnet_blinka_bridge.py``.
Contributing
============

View file

@ -31,10 +31,10 @@ Basic IOT over BLE advertisements.
import struct
import time
from micropython import const
import adafruit_ble
from adafruit_ble.advertising import Advertisement, LazyObjectField
from adafruit_ble.advertising.standard import ManufacturerData, ManufacturerDataField
from micropython import const
__version__ = "0.0.0-auto.0"
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_BLE_BroadcastNet.git"
@ -58,8 +58,8 @@ def broadcast(measurement, *, broadcast_time=0.1, extended=False):
device_address = "{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}".format( # pylint: disable=invalid-name
*reversed(
list(_ble._adapter.address.address_bytes)
) # pylint: disable=protected-access
list(_ble._adapter.address.address_bytes) # pylint: disable=protected-access
)
)
"""Device address as a string."""

View file

@ -23,14 +23,15 @@ Table of Contents
.. toctree::
:caption: Tutorials
.. todo:: Add any Learn guide links here. If there are none, then simply delete this todo and leave
the toctree above for use later.
.. toctree::
:caption: Related Products
.. todo:: Add any product links here. If there are none, then simply delete this todo and leave
the toctree above for use later.
Raspberry Pi 3B <https://www.adafruit.com/product/3055>
Raspberry Pi 3B+ <https://www.adafruit.com/product/3775>
Raspberry Pi Zero W <https://www.adafruit.com/product/3400>
Raspberry Pi 4B 1GB <https://www.adafruit.com/product/4295>
Raspberry Pi 4B 2GB <https://www.adafruit.com/product/4292>
Raspberry Pi 4B 4GB <https://www.adafruit.com/product/4296>
.. toctree::
:caption: Other Links

View file

@ -1,9 +1,8 @@
import adafruit_ble_broadcastnet
import time
import analogio
import board
import math
import microcontroller
import time
import adafruit_ble_broadcastnet
print("This is BroadcastNet sensor:", adafruit_ble_broadcastnet.device_address)
@ -13,10 +12,15 @@ divider_ratio = 2
while True:
measurement = adafruit_ble_broadcastnet.AdafruitSensorMeasurement()
battery_voltage = (
battery.value / 2 ** 16 * divider_ratio * battery.reference_voltage
battery.value
/ 2 ** 16
* divider_ratio
* battery.reference_voltage # pylint: disable=no-member
)
measurement.battery_voltage = int(battery_voltage * 1000)
measurement.temperature = microcontroller.cpu.temperature
measurement.temperature = (
microcontroller.cpu.temperature # pylint: disable=no-member
)
print(measurement)
adafruit_ble_broadcastnet.broadcast(measurement)

View file

@ -1,10 +1,9 @@
import adafruit_ble_broadcastnet
import time
import analogio
import board
import math
import microcontroller
import neopixel
import time
import adafruit_ble_broadcastnet
print("This is BroadcastNet sensor:", adafruit_ble_broadcastnet.device_address)
@ -16,7 +15,10 @@ pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)
while True:
measurement = adafruit_ble_broadcastnet.AdafruitSensorMeasurement()
battery_voltage = (
battery.value / 2 ** 16 * divider_ratio * battery.reference_voltage
battery.value
/ 2 ** 16
* divider_ratio
* battery.reference_voltage # pylint: disable=no-member
)
r = 16 - int(((battery_voltage - 3.6) / 0.6) * 16)
r = min(16, max(r, 0))
@ -24,7 +26,9 @@ while True:
g = min(16, max(g, 0))
pixel[0] = r << 16 | g << 8
measurement.battery_voltage = int(battery_voltage * 1000)
measurement.temperature = microcontroller.cpu.temperature
measurement.temperature = (
microcontroller.cpu.temperature # pylint: disable=no-member
)
print(measurement)
adafruit_ble_broadcastnet.broadcast(measurement)
pixel[0] = 0

View file

@ -1,35 +1,10 @@
"""This example bridges from BLE to Adafruit IO on a Raspberry Pi."""
from secrets import secrets # pylint: disable=no-name-in-module
import time
import requests
from adafruit_ble.advertising.standard import ManufacturerDataField
import adafruit_ble
import adafruit_ble_broadcastnet
from secrets import secrets
import sys
if sys.implementation.name == "cpython":
import requests
else:
from adafruit_esp32spi import adafruit_esp32spi
from adafruit_esp32spi import adafruit_esp32spi_wifimanager
import board
import busio
from digitalio import DigitalInOut
import adafruit_dotstar
esp32_cs = DigitalInOut(board.D13)
esp32_ready = DigitalInOut(board.D11)
esp32_reset = DigitalInOut(board.D12)
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
# esp._debug = 1
status_light = adafruit_dotstar.DotStar(
board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2
)
requests = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(
esp, secrets, status_light
)
aio_auth_header = {"X-AIO-KEY": secrets["aio_key"]}
aio_base_url = "https://io.adafruit.com/api/v2/" + secrets["aio_username"]
@ -45,6 +20,10 @@ def aio_get(path, **kwargs):
return requests.get(aio_base_url + path, **kwargs)
# Disable outer names check because we frequently collide.
# pylint: disable=redefined-outer-name
def create_group(name):
response = aio_post("/groups", json={"name": name})
if response.status_code != 201:
@ -102,7 +81,8 @@ def convert_to_feed_data(values, attribute_name, attribute_instance):
ble = adafruit_ble.BLERadio()
print("This is BroadcastNet bridge:", adafruit_ble_broadcastnet.device_address)
bridge_address = adafruit_ble_broadcastnet.device_address
print("This is BroadcastNet bridge:", bridge_address)
print()
print("Fetching existing feeds.")
@ -139,7 +119,6 @@ for measurement in ble.start_scan(
# Skip if we are getting the same broadcast more than once.
if measurement.sequence_number == sequence_numbers[sensor_address]:
continue
# print(sensor_address, measurement, measurement.sequence_number, sequence_numbers[sensor_address])
number_missed = measurement.sequence_number - sequence_numbers[sensor_address] - 1
if number_missed < 0:
number_missed += 256

View file

@ -3,12 +3,12 @@
report. When doing a report it will actually do multiple broadcasts and wait 2 ** n readings
until the next broadcast. The delay is reset every time the temp moves more than 1 degree."""
import adafruit_ble_broadcastnet
import math
import time
import analogio
import board
import math
import microcontroller
import time
import adafruit_ble_broadcastnet
print("This is BroadcastNet sensor:", adafruit_ble_broadcastnet.device_address)
@ -18,7 +18,7 @@ divider_ratio = 2
last_temperature = None
consecutive = 1
while True:
temp = microcontroller.cpu.temperature
temp = microcontroller.cpu.temperature # pylint: disable=no-member
if not last_temperature or abs(temp - last_temperature) > 1:
consecutive = 1
last_temperature = temp
@ -31,7 +31,10 @@ while True:
if 2 ** exp == consecutive:
measurement = adafruit_ble_broadcastnet.AdafruitSensorMeasurement()
battery_voltage = (
battery.value / 2 ** 16 * divider_ratio * battery.reference_voltage
battery.value
/ 2 ** 16
* divider_ratio
* battery.reference_voltage # pylint: disable=no-member
)
measurement.battery_voltage = int(battery_voltage * 1000)
measurement.temperature = temp

View file

@ -1,13 +1,14 @@
"""This is a complex sensor node that uses the sensors on a Clue and Feather Bluefruit Sense."""
import time
import board
import adafruit_bmp280
import adafruit_sht31d
import adafruit_apds9960.apds9960
# import adafruit_apds9960.apds9960
import adafruit_lis3mdl
import adafruit_lsm6ds
import adafruit_ble_broadcastnet
import time
print("This is BroadcastNet sensor:", adafruit_ble_broadcastnet.device_address)

View file

@ -1,15 +1,17 @@
"""This is a basic sensor node that uses the internal temperature sensor and reports it every 10
seconds."""
import adafruit_ble_broadcastnet
import microcontroller
import time
import microcontroller
import adafruit_ble_broadcastnet
print("This is BroadcastNet sensor:", adafruit_ble_broadcastnet.device_address)
while True:
measurement = adafruit_ble_broadcastnet.AdafruitSensorMeasurement()
measurement.temperature = microcontroller.cpu.temperature
measurement.temperature = (
microcontroller.cpu.temperature # pylint: disable=no-member
)
print(measurement)
adafruit_ble_broadcastnet.broadcast(measurement)
time.sleep(10)