From fc3892d977561528107c62deee8c5c812733510f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Weigert?= Date: Fri, 8 Mar 2019 10:41:37 +0100 Subject: [PATCH] warning about unused images added, examples added to README. --- README.md | 7 +++++-- gfx/heart.png | Bin 0 -> 260 bytes gfx/heart_full.png | Bin 0 -> 232 bytes led-badge-11x44.py | 13 +++++++++++-- green_badge.jpg => photos/green_badge.jpg | Bin photos/love_my_fablab.jpg | Bin 0 -> 159930 bytes 6 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 gfx/heart.png create mode 100644 gfx/heart_full.png rename green_badge.jpg => photos/green_badge.jpg (100%) create mode 100644 photos/love_my_fablab.jpg diff --git a/README.md b/README.md index 6b5c6fa..4c5e3e2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Led-Badge-44x11 Upload tool for an led name tag with USB-HID interface -![LED Mini Board](green_badge.jpg) +![LED Mini Board](photos/green_badge.jpg) ## Warning @@ -34,12 +34,15 @@ loads the text 'Hello' as message one and 'World!' as message two. Note the diff sudo python3 ./led-badge-11x44.py -m 5 gfx/fablabnbg_logo_44x11.png -loads a fullscreen still image. +loads a fullscreen still image. (Or displays the pathname, if the image was not found. That is a hack. Sorry) sudo python3 ./led-badge-11x44.py -l gfx/heart.png -l gfx/fablab_logo_16x11.png "I^Amy^Bfablab^B" preloads two images, a heart and a crude fablab logo as images 1 and two. The images can then be embedded in a message by using control characters. To enter the ^A control character on the shell, press CTRL-V followed by CTRL-A. +![LED Mini Board](photos/love_my_fablab.jpg) + +
 Usage: led-badge-11x44.py [-h] [-s SPEED] [-m MODE] [-l FILE]
                           message [message ...]
diff --git a/gfx/heart.png b/gfx/heart.png
new file mode 100644
index 0000000000000000000000000000000000000000..91925a0576ade13acc65a4a9fce9aaf662401c33
GIT binary patch
literal 260
zcmeAS@N?(olHy`uVBq!ia0vp^0zk~o!2~3KHq6QcQfx`y?k)`fL2$v|<&%LToCO|{
z#XwcUAk4@xYmNj^kiEpy*OmP-GY2P|%I+C2vw=brJzX3_G|txsI`Xk7axiaRaIyJ+
z{R(l(%a#U(v5)=qgEE!|E@Rz#?e(rbd226PducK-So9jMD{((pd2SDbf|BOa&FN*X
zDNApEIatfiw1O&)>}qx^HG}
zUGrP)`wzQ^mQDrz?>QCEwB*+>U#0ZuRsAJt5uU`5p34eTfR1DEboFyt=akR{0E4?-
AApigX

literal 0
HcmV?d00001

diff --git a/gfx/heart_full.png b/gfx/heart_full.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f9bab3c697bd3ec99dc59f6fddea4726b374f99
GIT binary patch
literal 232
zcmeAS@N?(olHy`uVBq!ia0vp^0zk~o!2~3KHq6QcQfx`y?k)`fL2$v|<&%LToCO|{
z#XwcUAk4@xYmNj^kiEpy*OmP-GY2P|xxLzotw5ntPZ!4!jq_9c4Ec^K@HqP}5ny5d
zZm%JILN+M$XXwhh`wS8{3x$~Wez#n{|F}fO@~v)@mUtU?fAU*9m65@`a^jy`e!FU3
zmT)x$as6{+ShIB>YtrN2cIgMc>P;@L`w<#y|MPU2s^CYTH-?*^f7}=w>e}+;Topsg
XRi}3j?yt829l+q}>gTe~DWM4fo7Pfo

literal 0
HcmV?d00001

diff --git a/led-badge-11x44.py b/led-badge-11x44.py
index 329f900..8f69666 100755
--- a/led-badge-11x44.py
+++ b/led-badge-11x44.py
@@ -15,11 +15,12 @@
 # v0.1, 2019-03-05, jw  initial draught. HID code is much simpler than expected.
 # v0.2, 2019-03-07, jw  support for loading bitmaps added.
 # v0.3              jw  option -l to load graphics for inline use in text.
+# v0.4, 2019-03-08, jw  Warning about unused images added. Examples added to the README.
 
 import sys, os, re, array, time, argparse
 import usb.core
 
-__version = "0.3"
+__version = "0.4"
 
 font_11x44 = (
   # 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -151,13 +152,17 @@ for i in range(len(charmap)):
   char_offset[charmap[i]] = 11 * i
 
 bitmap_loaded = [ ([],0) ]
+bitmaps_unused = False
 
 def bitmap_char(ch):
   """ Returns a tuple of 11 bytes,
       ch = '_' returns (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255)
       The bits in each byte are horizontal, highest bit is left.
   """
-  if ord(ch) < 32: return bitmap_loaded[ord(ch)]
+  if ord(ch) < 32: 
+    global bitmaps_unused
+    bitmaps_unused = False
+    return bitmap_loaded[ord(ch)]
   o = char_offset[ch]
   return (font_11x44[o:o+11],1)
 
@@ -254,11 +259,15 @@ print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, d
 if args.load:
   for file in args.load:
     bitmap_loaded.append(bitmap_img(file))
+    bitmaps_unused = True
 
 msgs = []
 for arg in args.message:
   msgs.append(bitmap(arg))
 
+if bitmaps_unused == True:
+  print("\nWARNING:\n Your preloaded images are not used.\n Try without '-l' or embed the control character '^A' in your message.\n")
+
 buf = array.array('B')
 buf.extend(header(list(map(lambda x: x[1], msgs)), args.speed, args.mode))
 
diff --git a/green_badge.jpg b/photos/green_badge.jpg
similarity index 100%
rename from green_badge.jpg
rename to photos/green_badge.jpg
diff --git a/photos/love_my_fablab.jpg b/photos/love_my_fablab.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c462eea4498867c5852161ef3845845842dfe1ba
GIT binary patch
literal 159930
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