
    _^i              
          S SK r S SKrS SKrS SKrS SKJrJrJrJ	r	  Sr
SrSrSrSrS rSrSrS	rS
rSrSrSrS/S-  S/S-  -   rS%S\\   S\S\\   4S jjrS\\   S\\   4S jrS\S\S\S\4S jrS\S\S\4S jrS&S\\   S\S\S\\   4S jjrS\\   S\\   4S  jr S!\/ \\   4   S\\   4S" jr! " S# S$5      r"\"" 5       r#g)'    N)AnyListCallableOptional
legacy_mbmz192.168.11.155i        F   i @  gQ?g       @)        g      ^@   )g      i@g     @o@	registers	word_swapreturnc                 x   [        U 5      S-  S:w  a  U S S n / n[        S[        U 5      S5       H  nX   XS-      pTU(       a  XTpT[        R                  " S[	        U5      S-  5      [        R                  " S[	        U5      S-  5      -   nUR                  [        R                  " SU5      S   5        M     U$ )Nr
   r   r   z>Hi  z>f)lenrangestructpackintappendunpack)r   r   outiw1w2bs          ./opt/web_work/log_reader/plugins/legacy_mbm.pyregs_to_floatsr      s    
9~QcrN	
C1c)na(y1~BKKc"g./&++dCGfDT2UU

6==q)!,- ) J    valsc                 X    U  Vs/ s H  n[        [        U5      S5      PM     sn$ s  snf )Nr
   )roundfloat)r!   vs     r   round2r&   &   s%    (,-1E%(A---s   'r%   lohic                 "    X:  a  U$ X:  a  U$ U $ N )r%   r'   r(   s      r   clampr,   )   s    2016R0q0r    refc                 b    [        [        U5      [        -  [        5      n[        X-
  5      U:*  $ r*   )maxabsREL_TOL	ABS_FLOOR)r%   r-   tols      r   withinr4   ,   s(    
c#h )
,Cqw<3r    lstnpadc                 R    [        U 5      U:  a  U S U $ X/U[        U 5      -
  -  -   $ r*   )r   )r5   r6   r7   s      r   pad_or_trimr9   0   s/    #h!m3r7EuCH/E)EEr    c                     / n[        U SS9 HT  u  p#U[        [        5      ::  a+  [        US-
     u  pEUR                  [	        X4U5      5        MC  UR                  U5        MV     U$ )Nr   )start)	enumerater   RANGESr   r,   )r!   r   r   r%   r'   r(   s         r   apply_rangesr>   3   sZ    
C$a(FAaC[FBJJuQB'(JJqM ) Jr    readerc                   ^	^
 U " 5       m	U " 5       m
[        U	U
4S j[        [        [        T	5      [        T
5      5      5       5       5      nU(       a  U " 5       OS n/ nUc  [        [        T	5      [        T
5      5      O'[        [        T	5      [        T
5      [        U5      5      n[        U5       H  nT	U   T
U   pvUc  UR	                  U5        M"  X%   n[        Xv5      (       a  UR	                  U5        MI  [        X5      (       a  UR	                  U5        Ml  [        X5      (       a  UR	                  U5        M  UR	                  U5        M     [        U[        T	5      S5      $ )Nc              3   R   >#    U  H  n[        TU   TU   5      (       + v   M     g 7fr*   )r4   ).0r   ABs     r   	<genexpr>.triple_read_with_validation.<locals>.<genexpr>A   s(     P5O!ad+++5Os   $'r   )anyr   minr   r   r4   r9   )r?   
need_thirdCresultr6   r   ar   crC   rD   s            @@r   triple_read_with_validationrN   =   s   AAPU3s1vs1v;N5OPPJ+5vx4AF yCFCFc#a&#a&#a&.IA1XtQqT19MM!D!<<MM!A\\MM!A\\MM!MM!  vs1vs++r    c                   B    \ rS rSr\rS\R                  S\SS4S jr	Sr
g)LegacyPluginV   ticklog_rootr   Nc                   ^ [         R                  R                  US5      n[         R                  " USS9  [         R                  R                  XAR	                  S5      5      nU4S jn[        U5      n[        U5      n[        U5      nTR                  [        [        [        [        [        [        5      nU V	s/ s H  n	[        U	5      (       a  SOSPM     n
n	[!        U
[        S5      n
UR	                  S5      /US ["         -   U
S [         -   n[%        US	S
SS9 n[&        R(                  " USS9R+                  U5        S S S 5        g s  sn	f ! , (       d  f       g = f)NLEGACYT)exist_okz%d_%m_%y.csvc                     > TR                  [        [        [        [        [
        [        S[        -  S5      5      n [        U [        S9n[        U5      n[        U[        S5      $ )Nr
   )r   r   )read_rawIPPORTUNITFIRST_INSTR
FIRST_ADDRr/   FLOAT_COUNT_NEEDEDr   	WORD_SWAPr&   r9   )regsr!   apis     r   floats_reader+LegacyPlugin.on_tick.<locals>.floats_reader_   sN    <<D$ZQOaMacdIefD!$)<D$<Dt%7==r    r   r   z%H:%MrL    zutf-8)newlineencoding,)	delimiter)ospathjoinmakedirsstrftimerN   r>   r&   rX   rY   rZ   r[   SECOND_INSTRSECOND_ADDRDI_COUNT_NEEDEDboolr9   r^   opencsvwriterwriterow)selfrR   ra   rS   folderfnrb   floatsdi_rawxdirowfs     `          r   on_tickLegacyPlugin.on_tickY   s   h1
FT*WW\\&--"?@	> -];f%b$lKY+126a477a!62_a0}}W%&0C1C)DDrJZ?G[["c28AJJqC(11#6 98 3
 98s   >E!%E
E"r+   )__name__
__module____qualname____firstlineno__NAMEnamedtdatetimestrr   __static_attributes__r+   r    r   rP   rP   V   s%    D7BKK 7 7 7r    rP   )F)r   )$ri   rs   r   r   r   typingr   r   r   r   r   rY   rZ   r[   r\   r]   r^   r_   rn   ro   rp   r1   r2   r=   r   rq   r$   r   r&   r,   r4   r9   r>   rN   rP   pluginr+   r    r   <module>r      si      0 0 

 	
	
!	~.2	2
d3i 
D 
T%[ 
.e .e .1U 1 15 1U 1e % D FT#Y F3 FS Fc FtE{ tE{ ,T%[(A ,d5k ,27 78 
r    