Example #1
0
 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
Example #2
0
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
Example #3
0
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
Example #4
0
 def OnDFusion(self, idel):
     grp = ui.e_file(idel)
     dofusion(idel, grp.buildfullpath() + ui._("TousDens") + ".gabe")