Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó {­QNc@s ddlTddlZddlZddlZddlZddlZddlZiejd6ejd6ej d6ej d6Z e dgƒZ e dgƒZe d gƒZe d gƒZe d gƒZe e e gƒZe d gƒZe d gƒZe dgƒZe dgƒZe dgƒZe dgƒZe dgƒZe dgƒZe dgƒZe dgƒZe dgƒZe dgƒZe dgƒZe dgƒZ e dgƒZ!e dgƒZ"e dgƒZ#e dgƒZ$e dgƒZ%e dgƒZ&e dgƒZ'e dgƒZ(e d gƒZ)e d!gƒZ*e d"gƒZ+e d#gƒZ,e d$gƒZ-e d%gƒZ.e d&gƒZ/e d'gƒZ0e d(gƒZ1e d)gƒZ2e d*gƒZ3e d+gƒZ4e d,gƒZ5e d-gƒZ6e d.gƒZ7e d/gƒZ8e d0gƒZ9i e.e"6e/e#6e0e$6e1e%6e2e&6e3e'6e4e(6e5e)6e6e*6e7e+6e8e,6e9e-6Z:e dgƒZ;e dgƒZ<e dgƒZ=e dgƒZ>e dgƒZ?e dgƒZ@e dgƒZAe dgƒZBe d gƒZCe d!gƒZDe d"gƒZEe d#gƒZFe d$gƒZGe d1gƒZHe d2gƒZIe d3gƒZJe d4gƒZKe d5gƒZLe d6gƒZMe d7gƒZNd8ZOd9ZPd:ZQd4ZRd ZSdZTdZUdZVd8ZWd9ZXd:ZYd4ZZd Z[dZ\dZ]dZ^e dgƒZ_e dgƒZ`e dgƒZaideb6dec6ded6dee6def6Zgehd;„egjiƒDƒƒZjidek6del6dem6Znehd<„enjiƒDƒƒZodZpdZqdZrd=Zsd>Ztd?Zud@ZvdAewfdB„ƒYZxdCewfdD„ƒYZydEezfdF„ƒYZ{yddl|Z|Wn*e}k r]dGe{e~fdH„ƒYZnXdGe{e|j€fdI„ƒYZdJewfdK„ƒYZ�e‚dLkrddlƒZƒedMdNƒZ„eƒj…j†dOe„ƒeƒj…j†dPƒe„j†dQƒe„j‡ƒeƒj…j†dRe„jˆdƒƒe„j‰ƒndS(Siÿÿÿÿ(t*Ntdebugtinfotwarningterroriÿiþiýiüiûiðiñiòióiôiõiöi÷iøiùiúiiii,iiiiiii i i i ieifigihiiijikiliminioipi iiiiiii€i@i ccs!|]\}}||fVqdS(N((t.0tktv((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pys Ísccs!|]\}}||fVqdS(N((RRR((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pys Ôst REQUESTEDtACTIVEtINACTIVEtREALLY_INACTIVEt TelnetOptioncBs,eZdZdd„Zd„Zd„ZRS(s@Manage a single telnet option, keeps track of DO/DONT WILL/WONT.c Cs^||_||_||_||_||_||_||_||_t|_ | |_ dS(s-Init option. :param connection: connection used to transmit answers :param name: a readable name for debug outputs :param send_yes: what to send when option is to be enabled. :param send_no: what to send when option is to be disabled. :param ack_yes: what to expect when remote agrees on option. :param ack_no: what to expect when remote disagrees on option. :param initial_state: options initialized with REQUESTED are tried to be enabled on startup. use INACTIVE for all others. N( t connectiontnametoptiontsend_yestsend_notack_yestack_notstatetFalsetactivetactivation_callback( tselfR RRRRRRt initial_stateR((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyt__init__äs         cCsd|j|j|jfS(sString for debug outputss %s:%s(%s)(RRR(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyt__repr__úscCs£||jkrø|jtkrOt|_t|_|jdk rõ|jƒqõqŸ|jtkraqŸ|jtkrºt|_|j j |j |j ƒt|_|jdk rõ|jƒqõqŸ|jt krå|j j |j|j ƒqŸtd|ƒ‚n§||jkrŸ|jtkr+t|_t|_qŸ|jtkrht|_|j j |j|j ƒt|_qŸ|jtkrzqŸ|jt krŒqŸtd|ƒ‚ndS(s^A DO/DONT/WILL/WONT was received for this option, update state and answer when needed.soption in illegal state %rN(RRRR tTrueRRtNoneR R ttelnetSendOptionRRR Rt ValueErrorRR(Rtcommand((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytprocess_incomingþs<        N(t__name__t __module__t__doc__RRRR!(((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR ás  tTelnetSubnegotiationcBsVeZdZdd„Zd„Zd„Zd„ZeeƒZ dd„Z d„Z RS( s‹A object to handle subnegotiation of options. In this case actually sub-sub options for RFC 2217. It is used to track com port options.cCsO|dkr|}n||_||_||_d|_||_t|_dS(N(RR RRtvaluet ack_optionR R(RR RRR'((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR's      cCsd|j|jfS(sString for debug outputs.s%s:%s(RR(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR0scCsa||_t|_|jj|j|jƒ|jjr]|jjjd|j|jfƒndS(s°request a change of the value. a request is sent to the server. if the client needs to know if the change is performed he has to check the state of this object.sSB Requesting %s -> %rN( R&RRR trfc2217SendSubnegotiationRtloggerRR(RR&((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytset4s    cCs2|jtkr%td|jƒ‚n|jtkS(sjcheck if answer from server has been received. when server rejects the change, raise a ValueError.s#remote rejected value for option %r(RR RRR (R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytisReady>sicCs]tjƒ|}xFtjƒ|krEtjdƒ|jƒrPqqWtd|jƒ‚dS(s®wait until the subnegotiation has been acknowledged or timeout. It can also throw a value error when the answer from the server does not match the value sent.gš™™™™™©?s#timeout while waiting for option %rN(ttimetsleepR+tSerialExceptionR(Rttimeoutt timeout_time((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytwaitGs   cCsj|j|t|jƒ kr(t|_n t|_|jjrf|jjjd|j||jfƒndS(sŽcheck an incoming subnegotiation block. the parameter already has cut off the header like sub option number and com port option value.sSB Answer %s -> %r -> %sN( R&tlenR RR R R)RR(Rt suboption((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyt checkAnswerSs    N( R"R#R$RRRR*R+tpropertyRR1R4(((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR%#s    t RFC2217SerialcBs+eZdZd2Zd„Zd„Zd„Zd„Zd„Zd„Z dd„Z d„Z d„Z d„Z dd„Zed„Zed „Zed!„Zd"„Zd#„Zd$„Zd%„Zd&„Zd'„Zd(„Zd)„Zd*„Zd+„Zd,d-„Zd.„Zd/„Zd0„Z d1„Z!RS(3s<Serial port implementation for RFC 2217 remote serial ports.i2iKini†i–iÈi,iXi°ii` iÀi€%iKi–iáiÂc Cs7d|_t|_t|_d|_|jdkrBtdƒ‚n|jrZtdƒ‚nyWt j t j t j ƒ|_ |j j |j|jƒƒ|j jt jt jdƒWn5tk rè}d|_ td|j|fƒ‚nX|j jdƒtjƒ|_tjƒ|_t|dtttttt ƒt|dt!ttttt"ƒg}t|d t#ttttt"ƒt|d t$ttttt"ƒt|d t$ttttt"ƒt|d tttttt ƒt|d t!ttttt"ƒg||_%it&|dt't(ƒd6t&|dt)t*ƒd6t&|dt+t,ƒd6t&|dt-t.ƒd6|_/it&|dt0t1ƒd6t&|dt2t3ƒd6|_4|j4j5|j/ƒd|_6d|_7d|_8t|_9tj:d|j;ƒ|_<|j<j=t>ƒ|j<j?d|jfƒ|j<j@ƒx9|j%D].}|jAt"kr"|jB|jC|jDƒq"q"WtEjEƒ|j}xYtEjEƒ|kr²tEjFdƒtGd„|DƒƒtH|ƒkrjPqjqjWtd|ƒ‚|jræ|jjId|j%ƒn|jJƒt>|_|jKs|jLt>ƒ|jMt>ƒn|jNƒ|jOƒdS(sjOpen port with current settings. This may throw a SerialException if the port cannot be opened.is.Port must be configured before it can be used.sPort is already open.isCould not open port %s: %sis we-BINARYs we-RFC2217tECHOswe-SGAsthey-SGAs they-BINARYs they-RFC2217tbaudratetdatasizetparitytstopsizetpurgetcontrolittargets&pySerial RFC 2217 reader thread for %sgš™™™™™©?css|]}|jVqdS(N(R(Rto((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pys °ss9Remote does not seem to support RFC2217 or BINARY mode %rsNegotiated options: %sN(PRR)Rt_ignore_set_control_answert_poll_modem_statet_network_timeoutt_portR.t_isOpentsockettAF_INETt SOCK_STREAMt_sockettconnecttfromURLtportstrt setsockoptt IPPROTO_TCPt TCP_NODELAYt Exceptiont settimeouttQueuet _read_buffert threadingtLockt _write_lockR tBINARYtWILLtWONTtDOtDONTR tCOM_PORT_OPTIONRR7tSGAt_telnet_optionsR%t SET_BAUDRATEtSERVER_SET_BAUDRATEt SET_DATASIZEtSERVER_SET_DATASIZEt SET_PARITYtSERVER_SET_PARITYt SET_STOPSIZEtSERVER_SET_STOPSIZEt_rfc2217_port_settingst PURGE_DATAtSERVER_PURGE_DATAt SET_CONTROLtSERVER_SET_CONTROLt_rfc2217_optionstupdatet _linestatet _modemstatet_modemstate_expirest_remote_suspend_flowtThreadt_telnetReadLoopt_threadt setDaemonRtsetNametstartRRRRR,R-tsumR2Rt_reconfigurePortt_rtsctstsetRTStsetDTRt flushInputt flushOutput(Rtmsgtmandadory_optionsRR0((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytopenesz       $!       "      cCsG|jdkrtdƒ‚n|jdk r<tdƒ‚nt|jttfƒ sud|jkoodkn r‹t d|jƒ‚n|j dj t j d|jƒƒ|j d j t j d |jƒƒ|j d j t j d t|jƒƒ|j d j t j d t|jƒƒ|j jƒ}|jrQ|jjd |fƒntjƒ|j}xYtjƒ|kr¯tjdƒtd„|Dƒƒt|ƒkrgPqgqgWtd|ƒ‚|jrã|jjd|fƒn|jr|jrt dƒ‚n?|jr|jtƒn&|jr6|jt ƒn |jt!ƒdS(s,Set communication parameters on opened port.sCan only operate on open portss'writeTimeout is currently not supportediii sinvalid baudrate: %rR8s!IR9s!BR:R;sNegotiating settings: %sgš™™™™™©?css|]}|jVqdS(N(R(RR?((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pys Ýss5Remote does not accept parameter change (RFC2217): %rsNegotiated settings: %ss-xonxoff and rtscts together are not supportedNI("RHRR.t _writeTimeouttNotImplementedErrort isinstancet _baudratetinttlongRRfR*tstructtpackt _bytesizetRFC2217_PARITY_MAPt_paritytRFC2217_STOPBIT_MAPt _stopbitstvaluesR)RR,RBR-RwR2RRyt_xonxofftrfc2217SetControltSET_CONTROL_USE_HW_FLOW_CONTROLtSET_CONTROL_USE_SW_FLOW_CONTROLtSET_CONTROL_USE_NO_FLOW_CONTROL(RtitemsR0((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRxÁs89##''  "   cCs‚|jr~|jrLy$|jjtjƒ|jjƒWnnXd|_n|jre|jjƒnt |_t j dƒndS(s Close portg333333Ó?N( RDRHtshutdownREt SHUT_RDWRtcloseRRstjoinRR,R-(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR—ís     cCstdƒ‚dS(Ns2there is no sensible way to turn numbers into URLs(R.(Rtport((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytmakeDeviceNameþscCsÃ|jƒjdƒr"|d}nyqd|krC|jddƒ\}}x÷|jdƒD]ã}d|kr†|jddƒ\}}nd}|dkrÛtjƒtjdƒ|_|jjt |ƒ|jj dƒqY|d krót |_ qY|d kr t |_ qY|d kr)t|ƒ|_qYtd |fƒ‚qYWn|jd dƒ\}}t|ƒ}d|ko~dkns’tdƒ‚nWn#tk r¸}td|ƒ‚nX||fS(s(extract host and port from an URL strings rfc2217://i t/it=tloggingspySerial.rfc2217senabled loggingtign_set_controlt poll_modemR/sunknown option: %rt:iisport not in range 0...65535sRexpected a string in the form "[rfc2217://]:[/option[/option...]]": %sN(tlowert startswithtsplitRR�t basicConfigt getLoggerR)tsetLevelt LOGGER_LEVELSRRR@RAtfloatRBRR…R.(RturltoptionsRR&thostR™te((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRJs8           cCs|jst‚n|jjƒS(s>Return the number of characters currently in the input buffer.(RDtportNotOpenErrorRRtqsize(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyt inWaiting&s icCs–|jst‚ntƒ}yZxSt|ƒ|krs|jdkrQtdƒ‚n|j|jj t |j ƒƒq!WWnt j k r‹nXt|ƒS(sÀRead size bytes from the serial port. If a timeout is set it may return less characters as requested. With no timeout it will block until the requested number of bytes is read.s&connection failed (reader thread died)N(RDR­t bytearrayR2RsRR.tappendRRtgetRt_timeoutRQtEmptytbytes(Rtsizetdata((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytread+s  'cCs‡|jst‚n|jjƒzMy |jj|jttƒƒWn&t j k rj}t d|ƒ‚nXWd|jj ƒXt |ƒS(sœOutput the given string over the serial port. Can block if the connection is blocked. May raise SerialException if the connection is closed.s$connection failed (socket error): %sN(RDR­RUtacquireRHtsendalltreplacetIACt IAC_DOUBLEDRERR.treleaseR2(RR·R¬((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytwrite:s   cCsI|jst‚n|jtƒx#|jjƒrD|jjtƒq"WdS(s9Clear input buffer, discarding all that is in the buffer.N(RDR­trfc2217SendPurgetPURGE_RECEIVE_BUFFERRRR®R²R(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR|Is   cCs#|jst‚n|jtƒdS(sbClear output buffer, aborting the current output and discarding all that is in the buffer.N(RDR­RÀtPURGE_TRANSMIT_BUFFER(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR}Qs gÐ?cCs=|jst‚n|jtƒtj|ƒ|jtƒdS(sPSend break condition. Timed, returns to idle state after given duration.N(RDR­tsetBreakRR,R-R(Rtduration((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyt sendBreakWs    cCsc|jst‚n|jr<|jjddt|ƒƒn|rR|jtƒn |jtƒdS(sJSet break: Controls TXD. When active, to transmitting is possible.sset BREAK to %stinactiveRN(RÆsactive(RDR­R)RtboolR�tSET_CONTROL_BREAK_ONtSET_CONTROL_BREAK_OFF(Rtlevel((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRÃ_s  !cCsc|jst‚n|jr<|jjddt|ƒƒn|rR|jtƒn |jtƒdS(s*Set terminal status line: Request To Send.s set RTS to %sRÆRN(sinactivesactive(RDR­R)RRÇR�tSET_CONTROL_RTS_ONtSET_CONTROL_RTS_OFF(RRÊ((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRzjs  !cCsc|jst‚n|jr<|jjddt|ƒƒn|rR|jtƒn |jtƒdS(s.Set terminal status line: Data Terminal Ready.s set DTR to %sRÆRN(sinactivesactive(RDR­R)RRÇR�tSET_CONTROL_DTR_ONtSET_CONTROL_DTR_OFF(RRÊ((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR{ts  !cCs&|jst‚nt|jƒt@ƒS(s)Read terminal status line: Clear To Send.(RDR­RÇt getModemStatetMODEMSTATE_MASK_CTS(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytgetCTS~s cCs&|jst‚nt|jƒt@ƒS(s*Read terminal status line: Data Set Ready.(RDR­RÇRÏtMODEMSTATE_MASK_DSR(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytgetDSRƒs cCs&|jst‚nt|jƒt@ƒS(s*Read terminal status line: Ring Indicator.(RDR­RÇRÏtMODEMSTATE_MASK_RI(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytgetRIˆs cCs&|jst‚nt|jƒt@ƒS(s*Read terminal status line: Carrier Detect.(RDR­RÇRÏtMODEMSTATE_MASK_CD(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytgetCD�s cCs"t}d}zéxâ|jdk róy|jjdƒ}WnPtjk rPqn:tjk r‰}|jr…|jjd|fƒnPnX|s”PnxY|D]Q}|tkrñ|t krÂt }qì|dk rÞ|j |ƒqì|j j |ƒq›|t krÇ|t kr>|dk r%|j t ƒn|j j t ƒt}qì|tkr\tƒ}t}qì|tkrŠ|jt|ƒƒd}t}qì|ttttfkr±|}t}qì|j|ƒt}q›|tkr›|j||ƒt}q›q›WqWWdd|_|jr|jjdƒnXdS(sread loop for the socket.is!socket error in reader thread: %sNsread thread terminated(tM_NORMALRRHtrecvRER/RR)RR¼t M_IAC_SEENR±RRtputtSBR°tSEt_telnetProcessSubnegotiationRµRYRZRWRXt M_NEGOTIATEt_telnetProcessCommandt_telnetNegotiateOptionRs(RtmodeR3R·R¬tbytettelnet_command((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRr—sZ                     cCs'|jr#|jjd|fƒndS(s1Process commands other than DO, DONT, WILL, WONT.signoring Telnet command: %rN(R)R(RR ((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRàÙs cCs¬t}x6|jD]+}|j|kr|j|ƒt}qqW|s¨|tks]|tkr¨|j|tkrutpxt |ƒ|j r¥|j j d|fƒq¥q¨ndS(s&Process incoming DO, DONT, WILL, WONT.srejected Telnet option: %rN( RR]RR!RRWRYRRZRXR)R(RR Rtknowntitem((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRáßs  " cCs¾|dd!tkr—|dd!tkrtt|ƒdkrtt|dd!ƒ|_|jr”|jjd|jƒq”qº|dd!tkrèt|ƒdkrèt|dd!ƒ|_|jrÒ|jjd|jƒnt j ƒd|_ qº|dd!t krt |_ qº|dd!tkr&t|_ qºx‘|jjƒD]7}|j|dd!kr6|jt|dƒƒPq6q6W|jrº|jjd|fƒqºn#|jrº|jjd |fƒnd S( s;Process subnegotiation, the data between IAC SB and IAC SE.iiiisNOTIFY_LINESTATE: %ssNOTIFY_MODEMSTATE: %sg333333Ó?signoring COM_PORT_OPTION: %rsignoring subnegotiation: %rN(R[tSERVER_NOTIFY_LINESTATER2tordRmR)RtSERVER_NOTIFY_MODEMSTATERnR,RotFLOWCONTROL_SUSPENDRRptFLOWCONTROL_RESUMERRkRŽR'R4RµR(RR3Ræ((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRÞós,% %     cCs6|jjƒz|jj|ƒWd|jjƒXdS(sGinternal socket write with no data escaping. used to send telnet stuff.N(RUR¹RHRºR¾(RR·((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyt_internal_raw_writes cCs |jtt||gƒƒdS(sSend DO, DONT, WILL, WONT.N(Rìtto_bytesR¼(RtactionR((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRstcCsI|jttƒ}|jtttt|gt|ƒttgƒƒdS(s%Subnegotiation of RFC2217 parameters.N( R»R¼R½RìRíRÜR[tlistRÝ(RRR&((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR(scCs.|jd}|j|ƒ|j|jƒdS(NR<(RkR*R1RB(RR&Ræ((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRÀ$s  cCsG|jd}|j|ƒ|jr3tjdƒn|j|jƒdS(NR=gš™™™™™¹?(RkR*R@R,R-R1RB(RR&Ræ((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR�)s    cCsdS(sOcheck if server is ready to receive data. block for some time when not.N((R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytrfc2217FlowServerReady4scCsú|jr¸|jtjƒkr¸|jr:|jjdƒn|jtƒtjƒ|j}x[tjƒ|kr´tjdƒ|jtjƒkr]|jr­|jj dƒnPq]q]Wn|j dk rê|jrã|jjdƒn|j St dƒ‚dS(sóget last modem state (cached value. if value is "old", request a new one. this cache helps that we don't issue to many requests when e.g. all status lines, one after the other is queried by te user (getCTS, getDSR etc.)spolling modem stategš™™™™™©?spoll for modem state failedsusing cached modem states!remote sends no NOTIFY_MODEMSTATEN( RARoR,R)RR(tNOTIFY_MODEMSTATERBR-RRnRR.(RR0((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRÏ:s       (i2iKini†i–iÈi,iXi°ii` iÀi€%iKi–iáiÂ("R"R#R$t BAUDRATESR€RxR—RšRJR¯R¸R¿R|R}RÅRRÃRzR{RÑRÓRÕR×RrRàRáRÞRìRR(RÀR�RñRÏ(((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR6_s@ \ ,   %          B       tSerialcBseZRS((R"R#(((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRôbscBseZRS((R"R#(((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRôfst PortManagercBsqeZdZd d„Zd„Zd„Zdd„Zed„Z d„Z d„Z d „Z d „Z d „ZRS( sáThis class manages the state of Telnet and RFC 2217. It needs a serial instance and a connection to work with. Connection is expected to implement a (thread safe) write function, that writes the string to the network.cCs�||_||_||_t|_t|_d|_d|_ d|_ d|_ d|_ t |dttttttƒt |dttttttƒt |dttttttƒt |dttttttƒt |dttttttƒt |dtttttt|jƒ t |d tttttt|jƒ g|_|jr]|jjd ƒnx9|jD].}|jtkrg|j|j|jƒqgqgWdS( NiÿiR7swe-SGAsthey-SGAs we-BINARYs they-BINARYs we-RFC2217s they-RFC2217s*requesting initial Telnet/RFC 2217 options(tserialR R)Rt_client_is_rfc2217RØRâRR3Rätmodemstate_masktlast_modemstatet linstate_maskR R7RWRXRYRZRR\R RVR[t _client_okR]RRRRR(Rt serial_portR R)R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRrs,          $- cCs9t|_|jr%|jjdƒn|jdtƒdS(söcallback of telnet option. it gets called when option is activated. this one here is used to detect when the client agrees on RFC 2217. a flag is set so that other functions like check_modem_lines know if the client is ok.sclient accepts RFC 2217tforce_notificationN(RR÷R)Rtcheck_modem_lines(R((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRû•s  cCs#|jjtt||gƒƒdS(sSend DO, DONT, WILL, WONT.N(R R¿RíR¼(RRîR((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR§sRïcCsL|jttƒ}|jjtttt|gt|ƒtt gƒƒdS(s&Subnegotiation of RFC 2217 parameters.N( R»R¼R½R R¿RíRÜR[RðRÝ(RRR&((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyR(«sc CsH|jjƒot|jjƒo$tB|jjƒo7tB|jjƒoJtB}||j p]dA}|t@rx|t O}n|t@r�|t O}n|t@r¦|t O}n|t@r½|t O}n||j ksÒ|rD|jrè||j@sî|r4|jtt||j@gƒƒ|jr4|jjd|fƒq4n|d@|_ ndS(NisNOTIFY_MODEMSTATE: %sið(RöRÑRÐRÓRÒRÕRÔR×RÖRùtMODEMSTATE_MASK_CTS_CHANGEtMODEMSTATE_MASK_DSR_CHANGEtMODEMSTATE_MASK_RI_CHANGEtMODEMSTATE_MASK_CD_CHANGER÷RøR(RéRíR)R(RRýt modemstatetdeltas((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRþ³s&8         ccs3x,|D]$}|tkr&tVtVq|VqWdS(sóthis generator function is for the user. all outgoing data has to be properly escaped, so that no IAC character in the data stream messes up the Telnet state machine in the server. socket.sendall(escape(data)) N(R¼(RR·Rã((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytescapeÕs   ccsƒx||D]t}|jtkr^|tkr4t|_q{|jdk rV|jj|ƒq{|Vq|jtkrM|tkr¬|jdk r›|jj|ƒn|Vt|_q{|tkrÐtƒ|_t|_q{|t kr|j t |jƒƒd|_t|_q{|t t ttfkr4||_t|_q{|j|ƒt|_q|jtkr|j|j|ƒt|_qqWdS(sêhandle a bunch of incoming bytes. this is a generator. it will yield all characters not of interest for Telnet/RFC 2217. The idea is that the reader thread pushes data from the socket through this filter: for byte in filter(socket.recv(1024)): # do things like CR/LF conversion/whatever # and write data to the serial port serial.write(byte) (socket error handling code left as exercise for the reader) N(RâRØR¼RÚR3RR±RÜR°RÝRÞRµRYRZRWRXRäRßRàRá(RR·Rã((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pytfilterås8               cCs'|jr#|jjd|fƒndS(s1Process commands other than DO, DONT, WILL, WONT.signoring Telnet command: %rN(R)R(RR ((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRàs cCs¬t}x6|jD]+}|j|kr|j|ƒt}qqW|s¨|tks]|tkr¨|j|tkrutpxt |ƒ|j r¥|j j d|fƒq¥q¨ndS(s&Process incoming DO, DONT, WILL, WONT.srejected Telnet option: %rN( RR]RR!RRWRYRRZRXR)R(RR RRåRæ((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRá%s  " cCs³ |dd!tkrŒ |jr6|jjd|fƒn|dd!tkr|jj}y&tjd|dd!ƒ\|j_WnBtk r¿}|jr°|jj d|fƒn||j_n*X|jré|jj d|jjfƒn|j t tj d|jjƒƒq¯ |dd!tkræ|jj}y&tjd |dd !ƒ\|j_WnBtk r—}|jrˆ|jj d |fƒn||j_n*X|jrÁ|jj d |jjfƒn|j ttj d |jjƒƒq¯ |dd!tkrÇ|jj}y+ttjd |dd !ƒd|j_WnBtk rt}|jre|jj d |fƒn||j_n*X|jrž|jj d|jjfƒn|j ttj d t|jjƒƒq¯ |dd!tkr¨|jj}y+ttjd |dd !ƒd|j_WnBtk rU}|jrF|jj d|fƒn||j_n*X|jr|jj d|jjfƒn|j ttj d t|jjƒƒq¯ |dd!tkrš|dd !tkr|jjrí|j ttƒq—|jj r |j tt!ƒq—|j tt"ƒq‰ |dd !t"kryt#|j_t#|j_ |jrf|jj dƒn|j tt"ƒq‰ |dd !tkrÇt$|j_|jr´|jj dƒn|j ttƒq‰ |dd !t!krt$|j_ |jr|jj dƒn|j tt!ƒq‰ |dd !t%krG|jr—|jj&dƒq—q‰ |dd !t'kr™|jj(t$ƒ|jr†|jj dƒn|j tt'ƒq‰ |dd !t)krë|jj(t#ƒ|jrØ|jj dƒn|j tt)ƒq‰ |dd !t*kr|jr—|jj&dƒq—q‰ |dd !t+kro|jj,t$ƒ|jr\|jj dƒn|j tt+ƒq‰ |dd !t-krÁ|jj,t#ƒ|jr®|jj dƒn|j tt-ƒq‰ |dd !t.kró|jr—|jj&dƒq—q‰ |dd !t/krE|jj0t$ƒ|jr2|jj dƒn|j tt/ƒq‰ |dd !t1kr‰ |jj0t#ƒ|jr„|jj dƒn|j tt1ƒq‰ q¯ |dd!t2krÉ|j t3t4dgƒƒq¯ |dd!t5kr |jrø|jj dƒn|j6dt$ƒq¯ |dd!t7krF|jr:|jj dƒnt$|_8q¯ |dd!t9kr�|jru|jj d ƒnt#|_8q¯ |dd!t:krÓt;|dd !ƒ|_<|jr‰ |jj d!|j<fƒq‰ q¯ |dd!t=kr% t;|dd !ƒ|_>|jr‰ |jj d"|j>fƒq‰ q¯ |dd!t?kr_ |dd !t@kr‡ |jjAƒ|jrt |jj d#ƒn|j tBt@ƒq‰ |dd !tCkrÖ |jjDƒ|jrà |jj d$ƒn|j tBtCƒq‰ |dd !tEkr2 |jjAƒ|jjDƒ|jr |jj d%ƒn|j tBtEƒq‰ |jr‰ |jj d&tF|dƒƒq‰ q¯ |jr¯ |jj d'tF|dƒƒq¯ n#|jr¯ |jj&d(|fƒnd)S(*s;Process subnegotiation, the data between IAC SB and IAC SE.iisreceived COM_PORT_OPTION: %ris!Iisfailed to set baud rate: %sschanged baud rate: %ss!Bisfailed to set data size: %sschanged data size: %ssfailed to set parity: %sschanged parity: %ssfailed to set stop bits: %sschanged stop bits: %sschanged flow control to Nones changed flow control to XON/XOFFschanged flow control to RTS/CTSs'requested break state - not implementedschanged BREAK to activeschanged BREAK to inactives%requested DTR state - not implementedschanged DTR to activeschanged DTR to inactives%requested RTS state - not implementedschanged RTS to activeschanged RTS to inactivesrequest for modem stateRýtsuspendtresumesline state mask: 0x%02xsmodem state mask: 0x%02xspurge ins purge outs purge bothsundefined PURGE_DATA: %rsundefined COM_PORT_OPTION: %rsunknown subnegotiation: %rN(GR[R)RR^RöR8R‡tunpackRRRR(R_RˆR`tbytesizeRaRbR:tRFC2217_REVERSE_PARITY_MAPRcRŠRdtstopbitstRFC2217_REVERSE_STOPBIT_MAPReRŒRitSET_CONTROL_REQ_FLOW_SETTINGtxonxoffRjR’trtsctsR‘R“RRtSET_CONTROL_REQ_BREAK_STATERRÈRÃRÉtSET_CONTROL_REQ_DTRRÍR{RÎtSET_CONTROL_REQ_RTSRËRzRÌtNOTIFY_LINESTATERçRíRòRþRêRpRëtSET_LINESTATE_MASKRèRútSET_MODEMSTATE_MASKRøRgRÁR|RhRÂR}tPURGE_BOTH_BUFFERSRð(RR3tbackupR¬((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRÞ9sF  &   % &   % +     +                                       $ $ N(R"R#R$RRRûRR(RRþRRRàRáRÞ(((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyRõms #    "  :  t__main__srfc2217://localhost:7000iÂs%s s write... shello s read: %s (Štserial.serialutilR,R‡RERSRQR�tDEBUGtINFOtWARNINGtERRORR§RíR¼RZRYRXRWR½RÝtNOPtDMtBRKtIPtAOtAYTtECtELtGARÜRVR7R\R[R^R`RbRdRiRRòRêRëRRRgR_RaRcReRjRçRétSERVER_FLOWCONTROL_SUSPENDtSERVER_FLOWCONTROL_RESUMEtSERVER_SET_LINESTATE_MASKtSERVER_SET_MODEMSTATE_MASKRhtRFC2217_ANSWER_MAPRR“R’R‘RRÈRÉRRÍRÎRRËRÌtSET_CONTROL_REQ_FLOW_SETTING_INt"SET_CONTROL_USE_NO_FLOW_CONTROL_INt!SET_CONTROL_USE_SW_FLOW_CONTOL_INt!SET_CONTROL_USE_HW_FLOW_CONTOL_INt SET_CONTROL_USE_DCD_FLOW_CONTROLt SET_CONTROL_USE_DTR_FLOW_CONTROLt SET_CONTROL_USE_DSR_FLOW_CONTROLtLINESTATE_MASK_TIMEOUTtLINESTATE_MASK_SHIFTREG_EMPTYtLINESTATE_MASK_TRANSREG_EMPTYtLINESTATE_MASK_BREAK_DETECTtLINESTATE_MASK_FRAMING_ERRORtLINESTATE_MASK_PARTIY_ERRORtLINESTATE_MASK_OVERRUN_ERRORtLINESTATE_MASK_DATA_READYRÖRÔRÒRÐRRRRÿRÁRÂRt PARITY_NONEt PARITY_ODDt PARITY_EVENt PARITY_MARKt PARITY_SPACERŠtdictR”R t STOPBITS_ONEtSTOPBITS_ONE_POINT_FIVEt STOPBITS_TWORŒR RØRÚRßRR R R tobjectR R%t SerialBaseR6tiot ImportErrortFileLikeRôt RawIOBaseRõR"tsystststdoutR¿tflushR¸R—(((s2/usr/lib/python2.7/site-packages/serial/rfc2217.pyt>s(              B<ÿÿ ÿŠ