Skip to content
Snippets Groups Projects
Select Git revision
  • d53cb23b6adb4bdd7edd9fab25474d1e2f0dbf4e
  • master default protected
  • dither_on_off_disabled
  • yocto
  • pypcc2
  • pypcc3
  • 2020-12-07-the_only_working_copy
  • v2.1
  • v2.0
  • v1.0
  • v0.9
  • Working-RCU_ADC,ID
  • 2020-12-11-Holiday_Season_release
13 results

hwdev.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    hwdev.py 2.11 KiB
    import yaml;
    import importlib
    import sys, inspect
    import logging
    
    YAMLDIR='YAML/'
    class hwdev:
        def __init__(self,configfile):
            logging.info("Loading:",configfile)
            self.D=yaml.load(open(YAMLDIR+configfile))
            self.loadchildren(self.D)
        def loadchildren(self,D):
          self.children=[]
          self.childnames=[]
          if "dev_children" in D:
            for c in D['dev_children']:
              childname=(c['child_name']+"_" if c.get('child_name') else '');
              objnm=c['child_dev']
              yamlname=c['child_conf']
              logging.info("Add child:",childname,objnm,yamlname)
              i = importlib.import_module(objnm)
              for name, obj in inspect.getmembers(i,inspect.isclass):
                  if name==objnm:
    #                  yamlname=(c['conf_name'] if c.get('conf_name') else nm)
    #                  logging.debug("  Load child:",childname," conf=",yamlname+".yaml")
                      c['obj']=obj(yamlname+".yaml")
                      self.children.append([childname,c['obj']])
    
        def GetVarNames(self,parentname,callback):
            for name,child in self.children:
                child.GetVarNames(parentname+name,callback)
            return True;
    
        def GetMethodNames(self,parentname,callback):
            for name,child in self.children:
                child.GetMethodNames(parentname+name,callback)
            return True;
    
        def GetVarValue(self,name,value,I2Ccallback):
            return False
    
        def SetVarValue(self,name,value,I2Ccallback):
            return False
    
    #    def CallMethod(self,name,params,I2Ccallback):
    #        for name,child in self.children:
    #            child.CallMethod(name,params,I2Ccallback)
    #        return True;
    
    
        def CallMethod(self,name,params,I2Ccallback):
            childname=name.split('_')[0]
            for cname,child in self.children:
    #            logging.debug("hwdev callmethod",cname,childname)
                if cname=="": child.CallMethod(name,params,I2Ccallback)
                elif cname[:-1]==childname: return child.CallMethod(name[len(childname)+1:],params,I2Ccallback)
            return False
    
    def Find(L,name,value):
      for x in L:
        if x[name]==value:
            return x;
      return False;