
    e                     	   d Z ddlZddlZddlZddlmZ ddlZddl	m
Z ddlmZ ddlmZmZmZ  ej&                         Zej+                  ddd       ej+                  d	dd
       ej-                  d       ej+                  dde       ej+                  dde       ej+                  dde       ej+                  dde       ej+                  dde       ej+                  ddd       ej+                  ddd
       ej-                  d       ej+                  ddd       ej+                  d ed      ed !       ej3                         Zej6                  : ej8                  d"ej6                          ej8                  d#ej6                          ej:                  d"      Z ej<                         ZejA                  d       ej<                  jC                  e        G d$ d%ejD                        Z# ejH                  d&      Z% ejL                         Z'ejP                  jS                  d'd()      Z* ejV                  d*+      Z,e,j[                  e*        ej\                         Z/ ej`                         Z1e1je                  e,       e1je                  e/       e1jg                           ejh                  e*d*ejj                  jl                  ,      Z7e/jq                  d-       e/js                  d.d/d01        e#e'd23      Z:e/jw                  e:        ejx                         Z=e7j}                  dd4ddgid4d5dgid6d7id6d7i8      ej~                  ej                  ej                  ej                  ej                  ej                  fd9       ZEe*j                  d:      j                  d;<       e7j}                  d=g d>d?@       ej:                  dA      dBd*fdC       ZHe7j}                  dDej                   idEdFgd=dGdHdIiJ       ejL                         dEd*eefdK       ZJ eE         ej                         ZLeLj                  j                  eH       eLj                  d        e       ZPePj                  j                  dL        eRdMk(  r$e,j                  dNd        ej                          yy)Oz?
Update a simple plot as rapidly as possible to measure speed.
    N)FrameCounter)QtCoreQtGui	QtWidgetsz--noisenoise
store_true)destactionz
--no-noisestore_falseT)r   z
--nsamplesi  )defaulttypez--frames2   z	--fsamplei  z--frequencyz--amplitude   z--opengl
use_openglz--no-opengl)r   z--allow-opengl-togglezUAllow on-the-fly change of OpenGL setting. This may cause unwanted side effects.
    )r
   helpz--iterationsinfz*Number of iterations to run before exiting)r   r   r   	useOpenGLenableExperimentalc                   .     e Zd Z fdZd Z fdZ xZS )MonkeyCurveItemc                 2    t        |   |i | d| _        y )N )super__init__monkey_mode)selfargskwds	__class__s      B/usr/lib/python3/dist-packages/pyqtgraph/examples/PlotSpeedTest.pyr   zMonkeyCurveItem.__init__2   s    $'$'    c                     || _         y )N)r   )r   values     r    	setMethodzMonkeyCurveItem.setMethod6   s
     r!   c                    | j                   dvrt        | 	  |||      S |j                  |j                  j
                  | j                  d          |j                  t        j                  | j                  d                | j                   dk(  r:|j                  t        j                  | j                  | j                               y y )N)drawPolyline	antialiaspenr&   )r   r   paintsetRenderHint
RenderHintAntialiasingoptssetPenpgmkPenr&   fnarrayToQPolygonFxDatayData)r   painteroptwidgetr   s       r    r)   zMonkeyCurveItem.paint9   s    #337=#v66g00==tyy?UVrxx		% 012~-  !4!4TZZ!LM .r!   )__name__
__module____qualname__r   r$   r)   __classcell__)r   s   @r    r   r   1   s    !N Nr!   r   zPlot Speed Test
Parametersgroup)namer   F)
showHeader)parentnest
runOptionsz pyqtgraph example: PlotSpeedTestbottomIndexB)unitsb)r(   brushlimits   rF   Hz)rA   nsamplesframesfsample	frequencyc                    t        j                  ||z  t         j                        |z  }|t        j                  dt         j                  z  |z  |z        j                  ||f      z  a| r5t        t         j                  j                  t        j                        z  at        j                  t        j                  d   t              adat        j                  t!        j"                  dd|d             y )N)dtype   )sizer   i   )nparangefloat64sinpireshapedatarandomnormalshapeonesboolconnect_arrayptrpwsetRanger   QRectF)r   rL   rM   rN   rO   	amplitudettts          r    makeDatari   Z   s      ))FX%RZZ
87
BCRVVAbeeGI-c12::FH;MNND		  djj 11GGDJJrN$7M
CKKah34r!   ri   zPlot Options)titlelist)allpairsfinitearray)r   rI   )connectr'   rl   c                 V   t        t              t        j                  kD  r)t        j                          t        j                          y |dk(  rt        }t        j                  t        t           | ||       t        dz   t        j                  d   z  at        j                          y )Nro   r'   rp   skipFiniteCheckrJ   r   )nextiterations_counterr   
iterationstimerstopappquitrb   curvesetDatar\   rc   r_   framecntupdaterr   s      r    r~   r~   u   s{     $//1


'	MMS	'	   7djjm
#COOr!   readonly	pyqtgraphr&   )rI   r   r   r(   )r   
plotMethodcurvePenc                     t        j                  d|       t        j                  |       t        j                  |        t        j                  |rdnd        t        j                  |       y )Nr   g        )r/   setConfigOptionrd   r   r{   r.   setFillLevelr$   )r   r   	fillLevelr   r   s        r    updateOptionsr      sL     +-?@LL	LL	isT2	OOJr!   c                 4    t         j                  | dd      S )Nz.1fz fps)rd   setTitle)fpss    r    <lambda>r      s    "++S	6F*G r!   __main__   )U__doc__argparse	itertoolsnumpyrV   utilsr   r   r/   pyqtgraph.functions	functionsr1   pyqtgraph.parametertreeparametertreeptreepyqtgraph.Qtr   r   r   ArgumentParserparseradd_argumentset_defaultsintfloat
parse_argsr   r   r   getConfigOptionQSurfaceFormatsfmtsetSwapIntervalsetDefaultFormatPlotCurveItemr   mkQAppry   r0   default_pen	ParametercreateparamsParameterTreeptsetParameters
PlotWidgetrd   	QSplittersplitter	addWidgetshow
Interactor
RunOptions
ON_CHANGED
interactorsetWindowTitlesetLabelr{   addItemcountru   decorater   rL   rM   rN   rO   rg   ri   childsetOptsr~   allow_opengl_toggler   QTimerrw   timeoutrp   startr}   sigFpsUpdater8   setMinimumSizeexec r!   r    <module>r      s          ' 1 1 
!	 	 	"   IGL  A   Lw}  E   $     L$S  9   J  5   KE  :   M15  9   M15  9   J\,  G   M]  K   t  $   +L
  	   NE%Lu	5   ??B{DOO4B+T__=R,
 u   Q     % %d +Nb&& N$ bii!"bhhj			\		@UE*    R]]_9    2    2  U%*:*:*E*E
   4 5 HgS )Ks3 

5 $Y__& 	D	"q$i dOo   **]];;LLnnnn55" Z     ~   6 'JK   !b  -4 t7778&7He_   RXXZ! 
  	
   f  A>     G Hz c!BGGI	 r!   