Files
controller-wisetopdataserver/python/biopro/impl/__pycache__/ext_mem.cpython-37.opt-2.pyc
T

122 lines
15 KiB
Plaintext
Raw Normal View History

2021-12-20 14:52:55 +08:00
B
2021-12-22 14:29:56 +08:00
†¾ÂamVã@s(ddlmZddlmZddlmZddlmZmZm Z m
2021-12-20 14:52:55 +08:00
Z
m Z ddl m
Z
2021-12-22 14:29:56 +08:00
ddlmZmZmZddlmZmZmZdd lmZmZdd
2021-12-20 14:52:55 +08:00
lmZdZd Zd Zd
2021-12-22 14:29:56 +08:00
ZdZdZdZ dZ!edde"ee"dœddƒZ#GdddeƒZ$Gddde$ƒZ%GdddƒZ&ddZ'e(dkr$dd l)m)Z)e)e'ƒƒd!S)"é)Ú lru_cache)Úrandint)Úsleep)ÚListÚTupleÚOptionalÚUnionÚIterable)ÚSelector)ÚpcÚGREENÚREDé)ÚP3PinÚ OutputPinÚInputPin)ÚHardwareImplSpiInterfaceÚLowLevelHardwareInterface)ÚdatetimeééééCiFgü©ñÒMbP?é)Úmaxsize)ÚsizeÚreturncCs
dg|S)Nr©)rrrú8/home/pi/wisetopdataserver/python/biopro/impl/ext_mem.pyÚ zero_buffersrcs´eZdZeddddgZeddddddgZdZd7eeefdœfdd „
Z d
d Z
d d
Z ddZ e
edœddƒZejedœddƒZd8edœddZedœddZeeedœddZddZeeeefeeeefeeeefed œd!d"„Zeeeefeeeefeeeefed œd#d$„Zeeed%œd&d'„Zedœd(d)„Zed*œd+d,„Zeeeed-œd.d/„Zeeeeefd0œd1d2„Zd3d4„Z e!edœd5d6„Z"‡Z#S)9ÚExtMemSpiInterfacerrréÿ)Ú_spiÚ
2021-12-20 14:52:55 +08:00
_tx_bufferÚ_tx_buffer_headerÚ_tx_buffer_dataÚpin_busyÚ pin_requestÚ pin_resetÚpin_selÚ _pin_sel_valÚ_read_green_timesÚ_read_red_timesÚ_elite_data_lenÚ_mem_header_lenÚ_mem_tailer_lenÚ_single_data_lenÚ_head_wrong_cntN)Údevicectƒ ¡t|dd|_d|_d|_d|_|j|j|j|_dgd|_dgd|_ dg|jd d|_
2021-12-22 14:29:56 +08:00
t   t
2021-12-20 14:52:55 +08:00
jd
¡|_t   t
2021-12-22 14:29:56 +08:00
jd
¡|_t   t
2021-12-20 14:52:55 +08:00
jd
2021-12-22 14:29:56 +08:00
¡|_t  t
2021-12-20 14:52:55 +08:00
j¡|_d |_d|_d|_ddddddddg|_dS) Ni·)Ú spi_speedéxrérié é
TF)ÚsuperÚ__init__rr"r-r.r/r0r#r$r%rÚget_usedrÚMEM_BZYr&ÚMEM_REQr'ÚMEM_RSTr(rÚMEM_SELr)r*r+r,r1)Úselfr2)Ú __class__rrr9(s$
2021-12-22 14:29:56 +08:00

2021-12-20 14:52:55 +08:00
  zExtMemSpiInterface.__init__cCs|j ¡dS)N)r"Úreset)r?rrrrAEszExtMemSpiInterface.resetcCs|j ¡dS)N)r"Úclose)r?rrrrBHszExtMemSpiInterface.closecCs|j d¡|j d¡dS)NFT)r(Úoutput)r?rrrÚflushKs zExtMemSpiInterface.flush)rcCsdS)Nrr)r?rrrÚselectOszExtMemSpiInterface.select)ÚvaluecCsdS)Nr)r?rFrrrrESsFcCs"|j}|j ¡}|r||_||kS)N)r*r)Úinput)r?ÚflipÚoldrFrrrÚchangedWs

2021-12-22 14:29:56 +08:00
zExtMemSpiInterface.changed)ÚdatacCs
tƒdS)N)Ú RuntimeError)r?rKrrrÚ send_byte`szExtMemSpiInterface.send_byte)rrcCs
tƒdS)N)rL)r?rrrrÚ recv_bytecszExtMemSpiInterface.recv_bytecCs$|j d¡tdƒ|j d¡dS)NFgü©ñÒMbP?T)r'rCr)r?rrrÚ request_datafs zExtMemSpiInterface.request_data)Ú
data_firstÚ data_secondÚ
data_thirdÚlengthcCg}| d¡| d¡| d¡xptd|ƒD]b}||||ksR||||krb| ||¡q.||||kr| ||¡q.| ||¡q.W|jd|_td|jƒ|S)Nr!rrzread green data times)ÚappendÚranger+Úprint)r?rPrQrRrSrKÚirrrÚcompare_green_datazs


   z%ExtMemSpiInterface.compare_green_datacCg}| d¡| d¡| d¡xptd|ƒD]b}||||ksR||||krb| ||¡q.||||kr| ||¡q.| ||¡q.W|jd|_td|jƒ|S)Nr!rrzread red data times)rTrUr,rV)r?rPrQrRrSrKrWrrrÚcompare_red_datas


   z#ExtMemSpiInterface.compare_red_data)r2rc
C|j d¡g}yfd}|j}|j}t|d<d|d<d|d<g}d}|j |¡}|ddksx|ddksx|ddkr¸|j|d|j|<|j|dkr¸td|ƒtt |ddƒƒdddg|dd …<|d d
>|d B}|d} |d }
2021-12-20 14:52:55 +08:00
|d krúdS|d
dks|ddkrBd}td|d
dƒtd||t
2021-12-22 14:29:56 +08:00
  ¡ƒdS|dkrZd}td|ƒ| dkrrd}td| ƒ|
|j krd}td|j d|
ƒ|rªtd||t
  ¡ƒd }t
2021-12-20 14:52:55 +08:00
|dƒ} dg| } x¦t| d<|d
?d@| d<|d@| d<g}|j | ¡}dddg|dd …<|d |t|ƒkrB| |d d ||¡~Pn$| |d d¡|t|ƒd 7}~qÆW|j |j¡Wn,tk
2021-12-22 14:29:56 +08:00
}
z t|
ƒWdd}
2021-12-20 14:52:55 +08:00
~
XYnXWd|j d¡Xt|ƒS)NFrrrr!éz"data_first[0:3] != [255, 255, 255]érr5ré riXzgreen data: is not [0,0], = zgreen data print:Tzgreen data: big length:zgreen data: header is not 255: zgreen data: length is notz: )r&rCr#r$Ú MEM_INS_READr"rMr1rVÚlistrÚnowr-ÚintÚlenÚextendÚMEM_INS_MARKEDÚ
2021-12-22 14:29:56 +08:00
BaseExceptionÚbytes)r?r2ÚrxÚaddressÚtxZtx_hrKZ
flag_printrSÚheaderZelite_data_lenZ
red_lengthZtx_dÚerrrÚ recv_memoryœsz  $
2021-12-20 14:52:55 +08:00
(

2021-12-22 14:29:56 +08:00


   
  zExtMemSpiInterface.recv_memorycCs|j tdg¡dS)Nrr)r"rMÚ MEM_REG_READ)r?rrrÚ
read_registerQsz ExtMemSpiInterface.read_register)ÚregistercCs|j t|g¡dS)N)r"rMÚ
MSM_REG_WRITE)r?rnrrrÚwrite_registerTsz!ExtMemSpiInterface.write_register)rgrSrcCs8t|d?d@|d@g}| t|ƒ¡|j |¡ddS)Nr5r!r)r]rbrr"rM)r?rgrSrhrrrÚ read_memoryWszExtMemSpiInterface.read_memory)rgrKcCsJt|d?d@|d@g}t|tƒr0| t|ƒ¡n
| |¡|j |¡dS)Nr5r!)Ú
MEM_INS_WRITEÚ
2021-12-20 14:52:55 +08:00
isinstancererbÚiterr"rM)r?rgrKrhrrrÚ write_memory]s


zExtMemSpiInterface.write_memorycCs | ¡dS)N)rD)r?rrrÚ flush_allgszExtMemSpiInterface.flush_allccs
dVdS)Nrr)r?rrrÚforeachjszExtMemSpiInterface.foreach)N)F)$Ú__name__Ú
__module__Ú __qualname__rrrcZ
MEM_INS_RESETÚ __slots__rr`r9rArBrDÚpropertyrEÚsetterÚboolrJrerMrrNrOrrrXrYrkrmrprqrurvr rwÚ
__classcell__rr)r@rr s2 886
r ceZdZdZdeeeefdœfdd
ZeedœddƒZ e j
ed œd
2021-12-22 14:29:56 +08:00
dƒZ de dœd d
Z ddZ
fddZddZeedœddZdee dœddZdeee dœddZZS) ÚMultiExtMemSpiInterface)Ú _selectorÚ_wait_for_first_dataN)rEr2csBtƒ |¡||_ddttjƒDƒ|_ddttjƒDƒ|_dS)NcSsg|]}dqS)Fr)Ú.0Ú_rrrú
2021-12-20 14:52:55 +08:00
<listcomp>xsz4MultiExtMemSpiInterface.__init__.<locals>.<listcomp>cSsg|]}dqS)Tr)r„rrrr…ys)r8r9rrUr
ÚSIZEr*r)r?rEr2)r@rrr9qs z MultiExtMemSpiInterface.__init__)rcCs|jjS)N)rÚchannel)r?rrrrE{szMultiExtMemSpiInterface.select)rFcCs|j |¡dS)N)rrE)r?rFrrrrEsFcCs2|jj}|j|}t|jƒ}|r*||j|<||kS)N)rr‡r*r~r))r?rHr‡rIrFrrrrJƒs 
2021-12-22 14:29:56 +08:00


2021-12-20 14:52:55 +08:00
zMultiExtMemSpiInterface.changedcCs|j ¡dS)N)r"rA)r?rrrrAszMultiExtMemSpiInterface.resetcs|j ¡tƒ ¡dS)N)rrBr8)r?)r@rrrBs
2021-12-22 14:29:56 +08:00
zMultiExtMemSpiInterface.closecCs0x*|j ¡D]}|j d¡|j d¡q WdS)NFT)rrwr(rC)r?r„rrrrvs z!MultiExtMemSpiInterface.flush_allccsx|j ¡D]
}|Vq WdS)N)rrw)r?r‡rrrrwszMultiExtMemSpiInterface.foreach)Úspi_idxrFcCs||j|<dS)N)r)r?rˆrFrrrÚ
set_wait_flagsz%MultiExtMemSpiInterface.set_wait_flag)rˆrcCs|tjkr|j|SdSdS)N)r
2021-12-20 14:52:55 +08:00
r†r)r?rˆrrrÚ
get_wait_flag s
2021-12-22 14:29:56 +08:00

z%MultiExtMemSpiInterface.get_wait_flag)N)F)NN)N)rxryrzr{r
rr`r9r|rEr}r~rJrArBrvr rwr‰rrrr)r@rr€ns
2021-12-20 14:52:55 +08:00
 r€c@s†eZdZedœddZeedœddƒZeedœddƒZd d
Z e
e e ee efdœd d Z
ee e ee efed
2021-12-22 14:29:56 +08:00
œddƒZee e ee efed
2021-12-20 14:52:55 +08:00
œddƒZd"e
e e ee efe
ed
œddZd#e
e e ee efe
2021-12-22 14:29:56 +08:00
ed
2021-12-20 14:52:55 +08:00
œddZd$e
e e ee efe
ed
2021-12-22 14:29:56 +08:00
œddZd%e
e e ee efe
ed
2021-12-20 14:52:55 +08:00
œddZd&eedœddZee
ee
edœd d!„ƒZdS)'Ú
ExtMemManager)Úext_memcCs.tjtjdd|_tjtjdd|_||_dS)NT)Ú pull_up_down)Úinitial) rr:rr>Ú_mem_selrr<Ú_mem_reqÚ_ext_mem)r?rrrr9¨szExtMemManager.__init__)rcCs
t|jƒS)N)r`r)r?rrrÚmem_sel®szExtMemManager.mem_selcCs
t|jƒS)N)r`r)r?rrrÚmem_req²szExtMemManager.mem_reqcCs|j ¡ttƒdS)N)rÚpulserÚ _SLEEP_TIME_)r?rrrÚ mem_request¶s
zExtMemManager.mem_requestcCddttjƒDƒ}xŽ|j ¡D]€}ddg}| ¡tdƒt|jƒ}|j  t
¡|j  ¡||<| ¡tdƒt|jƒ}|j  t
2021-12-22 14:29:56 +08:00
¡|j  ¡||<t |ƒ||<q W|S)NcSsg|]}dqS))NNr)r„rrrr…»sz6ExtMemManager.get_ext_mem_register.<locals>.<listcomp>g{®Gáz„?)
rUr
2021-12-20 14:52:55 +08:00
r†rrwrrr`rrpÚDEFAULT_REGISTER_VALUErmÚtuple)r?Úretr‡Úm1Úm2rrrÚget_ext_mem_registerºs