def __init__(self, name, server):

        start = time.time()

        # configure cassandra cluster
        self.cluster = Cluster()
        self.session = self.cluster.connect('cloudbrain')

        # configure the spacebrew client
        self.brew = SpacebrewApp(name, server=server)
        for path in CASSANDRA_METRICS:
            publisher_metric_name = calculate_spacebrew_name(path)
            for muse_port in MUSE_PORTS:

                # add subscriber
                subscriber_metric_name = '%s-muse-%s' % (publisher_metric_name,
                                                         muse_port)
                self.brew.add_subscriber(subscriber_metric_name, "string")

                # handle value
                handle_value = self.handle_value_factory(
                    publisher_metric_name, muse_port)
                self.brew.subscribe(subscriber_metric_name, handle_value)

        end = time.time()

        print 'configuration took %s s' % (end - start)
Ejemplo n.º 2
0
    def __init__(self, name, server, paths):
        # configure the spacebrew client
        self.brew = SpacebrewApp(name, server=server)

        for spacebrew_name in paths:
            self.brew.add_subscriber(spacebrew_name, "string")
            self.brew.subscribe(spacebrew_name, self.handle_value)

        self.number_of_packets = 0
        self.start_time = time.time()
Ejemplo n.º 3
0
    def __init__(self, muse_id=7777, server='127.0.0.1', port=9000):
        self.muse_id = muse_id
        self.server = server
        self.port = port

        name = 'muse-%s' % muse_id
        self.brew = SpacebrewApp(name, server=server)

        for path in CASSANDRA_METRICS:
            publisher_metric_name = calculate_spacebrew_name(path)
            self.brew.add_publisher(publisher_metric_name, "string", '0')
            print publisher_metric_name
Ejemplo n.º 4
0
    def __init__(self, muse_port, muse_id, server):

        self.muse_port = muse_port
        self.muse_id = muse_id

        # Configuring the Muse OSC client
        ServerThread.__init__(self, muse_port)

        logger.info('Muse %s connected to museIO on port %s' %
                    (muse_id, muse_port))

        # configure the Spacebrew client
        self.brew = SpacebrewApp(muse_id, server=server)

        self.osc_paths = [
            '/muse/eeg',
            '/muse/eeg/quantization',
            # '/muse/eeg/dropped_samples',
            '/muse/acc',
            # '/muse/acc/dropped_samples',
            '/muse/batt',
            # '/muse/drlref',
            #'/muse/elements/raw_fft0',
            #'/muse/elements/raw_fft1',
            #'/muse/elements/raw_fft2',
            #'/muse/elements/raw_fft3',
            '/muse/elements/low_freqs_absolute',
            '/muse/elements/delta_absolute',
            '/muse/elements/theta_absolute',
            '/muse/elements/alpha_absolute',
            '/muse/elements/beta_absolute',
            '/muse/elements/gamma_absolute',
            #'/muse/elements/delta_relative',
            #'/muse/elements/theta_relative',
            #'/muse/elements/alpha_relative',
            #'/muse/elements/beta_relative',
            #'/muse/elements/gamma_relative',
            #'/muse/elements/delta_session_score',
            #'/muse/elements/theta_session_score',
            #'/muse/elements/alpha_session_score',
            #'/muse/elements/beta_session_score',
            #'/muse/elements/gamma_session_score',
            '/muse/elements/touching_forehead',
            '/muse/elements/horseshoe',
            '/muse/elements/is_good',
            '/muse/elements/blink',
            '/muse/elements/jaw_clench',
            '/muse/elements/experimental/concentration',
            '/muse/elements/experimental/mellow'
        ]

        for osc_path in self.osc_paths:
            spacebrew_name = self.calculate_spacebrew_name(osc_path)
            self.brew.add_publisher(spacebrew_name, 'string')
            logger.debug('Spacebrew publisher %s added for muse with ID %s' %
                         (spacebrew_name, self.muse_id))

        # Connect to spacebrew
        self.brew.start()

        logger.debug('Initialization completed for muse with ID %s' %
                     self.muse_id)
Ejemplo n.º 5
0
    def __init__(self, name, server):
        # get app name and server from query string
        self.name = name
        server = server

        # configure the spacebrew client
        self.brew = SpacebrewApp(name, server=server)

        # cassandra
        self.muse_cassandra_repo = CassandraRepository(KEYSPACE,
                                                       MUSE_COLUMN_FAMILY)
        self.batches = {}
        self.osc_paths = [{
            'address': "/muse/eeg",
            'arguments': 4
        }, {
            'address': "/muse/eeg/quantization",
            'arguments': 4
        }, {
            'address': "/muse/eeg/dropped_samples",
            'arguments': 1
        }, {
            'address': "/muse/acc",
            'arguments': 3
        }, {
            'address': "/muse/acc/dropped_samples",
            'arguments': 1
        }, {
            'address': "/muse/batt",
            'arguments': 4
        }, {
            'address': "/muse/drlref",
            'arguments': 2
        }, {
            'address': "/muse/elements/low_freqs_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/delta_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/theta_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/alpha_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/beta_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/gamma_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/delta_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/theta_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/alpha_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/beta_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/gamma_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/delta_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/theta_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/alpha_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/beta_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/gamma_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/touching_forehead",
            'arguments': 1
        }, {
            'address': "/muse/elements/horseshoe",
            'arguments': 4
        }, {
            'address': "/muse/elements/is_good",
            'arguments': 4
        }, {
            'address': "/muse/elements/blink",
            'arguments': 1
        }, {
            'address': "/muse/elements/jaw_clench",
            'arguments': 1
        }, {
            'address': "/muse/elements/experimental/concentration",
            'arguments': 1
        }, {
            'address': "/muse/elements/experimental/mellow",
            'arguments': 1
        }]

        for path in self.osc_paths:
            spacebrew_name = path['address'].split('/')[-1]
            self.brew.add_subscriber(spacebrew_name, "string")
            self.brew.subscribe(spacebrew_name, self.handle_value)
Ejemplo n.º 6
0
    def __init__(self, name, server):
        # configure the spacebrew client
        self.brew = SpacebrewApp(name, server=server)
        self.osc_paths = [{
            'address': "/muse/eeg",
            'arguments': 4
        }, {
            'address': "/muse/eeg/quantization",
            'arguments': 4
        }, {
            'address': "/muse/eeg/dropped_samples",
            'arguments': 1
        }, {
            'address': "/muse/acc",
            'arguments': 3
        }, {
            'address': "/muse/acc/dropped_samples",
            'arguments': 1
        }, {
            'address': "/muse/batt",
            'arguments': 4
        }, {
            'address': "/muse/drlref",
            'arguments': 2
        }, {
            'address': "/muse/elements/low_freqs_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/delta_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/theta_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/alpha_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/beta_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/gamma_absolute",
            'arguments': 4
        }, {
            'address': "/muse/elements/delta_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/theta_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/alpha_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/beta_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/gamma_relative",
            'arguments': 4
        }, {
            'address': "/muse/elements/delta_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/theta_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/alpha_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/beta_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/gamma_session_score",
            'arguments': 4
        }, {
            'address': "/muse/elements/touching_forehead",
            'arguments': 1
        }, {
            'address': "/muse/elements/horseshoe",
            'arguments': 4
        }, {
            'address': "/muse/elements/is_good",
            'arguments': 4
        }, {
            'address': "/muse/elements/blink",
            'arguments': 1
        }, {
            'address': "/muse/elements/jaw_clench",
            'arguments': 1
        }, {
            'address': "/muse/elements/experimental/concentration",
            'arguments': 1
        }, {
            'address': "/muse/elements/experimental/mellow",
            'arguments': 1
        }]

        for path in self.osc_paths:
            spacebrew_name = self.calculate_spacebrew_name(path['address'])
            self.brew.add_subscriber(spacebrew_name, "string")
            self.brew.subscribe(spacebrew_name, self.handle_value)