Exemplo n.º 1
0
Arquivo: app.py Projeto: Diaoul/Dobby
def initTriggers(event_queue, recognizer, config):
    """Initialize all triggers as defined in the config

    :param Queue.Queue event_queue: where event will be raised into
    :param Recognizer recognizer: recognizer instance (only :class:`~dobby.recognizers.julius.Julius` is supported now)
    :param dict config: triggers-related settings
    :return: started triggers
    :rtype: list of Trigger

    """
    logger.debug(u'Initializing triggers')
    triggers = []
    for trigger_name in config['triggers']:
        if trigger_name == 'clapper':
            pattern = Pattern([
                QuietPattern(1),
                NoisyPattern(1, 4),
                QuietPattern(1, 6),
                NoisyPattern(1, 4),
                QuietPattern(1)
            ])
            trigger = Clapper(event_queue, config['Clapper']['device_index'],
                              pattern, config['Clapper']['threshold'],
                              config['Clapper']['channels'],
                              config['Clapper']['rate'],
                              config['Clapper']['block_time'])
            triggers.append(trigger)
            logger.debug(u'Trigger clapper initialized')
        elif trigger_name == 'julius':
            trigger = JuliusTrigger(event_queue, config['Julius']['sentence'],
                                    recognizer, config['Julius']['action'])
            triggers.append(trigger)
            logger.debug(u'Trigger julius initialized')
    return triggers
Exemplo n.º 2
0
class ClapperTestCase(unittest.TestCase):
    def setUp(self):
        # This patterns defines a QuietBlock of 1*0.25s min (no max) followed by a NoisyBlock of 1*0.25s min and 3*0.25s max, etc.
        # Clap 2 times for it to work
        p = Pattern([QuietPattern(1), NoisyPattern(1, 3), QuietPattern(1, 2), NoisyPattern(1, 3), QuietPattern(1)])
        self.clapper = Clapper(event_queue=Queue.Queue(), device_index=8, pattern=p, block_time=0.25)

    def test_main(self):
        self.clapper.start()
        time.sleep(4)  # let it live for a few seconds only :evil:
        self.clapper.stop()
        self.clapper.join()
Exemplo n.º 3
0
 def setUp(self):
     # This patterns defines a QuietBlock of 1*0.25s min (no max) followed by a NoisyBlock of 1*0.25s min and 3*0.25s max, etc.
     # Clap 2 times for it to work
     p = Pattern([QuietPattern(1), NoisyPattern(1, 3), QuietPattern(1, 2), NoisyPattern(1, 3), QuietPattern(1)])
     self.clapper = Clapper(event_queue=Queue.Queue(), device_index=8, pattern=p, block_time=0.25)