g#pddlmZddlZddlZddlTejejZdZGdde Z dS))absolute_importN)*c4td|DS)Nc,g|]}t|S)ord).0xs `/home/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/serial/serialcli.py z!as_byte_array..s'''1A''')sab)strings r as_byte_arrayrs ''''' ( ((r ceZdZdZdZdZdZdZedZ ddZ d Z d Z d Z d Zd ZdZedZedZedZedZdS)Serialz)Serial port implementation for .NET/Mono.)2Kni,iXiii` ii%iKiiicX|jtd|jrtd tjj|j|_n3#t$r&}d|_td|jd|d}~wwxYw|j d|_ |j d|_ | |j d|_|js||js||dS)zx Open port with current settings. This may throw a SerialException if the port cannot be opened. Nz.Port must be configured before it can be used.zPort is already open.zcould not open port z: T)_portSerialExceptionis_openSystemIOPorts SerialPortportstr _port_handle Exception _rts_state _dtr_state_reconfigure_portOpen_dsrdtr_update_dtr_state_rtscts_update_rts_statereset_input_buffer)selfmsgs r openz Serial.opensA : !"RSS S < ;!"9:: : V &  : :4< H HD   V V V $D !/$,,,PSPS"TUU U V ? ""DO ? ""DO         | %  " " $ $ $| %  " " $ $ $ !!!!!s.A B '!BB cN|jstd|j&tjjjj|j_n!t|jdz|j_|j &tjjjj|j_ n!t|j dz|j_ |j |j_ n.#t$r!}tt!|d}~wwxYw|jt$kr d|j_nn|jt(kr d|j_nQ|jt*kr d|j_n4|jt,kr d|j_ntd|jz|jt0kr/t3tjjjd |j_n|jt6kr&tjjjj|j_n|jt:kr&tjjjj|j_n|jt>kr&tjjjj |j_nM|jtBkr&tjjjj"|j_ntd |jz|j#tHkr&tjjj%j&|j_%n|j#tNkr&tjjj%j(|j_%nM|j#tRkr&tjjj%j*|j_%ntd |j#z|j+r.|j,r'tjjj-j.|j_-dS|j+r'tjjj-j/|j_-dS|j,r'tjjj-j0|j_-dSt3tjjj-d |j_-dS) z,Set communication parameters on opened port.z'Can only operate on a valid port handleNiz#Unsupported number of data bits: %rNonezUnsupported parity mode: %rz#Unsupported number of stop bits: %r)1r"r_timeoutrrrr InfiniteTimeout ReadTimeoutint_write_timeout WriteTimeout _baudrateBaudRateIOError ValueErrorstr _bytesizeFIVEBITSDataBitsSIXBITS SEVENBITS EIGHTBITS_parity PARITY_NONEgetattrParity PARITY_EVENEven PARITY_ODDOdd PARITY_MARKMark PARITY_SPACESpace _stopbits STOPBITS_ONEStopBitsOneSTOPBITS_ONE_POINT_FIVE OnePointFive STOPBITS_TWOTwor*_xonxoff HandshakeRequestToSendXOnXOff RequestToSendXOnXOff)r-es r r&zSerial._reconfigure_port=s]  M!"KLL L = ,2IO,F,VD  ) ),/ 0D,E,ED  )   &-3Y_-G-WD  * *-01Dt1K-L-LD  * %)-D  & & % % %SVV$$ $ % >X % %)*D  & & ^w & &)*D  & & ^y ( ()*D  & & ^y ( ()*D  & &BT^STT T <; & &'.vy/Ev'N'ND  $ $ \[ ( ('-y'='BD  $ $ \Z ' ''-y'='AD  $ $ \[ ( ('-y'='BD  $ $ \\ ) )'-y'='CD  $ $:T\IJJ J >\ ) ))/)A)ED  & & ^6 6 6)/)A)ND  & & ^| + +)/)A)ED  & &BT^STT T < UDM U*0)/*C*XD  ' ' ' \ U*0)/*C*QD  ' ' ' ] U*0)/*C*KD  ' ' '*1&)/2KV*T*TD  ' ' 's4C C1C,,C1c|jrQ|jrA |jn#tjjj$rYnwxYwd|_d|_dSdS)z Close portNF)rr"CloserrrInvalidOperationExceptionr-s r closez Serial.closesz < !  )%++----y@D%)! DLLL ! !s*AAcD|jst|jjS)z>Return the number of characters currently in the input buffer.)rPortNotOpenErrorr" BytesToReadrds r in_waitingzSerial.in_waitings&| %"$$ $ ,,r c|jstt}|rJ ||j|dz}n#t j$rYnwxYw|Jt|S)z 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. rj) rrg bytearrayappendr"ReadByterTimeoutExceptionbytes)r-sizedatas r readz Serial.reads | %"$$ ${{   D-6688999 *     T{{s,AA+*A+c|jst |jt |dt |n"#t j$rtdwxYwt |S)z-Output the given string over the serial port.rz Write timeout) rrgr"WriterlenrroSerialTimeoutException)r-rrs r writez Serial.writes| %"$$ $ :   # #M$$7$7CII F F F F& : : :(99 9 :4yys 6AA-cb|jst|jdS)z9Clear input buffer, discarding all that is in the buffer.N)rrgr"DiscardInBufferrds r r,zSerial.reset_input_buffers3| %"$$ $ ))+++++r cb|jst|jdS)zs Clear output buffer, aborting the current output and discarding all that is in the buffer. N)rrgr"DiscardOutBufferrds r reset_output_bufferzSerial.reset_output_buffers5 | %"$$ $ **,,,,,r cl|jstt|j|j_dS)zT Set break: Controls TXD. When active, to transmitting is possible. N)rrgbool _break_stater" BreakStaterds r _update_break_statezSerial._update_break_states6| %"$$ $'+D,='>'>$$$r cl|jstt|j|j_dS)z)Set terminal status line: Request To SendN)rrgrr$r" RtsEnablerds r r+zSerial._update_rts_state3| %"$$ $&*4?&;&;###r cl|jstt|j|j_dS)z-Set terminal status line: Data Terminal ReadyN)rrgrr%r" DtrEnablerds r r)zSerial._update_dtr_staterr cD|jst|jjS)z(Read terminal status line: Clear To Send)rrgr" CtsHoldingrds r ctsz Serial.cts&| %"$$ $ ++r cD|jst|jjS)z)Read terminal status line: Data Set Ready)rrgr" DsrHoldingrds r dsrz Serial.dsrrr c0|jstdS)z)Read terminal status line: Ring IndicatorF)rrgrds r riz Serial.ris| %"$$ $ur cD|jst|jjS)z)Read terminal status line: Carrier Detect)rrgr" CDHoldingrds r cdz Serial.cds&| %"$$ $ **r N)rj)__name__ __module__ __qualname____doc__ BAUDRATESr/r&repropertyrirsrxr,r}rr+r)rrrrrr r rrsJ334I"""rs'&&&&&  l6;)))a+a+a+a+a+Za+a+a+a+a+r