From c0a528394d44d2e4792e801908e005a1dd73d6b2 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Mon, 15 May 2017 12:18:37 -0700 Subject: mpm: Guaranteed stringification of mboard_info values --- mpm/python/usrp_mpm/periph_manager/base.py | 4 +++- mpm/python/usrp_mpm/periph_manager/n310.py | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'mpm') diff --git a/mpm/python/usrp_mpm/periph_manager/base.py b/mpm/python/usrp_mpm/periph_manager/base.py index ec0e4ed79..62e461db8 100644 --- a/mpm/python/usrp_mpm/periph_manager/base.py +++ b/mpm/python/usrp_mpm/periph_manager/base.py @@ -262,7 +262,9 @@ class PeriphManagerBase(object): self.log.trace("Found EEPROM metadata: `{}'".format(str(self._eeprom_head))) self.log.trace("Read {} bytes of EEPROM data.".format(len(self._eeprom_rawdata))) for key in ('pid', 'serial', 'rev'): - self.mboard_info[key] = self._eeprom_head.get(key, '') + # In C++, we can only handle dicts if all the values are of the + # same type. So we must convert them all to strings here: + self.mboard_info[key] = str(self._eeprom_head.get(key, '')) if self._eeprom_head.has_key('pid') and not self._eeprom_head['pid'] in self.pids: self.log.error("Found invalid PID in EEPROM: 0x{:04X}. Valid PIDs are: {}".format( self._eeprom_head['pid'], diff --git a/mpm/python/usrp_mpm/periph_manager/n310.py b/mpm/python/usrp_mpm/periph_manager/n310.py index 1d2e23b91..470d1c84d 100644 --- a/mpm/python/usrp_mpm/periph_manager/n310.py +++ b/mpm/python/usrp_mpm/periph_manager/n310.py @@ -125,11 +125,10 @@ class n310(PeriphManagerBase): self._clock_source = None # Gets set in set_clock_source() self.set_clock_source(N3XX_DEFAULT_CLOCK_SOURCE) - - self.mboard_info["serial"] = '123' # some format with open("/sys/class/rfnoc_crossbar/crossbar0/local_addr", "w") as xbar: xbar.write("0x2") # if header.get("dataversion", 0) == 1: + self.log.info("mboard info: {}".format(self.mboard_info)) def get_interfaces(self): -- cgit v1.2.3