Stefan Schuermans commited on 2017-05-27 13:05:50
Showing 5 changed files, with 25 additions and 23 deletions.
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 |
-from display import Display |
|
| 2 |
-from distributor import Distributor |
|
| 3 |
-from mapping import Mapping |
|
| 4 |
-from msg import Msg, MsgDef |
|
| 5 |
-from parse import parse_addr, parse_no, parse_two_nos |
|
| 1 |
+from pyetherpix.display import Display |
|
| 2 |
+from pyetherpix.distributor import Distributor |
|
| 3 |
+from pyetherpix.mapping import Mapping |
|
| 4 |
+from pyetherpix.msg import Msg, MsgDef |
|
| 5 |
+from pyetherpix.parse import parse_addr, parse_no, parse_two_nos |
|
| 6 | 6 |
|
| ... | ... |
@@ -17,10 +17,10 @@ |
| 17 | 17 |
|
| 18 | 18 |
import socket |
| 19 | 19 |
|
| 20 |
-from distributor import Distributor |
|
| 21 |
-from mapping import Mapping |
|
| 22 |
-from msg import Msg, MsgDef |
|
| 23 |
-from parse import parse_addr, parse_no, parse_two_nos |
|
| 20 |
+from pyetherpix.distributor import Distributor |
|
| 21 |
+from pyetherpix.mapping import Mapping |
|
| 22 |
+from pyetherpix.msg import Msg, MsgDef |
|
| 23 |
+from pyetherpix.parse import parse_addr, parse_no, parse_two_nos |
|
| 24 | 24 |
|
| 25 | 25 |
|
| 26 | 26 |
class Display(object): |
| ... | ... |
@@ -20,7 +20,7 @@ import struct |
| 20 | 20 |
|
| 21 | 21 |
from PIL import Image |
| 22 | 22 |
|
| 23 |
-from mapping import Mapping |
|
| 23 |
+from pyetherpix.mapping import Mapping |
|
| 24 | 24 |
|
| 25 | 25 |
|
| 26 | 26 |
class Distributor(object): |
| ... | ... |
@@ -66,8 +66,9 @@ class Distributor(object): |
| 66 | 66 |
def data_clear(self): |
| 67 | 67 |
"""clear image data, i.e. set entire image to black""" |
| 68 | 68 |
# prepare message buffer with all pixels cleared (black) |
| 69 |
- clr = "".join([self._mappings[channel].table[0] |
|
| 70 |
- for channel in range(Mapping.CHANNELS)]) |
|
| 69 |
+ clr = bytearray() |
|
| 70 |
+ for channel in range(Mapping.CHANNELS): |
|
| 71 |
+ clr += self._mappings[channel].table[0] |
|
| 71 | 72 |
self._buffer = self._udp_hdr + (clr * (self._outputs * self._pixels)) |
| 72 | 73 |
|
| 73 | 74 |
def data_image(self, image): |
| ... | ... |
@@ -77,7 +78,7 @@ class Distributor(object): |
| 77 | 78 |
(width, height) = image.size |
| 78 | 79 |
# collect pixels from image and assemble message in buffer |
| 79 | 80 |
clr = [0] * Mapping.CHANNELS |
| 80 |
- data = [] |
|
| 81 |
+ data = self._udp_hdr |
|
| 81 | 82 |
for output_pixel_coords in self._pixel_coords: |
| 82 | 83 |
for x_y in output_pixel_coords: |
| 83 | 84 |
if x_y is None: |
| ... | ... |
@@ -90,10 +91,10 @@ class Distributor(object): |
| 90 | 91 |
# get pixel from image |
| 91 | 92 |
pix = image.getpixel(x_y) |
| 92 | 93 |
# add pixel to pixel data |
| 93 |
- data += [self._mappings[channel].table[pix[channel]] |
|
| 94 |
- for channel in range(Mapping.CHANNELS)] |
|
| 95 |
- # build UDP message from pixel data |
|
| 96 |
- self._buffer = self._udp_hdr + "".join(data) |
|
| 94 |
+ for channel in range(Mapping.CHANNELS): |
|
| 95 |
+ data += self._mappings[channel].table[pix[channel]] |
|
| 96 |
+ # store UDP message |
|
| 97 |
+ self._buffer = data |
|
| 97 | 98 |
|
| 98 | 99 |
def send(self, socket): |
| 99 | 100 |
"""send image data to actual distributor module using UDP""" |
| ... | ... |
@@ -33,21 +33,21 @@ def main(argv): |
| 33 | 33 |
# create display |
| 34 | 34 |
display = pyetherpix.Display(config_file) |
| 35 | 35 |
(width, height) = display.get_size() |
| 36 |
- print "width %u, height %u" % (width, height) |
|
| 36 |
+ print("width %u, height %u" % (width, height))
|
|
| 37 | 37 |
# prepare "on" image (all white) |
| 38 | 38 |
on = Image.new("RGB", (width, height), "white")
|
| 39 | 39 |
# blink |
| 40 |
- print "blink" |
|
| 40 |
+ print("blink")
|
|
| 41 | 41 |
for i in range(5): |
| 42 |
- print "on" |
|
| 42 |
+ print("on")
|
|
| 43 | 43 |
display.data_image(on) |
| 44 | 44 |
display.send() |
| 45 | 45 |
time.sleep(0.5) |
| 46 |
- print "off" |
|
| 46 |
+ print("off")
|
|
| 47 | 47 |
display.data_clear() |
| 48 | 48 |
display.send() |
| 49 | 49 |
time.sleep(0.5) |
| 50 |
- print "done" |
|
| 50 |
+ print("done")
|
|
| 51 | 51 |
# close display |
| 52 | 52 |
display.close() |
| 53 | 53 |
return 0 |
| ... | ... |
@@ -15,6 +15,7 @@ |
| 15 | 15 |
# You should have received a copy of the GNU Lesser General Public License |
| 16 | 16 |
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 17 | 17 |
|
| 18 |
+from __future__ import print_function |
|
| 18 | 19 |
import sys |
| 19 | 20 |
|
| 20 | 21 |
|
| ... | ... |
@@ -55,5 +56,5 @@ class MsgDef(Msg): |
| 55 | 56 |
else: |
| 56 | 57 |
prefix = "unknown" |
| 57 | 58 |
if level <= self._level: |
| 58 |
- print >>sys.stderr, prefix + ": " + text |
|
| 59 |
+ print(prefix + ": " + text, file=sys.stderr) |
|
| 59 | 60 |
|
| 60 | 61 |