summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2013-12-15 23:43:44 +0100
committerDavid Lamparter <equinox@diac24.net>2013-12-15 23:43:44 +0100
commitab68f3b5c6774f35c594ca59a4255c3023405cb4 (patch)
tree329e367b04c231214b6d6cb34f45ea31b97141a3
parent401786aabef6e825b3a3d7c764ad9d954c840eca (diff)
parente3004852e1276494ee5ea9e58ece89644db7f483 (diff)
Merge remote-tracking branch 'sublab/master'
-rw-r--r--ptgui.py10
-rw-r--r--pttarget.py67
2 files changed, 53 insertions, 24 deletions
diff --git a/ptgui.py b/ptgui.py
index 3c5aaa9..d5356d7 100644
--- a/ptgui.py
+++ b/ptgui.py
@@ -75,9 +75,13 @@ class MainWindow(object):
print str(dev)
self.devlist.append([str(dev), dev])
- if len(self.devlist) > 0:
- itr = self.devlist.get_iter((0, ))
- self.devbox.set_active_iter(itr)
+ if len(self.devlist) == 0:
+ for dummy_width in [9,12,24]:
+ dummy_printer = pttarget.PTPrinter(dummy_width)
+ self.devlist.append([str(dummy_printer), dummy_printer])
+
+ itr = self.devlist.get_iter((0, ))
+ self.devbox.set_active_iter(itr)
def dev_select(self):
itr = self.devbox.get_active_iter()
diff --git a/pttarget.py b/pttarget.py
index 37f6509..ff05a1e 100644
--- a/pttarget.py
+++ b/pttarget.py
@@ -6,13 +6,55 @@ import tempfile, os, struct, sys, array, time
import qrcode
class PTPrinter(object):
- def __init__(self):
- pass
+ def __init__(self, dummy_width=24):
+ self.dummy_width = dummy_width
+ self.last_status = None
+
+ def __str__(self):
+ return 'Dummy PTPrinter, Tape width %d' % self.dummy_width
+
def setup(self):
pass
+
+ def check_status(self):
+ self.refresh_status()
+
+ def find_tape(self):
+ for tape in PTTape.tapes:
+ if int(tape.sizemm) == self.media_width:
+ return tape
+ return None
+
def is_interactive(self):
return False
+ def get_errstr(self):
+ errs = []
+ for i in range(0, 8):
+ if self.err1 & (1 << i):
+ errs.append(codes_err1.get(1 << i, '<1:%02x>' % (1 << i)))
+ for i in range(0, 8):
+ if self.err2 & (1 << i):
+ errs.append(codes_err2.get(1 << i, '<2:%02x>' % (1 << i)))
+ if len(errs) == 0:
+ return 'OK'
+ return ', '.join(errs)
+
+ def refresh_status(self):
+ self.err1 = 0x00
+ self.err2 = 0x00
+ self.media_width = self.dummy_width
+ self.media_type = 0x01
+ self.media_length = 8000
+ self.status_type = 0x00
+ self.phase_type = 0x00
+ self.phase_bytes = 0x00
+ self.notify_num = 0x00
+ self.last_status = time.time()
+
+ def send(self, data):
+ pass
+
media_types = {
0x01: 'Laminated',
0x02: 'Lettering',
@@ -37,8 +79,8 @@ codes_err2 = {
class PTUSB(PTPrinter):
def __init__(self, usbdev):
+ super(PTUSB, self).__init__()
self.usbdev = usbdev
- self.last_status = None
def __str__(self):
return '%s %s (%04x:%04x @ %d.%d)' % (
@@ -95,12 +137,6 @@ class PTUSB(PTPrinter):
self.notify_num = ar[22]
self.last_status = time.time()
- def find_tape(self):
- for tape in PTTape.tapes:
- if int(tape.sizemm) == self.media_width:
- return tape
- return None
-
def check_status(self):
ar = self.if_rd.read(16)
if len(ar) == 0:
@@ -110,18 +146,6 @@ class PTUSB(PTPrinter):
ar += self.if_rd.read(16)
self.refresh_status(ar)
- def get_errstr(self):
- errs = []
- for i in range(0, 8):
- if self.err1 & (1 << i):
- errs.append(codes_err1.get(1 << i, '<1:%02x>' % (1 << i)))
- for i in range(0, 8):
- if self.err2 & (1 << i):
- errs.append(codes_err2.get(1 << i, '<2:%02x>' % (1 << i)))
- if len(errs) == 0:
- return 'OK'
- return ', '.join(errs)
-
def send(self, data):
offset = 0
size = len(data)
@@ -308,3 +332,4 @@ if __name__ == '__main__':
# bytearray(((w + 7) / 8) * '\xff'))
p.send(data.get())
+