Files
MiPi_Investigation/hardware/__pycache__/scope.cpython-312.pyc

54 lines
7.5 KiB
Plaintext
Raw Normal View History

2026-05-06 15:57:48 +01:00
<EFBFBD>
<00>M<EFBFBD>i<<00><01><><00>dZddlmZddlZddlZddlZddlZddlZddl m
Z
m Z m Z m Z mZmZmZej"e<12>ZGd<05>d<06>Zy)uuKeysight DSO80204B scope controller over VXI-11 / SCPI.
Configures channels for MIPI D-PHY probing (50 Ω DC, 19.2× attenuation),
arms a single trigger, and downloads ASCII waveforms with absolute
timestamps reconstructed from the preamble.
CRITICAL: All four channels must be DC50 — the 910R+50R divider only gives
the documented 19.2× ratio with 50 Ω termination.
<EFBFBD>)<01> annotationsN)<07>PROBE_ATTENUATION<4F>SCOPE_CHANNELS<4C> SCOPE_POINTS<54>SCOPE_TIMEBASE<53>TRIGGER_CHANNEL<45>TRIGGER_LEVEL_V<5F> TRIGGER_SLOPEc<01>N<00>eZdZd
d<01>Zd d<02>Zd d<03>Zd d d<04>Zdd<05>Zdd<06>Zdd<07>Z d d<08>Z
y )<11>ScopeControllerc<01><><00>||_tj|<01>|_|jj d<01>j <00>}t jd|<02>||_y)Nz*IDN?zScope connected: %s) <09>ip<69>vxi11<31>
Instrument<EFBFBD>_inst<73>ask<73>strip<69>log<6F>info<66>idn)<03>selfrrs <20>hardware/scope.py<70>__init__zScopeController.__init__"sL<00><00><14><04><07><1A>%<25>%<25>b<EFBFBD>)<29><04>
<EFBFBD><12>j<EFBFBD>j<EFBFBD>n<EFBFBD>n<EFBFBD>W<EFBFBD>%<25>+<2B>+<2B>-<2D><03> <0B><08><08>&<26><03>,<2C><16><04><08>c<01><><00>|j}|jd<01>tjd<02>|jd<03>t j
<00>D]<5D>\}}|jd|<03>d<05><03>|jd|<03>d<06><03>|jd|<03>dt <00><00><04>|jd|<03>d<08><03>|jd|<03>d <09><03>|jd|<03>d
|<02>d <0B><05><00><>|jd td <0A><04><02>|jd<0E>|jd<0F>|jd<10>|jdt<00><00><02>|jdt<00><00><02>|jdt<00><00><02>|jd<14>|jd<15>|jd<16>|jdt<00><00><02>|jd<18>y)Nz*RSTg<00>?z:STOPz:CHANnelz :DISPlay ONz :INPut DC50z:PROBe z :SCALe 0.05z :OFFSet 0.0z:LABel '<27>'z:TIMebase:SCALe z.3Ez:TIMebase:POSition 0z:TIMebase:REFerence CENTerz:TRIGger:MODE EDGEz:TRIGger:EDGE:SOURce CHANnelz:TRIGger:EDGE:SLOPe z:TRIGger:EDGE:LEVel z:TRIGger:SWEep NORMalz:ACQuire:MODE RTIMez:ACQuire:INTerpolate ONz:ACQuire:POINts z:DISPlay:LAYout STACKed) r<00>write<74>time<6D>sleepr<00>itemsrrrr
r r)r<00>i<>label<65>chs r<00>setupzScopeController.setup)s<><00><00> <10>J<EFBFBD>J<EFBFBD><01> <09><07><07><06><0F> <0C>
<EFBFBD>
<EFBFBD>3<EFBFBD><0F> <09><07><07><07><18>'<27>-<2D>-<2D>/<2F> 5<>I<EFBFBD>E<EFBFBD>2<EFBFBD> <0A>G<EFBFBD>G<EFBFBD>h<EFBFBD>r<EFBFBD>d<EFBFBD>+<2B>.<2E> /<2F> <0A>G<EFBFBD>G<EFBFBD>h<EFBFBD>r<EFBFBD>d<EFBFBD>+<2B>.<2E> /<2F> <0A>G<EFBFBD>G<EFBFBD>h<EFBFBD>r<EFBFBD>d<EFBFBD>'<27>*;<3B>)<<3C>=<3D> ><3E> <0A>G<EFBFBD>G<EFBFBD>h<EFBFBD>r<EFBFBD>d<EFBFBD>+<2B>.<2E> /<2F> <0A>G<EFBFBD>G<EFBFBD>h<EFBFBD>r<EFBFBD>d<EFBFBD>+<2B>.<2E> /<2F> <0A>G<EFBFBD>G<EFBFBD>h<EFBFBD>r<EFBFBD>d<EFBFBD>(<28>5<EFBFBD>'<27><11>3<> 4<>  5<>
<EFBFBD><07><07>"<22>><3E>#<23>"6<>7<>8<> <09><07><07>&<26>'<27> <09><07><07>,<2C>-<2D> <09><07><07>$<24>%<25> <09><07><07>.<2E><EFBFBD>.?<3F>@<40>A<> <09><07><07>&<26>}<7D>o<EFBFBD>6<>7<> <09><07><07>&<26><EFBFBD>&7<>8<>9<> <09><07><07>'<27>(<28> <09><07><07>%<25>&<26> <09><07><07>)<29>*<2A> <09><07><07>"<22><<3C>.<2E>1<>2<> <09><07><07>)<29>*rc<01>:<00>|jjd<01>y)Nz:SINGle)rr<00>rs r<00>
arm_singlezScopeController.arm_singleGs<00><00> <0C>
<EFBFBD>
<EFBFBD><18><18><19>#rc<01>N<00>tj<00>|z}tj<00>|krf t|jj d<01>j <00><00>}|dk(rytjd<05>tj<00>|kr<01>fy#t $rd}Y<00>AwxYw)Nz:TER?r<00>Tg<54><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?F)r<00> monotonic<69>intrrr<00>
ValueErrorr)r<00> timeout_s<5F>deadline<6E>ters r<00>wait_for_triggerz ScopeController.wait_for_triggerJs<><00><00><17>><3E>><3E>#<23>i<EFBFBD>/<2F><08><12>n<EFBFBD>n<EFBFBD><1E><18>)<29> <18><19>$<24>*<2A>*<2A>.<2E>.<2E><17>1<>7<>7<>9<>:<3A><03><13>a<EFBFBD>x<EFBFBD><1B> <10>J<EFBFBD>J<EFBFBD>s<EFBFBD>O<EFBFBD><13>n<EFBFBD>n<EFBFBD><1E><18>)<29><15><> <1E> <18><17><03> <18>s<00>2B<00> B$<03>#B$c <01><><00>|jjd|<01><00><02>|jjd<02>j<00>}|j d<03>}t |d<00>t |d<00>t |d<00>t |d<00>t |d<00>t |d <00>t |d
<00>t |d <00>t |d <00>t |d <00>d<0E>
S)N<>:WAVeform:SOURce CHANnelz:WAVeform:PREamble?<3F>,rr)<00><00><00><00><00><00><00><00> )
<EFBFBD>format<61>type<70>points<74>count<6E> x_increment<6E>x_origin<69> x_reference<63> y_increment<6E>y_origin<69> y_reference)rrrr<00>splitr+<00>float)r<00>channel<65>raw<61>partss r<00>_read_preamblezScopeController._read_preambleVs<><00><00> <0C>
<EFBFBD>
<EFBFBD><18><18>3<>G<EFBFBD>9<EFBFBD>=<3D>><3E><12>j<EFBFBD>j<EFBFBD>n<EFBFBD>n<EFBFBD>2<>3<>9<>9<>;<3B><03><13> <09> <09>#<23><0E><05><19>%<25><01>(<28>m<EFBFBD><17><05>a<EFBFBD><08>M<EFBFBD><19>%<25><01>(<28>m<EFBFBD><18><15>q<EFBFBD><18>]<5D> <20><15>q<EFBFBD><18>?<3F><1D>e<EFBFBD>A<EFBFBD>h<EFBFBD><0F> <20><15>q<EFBFBD><18>?<3F> <20><15>q<EFBFBD><18>?<3F><1D>e<EFBFBD>A<EFBFBD>h<EFBFBD><0F> <20><15>q<EFBFBD><18>?<3F> 
<EFBFBD>
rc<01><><00>|j|<01>}|jjd<01>|jjd<02>|jjd|<01><00><02>|jjd<04>}|j d<05>rt |d<00>}|d|zd}t jtj|<03>d<00><08>jd jt<00>j}t|<05>}|d
}|d }||t jt!|<06>d <0C> <0A>zz} t j"| |d<0E><02>S)Nz:WAVeform:FORMat ASCiiz:WAVeform:STReaming ONr2z:WAVeform:DATA?<3F>#r)r4)<01>headerrr@rA<00>float64)<01>dtype)<02>time_s<5F> voltage_v)rKrrr<00>
startswithr+<00>pd<70>read_csv<73>io<69>StringIO<49>iloc<6F>astyperG<00>values<65>len<65>Series<65>range<67> DataFrame)
rrH<00>preamblerI<00>n_digits<74>voltages<65>n<>x_incrA<00>timess
r<00>download_waveformz!ScopeController.download_waveformgs<00><00><17>&<26>&<26>w<EFBFBD>/<2F><08> <0C>
<EFBFBD>
<EFBFBD><18><18>1<>2<> <0C>
<EFBFBD>
<EFBFBD><18><18>1<>2<> <0C>
<EFBFBD>
<EFBFBD><18><18>3<>G<EFBFBD>9<EFBFBD>=<3D>><3E><12>j<EFBFBD>j<EFBFBD>n<EFBFBD>n<EFBFBD>.<2E>/<2F><03> <0E>><3E>><3E>#<23> <1E><1A>3<EFBFBD>q<EFBFBD>6<EFBFBD>{<7B>H<EFBFBD><15>a<EFBFBD>(<28>l<EFBFBD>n<EFBFBD>%<25>C<EFBFBD><15>;<3B>;<3B>r<EFBFBD>{<7B>{<7B>3<EFBFBD>/<2F><04>=<3D>B<>B<>1<EFBFBD>E<>L<>L<>U<EFBFBD>S<>Z<>Z<><08> <0F><08>M<EFBFBD><01><18><1D>'<27><05><1B>J<EFBFBD>'<27><08><18>5<EFBFBD>2<EFBFBD>9<EFBFBD>9<EFBFBD>U<EFBFBD>1<EFBFBD>X<EFBFBD>Y<EFBFBD>#G<>G<>G<><05><11>|<7C>|<7C>u<EFBFBD>8<EFBFBD>D<>E<>Erc<01>|<00>tj<00>D<00><01>cic]\}}||j|<02><00><02>c}}Scc}}w<00>N)rr re)rr"r#s r<00> download_allzScopeController.download_all|s<<00><00>?M<>?S<>?S<>?U<>
<EFBFBD>2;<3B>%<25><12>E<EFBFBD>4<EFBFBD>)<29>)<29>"<22>-<2D> -<2D>
<EFBFBD>
<EFBFBD><EFBFBD>
s<00>8c<01>X<00> |jj<00>y#t$rYywxYwrg)r<00>close<73> Exceptionr&s rrjzScopeController.close<73>s)<00><00> <11> <10>J<EFBFBD>J<EFBFBD> <1C> <1C> <1E><><18> <11> <10> <11>s <00><00> )<03>)N)r<00>str<74>return<72>None)rmrn)g>@)r-rGrm<00>bool)rHr+rm<00>dict)rHr+rmz pd.DataFrame)rmzdict[str, pd.DataFrame]) <0B>__name__<5F>
__module__<EFBFBD> __qualname__rr$r'r0rKrerhrj<00>rrr r !s+<00><00><17>+<2B><$<24>
<15>
<EFBFBD>"F<01>*
<EFBFBD>
rr )<15>__doc__<5F>
__future__rrV<00>loggingr<00>pandasrTr<00>configrrrrrr r
<00> getLoggerrqrr rtrr<00><module>r{sM<00><01><04>#<23> <09><0E> <0B><13> <0C><02><02><02><18>g<EFBFBD><17><17><08>!<21><03>d<11>dr