From 852bf3aa10613e80a8b9434b2d69f967b53a2d97 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Mon, 8 Jan 2018 19:23:28 -0800 Subject: mpm: n310: Return CHDR addresses as part of device_info Reviewed-by: Brent Stapleton --- mpm/python/usrp_mpm/periph_manager/base.py | 18 +++++++++++++++++- mpm/python/usrp_mpm/periph_manager/n310.py | 10 ++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'mpm/python/usrp_mpm/periph_manager') diff --git a/mpm/python/usrp_mpm/periph_manager/base.py b/mpm/python/usrp_mpm/periph_manager/base.py index 303f7e805..69a20c369 100644 --- a/mpm/python/usrp_mpm/periph_manager/base.py +++ b/mpm/python/usrp_mpm/periph_manager/base.py @@ -407,12 +407,28 @@ class PeriphManagerBase(object): @no_rpc def get_device_info(self): """ - return the mboard_info dict and add a claimed field + Return the mboard_info dict and add a claimed field. + + Will also call into get_device_info_dyn() for additional information. + Don't override this function. """ result = {"claimed": str(self.claimed)} result.update(self.mboard_info) + result.update(self.get_device_info_dyn()) return result + @no_rpc + def get_device_info_dyn(self): + """ + "Dynamic" device info getter. When get_device_info() is called, it + will also call into this function to see if there is 'dynamic' info + that needs to be returned. The reason to split up these functions is + because we don't want anyone to override get_device_info(), but we do + want periph managers to be able to inject custom device info data. + """ + self.log.trace("Called get_device_info_dyn(), but not implemented.") + return {} + @no_rpc def set_connection_type(self, conn_type): """ diff --git a/mpm/python/usrp_mpm/periph_manager/n310.py b/mpm/python/usrp_mpm/periph_manager/n310.py index 899710475..be18228a1 100644 --- a/mpm/python/usrp_mpm/periph_manager/n310.py +++ b/mpm/python/usrp_mpm/periph_manager/n310.py @@ -688,6 +688,16 @@ class n310(PeriphManagerBase): elif self.mboard_info['rpc_connection'] == 'local': return self._xport_mgrs['liberio'].commit_xport(sid, xport_info) + ########################################################################### + # Device info + ########################################################################### + def get_device_info_dyn(self): + """ + Append the device info with current IP addresses. + """ + return self._xport_mgrs['udp'].get_xport_info() \ + if self._device_initialized else {} + ########################################################################### # Clock/Time API ########################################################################### -- cgit v1.2.3