JVc@siddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl Tddl Tddl m Z mZmZmZddlmZddlTdZdZd Zd Zd Zd Zd ZdZdZdZd Zd Zd Z dZ!dZ"dZ#d Z$dZ%dZ&dZ'd Z(d Z)d Z*dZ+dZ,dZ-d Z.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8d Z9d Z:dZ;dZ<dZ=dZ>d Z?dZ@dZAdZd Zd Zd Zd ZdZBd ZCdZDdZEdZFdZGdZHd ZIdZJdeKfdYZLdejMfd YZNd!eOfd"YZPdS(#iN(tStringIO(tBytesIO(t*(tdevicetutilstpmltcodes(tcupsiiiiiiiiiii i i i i iiiiJi$i3it PMLFaxDevicecBseZdddeedZdZdZeeeddZ dZ dZ ee e ddZ dZ d Zd Zd Zd d ded ddd ZRS(cCs2tj||||||d|_d|_dS(N(t FaxDevicet__init__tNonetsend_fax_threadtupload_log_thread(tselft device_urit printer_nametcallbacktfax_typet disable_dbus((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyR s   cCs|jtjt|S(N(tsetPMLRtOID_FAX_LOCAL_PHONE_NUMtstr(Rtnum((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyt setPhoneNumscCs\tr;tj|jtjdjd}|jdStj|jtjdSdS(Nisutf-8(tPY3Rt printabletgetPMLRRtencodetdecode(Rtdata((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyt getPhoneNums( tdocRcCs|jtj|S(N(RRtOID_FAX_STATION_NAME(Rtname((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pytsetStationNamescCs\tr;tj|jtjdjd}|jdStj|jtjdSdS(Nisutf-8(RRRRRR!RR(RR((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pytgetStationNames( R!cCsdS(N((R((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pytsetDateAndTimescCs4|js,t||_|jjtStSdS(N(tisUloadLogActivetUploadLogThreadR tstarttTruetFalse(R((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyt uploadLogs   cCs$|jdk r|jjStSdS(N(R R tisAliveR*(R((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pytisUploadLogActives cCs2|jdk r.|jjr.|jjndS(N(R R R,tjoin(R((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pytwaitForUploadLogThreadstc CsU|jsMt||j||||||||| |_|jjtStSdS(N(tisSendFaxActivetPMLFaxSendThreadtserviceR R(R)R*( Rtphone_num_listt fax_file_listt cover_messagetcover_ret cover_functpreserve_formattingRt update_queuet event_queue((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyt sendFaxess    N(t__name__t __module__R t FAX_TYPE_NONER*R RRtpropertyt phone_numR#R$t station_nameR%R+R-R/R<(((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyR}s"         tPMLUploadLogThreadcBseZdZdZRS(cCstjj|||_dS(N(t threadingtThreadR tdev(RRF((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyR scCskd}d}d}d}d}d}d}d}d } d } |} x"| |krf| |kr`qE| |kroqE| |kr~qE| |kr|} y|jjWn-tk r} tjd | jt} qcXytjtj tj Wqctk rt} qcXqE| |krA|} |j } | tj krc|} qcqE| |kr|} |jjtj tj|jjtjtjqE| |kr8| } d}xtr4|d 7}|j } | tjkrPn| tjtjfkrtjd t} Pn|dkr$t} tjdPntjdqWqE| | krGqE| | krE|jjqEqEWdS(Nii iiiii(i2i<iFsUnable to open device (%s).isCfg upload aborted!s Unable to get into active state!g?(RFtopentErrortlogterrortmsgt STATE_ERRORRRtOID_UPLOAD_TIMEOUTtDEFAULT_UPLOAD_TIMEOUTtgetCfgUploadStatetUPDN_STATE_IDLEtOID_FAX_CFG_UPLOAD_DATA_TYPEt FAX_CFG_UPLOAD_DATA_TYPE_FAXLOGStOID_DEVICE_CFG_UPLOADtUPDN_STATE_REQSTARTR)tUPDN_STATE_XFERACTIVEtUPDN_STATE_ERRORABORTtUPDN_STATE_XFERDONEttimetsleeptclose(Rt STATE_DONEt STATE_ABORTt STATE_SUCCESSt STATE_BUSYtSTATE_DEVICE_OPENtSTATE_CHECK_IDLEtSTATE_REQUEST_STARTtSTATE_WAIT_FOR_ACTIVEtSTATE_UPLOAD_DATAtSTATE_DEVICE_CLOSEtstatetetul_statettries((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pytrunsv                    (R=R>R Ri(((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyRCs R2cBseZddeedeedZdZdZdZdZdZ dZ edd Z d Z d Z d d ZdZdZdZdZRS(R0c Cs2tj|||||||||| | | dS(N(t FaxSendThreadR ( RRFR3R4R5R6R7R8R9RR:R;((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyR +s cI CsRd}d}d}d}d}d}d}d}d } d } d } d } d } d} d}|j}|}g|_x||krM|jr|}ntjd|||krtjd|jtddf| }qx||krtjd|jtddf| }qx||krRtjd|jt ddf| }qx||krtjd|jt ddf| }qx||krwtjddu|}zy|j j Wn-t k r}tjd|j|}nrXyJ|j j|_tjd|j|j j|_tjd|jWn$t k ratjd|}nXWd|j jXqx||krtjddv|j|}qx||krtjddw|j|}qx||krqtjddx| }y?t|}tjd|d |jtd|d fWn'tk r`|}tjd!qxnX|j|_qx|| krtjd"dy|j|}qx|| krtjd#dz|j| }qx|| krtjd$d{|j| }qx|| krtjd%d||}d}d}d}d}d}d}d}d}d }d }d }d }d }d} d}!d&}"d'}#d(}$d)}%t}&tj}'|}(x|(|kr|jrtjd*|}(n|&r&|j })|)tj!tj"fkr&tjd+|)|}(|}q&ntjd,| |(f|(|kr^t}&|$}(|}q|(|krtjd-|j#}'tjd.|'tj$j%|'d/ft}&|$}(|}q|(|krtjd0t}&|$}(|}q|(|krtjd1t}&|$}(|}q|(|krtjd2d}|}(y|j j Wn-t k r}}tjd|j|}(qX|j j&t'kr|}(qq|(|krtjd3d~y|j j(tj)\}*}+Wn$t k rtjd4|}(qX|*tj*kr$|}(tjd5qt+j,d6t+j-}+tjd7|+y|j j.tj)|+Wn$t k rtjd8|}(qX|j j(tj)\}*},|,|+kr|}(qtjd9|}(q|(|krjtjd:d|}(|j j/t0krZtjd;y|j j1Wqgt k rV}tjd<|j|}(qgXqtjd=q|(|krx tjd>d|}(|j }-|j2}.|j3}/|-tj4ks|-tj5ks|-tj"kro |.tj6ks|.tj7kro |/tj8ks |/tj9kro |-tj4kr9 tjd?qu tjd@|j j.tj:tj4t+j;dAq|}(q|(|kr tjdBd|}(|j }-|-tj4kr tjdCtjdD|j j.tj:tj<t+j;dEtjdFdE}0x|0dkr tjdG|0y|j }-Wn%t k r` tjdH|}(PnX|-tj!krt Pnt+j;dEtjdD|j j.tj:tj<|0dE7}0q WtjdI|}(t=}&qtjdJ|}(q|(|kr tjdKd|}(yP|j j.tj>tj?|j j.tj@tjAtjdL|j jBWqt k r }tjdM|j|}(qXq|(|kr tjdNd|}(|j j/tCkr tjd;y|j j1Wq t k r tjdO|}(q Xqtjd=q|(|kr tjdPd| }(tjdQ|dRtjdS|jDtEt=tFtGBtHB|dRjIdT}1tjtJ|1|jK|1y|jLWqt k r tjdU|}(qXq|(| krbtjdVd|!}(yt |jMdW}2Wn'tNk rG tjdX|}(qnXy|2jOtP}3Wn'tNk r tjdX|}(qnX|jQ|3\ }4}5}6}7}8}9}:};}<}=|4dYkr tjdZ|}(qtjd[|4|5|6|7|8|9|:|;ftjd\|jDtRt=tF|jS|6y|jLWqt k r^tjd]|}(qXq|(|!krtjd^d|"}(tT}>x*tU|6D] }?|jr|}(n|(|krPny|2jOtV}3Wn'tNk rtjdX|}(qnX|jW|3\}@}A}B}C}D}=tjd_|@|A|B|C|Df|>jX|2jO|C|2jO|D}E|>jYd|jDtRd`tZ|j[|@|7|8|A|B|;y|>jOt\}FWn'tNk rtjdX|}(qnX|Fdkrtjda|}(qn|j]|Ft\}Gxqt=r|>jOt\}F|Gt\7}G|j }-|-tj5kra|}(Pn|jrw|}(Pn|Fdkr|j^|By|jLWn$t k rtjdU|}(nXPn6y|jLWn%t k rtjdU|}(PnX|j2}Hx|Htj_kr|jt`d|dRft+j;db|jrZ|}(Pn|j }-|-tj5kr|}(Pn|j2}HqW|(||fkr(x|Htjakr$|jtbd|dRft+j;db|jr|}(Pn|j }-|-tj5kr|}(Pn|j2}HqWn|HtjckrT|jtd|@|dRfn|jDtRd`d|j]|F|(||fkrPqqW|>jed|>jYdqWq|(|"kr0tjdcd|#}(tjdd|jDtRttHy|jLWn$t k r&tjdU|}(nXt}&q|(|#kr<tjded|#}(t+j;db|j2}H|Htj_kr|jt`d|dRftjdfq|Htjckr|jtd|@|dRftjdgq|Htj7tj8fkr|$}(|}tjdhq|jtd|@|dRftjdiq|(|$krtjdjd|jtfddfy|j j.tj)dWnt k rtjdmnX|%}(q|(|%krtjdnd|}(tjdoytgjWnthk rnXy|2jWnthk r&nX|j j/tCkrVtjdp|j jin|j j.tj:tj4t+j;dE|j j/t0krtjdp|j jin|j jqqWqx|| krxtjdqd|jjrAtjdr|jMy!tkjl|jMtjdsWqAtmk r=tjdtqAXn|}qxqxWdS(Nii iiii(i2i<iFiPiZidinixisSTATE=(%d, 0, 0)sAborted by user.R0sSuccess.sError, aborting.sDevice busy, aborting.s%s State: Get sender infoRsUnable to open device (%s).sSender name=%ss Sender fax=%ssPML get failed!s!%s State: Pre-render non-G3 filess%s State: Get total page counts%s State: Next recipientsProcessing for recipient %sR"sLast recipient.s%s State: Render cover pages%s State: Handle single files%s State: Merge multiple filess%s State: Send faxiiiisFax send aborted.sD/L error state=%dsSTATE=(%d, %d, 0)sFax send error.sError State=%d (%s)tUnknownsFax device busy.sFax send success.s%s State: Open devices%s State: Acquire fax tokens Unable to acquire fax token (1).sSkipping token acquisition.s%d%m%Y%H:%M:%SsSetting token: %ss Unable to acquire fax token (2).s Unable to acquire fax token (3).s%s State: Early opensOpening fax channel.sUnable to open channel (%s).sSkipped.s%s State: Check idlesStarting in idle statesResetting to idle...g?s%s State: Request startsTry: 0s)Setting to up/down state request start...isWaiting for active state...sTry: %dsPML/SNMP errors Could not get into active state!sCould not get into idle state!s%s State: Set paramss Setting date and time on device.sPML/SNMP error (%s)s%s State: Late opensUnable to open channel.s%s State: Send dial stringss Dialing: %stfaxsSending dial strings...tasciisChannel write error.s%s State: Send fax headertrbsUnable to read fax file.thplip_g3sInvalid file header. Bad magic.s>Magic=%s Ver=%d Pages=%d hDPI=%d vDPI=%d Size=%d Res=%d Enc=%dsSending fax header...sUnable to write to channel.s%s State: Send pagess%Page=%d PPR=%d RPP=%d BPP=%d Thumb=%dt page_flagssNo data!g?s%s State: Send EOSsEnd of stream...s%s State: Wait for completions Dialing ...sTransmitting ...sTransmitting done or idle ...s Pending ...s%s State: Release fax tokentisUnable to release fax token.s%s State: Close sessionsClosing session...sClosing fax channel.s%s State: CleanupsRemoving merged file: %stRemoveds Not founds********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************ts********************s********************(ntnext_recipient_gentrendered_file_listtcheck_for_cancelRItdebugRJt write_queuet STATUS_IDLEtSTATUS_COMPLETEDt STATUS_ERRORt STATUS_BUSYRFRGRHRKRBt sender_nameRAt sender_faxRZt pre_rendert count_pagestnexttSTATUS_SENDING_TO_RECIPIENTt StopIterationtrecipient_file_listt cover_paget single_filet merge_filesR*Rt DN_ERROR_NONEtgetFaxDownloadStateRURWtgetFaxDownloadErrort DN_ERROR_STRtgett device_statetDEVICE_STATE_NOT_FOUNDRt OID_FAX_TOKENt ERROR_MAX_OKRXtstrftimetgmtimeRRtFAX_TYPE_BLACK_SEND_EARLY_OPENtopenFaxtgetFaxJobTxStatustgetFaxJobRxStatusRPRVtFAXJOB_TX_STATUS_IDLEtFAXJOB_TX_STATUS_DONEtFAXJOB_RX_STATUS_IDLEtFAXJOB_RX_STATUS_DONEtOID_FAX_DOWNLOADRYRTR)tOID_DEV_DOWNLOAD_TIMEOUTtDEFAULT_DOWNLOAD_TIMEOUTtOID_FAXJOB_TX_TYPEtFAXJOB_TX_TYPE_HOST_ONLYR%tFAX_TYPE_BLACK_SEND_LATE_OPENtcreate_mfpdtf_fixed_headertDT_DIAL_STRINGStPAGE_FLAG_NEW_DOCtPAGE_FLAG_END_DOCtPAGE_FLAG_END_STREAMRtreprtcreate_mfpdtf_dial_stringst write_streamtftIOErrortreadtFILE_HEADER_SIZEtdecode_fax_headert DT_FAX_IMAGEStcreate_mfpdtf_fax_headerRtrangetPAGE_HEADER_SIZEtdecode_page_headertwritetseektPAGE_FLAG_NEW_PAGEtcreate_sop_recordtRASTER_DATA_SIZEtcreate_raster_data_recordtcreate_eop_recordtFAXJOB_TX_STATUS_DIALINGtSTATUS_DIALINGtFAXJOB_TX_STATUS_CONNECTINGtSTATUS_CONNECTINGtFAXJOB_TX_STATUS_TRANSMITTINGtSTATUS_SENDINGttruncatetSTATUS_CLEANUPtmmt NameErrortcloseFaxtremove_temp_filetostremovetOSError(IRR[t STATE_ABORTEDR]R^tSTATE_READ_SENDER_INFOtSTATE_PRERENDERtSTATE_COUNT_PAGEStSTATE_NEXT_RECIPIENTtSTATE_COVER_PAGEtSTATE_SINGLE_FILEtSTATE_MERGE_FILEStSTATE_SEND_FAXt STATE_CLEANUPRLtnext_recipientReRft recipienttFAX_SEND_STATE_DONEtFAX_SEND_STATE_ABORTtFAX_SEND_STATE_ERRORtFAX_SEND_STATE_BUSYtFAX_SEND_STATE_SUCCESStFAX_SEND_STATE_DEVICE_OPENtFAX_SEND_STATE_SET_TOKENtFAX_SEND_STATE_EARLY_OPENtFAX_SEND_STATE_SET_PARAMStFAX_SEND_STATE_CHECK_IDLEtFAX_SEND_STATE_START_REQUESTtFAX_SEND_STATE_LATE_OPENt FAX_SEND_STATE_SEND_DIAL_STRINGStFAX_SEND_STATE_SEND_FAX_HEADERtFAX_SEND_STATE_SEND_PAGESt!FAX_SEND_STATE_SEND_END_OF_STREAMt FAX_SEND_STATE_WAIT_FOR_COMPLETEtFAX_SEND_STATE_RESET_TOKENtFAX_SEND_STATE_CLOSE_SESSIONt monitor_statet error_statetfax_send_statet fax_statet result_codettokent check_tokentdl_statet tx_statust rx_statustit dial_stringstfftheadertmagictversiont total_pagesthort_dpitvert_dpit page_sizet resolutiontencodingt reserved1t reserved2tpagetptpage_numtpprtrppt bytes_to_readtthumbnail_bytest thumbnailRt total_readtstatus((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyRi4s                                         &                                                                -                 !                                                 cCsV|jjtj\}}|rKtjd|tjj|df|StjSdS(NsD/L State=%d (%s)Rk( RFRRRRIRwtUPDN_STATE_STRRRV(RRRe((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyRs &cCs0|jjtj\}}|r%|StjSdS(N(RFRRtOID_FAX_DOWNLOAD_ERRORtDN_ERROR_UNKNOWN(RRRe((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyRscCsV|jjtj\}}|rKtjd|tjj|df|StjSdS(NsTx Status=%d (%s)Rk( RFRRtOID_FAXJOB_TX_STATUSRIRwtFAXJOB_TX_STATUS_STRRR(RRR ((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyRs &cCsV|jjtj\}}|rKtjd|tjj|df|StjSdS(NsRx Status=%d (%s)Rk( RFRRtOID_FAXJOB_RX_STATUSRIRwtFAXJOB_RX_STATUS_STRRR(RRR ((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyRs &cCsV|jjtj\}}|rKtjd|tjj|df|StjSdS(NsCfg Upload State = %d (%s)Rk( RFRRRSRIRwR RRV(RRRe((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyROs &icCsjt}|rA|tkr%|t7}qA|tkrA|t7}qAn|jjtjdd|||dS(NsR R*R RiRRRRRORRRRRRRR(((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyR2*s$  v          (QtsysRtos.pathRRXRDtbase.sixext.movesRtioRtbase.gt base.codestbaseRRRRtprntRRltPAGE_FLAG_NONERtPAGE_FLAG_END_PAGERRRRRtMFPDTF_RASTER_BITMAPtMFPDTF_RASTER_GRAYMAPtMFPDTF_RASTER_MHtMFPDTF_RASTER_MRtMFPDTF_RASTER_MMRtMFPDTF_RASTER_RGBtMFPDTF_RASTER_YCC411tMFPDTF_RASTER_JPEGtMFPDTF_RASTER_PCLtMFPDTF_RASTER_NOTt DT_UNKNOWNRtDT_SCANNED_IMAGESRt DT_DEMO_PAGEStDT_SPEED_DIALSt DT_FAX_LOGSt DT_CFG_PARMSt DT_LANG_STRStDT_JUNK_FAX_CSIDStDT_REPORT_STRStDT_FONTSt DT_TTI_BITMAPt DT_COUNTERSt DT_DEF_PARMStDT_SCAN_OPTIONStDT_FW_JOB_TABLER R%R"RtIMAGE_VARIANT_HEADER_SIZERRtSOP_RECORD_SIZEtRASTER_RECORD_SIZEtEOP_RECORD_SIZEtDIAL_STRING_RECORD_SIZEt SRC_UNKNOWNR&t SRC_SCANNERtSRC_HOST_THEN_SCANNERtSRC_SCANNER_THEN_HOSTtTTI_NONER'tTTI_OVERLAYED_ON_IMAGERR RRERCRjR2(((sZ/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/pmlfax.pyts        " WV