mò NógBc@s1dkZdkZdkZdkZdkZdkZdkZdkZeidƒdZ e dƒ\Z Z Z df\ZZdg\ZZZZeid jo dkZneZeid jo dkZneZeieiƒZed d jo d „Zn6ed jo d„Znedjo d„Zned djpDed djp3ed djp"ed djped djo d„Zn ed djo d„Zn‚ed djo d„Znded djo d„ZnFed djo d„Zn(d eieie fZd!GHed"‚hZhZxFdhD]>Z y.e!dBe"e ƒƒZ#e ee#dƒe<i?ƒe<i@ƒe<iAdeƒeBe<iCdƒƒGHe<iDƒGH[<ndS(iNs$Revision: 1.1 $iiiiiiiiðiðtlinuxcCsd|S(Ns /dev/ttyS%d(tport(R((tT/usr2/students/cs526/public_html/tinyos/tools/src/mspgcc-pybsl/serial/serialposix.pytdevice$stcygwincCs d|dS(Ns /dev/com%di(R(R((RR(stopenbsd3cCsd|S(Ns /dev/ttyp%d(R(R((RR,stbsdtnetbsdtfreebsdtopenbsdtdarwincCsd|S(Ns /dev/cuaa%d(R(R((RR4sitirixcCsd|S(Ns /dev/ttyf%d(R(R((RR8sthpcCs d|dS(Ns /dev/tty%dp0i(R(R((RR<stsunoscCsdtdƒ|S(Ns /dev/tty%cta(tordR(R((RR@stdguxcCs d|dS(Ns /dev/tty0%di(R(R((RRDss:sys.platform = %r os.name = %r serialposix.py version = %ssúsend this information to the author of this module: %s also add the device name of the serial port and where the counting starts for the first serial port. e.g. 'first serial port: /dev/ttyS0' and with a bit luck you can get this module running... s1this module does not run on this platform, sorry.ii2iKini†i–iÈi,iXi°ii` iÀi€%iKi–iáiÂi„ii ¡iÊii@Bi”i`ãi€„i %&iÀÆ-iàg5i =s TERMIOS.BtTIOCMGETiTtTIOCMBISiTtTIOCMBICiTtTIOCMSETiTt TIOCM_DTRt TIOCM_RTSt TIOCM_CTSi t TIOCM_CARi@t TIOCM_RNGi€t TIOCM_DSRitTIOCM_CDtTIOCM_RItFIONREADiTtIs port not opentSerialcBsÑtZdeeedddd„Zd„Zd„Zd„Z d„Z d„Z d „Z d d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd d„Zd d„ZRS(Ni€%ic Cs¥d|_||_d} } t|ƒtdƒjo ||_nt |ƒ|_y-t i |it i t i Bt iBƒ|_Wn.tj o"} d|_tid| ‚nXti|itidƒy|iƒWn(tij o} tid| ‚nX|ititiBB|_|ititiBti Bti!Bti"Bti#Bti$Bti%Bti&B@|_|i'ti(@|_'t)tdƒo4|i*ti+ti,Bti-Bti.Bti/B@|_*n*|i*ti+ti,Bti-Bti/B@|_*yt0||_2|_3Wnt4d|‚nX|iti5@|_|djo|iti7B|_n€|djo|iti8B|_n\|djo|iti9B|_n8|d jo|iti:B|_nt4d t;t<ƒ‚|t>jo|iti?@|_n8|t@jo|iti?B|_nt4d t;|ƒ‚|i*tiAtiBB@|_*|tDjo|itiEtiFB@|_nw|tGjo+|itiF@|_|itiEB|_n?|tHjo|itiEtiFBB|_nt4d t;tIƒ‚t)td ƒoR|o%|i*tiKtiLBtiMBB|_*q‰|i*tiKtiLBtiMB@|_*nA|o|i*tiKtiLBB|_*n|i*tiKtiLB@|_*t)tdƒo6|o|itiOB|_q|itiO@|_nGt)tdƒo6|o|itiPB|_q|itiP@|_n| djp | djot4dt;| ƒ‚n| |iQtiR<| djp | djot4dt;| ƒ‚n| |iQtiS<|iTƒdS(sinit comm portitscould not open port: %stIUCLCsinvalid baud rate: %siiiisinvalid char len: sinvalid stopit specification:sinvalid parity: tIXANYtCRTSCTSt CNEW_RTSCTSiÿsinvalid vmin: sinvalid vtime: N(UtNonetselftfdttimeouttvmintvtimettypeRtportstrRtostopentO_RDWRtO_NOCTTYt O_NONBLOCKt Exceptiontmsgt serialutiltSerialExceptiontfcntltFCNTLtF_SETFLt_Serial__tcgetattrttermiosterrortcflagtTERMIOStCLOCALtCREADtlflagtICANONtECHOtECHOEtECHOKtECHONLtECHOCTLtECHOKEtISIGtIEXTENtoflagtOPOSTthasattrtiflagtINLCRtIGNCRtICRNLR!tIGNBRKt baudIntToEnumtbaudratetispeedtospeedt ValueErrortCSIZEtbytesizetCS8tCS7tCS6tCS5tstrtclentstopbitst STOPBITS_ONEtCSTOPBt STOPBITS_TWOtINPCKtISTRIPtparityt PARITY_NONEtPARENBtPARODDt PARITY_EVENt PARITY_ODDtpartxonxofftIXONtIXOFFR"trtsctsR#R$tcctVMINtVTIMEt_Serial__tcsetattr( R&RRSRXReR_R(RlRoR3R*R)((Rt__init__†s’     - L4)         %&c CsGti|iti|i|i|i|i |i |i |i gƒdS(s(internal function to set port attributesN( R:t tcsetattrR&R'R=tTCSANOWRMRJR<R@RTRURp(R&((Rt __tcsetattr÷scCs@ti|iƒ\|_|_|_|_|_|_ |_ dS(s(internal function to get port attributesN( R:t tcgetattrR&R'RMRJR<R@RTRURp(R&((Rt __tcgetattrûscCs+|ioti|iƒd|_ndS(s close portN(R&R'R-tcloseR%(R&((RRzÿs cCs[|ip t‚n|iƒyt||_|_Wntd|‚nX|i ƒdS(s"change baudrate after port is opensinvalid baud rate: %sN( R&R'tportNotOpenErrorR9RRRSRTRURVRs(R&RS((Rt setBaudrates  cCs,ti|ittƒ}tid|ƒdS(s)how many character are in the input queueRiN( R6tioctlR&R'tTIOCINQtTIOCM_zero_strtststructtunpack(R&R€((Rt inWaitingscCsh|ip t‚nt|ƒ}|}x;|djo-ti|i|ƒ}||}||}q)WdS(swrite a string to the portiN( R&R'R{tlentdatatttdR-twritetn(R&R…R‡R‰R†((RRˆs    icCsÌ|ip t‚nd}d}|djo›x˜t|ƒ|jo€ti|iggg|i ƒ\}}}|pPnt i|i|t|ƒƒ}||}|i djo | oPq0q0Wn|S(sOread a number of bytes from the port. the default is one (unlike files)R iN(R&R'R{treadR%tinptsizeR„tselectR(treadyt_R-tbuf(R&RŒRŠR‹RŽRR((RRŠ s   * cCs.|ip t‚nti|itiƒdS(sclear input queueN(R&R'R{R:ttcflushR=tTCIFLUSH(R&((Rt flushInput2s  cCs.|ip t‚nti|itiƒdS(s flush outputN(R&R'R{R:R‘R=tTCOFLUSH(R&((Rt flushOutput8s  cCs+|ip t‚nti|idƒdS(ssend break signaliN(R&R'R{R:t tcsendbreak(R&((Rt sendBreak>s  cCs(|ip t‚nti|iƒdS(sinternal - not portable!N(R&R'R{R:ttcdrain(R&((Rt drainOutputDs cCs4|ip t‚nti|ititiƒdS(sinternal - not portable!N(R&R'R{R6R7R8R1(R&((Rt nonblockingIs  cCsD|ip t‚nti|ittƒ}ti d|ƒdt @S(sread terminal status lineRiN( R&R'R{R6R}RRR€RR‚R(R&R€((RtgetDSROs  cCsD|ip t‚nti|ittƒ}ti d|ƒdt @S(sread terminal status lineRiN( R&R'R{R6R}RRR€RR‚R(R&R€((RtgetCDUs  cCsD|ip t‚nti|ittƒ}ti d|ƒdt @S(sread terminal status lineRiN( R&R'R{R6R}RRR€RR‚R(R&R€((RtgetRI[s  cCsD|ip t‚nti|ittƒ}ti d|ƒdt @S(sread terminal status lineRiN( R&R'R{R6R}RRR€RR‚R(R&R€((RtgetCTSas  cCsO|ip t‚n|oti|ittƒnti|ittƒdS(sset terminal status lineN( R&R'R{tonR6R}Rt TIOCM_DTR_strR(R&RŸ((RtsetDTRgs  cCsO|ip t‚n|oti|ittƒnti|ittƒdS(sset terminal status lineN( R&R'R{RŸR6R}Rt TIOCM_RTS_strR(R&RŸ((RtsetRTSos  (t__name__t __module__t EIGHTBITSRfR`R%RtRsR9RzR|RƒRˆRŠR“R•R—R™RšR›RœRRžR¡R£(((RR…s&q               t__main__RSRXReR_R(RlRothello(ii(iiii(ii2iKini†i–iÈi,iXi°ii` iÀi€%iKi–iáiÂi„ii ¡iÊii@Bi”i`ãi€„i %&iÀÆ-iàg5i =(EtsysR-R6R:RtstringRR4tsplittVERSIONtrangeRfRiRjR`RbtFIVEBITStSIXBITSt SEVENBITSR¦t hexversionR=R7tlowertplatformtplatRtnametinfoR2t baudEnumToIntRRtratetevalR]tiRLRRRRRRRRRRRRRR~tpackRR¢R RVR{tFileLikeRR¤R€R£R¡R“R•RˆtreprRŠRƒ(.R®RR¯RR·R`R¸RfR¢RRRR°RR¦RR6R¶RRªRRR€RR:R´R©RR¬R{RbRR7R4RRRRºRjR~R R=RRRiRR-((Rt? s˜?         U                     ò