# -*- coding: utf-8 -*-
#
# (c) Copyright 2001-2015 HP Development Company, L.P.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Authors: Don Welch, Naga Samrat Chowdary Narla,
#
# StdLib
import operator
import signal
# Local
from base.g import *
from base import device, utils, maint, status
#from prnt import cups
from base.codes import *
from .ui_utils import *
# Qt
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
# Ui
from .aligndialog_base import Ui_Dialog
PAGE_START = 0
PAGE_LOAD_PAPER = 1
PAGE_EDGE = 2
PAGE_ALIGNMENT_NUMBER = 3
PAGE_COLOR_ADJ = 4 # types 4, 5 & 7
PAGE_LBOW = 5 # types 10 & 11
PAGE_AIO = 6 # Place on scanner, ...
PAGE_FRONT_PANEL = 7 # Use front panel menu
BUTTON_ALIGN = 0
BUTTON_NEXT = 1
BUTTON_FINISH = 2
ALIGN_TYPE_INITIAL = 1000
ALIGN_TYPE_TEST = 1001
# xBow offset types
ALIGN_TYPE_XBOW_OFFSET = 100
ALIGN_TYPE_XBOW_BLACK_ONLY = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_BLACK_ONLY
ALIGN_TYPE_XBOW_PHOTO_ONLY = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_PHOTO_ONLY
ALIGN_TYPE_XBOW_COLOR_ONLY = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_COLOR_ONLY
ALIGN_TYPE_XBOW_COLOR_AND_BLACK = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_COLOR_AND_BLACK
ALIGN_TYPE_XBOW_COLOR_AND_PHOTO = ALIGN_TYPE_XBOW_OFFSET + AGENT_CONFIG_COLOR_AND_PHOTO
def true():
return True
class AlignDialog(QDialog, Ui_Dialog):
def __init__(self, parent, device_uri):
QDialog.__init__(self, parent)
self.device_uri = device_uri
self.mq = {}
self.step_max = 0
self.align_type = ALIGN_TYPE_INITIAL
self.step = 1
self.a, self.b, self.c, self.d, self.zca = 0, 0, 0, 0, 0
self.e, self.f, self.g = 0, 0, 0
self.num_inks = 0 # type 8
self.pattern = 0 # type 10
self.values = [] # type 10
self.abort = False
self.seq_index = 0
self.max_steps = {
ALIGN_TYPE_UNSUPPORTED : 1,
ALIGN_TYPE_AUTO : 2,
ALIGN_TYPE_9XX : 7,
ALIGN_TYPE_8XX : 7,
ALIGN_TYPE_LIDIL_0_3_8 : 0,
ALIGN_TYPE_LIDIL_0_4_3 : 0,
ALIGN_TYPE_LIDIL_AIO : 3,
ALIGN_TYPE_LIDIL_VIP : 0,
ALIGN_TYPE_DESKJET_450 : 0,
ALIGN_TYPE_9XX_NO_EDGE_ALIGN : 6,
ALIGN_TYPE_LBOW : 0,
ALIGN_TYPE_LIDIL_0_5_4 : 0,
ALIGN_TYPE_OJ_PRO : 0,
ALIGN_TYPE_TEST : 0,
ALIGN_TYPE_AIO : 3,
ALIGN_TYPE_LIDIL_DJ_D1600: 0,
ALIGN_TYPE_LEDM: 0,
ALIGN_TYPE_LEDM_MANUAL: 0,
ALIGN_TYPE_LEDM_FF_CC_0: 0,
}
self.seq = { # (func|method, tuple of params|None)
ALIGN_TYPE_TEST : [ # testing only
(self.showColorAdjustPage, ('F', 21)),
(self.endColorAdjustPage, ('F',)),
(self.showColorAdjustPage, ('G', 11)),
(self.endColorAdjustPage, ('G',)),
(self.close, None),
],
ALIGN_TYPE_INITIAL : [ # (used when starting up and align-type isn't known)
(self.showStartPage, None),
(self.endStartPage, None), # switch to a valid align-type here
],
ALIGN_TYPE_UNSUPPORTED : [ # -1
(self.showFrontPanelPage, None),
(self.endFronPanelPage, None),
(self.close, None),
],
# ALIGN_TYPE_NONE : [ # 0
# (self.close, None)
# ],
ALIGN_TYPE_AUTO : [ # 1
(self.showLoadPaperPage, None),
(maint.AlignType1PML, (lambda : self.dev, lambda: true)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_8XX : [ # 2
(self.checkType2PenConfig, None),
(self.showLoadPaperPage, None),
(maint.alignType2Phase1, (lambda: self.dev,)),
(self.showAlignmentNumberPage, ('A', 'h', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('A',)),
(self.showAlignmentNumberPage, ('B', 'v', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('B',)),
(self.showAlignmentNumberPage, ('C', 'v', 'kc', 2, 5)),
(self.endAlignmentNumberPage, ('C',)),
(self.showAlignmentNumberPage, ('D', 'v', 'c', 2, 5)),
(self.endAlignmentNumberPage, ('D',)),
(self.setAlignButton, (BUTTON_ALIGN,)),
(self.showLoadPaperPage, (lambda: True,)),
(maint.alignType2Phase2, (lambda: self.dev, lambda: self.a, lambda: self.b,
lambda: self.c, lambda: self.d)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_9XX : [ # 3
(self.showLoadPaperPage, None),
(self.showAlignmentNumberPage, ('A', 'h', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('A',)),
(self.showAlignmentNumberPage, ('B', 'v', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('B',)),
(self.showAlignmentNumberPage, ('C', 'v', 'k', 2, 11)),
(self.endAlignmentNumberPage, ('C',)),
(self.setAlignButton, (BUTTON_ALIGN,)),
(self.showAlignmentNumberPage, ('D', 'v', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('D',)),
(maint.alignType3Phase2, (lambda: self.dev, lambda: self.a, lambda: self.b,
lambda: self.c, lambda: self.d)),
(maint.alignType3Phase3, (lambda: self.dev,)),
(self.showPageEdgePage, None),
(self.endPageEdgePage, None),
(maint.alignType3Phase4, (lambda: self.dev, lambda: self.zca)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_LIDIL_0_3_8 : [ # 4
(self.showLoadPaperPage, None),
(self.setPenConfig, None),
(maint.alignType4Phase1, (lambda: self.dev,)),
(self.setXBow, None),
# switches to offset align_type here
],
ALIGN_TYPE_LIDIL_0_4_3 : [ # 5
(self.showLoadPaperPage, None),
(self.setPenConfig, None),
(maint.alignType5Phase1, (lambda: self.dev,)),
(self.showPageEdgePage, ('A',)),
(self.endPageEdgePage, None),
(self.setXBow, None),
# switches to offset align_type here
],
ALIGN_TYPE_LIDIL_VIP : [ # 7
(self.showLoadPaperPage, None),
(self.setPenConfig, None),
(maint.alignType7Phase1, (lambda: self.dev,)),
(self.showPageEdgePage, ('A',)),
(self.endPageEdgePage, None),
(self.setXBow, None),
# switches to offset align_type here (next 5 types)
],
# xBow offset alignment type
ALIGN_TYPE_XBOW_BLACK_ONLY : [ # 4, 5 & 7
(self.showAlignmentNumberPage, ('B', 'v', 'k', 2, 11)),
(self.endAlignmentNumberPage, ('B',)),
(self.setXBowValues, None),
(self.closeAll, None),
(self.close, None),
],
# xBow offset alignment type
ALIGN_TYPE_XBOW_PHOTO_ONLY : [ # 4, 5 & 7
(self.showAlignmentNumberPage, ('B', 'v', 'k', 2, 11)),
(self.endAlignmentNumberPage, ('B',)),
(self.setXBowValues, None),
(self.closeAll, None),
(self.close, None),
],
# xBow offset alignment type
ALIGN_TYPE_XBOW_COLOR_ONLY : [ # 4, 5 & 7
(self.showAlignmentNumberPage, ('B', 'v', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('B',)),
(self.setXBowValues, None),
(self.closeAll, None),
(self.close, None),
],
# xBow offset alignment type
ALIGN_TYPE_XBOW_COLOR_AND_BLACK : [ # 4, 5 & 7
(self.showAlignmentNumberPage, ('B', 'h', 'kc', 2, 17)),
(self.endAlignmentNumberPage, ('B',)),
(self.showAlignmentNumberPage, ('C', 'v', 'kc', 2, 17)),
(self.endAlignmentNumberPage, ('C',)),
(self.showAlignmentNumberPage, ('D', 'v', 'k', 2, 11)),
(self.endAlignmentNumberPage, ('D',)),
(self.showAlignmentNumberPage, ('E', 'v', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('E',)),
(self.setXBowValues, None),
(self.closeAll, None),
(self.close, None),
],
# xBow offset alignment type
ALIGN_TYPE_XBOW_COLOR_AND_PHOTO : [ # 4, 5 & 7
(self.showAlignmentNumberPage, ('B', 'h', 'kc', 2, 17)),
(self.endAlignmentNumberPage, ('B',)),
(self.showAlignmentNumberPage, ('C', 'v', 'kc', 2, 17)),
(self.endAlignmentNumberPage, ('C',)),
(self.showAlignmentNumberPage, ('D', 'v', 'k', 2, 11)),
(self.endAlignmentNumberPage, ('D',)),
(self.showAlignmentNumberPage, ('E', 'v', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('E',)),
(self.showColorAdjustPage, ('F', 21)),
(self.endColorAdjustPage, ('F',)),
(self.showColorAdjustPage, ('G', 21)),
(self.endColorAdjustPage, ('G',)),
(self.setXBowValues, None),
(self.close, None),
],
ALIGN_TYPE_LIDIL_AIO : [ # 6 (semi-auto)
(self.showLoadPaperPage, None),
(maint.alignType6Phase1, (lambda: self.dev,)),
(self.setAlignButton, (BUTTON_FINISH,)),
(self.showAioPage, None),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_DESKJET_450 : [ # 8
(self.showLoadPaperPage, None),
(self.alignType8Phase1, None), # sets num_inks
(self.showAlignmentNumberPage, ('A', 'v', 'k', 3, 9)),
(self.endAlignmentNumberPage, ('A',)),
(self.showAlignmentNumberPage, ('B', 'v', 'c', 3, 9)),
(self.endAlignmentNumberPage, ('B',)),
(self.showAlignmentNumberPage, ('C', 'v', 'kc', 3, 9)),
(self.endAlignmentNumberPage, ('C',)),
(self.setAlignButton, (BUTTON_ALIGN,)),
(self.showAlignmentNumberPage, ('D', 'h', 'kc', 3, 9)),
(self.endAlignmentNumberPage, ('D',)),
(maint.alignType3Phase2, (lambda: self.dev, lambda: self.num_inks, lambda: self.a,
lambda: self.b, lambda: self.c, lambda: self.d)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_9XX_NO_EDGE_ALIGN : [ # 9
(self.showLoadPaperPage, None),
(self.showAlignmentNumberPage, ('A', 'h', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('A',)),
(self.showAlignmentNumberPage, ('B', 'v', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('B',)),
(self.showAlignmentNumberPage, ('C', 'v', 'k', 2, 11)),
(self.endAlignmentNumberPage, ('C',)),
(self.setAlignButton, (BUTTON_ALIGN,)),
(self.showAlignmentNumberPage, ('D', 'v', 'kc', 2, 11)),
(self.endAlignmentNumberPage, ('D',)),
(maint.alignType3Phase2, (lambda: self.dev, lambda: self.a, lambda: self.b,
lambda: self.c, lambda: self.d)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_LBOW : [ # 10
(self.showLoadPaperPage, None),
(maint.alignType10Phase1, (lambda: self.dev,)),
(self.setAlignButton, (BUTTON_ALIGN,)),
(self.showLBowPage, (lambda: self.pattern,)),
(self.endLBowPage, None), # sets values
(maint.alignType10Phase2, (lambda: self.dev, lambda: self.values,
lambda: self.pattern)),
(self.setAlignButton, (BUTTON_FINISH,)),
(self.showLoadPaperPage, (lambda: True,)),
(maint.alignType10Phase3, (lambda: self.dev,)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_LIDIL_0_5_4 : [ # 11
(self.showLoadPaperPage, None),
(maint.alignType11Phase1, (lambda: self.dev,)),
(self.setAlignButton, (BUTTON_ALIGN,)),
(self.showLBowPage, (lambda: self.pattern,)),
(self.endLBowPage, None), # sets values
(maint.alignType11Phase2, (lambda: self.dev, lambda: self.values,
lambda: self.pattern, lambda: self.dev.pen_config)),
(self.setAlignButton, (BUTTON_FINISH,)),
(self.showLoadPaperPage, (lambda: True,)),
(maint.alignType11Phase3, (lambda: self.dev,)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_OJ_PRO : [ # 12
(self.showLoadPaperPage, None),
(maint.AlignType12, (lambda : self.dev, lambda: true)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_AIO : [ #13
(self.showLoadPaperPage, None),
(maint.alignType13Phase1, (lambda: self.dev,)),
(self.setAlignButton, (BUTTON_FINISH,)),
(self.showAioPage, None),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_LIDIL_DJ_D1600 : [ # 14
(self.showLoadPaperPage, None),
(maint.alignType14Phase1, (lambda: self.dev,)),
(self.setAlignButton, (BUTTON_ALIGN,)),
(self.showLBowPage, (lambda: self.pattern,)),
(self.endLBowPage, None), # sets values
(maint.alignType14Phase2, (lambda: self.dev, lambda: self.values,
lambda: self.pattern, lambda: self.dev.pen_config)),
(self.setAlignButton, (BUTTON_FINISH,)),
(self.showLoadPaperPage, (lambda: True,)),
(maint.alignType14Phase3, (lambda: self.dev,)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_LEDM : [ # 15
(self.showLoadPaperPage, None),
(maint.AlignType15Phase1, (lambda : self.dev, lambda: self.showAioPage)),
(self.close, None),
],
ALIGN_TYPE_LEDM_MANUAL : [ # 16
(self.showLoadPaperPage, None),
(maint.AlignType15Phase1, (lambda : self.dev, lambda: true)),
(self.showAlignmentNumberPage, ('A', 'v', 'kc', 3, 23)),
(self.endAlignmentNumberPage, ('A',)),
(self.showAlignmentNumberPage, ('B', 'h', 'kc', 3, 17)),
(self.endAlignmentNumberPage, ('B',)),
(self.showAlignmentNumberPage, ('C', 'v', 'k', 3, 23)),
(self.endAlignmentNumberPage, ('C',)),
(self.showAlignmentNumberPage, ('D', 'v', 'c', 3, 23)),
(self.endAlignmentNumberPage, ('D',)),
(self.showAlignmentNumberPage, ('E', 'h', 'k', 3, 11)),
(self.endAlignmentNumberPage, ('E',)),
(self.showAlignmentNumberPage, ('F', 'h', 'k', 3, 11)),
(self.endAlignmentNumberPage, ('F',)),
(self.showAlignmentNumberPage, ('G', 'h', 'k', 3, 11)),
(self.endAlignmentNumberPage, ('G',)),
(self.showAlignmentNumberPage, ('H', 'v', 'k', 3, 11)),
(self.endAlignmentNumberPage, ('H',)),
(self.showAlignmentNumberPage, ('I', 'v', 'c', 3, 19)),
(self.endAlignmentNumberPage, ('I',)),
(self.showAlignmentNumberPage, ('J', 'v', 'c', 3, 19)),
(self.endAlignmentNumberPage, ('J',)),
(maint.AlignType16Phase1, (lambda: self.dev, lambda: self.a, lambda: self.b,
lambda: self.c, lambda: self.d, lambda: self.e,
lambda: self.f, lambda: self.g, lambda: self.h,
lambda: self.i, lambda: self.j)),
(self.closeAll, None),
(self.close, None),
],
ALIGN_TYPE_LEDM_FF_CC_0 : [ # 17
(self.showLoadPaperPage, None),
(maint.AlignType17Phase1, (lambda : self.dev, lambda: self.showAioPage)),
(self.close, None),
],
}
self.setupUi(self)
self.initUi()
QTimer.singleShot(0, self.nextSequence)
def initUi(self):
# connect signals/slots
self.CancelButton.clicked.connect(self.CancelButton_clicked)
self.NextButton.clicked.connect(self.NextButton_clicked)
#self.BackButton.clicked.connect(self.BackButton_clicked)
self.DeviceComboBox.DeviceUriComboBox_noDevices.connect(self.DeviceUriComboBox_noDevices)
self.DeviceComboBox.DeviceUriComboBox_currentChanged.connect(self.DeviceUriComboBox_currentChanged)
self.DeviceComboBox.setFilter({'align-type': (operator.ne, ALIGN_TYPE_NONE)})
signal.signal(signal.SIGINT, signal.SIG_DFL)
# Application icon
self.setWindowIcon(QIcon(load_pixmap('hp_logo', '128x128')))
if self.device_uri:
self.DeviceComboBox.setInitialDevice(self.device_uri)
def DeviceUriComboBox_noDevices(self):
FailureUI(self, self.__tr("<b>No devices that support print cartridge alignment found.</b><p>Click <i>OK</i> to exit.</p>"))
self.close()
def DeviceUriComboBox_currentChanged(self, device_uri):
self.device_uri = device_uri
def CancelButton_clicked(self):
self.close()
def NextButton_clicked(self):
self.nextSequence()
def nextSequence(self):
while True:
try:
seq, params = self.seq[self.align_type][self.seq_index]
except IndexError:
break
if seq is None:
self.seq_index += 1
continue
self.new_page = False
t = []
if params is not None:
for p in params:
try:
t.append(p())
except:
t.append(p)
try:
log.debug("%s(%s)" % (seq.__name__, ','.join([repr(x) for x in t])))
except AttributeError:
pass
try:
seq(*t)
except Error:
CheckDeviceUI(self)
break
self.seq_index += 1
if self.new_page:
break
if self.abort:
self.close()
def showStartPage(self):
# self.BackButton.setEnabled(False)
num_devices = self.DeviceComboBox.setDevices()
if num_devices == 1:
self.skipPage()
return
self.DeviceComboBox.updateUi()
self.displayPage(PAGE_START)
def endStartPage(self):
self.mq = device.queryModelByURI(self.device_uri)
self.align_type = self.mq.get('align-type', ALIGN_TYPE_NONE)
self.seq_index = -1
#self.align_type = ALIGN_TYPE_TEST# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
log.debug("align-type=%d" % self.align_type)
self.step_max = self.max_steps[self.align_type]
try:
self.dev = device.Device(self.device_uri)
except Error:
CheckDeviceUI(self)
return
def showLoadPaperPage(self, finish=False):
if finish:
self.LoadPaper.button_name = self.__tr("Finish >")
self.LoadPaper.updateUi()
self.displayPage(PAGE_LOAD_PAPER)
def endLoadPaperPage(self):
pass
def showAlignmentNumberPage(self, line_id, orientation, colors, line_count, choice_count):
# line_id: 'A', 'B', etc.
# orientation: 'v' or 'h'
# colors: 'k' or 'c' or 'kc'
# line_count: 2 or 3
# choice_count: 5, 7, 9, 11, etc. (odd)
self.AlignmentNumberTitle.setText(self.__tr("From the printed Alignment page, Choose the set of lines in group %s where the line segments are <b>best</b> aligned." % line_id))
self.AlignmentNumberIcon.setPixmap(load_pixmap('%s-%s-%d' % (orientation, colors, line_count), 'other'))
self.AlignmentNumberComboBox.clear()
for x in range(choice_count):
self.AlignmentNumberComboBox.addItem(str("%s%s"% (line_id, x+1)))
self.displayPage(PAGE_ALIGNMENT_NUMBER)
return
def endAlignmentNumberPage(self, line_id):
v = int(str(self.AlignmentNumberComboBox.currentText())[1:])
if line_id == 'A':
self.a = v
log.debug("A=%d" % v)
elif line_id == 'B':
self.b = v
log.debug("B=%d" % v)
elif line_id == 'C':
self.c = v
log.debug("C=%d" % v)
elif line_id == 'D':
self.d = v
log.debug("D=%d" % v)
elif line_id == 'E':
self.e = v
log.debug("E=%d" % v)
elif line_id == 'F':
self.f = v
log.debug("F=%d" % v)
elif line_id == 'G':
self.g = v
log.debug("G=%d" % v)
elif line_id == 'H':
self.h = v
log.debug("H=%d" % v)
elif line_id == 'I':
self.i = v
log.debug("I=%d" % v)
elif line_id == 'J':
self.j = v
log.debug("J=%d" % v)
def showPageEdgePage(self, prefix=None, count=13):
self.PageEdgeTitle.setText(self.__tr("Choose the <b>numbered arrow</b> that <b>best </b>marks the edge of the paper."))
self.PageEdgeIcon.setPixmap(load_pixmap('zca.png', 'other'))
self.PageEdgeComboBox.clear()
for x in range(count):
if prefix is None:
self.PageEdgeComboBox.addItem(str("%s" % x+1))
else:
self.PageEdgeComboBox.addItem(str("%s%s" % (prefix, x+1))) # for xBow
self.displayPage(PAGE_EDGE)
def endPageEdgePage(self):
v = int(str(self.PageEdgeComboBox.currentText())[1:])
self.zca = v
log.debug("ZCA=%d" % v)
def showLBowPage(self, pattern):
self.LBowIcon.setPixmap(load_pixmap('align10', 'other'))
if self.align_type == ALIGN_TYPE_LBOW:
pattern = maint.alignType10SetPattern(self.dev)
elif self.align_type == ALIGN_TYPE_LIDIL_DJ_D1600:
pattern = maint.alignType14SetPattern(self.dev)
else: # ALIGN_TYPE_LIDIL_0_5_4
pattern = maint.alignType11SetPattern(self.dev)
if pattern is None:
log.error("Invalid pattern!")
# TODO: ...
self.controls = maint.align10and11and14Controls(pattern, self.align_type)
keys = list(self.controls.keys())
keys.sort()
max_line = 'A'
for line in keys:
if self.controls[line][0]:
max_line = line
else:
break
self.LBowTitle.setText(self.__tr("For each row A - %s, select the label representing the box in which in the inner lines are the <b>least</b> visible." % max_line))
for line in self.controls:
if not self.controls[line][0]:
eval('self.%sComboBox.setEnabled(False)' % line.lower())
else:
for x in range(self.controls[line][1]):
eval('self.%sComboBox.addItem("%s%d")' % (line.lower(), line, x + 1))
self.displayPage(PAGE_LBOW)
def endLBowPage(self):
self.values = []
controls = list(self.controls.keys())
controls.sort()
for line in controls:
if not self.controls[line][0]:
self.values.append(0)
else:
exec('selected = unicode(self.%sComboBox.currentText())' % line.lower())
try:
selected = int(selected[1:])
except ValueError:
selected = 0
self.values.append(selected)
def showAioPage(self):
self.AioIcon.setPixmap(load_pixmap('aio_align', 'other'))
self.displayPage(PAGE_AIO)
def endAioPage(self):
pass
def showColorAdjustPage(self, line_id, count=21):
self.ColorAdjustComboBox.clear()
self.ColorAdjustIcon.setPixmap(load_pixmap('color_adj', 'other'))
self.ColorAdjustLabel.setText(self.__tr("Line %s:" % line_id))
for x in range(count):
self.ColorAdjustComboBox.addItem(str("%s%s" % (line_id, x+1)))
self.displayPage(PAGE_COLOR_ADJ)
def endColorAdjustPage(self, line_id):
v = int(str(self.ColorAdjustComboBox.currentText())[1:])
if line_id == 'F':
self.f = v
log.debug("F=%d" % v)
elif line_id == 'G':
self.g = v
log.debug("G=%d" % v)
def showFrontPanelPage(self):
# self.BackButton.setEnabled(False)
self.setAlignButton(BUTTON_FINISH)
self.displayPage(PAGE_FRONT_PANEL)
def endFronPanelPage(self):
pass
#
# ALIGN-TYPE SPECIFIC
#
def checkType2PenConfig(self):
pass
# TODO: set abort if problem
def alignType8Phase1(self):
self.num_inks = maint.alignType8Phase1(self.dev)
def setXBow(self):
# TODO: set abort if invalid pen config
self.real_align_type = self.align_type
self.align_type = ALIGN_TYPE_XBOW_OFFSET + self.dev.pen_config
self.seq_index = -1
def setXBowValues(self):
if self.real_align_type == ALIGN_TYPE_LIDIL_0_3_8:
maint.alignType4Phase2(self.dev, self.zca, self.b, self.c, self.d, self.e)
maint.alignType4Phase3(self.dev)
elif self.real_align_type == ALIGN_TYPE_LIDIL_0_4_3:
maint.alignType5Phase2(self.dev, self.zca, self.b, self.c, self.d, self.e, self.f, self.g)
maint.alignType5Phase3(self.dev)
elif self.real_align_type == ALIGN_TYPE_LIDIL_VIP:
maint.alignType7Phase2(self.dev, self.zca, self.b, self.c, self.d, self.e, self.f, self.g)
maint.alignType7Phase3(self.dev)
#
# Misc
#
def displayPage(self, page):
self.updateStepText(self.step)
self.step += 1
self.new_page = True
self.StackedWidget.setCurrentIndex(page)
def skipPage(self):
self.step += 1
self.new_page = False
def updateStepText(self, p=None):
if p is None or not self.step_max:
self.StepText.setText(str(""))
else:
self.StepText.setText(self.__tr("Step %s of %s" % (p, self.step_max)))
def setAlignButton(self, typ=BUTTON_ALIGN):
if typ == BUTTON_ALIGN:
self.NextButton.setText(self.__tr("Align"))
elif typ == BUTTON_NEXT:
self.NextButton.setText(self.__tr("Next >"))
elif typ == BUTTON_FINISH:
self.NextButton.setText(self.__tr("Finish"))
def setPenConfig(self):
self.dev.pen_config = status.getPenConfiguration(self.dev.getStatusFromDeviceID())
def closeAll(self):
if self.dev is not None:
self.dev.close()
def __tr(self,s,c = None):
return qApp.translate("AlignDialog",s,c)