Esempio n. 1
0
    def __init__(self, bus, addr, conf):
        I2CRegister.__init__(self, bus, addr, conf)
        if 'writemask' in self.config.keys():
            self.mask = self.config['writemask']
        else:
            self.mask = 0xff

        self.map_bit_names()
Esempio n. 2
0
 def __init__(self, bus, addr, conf):
     I2CRegister.__init__(self, bus, addr, conf)
     if 'writemask' in self.config.keys():
         self.mask = self.config['writemask']
     else:
         self.mask = 0xff
    
     self.map_bit_names()
Esempio n. 3
0
 def __init__(self, bus, addr, conf, signed = True):
     I2CRegister.__init__(self, bus, addr, conf)
     if signed:
         self.bits = int(conf['type'][3:]) # type is intX or intXY
     else:
         self.bits = int(conf['type'][4:]) # type is uintX or uintXY
     self.bytes = self.bits/8
     self.signed = signed
     self.config['value_names'] = {}
     if 'values' in conf.keys():
         for value_num,val_name in conf['values'].items():
             self.config['value_names'][val_name] = value_num
Esempio n. 4
0
    def process_config(self, config):
        self.name = config['name']

        # multi-byte read/write support
        try:
            self.multi = config['protocol']['multi']
        except KeyError:
            self.multi = False

        try:
            self.comm_base = config['command']['default']
        except KeyError:
            self.comm_base = 0

        self.registers = {}
        for reg_addr, reg_conf in config['registers'].items():
            name = reg_conf['name']
            try:
                reg_type = reg_conf['type']
            except KeyError:
                reg_type = None

            # Since reg_conf has a type, should we do this parsing in
            # the generic Register class instead of here?
            if reg_type in ['int8', 'int16', 'int32']:
                self.registers[name] = IntegerReg(self, reg_addr, reg_conf)
            elif reg_type in ['uint8', 'uint16', 'uint32']:
                self.registers[name] = IntegerReg(self,
                                                  reg_addr,
                                                  reg_conf,
                                                  signed=False)
            elif reg_type == 'bitfield':
                self.registers[name] = BitfieldReg(self, reg_addr, reg_conf)
            elif reg_type == 'string':
                self.registers[name] = StringReg(self, reg_addr, reg_conf)
            else:
                print "WARNING: No type specified for {:#04x}".format(reg_addr)
                self.registers[name] = I2CRegister(self.bus, reg_addr,
                                                   reg_conf)
Esempio n. 5
0
 def __init__(self, bus, addr, conf):
     I2CRegister.__init__(self, bus, addr, conf)
     self.length = self.config['length']
Esempio n. 6
0
 def __init__(self, bus, addr, conf):
     I2CRegister.__init__(self, bus, addr, conf)
     self.length = self.config['length']