Files
controller-wisetopdataserver/python/biopro/devlib/__pycache__/parameter.cpython-37.opt-2.pyc
T

171 lines
16 KiB
Plaintext
Raw Normal View History

2021-12-20 14:52:55 +08:00
B
2021-12-22 14:29:56 +08:00
ñ0ÀaQiã@sXddlTddlTGdddeƒZGdddeƒZGdddeeƒZGdd „d eƒZd
2021-12-20 14:52:55 +08:00
S) é)Ú*c@eZdZdZdZdZdZdZdZd&e e
e e fe e
e e fdœd d
Z
e ee e
e fd œd d
Ze eed œddZddZeeddœddƒZee
eegefeeeefeedœddƒZeeege
fe
2021-12-22 14:29:56 +08:00
eeefeedœddƒZeeegefeeeefeedœddƒZeeegefeeeefeedœddƒZeeegefeeeefeedœdd „ƒZeeegefeeeefeedœd!d"„ƒZ ed'eegefeeeefed#œd$d%„ƒZ!dS)(ÚPropertySetterÚexactZnearÚfloorÚceilZNT)Ú
2021-12-20 14:52:55 +08:00
_parameterÚ _variableN)Ú parameterÚvariablecCs||_||_dS)N)rr)Úselfr r
©r ú</home/pi/wisetopdataserver/python/biopro/devlib/parameter.pyÚ__init__>szPropertySetter.__init__)ÚvalueÚcontextÚreturncCs:| ||¡}i}x$|j ¡D]\}}| |¡||<qW|S)N)Ú_resolve_variablerÚitemsr)r rrÚscopeÚretÚparÚexpr r r
Ú
cast_valueBs
 zPropertySetter.cast_valuec C|j|d}|jdk rºt|j ¡ƒ}t|ƒ}xŒ|dkr¸xX|j ¡D]J\}}||krBy| |¡}Wntk
rtYqBX| ||¡|  |¡qBWt|ƒ|kr®t
dd  |¡ƒt|ƒ}q.W|S)N)ÚVALUEézrecursive variable define : ú ) ÚchildrÚsetÚkeysÚlenrrÚ NameErrorÚ set_localÚdiscardÚ RuntimeErrorÚjoin) r rrrZvar_setZ var_set_sizeÚvarrÚvalr r r
rRs" 

   z PropertySetter._resolve_variablecCs>ddd|j ¡Dƒi}|jdk r:dd|j ¡Dƒ|d<|S)Nr cSsi|]\}}| ¡|qSr )Úas_json)Ú.0Úvr r r
ú
<dictcomp>nsz*PropertySetter.as_json.<locals>.<dictcomp>cSsi|]\}}| ¡|qSr )r')r(r)r*r r r
r+rsr
)rrr)r rr r r
r'ls
zPropertySetter.as_json)ÚjsonrcCsNt|dtdƒ}t|dtddd}t|ddƒ}|dk rDt|ddƒ}t||ƒS) Nr Ú value_setr
T)ÚnullablecSs
t |¡S)N)Ú
ExpressionÚparse)r)r*r r r
Ú<lambda>{óz&PropertySetter.parse.<locals>.<lambda>cSs
t |¡S)N)r/r0)r)r*r r r
r1~r2)Ú_getÚdictÚ_dictr)Úclsr,rr%r r r
r0vs zPropertySetter.parse)ÚstrategyÚfr*ÚsrcCsˆ||jkr| |||¡S||jkr0| |||¡S||jkrH| |||¡S||jkr`| |||¡S||jkrx|  |||¡St
d|ƒdS)Nzunknown cast strategy : ) Ú
CAST_EXACTÚ
exact_rootÚ CAST_NEARÚ near_rootÚ
CAST_FLOORÚ ceil_rootÚ CAST_CEILÚ
floor_rootÚCAST_NTÚnt_rootr#)r6r7r8r*r9r r r
Ú find_roots




zPropertySetter.find_root)r8rÚ
seed_rangercCs&x t|ŽD]}||ƒ|kr
|Sq
WdS)N)Úrange)r8rrEÚpr r r
Ú
find_identifyšs zPropertySetter.find_identifycCs&x t|ŽD]}||ƒ|kr
|Sq
WdS)N)rF)r8rrErGr r r
r;¢s zPropertySetter.exact_rootcCsJd}d}x<t|ŽD]0}||ƒ}t||ƒ}|dks:||kr|}|}qW|S)N)rFÚabs)r8rrErZmin_drGr*Údr r r
r=«s zPropertySetter.near_rootcCs6d}x,t|d|ddƒD]}|||ƒkr|}qW|S)Nrréÿÿÿÿ)rF)r8rrErrGr r r
r?ºs
 zPropertySetter.ceil_rootcCs*d}x t|ŽD]}||ƒ|kr|}qW|S)N)rF)r8rrErrGr r r
rAÄs
 zPropertySetter.floor_root)r8rÚseedrc
Cs´|dkrd}n|d|df}||dƒ||dƒg}|d|d|d|d}|d|dd}xD||ƒ}||}|dkrˆ|St||ƒ} | dkr¤|dS|| 7}qlWdS)N)rédrré)Úint)
r8rrLr9r*r)ÚcrJr r r
rCÎs  zPropertySetter.nt_root)N)N)"Ú__name__Ú
__module__Ú __qualname__r:r<r>r@rBÚ __slots__ÚDictÚstrr/ÚAnyrÚScoperrr'Ú classmethodÚ JSON_OBJECTr0ÚCallablerOÚfloatÚTupleÚOptionalrDÚ staticmethodrHr;r=r?rArCr r r r
rs4*
 .,,,, , rc @eZdZdZdZdZeeefZdZd6ee e
e e
e e
e edeefe
eeeeefe
edœ dd „Zeed
œd d ƒZee d
œd
dƒZeed
œddƒZeed
œddƒZee d
œddƒZee
ed
œddƒZeed
œddƒZeed
œddƒZeeed
œddƒZee
ed
œddƒZe d
œdd „Zd!d"œd#d$„Ze d!e d%œd&d'„Z e d!e d%œd(d)„Z!e d!e d%œd*d+„Z"eed
œd,d-„Z#e$e ed.œd/d0„ƒZ%e e e&e d1œd2d3„Z'd4d5„Z(dS)7Ú
ParameterInfoÚ SAMPLE_RATEÚCHANNELÚAMP_GAIN) Ú_nameÚ_domainÚ_initialÚ_valueÚ
_value_setÚ_guardÚ
_on_changeÚ_aliasÚ _descriptionÚ _record_metaÚ_privateNF) ÚnameÚdomainÚinitialÚguardrr-Ú on_changeÚaliasÚ descriptionc CsV|dkrtd|ƒn†|tkr,|dkrœd}np|tkrp|dkrP|dkrPtd|ƒ|dk rœt|tƒsœtd|ƒn,|tkrœ|dk sˆ|dk r”td|ƒd}
d} ||jkrØ|tkr°n(t|tƒrÐt|j t
ƒsØtdƒntd ƒt|t ƒrè|g}||_ ||_
||_||_||_||_||_|dk r$t|ƒng|_| |_|
p>||jk|_| oN|j |_dS)
Nz NoneType domain for parameter : rzDparameter %s with property domain without value/value_set expressionz2value_set of the parameter %s not a PropertySetterz?parameter %s with action domain with value/value_set expressionFTz+parameter CHANNEL not a set of value domainz.parameter CHANNEL not a set or property domain)Ú TypeErrorÚParameterConstantDomainÚParameterPropertyDomainr#Ú
isinstancerÚParameterActionDomainrdZParameterSetDomainÚelement_domainÚParameterValueDomainrXrfrgrhrirjrlrkÚlistrmrnÚREQUIREDrorp) r rqrrrsrtrr-rurvrwÚ record_metaÚprivater r r
r0sF  

 

zParameterInfo.__init__)rcCs|jS)N)rf)r r r r
rq{szParameterInfo.namecCs|jS)N)rg)r r r r
rrszParameterInfo.domaincCs.|jtkr|jdkrdS|jtkr&dSdSdS)NFT)rgrzrir|)r r r r
Ú is_readable…s

zParameterInfo.is_readablecCs.|jtkrdS|jtkr&|jdkr&dSdSdS)NFT)rgryrzrj)r r r r
Ú is_writableŽs

zParameterInfo.is_writablecCst|jtƒr|jjS|jSdS)N)r{rgÚParameterCollectionDomainr})r r r r
r}s zParameterInfo.element_domaincCs|jS)N)rn)r r r r
rwŸszParameterInfo.descriptioncCs|jS)N)ro)r r r r
r£szParameterInfo.record_metacCs|jS)N)rp)r r r r
r§szParameterInfo.privatecCs
t|jƒS)N)rrm)r r r r
rv«szParameterInfo.aliascCs|jS)N)rl)r r r r
ru¯szParameterInfo.on_changecCsR|jtkrt|jƒS|jtkr*t|jƒn$|jtkr@t|jƒn|j  |j¡SdS)N)
rgryrOrhrzÚPropertyDomainErrorrfr|ÚActionDomainErrorÚ init_para)r r r r
rˆ³s


 
 zParameterInfo.init_paraÚParameterTableScope)rcCs4|jdkrdS|j |¡}|dk r0t|j|jƒdS)N)rkÚtestÚIllegalParameterValueErrorrfÚ
error_message)r rrtr r r
Ú ensure_guardÆs

 zParameterInfo.ensure_guard)rrrc
Cs€|jtkrt|jƒ|jtkr(t|jƒ}|jdkr6|Sy | ||¡St k
rz}zt
|jdt |ƒƒ|Wdd}~XYnXdS)Nzget_value error : ) rgr|r‡rfryrOrhriÚ
_get_valueÚ
BaseExceptionÚDeviceParameterErrorrX)r rrÚer r r
Ú get_valueÔs




 zParameterInfo.get_valuec Cs€t|jtƒrÈt|tƒr¶|jj}|jj}y| |¡}Wntk
rLd}YnXg}x>t|ƒD]2}|  ||¡|  d||¡| 
|j   |¡¡q\W|dk r¨|  ||¡n
| 
|¡|S|j j||dSn´t|jtƒr:t|ttfƒr(g}x"|D]}| 
|j j||d¡qðWt|tƒr"t|ƒS|Sn|j j||dSnBt|j tƒrP|j jSt|j tƒrl|j t|ƒS|j j||dSdS)Nr)r)r{rgÚParameterArrayDomainrÚsizeÚindex_parameterÚ get_localÚKeyErrorrFr!ÚappendrirÚ del_localÚ value_localr…rÚConstantExpressionÚconstantÚArrayExpressionrO) r rrr”Ú
index_paraZindex_value_oldrÚir*r r r
ìs@ 

 

 zParameterInfo._get_valuec
Csˆ|jtkrt|jƒ|j}|jtkr.t|jƒSt|t ƒrPt
|j|  ||¡ƒn4|jt kr|dkrpt
|jdƒntd|jƒn|jdkr|St|jtƒrò|jj}|jj}|jj}g}x4t|ƒD](}| ||¡| | ||||¡¡qÂW|St|jtƒrt|jj}g}x"|D]} | | | ||¡¡qWt|tƒr@|St|tƒrTt|ƒStd|jdtt|ƒƒƒn| ||j|¡SdS)Nz not a setterz(parameter %s setter not a PropertySetterzunknown type for parameter z : )rgr|r‡rfrjryrOrhr{rZPropertySetInterruptrrzr†rxrir“r}r”r•rFr!r˜Ú _cast_valuer…rrr#rXÚtype)
r rrÚsetterrrr”rr*r r r
r#sB






  
   zParameterInfo.cast_valuecCs*|jdkrgSt|jtƒr"|jjSgSdS)N)rir{ÚComplexExpressionÚ
dependency)r r r r
Úcast_value_dependencygs

 z#ParameterInfo.cast_value_dependency)rrcCsl|dkr dSt|tƒr|St|tƒr,|dkSt|tƒr>|dkSt|tƒrh| ¡}|dkpf|dkpf|dkSdS)NFrÚtrue)r{ÚboolrOr^rXÚlower)rr r r
Ú
_cast_boolqs



zParameterInfo._cast_bool)rrrrrc
sz|tkr| |¡S|jfdd}|j}|dkr:tj}d}|tkrvt|dƒt|ddƒf}t tj |||¡}nÞt
|t ƒr@|j }||dƒ} t