home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / lib / hplip / base / maint.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2007-04-29  |  33.9 KB  |  1,366 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. from g import *
  5. from codes import *
  6. import status
  7. import pml
  8. from prnt import pcl, ldl, colorcal
  9.  
  10. def AlignType1(dev, loadpaper_ui):
  11.     ok = loadpaper_ui()
  12.     if ok:
  13.         dev.writeEmbeddedPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT, style = 0, direct = False)
  14.         dev.closePrint()
  15.     
  16.     return ok
  17.  
  18.  
  19. def AlignType2(dev, loadpaper_ui, align_ui, bothpens_ui):
  20.     (state, a, b, c, d) = (0, 6, 6, 3, 3)
  21.     ok = False
  22.     while state != -1:
  23.         if state == 0:
  24.             state = 1
  25.             pens = dev.getStatusFromDeviceID()['agents']
  26.             pen_types = [ pens[x] for x in range(len(pens)) ]
  27.             if AGENT_TYPE_NONE in pen_types:
  28.                 log.error('Cannot perform alignment with 0 or 1 pen installed.')
  29.                 state = 100
  30.             
  31.         AGENT_TYPE_NONE in pen_types
  32.         if state == 1:
  33.             state = -1
  34.             ok = loadpaper_ui()
  35.             if ok:
  36.                 state = 2
  37.             
  38.         ok
  39.         if state == 2:
  40.             state = -1
  41.             alignType2Phase1(dev)
  42.             (ok, a) = align_ui('A', 'h', 'kc', 2, 11)
  43.             if ok:
  44.                 state = 3
  45.             
  46.         ok
  47.         if state == 3:
  48.             state = -1
  49.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  50.             if ok:
  51.                 state = 4
  52.             
  53.         ok
  54.         if state == 4:
  55.             state = -1
  56.             (ok, c) = align_ui('C', 'v', 'kc', 2, 5)
  57.             if ok:
  58.                 state = 5
  59.             
  60.         ok
  61.         if state == 5:
  62.             state = -1
  63.             (ok, d) = align_ui('D', 'v', 'c', 2, 5)
  64.             if ok:
  65.                 state = 6
  66.             
  67.         ok
  68.         if state == 6:
  69.             ok = loadpaper_ui()
  70.             state = -1
  71.             continue
  72.         None if ok else []
  73.         if state == 100:
  74.             ok = False
  75.             bothpens_ui()
  76.             state = -1
  77.             continue
  78.     return ok
  79.  
  80.  
  81. def AlignType3(dev, loadpaper_ui, align_ui, paperedge_ui, align_type):
  82.     (state, a, b, c, d, zca) = (0, 6, 6, 3, 3, 6)
  83.     ok = False
  84.     while state != -1:
  85.         if state == 0:
  86.             state = -1
  87.             ok = loadpaper_ui()
  88.             if ok:
  89.                 alignType3Phase1(dev)
  90.                 state = 1
  91.             
  92.         ok
  93.         if state == 1:
  94.             state = -1
  95.             (ok, a) = align_ui('A', 'h', 'kc', 2, 11)
  96.             if ok:
  97.                 state = 2
  98.             
  99.         ok
  100.         if state == 2:
  101.             state = -1
  102.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  103.             if ok:
  104.                 state = 3
  105.             
  106.         ok
  107.         if state == 3:
  108.             state = -1
  109.             (ok, c) = align_ui('C', 'v', 'k', 2, 11)
  110.             if ok:
  111.                 state = 4
  112.             
  113.         ok
  114.         if state == 4:
  115.             state = -1
  116.             (ok, d) = align_ui('D', 'v', 'kc', 2, 11)
  117.             if ok:
  118.                 state = 5
  119.             
  120.         ok
  121.         if state == 5:
  122.             state = -1
  123.             alignType3Phase2(dev, a, b, c, d)
  124.         None if align_type == 9 else ok
  125.         if state == 6:
  126.             state = -1
  127.             alignType3Phase3(dev)
  128.             (ok, zca) = paperedge_ui(13)
  129.             if ok:
  130.                 state = 7
  131.             
  132.         ok
  133.         if state == 7:
  134.             ok = loadpaper_ui()
  135.             if ok:
  136.                 alignType3Phase4(dev, zca)
  137.             
  138.             state = -1
  139.             continue
  140.     return ok
  141.  
  142.  
  143. def AlignxBow(dev, align_type, loadpaper_ui, align_ui, paperedge_ui, invalidpen_ui, coloradj_ui):
  144.     (state, statepos) = (0, 0)
  145.     user_cancel_states = [
  146.         1000,
  147.         -1]
  148.     (a, b, c, d, e, f, g) = (0, 0, 0, 0, 0, 0, 0)
  149.     error_states = [
  150.         -1]
  151.     ok = False
  152.     dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  153.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  154.         state = 100
  155.         states = [
  156.             -1]
  157.     elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  158.         state = 0
  159.         states = [
  160.             2,
  161.             200,
  162.             3,
  163.             -1]
  164.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  165.         state = 0
  166.         states = [
  167.             2,
  168.             200,
  169.             3,
  170.             -1]
  171.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  172.         state = 0
  173.         states = [
  174.             2,
  175.             300,
  176.             3,
  177.             -1]
  178.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  179.         state = 0
  180.         states = [
  181.             2,
  182.             400,
  183.             500,
  184.             600,
  185.             700,
  186.             3,
  187.             4,
  188.             -1]
  189.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  190.         state = 0
  191.         states = [
  192.             2,
  193.             400,
  194.             500,
  195.             600,
  196.             700,
  197.             800,
  198.             900,
  199.             3,
  200.             4,
  201.             -1]
  202.     
  203.     while state != -1:
  204.         if state == 0:
  205.             ok = loadpaper_ui()
  206.             if ok:
  207.                 if align_type == 4:
  208.                     alignType4Phase1(dev)
  209.                 elif align_type == 5:
  210.                     alignType5Phase1(dev)
  211.                 elif align_type == 7:
  212.                     alignType7Phase1(dev)
  213.                 else:
  214.                     statepos = 0
  215.                     states = error_states
  216.             else:
  217.                 statepos = 0
  218.                 states = user_cancel_states
  219.         elif state == 2:
  220.             (ok, a) = paperedge_ui(13)
  221.             if not ok:
  222.                 statepos = 0
  223.                 states = user_cancel_states
  224.             
  225.         elif state == 3:
  226.             if align_type == 4:
  227.                 alignType4Phase2(dev, a, b, c, d, e)
  228.             elif align_type == 5:
  229.                 alignType5Phase2(dev, a, b, c, d, e, f, g)
  230.             else:
  231.                 alignType7Phase2(dev, a, b, c, d, e, f, g)
  232.         elif state == 4:
  233.             ok = loadpaper_ui()
  234.             if ok:
  235.                 if align_type == 4:
  236.                     alignType4Phase3(dev)
  237.                 elif align_type == 5:
  238.                     alignType5Phase3(dev)
  239.                 else:
  240.                     alignType7Phase3(dev)
  241.             else:
  242.                 statepos = 0
  243.                 states = user_cancel_states
  244.         elif state == 100:
  245.             invalidpen_ui()
  246.             state = -1
  247.         elif state == 200:
  248.             (ok, b) = align_ui('B', 'v', 'k', 2, 11)
  249.             if not ok:
  250.                 statepos = 0
  251.                 states = user_cancel_states
  252.             
  253.         elif state == 300:
  254.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  255.             if not ok:
  256.                 statepos = 0
  257.                 states = user_cancel_states
  258.             
  259.         elif state == 400:
  260.             (ok, b) = align_ui('B', 'h', 'kc', 2, 17)
  261.             if not ok:
  262.                 statepos = 0
  263.                 states = user_cancel_states
  264.             
  265.         elif state == 500:
  266.             (ok, c) = align_ui('C', 'v', 'kc', 2, 17)
  267.             if not ok:
  268.                 statepos = 0
  269.                 states = user_cancel_states
  270.             
  271.         elif state == 600:
  272.             (ok, d) = align_ui('D', 'v', 'k', 2, 11)
  273.             if not ok:
  274.                 statepos = 0
  275.                 states = user_cancel_states
  276.             
  277.         elif state == 700:
  278.             (ok, e) = align_ui('E', 'v', 'kc', 2, 11)
  279.             if not ok:
  280.                 statepos = 0
  281.                 states = user_cancel_states
  282.             
  283.         elif state == 800:
  284.             (ok, f) = coloradj_ui('F', 21)
  285.             if not ok:
  286.                 statepos = 0
  287.                 states = user_cancel_states
  288.             
  289.         elif state == 900:
  290.             (ok, f) = coloradj_ui('G', 21)
  291.             if not ok:
  292.                 statepos = 0
  293.                 states = user_cancel_states
  294.             
  295.         elif state == 1000:
  296.             ok = False
  297.             log.warning('Alignment canceled at user request.')
  298.         
  299.         state = states[statepos]
  300.         statepos += 1
  301.     return ok
  302.  
  303.  
  304. def AlignType6(dev, ui1, ui2, loadpaper_ui):
  305.     state = 0
  306.     ok = False
  307.     while state != -1:
  308.         if state == 0:
  309.             state = 2
  310.             accept = ui1()
  311.             if not accept:
  312.                 state = 1
  313.             
  314.         accept
  315.         if state == 1:
  316.             state = -1
  317.             ok = loadpaper_ui()
  318.             if ok:
  319.                 alignType6Phase1(dev)
  320.                 state = 2
  321.             
  322.         ok
  323.         if state == 2:
  324.             ui2()
  325.             state = -1
  326.             continue
  327.     return ok
  328.  
  329.  
  330. def AlignType8(dev, loadpaper_ui, align_ui):
  331.     (state, a, b, c, d) = (0, 5, 5, 5, 5)
  332.     ok = False
  333.     while state != -1:
  334.         if state == 0:
  335.             state = -1
  336.             ok = loadpaper_ui()
  337.             if ok:
  338.                 num_inks = alignType8Phase1(dev)
  339.                 state = 1
  340.             
  341.         ok
  342.         if state == 1:
  343.             state = -1
  344.             (ok, a) = align_ui('A', 'v', 'k', 3, 9)
  345.             if ok:
  346.                 state = 2
  347.             
  348.         ok
  349.         if state == 2:
  350.             state = -1
  351.             (ok, b) = align_ui('B', 'v', 'c', 3, 9)
  352.             if ok:
  353.                 state = 3
  354.             
  355.         ok
  356.         if state == 3:
  357.             state = -1
  358.             (ok, c) = align_ui('C', 'v', 'kc', 3, 9)
  359.             if ok:
  360.                 state = 4
  361.             
  362.         ok
  363.         if state == 4:
  364.             state = -1
  365.             (ok, d) = align_ui('D', 'h', 'kc', 3, 9)
  366.             if ok:
  367.                 state = 5
  368.             
  369.         ok
  370.         if state == 5:
  371.             alignType8Phase2(dev, num_inks, a, b, c, d)
  372.             state = -1
  373.             continue
  374.     return ok
  375.  
  376.  
  377. def AlignType10(dev, loadpaper_ui, align_ui):
  378.     pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  379.     log.debug('Pen config=%d' % pen_config)
  380.     if pen_config == AGENT_CONFIG_BLACK_ONLY:
  381.         pattern = 1
  382.     elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  383.         pattern = 2
  384.     elif pen_config in (AGENT_CONFIG_COLOR_AND_PHOTO, AGENT_CONFIG_COLOR_AND_GREY):
  385.         pattern = 3
  386.     
  387.     log.debug('Pattern=%d' % pattern)
  388.     state = 0
  389.     while state != -1:
  390.         if state == 0:
  391.             state = -1
  392.             ok = loadpaper_ui()
  393.             if ok:
  394.                 alignType10Phase1(dev)
  395.                 state = 1
  396.             
  397.         ok
  398.         if state == 1:
  399.             values = align_ui(pattern, ALIGN_TYPE_LBOW)
  400.             log.debug(values)
  401.             alignType10Phase2(dev, values, pattern)
  402.             state = 2
  403.             continue
  404.         if state == 2:
  405.             state = -1
  406.             ok = loadpaper_ui()
  407.             if ok:
  408.                 alignType10Phase3(dev)
  409.             
  410.         ok
  411.  
  412.  
  413. def alignType10Phase1(dev):
  414.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE)
  415.     dev.closePrint()
  416.  
  417.  
  418. def alignType10Phase2(dev, values, pattern):
  419.     i = 0
  420.     p = ''.join([
  421.         pcl.UEL,
  422.         '\n'])
  423.     for x in values:
  424.         i += 1
  425.         if not x:
  426.             break
  427.         
  428.         p = ''.join([
  429.             p,
  430.             pcl.ESC,
  431.             '*o5W\x1a',
  432.             chr(i),
  433.             '\x00',
  434.             chr(pattern),
  435.             chr(x),
  436.             '\n'])
  437.     
  438.     p = ''.join([
  439.         p,
  440.         pcl.UEL])
  441.     dev.printData(p)
  442.     dev.closePrint()
  443.  
  444.  
  445. def alignType10Phase3(dev):
  446.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE_VERIFICATION)
  447.     dev.closePrint()
  448.  
  449.  
  450. def align10and11Controls(pattern, align_type):
  451.     if align_type == ALIGN_TYPE_LIDIL_0_5_4:
  452.         if pattern == 1:
  453.             controls = {
  454.                 'A': (True, 23),
  455.                 'B': (True, 9),
  456.                 'C': (True, 9),
  457.                 'D': (False, 0),
  458.                 'E': (False, 0),
  459.                 'F': (False, 0),
  460.                 'G': (False, 0),
  461.                 'H': (False, 0) }
  462.         elif pattern == 2:
  463.             controls = {
  464.                 'A': (True, 17),
  465.                 'B': (True, 23),
  466.                 'C': (True, 23),
  467.                 'D': (True, 23),
  468.                 'E': (True, 9),
  469.                 'F': (True, 9),
  470.                 'G': (True, 9),
  471.                 'H': (True, 9) }
  472.         elif pattern == 3:
  473.             controls = {
  474.                 'A': (True, 9),
  475.                 'B': (True, 23),
  476.                 'C': (True, 23),
  477.                 'D': (True, 23),
  478.                 'E': (True, 9),
  479.                 'F': (True, 9),
  480.                 'G': (True, 9),
  481.                 'H': (True, 9) }
  482.         
  483.     elif pattern == 1:
  484.         controls = {
  485.             'A': (True, 23),
  486.             'B': (True, 9),
  487.             'C': (True, 9),
  488.             'D': (False, 0),
  489.             'E': (False, 0),
  490.             'F': (False, 0),
  491.             'G': (False, 0),
  492.             'H': (False, 0) }
  493.     elif pattern == 2:
  494.         controls = {
  495.             'A': (True, 23),
  496.             'B': (True, 17),
  497.             'C': (True, 23),
  498.             'D': (True, 23),
  499.             'E': (True, 9),
  500.             'F': (True, 9),
  501.             'G': (True, 9),
  502.             'H': (True, 9) }
  503.     elif pattern == 3:
  504.         controls = {
  505.             'A': (True, 23),
  506.             'B': (True, 9),
  507.             'C': (True, 23),
  508.             'D': (True, 23),
  509.             'E': (True, 9),
  510.             'F': (True, 9),
  511.             'G': (True, 9),
  512.             'H': (True, 9) }
  513.     
  514.     return controls
  515.  
  516.  
  517. def AlignType11(dev, loadpaper_ui, align_ui, invalidpen_ui):
  518.     pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  519.     log.debug('Pen config=%d' % pen_config)
  520.     if pen_config in (AGENT_CONFIG_BLACK_ONLY, AGENT_CONFIG_COLOR_ONLY):
  521.         pattern = 1
  522.     
  523.     if pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  524.         pattern = 2
  525.     elif pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  526.         pattern = 3
  527.     elif pen_config == AGENT_CONFIG_PHOTO_ONLY:
  528.         invalidpen_ui()
  529.         return None
  530.     
  531.     log.debug('Pattern=%d' % pattern)
  532.     state = 0
  533.     while state != -1:
  534.         if state == 0:
  535.             state = -1
  536.             ok = loadpaper_ui()
  537.             if ok:
  538.                 alignType11Phase1(dev)
  539.                 state = 1
  540.             
  541.         ok
  542.         if state == 1:
  543.             values = align_ui(pattern, ALIGN_TYPE_LIDIL_0_5_4)
  544.             log.debug(values)
  545.             alignType11Phase2(dev, values, pattern, pen_config)
  546.             state = 2
  547.             continue
  548.         if state == 2:
  549.             state = -1
  550.             ok = loadpaper_ui()
  551.             if ok:
  552.                 alignType11Phase3(dev)
  553.             
  554.         ok
  555.  
  556.  
  557. def alignType11Phase1(dev):
  558.     dev.printData(ldl.buildResetPacket())
  559.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION))
  560.     dev.closePrint()
  561.  
  562.  
  563. def alignType11Phase2(dev, values, pattern, pen_config):
  564.     active_colors = 0
  565.     if pen_config == AGENT_CONFIG_BLACK_ONLY:
  566.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K
  567.         values = values[:3]
  568.     elif pen_config == AGENT_CONFIG_COLOR_ONLY:
  569.         active_colors = COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  570.         values = values[:3]
  571.     elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  572.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K | ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  573.     elif pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  574.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR | ldl.COMMAND_SET_PEN_ALIGNMENT_3_PHOTO
  575.     
  576.     log.debug('Active colors=0x%x Values=%s' % (active_colors, values))
  577.     dev.printData(ldl.buildSetPenAlignment3Packet(active_colors, values))
  578.     dev.closePrint()
  579.  
  580.  
  581. def alignType11Phase3(dev):
  582.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION_VERIFY))
  583.     dev.closePrint()
  584.  
  585.  
  586. def alignType2Phase1(dev):
  587.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  588.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  589.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  590.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  591.     dev.closePrint()
  592.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align1_8xx.pcl.gz'))
  593.  
  594.  
  595. def alignType2Phase2(dev, a, b, c, d):
  596.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, (a - 6) * 12)
  597.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, (b - 6) * 12)
  598.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, (c - 3) * 12)
  599.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, (d - 3) * 12)
  600.     dev.writeEmbeddedPML(pml.OID_MARKING_AGENTS_INITIALIZED, 3)
  601.     dev.closePrint()
  602.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align2_8xx.pcl.gz'))
  603.  
  604.  
  605. def alignType3Phase1(dev):
  606.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  607.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  608.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  609.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  610.     dev.closePrint()
  611.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align1_9xx.pcl.gz'))
  612.  
  613.  
  614. def alignType3Phase2(dev, a, b, c, d):
  615.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, (a - 6) * 12)
  616.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, (6 - b) * 12)
  617.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, (6 - c) * 12)
  618.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, (6 - d) * 6)
  619.     dev.closePrint()
  620.  
  621.  
  622. def alignType3Phase3(dev):
  623.     dev.closePrint()
  624.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align3_9xx.pcl.gz'))
  625.  
  626.  
  627. def alignType3Phase4(dev, zca):
  628.     dev.writeEmbeddedPML(pml.OID_MARKING_AGENTS_INITIALIZED, 3)
  629.     dev.closePrint()
  630.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align2_9xx.pcl.gz'))
  631.  
  632.  
  633. def alignType4Phase1(dev):
  634.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_RESUME_NORMAL_OPERATION))
  635.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  636.         return None
  637.     elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  638.         ldl_file = 'cbbcal.ldl.gz'
  639.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  640.         ldl_file = 'cbccal.ldl.gz'
  641.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  642.         ldl_file = 'cb2pcal.ldl.gz'
  643.     
  644.     dev.printData(ldl.buildSetPrinterAlignmentPacket(0, 0, 0, 0))
  645.     dev.closePrint()
  646.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', ldl_file))
  647.  
  648.  
  649. def alignType4Phase2(dev, a, b, c, d, e):
  650.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d' % (a, b, c, d, e))
  651.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  652.         return None
  653.     
  654.     zca = (7 - a) * -48
  655.     dev.printData(ldl.buildZCAPacket(zca))
  656.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  657.         k_bidi = (6 - b) * 2
  658.         dev.printData(ldl.buildSetPrinterAlignmentPacket(k_bidi, 0, 0, 0))
  659.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  660.         cmy_bidi = (6 - b) * 2
  661.         dev.printData(ldl.buildSetPrinterAlignmentPacket(0, 0, 0, cmy_bidi))
  662.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  663.         vert = (9 - b) * 2
  664.         hort = (9 - c) * -2
  665.         k_bidi = (6 - d) * 2
  666.         cmy_bidi = (6 - e) * 2
  667.         dev.printData(ldl.buildSetPrinterAlignmentPacket(k_bidi, hort, vert, cmy_bidi))
  668.     
  669.     dev.printData(ldl.buildSetPensAlignedPacket())
  670.     dev.closePrint()
  671.  
  672.  
  673. def alignType4Phase3(dev):
  674.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  675.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cb2pcal_done.ldl.gz'))
  676.     
  677.  
  678.  
  679. def alignType5Phase1(dev):
  680.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_RESUME_NORMAL_OPERATION))
  681.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  682.         return None
  683.     elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  684.         ldl_file = 'cbbcal.ldl.gz'
  685.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  686.         ldl_file = 'cbpcal.ldl.gz'
  687.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  688.         ldl_file = 'cbccal.ldl.gz'
  689.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  690.         ldl_file = 'cb2pcal.ldl.gz'
  691.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  692.         ldl_file = 'cbcpcal.ldl.gz'
  693.     
  694.     dev.printData(ldl.buildZCAPacket(0))
  695.     dev.printData(ldl.buildColorHortPacket(0))
  696.     dev.printData(ldl.buildColorVertPacket(0))
  697.     dev.printData(ldl.buildBlackVertPacket(0))
  698.     dev.printData(ldl.buildBlackHortPacket(0))
  699.     dev.printData(ldl.buildBlackBidiPacket(0))
  700.     dev.printData(ldl.buildColorBidiPacket(0))
  701.     dev.printData(ldl.buildPhotoHuePacket(0))
  702.     dev.printData(ldl.buildColorHuePacket(0))
  703.     dev.closePrint()
  704.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', ldl_file))
  705.  
  706.  
  707. def alignType5Phase2(dev, a, b, c, d, e, f, g):
  708.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d' % (a, b, c, d, e, f, g))
  709.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  710.         return None
  711.     
  712.     zca = (7 - a) * -48
  713.     dev.printData(ldl.buildZCAPacket(zca))
  714.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  715.         k_bidi = (6 - b) * 2
  716.         dev.printData(ldl.buildBlackBidiPacket(k_bidi))
  717.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  718.         kcm_bidi = (6 - b) * 2
  719.         dev.printData(ldl.buildPhotoBidiPacket(kcm_bidi))
  720.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  721.         cmy_bidi = (6 - b) * 2
  722.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  723.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  724.         vert = (9 - b) * 2
  725.         hort = (9 - c) * -2
  726.         k_bidi = (6 - d) * 2
  727.         cmy_bidi = (6 - e) * 2
  728.         dev.printData(ldl.buildColorHortPacket(0))
  729.         dev.printData(ldl.buildColorVertPacket(0))
  730.         dev.printData(ldl.buildBlackVertPacket(vert))
  731.         dev.printData(ldl.buildBlackHortPacket(hort))
  732.         dev.printData(ldl.buildBlackBidiPacket(k_bidi))
  733.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  734.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  735.         vert = (9 - b) * 2
  736.         hort = (9 - c) * -2
  737.         cmy_bidi = (6 - d) * 2
  738.         kcm_bidi = (6 - e) * 2
  739.         photo_adj = colorcal.PHOTO_ALIGN_TABLE[f][g]
  740.         color_adj = colorcal.COLOR_ALIGN_TABLE[f][g]
  741.         dev.printData(ldl.buildPhotoHortPacket(hort))
  742.         dev.printData(ldl.buildPhotoVertPacket(vert))
  743.         dev.printData(ldl.buildColorHortPacket(0))
  744.         dev.printData(ldl.buildColorVertPacket(0))
  745.         dev.printData(ldl.buildPhotoBidiPacket(kcm_bidi))
  746.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  747.         dev.printData(ldl.buildPhotoHuePacket(photo_adj))
  748.         dev.printData(ldl.buildColorHuePacket(color_adj))
  749.     
  750.     dev.printData(ldl.buildSetPensAlignedPacket())
  751.     dev.closePrint()
  752.  
  753.  
  754. def alignType5Phase3(dev):
  755.     dev.closePrint()
  756.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  757.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cb2pcal_done.ldl.gz'))
  758.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  759.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cbccal_done.ldl.gz'))
  760.     
  761.  
  762.  
  763. def alignType6Phase1(dev):
  764.     dev.printData(ldl.buildPrintInternalPagePacket())
  765.     dev.closePrint()
  766.  
  767.  
  768. def alignType7Phase1(dev):
  769.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  770.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  771.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  772.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  773.     dev.writeEmbeddedPML(pml.OID_AGENT3_VERTICAL_ALIGNMENT, 0)
  774.     dev.writeEmbeddedPML(pml.OID_AGENT3_HORIZONTAL_ALIGNMENT, 0)
  775.     dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, 0)
  776.     dev.writeEmbeddedPML(pml.OID_ZCA, 0)
  777.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  778.         return None
  779.     elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  780.         pcl_file = 'crbcal.pcl.gz'
  781.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  782.         pcl_file = 'crpcal.pcl.gz'
  783.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  784.         pcl_file = 'crccal.pcl.gz'
  785.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  786.         pcl_file = 'crcbcal.pcl.gz'
  787.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  788.         pcl_file = 'crcpcal.pcl.gz'
  789.     
  790.     dev.closePrint()
  791.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', pcl_file))
  792.  
  793.  
  794. def alignType7Phase2(dev, a, b, c, d, e, f, g):
  795.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d' % (a, b, c, d, e, f, g))
  796.     zca = (7 - a) * -12
  797.     dev.writeEmbeddedPML(pml.OID_ZCA, zca)
  798.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  799.         k_bidi = (6 - b) * 6
  800.         dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, k_bidi)
  801.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  802.         kcm_bidi = (6 - b) * 6
  803.         dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, kcm_bidi)
  804.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  805.         cmy_bidi = (6 - b) * 6
  806.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  807.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  808.         vert = (9 - b) * 6
  809.         hort = (9 - c) * -6
  810.         k_bidi = (6 - d) * 6
  811.         cmy_bidi = (6 - e) * 6
  812.         dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, k_bidi)
  813.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  814.         dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, hort)
  815.         dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, vert)
  816.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  817.         vert = (9 - b) * 6
  818.         hort = (9 - c) * -6
  819.         cmy_bidi = (6 - d) * 6
  820.         kcm_bidi = (6 - e) * 6
  821.         photo_adj = colorcal.PHOTO_ALIGN_TABLE[f][g]
  822.         color_adj = colorcal.COLOR_ALIGN_TABLE[f][g]
  823.         x = (color_adj << 8) + photo_adj
  824.         dev.writeEmbeddedPML(pml.OID_COLOR_CALIBRATION_SELECTION, x)
  825.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  826.         dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, kcm_bidi)
  827.         dev.writeEmbeddedPML(pml.OID_AGENT3_HORIZONTAL_ALIGNMENT, hort)
  828.         dev.writeEmbeddedPML(pml.OID_AGENT3_VERTICAL_ALIGNMENT, vert)
  829.     
  830.     dev.closePrint()
  831.  
  832.  
  833. def alignType7Phase3(dev):
  834.     dev.closePrint()
  835.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'crcaldone.pcl.gz'))
  836.  
  837.  
  838. def alignType8Phase1(dev):
  839.     pens = dev.getStatusFromDeviceID()['agents']
  840.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  841.     dev.closePrint()
  842.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', f))
  843.     return num_inks
  844.  
  845.  
  846. def alignType8Phase2(dev, num_inks, a, b, c, d):
  847.     align_values1 = {
  848.         1: '\x00\x00\x18',
  849.         2: '\x00\x00\x12',
  850.         3: '\x00\x00\x0c',
  851.         4: '\x00\x00\x06',
  852.         5: '\x00\x00\x00',
  853.         6: '\x01\x00\x06',
  854.         7: '\x01\x00\x0c',
  855.         8: '\x01\x00\x12',
  856.         9: '\x01\x00\x18' }
  857.     align_values2 = {
  858.         1: '\x00\x00\x12',
  859.         2: '\x00\x00\x0c',
  860.         3: '\x00\x00\x06',
  861.         4: '\x00\x00\x00',
  862.         5: '\x01\x00\x06',
  863.         6: '\x01\x00\x0c',
  864.         7: '\x01\x00\x12',
  865.         8: '\x01\x00\x18',
  866.         9: '\x01\x00\x1e' }
  867.     align_values3 = {
  868.         1: '\x00\x00$',
  869.         2: '\x00\x00\x18',
  870.         3: '\x00\x00\x12',
  871.         4: '\x00\x00\x06',
  872.         5: '\x00\x00\x00',
  873.         6: '\x01\x00\x06',
  874.         7: '\x01\x00\x12',
  875.         8: '\x01\x00\x18',
  876.         9: '\x01\x00$' }
  877.     if num_inks == 4:
  878.         s = ''.join([
  879.             pcl.UEL,
  880.             '@PJL ENTER LANGUAGE=PCL3GUI\n',
  881.             pcl.RESET,
  882.             pcl.ESC,
  883.             '*o5W\x1a\x01',
  884.             align_values1[a],
  885.             pcl.ESC,
  886.             '*o5W\x1a\x02',
  887.             align_values2[a],
  888.             pcl.ESC,
  889.             '*o5W\x1a\x03',
  890.             align_values1[b],
  891.             pcl.ESC,
  892.             '*o5W\x1a\x04',
  893.             align_values1[b],
  894.             pcl.ESC,
  895.             '*o5W\x1a\x08',
  896.             align_values1[c],
  897.             pcl.ESC,
  898.             '*o5W\x1a\x07',
  899.             align_values1[d],
  900.             pcl.RESET,
  901.             pcl.UEL])
  902.     else:
  903.         s = ''.join([
  904.             pcl.UEL,
  905.             '@PJL ENTER LANGUAGE=PCL3GUI\n',
  906.             pcl.RESET,
  907.             pcl.ESC,
  908.             '*o5W\x1a\x05',
  909.             align_values1[a],
  910.             pcl.ESC,
  911.             '*o5W\x1a\x06',
  912.             align_values3[a],
  913.             pcl.ESC,
  914.             '*o5W\x1a\x03',
  915.             align_values1[b],
  916.             pcl.ESC,
  917.             '*o5W\x1a\x04',
  918.             align_values1[b],
  919.             pcl.ESC,
  920.             '*o5W\x1a\n',
  921.             align_values1[c],
  922.             pcl.ESC,
  923.             '*o5W\x1a\t',
  924.             align_values1[d],
  925.             pcl.RESET,
  926.             pcl.UEL])
  927.     dev.printData(s)
  928.     dev.closePrint()
  929.  
  930.  
  931. def AlignType12(dev, loadpaper_ui):
  932.     if loadpaper_ui():
  933.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE)
  934.         dev.closePML()
  935.     
  936.  
  937.  
  938. def cleaning(dev, clean_type, level1, level2, level3, loadpaper_ui, dlg1, dlg2, dlg3, wait_ui):
  939.     CLEAN_SLEEP_TIMER = 60
  940.     state = 0
  941.     while state != -1:
  942.         if state == 0:
  943.             state = 1
  944.             if clean_type == 3:
  945.                 ok = loadpaper_ui()
  946.                 if not ok:
  947.                     state = -1
  948.                 
  949.             
  950.         clean_type == 3
  951.         if state == 1:
  952.             level1(dev)
  953.             state = 2
  954.             continue
  955.         if state == 2:
  956.             state = -1
  957.             ok = loadpaper_ui()
  958.             if ok:
  959.                 state = 3
  960.             
  961.         ok
  962.         if state == 3:
  963.             state = 4
  964.             print_clean_test_page(dev)
  965.             continue
  966.         if state == 4:
  967.             state = -1
  968.             ok = dlg1()
  969.             if ok:
  970.                 state = 5
  971.             
  972.         ok
  973.         if state == 5:
  974.             level2(dev)
  975.             state = 6
  976.             continue
  977.         if state == 6:
  978.             state = -1
  979.             ok = loadpaper_ui()
  980.             if ok:
  981.                 state = 7
  982.             
  983.         ok
  984.         if state == 7:
  985.             state = 8
  986.             print_clean_test_page(dev)
  987.             continue
  988.         if state == 8:
  989.             state = -1
  990.             ok = dlg2()
  991.             if ok:
  992.                 state = 9
  993.             
  994.         ok
  995.         if state == 9:
  996.             level3(dev)
  997.             state = 10
  998.             continue
  999.         if state == 10:
  1000.             state = -1
  1001.             ok = loadpaper_ui()
  1002.             if ok:
  1003.                 state = 11
  1004.             
  1005.         ok
  1006.         if state == 11:
  1007.             state = 12
  1008.             print_clean_test_page(dev)
  1009.             continue
  1010.         if state == 12:
  1011.             state = -1
  1012.             dlg3()
  1013.             continue
  1014.     return ok
  1015.  
  1016.  
  1017. def print_clean_test_page(dev):
  1018.     dev.closePrint()
  1019.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ps', 'clean_page.pdf.gz'), raw = False)
  1020.  
  1021.  
  1022. def cleanType1(dev):
  1023.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_CLEAN)
  1024.     dev.closePrint()
  1025.  
  1026.  
  1027. def primeType1(dev):
  1028.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_PRIME)
  1029.     dev.closePrint()
  1030.  
  1031.  
  1032. def wipeAndSpitType1(dev):
  1033.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_WIPE_AND_SPIT)
  1034.     dev.closePrint()
  1035.  
  1036.  
  1037. def cleanType2(dev):
  1038.     dev.printData(ldl.buildResetPacket())
  1039.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL1))
  1040.     dev.closePrint()
  1041.  
  1042.  
  1043. def primeType2(dev):
  1044.     dev.printData(ldl.buildResetPacket())
  1045.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL2))
  1046.     dev.closePrint()
  1047.  
  1048.  
  1049. def wipeAndSpitType2(dev):
  1050.     dev.printData(ldl.buildResetPacket())
  1051.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL3))
  1052.     dev.closePrint()
  1053.  
  1054.  
  1055. def colorCalType1(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1056.     (value, state) = (4, 0)
  1057.     ok = False
  1058.     while state != -1:
  1059.         if state == 0:
  1060.             if colorCalType1PenCheck(dev):
  1061.                 state = 1
  1062.             else:
  1063.                 state = 100
  1064.         colorCalType1PenCheck(dev)
  1065.         if state == 1:
  1066.             state = -1
  1067.             ok = loadpaper_ui()
  1068.             if ok:
  1069.                 colorCalType1Phase1(dev)
  1070.                 state = 2
  1071.             
  1072.         ok
  1073.         if state == 2:
  1074.             state = -1
  1075.             (ok, value) = colorcal_ui()
  1076.             if ok:
  1077.                 state = 3
  1078.             
  1079.         ok
  1080.         if state == 3:
  1081.             colorCalType1Phase2(dev, value)
  1082.             state = -1
  1083.             continue
  1084.         if state == 100:
  1085.             ok = False
  1086.             photopenreq_ui()
  1087.             state = -1
  1088.             continue
  1089.     return ok
  1090.  
  1091.  
  1092. def colorCalType1PenCheck(dev):
  1093.     pens = dev.getStatusFromDeviceID()['agents']
  1094.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1095.  
  1096.  
  1097. def colorCalType1Phase1(dev):
  1098.     dev.closePrint()
  1099.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'colorcal1_450.pcl.gz'))
  1100.  
  1101.  
  1102. def colorCalType1Phase2(dev, value):
  1103.     color_cal = {
  1104.         1: ('\x0f<', '\x17\x0c'),
  1105.         2: ('\x10\xcc', '\x15|'),
  1106.         3: ('\x12\\', '\x13\xec'),
  1107.         4: ('\x13\xec', '\x12\\'),
  1108.         5: ('\x15|', '\x10\xcc'),
  1109.         6: ('\x17\x0c', '\x0f<'),
  1110.         7: ('\x18\x9c', '\r\xac') }
  1111.     s = ''.join([
  1112.         pcl.UEL,
  1113.         '@PJL ENTER LANGUAGE=PCL3GUI\n',
  1114.         pcl.RESET,
  1115.         pcl.ESC,
  1116.         '*o5W\x1a\x0c\x00',
  1117.         color_cal[value][0],
  1118.         pcl.ESC,
  1119.         '*o5W\x1a\x0b\x00',
  1120.         color_cal[value][1],
  1121.         pcl.RESET,
  1122.         pcl.UEL])
  1123.     dev.printData(s)
  1124.     dev.closePrint()
  1125.  
  1126.  
  1127. def colorCalType2(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1128.     (value, state) = (4, 0)
  1129.     ok = True
  1130.     while state != -1:
  1131.         if state == 0:
  1132.             if colorCalType2PenCheck(dev):
  1133.                 state = 1
  1134.             else:
  1135.                 state = 100
  1136.         colorCalType2PenCheck(dev)
  1137.         if state == 1:
  1138.             state = -1
  1139.             ok = loadpaper_ui()
  1140.             if ok:
  1141.                 colorCalType2Phase1(dev)
  1142.                 state = 2
  1143.             
  1144.         ok
  1145.         if state == 2:
  1146.             state = -1
  1147.             (ok, value) = colorcal_ui()
  1148.             if ok:
  1149.                 state = 3
  1150.             
  1151.         ok
  1152.         if state == 3:
  1153.             colorCalType2Phase2(dev, value)
  1154.             state = -1
  1155.             continue
  1156.         if state == 100:
  1157.             photopenreq_ui()
  1158.             ok = False
  1159.             state = -1
  1160.             continue
  1161.     return ok
  1162.  
  1163.  
  1164. def colorCalType2PenCheck(dev):
  1165.     pens = dev.getStatusFromDeviceID()['agents']
  1166.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1167.  
  1168.  
  1169. def colorCalType2Phase1(dev):
  1170.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1171.     dev.closePrint()
  1172.  
  1173.  
  1174. def colorCalType2Phase2(dev, value):
  1175.     c = colorcal.COLOR_CAL_TABLE
  1176.     p = ''.join([
  1177.         '\x1b&b19WPML \x04\x00\x06\x01\x04\x01\x05\x01\t\x08\x04',
  1178.         chr(c[value * 4] + 100),
  1179.         chr(c[value * 4 + 1] + 100),
  1180.         chr(c[value * 4 + 2] + 100),
  1181.         chr(c[value * 4 + 3] + 100),
  1182.         '\x1b%-12345X'])
  1183.     dev.printData(p)
  1184.     dev.closePrint()
  1185.  
  1186.  
  1187. def colorCalType3(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1188.     (value, state) = (4, 0)
  1189.     ok = True
  1190.     while state != -1:
  1191.         if state == 0:
  1192.             if colorCalType3PenCheck(dev):
  1193.                 state = 1
  1194.             else:
  1195.                 state = 100
  1196.         colorCalType3PenCheck(dev)
  1197.         if state == 1:
  1198.             state = -1
  1199.             ok = loadpaper_ui()
  1200.             if ok:
  1201.                 colorCalType3Phase1(dev)
  1202.                 state = 2
  1203.             
  1204.         ok
  1205.         if state == 2:
  1206.             state = -1
  1207.             (ok, valueA) = colorcal_ui('A', 21)
  1208.             if ok:
  1209.                 state = 3
  1210.             
  1211.         ok
  1212.         if state == 3:
  1213.             state = -1
  1214.             (ok, valueB) = colorcal_ui('B', 21)
  1215.             if ok:
  1216.                 state = 4
  1217.             
  1218.         ok
  1219.         if state == 4:
  1220.             colorCalType3Phase2(dev, valueA, valueB)
  1221.             state = -1
  1222.             continue
  1223.         if state == 100:
  1224.             photopenreq_ui()
  1225.             ok = False
  1226.             state = -1
  1227.             continue
  1228.     return ok
  1229.  
  1230.  
  1231. def colorCalType3PenCheck(dev):
  1232.     pens = dev.getStatusFromDeviceID()['agents']
  1233.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1234.  
  1235.  
  1236. def colorCalType3Phase1(dev):
  1237.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1238.     dev.closePrint()
  1239.  
  1240.  
  1241. def colorCalType3Phase2(dev, A, B):
  1242.     photo_adj = colorcal.PHOTO_ALIGN_TABLE[A - 1][B - 1]
  1243.     color_adj = colorcal.COLOR_ALIGN_TABLE[A - 1][B - 1]
  1244.     adj_value = (color_adj << 0x8L) + photo_adj
  1245.     dev.writeEmbeddedPML(pml.OID_COLOR_CALIBRATION_SELECTION, adj_value)
  1246.     dev.closePrint()
  1247.  
  1248.  
  1249. def colorCalType4(dev, loadpaper_ui, colorcal_ui, wait_ui):
  1250.     state = 0
  1251.     ok = True
  1252.     while state != -1:
  1253.         if state == 0:
  1254.             state = -1
  1255.             ok = loadpaper_ui()
  1256.             if ok:
  1257.                 colorCalType4Phase1(dev)
  1258.                 state = 2
  1259.             
  1260.         ok
  1261.         if state == 2:
  1262.             state = -1
  1263.             (ok, values) = colorcal_ui()
  1264.             if ok:
  1265.                 state = 3
  1266.             
  1267.         ok
  1268.         if state == 3:
  1269.             colorCalType4Phase2(dev, values)
  1270.             state = 4
  1271.             continue
  1272.         if state == 4:
  1273.             state = -1
  1274.             ok = loadpaper_ui()
  1275.             if ok:
  1276.                 colorCalType4Phase3(dev)
  1277.                 state = -1
  1278.             
  1279.         ok
  1280.     return ok
  1281.  
  1282.  
  1283. def colorCalType4Phase1(dev):
  1284.     dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1285.     dev.closePML()
  1286.  
  1287.  
  1288. def colorCalType4AdjValue(value):
  1289.     if value >= 100:
  1290.         return 200
  1291.     
  1292.     return value + 100
  1293.  
  1294.  
  1295. def colorCalType4Phase2(dev, values):
  1296.     if -1 in values:
  1297.         (Cadj, Madj, Yadj, cadj, madj, kadj) = (244, 244, 244, 244, 244, 244)
  1298.     else:
  1299.         (sel1, sel2, sel3, sel4) = values
  1300.         tmp1 = colorcal.TYPE_4_C_TABLE[sel1][sel2]
  1301.         tmp2 = colorcal.TYPE_4_LC_TABLE[sel3][sel4]
  1302.         Cadj = colorCalType4AdjValue(tmp1)
  1303.         cadj = colorCalType4AdjValue(tmp1 + tmp2)
  1304.         tmp1 = colorcal.TYPE_4_M_TABLE[sel1][sel2]
  1305.         tmp2 = colorcal.TYPE_4_LM_TABLE[sel3][sel4]
  1306.         Madj = colorCalType4AdjValue(tmp1)
  1307.         madj = colorCalType4AdjValue(tmp1 + tmp2)
  1308.         Yadj = colorCalType4AdjValue(colorcal.TYPE_4_Y_TABLE[sel1][sel2])
  1309.         kadj = colorCalType4AdjValue(0)
  1310.     log.debug('C=%d, M=%d, Y=%d, c=%d, m=%d, k=%d\n' % (Cadj, Madj, Yadj, cadj, madj, kadj))
  1311.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_1, kadj)
  1312.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_2, Cadj)
  1313.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_3, Madj)
  1314.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_4, Yadj)
  1315.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_5, cadj)
  1316.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_6, madj)
  1317.     dev.closePML()
  1318.  
  1319.  
  1320. def colorCalType4Phase3(dev):
  1321.     dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_PALETTE_CMYK_PAGE)
  1322.     dev.closePML()
  1323.  
  1324.  
  1325. def colorCalType5(dev, loadpaper_ui):
  1326.     if loadpaper_ui():
  1327.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 20;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1328.         dev.closePrint()
  1329.     
  1330.  
  1331.  
  1332. def colorCalType6(dev, loadpaper_ui):
  1333.     if loadpaper_ui():
  1334.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1335.         dev.closePML()
  1336.     
  1337.  
  1338.  
  1339. def linefeedCalType1(dev, loadpaper_ui):
  1340.     if loadpaper_ui():
  1341.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 3;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1342.         dev.closePrint()
  1343.     
  1344.  
  1345.  
  1346. def linefeedCalType2(dev, loadpaper_ui):
  1347.     if loadpaper_ui():
  1348.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_LINEFEED_CALIBRATION)
  1349.         dev.closePML()
  1350.     
  1351.  
  1352.  
  1353. def printQualityDiagType1(dev, loadpaper_ui):
  1354.     if loadpaper_ui():
  1355.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 14;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1356.         dev.closePrint()
  1357.     
  1358.  
  1359.  
  1360. def printQualityDiagType2(dev, loadpaper_ui):
  1361.     if loadpaper_ui():
  1362.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_PRINT_QUALITY_DIAGNOSTIC)
  1363.         dev.closePML()
  1364.     
  1365.  
  1366.