ʦ^_\!ddlZddlZ ddlZn#e$r ddlmZYnwxYw ddlZn#e$rddlZYnwxYwddlZddl Z ddl m Z m Z m Z mZmZdZdZdZdZdZdZdZdZd ZGd d e ZdS) N) SerialBaseSerialExceptionPortNotOpenErrorto_bytesTimeoutACPQRcveZdZdZfdZdZdZdZdZe dZ dZ d Z d Z dd Zd ZdZxZS)Serial)i,iwiXiii` ii%iKiiiiii iii@Bcrd|_d|_d|_tt|j|i|dSN) _hid_handle _read_buffer_threadsuperr__init__)selfargskwargs __class__s C/usr/lib/python3/dist-packages/serial/urlhandler/protocol_cp2110.pyrzSerial.__init__EsB  $fd$d5f55555cH|jtd|jrtdtj|_t j|_ ||j }|j |n@#t$r3}t|j d |j|d}~wwxYw |d|_tj|j|_|jd|jd |j|jdS# |jn#YnxYwd|_xYw)Nz.Port must be configured before it can be used.zPort is already open.zcould not open port {}: {}T)targetz$pySerial CP2110 reader thread for {})_portris_openQueuerhiddevicerfrom_urlportstr open_pathOSErrorerrnoformat_reconfigure_port threadingThread_hid_read_loopr setDaemonsetNamestartclose)rportpathmsgs ropenz Serial.openKs : !"RSS S < ;!"9:: :!KMM:<< c}}T\22H   & &x 0 0 0 0 c c c!#)-I-P-PQUQ[]`-a-abb b c !  " " $ $ $ DL$+43FGGGDL L " "4 ( ( ( L !G!N!Ntz!Z!Z [ [ [ L      &&(((( #D  s<4B C.C  CE55F!8FF!F F!ctj|}|jdkr'td|j|jr|jdS|jdS)Ncp2110zuexpected a string in the forms "cp2110:///dev/hidraw9" or "cp2110://0001:0023:00": not starting with cp2110:// {{!r}}zutf-8)urlparseurlsplitschemerr*netlocencodepath)rurlpartss rr%zSerial.from_urljs!#&& <8 # #!55;VEL5I5IKK K < 0<&&w// /z  )))rcd|_|jr!|jdd|_|jd|_dS)NFr )r!rjoinrr2rs rr2z Serial.closeusS < L  a DL    rc d}|jtjkrd}n|jtjkrd}no|jtjkrd}nW|jtjkrd}n?|jtjkrd}n'td|j|j rd}nd}d}|j dkrd}nQ|j dkrd}nC|j d krd}n5|j d krd}n'td |j d}|j tj krd}nW|j tj krd}n?|j tjkrd}n'td |j tjd t"|j||||}|j||jt+t,t.f|dS)Nrr r zInvalid parity: {!r}zInvalid char len: {!r}z$Invalid stop bit specification: {!r}z>BLBBBB)_parityserial PARITY_NONE PARITY_ODD PARITY_EVEN PARITY_MARK PARITY_SPACE ValueErrorr*rtscts _bytesize _stopbits STOPBITS_ONESTOPBITS_ONE_POINT_FIVE STOPBITS_TWOstructpack_REPORT_GETSET_UART_CONFIG _baudratersend_feature_reportbytes_REPORT_GETSET_UART_ENABLE _ENABLE_UART_update_break_state)r parity_valueflow_control_valuedata_bits_valuestop_bits_valueconfiguration_reports rr+zSerial._reconfigure_port}s <6- - -LL \V. . .LL \V/ / /LL \V/ / /LL \V0 0 0LL3::4<HHII I ; &!%  !%  >Q  "OO ^q "OO ^q "OO ^q "OO5<V0 0 0"OO ^v= = ="OO ^v2 2 2"OOCJJ4>ZZ[[ [%{  & N       ,,-ABBB ,, -|< = = ? ? ?   """""rc4|jSr)rqsizerBs r in_waitingzSerial.in_waitings &&(((rc2|jst|jt t t f|jr5|j d|j3dSdS)NF) r!rrr\r]_REPORT_SET_PURGE_FIFOS_PURGE_RX_FIFOrrggetrBs rreset_input_bufferzSerial.reset_input_buffers| %"$$ $ ,, *N; < < > > >%%'' )   ! !% ( ( (%%'' ) ) ) ) )rc|jst|jt t t fdSr)r!rrr\r]rj_PURGE_TX_FIFOrBs rreset_output_bufferzSerial.reset_output_buffersN| %"$$ $ ,, *N; < < > > > > >rc|jst|jr0|jt t dfdS|jt t dfdS)Nr)rr _break_stater\r]_REPORT_SET_TRANSMIT_LINE_BREAK_REPORT_SET_STOP_LINE_BREAKrBs rr`zSerial._update_break_states %"$$ $   9   0 06:;; = = = = =   0 02A677 9 9 9 9 9rr c|jstt} t|j}t ||kr|jtd|j d| }|t|S||z }| rnt ||kn#tj$rYnwxYwt|S)Nz&connection failed (reader thread died)T)r!r bytearrayr_timeoutlenrrrrl time_leftr]expiredr"Empty)rsizedatatimeoutbufs rreadz Serial.reads| %"$$ ${{ dm,,Gd))d""<')*RSSS'++D'2C2C2E2EFF; ;;& ??$$d))d""{    D T{{sA:C -CC C cD|jstt|}t|}|dkrft |d}t|g|d|z}|j|||d}t|}|dkddSdS)Nr?)r!rrrxminrwrite)rr}tx_len to_be_sentreports rrz Serial.writes| %"$$ $~~TqjjVT**Jzl++d;J;.??F   " "6 * * * $DYYF qjjjjjjrc* |jrw|jdd}|s&|d}|t |ksJ|jt||jwd|_dS#d|_wxYw)N@d) timeout_msr) r!rrpoprxrputrvr)rr}data_lens rr.zSerial._hid_read_loops , 7',,RC,@@88A;;3t99,,,,!%%ioo666 , 7 DLLL4DL    s A>B B)r )__name__ __module__ __qualname__ BAUDRATESrr5r%r2r+propertyrhrmrpr`rrr. __classcell__)rs@rrr=s"I66666 !!!> * * *   7#7#7#r))X))))>>> 9 9 9(           rr)rXr,r8 ImportError urllib.parseparser"queuer#rKserial.serialutilrrrrrr^ _DISABLE_UARTr_rjrorkrZrsrtrrrrsL6 $OOOO$$$########$LLLL ^^^^^^^^^^^^^^"  !"&"E E E E E ZE E E E E s & 22