1# -*- coding: utf-8 -*- 2# 3# (c) Copyright 2003-2015 HP Development Company, L.P. 4# 5# This program is free software; you can redistribute it and/or modify 6# it under the terms of the GNU General Public License as published by 7# the Free Software Foundation; either version 2 of the License, or 8# (at your option) any later version. 9# 10# This program is distributed in the hope that it will be useful, 11# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13# GNU General Public License for more details. 14# 15# You should have received a copy of the GNU General Public License 16# along with this program; if not, write to the Free Software 17# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18# 19# Author: Don Welch, Naga Samrat Chowdary Narla, 20# 21 22# NOTE: Not used by Qt4 code. Use maint_*.py modules instead. 23 24# Local 25from .g import * 26from .codes import * 27from . import status, pml 28from prnt import pcl, ldl, colorcal 29import time 30from .sixext import to_bytes_utf8, StringIO 31 32# ************************* LEDM Clean**************************************** # 33CleanXML = """<?xml version=\"1.0\" encoding=\"UTF-8\"?> 34<!-- THIS DATA SUBJECT TO DISCLAIMER(S)INCLUDED WITH THE PRODUCT OF ORIGIN. --> 35<ipcap:InternalPrintCap xmlns:ipcap=\"http://www.hp.com/schemas/imaging/con/ledm/internalprintcap/2008/03/21\" xmlns:ipdyn=\"http://www.hp.com/schemas/imaging/con/ledm/internalprintdyn/2008/03/21\" xmlns:dd=\"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.hp.com/schemas/imaging/con/ledm/internalprintcap/2008/03/21 ../schemas/InternalPrintCap.xsd http://www.hp.com/schemas/imaging/con/ledm/internalprintdyn/2008/03/21 ../schemas/InternalPrintDyn.xsd http://www.hp.com/schemas/imaging/con/dictionaries/1.0/ ../schemas/dd/DataDictionaryMasterLEDM.xsd\"> 36 <ipdyn:JobType>%s</ipdyn:JobType> 37</ipcap:InternalPrintCap>\" 38 39 """ 40 41status_xml = '/DevMgmt/InternalPrintDyn.xml' 42LEDM_CLEAN_CAP_XML = '/DevMgmt/InternalPrintCap.xml' 43LEDM_CLEAN_VERIFY_PAGE_JOB="<ipdyn:JobType>cleaningVerificationPage</ipdyn:JobType>" 44# **************************************************************************** # 45 46# ********************** Align ********************** 47 48def AlignType1(dev, loadpaper_ui): # Auto VIP (using embedded PML) 49 ok = loadpaper_ui() 50 if ok: 51 dev.writeEmbeddedPML(pml.OID_AUTO_ALIGNMENT, 52 pml.AUTO_ALIGNMENT, style=0, 53 direct=True) 54 dev.closePrint() 55 56 return ok 57 58def AlignType1PML(dev, loadpaper_ui): # Auto VIP (using PML) 59 ok = loadpaper_ui() 60 if ok: 61 dev.setPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT) 62 dev.closePML() 63 64 return ok 65 66 67 68def AlignType2(dev, loadpaper_ui, align_ui, bothpens_ui): # 8xx 69 state, a, b, c, d = 0, 6, 6, 3, 3 70 ok = False 71 while state != -1: 72 if state == 0: 73 state = 1 74 pens = dev.getStatusFromDeviceID()['agents'] 75 pen_types = [pens[x] for x in range(len(pens))] 76 if AGENT_TYPE_NONE in pen_types: 77 log.error("Cannot perform alignment with 0 or 1 pen installed.") 78 state = 100 79 80 elif state == 1: 81 state = -1 82 ok = loadpaper_ui() 83 if ok: 84 state = 2 85 86 elif state == 2: 87 state = -1 88 alignType2Phase1(dev) 89 ok, a = align_ui('A', 'h', 'kc', 2, 11) 90 if ok: 91 state = 3 92 93 elif state == 3: 94 state = -1 95 ok, b = align_ui('B', 'v', 'kc', 2, 11) 96 if ok: 97 state = 4 98 99 elif state == 4: 100 state = -1 101 ok, c = align_ui('C', 'v', 'kc', 2, 5) 102 if ok: 103 state = 5 104 105 elif state == 5: 106 state = -1 107 ok, d = align_ui('D', 'v', 'c', 2, 5) 108 if ok: 109 state = 6 110 111 elif state == 6: 112 ok = loadpaper_ui() 113 if ok: 114 alignType2Phase2(dev, a, b, c, d) 115 state = -1 116 117 elif state == 100: 118 ok = False 119 bothpens_ui() 120 state = -1 121 122 return ok 123 124 125 126def AlignType3(dev, loadpaper_ui, align_ui, paperedge_ui, align_type): # 9xx 127 state, a, b, c, d, zca = 0, 6, 6, 3, 3, 6 128 ok = False 129 while state != -1: 130 if state == 0: 131 state = -1 132 ok = loadpaper_ui() 133 if ok: 134 alignType3Phase1(dev) 135 state = 1 136 137 elif state == 1: 138 state = -1 139 ok, a = align_ui('A', 'h', 'kc', 2, 11) 140 if ok: 141 state = 2 142 143 elif state == 2: 144 state = -1 145 ok, b = align_ui('B', 'v', 'kc', 2, 11) 146 if ok: 147 state = 3 148 149 elif state == 3: 150 state = -1 151 ok, c = align_ui('C', 'v', 'k', 2, 11) 152 if ok: 153 state = 4 154 155 elif state == 4: 156 state = -1 157 ok, d = align_ui('D', 'v', 'kc', 2, 11) 158 if ok: 159 state = 5 160 161 elif state == 5: 162 state = -1 163 alignType3Phase2(dev, a, b, c, d) 164 if align_type == 9: 165 state = 7 166 else: 167 ok = loadpaper_ui() 168 if ok: 169 state = 6 170 171 elif state == 6: 172 state = -1 173 alignType3Phase3(dev) 174 ok, zca = paperedge_ui(13) 175 if ok: 176 state = 7 177 178 elif state == 7: 179 ok = loadpaper_ui() 180 if ok: 181 alignType3Phase4(dev, zca) 182 state = -1 183 184 return ok 185 186 187def AlignxBow(dev, align_type, loadpaper_ui, align_ui, paperedge_ui, 188 invalidpen_ui, coloradj_ui): # Types 4, 5, and 7 189 190 state, statepos = 0, 0 191 user_cancel_states = [1000, -1] 192 a, b, c, d, e, f, g = 0, 0, 0, 0, 0, 0, 0 193 error_states = [-1] 194 ok = False 195 196 dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID()) 197 198 if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID): 199 state, states = 100, [-1] 200 201 elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY: 202 state, states = 0, [2, 200, 3, -1] 203 204 elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY: 205 state, states = 0, [2, 200, 3, -1] 206 207 elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY: 208 state, states = 0, [2, 300, 3, -1] 209 210 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 211 state, states = 0, [2, 400, 500, 600, 700, 3, 4, -1] 212 213 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: 214 state, states = 0, [2, 400, 500, 600, 700, 800, 900, 3, 4, -1] 215 216 while state != -1: 217 218 if state == 0: 219 ok = loadpaper_ui() 220 if ok: 221 if align_type == 4: 222 alignType4Phase1(dev) 223 elif align_type == 5: 224 alignType5Phase1(dev) 225 elif align_type == 7: 226 alignType7Phase1(dev) 227 else: 228 statepos, states = 0, error_states 229 else: 230 statepos, states = 0, user_cancel_states 231 232 233 elif state == 2: 234 ok, a = paperedge_ui(13) 235 if not ok: 236 statepos, states = 0, user_cancel_states 237 238 elif state == 3: 239 if align_type == 4: 240 alignType4Phase2(dev, a, b, c, d, e) 241 elif align_type == 5: 242 alignType5Phase2(dev, a, b, c, d, e, f, g) 243 else: 244 alignType7Phase2(dev, a, b, c, d, e, f, g) 245 246 elif state == 4: 247 ok = loadpaper_ui() 248 if ok: 249 if align_type == 4: 250 alignType4Phase3(dev) 251 elif align_type == 5: 252 alignType5Phase3(dev) 253 else: 254 alignType7Phase3(dev) 255 else: 256 statepos, states = 0, user_cancel_states 257 258 elif state == 100: 259 invalidpen_ui() 260 state = -1 261 262 elif state == 200: # B Line - Black only or photo only 263 ok, b = align_ui('B', 'v', 'k', 2, 11) 264 if not ok: 265 statepos, states = 0, user_cancel_states 266 267 elif state == 300: # B Line - Color only 268 ok, b = align_ui('B', 'v', 'kc', 2, 11) 269 if not ok: 270 statepos, states = 0, user_cancel_states 271 272 elif state == 400: # B Line - 2 pen 273 ok, b = align_ui('B', 'h', 'kc', 2, 17) 274 if not ok: 275 statepos, states = 0, user_cancel_states 276 277 elif state == 500: # C Line 278 ok, c = align_ui('C', 'v', 'kc', 2, 17) 279 if not ok: 280 statepos, states = 0, user_cancel_states 281 282 elif state == 600 : # D Line 283 ok, d = align_ui('D', 'v', 'k', 2, 11) 284 if not ok: 285 statepos, states = 0, user_cancel_states 286 287 elif state == 700: # E Line 288 ok, e = align_ui('E', 'v', 'kc', 2, 11) 289 if not ok: 290 statepos, states = 0, user_cancel_states 291 292 elif state == 800: # F Line 293 ok, f = coloradj_ui('F', 21) 294 if not ok: 295 statepos, states = 0, user_cancel_states 296 297 elif state == 900: # G Line 298 ok, f = coloradj_ui('G', 21) 299 if not ok: 300 statepos, states = 0, user_cancel_states 301 302 elif state == 1000: # User cancel 303 ok = False 304 log.warning("Alignment canceled at user request.") 305 306 state = states[statepos] 307 statepos += 1 308 309 return ok 310 311 312def AlignType6(dev, ui1, ui2, loadpaper_ui): 313 state = 0 314 ok = False 315 316 while state != -1: 317 if state == 0: 318 state = 2 319 accept = ui1() 320 if not accept: 321 # Need to printout alignment page 322 state = 1 323 324 elif state == 1: # Load and print 325 state = -1 326 ok = loadpaper_ui() 327 if ok: 328 alignType6Phase1(dev) 329 state = 2 330 331 elif state == 2: # Finish 332 ui2() 333 state = -1 334 335 336 return ok 337 338def AlignType8(dev, loadpaper_ui, align_ui): # 450 339 state, a, b, c, d = 0, 5, 5, 5, 5 340 ok = False 341 342 while state != -1: 343 344 if state == 0: 345 state = -1 346 ok = loadpaper_ui() 347 if ok: 348 num_inks = alignType8Phase1(dev) 349 state = 1 350 351 elif state == 1: 352 state = -1 353 ok, a = align_ui('A', 'v', 'k', 3, 9) 354 if ok: 355 state = 2 356 357 elif state == 2: 358 state = -1 359 ok, b = align_ui('B', 'v', 'c', 3, 9) 360 if ok: 361 state = 3 362 363 elif state == 3: 364 state = -1 365 ok, c = align_ui('C', 'v', 'kc', 3, 9) 366 if ok: 367 state = 4 368 369 elif state == 4: 370 state = -1 371 ok, d = align_ui('D', 'h', 'kc', 3, 9) 372 if ok: 373 state = 5 374 375 elif state == 5: 376 alignType8Phase2(dev, num_inks, a, b, c, d) 377 state = -1 378 379 return ok 380 381 382def AlignType10(dev, loadpaper_ui, align_ui): 383 pattern = alignType10SetPattern(dev) 384 state = 0 385 386 while state != -1: 387 if state == 0: 388 state = -1 389 ok = loadpaper_ui() 390 if ok: 391 alignType10Phase1(dev) 392 state = 1 393 394 elif state == 1: 395 values = align_ui(pattern, ALIGN_TYPE_LBOW) 396 log.debug(values) 397 alignType10Phase2(dev, values, pattern) 398 state = 2 399 400 elif state == 2: 401 state = -1 402 ok = loadpaper_ui() 403 if ok: 404 alignType10Phase3(dev) 405 406 407def alignType10SetPattern(dev): 408 pattern = None 409 pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID()) 410 log.debug("Pen config=%d" % pen_config) 411 412 if pen_config == AGENT_CONFIG_BLACK_ONLY: 413 pattern = 1 414 415 elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 416 pattern = 2 417 418 elif pen_config in (AGENT_CONFIG_COLOR_AND_PHOTO, AGENT_CONFIG_COLOR_AND_GREY): 419 pattern = 3 420 421 log.debug("Pattern=%d" % pattern) 422 return pattern 423 424 425def alignType10Phase1(dev): 426 dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, 427 pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE) 428 429 dev.closePrint() 430 431 432def alignType10Phase2(dev, values, pattern): 433 i, p = 0, ''.join([pcl.UEL, '\n']) 434 435 for x in values: 436 i += 1 437 if not x: 438 break 439 p = ''.join([p, pcl.ESC, '*o5W\x1a', chr(i), '\x00', chr(pattern), chr(x), '\n']) 440 441 p = ''.join([p, pcl.UEL]) 442 443 dev.printData(p) 444 dev.closePrint() 445 446 447def alignType10Phase3(dev): 448 dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, 449 pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE_VERIFICATION) 450 451 dev.closePrint() 452 453 454def align10and11and14Controls(pattern, align_type): 455 if align_type == ALIGN_TYPE_LIDIL_0_5_4: 456 if pattern == 1: 457 controls = { 'A' : (True, 23), 458 'B' : (True, 9), 459 'C' : (True, 9), 460 'D' : (False, 0), 461 'E' : (False, 0), 462 'F' : (False, 0), 463 'G' : (False, 0), 464 'H' : (False, 0),} 465 elif pattern == 2: # K + color (ii) 466 controls = { 'A' : (True, 17), 467 'B' : (True, 23), 468 'C' : (True, 23), 469 'D' : (True, 23), 470 'E' : (True, 9), 471 'F' : (True, 9), 472 'G' : (True, 9), 473 'H' : (True, 9),} 474 475 elif pattern == 3: # color + photo (iii) 476 controls = { 'A' : (True, 9), 477 'B' : (True, 23), 478 'C' : (True, 23), 479 'D' : (True, 23), 480 'E' : (True, 9), 481 'F' : (True, 9), 482 'G' : (True, 9), 483 'H' : (True, 9),} 484 485 elif align_type == ALIGN_TYPE_LIDIL_DJ_D1600: 486 if pattern == 1: 487 controls = { 'A' : (True, 23), 488 'B' : (True, 9),} 489 elif pattern == 2: # K + color (ii) 490 controls = { 'A' : (True, 23), 491 'B' : (True, 11), 492 'C' : (True, 23), 493 'D' : (True, 23), 494 'E' : (True, 11), 495 'F' : (True, 11), 496 'G' : (True, 11), 497 'H' : (True, 9), 498 'I' : (True, 9),} 499 500 elif pattern == 3: # color + photo (iii) 501 controls = { 'A' : (True, 9), 502 'B' : (True, 23), 503 'C' : (True, 23), 504 'D' : (True, 23), 505 'E' : (True, 9), 506 'F' : (True, 9), 507 'G' : (True, 9), 508 'H' : (True, 9), 509 'I' : (True, 9),} 510 511 else: 512 if pattern == 1: 513 controls = {'A' : (True, 23), 514 'B' : (True, 9), 515 'C' : (True, 9), 516 'D' : (False, 0), 517 'E' : (False, 0), 518 'F' : (False, 0), 519 'G' : (False, 0), 520 'H' : (False, 0),} 521 elif pattern == 2: 522 controls = {'A' : (True, 23), 523 'B' : (True, 17), 524 'C' : (True, 23), 525 'D' : (True, 23), 526 'E' : (True, 9), 527 'F' : (True, 9), 528 'G' : (True, 9), 529 'H' : (True, 9),} 530 531 elif pattern == 3: 532 controls = {'A' : (True, 23), 533 'B' : (True, 9), 534 'C' : (True, 23), 535 'D' : (True, 23), 536 'E' : (True, 9), 537 'F' : (True, 9), 538 'G' : (True, 9), 539 'H' : (True, 9),} 540 541 return controls 542 543 544def AlignType11(dev, loadpaper_ui, align_ui, invalidpen_ui): 545 pattern = alignType11SetPattern(dev) 546 if pattern is None: 547 invalidpen_ui() 548 return 549 550 state = 0 551 while state != -1: 552 if state == 0: 553 state = -1 554 ok = loadpaper_ui() 555 if ok: 556 alignType11Phase1(dev) 557 state = 1 558 559 elif state == 1: 560 values = align_ui(pattern, ALIGN_TYPE_LIDIL_0_5_4) 561 log.debug(values) 562 alignType11Phase2(dev, values, pattern, dev.pen_config) 563 state = 2 564 565 elif state == 2: 566 state = -1 567 ok = loadpaper_ui() 568 if ok: 569 alignType11Phase3(dev) 570 571 572def alignType11SetPattern(dev): 573 pattern = None 574 dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID()) 575 log.debug("Pen config=%d" % dev.pen_config) 576 577 if dev.pen_config in (AGENT_CONFIG_BLACK_ONLY, AGENT_CONFIG_COLOR_ONLY): # (i) 578 pattern = 1 579 580 if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: # (ii) 581 pattern = 2 582 583 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: # (iii) 584 pattern = 3 585 586 elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY: 587 return None 588 589 log.debug("Pattern=%d" % pattern) 590 return pattern 591 592 593def alignType11Phase1(dev): 594 dev.printData(ldl.buildResetPacket()) 595 dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION)) 596 dev.closePrint() 597 598 599def alignType11Phase2(dev, values, pattern, pen_config): 600 active_colors = 0 601 602 if pen_config == AGENT_CONFIG_BLACK_ONLY: 603 active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K 604 values = values[:3] 605 606 elif pen_config == AGENT_CONFIG_COLOR_ONLY: 607 active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR 608 values = values[:3] 609 610 elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 611 active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K | ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR 612 613 elif pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: 614 active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR | ldl.COMMAND_SET_PEN_ALIGNMENT_3_PHOTO 615 616 log.debug("Active colors=0x%x Values=%s" % (active_colors, values)) 617 618 dev.printData(ldl.buildSetPenAlignment3Packet(active_colors, values)) 619 dev.closePrint() 620 621def alignType11Phase3(dev): 622 dev.printData(ldl.buildResetPacket()) 623 dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION_VERIFY)) 624 dev.closePrint() 625 626 627def AlignType13(dev, loadpaper_ui, scanner_align_load_ui): # Auto AiO (Yellowtail) 628 ok = loadpaper_ui() 629 if ok: 630 alignType13Phase1(dev) 631 ok = scanner_align_load_ui() 632 633 return ok 634 635def alignType13Phase1(dev): 636 dev.setPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT) 637 dev.closePML() 638 639calibrationSession = 1 640 641def dataModelHelper(dev, func, ui2): 642 data = status.StatusType10FetchUrl(func, "/Calibration/State") 643 if not data: 644 data = status.StatusType10FetchUrl(func, "/Calibration/State") 645 646 if not data: 647 log.debug("Unable to retrieve calibration state") 648 dev.close() 649 return 0 650 651 if to_bytes_utf8("ParmsRequested") in data: 652 log.error("Restart device and start alignment") 653 dev.close() 654 return 1 655 656 if to_bytes_utf8("404 Not Found") in data: 657 log.error("Device may not support Alignment") 658 dev.close() 659 return 1 660 661 if to_bytes_utf8("Printing<") in data: 662 log.warn("Previous alignment job not completed") 663 dev.close() 664 return 1 665 666 data = status.StatusType10FetchUrl(func, "/DevMgmt/ConsumableConfigDyn.xml") 667 if to_bytes_utf8("AlignmentMode") not in data: 668 log.error("Device may not support Alignment") 669 dev.close() 670 return 1 671 672 if to_bytes_utf8("automatic") in data: 673 log.debug("Device supports automatic calibration") 674 status.StatusType10FetchUrl(func, "/Calibration/Session", "<cal:CalibrationState xmlns:cal=\\\"http://www.hp.com/schemas/imaging/con/cnx/markingagentcalibration/2009/04/08\\\" xmlns:dd=\\\"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/\\\">Printing</cal:CalibrationState>") 675 dev.close() 676 return 0 677 678 if to_bytes_utf8("semiAutomatic") in data: 679 log.debug("Device supports semiAutomatic calibration") 680 status.StatusType10FetchUrl(func, "/Calibration/Session", "<cal:CalibrationState xmlns:cal=\\\"http://www.hp.com/schemas/imaging/con/cnx/markingagentcalibration/2009/04/08\\\" xmlns:dd=\\\"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/\\\">Printing</cal:CalibrationState>") 681 dev.close() 682 return ui2() 683 684 if to_bytes_utf8("manual") in data: 685 log.debug("Device supports manual calibration") 686 data = status.StatusType10FetchUrl(func, "/Calibration/Session", "<cal:CalibrationState xmlns:cal=\\\"http://www.hp.com/schemas/imaging/con/cnx/markingagentcalibration/2009/04/08\\\" xmlns:dd=\\\"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/\\\">Printing</cal:CalibrationState>") 687 import string 688 data = string.split(data, "/Jobs")[1] 689 data = string.split(data, "\r\n")[0] 690 data = "/Jobs" + data 691 data = status.StatusType10FetchUrl(func, data) 692 data = string.split(data, "Session/")[1] 693 data = string.split(data, "<")[0] 694 data = "/Calibration/Session/" + data + "/ManualSelectedPatterns.xml" 695 global calibrationSession 696 calibrationSession = data 697 dev.close() 698 return 0 699 700def AlignType16Manual(dev, a, b, c, d, e, f, g, h, i, j): 701 log.debug("a=%s b=%s c=%s d=%s e=%s f=%s g=%s h=%s i=%s j=%s" % (a, b, c, d, e, f, g, h, i, j )) 702 func = dev.getEWSUrl_LEDM 703 data = status.StatusType10FetchUrl(func, "/Calibration/State") 704 705 if not data: 706 return 0 707 708 while "ParmsRequested" not in data: 709 if "CalibrationValid" in data: 710 return 711 data = status.StatusType10FetchUrl(func, "/Calibration/State") 712 data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- THIS DATA SUBJECT TO DISCLAIMER(S) INCLUDED WITH THE PRODUCT OF ORIGIN. -->\n<ManualSelectedPatterns xmlns=\"http://www.hp.com/schemas/imaging/con/cnx/markingagentcalibration/2009/04/08\" xmlns:locid=\"http://www.hp.com/schemas/imaging/con/ledm/localizationids/2007/10/31/\" xmlns:psdyn=\"http://www.hp.com/schemas/imaging/con/ledm/productstatdyn/2007/10/31\"><SelectedPattern><Identifier><Id>1</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern><SelectedPattern><Identifier><Id>2</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern><SelectedPattern><Identifier><Id>3</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern><SelectedPattern><Identifier><Id>4</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern><SelectedPattern><Identifier><Id>5</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern><SelectedPattern><Identifier><Id>6</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern><SelectedPattern><Identifier><Id>7</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern><SelectedPattern><Identifier><Id>8</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern><SelectedPattern><Identifier><Id>9</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern></SelectedPattern><SelectedPattern><Identifier><Id>10</Id></Identifier><Choice><Identifier><Id>%s</Id></Identifier></Choice></SelectedPattern></ManualSelectedPattern>" % ( a, b, c, d, e, f, g, h, i, j ) 713 data = "PUT %s HTTP/1.1\r\nHost: localhost\r\nUser-Agent: hp\r\nAccept: text/plain\r\nAccept-Language: en-us,en\r\nAccept-Charset:utf-8\r\nContent-Type: text/xml\r\nContent-Length: %s\r\n\r\n" % ( calibrationSession, len(data)) + data 714 data = status.StatusType10FetchUrl(func, calibrationSession, data) 715 716def AlignType15(dev, loadpaper_ui, ui2): 717 if not loadpaper_ui(): 718 return 719 return dataModelHelper(dev, dev.getEWSUrl_LEDM, ui2) 720 721def AlignType15Phase1(dev, ui2): 722 return dataModelHelper(dev, dev.getEWSUrl_LEDM, ui2) 723 724#AlignType 17 is LEDM via FF/CC/0 USB channel 725def AlignType17(dev, loadpaper_ui, ui2): 726 if not loadpaper_ui(): 727 return 728 return dataModelHelper(dev, dev.getUrl_LEDM, ui2) 729 730def AlignType17Phase1(dev, ui2): 731 return dataModelHelper(dev, dev.getUrl_LEDM, ui2) 732 733def AlignType16(dev, loadpaper_ui, align_ui): 734 if not loadpaper_ui(): 735 return 736 dataModelHelper(dev, dev.getEWSUrl_LEDM, align_ui) 737 state, a, b, c, d, e, f, g, h, i, j = 0, 6, 6, 3, 3, 6, 6, 6, 6, 6, 6 738 ok = False 739 while state != -1: 740 if state == 0: 741 state = -1 742 ok, a = align_ui('A', 'v', 'kc', 3, 23) 743 if ok: 744 state = 1 745 746 elif state == 1: 747 state = -1 748 ok, b = align_ui('B', 'h', 'kc', 3, 17) 749 if ok: 750 state = 2 751 752 elif state == 2: 753 state = -1 754 ok, c = align_ui('C', 'v', 'k', 3, 23) 755 if ok: 756 state = 3 757 758 elif state == 3: 759 state = -1 760 ok, d = align_ui('D', 'v', 'c', 3, 23) 761 if ok: 762 state = 4 763 764 elif state == 4: 765 state = -1 766 ok, e = align_ui('E', 'h', 'k', 3, 11) 767 if ok: 768 state = 5 769 770 elif state == 5: 771 state = -1 772 ok, f = align_ui('F', 'h', 'k', 3, 11) 773 if ok: 774 state = 6 775 776 elif state == 6: 777 state = -1 778 ok, g = align_ui('G', 'h', 'k', 3, 11) 779 if ok: 780 state = 7 781 782 elif state == 7: 783 state = -1 784 ok, h = align_ui('H', 'h', 'k', 3, 11) 785 if ok: 786 state = 8 787 788 elif state == 8: 789 state = -1 790 ok, i = align_ui('I', 'v', 'k', 3, 19) 791 if ok: 792 state = 9 793 794 elif state == 9: 795 state = -1 796 ok, j = align_ui('J', 'v', 'k', 3, 19) 797 if ok: 798 state = 10 799 800 elif state == 10: 801 state = -1 802 803 AlignType16Manual(dev, a, b, c, d, e, f, g, h, i, j) 804 805 return ok 806 807def AlignType16Phase1(dev, a, b, c, d, e, f, g, h, i, j): 808 AlignType16Manual(dev, a, b, c, d, e, f, g, h, i, j) 809 810def AlignType14(dev, loadpaper_ui, align_ui, invalidpen_ui): 811 pattern = alignType14SetPattern(dev) 812 if pattern is None: 813 invalidpen_ui() 814 return 815 816 state = 0 817 while state != -1: 818 if state == 0: 819 state = -1 820 ok = loadpaper_ui() 821 if ok: 822 alignType14Phase1(dev) 823 state = 1 824 825 elif state == 1: 826 values = align_ui(pattern, ALIGN_TYPE_LIDIL_DJ_D1600) 827 log.debug(values) 828 alignType14Phase2(dev, values, pattern, dev.pen_config) 829 state = 2 830 831 elif state == 2: 832 state = -1 833 ok = loadpaper_ui() 834 if ok: 835 alignType14Phase3(dev) 836 837 838def alignType14SetPattern(dev): 839 pattern = None 840 dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID()) 841 log.debug("Pen config=%d" % dev.pen_config) 842 843 if dev.pen_config in (AGENT_CONFIG_BLACK_ONLY, AGENT_CONFIG_COLOR_ONLY): # (i) 844 pattern = 1 845 846 if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: # (ii) 847 pattern = 2 848 849 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: # (iii) 850 pattern = 3 851 852 elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY: 853 return None 854 855 log.debug("Pattern=%d" % pattern) 856 return pattern 857 858 859def alignType14Phase1(dev): 860 dev.printData(ldl.buildResetPacket()) 861 dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION)) 862 dev.closePrint() 863 864 865def alignType14Phase2(dev, values, pattern, pen_config): 866 active_colors = 0 867 868 if pen_config == AGENT_CONFIG_BLACK_ONLY: 869 active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K 870 values = values[:2] 871 872 elif pen_config == AGENT_CONFIG_COLOR_ONLY: 873 active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR 874 values = values[:2] 875 876 elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 877 active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K | ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR 878 879 elif pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: 880 active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR | ldl.COMMAND_SET_PEN_ALIGNMENT_3_PHOTO 881 882 log.debug("Active colors=0x%x Values=%s" % (active_colors, values)) 883 884 dev.printData(ldl.buildSetPenAlignment3Packet(active_colors, values)) 885 dev.closePrint() 886 887def alignType14Phase3(dev): 888 dev.printData(ldl.buildResetPacket()) 889 dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION_VERIFY)) 890 dev.closePrint() 891 892 893def alignType2Phase1(dev): # Type 2 (8xx) 894 dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0) 895 dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0) 896 dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0) 897 dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0) 898 dev.closePrint() 899 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align1_8xx.pcl.gz')) 900 901 902def alignType2Phase2(dev, a, b, c, d): # (8xx) 903 dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, (a - 6) * 12) 904 dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, (b - 6) * 12) 905 dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, (c - 3) * 12) 906 dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, (d - 3) * 12) 907 dev.writeEmbeddedPML(pml.OID_MARKING_AGENTS_INITIALIZED, 3) 908 dev.closePrint() 909 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align2_8xx.pcl.gz')) 910 911 912def alignType3Phase1(dev): # Type 3 (9xx) 913 dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0) 914 dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0) 915 dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0) 916 dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0) 917 dev.closePrint() 918 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align1_9xx.pcl.gz')) 919 920 921def alignType3Phase2(dev, a, b, c, d): # Type 3 (9xx) 922 dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, (a - 6) * 12) 923 dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, (6 - b) * 12) 924 dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, (6 - c) * 12) 925 dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, (6 - d) * 6) 926 dev.closePrint() 927 928def alignType3Phase3(dev): # Type 3 (9xx) 929 dev.closePrint() 930 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align3_9xx.pcl.gz')) 931 932 933def alignType3Phase4(dev, zca): # Type 3 (9xx) 934 dev.writeEmbeddedPML(pml.OID_MARKING_AGENTS_INITIALIZED, 3) 935 dev.closePrint() 936 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align2_9xx.pcl.gz')) 937 938 939def alignType4Phase1(dev): # Type 4 (xBow/LIDIL 0.3.8) 940 dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_RESUME_NORMAL_OPERATION)) 941 942 if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID): 943 return 944 945 elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY: 946 ldl_file = 'cbbcal.ldl.gz' 947 948 elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY: 949 ldl_file = 'cbccal.ldl.gz' 950 951 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 952 ldl_file = 'cb2pcal.ldl.gz' 953 954 dev.printData(ldl.buildSetPrinterAlignmentPacket(0, 0, 0, 0)) 955 dev.closePrint() 956 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', ldl_file)) 957 958 959def alignType4Phase2(dev, a, b, c, d, e): # Type 4 (LIDIL 0.3.8) 960 log.debug("A=%d, B=%d, C=%d, D=%d, E=%d" % (a, b, c, d, e)) 961 962 if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID): 963 return 964 965 # ZCA 966 zca = (7 - a) * -48 967 dev.printData(ldl.buildZCAPacket(zca)) 968 969 if dev.pen_config == AGENT_CONFIG_BLACK_ONLY: 970 k_bidi = (6 - b) * 2 971 dev.printData(ldl.buildSetPrinterAlignmentPacket(k_bidi, 0, 0, 0)) 972 973 elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY: 974 cmy_bidi = (6 - b) * 2 975 dev.printData(ldl.buildSetPrinterAlignmentPacket(0, 0, 0, cmy_bidi)) 976 977 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 978 vert = (9 - b) * 2 979 hort = (9 - c) * -2 980 k_bidi = (6 - d) * 2 981 cmy_bidi = (6 - e) * 2 982 983 dev.printData(ldl.buildSetPrinterAlignmentPacket(k_bidi, hort, vert, cmy_bidi)) 984 985 # Set alignment 986 dev.printData(ldl.buildSetPensAlignedPacket()) 987 dev.closePrint() 988 989 990def alignType4Phase3(dev): # Type 4 (LIDIL 0.3.8) 991 if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 992 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cb2pcal_done.ldl.gz')) 993 994 995def alignType5Phase1(dev): # Type 5 (xBow+/LIDIL 0.4.3) 996 dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_RESUME_NORMAL_OPERATION)) 997 998 if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID): 999 return 1000 1001 elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY: 1002 ldl_file = 'cbbcal.ldl.gz' 1003 1004 elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY: 1005 ldl_file = 'cbpcal.ldl.gz' 1006 1007 elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY: 1008 ldl_file = 'cbccal.ldl.gz' 1009 1010 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 1011 ldl_file = 'cb2pcal.ldl.gz' 1012 1013 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: 1014 ldl_file = 'cbcpcal.ldl.gz' 1015 1016 dev.printData(ldl.buildZCAPacket(0)) 1017 dev.printData(ldl.buildColorHortPacket(0)) 1018 dev.printData(ldl.buildColorVertPacket(0)) 1019 dev.printData(ldl.buildBlackVertPacket(0)) 1020 dev.printData(ldl.buildBlackHortPacket(0)) 1021 dev.printData(ldl.buildBlackBidiPacket(0)) 1022 dev.printData(ldl.buildColorBidiPacket(0)) 1023 dev.printData(ldl.buildPhotoHuePacket(0)) 1024 dev.printData(ldl.buildColorHuePacket(0)) 1025 dev.closePrint() 1026 1027 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', ldl_file)) 1028 1029 1030def alignType5Phase2(dev, a, b, c, d, e, f, g): # Type 5 (xBow+/LIDIL 0.4.3) 1031 log.debug("A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d" % (a, b, c, d, e, f, g)) 1032 1033 if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID): 1034 return 1035 1036 # ZCA 1037 zca = (7 - a) * -48 1038 dev.printData(ldl.buildZCAPacket(zca)) 1039 1040 if dev.pen_config == AGENT_CONFIG_BLACK_ONLY: 1041 k_bidi = (6 - b) * 2 1042 dev.printData(ldl.buildBlackBidiPacket(k_bidi)) 1043 1044 elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY: 1045 kcm_bidi = (6 - b) * 2 1046 dev.printData(ldl.buildPhotoBidiPacket(kcm_bidi)) 1047 1048 elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY: 1049 cmy_bidi = (6 - b) * 2 1050 dev.printData(ldl.buildColorBidiPacket(cmy_bidi)) 1051 1052 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 1053 vert = (9 - b) * 2 1054 hort = (9 - c) * -2 1055 k_bidi = (6 - d) * 2 1056 cmy_bidi = (6 - e) * 2 1057 1058 dev.printData(ldl.buildColorHortPacket(0)) 1059 dev.printData(ldl.buildColorVertPacket(0)) 1060 dev.printData(ldl.buildBlackVertPacket(vert)) 1061 dev.printData(ldl.buildBlackHortPacket(hort)) 1062 dev.printData(ldl.buildBlackBidiPacket(k_bidi)) 1063 dev.printData(ldl.buildColorBidiPacket(cmy_bidi)) 1064 1065 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: 1066 vert = (9 - b) * 2 1067 hort = (9 - c) * -2 1068 cmy_bidi = (6 - d) * 2 1069 kcm_bidi = (6 - e) * 2 1070 1071 photo_adj = colorcal.PHOTO_ALIGN_TABLE[f][g] 1072 color_adj = colorcal.COLOR_ALIGN_TABLE[f][g] 1073 1074 dev.printData(ldl.buildPhotoHortPacket(hort)) 1075 dev.printData(ldl.buildPhotoVertPacket(vert)) 1076 dev.printData(ldl.buildColorHortPacket(0)) 1077 dev.printData(ldl.buildColorVertPacket(0)) 1078 dev.printData(ldl.buildPhotoBidiPacket(kcm_bidi)) 1079 dev.printData(ldl.buildColorBidiPacket(cmy_bidi)) 1080 dev.printData(ldl.buildPhotoHuePacket(photo_adj)) 1081 dev.printData(ldl.buildColorHuePacket(color_adj)) 1082 1083 # Set alignment 1084 dev.printData(ldl.buildSetPensAlignedPacket()) 1085 dev.closePrint() 1086 1087 1088def alignType5Phase3(dev): # Type 5 (xBow+/LIDIL 0.4.3) 1089 dev.closePrint() 1090 if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 1091 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', "cb2pcal_done.ldl.gz")) 1092 1093 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: 1094 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', "cbccal_done.ldl.gz")) 1095 1096 1097def alignType6Phase1(dev): # Type 6 (xBow AiO) 1098 dev.printData(ldl.buildPrintInternalPagePacket()) 1099 dev.closePrint() 1100 1101def alignType7Phase1(dev): # Type 7 (xBow VIP) 1102 # Zero out all alignment values 1103 dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0) 1104 1105 dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0) 1106 dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0) 1107 dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0) 1108 1109 dev.writeEmbeddedPML(pml.OID_AGENT3_VERTICAL_ALIGNMENT, 0) 1110 dev.writeEmbeddedPML(pml.OID_AGENT3_HORIZONTAL_ALIGNMENT, 0) 1111 dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, 0) 1112 1113 dev.writeEmbeddedPML(pml.OID_ZCA, 0) 1114 1115 if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID): 1116 return 1117 1118 elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY: 1119 pcl_file = 'crbcal.pcl.gz' 1120 1121 elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY: 1122 pcl_file = 'crpcal.pcl.gz' 1123 1124 elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY: 1125 pcl_file = 'crccal.pcl.gz' 1126 1127 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 1128 pcl_file = 'crcbcal.pcl.gz' 1129 1130 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: 1131 pcl_file = 'crcpcal.pcl.gz' 1132 1133 dev.closePrint() 1134 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', pcl_file)) 1135 1136 1137def alignType7Phase2(dev, a, b, c, d, e, f, g): # Type 7 (xBow VIP) 1138 log.debug("A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d" % (a, b, c, d, e, f, g)) 1139 1140 # ZCA 1141 zca = (7 - a) * -12 1142 dev.writeEmbeddedPML(pml.OID_ZCA, zca) 1143 1144 if dev.pen_config == AGENT_CONFIG_BLACK_ONLY: 1145 k_bidi = (6 - b) * 6 1146 dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, k_bidi) 1147 1148 elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY: 1149 kcm_bidi = (6 - b) * 6 1150 dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, kcm_bidi) 1151 1152 elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY: 1153 cmy_bidi = (6 - b) * 6 1154 dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi) 1155 1156 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK: 1157 vert = (9 - b) * 6 1158 hort = (9 - c) * -6 1159 k_bidi = (6 - d) * 6 1160 cmy_bidi = (6 - e) * 6 1161 1162 dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, k_bidi) 1163 dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi) 1164 dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, hort) 1165 dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, vert) 1166 1167 elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO: 1168 vert = (9 - b) * 6 1169 hort = (9 - c) * -6 1170 cmy_bidi = (6 - d) * 6 1171 kcm_bidi = (6 - e) * 6 1172 1173 photo_adj = colorcal.PHOTO_ALIGN_TABLE[f][g] 1174 color_adj = colorcal.COLOR_ALIGN_TABLE[f][g] 1175 1176 x = (color_adj << 8) + photo_adj 1177 1178 dev.writeEmbeddedPML(pml.OID_COLOR_CALIBRATION_SELECTION, x) 1179 1180 dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi) 1181 dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, kcm_bidi) 1182 dev.writeEmbeddedPML(pml.OID_AGENT3_HORIZONTAL_ALIGNMENT, hort) 1183 dev.writeEmbeddedPML(pml.OID_AGENT3_VERTICAL_ALIGNMENT, vert) 1184 1185 dev.closePrint() 1186 1187def alignType7Phase3(dev): # Type 7 (xBow VIP) 1188 dev.closePrint() 1189 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', "crcaldone.pcl.gz")) 1190 1191 1192def alignType8Phase1(dev): # 450 1193 pens = dev.getStatusFromDeviceID()['agents'] 1194 pen_types = [pens[x]['type'] for x in range(len(pens))] 1195 1196 if AGENT_TYPE_KCM in pen_types: 1197 f, num_inks = 'align6_450.pcl.gz', 6 1198 else: 1199 f, num_inks = 'align4_450.pcl.gz', 4 1200 1201 dev.closePrint() 1202 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', f)) 1203 1204 return num_inks 1205 1206 1207def alignType8Phase2(dev, num_inks, a, b, c, d): # 450 1208 align_values1 = {1 : '\x00\x00\x18', 1209 2 : '\x00\x00\x12', 1210 3 : '\x00\x00\x0c', 1211 4 : '\x00\x00\x06', 1212 5 : '\x00\x00\x00', 1213 6 : '\x01\x00\x06', 1214 7 : '\x01\x00\x0c', 1215 8 : '\x01\x00\x12', 1216 9 : '\x01\x00\x18', 1217 } 1218 1219 align_values2 = {1 : '\x00\x00\x12', 1220 2 : '\x00\x00\x0c', 1221 3 : '\x00\x00\x06', 1222 4 : '\x00\x00\x00', 1223 5 : '\x01\x00\x06', 1224 6 : '\x01\x00\x0c', 1225 7 : '\x01\x00\x12', 1226 8 : '\x01\x00\x18', 1227 9 : '\x01\x00\x1e', 1228 } 1229 1230 align_values3 = {1 : '\x00\x00\x24', 1231 2 : '\x00\x00\x18', 1232 3 : '\x00\x00\x12', 1233 4 : '\x00\x00\x06', 1234 5 : '\x00\x00\x00', 1235 6 : '\x01\x00\x06', 1236 7 : '\x01\x00\x12', 1237 8 : '\x01\x00\x18', 1238 9 : '\x01\x00\x24', 1239 } 1240 1241 if num_inks == 4: 1242 s = ''.join([pcl.UEL, 1243 '@PJL ENTER LANGUAGE=PCL3GUI\n', 1244 pcl.RESET, 1245 pcl.ESC, '*o5W\x1a\x01', align_values1[a], 1246 pcl.ESC, '*o5W\x1a\x02', align_values2[a], 1247 pcl.ESC, '*o5W\x1a\x03', align_values1[b], 1248 pcl.ESC, '*o5W\x1a\x04', align_values1[b], 1249 pcl.ESC, '*o5W\x1a\x08', align_values1[c], 1250 pcl.ESC, '*o5W\x1a\x07', align_values1[d], 1251 pcl.RESET, 1252 pcl.UEL]) 1253 1254 else: # 6 1255 s = ''.join([pcl.UEL, 1256 '@PJL ENTER LANGUAGE=PCL3GUI\n', 1257 pcl.RESET, 1258 pcl.ESC, '*o5W\x1a\x05', align_values1[a], 1259 pcl.ESC, '*o5W\x1a\x06', align_values3[a], 1260 pcl.ESC, '*o5W\x1a\x03', align_values1[b], 1261 pcl.ESC, '*o5W\x1a\x04', align_values1[b], 1262 pcl.ESC, '*o5W\x1a\x0a', align_values1[c], 1263 pcl.ESC, '*o5W\x1a\x09', align_values1[d], 1264 pcl.RESET, 1265 pcl.UEL]) 1266 1267 dev.printData(s) 1268 dev.closePrint() 1269 1270 1271def AlignType12(dev, loadpaper_ui): 1272 if loadpaper_ui(): 1273 dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE) 1274 dev.closePML() 1275 1276# ********************** Clean ********************** 1277def cleanVerifyPage(dev): 1278 # By default Clean verification page is Enabled 1279 return True 1280 1281def cleaning(dev, clean_type, level1, level2, level3, 1282 loadpaper_ui, dlg1, dlg2, dlg3, wait_ui, verify_page = cleanVerifyPage): 1283 1284 state = 0 1285 level = 0 1286 print_verify_page = verify_page(dev) 1287 while state != -1: 1288 if state == 0: # Initial level1 print 1289 state = 1 1290 if clean_type == CLEAN_TYPE_PCL_WITH_PRINTOUT: 1291 ok = loadpaper_ui() 1292 if not ok: 1293 state = -1 1294 elif clean_type == CLEAN_TYPE_LEDM and print_verify_page == False: 1295 ok = loadpaper_ui("Clean functinality conformation...", "Clean Conformation") 1296 if not ok: 1297 state = -1 1298 1299 elif state == 1: # Do level 1 1300 level1(dev) 1301 if clean_type == CLEAN_TYPE_LEDM and print_verify_page == False : 1302 state = 3 1303 else: 1304 state = 2 1305 1306 elif state == 2: # Load plain paper 1307 state = -1 1308 ok = loadpaper_ui() 1309 if ok: 1310 state = 3 1311 1312 elif state == 3: # Print test page 1313 state = 4 1314 if clean_type == CLEAN_TYPE_LEDM: 1315 cleanTypeVerify(dev,1, print_verify_page) 1316 else: 1317 print_clean_test_page(dev) 1318 1319 elif state == 4: # Need level 2? 1320 state = -1 1321 if print_verify_page == False : 1322 ok = dlg1("Clean Level 1 is Completed.") 1323 else: 1324 ok = dlg1() 1325 1326 if ok: 1327 state = 5 1328 1329 elif state == 5: # Do level 2 1330 level2(dev) 1331 if clean_type == CLEAN_TYPE_LEDM and print_verify_page == False : 1332 state = 7 1333 else: 1334 state = 6 1335 1336 elif state == 6: # Load plain paper 1337 state = -1 1338 ok = loadpaper_ui() 1339 if ok: 1340 state = 7 1341 1342 elif state == 7: # Print test page 1343 state = 8 1344 if clean_type == CLEAN_TYPE_LEDM: 1345 cleanTypeVerify(dev,2,print_verify_page) 1346 else: 1347 print_clean_test_page(dev) 1348 1349 elif state == 8: # Need level 3? 1350 state = -1 1351 if print_verify_page == False : 1352 ok = dlg2("Clean Level 2 is Completed.") 1353 else: 1354 ok = dlg2() 1355 1356 if ok: 1357 state = 9 1358 1359 elif state == 9: # Do level 3 1360 level3(dev) 1361 state = 10 1362 if clean_type == CLEAN_TYPE_LEDM and print_verify_page == False : 1363 state = 11 1364 else: 1365 state = 10 1366 1367 elif state == 10: # Load plain paper 1368 state = -1 1369 ok = loadpaper_ui() 1370 if ok: 1371 state = 11 1372 1373 elif state == 11: # Print test page 1374 state = 12 1375 if clean_type == CLEAN_TYPE_LEDM: 1376 cleanTypeVerify(dev,3,print_verify_page) 1377 else: 1378 print_clean_test_page(dev) 1379 1380 elif state == 12: 1381 state = -1 1382 if print_verify_page == False : 1383 dlg3("Level 3 cleaning complete. Check this page to see if the problem was fixed. replace the print cartridge(s)") 1384 else: 1385 dlg3() 1386 1387 return ok 1388 1389 1390def print_clean_test_page(dev): 1391 dev.closePrint() 1392 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 1393 'ps', 'clean_page.pdf.gz'), raw=False) 1394 1395def cleanType1(dev): # PCL, Level 1 1396 dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_CLEAN) 1397 dev.closePrint() 1398 1399def primeType1(dev): # PCL, Level 2 1400 dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_PRIME) 1401 dev.closePrint() 1402 1403def wipeAndSpitType1(dev): # PCL, Level 3 1404 dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_WIPE_AND_SPIT) 1405 dev.closePrint() 1406 1407def cleanType2(dev): # LIDIL, Level 1 1408 dev.printData(ldl.buildResetPacket()) 1409 dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, 1410 ldl.COMMAND_HANDLE_PEN, 1411 ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL1)) 1412 dev.closePrint() 1413 1414def primeType2(dev): # LIDIL, Level 2 1415 dev.printData(ldl.buildResetPacket()) 1416 dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, 1417 ldl.COMMAND_HANDLE_PEN, 1418 ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL2)) 1419 dev.closePrint() 1420 1421def wipeAndSpitType2(dev): # LIDIL, Level 3 1422 dev.printData(ldl.buildResetPacket()) 1423 dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, 1424 ldl.COMMAND_HANDLE_PEN, 1425 ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL3)) 1426 dev.closePrint() 1427 1428def setCleanType(name): 1429 try: 1430 xml = CleanXML %(name) 1431 except(UnicodeEncodeError, UnicodeDecodeError): 1432 log.error("Unicode Error") 1433 return xml 1434 1435 1436def getCleanLedmCapacity(dev): 1437 data_fp = StringIO() 1438 status_type = dev.mq.get('status-type', STATUS_TYPE_NONE) 1439 1440 if status_type == STATUS_TYPE_LEDM: 1441 func = dev.getEWSUrl_LEDM 1442 elif status_type == STATUS_TYPE_LEDM_FF_CC_0: 1443 func = dev.getUrl_LEDM 1444 else: 1445 log.error("Not an LEDM status-type: %d" % status_type) 1446 return "" 1447 1448 data = func(LEDM_CLEAN_CAP_XML, data_fp) 1449 if data: 1450 data = data.split(b'\r\n\r\n', 1)[1] 1451 if data: 1452 data = status.ExtractXMLData(data) 1453 return data 1454 1455 1456def isCleanTypeLedmWithPrint(dev): 1457 IPCap_data = getCleanLedmCapacity(dev) 1458 1459 if LEDM_CLEAN_VERIFY_PAGE_JOB in IPCap_data: 1460 return True 1461 else: 1462 return False 1463 1464 1465def cleanTypeLedm(dev): #LEDM, level 1 1466 xml = setCleanType('cleaningPage') 1467 dev.post(status_xml, xml) 1468 dev.closePrint() 1469 1470def cleanTypeLedm1(dev): #LEDM, level 2 1471 xml = setCleanType('cleaningPageLevel1') 1472 dev.post(status_xml, xml) 1473 dev.closePrint() 1474 1475def cleanTypeLedm2(dev): #LEDM, level 3 1476 xml = setCleanType('cleaningPageLevel2') 1477 dev.post(status_xml, xml) 1478 dev.closePrint() 1479 1480def cleanTypeVerify(dev,level, print_verification_page = True): #LEDM Test Page 1481 state = 0 1482 timeout = 0 1483 status_type = dev.mq.get('status-type', STATUS_TYPE_NONE) 1484 xml = setCleanType('cleaningVerificationPage') 1485 1486 if status_type == STATUS_TYPE_LEDM: 1487 func = dev.getEWSUrl_LEDM 1488 1489 elif status_type == STATUS_TYPE_LEDM_FF_CC_0: 1490 func = dev.getUrl_LEDM 1491 1492 else: 1493 log.error("Not an LEDM status-type: %d" % status_type) 1494 1495 print("Performing level %d cleaning...." % level) 1496 1497 while state != -1: 1498 status_block = status.StatusType10Status(func) 1499 1500 if status_block['status-code'] == STATUS_PRINTER_IDLE: # Printer Ready 1501 state = -1 1502 if print_verification_page: 1503 dev.post(status_xml, xml) 1504 else: 1505 time.sleep(8) 1506 timeout += 1 1507 1508 if timeout > 20: 1509 log.error("Timeout waiting for Clean to finish.") 1510 sys.exit(0) 1511 1512 1513 1514# ********************** Color Cal ********************** 1515 1516 1517def colorCalType1(dev, loadpaper_ui, colorcal_ui, photopenreq_ui): # 450 1518 value, state = 4, 0 1519 ok = False 1520 while state != -1: 1521 1522 if state == 0: 1523 if colorCalType1PenCheck(dev): 1524 state = 1 1525 else: 1526 state = 100 1527 1528 elif state == 1: 1529 state = -1 1530 ok = loadpaper_ui() 1531 if ok: 1532 colorCalType1Phase1(dev) 1533 state = 2 1534 1535 elif state == 2: 1536 state = -1 1537 ok, value = colorcal_ui() 1538 if ok: 1539 state = 3 1540 1541 elif state == 3: 1542 colorCalType1Phase2(dev, value) 1543 state = -1 1544 1545 elif state == 100: 1546 ok = False 1547 photopenreq_ui() 1548 state = -1 1549 1550 return ok 1551 1552 1553def colorCalType1PenCheck(dev): # 450 1554 pens = dev.getStatusFromDeviceID()['agents'] 1555 pen_types = [pens[x]['type'] for x in range(len(pens))] 1556 1557 if AGENT_TYPE_KCM in pen_types: 1558 return True 1559 1560 else: 1561 log.error("Cannot perform color calibration with no photo pen installed.") 1562 return False 1563 1564 1565def colorCalType1Phase1(dev): # 450 1566 dev.closePrint() 1567 dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'colorcal1_450.pcl.gz')) 1568 1569 1570def colorCalType1Phase2(dev, value): # 450 1571 color_cal = {1 : ('\x0f\x3c', '\x17\x0c'), 1572 2 : ('\x10\xcc', '\x15\x7c'), 1573 3 : ('\x12\x5c', '\x13\xec'), 1574 4 : ('\x13\xec', '\x12\x5c'), 1575 5 : ('\x15\x7c', '\x10\xcc'), 1576 6 : ('\x17\x0c', '\x0f\x3c'), 1577 7 : ('\x18\x9c', '\x0d\xac'), 1578 } 1579 1580 s = ''.join([pcl.UEL, 1581 '@PJL ENTER LANGUAGE=PCL3GUI\n', 1582 pcl.RESET, 1583 pcl.ESC, '*o5W\x1a\x0c\x00', color_cal[value][0], 1584 pcl.ESC, '*o5W\x1a\x0b\x00', color_cal[value][1], 1585 pcl.RESET, 1586 pcl.UEL]) 1587 1588 dev.printData(s) 1589 dev.closePrint() 1590 1591# 1592# COLOR CAL TYPE 2 1593# 1594 1595def colorCalType2(dev, loadpaper_ui, colorcal_ui, photopenreq_ui): 1596 value, state = 4, 0 1597 ok = True 1598 while state != -1: 1599 1600 if state == 0: 1601 if colorCalType2PenCheck(dev): 1602 state = 1 1603 else: 1604 state = 100 1605 1606 elif state == 1: 1607 state = -1 1608 ok = loadpaper_ui() 1609 if ok: 1610 colorCalType2Phase1(dev) 1611 state = 2 1612 1613 elif state == 2: 1614 state = -1 1615 ok, value = colorcal_ui() 1616 if ok: 1617 state = 3 1618 1619 elif state == 3: 1620 colorCalType2Phase2(dev, value) 1621 state = -1 1622 1623 elif state == 100: 1624 photopenreq_ui() 1625 ok = False 1626 state = -1 1627 1628 return ok 1629 1630def colorCalType2PenCheck(dev): 1631 pens = dev.getStatusFromDeviceID()['agents'] 1632 pen_types = [pens[x]['type'] for x in range(len(pens))] 1633 1634 if not AGENT_TYPE_NONE in pen_types: 1635 return True 1636 1637 else: 1638 log.error("Cannot perform color calibration with pens missing.") 1639 return False 1640 1641def colorCalType2Phase1(dev): 1642 dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, 1643 pml.PRINT_INTERNAL_PAGE_COLOR_CAL) 1644 1645 dev.closePrint() 1646 1647 1648def colorCalType2Phase2(dev, value): 1649 c = colorcal.COLOR_CAL_TABLE 1650 p = ''.join(['\x1b&b19WPML \x04\x00\x06\x01\x04\x01\x05\x01\t\x08\x04', 1651 chr(c[value*4]+100), chr(c[value*4+1]+100), 1652 chr(c[value*4+2]+100), chr(c[value*4+3]+100), 1653 '\x1b%-12345X']) 1654 1655 dev.printData(p) 1656 dev.closePrint() 1657 1658 1659# 1660# COLOR CAL TYPE 3 1661# 1662 1663def colorCalType3(dev, loadpaper_ui, colorcal_ui, photopenreq_ui): 1664 value, state = 4, 0 1665 ok = True 1666 while state != -1: 1667 1668 if state == 0: 1669 if colorCalType3PenCheck(dev): 1670 state = 1 1671 else: 1672 state = 100 1673 1674 elif state == 1: 1675 state = -1 1676 ok = loadpaper_ui() 1677 if ok: 1678 colorCalType3Phase1(dev) 1679 state = 2 1680 1681 elif state == 2: 1682 state = -1 1683 ok, valueA = colorcal_ui('A', 21) 1684 if ok: 1685 state = 3 1686 1687 elif state == 3: 1688 state = -1 1689 ok, valueB = colorcal_ui('B', 21) 1690 if ok: 1691 state = 4 1692 1693 elif state == 4: 1694 colorCalType3Phase2(dev, valueA, valueB) 1695 state = -1 1696 1697 elif state == 100: 1698 photopenreq_ui() 1699 ok = False 1700 state = -1 1701 1702 return ok 1703 1704def colorCalType3PenCheck(dev): 1705 pens = dev.getStatusFromDeviceID()['agents'] 1706 pen_types = [pens[x]['type'] for x in range(len(pens))] 1707 1708 if AGENT_TYPE_KCM in pen_types or \ 1709 AGENT_TYPE_BLUE in pen_types: 1710 return True 1711 1712 else: 1713 log.error("Cannot perform color calibration with no photo (or photo blue) pen installed.") 1714 return False 1715 1716 1717def colorCalType3Phase1(dev): 1718 dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, 1719 pml.PRINT_INTERNAL_PAGE_COLOR_CAL) 1720 dev.closePrint() 1721 1722def colorCalType3Phase2(dev, A, B): 1723 photo_adj = colorcal.PHOTO_ALIGN_TABLE[A-1][B-1] 1724 color_adj = colorcal.COLOR_ALIGN_TABLE[A-1][B-1] 1725 adj_value = (color_adj << 8) + photo_adj 1726 1727 dev.writeEmbeddedPML(pml.OID_COLOR_CALIBRATION_SELECTION, adj_value) 1728 dev.closePrint() 1729 1730def colorCalType4(dev, loadpaper_ui, colorcal_ui, wait_ui): 1731 state = 0 1732 ok = True 1733 1734 while state != -1: 1735 if state == 0: 1736 state = -1 1737 ok = loadpaper_ui() 1738 if ok: 1739 colorCalType4Phase1(dev) 1740 state = 2 1741 1742 elif state == 2: 1743 state = -1 1744 #wait_ui(90) 1745 ok, values = colorcal_ui() 1746 if ok: 1747 state = 3 1748 1749 elif state == 3: 1750 colorCalType4Phase2(dev, values) 1751 #wait_ui(5) 1752 state = 4 1753 1754 elif state == 4: 1755 state = -1 1756 ok = loadpaper_ui() 1757 if ok: 1758 colorCalType4Phase3(dev) 1759 state = -1 1760 1761 return ok 1762 1763 1764def colorCalType4Phase1(dev): 1765 dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, 1766 pml.PRINT_INTERNAL_PAGE_COLOR_CAL) 1767 1768 dev.closePML() 1769 1770 1771def colorCalType4AdjValue(value): 1772 if value >= 100: 1773 return 200 1774 return value+100 1775 1776 1777def colorCalType4Phase2(dev, values): 1778 if -1 in values: 1779 Cadj, Madj, Yadj, cadj, madj, kadj = 244, 244, 244, 244, 244, 244 1780 else: 1781 sel1, sel2, sel3, sel4 = values 1782 tmp1 = colorcal.TYPE_4_C_TABLE[sel1][sel2] 1783 tmp2 = colorcal.TYPE_4_LC_TABLE[sel3][sel4] 1784 1785 Cadj = colorCalType4AdjValue(tmp1) 1786 cadj = colorCalType4AdjValue(tmp1+tmp2) 1787 1788 tmp1 = colorcal.TYPE_4_M_TABLE[sel1][sel2] 1789 tmp2 = colorcal.TYPE_4_LM_TABLE[sel3][sel4] 1790 1791 Madj = colorCalType4AdjValue(tmp1) 1792 madj = colorCalType4AdjValue(tmp1+tmp2) 1793 1794 Yadj = colorCalType4AdjValue(colorcal.TYPE_4_Y_TABLE[sel1][sel2]) 1795 kadj = colorCalType4AdjValue(0) 1796 1797 log.debug("C=%d, M=%d, Y=%d, c=%d, m=%d, k=%d\n" % (Cadj, Madj, Yadj, cadj, madj, kadj)) 1798 1799 dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_1, 1800 kadj) 1801 1802 dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_2, 1803 Cadj) 1804 1805 dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_3, 1806 Madj) 1807 1808 dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_4, 1809 Yadj) 1810 1811 dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_5, 1812 cadj) 1813 1814 dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_6, 1815 madj) 1816 1817 dev.closePML() 1818 1819 1820def colorCalType4Phase3(dev): 1821 dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, 1822 pml.PRINT_INTERNAL_PAGE_COLOR_PALETTE_CMYK_PAGE) 1823 1824 dev.closePML() 1825 1826 1827def colorCalType5(dev, loadpaper_ui): 1828 if loadpaper_ui(): 1829 dev.printData("""\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 20;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X""") 1830 dev.closePrint() 1831 1832 1833def colorCalType6(dev, loadpaper_ui): 1834 if loadpaper_ui(): 1835 dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL) 1836 dev.closePML() 1837 1838def colorCalType7(dev, loadpaper_ui): 1839 if loadpaper_ui(): 1840 dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_AUTOMATIC_COLOR_CALIBRATION) 1841 dev.closePML() 1842 1843# ********************** LF Cal ********************** 1844 1845def linefeedCalType1(dev, loadpaper_ui): 1846 if loadpaper_ui(): 1847 dev.printData("""\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 3;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X""") 1848 dev.closePrint() 1849 1850def linefeedCalType2(dev, loadpaper_ui): 1851 if loadpaper_ui(): 1852 dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_LINEFEED_CALIBRATION) 1853 dev.closePML() 1854 1855 1856# ********************** PQ Diag ********************** 1857 1858def printQualityDiagType1(dev, loadpaper_ui): 1859 if loadpaper_ui(): 1860 dev.printData("""\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 14;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X""") 1861 dev.closePrint() 1862 1863def printQualityDiagType2(dev, loadpaper_ui): 1864 if loadpaper_ui(): 1865 dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_PRINT_QUALITY_DIAGNOSTIC) 1866 dev.closePML() 1867