multi-sdr capabilities!

This commit is contained in:
Jakob Ketterl
2019-05-09 22:44:29 +02:00
parent bd627d77b7
commit 56ef86aab6
5 changed files with 228 additions and 114 deletions

View File

@ -28,7 +28,7 @@ class PropertyManager(object):
return PropertyManager.sharedInstance
def collect(self, *props):
return PropertyManager(dict((name, self.getProperty(name)) for name in props))
return PropertyManager(dict((name, self.getProperty(name) if self.hasProperty(name) else Property()) for name in props))
def __init__(self, properties = None):
self.properties = {}
@ -52,10 +52,15 @@ class PropertyManager(object):
return self.getPropertyValue(name)
def __setitem__(self, name, value):
if not self.hasProperty(name):
self.add(name, Property())
self.getProperty(name).setValue(value)
def hasProperty(self, name):
return name in self.properties
def getProperty(self, name):
if not name in self.properties:
if not self.hasProperty(name):
self.add(name, Property())
return self.properties[name]
@ -66,6 +71,16 @@ class PropertyManager(object):
self.callbacks.append(callback)
return self
def unwire(self, callback):
self.callbacks.remove(callback)
return self
def defaults(self, other_pm):
for (key, p) in self.properties.items():
if p.getValue() is None:
p.setValue(other_pm[key])
return self
class RequirementMissingException(Exception):
pass