def getmenu(self, typeel, idel, menu): """ Called by the user interface The list menu structure contains the current implemented functions. """ submenu = [(uictrl._("Enable"), self.enable_grp_sourcesid), (uictrl._("Disable"), self.disable_grp_sourcesid)] menu.insert(2, (uictrl._("All emitters"), submenu)) menu.insert(2, ()) return True
def GetPonctualReceiversData(folderwxid): """ Retourne un dictionnaire contenant les données des récepteurs ponctuels Structure { "Libellé du récepteur ponctuel" : { "sound_level" : [], "rt30" : [], "edt" : [] } } """ data = {} #folder devient l'objet dossier folder = ui.element(folderwxid) #dans un tableau on place les indices des fichiers de données des récepteurs ponctuels recplist = folder.getallelementbytype( ui.element_type.ELEMENT_TYPE_REPORT_GABE_RECP) #Pour chaque récepteur on demande a l'application les données traitées du fichier ( niveau sonore et cumuls ) for idrecp in recplist: #recp devient l'objet ayant comme indice idrecp (entier) recp = ui.element(idrecp) recpinfos = recp.getinfos() if recpinfos["name"] == "Sound level": recpdata = {} #on recupere l'element parent (le dossier de récepteur ponctuel) pere = ui.element(recp.getinfos()["parentid"]) #on demande le calcul des paramètres sonores if pere.getelementbylibelle('acoustic_param') == -1: ui.application.sendevent( recp, ui.idevent.IDEVENT_RECP_COMPUTE_ACOUSTIC_PARAMETERS, {"TR": "30"}) #application.sendevent(pere,idevent.IDEVENT_RELOAD_FOLDER) nomrecp = pere.getinfos()["label"] #on recupere les données calculées params = ui.element( pere.getelementbylibelle('Acoustic parameters')) #on stocke dans gridspl le tableau des niveaux de pression gridparam = ui.application.getdataarray(params) rotated = zip(*gridparam) labels = gridparam[0] tr30index = labels.index(ui._("TR-%g (s)") % (30)) edt_index = labels.index(ui._("EDT (s)")) #on ajoute les données recpdata["sound_level"] = ui.application.getdataarray(recp) recpdata["rt30"] = map(ReplaceNanByZero, rotated[tr30index]) recpdata["edt"] = map(ReplaceNanByZero, rotated[edt_index]) data[nomrecp] = recpdata return data
def GetPonctualReceiversData(folderwxid): """ Retourne un dictionnaire contenant les données des récepteurs ponctuels Structure { "Libellé du récepteur ponctuel" : { "sound_level" : [], "rt30" : [], "edt" : [] } } """ data={} #folder devient l'objet dossier folder=ui.element(folderwxid) #dans un tableau on place les indices des fichiers de données des récepteurs ponctuels recplist=folder.getallelementbytype(ui.element_type.ELEMENT_TYPE_REPORT_GABE_RECP) #Pour chaque récepteur on demande a l'application les données traitées du fichier ( niveau sonore et cumuls ) for idrecp in recplist: #recp devient l'objet ayant comme indice idrecp (entier) recp=ui.element(idrecp) recpinfos=recp.getinfos() if recpinfos["name"]=="soundpressure": recpdata={} #on recupere l'element parent (le dossier de récepteur ponctuel) pere=ui.element(recp.getinfos()["parentid"]) #on demande le calcul des paramètres sonores if pere.getelementbylibelle('acoustic_param')==-1: ui.application.sendevent(recp,ui.idevent.IDEVENT_RECP_COMPUTE_ACOUSTIC_PARAMETERS,{"TR":"30"}) #application.sendevent(pere,idevent.IDEVENT_RELOAD_FOLDER) nomrecp=pere.getinfos()["label"] #on recupere les données calculées params=ui.element(pere.getelementbylibelle('acoustic_param')) #on stocke dans gridspl le tableau des niveaux de pression gridparam=ui.application.getdataarray(params) rotated=zip(*gridparam) labels=gridparam[0] tr30index=labels.index(ui._("TR-%g (s)") % (30)) edt_index=labels.index(ui._("EDT (s)")) #on ajoute les données recpdata["sound_level"]=ui.application.getdataarray(recp) recpdata["rt30"]=map(ReplaceNanByZero,rotated[tr30index]) recpdata["edt"]=map(ReplaceNanByZero,rotated[edt_index]) data[nomrecp]=recpdata return data
def OnDFusion(self, idel): grp = ui.e_file(idel) dofusion(idel, grp.buildfullpath() + ui._("TousDens") + ".gabe")