3
NZn                 @   sJ  d dl T d dlT d dlmZmZ ddlmZmZmZ ddl	Z	d dl
mZmZ dZdZd	Zd
Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Z d+d, Z!d-d. Z"d/d0 Z#d1d2 Z$d a%d3d4 Z&d5d6 Z'd7d8 Z(d9d: Z)d;d< Z*d=d> Z+d?d@ Z,dAdB Z-dCdD Z.dEdF Z/dGdH Z0dIdJ Z1dKdL Z2dMdN Z3dOdP Z4dQdR Z5dSdT Z6dUdV Z7dWdX Z8dYdZ Z9d[d\ Z:d]d^ Z;d_d` Z<dadb Z=dcdd Z>dedf Z?dgdh Z@didj ZAdkdl ZBdmdn ZCdodp ZDdqdr ZEdsdt ZFeFfdudvZGdwdx ZHdydz ZId{d| ZJd}d~ ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdddZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd Zkdd ZlddÄ ZmdS )   )*)statuspml    )pclldlcolorcalN)to_bytes_utf8StringIOa`  <?xml version="1.0" encoding="UTF-8"?>
<!--  THIS DATA SUBJECT TO DISCLAIMER(S)INCLUDED WITH THE PRODUCT OF ORIGIN. -->
<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">
                                <ipdyn:JobType>%s</ipdyn:JobType>
</ipcap:InternalPrintCap>"

        z/DevMgmt/InternalPrintDyn.xmlz/DevMgmt/InternalPrintCap.xmlz7<ipdyn:JobType>cleaningVerificationPage</ipdyn:JobType>c             C   s,   | }|r(| j tjtjddd | j  |S )Nr   T)ZstyleZdirect)writeEmbeddedPMLr   OID_AUTO_ALIGNMENTAUTO_ALIGNMENT
closePrint)devloadpaper_uiok r   /usr/share/hplip/base/maint.py
AlignType10   s    r   c             C   s&   | }|r"| j tjtj | j  |S )N)setPMLr   r   r   closePML)r   r   r   r   r   r   AlignType1PML:   s
    r   c                s  d\}}}}}d}	xn|dkr|dkrjd}| j  d   fddtt D }
t|
krhtjd	 d
}q|dkrd}| }	|	rd}q|dkrd}t|  |ddddd\}	}|	rd}q|dkrd}|ddddd\}	}|	rd}q|dkrd}|ddddd\}	}|	rd}q|dkr>d}|ddddd\}	}|	rd}q|dkrj| }	|	rdt| |||| d}q|d
krd}	|  d}qW |	S ) Nr         Fr   agentsc                s   g | ]} | qS r   r   ).0x)pensr   r   
<listcomp>K   s    zAlignType2.<locals>.<listcomp>z3Cannot perform alignment with 0 or 1 pen installed.d      Ahkc   Bv   C   Dc)r   r   r   r   r   r,   r,   r,   r,   r,   r,   r,   )getStatusFromDeviceIDrangelenAGENT_TYPE_NONElogerroralignType2Phase1alignType2Phase2)r   r   align_uiZbothpens_uistateabr+   dr   	pen_typesr   )r   r   
AlignType2D   s\    



r;   c             C   s  d\}}}}}	}
d}xn|dkr|dkrFd}| }|rDt |  d}q|dkrpd}|dddd	d
\}}|rnd	}q|d	krd}|dddd	d
\}}|rd}q|dkrd}|dddd	d
\}}|rd}q|dk rd}|dddd	d
\}}	|rd}q|dkr2d}t| ||||	 |dkr d}n| }|rd}q|dkr`d}t|  |d\}}
|rd}q|dkr| }|r~t| |
 d}qW |S )Nr   r   r   Fr   r!   r"   r#   r    r$   r%   r&   r(   kr'   r*   r)   	         )r   r   r   r   r   r   r,   r,   r,   r,   r,   r,   r,   r,   r,   )alignType3Phase1alignType3Phase2alignType3Phase3alignType3Phase4)r   r   r5   paperedge_ui
align_typer6   r7   r8   r+   r9   zcar   r   r   r   
AlignType3~   sb    




rG   c             C   s&  d"\}}dd#g}	d$\}
}}}}}}d%g}d}t j| j | _| jttfkrXdd&g }}n| jtkrvddddd'g }}n| jtkrddddd(g }}np| jtkrddd	dd)g }}nR| jt	k rddd
dddddd*g }}n*| jt
krddd
dddddddd+g
 }}x|d,kr |dkr~| }|rp|dkr<t|  n2|dkrPt|  n|dkrdt|  n
d| }}n
d|	 }}n|dkr|d\}}
|sd|	 }}nd|dkr|dkrt| |
|||| n8|dkrt| |
|||||| nt| |
|||||| n |dkrb| }|rT|dkr6t|  n|dkrJt|  nt|  n
d|	 }}n|dkrz|  d-}n|dkr|ddddd\}}|sd|	 }}n`|d	kr|ddddd\}}|sd|	 }}n.|d
kr|ddddd\}}|sd|	 }} n|dkr@|ddddd\}}|sd|	 }}n|dkrp|ddddd\}}|sd|	 }}n|dkr|ddddd\}}|sd|	 }}nl|dkr|dd\}}|sd|	 }}nB|dkr|d d\}}|sd|	 }}n|dkrd}tjd! || }|d7 }qW |S ).Nr   i  r   Fr   r       r   i,  i  i  iX  i  r'   i   i  r)   r>   r?   r%   r&   r<   r$   r#   r"      r(   r*   EF   Gz#Alignment canceled at user request.)r   r   r,   )r   r   r   r   r   r   r   r,   r,   r,   r,   r,   r,   r,   r,   r,   )r   getPenConfigurationr-   
pen_configAGENT_CONFIG_NONEAGENT_CONFIG_INVALIDAGENT_CONFIG_BLACK_ONLYAGENT_CONFIG_PHOTO_ONLYAGENT_CONFIG_COLOR_ONLYAGENT_CONFIG_COLOR_AND_BLACKAGENT_CONFIG_COLOR_AND_PHOTOalignType4Phase1alignType5Phase1alignType7Phase1alignType4Phase2alignType5Phase2alignType7Phase2alignType4Phase3alignType5Phase3alignType7Phase3r1   Zwarning)r   rE   r   r5   rD   invalidpen_uiZcoloradj_uir6   ZstateposZuser_cancel_statesr7   r8   r+   r9   efgZerror_statesr   Zstatesr   r   r   	AlignxBow   s    






























rd   c             C   sl   d}d}x^|dkrf|dkr.d}| }|sdd}q
|dkrRd}| }|rdt |  d}q
|dkr
|  d}q
W |S )Nr   Fr   r    r,   r,   r,   )alignType6Phase1)r   Zui1ui2r   r6   r   Zacceptr   r   r   
AlignType68  s$    
rg   c       
      C   s  d\}}}}}d} x|dkr|dkrDd}| }|rBt | }	d}q|dkrnd}|ddddd	\}}|rld
}q|d
krd}|ddddd	\}}|rd}q|dkrd}|ddddd	\}}|rd}q|dk rd}|ddddd	\}}|rd}q|dkrt| |	|||| d}qW |S )Nr   r)   Fr   r!   r&   r<   r   r=   r    r%   r+   r(   r#   r'   r*   r"   )r   r)   r)   r)   r)   r,   r,   r,   r,   r,   r,   r,   )alignType8Phase1alignType8Phase2)
r   r   r5   r6   r7   r8   r+   r9   r   num_inksr   r   r   
AlignType8R  sB    
rk   c             C   s   t | }d}x||dkr|dkr:d}| }|rt|  d}q|dkrh||t}tj| t| || d}q|dkrd}| }|rt|  qW d S )Nr   r   r    r,   r,   r,   )alignType10SetPatternalignType10Phase1ZALIGN_TYPE_LBOWr1   debugalignType10Phase2alignType10Phase3)r   r   r5   patternr6   r   valuesr   r   r   AlignType10~  s&    


rs   c             C   s^   d }t j| j }tjd|  |tkr.d}n|tkr<d}n|ttfkrLd}tjd|  |S )NzPen config=%dr   r    r   z
Pattern=%d)	r   rN   r-   r1   rn   rR   rU   rV   ZAGENT_CONFIG_COLOR_AND_GREY)r   rq   rO   r   r   r   rl     s    rl   c             C   s   | j tjtj | j  d S )N)r   r   OID_PRINT_INTERNAL_PAGE"PRINT_INTERNAL_PAGE_ALIGNMENT_PAGEr   )r   r   r   r   rm     s    rm   c          
   C   s   ddj tjdg }}xB|D ]:}|d7 }|s.P dj |tjdt|dt|t|dg}qW dj |tjg}| j| | j  d S )Nr    
r   z*o5W )joinr   UELESCchr	printDatar   )r   rr   rq   ipr   r   r   r   ro     s    
,
ro   c             C   s   | j tjtj | j  d S )N)r   r   rt   Z/PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE_VERIFICATIONr   )r   r   r   r   rp     s    rp   c          
   C   s8  |t krj| dkr(ddddddddd}n>| dkrHddddddddd}n| d
krfddd d!d"d#d$d%d} n|tk r| dkrd&d'd}nF| dk rd(d)d*d+d,d-d.d/d0d	}n"| d
kr4d1d2d3d4d5d6d7d8d9d	}nd| dk rd:d;d<d=d>d?d@dAd}nB| dkrdBdCdDdEdFdGdHdId}n | d
kr4dJdKdLdMdNdOdPdQd}|S )RNr   T   r=   Fr   )r!   r%   r(   r*   rJ   rK   rM   Hr    rI   r   )r!   r%   r$   )	r!   r%   r(   r*   rJ   rK   rM   r   I)Tr   )Tr=   )Tr=   )Fr   )Fr   )Fr   )Fr   )Fr   )TrI   )Tr   )Tr   )Tr   )Tr=   )Tr=   )Tr=   )Tr=   )Tr=   )Tr   )Tr   )Tr   )Tr=   )Tr=   )Tr=   )Tr=   )Tr   )Tr=   )Tr   )Tr$   )Tr   )Tr   )Tr$   )Tr$   )Tr$   )Tr=   )Tr=   )Tr=   )Tr   )Tr   )Tr   )Tr=   )Tr=   )Tr=   )Tr=   )Tr=   )Tr   )Tr=   )Tr=   )Fr   )Fr   )Fr   )Fr   )Fr   )Tr   )TrI   )Tr   )Tr   )Tr=   )Tr=   )Tr=   )Tr=   )Tr   )Tr=   )Tr   )Tr   )Tr=   )Tr=   )Tr=   )Tr=   )ALIGN_TYPE_LIDIL_0_5_4ALIGN_TYPE_LIDIL_DJ_D1600)rq   rE   Zcontrolsr   r   r   align10and11and14Controls  s    












r   c             C   s   t | }|d kr|  d S d}x|dkr|dkrLd}| }|rt|  d}q |dkr~||t}tj| t| ||| j d}q |dkr d}| }|r t|  q W d S )Nr   r   r    r,   r,   r,   )alignType11SetPatternalignType11Phase1r   r1   rn   alignType11Phase2rO   alignType11Phase3)r   r   r5   r`   rq   r6   r   rr   r   r   r   AlignType11   s,    


r   c             C   sv   d }t j| j | _tjd| j  | jttfkr6d}| jtkrFd}n| jt	krVd}n| jt
krdd S tjd|  |S )NzPen config=%dr   r    r   z
Pattern=%d)r   rN   r-   rO   r1   rn   rR   rT   rU   rV   rS   )r   rq   r   r   r   r   <  s    


r   c             C   s,   | j tj  | j tjtj | j  d S )N)r}   r   buildResetPacketbuildReportPagePacket#COMMAND_REPORT_PAGE_PEN_CALIBRATIONr   )r   r   r   r   r   Q  s    r   c             C   s   d}|t kr tj}|d d }nF|tkr<tj}|d d }n*|tkrRtjtjB }n|tkrftjtjB }tj	d||f  | j
tj|| | j  d S )Nr   r   zActive colors=0x%x Values=%s)rR   r   COMMAND_SET_PEN_ALIGNMENT_3_KrT   !COMMAND_SET_PEN_ALIGNMENT_3_COLORrU   rV   !COMMAND_SET_PEN_ALIGNMENT_3_PHOTOr1   rn   r}   buildSetPenAlignment3Packetr   )r   rr   rq   rO   active_colorsr   r   r   r   W  s    r   c             C   s,   | j tj  | j tjtj | j  d S )N)r}   r   r   r   *COMMAND_REPORT_PAGE_PEN_CALIBRATION_VERIFYr   )r   r   r   r   r   m  s    r   c             C   s   | }|rt |  | }|S )N)alignType13Phase1)r   r   Zscanner_align_load_uir   r   r   r   AlignType13s  s
    r   c             C   s   | j tjtj | j  d S )N)r   r   r   r   r   )r   r   r   r   r   {  s    r   c             C   s  t j|d}|st j|d}|s6tjd | j  dS td|krXtjd | j  dS td|krztjd | j  dS td	|krtjd
 | j  dS t j|d}td|krtjd | j  dS td|krtjd t j|dd | j  dS td|kr.tjd t j|dd | j  | S td|krtjd t j|dd}dd l}|j	|dd }|j	|dd }d| }t j||}|j	|dd }|j	|dd }d| d }|a
| j  dS )Nz/Calibration/Statez$Unable to retrieve calibration stater   ParmsRequestedz"Restart device and start alignmentr   z404 Not Foundz Device may not support Alignmentz	Printing<z$Previous alignment job not completedz /DevMgmt/ConsumableConfigDyn.xmlZAlignmentModeZ	automaticz%Device supports automatic calibrationz/Calibration/Sessionz<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>ZsemiAutomaticz)Device supports semiAutomatic calibrationZmanualz"Device supports manual calibrationz/Jobsz
zSession/<z/Calibration/Session/z/ManualSelectedPatterns.xml)r   StatusType10FetchUrlr1   rn   closer	   r2   warnstringsplitcalibrationSession)r   funcrf   datar   r   r   r   dataModelHelper  s`    







r   c             C   s   t jd|||||||||	|
f
  | j}tj|d}|s<dS x$d|kr`d|krRd S tj|d}q>W d|||||||||	|
f
 }dtt|f | }tj|t|}d S )Nz1a=%s b=%s c=%s d=%s e=%s f=%s g=%s h=%s i=%s j=%sz/Calibration/Stater   r   ZCalibrationValida  <?xml version="1.0" encoding="UTF-8"?>
<!-- THIS DATA SUBJECT TO DISCLAIMER(S) INCLUDED WITH THE PRODUCT OF ORIGIN. -->
<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>zPUT %s HTTP/1.1
Host: localhost
User-Agent: hp
Accept: text/plain
Accept-Language: en-us,en
Accept-Charset:utf-8
Content-Type: text/xml
Content-Length: %s

)r1   rn   getEWSUrl_LEDMr   r   r   r/   )r   r7   r8   r+   r9   ra   rb   rc   r"   r~   jr   r   r   r   r   AlignType16Manual  s    "
r   c             C   s   | s
d S t | | j|S )N)r   r   )r   r   rf   r   r   r   AlignType15  s    r   c             C   s   t | | j|S )N)r   r   )r   rf   r   r   r   AlignType15Phase1  s    r   c             C   s   | s
d S t | | j|S )N)r   getUrl_LEDM)r   r   rf   r   r   r   AlignType17  s    r   c             C   s   t | | j|S )N)r   r   )r   rf   r   r   r   AlignType17Phase1  s    r   c             C   s4  | s
d S t | | j| d \}}}}}}}	}
}}}d}x|d!kr|dkrnd"}|ddddd	\}}|rld}q:|dkrd#}|d
dddd\}}|rd}q:|dkrd$}|ddddd	\}}|rd}q:|dk rd%}|ddddd	\}}|rd}q:|dkrd&}|ddddd\}}|rd}q:|dkrLd'}|ddddd\}}	|rd}q:|dkrzd(}|ddddd\}}
|rd}q:|dkrd)}|ddddd\}}|rd}q:|dkrd*}|ddddd\}}|rd}q:|dkrd+}|ddddd\}}|rd}q:|dkr:d,}q:W t| ||||||	|
||| |S )-Nr   r   r   Fr   r!   r&   r#   r   r%   r"   rI   r    r(   r<   r*   r+   r'   rJ   r$   r)   rK   rM   r>   r      r      r=   J
   )r   r   r   r   r   r   r   r   r   r   r   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   )r   r   r   )r   r   r5   r6   r7   r8   r+   r9   ra   rb   rc   r"   r~   r   r   r   r   r   AlignType16  sx    






r   c             C   s    t | |||||||||	|
 d S )N)r   )r   r7   r8   r+   r9   ra   rb   rc   r"   r~   r   r   r   r   AlignType16Phase1'  s    r   c             C   s   t | }|d kr|  d S d}x|dkr|dkrLd}| }|rt|  d}q |dkr~||t}tj| t| ||| j d}q |dkr d}| }|r t|  q W d S )Nr   r   r    r,   r,   r,   )alignType14SetPatternalignType14Phase1r   r1   rn   alignType14Phase2rO   alignType14Phase3)r   r   r5   r`   rq   r6   r   rr   r   r   r   AlignType14*  s,    


r   c             C   sv   d }t j| j | _tjd| j  | jttfkr6d}| jtkrFd}n| jt	krVd}n| jt
krdd S tjd|  |S )NzPen config=%dr   r    r   z
Pattern=%d)r   rN   r-   rO   r1   rn   rR   rT   rU   rV   rS   )r   rq   r   r   r   r   F  s    


r   c             C   s,   | j tj  | j tjtj | j  d S )N)r}   r   r   r   r   r   )r   r   r   r   r   [  s    r   c             C   s   d}|t kr tj}|d d }nF|tkr<tj}|d d }n*|tkrRtjtjB }n|tkrftjtjB }tj	d||f  | j
tj|| | j  d S )Nr   r    zActive colors=0x%x Values=%s)rR   r   r   rT   r   rU   rV   r   r1   rn   r}   r   r   )r   rr   rq   rO   r   r   r   r   r   a  s    r   c             C   s,   | j tj  | j tjtj | j  d S )N)r}   r   r   r   r   r   )r   r   r   r   r   w  s    r   c             C   s^   | j tjd | j tjd | j tjd | j tjd | j  | jtj	j
tjddd d S )Nr   r   r   zalign1_8xx.pcl.gz)r   r   OID_AGENT2_VERTICAL_ALIGNMENTOID_AGENT2_HORIZONTAL_ALIGNMENTOID_AGENT1_BIDIR_ADJUSTMENTOID_AGENT2_BIDIR_ADJUSTMENTr   printGzipFileospathry   prophome_dir)r   r   r   r   r3   }  s    r3   c             C   s   | j tj|d d  | j tj|d d  | j tj|d d  | j tj|d d  | j tjd | j  | jt	j
jtjddd d S )Nr      r   r   r   zalign2_8xx.pcl.gz)r   r   r   r   r   r   OID_MARKING_AGENTS_INITIALIZEDr   r   r   r   ry   r   r   )r   r7   r8   r+   r9   r   r   r   r4     s    r4   c             C   s^   | j tjd | j tjd | j tjd | j tjd | j  | jtj	j
tjddd d S )Nr   r   r   zalign1_9xx.pcl.gz)r   r   r   r   r   r   r   r   r   r   ry   r   r   )r   r   r   r   r@     s    r@   c             C   sd   | j tj|d d  | j tjd| d  | j tjd| d  | j tjd| d  | j  d S )Nr   r   )r   r   r   r   r   r   r   )r   r7   r8   r+   r9   r   r   r   rA     s
    rA   c             C   s&   | j   | jtjjtjddd d S )Nr   r   zalign3_9xx.pcl.gz)r   r   r   r   ry   r   r   )r   r   r   r   rB     s    rB   c             C   s4   | j tjd | j  | jtjjtj	ddd d S )Nr   r   r   zalign2_9xx.pcl.gz)
r   r   r   r   r   r   r   ry   r   r   )r   rF   r   r   r   rC     s    rC   c             C   s   | j tjtj | jttfkr$d S | jtkr4d}n| jtkrDd}n| jt	krRd}| j tj
dddd | j  | jtjjtjdd| d S )Nzcbbcal.ldl.gzzcbccal.ldl.gzzcb2pcal.ldl.gzr   r   r   )r}   r   buildLIDILPacket#PACKET_TYPE_RESUME_NORMAL_OPERATIONrO   rP   rQ   rR   rT   rU   buildSetPrinterAlignmentPacketr   r   r   r   ry   r   r   )r   ldl_filer   r   r   rW     s    


rW   c             C   s  t jd|||||f  | jttfkr*d S d| d }| jtj| | jtkrtd| d }| jtj	|ddd n~| jt
krd| d }| jtj	ddd| nP| jtkrd| d }	d| d	 }
d| d }d| d }| jtj	||
|	| | jtj  | j  d S )
NzA=%d, B=%d, C=%d, D=%d, E=%dr>   0   r   r    r   r=   i)r1   rn   rO   rP   rQ   r}   r   buildZCAPacketrR   r   rT   rU   buildSetPensAlignedPacketr   )r   r7   r8   r+   r9   ra   rF   k_bidicmy_bidiverthortr   r   r   rZ     s&    


rZ   c             C   s(   | j tkr$| jtjjtjddd d S )Nr   r   zcb2pcal_done.ldl.gz)rO   rU   r   r   r   ry   r   r   )r   r   r   r   r]     s    
r]   c             C   s(  | j tjtj | jttfkr$d S | jtkr4d}n>| jtkrDd}n.| jt	krTd}n| jt
krdd}n| jtkrrd}| j tjd | j tjd | j tjd | j tjd | j tjd | j tjd | j tjd | j tjd | j tjd | j  | jtjjtjdd| d S )	Nzcbbcal.ldl.gzzcbpcal.ldl.gzzcbccal.ldl.gzzcb2pcal.ldl.gzzcbcpcal.ldl.gzr   r   r   )r}   r   r   r   rO   rP   rQ   rR   rS   rT   rU   rV   r   buildColorHortPacketbuildColorVertPacketbuildBlackVertPacketbuildBlackHortPacketbuildBlackBidiPacketbuildColorBidiPacketbuildPhotoHuePacketbuildColorHuePacketr   r   r   r   ry   r   r   )r   r   r   r   r   rX     s0    




rX   c          	   C   sX  t jd|||||||f  | jttfkr.d S d| d }| jtj| | jtkrtd| d }	| jtj	|	 n| jt
krd| d }
| jtj|
 n| jtkrd| d }| jtj| nv| jtkrfd| d }d| d	 }d| d }	d| d }| jtjd | jtjd | jtj| | jtj| | jtj	|	 | jtj| n| jtkr>d| d }d| d
 }d| d }d| d }
tj| | }tj| | }| jtj| | jtj| | jtjd | jtjd | jtj|
 | jtj| | jtj| | jtj| | jtj  | j  d S )Nz(A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%dr>   r   r   r    r=   r   ir   r   )r1   rn   rO   rP   rQ   r}   r   r   rR   r   rS   ZbuildPhotoBidiPacketrT   r   rU   r   r   r   r   rV   r   PHOTO_ALIGN_TABLECOLOR_ALIGN_TABLEZbuildPhotoHortPacketZbuildPhotoVertPacketr   r   r   r   )r   r7   r8   r+   r9   ra   rb   rc   rF   r   kcm_bidir   r   r   	photo_adj	color_adjr   r   r   r[     sT    


r[   c             C   sV   | j   | jtkr.| jtjjtjddd n$| jt	krR| jtjjtjddd d S )Nr   r   zcb2pcal_done.ldl.gzzcbccal_done.ldl.gz)
r   rO   rU   r   r   r   ry   r   r   rV   )r   r   r   r   r^   @  s
    

r^   c             C   s   | j tj  | j  d S )N)r}   r   ZbuildPrintInternalPagePacketr   )r   r   r   r   re   I  s    re   c             C   s   | j tjd | j tjd | j tjd | j tjd | j tjd | j tjd | j tjd | j tj	d | j
ttfkrd S | j
tkrd}n>| j
tkrd}n.| j
tkrd}n| j
tkrd}n| j
tkrd}| j  | jtjjtjdd| d S )	Nr   zcrbcal.pcl.gzzcrpcal.pcl.gzzcrccal.pcl.gzzcrcbcal.pcl.gzzcrcpcal.pcl.gzr   r   )r   r   r   r   r   r   OID_AGENT3_VERTICAL_ALIGNMENTOID_AGENT3_HORIZONTAL_ALIGNMENTOID_AGENT3_BIDIR_ADJUSTMENTOID_ZCArO   rP   rQ   rR   rS   rT   rU   rV   r   r   r   r   ry   r   r   )r   Zpcl_filer   r   r   rY   M  s,    




rY   c          	   C   s  t jd|||||||f  d| d }| jtj| | jtkr^d| d }	| jtj|	 np| jtkrd| d }
| jtj	|
 nH| jt
krd| d }| jtj| n | jtkr$d| d }d| d }d| d }	d| d }| jtj|	 | jtj| | jtj| | jtj| n| jtkrd| d }d| d	 }d| d }d| d }
tj| | }tj| | }|d> | }| jtj| | jtj| | jtj	|
 | jtj| | jtj| | j  d S )
Nz(A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%dr>   r   r   r=   r   iii)r1   rn   r   r   r   rO   rR   r   rS   r   rT   r   rU   r   r   rV   r   r   r   OID_COLOR_CALIBRATION_SELECTIONr   r   r   )r   r7   r8   r+   r9   ra   rb   rc   rF   r   r   r   r   r   r   r   r   r   r   r   r\   q  sF    


r\   c             C   s&   | j   | jtjjtjddd d S )Nr   r   zcrcaldone.pcl.gz)r   r   r   r   ry   r   r   )r   r   r   r   r_     s    r_   c                sf   | j  d   fddtt D }t|kr8d
\}}nd\}}| j  | jtjjt	j
dd	| |S )Nr   c                s   g | ]} | d  qS )typer   )r   r   )r   r   r   r     s    z$alignType8Phase1.<locals>.<listcomp>align6_450.pcl.gzr   align4_450.pcl.gzr'   r   r   )r   r   )r   r'   )r-   r.   r/   AGENT_TYPE_KCMr   r   r   r   ry   r   r   )r   r:   rb   rj   r   )r   r   rh     s    
rh   c       
      C   s0  ddddddddd	d
	}dddddddd	dd
	}dddddddd	dd
	}|dkrdj tjdtjtjd|| tjd|| tjd|| tjd|| tjd|| tjd|| tjtjg}	nddj tjdtjtjd|| tjd|| tjd|| tjd|| tjd|| tjd|| tjtjg}	| j|	 | j  d S )Nz  z  z  z  z   z z z z )	r   r    r   r'   r)   r   r>   r   r=   z z  $z $r'   rv   z@PJL ENTER LANGUAGE=PCL3GUI
z*o5Wz*o5Wz*o5Wz*o5Wz*o5Wz*o5Wz*o5Wz*o5Wz*o5W
z*o5W	)ry   r   rz   RESETr{   r}   r   )
r   rj   r7   r8   r+   r9   Zalign_values1Zalign_values2Zalign_values3sr   r   r   ri     sh    

ri   c             C   s"   | r| j tjtj | j  d S )N)r   r   rt   ru   r   )r   r   r   r   r   AlignType12  s    r   c             C   s   dS )NTr   )r   r   r   r   cleanVerifyPage  s    r   c             C   sx  d}d}|
| }x`|dkrr|dkrfd}|t krB| }|sdd}n"|tkrd|dkrd|dd}|sdd}q|dkr||  |tkr|dkrd}nd}q|dkrd}| }|rd}q|dkrd}|tkrt| d| nt|  q|dkrd}|dk r|d	}n| }|rpd
}q|d
kr@||  |tkr:|dkr:d}nd}q|dkr`d}| }|rpd}q|dkrd}|tkrt| d| nt|  q|dkrd}|dkr|d}n| }|rpd}q|dkr||  d}|tkr|dkrd}nd}q|dkrd}| }|rpd}q|dkrJd}|tkr@t| d| nt|  q|dkrd}|dkrj|d q|  qW |S )Nr   r   Fz"Clean functinality conformation...zClean Conformationr   r    r'   zClean Level 1 is Completed.r)   r>   r   r   zClean Level 2 is Completed.r=   r   r$   r   zjLevel 3 cleaning complete. Check this page to see if the problem was fixed. replace the print cartridge(s)r,   r,   r,   r,   r,   r,   r,   r,   r,   )ZCLEAN_TYPE_PCL_WITH_PRINTOUTZCLEAN_TYPE_LEDMcleanTypeVerifyprint_clean_test_page)r   Z
clean_typeZlevel1Zlevel2Zlevel3r   Zdlg1Zdlg2Zdlg3wait_uiZverify_pager6   levelZprint_verify_pager   r   r   r   cleaning  s    




















r   c             C   s*   | j   | jtjjtjddddd d S )Nr   Zpszclean_page.pdf.gzF)raw)r   r   r   r   ry   r   r   )r   r   r   r   r   n  s    r   c             C   s   | j tjtj | j  d S )N)r   r   	OID_CLEANZCLEAN_CLEANr   )r   r   r   r   
cleanType1s  s    r   c             C   s   | j tjtj | j  d S )N)r   r   r   ZCLEAN_PRIMEr   )r   r   r   r   
primeType1w  s    r   c             C   s   | j tjtj | j  d S )N)r   r   r   ZCLEAN_WIPE_AND_SPITr   )r   r   r   r   wipeAndSpitType1{  s    r   c             C   s4   | j tj  | j tjtjtjtj | j  d S )N)r}   r   r   r   PACKET_TYPE_COMMANDCOMMAND_HANDLE_PENZCOMMAND_HANDLE_PEN_CLEAN_LEVEL1r   )r   r   r   r   
cleanType2  s
    
r   c             C   s4   | j tj  | j tjtjtjtj | j  d S )N)r}   r   r   r   r   r   ZCOMMAND_HANDLE_PEN_CLEAN_LEVEL2r   )r   r   r   r   
primeType2  s
    
r   c             C   s4   | j tj  | j tjtjtjtj | j  d S )N)r}   r   r   r   r   r   ZCOMMAND_HANDLE_PEN_CLEAN_LEVEL3r   )r   r   r   r   wipeAndSpitType2  s
    
r   c             C   s4   yt |  }W n" ttfk
r.   tjd Y nX |S )NzUnicode Error)CleanXMLUnicodeEncodeErrorUnicodeDecodeErrorr1   r2   )namexmlr   r   r   setCleanType  s
    r   c             C   sv   t  }| jjdt}|tkr$| j}n"|tkr4| j}ntj	d|  dS |t
|}|rr|jddd }|rrtj|}|S )Nzstatus-typezNot an LEDM status-type: %drv   s   

r   )r
   mqgetSTATUS_TYPE_NONESTATUS_TYPE_LEDMr   STATUS_TYPE_LEDM_FF_CC_0r   r1   r2   LEDM_CLEAN_CAP_XMLr   r   ZExtractXMLData)r   Zdata_fpstatus_typer   r   r   r   r   getCleanLedmCapacity  s    

r  c             C   s   t | }t|krdS dS d S )NTF)r  LEDM_CLEAN_VERIFY_PAGE_JOB)r   Z
IPCap_datar   r   r   isCleanTypeLedmWithPrint  s    r  c             C   s    t d}| jt| | j  d S )NZcleaningPage)r   post
status_xmlr   )r   r   r   r   r   cleanTypeLedm  s    r  c             C   s    t d}| jt| | j  d S )NZcleaningPageLevel1)r   r  r  r   )r   r   r   r   r   cleanTypeLedm1  s    r  c             C   s    t d}| jt| | j  d S )NZcleaningPageLevel2)r   r  r  r   )r   r   r   r   r   cleanTypeLedm2  s    r  Tc       	      C   s   d}d}| j jdt}td}|tkr.| j}n|tkr>| j}ntj	d|  t
d|  xf|dkrtj|}|d tkrd}|r| jt| ntjd |d7 }|d	krZtj	d
 tjd qZW d S )Nr   zstatus-typeZcleaningVerificationPagezNot an LEDM status-type: %dz Performing level %d cleaning....r   zstatus-coder      z$Timeout waiting for Clean to finish.r,   r,   )r   r   r   r   r   r   r   r   r1   r2   printr   ZStatusType10StatusZSTATUS_PRINTER_IDLEr  r  timeZsleepsysexit)	r   r   Zprint_verification_pager6   Ztimeoutr   r   r   Zstatus_blockr   r   r   r     s*    



r   c             C   s   d\}}d}x|d	kr|dkr2t | r,d}qd}q|dkrVd
}| }|rt|  d}q|dkrvd}| \}}|rd}q|dkrt| | d}q|dkrd}|  d}qW |S )Nr'   r   Fr   r   r    r   )r'   r   r,   r,   r,   r,   r,   )colorCalType1PenCheckcolorCalType1Phase1colorCalType1Phase2)r   r   colorcal_uiphotopenreq_uivaluer6   r   r   r   r   colorCalType1  s4    


r  c                sD   | j  d   fddtt D }t|kr2dS tjd dS d S )Nr   c                s   g | ]} | d  qS )r   r   )r   r   )r   r   r   r     s    z)colorCalType1PenCheck.<locals>.<listcomp>Tz=Cannot perform color calibration with no photo pen installed.F)r-   r.   r/   r   r1   r2   )r   r:   r   )r   r   r    s    
r  c             C   s&   | j   | jtjjtjddd d S )Nr   r   zcolorcal1_450.pcl.gz)r   r   r   r   ry   r   r   )r   r   r   r   r    s    r  c             C   sf   dddddddd	}d
j tjdtjtjd|| d tjd|| d tjtjg}| j| | j  d S )N<   Ì|\   ì      ¬)r   r    r   r'   r)   r   r>   rv   z@PJL ENTER LANGUAGE=PCL3GUI
z*o5W r   z*o5W r   )r  r  )r  r  )r  r  )r  r  )r  r  )r  r  )r  r  )ry   r   rz   r   r{   r}   r   )r   r  Z	color_calr   r   r   r   r  "  s     

r  c             C   s   d	\}}d}x|d
kr|dkr2t | r,d}qd}q|dkrVd}| }|rt|  d}q|dkrvd}| \}}|rd}q|dkrt| | d}q|dkr|  d}d}qW |S )Nr'   r   Tr   r   r    r   F)r'   r   r,   r,   r,   r,   r,   )colorCalType2PenCheckcolorCalType2Phase1colorCalType2Phase2)r   r   r  r  r  r6   r   r   r   r   colorCalType2;  s4    


r   c                sD   | j  d   fddtt D }t|kr2dS tjd dS d S )Nr   c                s   g | ]} | d  qS )r   r   )r   r   )r   r   r   r   `  s    z)colorCalType2PenCheck.<locals>.<listcomp>Tz3Cannot perform color calibration with pens missing.F)r-   r.   r/   r0   r1   r2   )r   r:   r   )r   r   r  ^  s    
r  c             C   s   | j tjtj | j  d S )N)r   r   rt   PRINT_INTERNAL_PAGE_COLOR_CALr   )r   r   r   r   r  i  s    r  c          	   C   s~   t j}djdt||d  d t||d d  d t||d d  d t||d d  d dg}| j| | j  d S )	Nrv   z&b19WPML  	r'   r   r   r    r   z	%-12345X)r   ZCOLOR_CAL_TABLEry   r|   r}   r   )r   r  r+   r   r   r   r   r  p  s    (,
r  c       	      C   s   d\}}d}x|dkr|dkr2t | r,d}qd}q|dkrVd}| }|rt|  d}q|dkrzd}|dd\}}|rd	}q|d	krd}|d
d\}}|rd}q|dkrt| || d}q|dkr|  d}d}qW |S )Nr'   r   Tr   r   r    r!   rL   r   r%   F)r'   r   r,   r,   r,   r,   r,   r,   )colorCalType3PenCheckcolorCalType3Phase1colorCalType3Phase2)	r   r   r  r  r  r6   r   ZvalueAZvalueBr   r   r   colorCalType3  s>    
r%  c                sL   | j  d   fddtt D }t|ks6t|kr:dS tjd dS d S )Nr   c                s   g | ]} | d  qS )r   r   )r   r   )r   r   r   r     s    z)colorCalType3PenCheck.<locals>.<listcomp>TzMCannot perform color calibration with no photo (or photo blue) pen installed.F)r-   r.   r/   r   ZAGENT_TYPE_BLUEr1   r2   )r   r:   r   )r   r   r"    s    
r"  c             C   s   | j tjtj | j  d S )N)r   r   rt   r!  r   )r   r   r   r   r#    s    r#  c             C   sR   t j|d  |d  }t j|d  |d  }|d> | }| jtj| | j  d S )Nr   r   )r   r   r   r   r   r   r   )r   r!   r%   r   r   Z	adj_valuer   r   r   r$    s
    r$  c             C   s   d}d}x|dkr|dkr6d}| }|rt |  d}q
|dkrVd	}| \}}|rd}q
|dkrnt| | d}q
|dkr
d
}| }|r
t|  d}q
W |S )Nr   Tr   r    r   r'   r,   r,   r,   r,   r,   )colorCalType4Phase1colorCalType4Phase2colorCalType4Phase3)r   r   r  r   r6   r   rr   r   r   r   colorCalType4  s0    


r)  c             C   s   | j tjtj | j  d S )N)r   r   rt   r!  r   )r   r   r   r   r&    s    r&  c             C   s   | dkrdS | d S )Nr   rH   r   )r  r   r   r   colorCalType4AdjValue  s    r*  c             C   s  d|krd\}}}}}}n|\}}	}
}t j| |	 }t j|
 | }t|}t|| }t j| |	 }t j|
 | }t|}t|| }tt j| |	 }td}tjd||||||f  | j	t
j| | j	t
j| | j	t
j| | j	t
j| | j	t
j| | j	t
j| | j  d S )Nr      r   z#C=%d, M=%d, Y=%d, c=%d, m=%d, k=%d
r,   )r+  r+  r+  r+  r+  r+  )r   ZTYPE_4_C_TABLEZTYPE_4_LC_TABLEr*  ZTYPE_4_M_TABLEZTYPE_4_LM_TABLEZTYPE_4_Y_TABLEr1   rn   r   r   ZOID_COLOR_CALIBRATION_ARRAY_1ZOID_COLOR_CALIBRATION_ARRAY_2ZOID_COLOR_CALIBRATION_ARRAY_3ZOID_COLOR_CALIBRATION_ARRAY_4ZOID_COLOR_CALIBRATION_ARRAY_5ZOID_COLOR_CALIBRATION_ARRAY_6r   )r   rr   ZCadjZMadjZYadjZcadjZmadjZkadjZsel1Zsel2Zsel3Zsel4Ztmp1Ztmp2r   r   r   r'    s6    r'  c             C   s   | j tjtj | j  d S )N)r   r   rt   Z+PRINT_INTERNAL_PAGE_COLOR_PALETTE_CMYK_PAGEr   )r   r   r   r   r(    s    r(  c             C   s   | r| j d | j  d S )Nz]%-12345X@PJL ENTER LANGUAGE=PCL3GUI
E%Puifp.multi_button_push 20;
udw.quit;*rCE%-12345X)r}   r   )r   r   r   r   r   colorCalType5#  s    
r,  c             C   s"   | r| j tjtj | j  d S )N)r   r   rt   r!  r   )r   r   r   r   r   colorCalType6)  s    r-  c             C   s"   | r| j tjtj | j  d S )N)r   r   rt   Z/PRINT_INTERNAL_PAGE_AUTOMATIC_COLOR_CALIBRATIONr   )r   r   r   r   r   colorCalType7.  s    r.  c             C   s   | r| j d | j  d S )Nz\%-12345X@PJL ENTER LANGUAGE=PCL3GUI
E%Puifp.multi_button_push 3;
udw.quit;*rCE%-12345X)r}   r   )r   r   r   r   r   linefeedCalType15  s    
r/  c             C   s"   | r| j tjtj | j  d S )N)r   r   rt   Z(PRINT_INTERNAL_PAGE_LINEFEED_CALIBRATIONr   )r   r   r   r   r   linefeedCalType2:  s    r0  c             C   s   | r| j d | j  d S )Nz]%-12345X@PJL ENTER LANGUAGE=PCL3GUI
E%Puifp.multi_button_push 14;
udw.quit;*rCE%-12345X)r}   r   )r   r   r   r   r   printQualityDiagType1B  s    
r1  c             C   s"   | r| j tjtj | j  d S )N)r   r   rt   Z,PRINT_INTERNAL_PAGE_PRINT_QUALITY_DIAGNOSTICr   )r   r   r   r   r   printQualityDiagType2G  s    r2  )T)nrc   Zcodesrv   r   r   Zprntr   r   r   r  Zsixextr	   r
   r   r  r   r  r   r   r;   rG   rd   rg   rk   rs   rl   rm   ro   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r3   r4   r@   rA   rB   rC   rW   rZ   r]   rX   r[   r^   re   rY   r\   r_   rh   ri   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r  r  r  r  r   r  r  r  r%  r"  r#  r$  r)  r&  r*  r'  r(  r,  r-  r.  r/  r0  r1  r2  r   r   r   r   <module>   s   	

:=},Z;J	
	#:	$2@l	
%$#)"+