Exemple #1
0
    def __init__(self, name=""):
        """Constructor"""
        self._compiler = Compiler(self)
        self._devices = {}
        self._scripts = {}

        # Grouped by kind
        self._triggers = {}
        self._actions = {}
Exemple #2
0
 def __init__(self, name = ""):
     """Constructor"""
     self._compiler = Compiler(self)
     self._devices = {}
     self._scripts = {}
 
     # Grouped by kind
     self._triggers = {}
     self._actions = {}
Exemple #3
0
class Connector:
    """A `connector` connects through `script`s `connectable`'s triggers and actions"""
        
    def __init__(self, name = ""):
        """Constructor"""
        self._compiler = Compiler(self)
        self._devices = {}
        self._scripts = {}
    
        # Grouped by kind
        self._triggers = {}
        self._actions = {}
        
    def add_device (self, device):
        """Adds a device"""
        if (device.kind not in self._devices):
            self._devices[device.kind] = {}

        self._devices[device.kind][device.ID] = device
        
    def device_with_ID(self, ID):
        """Check amongst all the device, one with ID=ID"""
        for (device_family_name, device_family) in self._devices.iteritems():
            if (ID in device_family):
                return device_family[ID]
            else:
                return False

    def add_script (self, script):
        """Adds a script"""

        self._compiler.link_connectables(script)
        self._scripts[script.ID] = script
        self.generate_conditions()
    
    # DEPRECATED
    def generate_conditions_by_family(self):
        
        conditions_tree = {}
        
        for (script_name, script) in self._scripts.iteritems():
            for trigger_name, trigger in script.triggers.iteritems():
                if (trigger.device.kind not in conditions_tree):
                    conditions_tree[trigger.device.kind] = {}
                if (trigger.device.ID not in conditions_tree[trigger.device.kind]):
                    conditions_tree[trigger.device.kind][trigger.device.ID] = {}
                if (trigger_name not in conditions_tree[trigger.device.kind][trigger.device.ID]):
                    conditions_tree[trigger.device.kind][trigger.device.ID][trigger_name] = {}
            
                conditions_tree[trigger.device.kind][trigger.device.ID][trigger_name][script_name] = trigger.fields
        self.conditions_tree = conditions_tree
        
    def generate_conditions(self):
        """Generates a tree with all the trigger conditions"""
        conditions_tree = {}
        
        for (script_name, script) in self._scripts.iteritems():
            conditions_tree[script_name] = script.conditions_tree

        self.conditions_tree = conditions_tree

        
    def run():
        print "Connector running"
        
        for script in self._scripts: 
            pass            
Exemple #4
0
class Connector:
    """A `connector` connects through `script`s `connectable`'s triggers and actions"""
    def __init__(self, name=""):
        """Constructor"""
        self._compiler = Compiler(self)
        self._devices = {}
        self._scripts = {}

        # Grouped by kind
        self._triggers = {}
        self._actions = {}

    def add_device(self, device):
        """Adds a device"""
        if (device.kind not in self._devices):
            self._devices[device.kind] = {}

        self._devices[device.kind][device.ID] = device

    def device_with_ID(self, ID):
        """Check amongst all the device, one with ID=ID"""
        for (device_family_name, device_family) in self._devices.iteritems():
            if (ID in device_family):
                return device_family[ID]
            else:
                return False

    def add_script(self, script):
        """Adds a script"""

        self._compiler.link_connectables(script)
        self._scripts[script.ID] = script
        self.generate_conditions()

    # DEPRECATED
    def generate_conditions_by_family(self):

        conditions_tree = {}

        for (script_name, script) in self._scripts.iteritems():
            for trigger_name, trigger in script.triggers.iteritems():
                if (trigger.device.kind not in conditions_tree):
                    conditions_tree[trigger.device.kind] = {}
                if (trigger.device.ID
                        not in conditions_tree[trigger.device.kind]):
                    conditions_tree[trigger.device.kind][
                        trigger.device.ID] = {}
                if (trigger_name not in conditions_tree[trigger.device.kind][
                        trigger.device.ID]):
                    conditions_tree[trigger.device.kind][
                        trigger.device.ID][trigger_name] = {}

                conditions_tree[trigger.device.kind][trigger.device.ID][
                    trigger_name][script_name] = trigger.fields
        self.conditions_tree = conditions_tree

    def generate_conditions(self):
        """Generates a tree with all the trigger conditions"""
        conditions_tree = {}

        for (script_name, script) in self._scripts.iteritems():
            conditions_tree[script_name] = script.conditions_tree

        self.conditions_tree = conditions_tree

    def run():
        print "Connector running"

        for script in self._scripts:
            pass