ó J¡Vc@ s…ddlmZddlZddlZddlZddlmZmZmZddl Z ddl Z ddl Z ddlZddl j jZddlTddlTddlTddlmZmZmZmZmZddlmZddlTe jde jƒZd Zd Zd Zd Zd Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(de)fd„ƒYZ*de+fd„ƒYZ,dS(iÿÿÿÿ(tdivisionN(tBytesIOt to_bytes_utf8t to_unicode(t*(tdevicetutilstcodestdimetstatus(RisHTTP/\d.\d\s(\d+)iÈiÊiÉiôi÷iiÀs€%ss€%ss€%ss%s%dTTI_OffsH%d17282200BWmh%d%dsÂ%sCanceledt LEDMFaxDevicecB s’eZd d d eed„Zd„Zd„Zd„Ze eeƒZ d„Z d„Z e e e ƒZ ddd edd d d„Zd„ZRS( cC sYtj||||||ƒd|_d|_|jdkrL|j|_n d|_dS(Ntnett localhost(t FaxDevicet__init__tNonetsend_fax_threadtupload_log_threadtbusthostt http_host(tselft device_urit printer_nametcallbacktfax_typet disable_dbus((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyRJs   cC sïd||jt|ƒ|f}tj|ƒ|j|jdƒƒtƒ}x|jd|ddƒriqNW|jƒ}tj|ƒ|j ƒt j |ƒ}|dkr¬t Syt|jdƒƒ}Wnttfk rät}nX|t kS(NsbPUT %s HTTP/1.1 Connection: Keep-alive User-agent: hplip/2.0 Host: %s Content-length: %d %ssutf-8ittimeoutii(Rtlentlogtlog_datat writeLEDMtencodeRtreadLEDMtgetvaluet closeLEDMthttp_result_pattmatchRtHTTP_OKtinttgroupt ValueErrort TypeErrort HTTP_ERROR(RturltposttdatatresponseR%tcode((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pytput]s"       cC s+t|}tjd|ƒ|jd|ƒS(NsSetPhoneNum:xml Value:%ss/DevMgmt/FaxConfigDyn.xml(tsetPhoneNumXMLRtdebugR1(Rtnumtxml((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyt setPhoneNumzs cC s|jddƒS(Ns/DevMgmt/FaxConfigDyn.xmls>faxcfgdyn:faxconfigdyn-faxcfgdyn:systemsettings-dd:phonenumber(treadAttributeFromXml(R((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyt getPhoneNumscC sEyt|}Wn$ttfk r4tjdƒnX|jd|ƒS(Ns Unicode Errors/DevMgmt/FaxConfigDyn.xml(tsetStationNameXMLtUnicodeEncodeErrortUnicodeDecodeErrorRterrorR1(RtnameR5((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pytsetStationName†s cC st|jddƒƒS(Ns/DevMgmt/FaxConfigDyn.xmls>faxcfgdyn:faxconfigdyn-faxcfgdyn:systemsettings-dd:companyname(RR7(R((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pytgetStationNamestc C sU|jƒsMt||j||||||||| ƒ |_|jjƒtStSdS(N(tisSendFaxActivetLEDMFaxSendThreadtserviceRtstarttTruetFalse( Rtphone_num_listt fax_file_listt cover_messagetcover_ret cover_functpreserve_formattingRt update_queuet event_queue((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyt sendFaxes”s    cC s†tjƒ}d|d|d|d|d|d|df}t|}tjd|ƒ|jd |ƒrqtStjd ƒtSdS( Ns%4d-%02d-%02dT%02d:%02d:%02diiiiiissetDateTimeXML Value:%ss/DevMgmt/ProductConfigDyn.xmlsAFailed to set date and time. Set date and time using front panel.(ttimet localtimetsetDateTimeXMLRR3R1RERF(Rtttdate_bufR5((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pytsetDateAndTime¥s 4  N(t__name__t __module__Rt FAX_TYPE_NONERFRR1R6R8tpropertyt phone_numR>R?t station_nameRORU(((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyR Hs      RBcB sYeZddeedeed„Zd„Zd„Zd„Zdd„Zdd„Z RS(R@c C s`tj|||||||||| | | ƒ |jdkrSd|jj|_n d|_dS(NR s%s:8080slocalhost:8080(t FaxSendThreadRRtdevRR( RR]RCRGRHRIRJRKRLRRMRN((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyR´s   cE C sÆd}d}d}d}d}d}d}d}d } d } d } d } d } d} d}|jƒ}|}t}g|_d}x>||krÁ|jƒr¥|}ntjd|ƒ||krîtjdƒ|jtddfƒ| }q„||kr&tjdƒ|jt ddfƒ| }q„||kr^tjdƒ|j|ddfƒ| }q„||kr–tjdƒ|jt ddfƒ| }q„||krƒtjddWƒ|}z¶y|j j ƒWn-t k rü}tjd|jƒ|}nrXyJ|j j|_tjd|jƒ|j j|_tjd|jƒWn$t k rmtjdƒ|}nXWd|j jƒXq„||kr²tjddXƒ|j|ƒ}q„||krátjddYƒ|j|ƒ}q„||krztjddZƒ| }y?t|ƒ}tjd|d ƒ|jtd|d fƒWn'tk rl|}tjd!ƒq„nX|j}q„|| kr©tjd"d[ƒ|j|ƒ}q„|| krØtjd#d\ƒ|j| ƒ}q„|| krtjd$d]ƒ|j| ƒ}q„|| kr6tjd%d^ƒ|}d}d}d}d}d}d}d}d}d }d }d&} t}!|}"xC |"|kr2|jƒr©tjd'ƒ|}"n|!rö|jƒ}#|#tjtj fkrötjd(|#ƒ|}"|}qöntjd)| |"fƒ|"|kr.t}!|}"|}q{|"|kr\tjd*ƒt}!| }"|}q{|"|krŠtjd+ƒt}!| }"|}q{|"|kr¸tjd,ƒt}!| }"|}q{|"|kr:tjd-d_ƒ|}"y|j j ƒWn-t k r}tjd|jƒ|}"q/X|j j!t"kr/|}"q/q{|"|kra tjd.d`ƒyt |j#d/ƒ}$Wn't$k r–tjd0ƒ|}"q{nXy|$j%t&ƒ}%Wn't$k rÓtjd0ƒ|}"q{nX|j'|%ƒ\ }&}'}(})}*}+},}-}.}/|&t(d1ƒkr)tjd2ƒ|}"n)tjd3|&|'|(|)|*|+|,|-fƒ|d4}0t)|0|(f}1|j*d5t+|1ƒ|1ƒ}2tj,|2ƒ|j j-ƒ|j j.t(|2ƒƒt/ƒ}3y&x|j j0d6|3d7d8ƒräqÆWWn%t k r |}"|j j1ƒPnX|j j1ƒ|3j2ƒ}3tj,|3ƒ|j3|3ƒt4krR|}"nd|j3|3ƒt5kr†|t6kr†|}"|d97}n0|t6kr¢tjd:ƒn|}"tjd;ƒP|3j7d<dt+|3ƒƒ}4|3j7d=dt+|3ƒƒ}5|3|4|5!j8ƒ}6|6j9d>dƒj9d?dƒ}6tjd@|6t:|6ƒfƒt:|6ƒt;kr/|6j<dAƒ}6q/q{|"|krˆtjdBdaƒt/ƒ}7tjdC|(ƒx”t=|(ƒD]Ö}8|jƒrÀ |}"n|"|krÐ Pny|$j%t>ƒ}%Wn't$k r tjd0ƒ|}"q¥ nX|j?|%ƒ\}9}:};}<}=}/tjdD|9|:|;|<|=fƒ|:t@krn tjdEt@ƒn|7jA|$j%|<ƒƒ|$j%|=ƒ}>|7jBdƒy|7j%|<ƒ}2Wn%t$k rÚ tjd0ƒ|}"PnX|2dkrþ tjdFƒ|}"Pn|j jC|6dGƒ}?tjdH|?ƒtD|9|)|*f}@|j*|?t+|@ƒ|@ƒ}Atj,|Aƒ|j j-ƒy|j j.|AƒWn%t k r§ |}"|j j1ƒPnXt/ƒ}3y&x|j j0d6|3d7d8ƒrÕ q· WWn%t k rþ |}"|j j1ƒPnX|j j1ƒ|3j2ƒ}3tj,|3ƒ|j3|3ƒtEkrQ |}"tjdIƒPn|j jC|6dGƒ}BxžtFr |jƒr… |}"Pn|jG|6ƒ\}C}D|C|kró |DtHksÖ |DtIksÖ |DtJksÖ |DtKkró tjdJƒ|}"|D}Pqi |C|kri Pqi qi W|"|ks |"|kr# Pn|j*|Bt+|2ƒddKƒ}AtjdL|Aƒ|j j-ƒ|j j.|AƒtjdMƒy|j j.|2ƒWn%t k r· |}"|j j1ƒPnXt/ƒ}3y&x|j j0d6|3d7dƒrå qÇ WWn%t k r|}"|j j1ƒPnX|j j1ƒ|3j2ƒ}3tj,|3ƒ|j3|3ƒtEkratjdNƒ|}"Pn|7jLdƒ|7jBdƒq¥ W|}"q{|"|kr|}"q{|"|krÀtjdOdbƒtM|6}A|jN|6t+|Aƒ|Aƒ}2tj,|2ƒ|j j-ƒ|j j.t(|2ƒƒt/ƒ}3y&x|j j0d6|3d7dƒr<qWWn%t k re|}"|j j1ƒPnX|j j1ƒ|3j2ƒ}3tj,|3ƒ|j3|3ƒtOkrª| }"q/|}"tjdPƒq{|"| kr{tjdQdcƒtjdRƒy|$jƒWntPk r nX|j j1ƒ|j jƒ|}"q{q{Wq„|| kr„tjdSddƒ|jQrµtjdT|j#ƒy!tRjS|j#ƒtjdUƒWqµtTk r±tjdVƒqµXn|}q„q„WdS(eNii iiii(i2i<iFiPiZidinixi‚sSTATE=(%d, 0, 0)sAborted by user.R@sSuccess.sError, aborting.sDevice busy, aborting.s%s State: Get sender infoRsUnable to open device (%s).sSender name=%ss Sender fax=%ssLEDM GET failed!s!%s State: Pre-render non-G4 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 faxiªsFax send aborted.sD/L error state=%dsSTATE=(%d, %d, 0)sFax send error.sFax device busy.sFax send success.s%s State: Open devices%s State: BeginJobtrbsUnable 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=%dtfaxs/FaxPCSend/JobiRiis2HTTP ERROR CODE: 531, Server Temporary UnavailablesCreate Job request faileds/Jobs/JobList/sContent-Lengths s sjobListURI = [%s] type=%ssutf-8s%s State: DownloadPagessTotal Number of pages are:%ds%Page=%d PPR=%d RPP=%d BPP=%d Thumb=%ds#Pixels per line (width) must be %d!sNo data!s!j:job-faxpcsendstatus-resourceurispageConfigURI:[%s]s.Page config data is not accepted by the devices%setting state to FAX_SEND_STATE_ERRORsapplication/octet-streams.Sending Page Image XML Data [%s] to the devices'Sending Raw Data to printer............s(Image Data is not accepted by the devices%s State: CancelJobsJob Cancel Request Faileds%s State: Close sessionsClosing session...s%s State: CleanupsRemoving merged file: %stRemoveds Not founds********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************s********************(Utnext_recipient_gent STATUS_ERRORtrendered_file_listtcheck_for_cancelRR3R<t write_queuet STATUS_IDLEtSTATUS_COMPLETEDt STATUS_BUSYR]topentErrortmsgR[t sender_nameRZt sender_faxtcloset pre_rendert count_pagestnexttSTATUS_SENDING_TO_RECIPIENTt StopIterationt cover_paget single_filet merge_filesRFtgetFaxDownloadStatetpmltUPDN_STATE_XFERACTIVEtUPDN_STATE_XFERDONEt device_statetDEVICE_STATE_NOT_FOUNDtftIOErrortreadtFILE_HEADER_SIZEtdecode_fax_headerRt createJobXMLtformat_http_postRRtopenLEDMRRR!R#R"tget_error_codet HTTP_CREATEDtHTTP_SERVICE_UNAVALIABLEt MAX_TRIEStfindtstriptreplacettypetstrtdecodetrangetPAGE_HEADER_SIZEtdecode_page_headertPIXELS_PER_LINEtwritetseekR7t pageConfigXMLt HTTP_ACCEPTEDREt checkForErrortSTATUS_ERROR_IN_TRANSMITTINGtSTATUS_ERROR_IN_CONNECTINGtSTATUS_ERROR_PROBLEM_IN_FAXLINEtSTATUS_JOB_CANCELttruncatet cancelJobXMLtformat_http_putR&t NameErrortremove_temp_filetostremovetOSError(ERt STATE_DONEt STATE_ABORTEDt STATE_SUCCESSt STATE_BUSYtSTATE_READ_SENDER_INFOtSTATE_PRERENDERtSTATE_COUNT_PAGEStSTATE_NEXT_RECIPIENTtSTATE_COVER_PAGEtSTATE_SINGLE_FILEtSTATE_MERGE_FILEStSTATE_SEND_FAXt STATE_CLEANUPt STATE_ERRORtnext_recipienttstatet error_statet num_triestet recipienttrecipient_file_listtFAX_SEND_STATE_DONEtFAX_SEND_STATE_ABORTtFAX_SEND_STATE_ERRORtFAX_SEND_STATE_BUSYtFAX_SEND_STATE_SUCCESStFAX_SEND_STATE_DEVICE_OPENtFAX_SEND_STATE_BEGINJOBtFAX_SEND_STATE_DOWNLOADPAGEStFAX_SEND_STATE_ENDJOBtFAX_SEND_STATE_CANCELJOBtFAX_SEND_STATE_CLOSE_SESSIONt monitor_statetfax_send_statet fax_statetfftheadertmagictversiont total_pagesthort_dpitvert_dpit page_sizet resolutiontencodingt reserved1t reserved2tfaxnumt createJobR.R/tpostpos1t jobListURItpagetptpage_numtpprtrppt bytes_to_readtthumbnail_bytest thumbnailt pageConfigURIt pageConfigtxmldatat pageImageURItStatust Fax_State((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pytrunÂs´                                                       -             !          !                                                         cC sf|s tStj|ƒ}|dkr)tSyt|jdƒƒ}Wnttfk rat}nX|S(Ni( R+R$R%RR&R'R(R)R*(RtretR%R0((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyR†‚s  c C s¬tƒ}|jj|ƒ}|s2tjdƒdStjƒj|ƒ}tjd||fƒd}d}|}t }t |ddƒdkr·t |d d ƒdkr·|}t }nët |dd ƒdkrøt |d d ƒdkrø|}t }nªt |d d ƒdkr9t |ddƒdkr9|}t }nit |d dƒdkrzt |ddƒdkrz|}t}n(t |ddƒdkr¢|}|}n||fS(Ns'Unable To read the XML data from deviceR@s$Read Attribute:%s and it is value:%siis(j:job-faxpcsendstatus-faxtxmachinestatust Transmittingis&j:job-faxpcsendstatus-faxtxerrorstatustCommunicationErrort ConnectingtNoAnswert PcDisconnects&j:job-faxpcsendstatus-pagestatus-stateRktStop(RR]t FetchLEDMUrlRR<RtXMLToDictParsertparseXMLR3RctcmpR™RšR›Rœ( RturitstreamR.txmlDictR¼R¾R´tFax_send_state((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyR˜s>       stext/xml; charset=utf-8cC s|j}tjdƒS(Ns¤POST $requst HTTP/1.1 Host: $host User-Agent: hplip/2.0 Content-Type: $content_type Content-Length: $ledmlen Connection: Keep-alive SOAPAction: "" $xmldata(RRtcat(RtrequsttledmlenRãt content_typeR((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyR„±s  cC s|j}tjdƒS(Ns{PUT $requst HTTP/1.1 Host: $host User-Agent: hplip/2.0 Content-Type: $content_type Content-Length: $ledmlen $xmldata(RRR÷(RRøRùRãRúR((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyRŸ¿s ( RVRWRRFRRçR†R˜R„RŸ(((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyRB³s  ÿÁ $ (-t __future__RtsysR¢RPt base.sixextRRRtret threadingtstructtxml.parsers.expattparserstexpattstattbase.gt base.codestbaseRRRRR R`tcompiletIR$R&R—R‡R+RˆR‰R“RRR2R9RƒR–RžR R R\RB(((s[/builds/ul11u3sru-gate/components/hplip/build/prototype/i386/usr/share/hplip/fax/ledmfax.pyts>          ( k