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

201 lines
38 KiB
Plaintext
Raw Normal View History

2021-12-20 14:52:55 +08:00
B
2021-12-22 14:29:56 +08:00
ìÄÂaC¦ã@ddlZddlZddlZddlZddlmZddlmZddlmZ ddl
2021-12-20 14:52:55 +08:00
m Z ddl m Z ddl
mZmZmZmZmZmZddlTdd lmZmZdd
lmZmZmZdd lmZmZmZdd l m!Z!dd
l"m#Z#ddl$m%Z%m&Z&ddl'm(Z(m)Z)ddl*m+Z+m,Z,ddl-m.Z.m/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z5m6Z6ddl7m8Z8ddl9m:Z:m;Z;m<Z<ddl=m>Z>ddl?m@Z@ddlAmBZBddlCTddlDmEZEmFZFmGZGmHZHddlITddlJTddlKmLZLddlMmNZNmOZOmPZPddlQmRZRddlSmTZTddlUmVZVmWZWmXZXd d!lYmZZZd d"l[m\Z\d#Z]ed$ƒZ^Gd%d&„d&e_ƒZ`Gd'd(„d(ƒZaGd)d*„d*eNƒZbGd+d,„d,eeejcd-Zde^eaee^d.œd/d0„Zeed1e^fed1ee^fd2œd3d4„Zfege!egd5œd6d7„ZheiegeEePfed8œd9d:„ZjdS);éN)Údatetime)Úwraps)Úloads)ÚPath)Útime)ÚTupleÚDictÚTypeVarÚCallableÚoverloadÚType)Ú*)Ú
ControlAPIÚComplexResponse)Ú
DeviceManagerÚDeviceInternalCommandHandlerÚMasterDeviceError)ÚDeviceResponseInfoÚDeviceSerialNumberÚ
DeviceInfo)ÚCompletedDevice)ÚMenu)ÚExpProtocolInfoÚ ExpOption)ÚAbstractExpProtocolStateÚExpProtocolState)ÚExternalExportFunctionÚExternalParameter)Ú FileManagerÚ FileSegment)ÚFileSegmentContent)ÚUserDeviceAlias)ÚAbstractUserSettingÚRestrictUserSetting)Ú UserSetup)ÚRootInfoÚ
DirectoryInfoÚFileInfo)ÚLED)ÚDataMessageHandler)ÚRecordingMetaFile)ÚADDRESSÚ str_addressÚ address_strÚis_address_type)Ú datetime_str)Ú
2021-12-22 14:29:56 +08:00
JsonSerializeÚJSONÚ JSON_OBJECT)ÚPromise)Úprint_exception)Ú expr_formatÚ part_suffixÚ part_prefixé)Ú
2021-12-20 14:52:55 +08:00
FileHandle)ÚT_ServerThreadFÚTc@eZdZdZdZdZdZdZdZdZ dZ
d d
Z e d d d
de
dƒeedœddƒƒZe ddd
de
dƒeedœddƒƒZe dddeedœddƒZedƒe
dƒedœddƒƒZesÞe d d!de
dƒeedœd"d#„ƒƒZed$ƒe
d%ƒedœd&d'„ƒƒZed(ƒe
d)ƒedœd*d+„ƒƒZed,ƒe
d-ƒedœd.d/„ƒƒZe d0d1de
d-ƒeedœd2d3„ƒƒZe d4d5de
d-ƒeedœd6d7„ƒƒZed8ƒe
d9ƒedœd:d;„ƒƒZe d<d=de
d9ƒeedœd>d?„ƒƒZeeeed@œdAdB„Z edCƒe
dƒedDœdEdF„ƒƒZ!e dGdde
dƒeedœdHdI„ƒƒZ"e dJdde
dƒeedœdKdL„ƒƒZ#e dMdNde
dƒeedœdOdP„ƒƒZ$edQƒe
dƒedœdRdS„ƒƒZ%e dTdUdVde
dƒeedœdWdX„ƒƒZ&e dYdZde
d[ƒeedœd\d]„ƒƒZ'e d^d_de
d[ƒeedœd`da„ƒƒZ(edbƒe
dcƒedDœddde„ƒƒZ)edfƒe
dcƒedDœdgdh„ƒƒZ*e didjde
dcƒeedœdkdl„ƒƒZ+esledmƒedDœdndo„ƒZ,edpƒe
dqƒedDœdrds„ƒƒZ-e dtdude
dqƒeedœdvdw„ƒƒZ.dS)xÚControlServerOptionsz.BPSz0.0.0.0iF%z
52.194.17.114i[
iXcCtt ¡|jƒ|_d|_d|_d|_d|_d|_ d|_
d|_ d|_ |j
|_|j|_d|_|j|_|j|_d|_d|_d|_|j|_|j|_d|_g|_d|_d|_ d|_!d|_"d|_#|j$|_%dS)NFr8éédéé)&ÚstrrÚhomeÚDEFAULT_STORAGE_ROOTÚ storage_rootÚ export_rootÚshutdown_if_reset_failÚexpect_available_channelÚuser_session_expire_daysÚflag_disable_routine_trashÚtrash_routine_timeÚtrash_expire_timeÚtrash_remove_expire_timeÚDEFAULT_WEBSOCKET_ADDRESSÚwebsocket_addressÚDEFAULT_WEBSOCKET_PORTÚwebsocket_portÚflag_disable_remote_serverÚDEFAULT_MQTT_ADDRESSÚ mqtt_addressÚDEFAULT_MQTT_PORTÚ mqtt_portÚflag_disable_data_serverÚflag_disable_exp_managerÚflag_disable_cache_serverÚDEFAULT_CACHE_SIZEÚcache_server_cache_sizeÚDEFAULT_CACHE_TIMEÚcache_server_cache_timeÚflag_disable_external_storageÚexternal_path_mapÚflag_disable_led_controlÚflag_disable_led_refreshÚ led_countÚflag_disable_sha_checkÚflag_disable_ups_detectÚDEFAULT_UPS_WAIT_TIMEÚflag_ups_wait_time)Úself©rhú=/home/pi/wisetopdataserver/python/biopro/server/controller.pyÚ__init__>s8zControlServerOptions.__init__z-Cz--rootÚPATH)ÚvaluezFile Manager Options)ÚoptrlcCs
||_dS)N)rE)rgrmrlrhrhriÚ
_storage_rootsz"ControlServerOptions._storage_rootz-Ez--exportcCs
||_dS)N)rF)rgrmrlrhrhriÚ _export_root£sz!ControlServerOptions._export_rootz--user-session-expireZDAYScCst|ƒ|_dS)N)ÚintrI)rgrmrlrhrhriÚ_user_session_expire©sz)ControlServerOptions._user_session_expirez--disable-remote-serverz
Remote System)rmcCs
d|_dS)NT)rR)rgrmrhrhriÚ_disable_remote_server°sz+ControlServerOptions._disable_remote_serverz--remote-server-addresszIP:PORTcCs,t|d|jd\}}t|ƒ}||_||_dS):)Úmissing)r6rUrprTrV)rgrmrlÚurlÚportrhrhriÚ_remote_server_address·sz+ControlServerOptions._remote_server_addressz--disable-data-serverzData Server OptionscCs
d|_dS)NT)rW)rgrmrhrhriÚ_disable_data_serverÃsz)ControlServerOptions._disable_data_serverz--disable-exp-managerzExperimental Protocol OptionscCs
d|_dS)NT)rX)rgrmrhrhriÚ_disable_exp_proÉsz%ControlServerOptions._disable_exp_proz--disable-cache-serverz
Cache ManagercCs
d|_dS)NT)rY)rgrmrhrhriÚ_disable_cache_serverÏsz*ControlServerOptions._disable_cache_serverz --cache-sizeÚSIZEcCst|ƒ|_dS)N)rpr[)rgrmrlrhrhriÚ _cache_sizeÕsz ControlServerOptions._cache_sizez --cache-timeZSECcCst|ƒ|_dS)N)Úfloatr])rgrmrlrhrhriÚ _cache_timeÛsz ControlServerOptions._cache_timez--shutdown-if-reset-failzDevice Manager OptionscCs
d|_dS)NT)rG)rgrmrhrhriÚ_shutdown_if_reset_failász,ControlServerOptions._shutdown_if_reset_failz--expected-channelzCH,...cCs|ddlm}|dkr$tt|jƒƒ}nN|dkr2g}n@|dkr@d}n2| d¡r^| |dd¡}nttt|  d¡ƒƒ}||_
dS) Nr)ÚSelectorZALLZNULLZINITú@r8ú,) Zbiopro.impl.selectorr€ÚlistÚranger{Ú
startswithÚ_expected_channel_fileÚmaprpÚsplitrH)rgrmrlr€ÚcrhrhriÚ_expected_channelçs

z&ControlServerOptions._expected_channel)ÚfilepathÚreturnc CsHt|ƒ}| ¡sdS| ¡}| ¡ ¡}WdQRXttt| d¡ƒƒS)Nr) rÚexistsÚopenÚreadlineÚstriprƒr‡rprˆ)rgrÚlinerhrhrir†s 
z+ControlServerOptions._expected_channel_filez--disable-routine-trash)ÚflagcCs
d|_dS)NT)rJ)rgr”rhrhriÚ_disable_routine_trashsz+ControlServerOptions._disable_routine_trashz--expire-trashcCst|ƒ|_dS)N)rprL)rgrmrlrhrhriÚ
_expire_trashsz"ControlServerOptions._expire_trashz--expire-removecCst|ƒ|_dS)N)rprM)rgrmrlrhrhriÚ_expire_removesz#ControlServerOptions._expire_removez--routine-trashZHOURScCst|ƒ|_dS)N)rprK)rgrmrlrhrhriÚ_routine_trash!sz#ControlServerOptions._routine_trashz--disable-external-storagecCs
2021-12-22 14:29:56 +08:00
d|_dS)NT)r^)rgrmrhrhriÚ_disable_external_storage'sz.ControlServerOptions._disable_external_storagez-Mz--external-mapz NAME:PATHcCs"t|dƒ\}}|j ||f¡dS)Nrs)r6r_Úappend)rgrmrlrÚtrhrhriÚ_external_path_map-sz'ControlServerOptions._external_path_mapz--websocket-addressz
2021-12-20 14:52:55 +08:00
URL[:PORT]zWebsocket ServercCs(t|d|jd\}}||_t|ƒ|_dS)Nrs)rt)r6rPrOrprQ)rgrmrlÚaddrrvrhrhriÚ_server_websocket_address4sz.ControlServerOptions._server_websocket_addressz--websocket-portZPORTcCst|ƒ|_dS)N)rprQ)rgrmrlrhrhriÚ_server_websocket_port<sz+ControlServerOptions._server_websocket_portz--disable-led-controlz LED controlcCs
d|_dS)NT)r`)rgr”rhrhriÚ_disable_led_controlBsz)ControlServerOptions._disable_led_controlz--disable-led-refreshcCs
d|_dS)NT)ra)rgr”rhrhriÚ_disable_led_refreshHsz)ControlServerOptions._disable_led_refreshz --led-countZCOUNTcCst|ƒ|_dS)N)rprb)rgrmrlrhrhriÚ
2021-12-22 14:29:56 +08:00
_led_countNszControlServerOptions._led_countz--disable-sha-checkcCs
d|_dS)NT)rc)rgr”rhrhriÚ_disable_sha_checkUsz'ControlServerOptions._disable_sha_checkz--disable-ups-detectz UPS controlcCs
d|_dS)NT)rd)rgr”rhrhriÚ_disable_ups_detectZsz(ControlServerOptions._disable_ups_detectz--ups-wait-timeZMINcCst|ƒd|_dS)Né<)rprf)rgrmrlrhrhriÚ_ups_wait_time`sz#ControlServerOptions._ups_wait_time)/Ú__name__Ú
__module__Ú __qualname__rDrNrPrSrUrZr\rerjÚ cli_optionsÚcli_help_sectionrBrnrorqÚ cli_flagsrrÚ_RUNTIME_COMPILErwrxryrzr|r~rÚOptionalÚListrpr†r•rr—r™r rhrhrhrir<0_  
2021-12-20 14:52:55 +08:00





 


 



r<c@eZdZeedœddZeedœddƒZdedœdd „Z e
dee e ee d œd d
2021-12-22 14:29:56 +08:00
ƒZ
e
ee e ege fe dœdd
ƒZ
dee e dœdd
Z
ee e dœddZedœddZd
S)Ú UserSession)Ú user_sessioncCs6|dkrtt ¡ƒ}ntt |¡ƒ}||_tƒ|_dS)N)rBÚuuidZuuid1ZUUIDÚ_UserSession__uuidrÚ_UserSession__time)rgrhrhrirjqs
zUserSession.__init__)cCs|jS)N))rgrhrhrizszUserSession.user_sessionTcCs|j}|rtƒ|_|S)N)r´r)rgÚupdateÚretrhrhrir~szUserSession.timeN)ÚkeyÚ
type_checkrŒcCsdS)Nrh)rgr¸rhrhriÚget_data„szUserSession.get_data)r¸ÚinitrŒcCsdS)Nrh)rgr¸rhrhriˆs)r¸c Cs`y$t||ƒ}|dk r"t||ƒs"tWn6ttfk
rZ|dkrDdS|ƒ}t|||ƒYnX|S)N)ÚgetattrÚ
isinstanceÚ TypeErrorÚAttributeErrorÚsetattr)rgr¸rhrhriŒs
2021-12-20 14:52:55 +08:00

2021-12-22 14:29:56 +08:00
)rlcCst|||ƒ|S)N)r¿)rgrlrhrhriÚset_datažs zUserSession.set_data)cCs(yt||ƒWntk
r"YnXdS)N)Údelattrr¾)rgrhrhriÚdel_data¢szUserSession.del_data)T)N)NN)rBrjÚpropertyr±r}rr r r;r
rhrhrhrigs
 "c@s8eZdZd
edœddZedœddZedœdd „ZdS) Ú HardwareInfoN)ÚnamecCsHt|_||_|r|nt|_t|_t|_t |_
2021-12-20 14:52:55 +08:00
t |_ ||_
||_t|_dS)N)Ú WIFI_NAMErÅÚspecÚVERSIONÚversionÚ REV_VERSIONÚbuildÚVENDORÚvendorÚ COPYRIGHTÚ copyrightÚWEB_SITEÚweb_siteÚ device_IDÚ
device_macÚ wifi_name)rgrhrhrirj¼szHardwareInfo.__init__)c
2021-12-22 14:29:56 +08:00
Cs*|j|j|j|j|j|j|j|j|jdœ S)N) rÅ) rÅ)rgrhrhriÚas_jsonñszHardwareInfo.as_jsoncCs|j|j|j|j|jdœS)N)Zsoftware_versionÚ mac_addressrÔ))rgrhrhriÚ as_json_1þs
zHardwareInfo.as_json_1)NNNN)rBrjr2r×rhrhrhri©s 0
c@sFeZdZdZdZeedœddƒZeddœdd „Z ee
j e dœd
d ƒƒZ
ee
j edœd d
ƒƒZee
2021-12-20 14:52:55 +08:00
j edœddƒƒZedœddZdùeedœddZdúeeeedœddZddZedœddZeeedœddZedœd d!„Zeedœd"d#„Zee dœd$d%„Z!dd&œe"ee#e$e%fee dœd'd(„Z&e"ee#e%fe'dœd)d*„Z(dûee)ed+œd,d-„Z*eee+d.œd/d0„Z,ee'dœd1d2„Z-e)ee'd+œd3d4„Z.e)eed+œd5d6„Z/eeed7œd8d9„Z0e)eed:œd;d<„Z1ee)dœd=d>„Z2düe)eeee)d?œd@dA„Z3dýe)eeee)d?œdBdC„Z4e)dd+œdDdE„Z5ddœdFdG„Z6e)e)edHœdIdJ„Z7e)e)edKœdLdM„Z8e)e)edNœdOdP„Z9e)e)ed?œdQdR„Z:e)ee;d+œdSdT„Z<e)e)d+œdUdV„Z=dþe)eeee>dWœdXdY„Z?e)ee>dZœd[d\„Z@e)eeed]œd^d_„ZAe)eeed`œdadb„ZBeeee dcœddde„ZCeee dcœdfdg„ZDee)ee dhœdidj„ZEeee)edhœdkdl„ZFedœdmdn„ZGeHdœdodp„ZIeeJdqœdrds„ZKee)e)eJdtœdudv„ZLeeeMdwœdxdy„ZNeeJdqœdzd{„ZOeedqœd|d}„ZPeeMdqœd~dZQeeRdqœd€dZSeeTeeeUfdqœddƒ„ZVeWeXd„fdœd…d†„ZYeeWeZd„fd‡œdˆd‰„Z[eeeedŠœddŒ„Z\e]eeTee>fdœdŽdƒZ^eee"dee_fdœdd’„Z`e)eead“œd”d•„Zbeeecdœdd—„Zde)eecd˜œd™dš„Zee)d›œdœdZfeedœdždŸ„Zgddœeeeeehd œd¡d¢„Ziddœeeejehd£œd¤d¥„Zkdÿeeddœd¦d§„Zlddœeeejehd£œd¨d©„Zmeeeeedªœd«d¬„Zneeedœd­d®„Zoeeeeed¯œd°d±„ZpdeeeeeRd²œd³d´„Zqdeeeeedµœd¶d·„Zrdeeeed²œd¸d¹„Zsdeeeeedµœdºd»„Ztdeeeedœd¼d½„Zudeeeeevd²œd¾d¿„Zwdeeeeevd²œdÀdÁ„Zxdeeeed²œdÂdÄZydeeeezdœdÄdÅ„Z{d eeeeezd²œdÆdÇ„Z|d
2021-12-22 14:29:56 +08:00
eeeeeezdµœdÈdÉ„Z}ee~dœdÊdË„Zddœeeee)dÌœdÍd΄Z€e)eedÏœdÐdÑ„Zd e)eeeedÒœdÓdÔ„Zƒee„dœdÕdÖ„Z…e)ee†dÏœd×dØ„Z‡e)eedÙœdÚdÛ„Zˆd eee)dÜœdÝdÞ„Z‰eeŠdßœdàdá„Zee"deeŒeefdâœdãdä„ZeŠeedåœdædç„ZŽedœdèdé„Zedêœdëdì„Ze
j dídZe
j e’e’dïœdðdñ„ƒZ“ee”d„e•fe–e•dòœdódô„Z—ddœdõdö„Z˜eeeedœd÷dø„Z™dS(
ÚControlServerAPIz%t-%drh)cCsdS)NFrh)rgrhrhriÚ is_closedszControlServerAPI.is_closedN)Ú exceptionrŒcCsdS)Nrh)rgrhrhriÚ interruptszControlServerAPI.interruptcCsdS)Nrh)rgrhrhriÚoptionsszControlServerAPI.optionscCsdS)Nrh)rgrhrhriÚ file_managerszControlServerAPI.file_managercCsdS)Nrh)rgrhrhriÚdevice_manager szControlServerAPI.device_managercCs
2021-12-20 14:52:55 +08:00
tƒdS)N)ÚNotImplementedError)rgrhrhriÚnew_user_session%sz!ControlServerAPI.new_user_session)cCs
2021-12-22 14:29:56 +08:00
tƒdS)N))rgrhrhriÚdel_user_session,sz!ControlServerAPI.del_user_sessionF)cCs
tƒdS)N))rgÚ new_sessionÚ allow_emptyrhrhriÚget_user_session3s z!ControlServerAPI.get_user_sessioncCs
2021-12-20 14:52:55 +08:00
tƒdS)N))rgrhrhriÚexpire_user_session@sz$ControlServerAPI.expire_user_sessioncCs
2021-12-22 14:29:56 +08:00
tƒdS)N))rgrhrhriÚ
hardware_infoGszControlServerAPI.hardware_info)ÚcontentrŒcCstƒS)N)r/)rgrhrhriÚhardware_datetimeJsz"ControlServerAPI.hardware_datetimecCs|j ¡dS)NT)Úscan)rgrhrhriÚ
hardware_scanMs
zControlServerAPI.hardware_scancCs
|j ¡S)N)Zget_menu)rgrhrhriÚ
hardware_menuQszControlServerAPI.hardware_menucCs
|j ¡S)N)Úfound)rgrhrhriÚhardware_deviceTsz ControlServerAPI.hardware_device)cCsft|tƒr|}nt|ƒ}t|tƒr.| ¡dk}|rVy |j |¡Stk
rRdSXn |j |¡SdS)TRUE) r¼rÚto_device_inforBÚupperrÞZ scan_devicerZ found_device)rgÚresponserhrhriÚhardware_device_foundWs
2021-12-20 14:52:55 +08:00

2021-12-22 14:29:56 +08:00
  z&ControlServerAPI.hardware_device_foundcCs$t|tƒr|}nt|ƒ}|j |¡S)N)rÚconnect)rgrhrhriÚhardware_device_connectis
z(ControlServerAPI.hardware_device_connect)ÚdevicerŒcCs*|dkr|j |¡dS|j ||¡SdS)NT)Zdisconnect_allZ
2021-12-20 14:52:55 +08:00
disconnect)rgÚforcerhrhriÚhardware_device_disconnectqs z+ControlServerAPI.hardware_device_disconnect)ÚcommandrÜcKsdS)Nrh)rgrhrhriÚ
hardware_sendxszControlServerAPI.hardware_sendcCs
2021-12-22 14:29:56 +08:00
|j ¡S)N)Ú list_device)rgrhrhriÚget_device_info_all{sz$ControlServerAPI.get_device_info_allcCs|j |¡ ¡S)N)Ú
2021-12-20 14:52:55 +08:00
get_devicerÕ)rgrhrhriÚget_device_info~sz ControlServerAPI.get_device_infocCs |j |¡S)N)Zlist_device_instruction)rgrhrhriÚdevice_instruction_allsz'ControlServerAPI.device_instruction_all)Ú instructionrçcCs(x"|j ¡D]}|j |j|¡q WdS)NT)Údevice_instructionÚ device_id)rgrÿrhrhriÚdevice_all_instruction„sz'ControlServerAPI.device_all_instruction)rÿcCs|j ||¡dS)NT)r)rgrÿrhrhrirsz#ControlServerAPI.device_instructioncs0ˆj ¡}t|ƒdkr,ttfdd|ƒƒ}|S)Nrcsˆj |¡jS)N)Zbattery)Úx)rgrhriÚ<lambda>óz1ControlServerAPI.device_battery.<locals>.<lambda>)Úlenrƒr‡)rgÚ device_listZ battery_listrh)rgriÚdevice_batterys
 zControlServerAPI.device_battery)cCs.|dk r |j |¡ t |¡¡|j |¡jS)N)Zupdate_parent_infor0Úto_jsonÚparent)rgrhrhriÚ
device_parent”szControlServerAPI.device_parentcCs,|dk r|j |¡ t|ƒ¡|j |¡jS)N)Zupdate_recording_file_name_inforBZrecording_file_name)rgrhrhriÚdevice_recording_file_namešsz+ControlServerAPI.device_recording_file_namecCsdS)Nrh)rgrhrhriÚdevice_sd_card_status sz&ControlServerAPI.device_sd_card_statuscCs&|j ¡}x|D]}| d¡qWdS)NZTDC4VC)Zupdate_calibration_info)rgrrrhrhriÚdevice_update_calibration£s
2021-12-22 14:29:56 +08:00

z*ControlServerAPI.device_update_calibration)Úradio_frequencyrŒcCs|j |¡}| |¡}|S)N)Zupdate_radio_frequency)rgrÚresrhrhriÚdevice_update_radio_frequency¨s 
z.ControlServerAPI.device_update_radio_frequency)Úled_brightnessrŒcCs|j |¡}| |¡}|S)N)Zupdate_led_brightness)rgrrrrhrhriÚdevice_update_led_brightness­s 
z-ControlServerAPI.device_update_led_brightness)Úaccelerator_sensitivityrŒcCs|j |¡}| |¡}|S)N)Zupdate_accelerator_sensitivity)rgrrrrhrhriÚ%device_update_accelerator_sensitivity²s 
z6ControlServerAPI.device_update_accelerator_sensitivitycCs&|j |¡}| |¡}t d|¡dS)NZset_central_ref)Zcentral_rf_setÚconsoleÚlog)rgrrrhrhriÚdevice_set_central_rf·s 
z&ControlServerAPI.device_set_central_rfcCs$|j |¡}| ¡}t d|¡dS)NZget_central_ref)Zcentral_version_getrr)rgrrrhrhriÚdevice_get_central_version¼s z+ControlServerAPI.device_get_central_versioncCs|j |¡}|jjS)N)Ú parameterZlast_modified_timestamp)rgrrhrhriÚ&device_parameter_last_update_timestampÁs z7ControlServerAPI.device_parameter_last_update_timestamp)rcCs|j |||¡S)N)Zhandle_device_parameter_command)rgrrhrhriÚdevice_parameterÅsz!ControlServerAPI.device_parameter)rcCs|j ||¡S)N)Zhandle_device_parameter_value)rgrrhrhriÚdevice_parameter_valueÈsz'ControlServerAPI.device_parameter_value)ÚunsetrŒcCs|j |¡}|dkr"ttt|ƒƒ|r2|j |¡S|j |¡}|jrT|j d|j
S|j }t |j
|ƒ}d|krr|S|d|SdS)/)Ú RuntimeErrorÚDEVICE_NOT_FOUNDrBrÚuseÚ is_meta_fileÚ parent_pathÚ file_nameÚ file_pathÚformat_filenameÚTEMP_FILENAME_EXPR)rgrrÚinfoÚ directoryrçrhrhriÚdevice_save_pathËs    z!ControlServerAPI.device_save_path)Údry_runrŒcCs„|j |¡}t dd|¡}t dd|¡}t dd|¡}t||ƒ}|rH|S|j |¡}|jrb|j}n|j }d|krt|S|d|SdS)Nz^ +Úz +$z_r )
ÚreÚsubr(r#r$r%r')rgr-rr*r+rhrhriÚdevice_save_path_setãs 
 z%ControlServerAPI.device_save_path_set)ÚuserrŒcCsgS)Nrh)rgr3rhrhriÚdevice_history_getüsz#ControlServerAPI.device_history_getcCsgdS)Nrh)rgr3rhrhriÚdevice_history_found_allÿsz)ControlServerAPI.device_history_found_all)r3cCsdS)Nrh)rgr3rhrhriÚdevice_history_foundsz%ControlServerAPI.device_history_foundcCsdS)NTrh)rgr3rhrhriÚdevice_history_deletesz&ControlServerAPI.device_history_deletecCs
|j ¡S)N)Z
2021-12-20 14:52:55 +08:00
clean_storage)rgrhrhriÚfile_clean_storagesz#ControlServerAPI.file_clean_storagecCs
2021-12-22 14:29:56 +08:00
|j ¡S)N)Úindex)rgrhrhriÚ
2021-12-20 14:52:55 +08:00
file_index szControlServerAPI.file_index)ÚpathrŒcCs |j |¡S)N))rgr;rhrhriÚ file_listszControlServerAPI.file_list)r;ÚstartÚendrŒcCs|j |||¡S)N)Z
2021-12-22 14:29:56 +08:00
list_range)rgr;r=r>rhrhriÚfile_list_rangesz ControlServerAPI.file_list_range)r;cCs|j ||¡S)N)Úrename)rgr;rhrhriÚ file_renameszControlServerAPI.file_renamecCs |j |¡S)N)Úmkdir)rgr;rhrhriÚ
file_mkdirszControlServerAPI.file_mkdircCs |j |¡S)N)Údelete)rgr;rhrhriÚ file_deleteszControlServerAPI.file_deletecCs |j |¡S)N)r*)rgr;rhrhriÚ file_infoszControlServerAPI.file_infocCs |j |¡S)N)Úmeta)rgr;rhrhriÚfile_meta_info szControlServerAPI.file_meta_infocCst |j |¡¡S)N)r0r Z export_info)rgr;rhrhriÚfile_export_info#sz!ControlServerAPI.file_export_info.cCs
|j ¡S)N)Zget_export_functions)rgrhrhriÚfile_export_functions&sz&ControlServerAPI.file_export_functions)ÚftyperŒcCs |j |¡S)N)Zget_export_parameters)rgrKrhrhriÚfile_export_parameters)sz'ControlServerAPI.file_export_parameters)rKr;cKsDdSt|tƒrntd|jjƒ|jj|d|fddi|Ž}t|ƒS)Nz ***********zunknown parameter type : Z
async_callT) r¼rBÚ_file_process_optionsÚdictr!Ú __class__r§Z export_file)rgrKr;rhrhriÚ file_export,s
zControlServerAPI.file_export)ÚargvrŒc Csi}xˆt d|¡D]x}t|ddd\}}| dd¡}t|tƒry t|ƒ}Wn6tk
r€y t|ƒ}Wntk
rzYnXYnX|||<qW|S)Nz[&;
2021-12-20 14:52:55 +08:00
=T)rtú-r/) r0rˆr6Úreplacer¼rBr}Ú
2021-12-22 14:29:56 +08:00
ValueErrorrp)rQÚargÚvrhrhrirM9s 
    z&ControlServerAPI._file_process_options)Úmethodr;cCs |dkr|j |¡S|dkr,|jj|ddS|dkrT|j |¡}|dk rP| ¡dS|dkr||j |¡}|dk rx| ¡dS|dkrt ¡dStd|ƒdS) Nr*ÚnewT)ZcreateÚreloadÚinvalidÚ invalid_allzunknown method : )Ú segment_infor[r\rr]r!)rgrYr;r*rhrhriÚ file_segmentOs$   zControlServerAPI.file_segment)Úsegmentr;cCs*|j |¡}|dkr td|ƒ| |¡S)Nzfile segment not create : )r^r!Z get_segment)rgr`r;r*rhrhriÚfile_segment_getqs  z!ControlServerAPI.file_segment_getcCsdS)Nrh)rgrhrhriÚfile_handle_openysz!ControlServerAPI.file_handle_open)ÚhandlerŒcCsdS)Nrh)rgrcrhrhriÚfile_handle_info|sz!ControlServerAPI.file_handle_info)rccCsdS)Nrh)rgrcrhrhriÚfile_handle_closesz"ControlServerAPI.file_handle_closecCs |jj ¡S)N)Ú user_settingZ user_list)rgrhrhriÚuser_allszControlServerAPI.user_all)r3cCsp| |¡}|dk r"t|ƒdkr"d}t|ƒdkr:|dkr:dSt|ƒdkrJ|}|jj |¡}||krd|St|ƒSdS)Nrr.)Ú_session_user_namerrfÚ user_infor#)rgr3Ú user_namer*rhrhriris
2021-12-20 14:52:55 +08:00
 zControlServerAPI.user_info)r3cCsH|jj ||¡stt|ƒ|j|ddd}||_|jj |¡}t||ƒS)NT)) rÝrfZ
user_validater!ZUSER_INCORRECT_PASSWORDrärjriÚresponse_with_user_session)rgr3Úsessionr*rhrhriÚ
user_logins 
zControlServerAPI.user_logincCs | |¡}|dk r| d¡dS)Nrj))rgrlrhrhriÚ user_logout§s
zControlServerAPI.user_logoutcCs>|jj ||¡|j|ddd}||_|jj |¡}t||ƒS)NT))rfÚuser_addrärjrirk)rgr3rlr*rhrhriro®s
zControlServerAPI.user_add)r3cCsd|j|ddd}|dkrdS| d¡}|dkr2dS||kr>dS|jj ||¡r\| d¡dSdSdS)NF)rjT)rfÚuser_delrÂ)rgr3rlrjrhrhrirp¹s

zControlServerAPI.user_delcCs8| |¡}|dkrdSy|jj |¡dSdSdS)NFT)rhrfÚ user_sync)rgrjrhrhrirqÑs
2021-12-22 14:29:56 +08:00
zControlServerAPI.user_sync)cKs(| |¡}|dkrgS|jjj|f|ŽS)N)rhrfZconfiguration_filter)rgrjrhrhriÚuser_configuration_listÞs
z(ControlServerAPI.user_configuration_list)cCs&| |¡}|dkrdS|jj ||¡S)N)rhrfZconfiguration_get)rgrjrhrhriÚuser_configuration_getæs
2021-12-20 14:52:55 +08:00
z'ControlServerAPI.user_configuration_get)cCs,| |¡}|dkrdS|jj |||¡dS)NFT)rhrfZconfiguration_add)rgrjrhrhriÚuser_configuration_addîs

z'ControlServerAPI.user_configuration_addcCs&| |¡}|dkrdS|jj ||¡S)NF)rhrfZconfiguration_del)rgrjrhrhriÚuser_configuration_del÷s
z'ControlServerAPI.user_configuration_delcCs8| |¡}|dkrdSt|dƒ\}}|jj ||||¡S)NFrs)rhr7rfZconfiguration_clone)rgrjZ from_userÚnew_namerhrhriÚuser_configuration_cloneÿs

z)ControlServerAPI.user_configuration_clonecCs$| |¡}|dkrgS|jj |¡S)N)rhrfZ
setup_list)rgrjrhrhriÚuser_setup_list s
z ControlServerAPI.user_setup_listcCs&| |¡}|dkrdS|jj ||¡S)N)rhrfZ
setup_info)rgrjrhrhriÚuser_setup_infos
z ControlServerAPI.user_setup_infocCs&| |¡}|dkrdS|jj ||¡S)N)rhrfZ setup_new)rgrjrhrhriÚuser_setup_news
zControlServerAPI.user_setup_newcCs&| |¡}|dkrdS|jj ||¡S)NF)rhrfZ setup_del)rgrjrhrhriÚuser_setup_del!s
zControlServerAPI.user_setup_delcCs$| |¡}|dkrgS|jj |¡S)N)rhrfZ
alias_list)rgrjrhrhriÚuser_alias_list)s
z ControlServerAPI.user_alias_listcCsX| |¡}|dkrdS|jj}y t|ƒ}Wntk
rF| ||¡SX| ||¡SdS)N)rhrfr,rUÚ
alias_info)rgrjrfÚaddressrhrhriÚuser_alias_info1s
 z ControlServerAPI.user_alias_infoc C| |¡}|dkrdS|jj}d}y t|ƒ}Wn tk
2021-12-22 14:29:56 +08:00
rN| ||¡}YnX| ||¡}|dkr˜|dkrpdS| ||¡}| |¡}|dk rº|j|_n"|j }t
2021-12-20 14:52:55 +08:00
|ƒdkrº|  ||¡dS||_ |S)Nr)
rhrfr,rUr}Z alias_newròÚ device_nameÚdevice_addressrZ alias_delZ device_alias) rgrjrfr~ÚaliasrõrhrhriÚuser_alias_edit@s.
2021-12-22 14:29:56 +08:00
   

2021-12-20 14:52:55 +08:00
  z ControlServerAPI.user_alias_editcCs
tƒdS)N))rgrhrhriÚ exp_pro_listiszControlServerAPI.exp_pro_list)cCs
tƒdS)N))rgrhrhriÚexp_pro_createlszControlServerAPI.exp_pro_create)ÚprotocolrŒcCs
2021-12-22 14:29:56 +08:00
tƒdS)N))rgr†rhrhriÚexp_pro_optionsosz ControlServerAPI.exp_pro_options)r†ÚoptionrçcCs
2021-12-20 14:52:55 +08:00
tƒdS)N))rgr†rˆrhrhriÚexp_pro_optionrszControlServerAPI.exp_pro_optioncCs
2021-12-22 14:29:56 +08:00
tƒdS)N))rgrhrhriÚexp_pro_status_allusz#ControlServerAPI.exp_pro_status_allcCs
tƒdS)N))rgr†rhrhriÚexp_pro_statusxszControlServerAPI.exp_pro_status)r†cCs