Skip to content

Commit 7f68a68

Browse files
committed
Removed time.sleep, updated example
1 parent 320d2b8 commit 7f68a68

File tree

3 files changed

+70
-41
lines changed

3 files changed

+70
-41
lines changed

README.rst

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,22 +56,24 @@ To install in a virtual environment in your current project:
5656
Usage Example
5757
=============
5858

59-
from adafruit_pybadger import PyBadger
59+
.. code-block:: python
6060
61-
pybadger = PyBadger()
61+
from adafruit_pybadger import PyBadger
62+
63+
pybadger = PyBadger()
6264
63-
while True:
6465
pybadger.show_badge(name_string="Blinka", hello_scale=2, my_name_is_scale=2, name_scale=3)
65-
pybadger.auto_dim_display()
66-
67-
if pybadger.button.a:
68-
pybadger.show_business_card(image_name="Blinka.bmp", email_string="blinka@adafruit.com")
69-
elif pybadger.button.b:
70-
pybadger.show_qr_code(data="https://circuitpython.org")
71-
elif pybadger.button.start:
72-
print("Start button pressed!")
73-
elif pybadger.button.select:
74-
print("Select button pressed!")
66+
67+
while True:
68+
pybadger.auto_dim_display(delay=10)
69+
if pybadger.button.a:
70+
pybadger.show_business_card(image_name="Blinka.bmp", name_string="Blinka", name_scale=2,
71+
email_string_one="blinka@", email_string_two="adafruit.com")
72+
elif pybadger.button.b:
73+
pybadger.show_qr_code(data="https://circuitpython.org")
74+
elif pybadger.button.start:
75+
pybadger.show_badge(name_string="Blinka", hello_scale=2, my_name_is_scale=2, name_scale=3)
76+
7577
7678
Contributing
7779
============

adafruit_pybadger.py

Lines changed: 49 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -214,17 +214,30 @@ def brightness(self, value):
214214
self.display.brightness = value
215215

216216
# pylint: disable=too-many-locals
217-
def show_business_card(self, *, image_name=None, email_string=None,
218-
email_scale=1, email_font=terminalio.FONT, dwell=20):
217+
def show_business_card(self, *, image_name=None, name_string=None, name_scale=1,
218+
name_font=terminalio.FONT, email_string_one=None,
219+
email_scale_one=1, email_font_one=terminalio.FONT,
220+
email_string_two=None, email_scale_two=1,
221+
email_font_two=terminalio.FONT):
219222
"""Display a bitmap image and a text string, such as a personal image and email address.
220223
221224
:param str image_name: REQUIRED. The name of the bitmap image including .bmp, e.g.
222225
``"Blinka.bmp"``.
223-
:param str email_string: A string to display along the bottom of the display, e.g.
226+
:param str name_string: A name string to display along the bottom of the display, e.g.
227+
``"Blinka"``.
228+
:param int name_scale: The scale of ``name_string``. Defaults to 1.
229+
:param name_font: The font for the name string. Defaults to ``terminalio.FONT``.
230+
:param str email_string_one: A string to display along the bottom of the display, e.g.
224231
``"blinka@adafruit.com"``.
225-
:param int email_scale: The scale of ``email_string``. Defaults to 1.
226-
:param email_font: The font for the email string. Defaults to ``terminalio.FONT``.
227-
:param int dwell: The amount of time in seconds to display the business card.
232+
:param int email_scale_one: The scale of ``email_string_one``. Defaults to 1.
233+
:param email_font_one: The font for the first email string. Defaults to ``terminalio.FONT``.
234+
:param str email_string_two: A second string to display along the bottom of the display.
235+
Use if your email address is longer than one line or to add
236+
more space between the name and email address,
237+
e.g. (blinka@) ``"adafruit.com"``.
238+
:param int email_scale_two: The scale of ``email_string_two``. Defaults to 1.
239+
:param email_font_two: The font for the second email string. Defaults to
240+
``terminalio.FONT``.
228241
229242
"""
230243
business_card_splash = displayio.Group(max_size=30)
@@ -234,16 +247,35 @@ def show_business_card(self, *, image_name=None, email_string=None,
234247
face_image = displayio.TileGrid(on_disk_bitmap, pixel_shader=displayio.ColorConverter())
235248
business_card_splash.append(face_image)
236249
self.display.wait_for_frame()
237-
if email_string is not None and email_string:
238-
email_group = displayio.Group(scale=email_scale)
239-
email_label = Label(email_font, text=email_string)
240-
(_, _, width, height) = email_label.bounding_box
241-
email_label.x = ((self.display.width // (2 * email_scale)) - width // 2)
242-
email_label.y = int(height // (0.13 * email_scale))
243-
email_label.color = 0xFFFFFF
244-
email_group.append(email_label)
245-
business_card_splash.append(email_group)
246-
time.sleep(dwell)
250+
if name_string:
251+
name_group = displayio.Group(scale=name_scale)
252+
name_label = Label(name_font, text=name_string)
253+
(_, _, width, height) = name_label.bounding_box
254+
name_label.x = ((self.display.width // (2 * name_scale)) - width // 2)
255+
name_label.y = int(height // (0.15 * name_scale))
256+
name_label.color = 0xFFFFFF
257+
name_group.append(name_label)
258+
business_card_splash.append(name_group)
259+
if email_string_one:
260+
email_group_one = displayio.Group(scale=email_scale_one)
261+
email_label_one = Label(email_font_one, text=email_string_one)
262+
(_, _, width, height) = email_label_one.bounding_box
263+
email_label_one.width = self.display.width
264+
email_label_one.x = ((self.display.width // (2 * email_scale_one)) - width // 2)
265+
email_label_one.y = int(height // (0.13 * email_scale_one))
266+
email_label_one.color = 0xFFFFFF
267+
email_group_one.append(email_label_one)
268+
business_card_splash.append(email_group_one)
269+
if email_string_two:
270+
email_group_two = displayio.Group(scale=email_scale_two)
271+
email_label_two = Label(email_font_two, text=email_string_two)
272+
(_, _, width, height) = email_label_two.bounding_box
273+
email_label_two.width = self.display.width
274+
email_label_two.x = ((self.display.width // (2 * email_scale_two)) - width // 2)
275+
email_label_two.y = int(height // (0.12 * email_scale_two))
276+
email_label_two.color = 0xFFFFFF
277+
email_group_two.append(email_label_two)
278+
business_card_splash.append(email_group_two)
247279

248280
# pylint: disable=too-many-locals
249281
def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
@@ -289,7 +321,6 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
289321

290322
hello_scale = hello_scale
291323
hello_group = displayio.Group(scale=hello_scale)
292-
# Setup and Center the Hello Label
293324
hello_label = Label(font=hello_font, text=hello_string)
294325
(_, _, width, height) = hello_label.bounding_box
295326
hello_label.x = ((self.display.width // (2 * hello_scale)) - width // 2)
@@ -299,7 +330,6 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
299330

300331
my_name_is_scale = my_name_is_scale
301332
my_name_is_group = displayio.Group(scale=my_name_is_scale)
302-
# Setup and Center the "My Name Is" Label
303333
my_name_is_label = Label(font=my_name_is_font, text=my_name_is_string)
304334
(_, _, width, height) = my_name_is_label.bounding_box
305335
my_name_is_label.x = ((self.display.width // (2 * my_name_is_scale)) - width // 2)
@@ -309,7 +339,6 @@ def show_badge(self, *, background_color=0xFF0000, foreground_color=0xFFFFFF,
309339

310340
name_scale = name_scale
311341
name_group = displayio.Group(scale=name_scale)
312-
# Setup and Center the Name Label
313342
name_label = Label(font=name_font, text=name_string)
314343
(_, _, width, height) = name_label.bounding_box
315344
name_label.x = ((self.display.width // (2 * name_scale)) - width // 2)
@@ -338,7 +367,7 @@ def bitmap_qr(matrix):
338367
bitmap[x + border_pixels, y + border_pixels] = 0
339368
return bitmap
340369

341-
def show_qr_code(self, *, data="https://circuitpython.org", dwell=20):
370+
def show_qr_code(self, *, data="https://circuitpython.org"):
342371
"""Generate a QR code and display it for ``dwell`` seconds.
343372
344373
:param string data: A string of data for the QR code
@@ -361,7 +390,6 @@ def show_qr_code(self, *, data="https://circuitpython.org", dwell=20):
361390
qr_code = displayio.Group(scale=qr_code_scale)
362391
qr_code.append(qr_img)
363392
self.display.show(qr_code)
364-
time.sleep(dwell)
365393

366394
@staticmethod
367395
def _sine_sample(length):

examples/pybadger_simpletest.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22

33
pybadger = PyBadger()
44

5-
while True:
6-
pybadger.show_badge(name_string="Blinka", hello_scale=2, my_name_is_scale=2, name_scale=3)
7-
pybadger.auto_dim_display()
5+
pybadger.show_badge(name_string="Blinka", hello_scale=2, my_name_is_scale=2, name_scale=3)
86

7+
while True:
8+
pybadger.auto_dim_display(delay=10)
99
if pybadger.button.a:
10-
pybadger.show_business_card(image_name="Blinka.bmp", email_string="blinka@adafruit.com")
10+
pybadger.show_business_card(image_name="Blinka.bmp", name_string="Blinka", name_scale=2,
11+
email_string_one="blinka@", email_string_two="adafruit.com")
1112
elif pybadger.button.b:
1213
pybadger.show_qr_code(data="https://circuitpython.org")
1314
elif pybadger.button.start:
14-
print("Start button pressed!")
15-
elif pybadger.button.select:
16-
print("Select button pressed!")
15+
pybadger.show_badge(name_string="Blinka", hello_scale=2, my_name_is_scale=2, name_scale=3)

0 commit comments

Comments
 (0)