def get_description_from_driver(device_path=None):
    conf = PeerConfig('amplifier')
    conf.add_local_param('driver_executable', 'drivers/eeg/cpp_amplifiers/gtec_amplifier')
    conf.add_local_param('samples_per_packet', '4')

    driv = DriverComm(conf, catch_signals=False)
    descr = driv.get_driver_description()
    try:
        dic = json.loads(descr)
    except ValueError, e:
        print "AMPLIFIER ", device_path, "IS PROBABLY BUSY.", 
        print "Invalid channel description: ", descr
        dic = None
def get_description_from_driver(device_path):
    conf = PeerConfig('amplifier')
    conf.add_local_param('driver_executable', _AMP_EXECUTABLE)
    conf.add_local_param('samples_per_packet', '4')
    conf.add_local_param('bluetooth_device', '')
    conf.add_local_param('usb_device', device_path)

    driv = DriverComm(conf, catch_signals=False)
    descr = driv.get_driver_description()
    try:
        dic = json.loads(descr)
    except ValueError, e:
        print "AMPLIFIER ", device_path, "IS PROBABLY BUSY.",
        print "Invalid channel description: ", descr
        dic = None
Esempio n. 3
0
    def __init__(self,
                 peer_id,
                 experiment_id,
                 config=None,
                 path=None,
                 machine=None,
                 logger=None):
        self.peer_id = peer_id

        self.experiment_id = experiment_id

        self.config = PeerConfig(peer_id)
        self.path = path
        self.machine = machine
        self.public_params = []
        self.logger = logger or logging.getLogger(
            "ObciExperimentConfig.peer_id")
        self.del_after_stop = False
def get_description_from_driver(device_path):
    conf = PeerConfig("amplifier")
    conf.add_local_param("driver_executable", "drivers/eeg/cpp_amplifiers/tmsi_amplifier")
    conf.add_local_param("samples_per_packet", "4")
    conf.add_local_param("bluetooth_device", "")
    conf.add_local_param("usb_device", device_path)

    driv = DriverComm(conf, catch_signals=False)
    descr = driv.get_driver_description()
    try:
        dic = json.loads(descr)
    except ValueError, e:
        print "AMPLIFIER ", device_path, "IS PROBABLY BUSY.",
        print "Invalid channel description: ", descr
        dic = None
Esempio n. 5
0
    def __init__(self, peer_id, experiment_id, config=None, path=None, machine=None,
                 logger=None):
        self.peer_id = peer_id

        self.experiment_id = experiment_id

        self.config = PeerConfig(peer_id)
        self.path = path
        self.machine = machine
        self.public_params = []
        self.logger = logger or logging.getLogger("ObciExperimentConfig.peer_id")
        self.del_after_stop = False
def get_description_from_driver(device_path):
    conf = PeerConfig('amplifier')
    conf.add_local_param('driver_executable', _AMP_EXECUTABLE)
    conf.add_local_param('samples_per_packet', '4')
    conf.add_local_param('bluetooth_device', '')
    conf.add_local_param('usb_device', device_path)

    driv = DriverComm(conf, catch_signals=False)
    descr = driv.get_driver_description()
    try:
        dic = json.loads(descr)
    except ValueError as e:
        print("AMPLIFIER ", device_path, "IS PROBABLY BUSY.", end=' ')
        print("Invalid channel description: ", descr)
        dic = None

    driv.terminate_driver()
    return dic
Esempio n. 7
0
    def _handle_new_peer_added(self, msg):
        # add new peer status and configuration so it is visible in GUI
        peer_id = msg.peer_id
        index = self.index_of(msg.uuid)
        if index is not None:
            exp = self.experiments[index]
            par = PeerConfigParserDict()
            conf = PeerConfig(peer_id)
            dic_conf = json.loads(msg.config)

            par.parse(dic_conf, conf)
            exp.exp_config.extend_with_peer(peer_id, msg.peer_path, conf)
            exp.status.peers_status[peer_id] = launcher_tools.PeerStatus(peer_id,
                                                                         status_name=msg.status_name)
        print msg
def get_description_from_driver():
    conf = PeerConfig('amplifier')
    conf.add_local_param('driver_executable', _AMP_EXECUTABLE)
    conf.add_local_param('samples_per_packet', '4')

    driv = DriverComm(conf, catch_signals=False)
    descr = driv.get_driver_description()
    dic = json.loads(descr)
    driv.terminate_driver()
    return dic
Esempio n. 9
0
    def launch_data(self):
        ser = PeerConfigSerializerCmd()
        args = [self.peer_id]
        peer_parser = peer.peer_config_parser.parser("ini")
        base_config = PeerConfig(self.peer_id)
        conf_path = launcher_tools.default_config_path(self.path)
        if conf_path:

            with codecs.open(conf_path, "r", "utf8") as f:
                self.logger.info("parsing default config for peer %s, %s ",
                                 self.peer_id, conf_path)
                peer_parser.parse(f, base_config)

        ser.serialize_diff(base_config, self.config, args)

        return dict(peer_id=self.peer_id,
                    experiment_id=self.experiment_id,
                    path=self.path,
                    machine=self.machine,
                    args=args,
                    peer_type=self.peer_type())
Esempio n. 10
0
class PeerConfigDescription(object):
    def __init__(self,
                 peer_id,
                 experiment_id,
                 config=None,
                 path=None,
                 machine=None,
                 logger=None):
        self.peer_id = peer_id

        self.experiment_id = experiment_id

        self.config = PeerConfig(peer_id)
        self.path = path
        self.machine = machine
        self.public_params = []
        self.logger = logger or logging.getLogger(
            "ObciExperimentConfig.peer_id")
        self.del_after_stop = False

    def __str__(self):
        return self.peer_id

    def ready(self, details=None):
        loc_det = {}
        ready = self.config is not None and \
            self.path is not None and\
            self.machine is not None and\
            self.peer_id is not None

        if not ready:
            return ready
        ready = self.config.config_sources_ready(loc_det) and ready
        ready = self.config.launch_deps_ready(loc_det) and ready
        if details is not None:
            details[self.peer_id] = loc_det
        return ready

    def list_config_sources(self):
        return [
            val for val in self.config.config_sources.values()
            if val in self.config.used_config_sources()
        ]

    def list_launch_deps(self):
        return self.config.launch_deps.values()

    def status(self, peer_status_obj):
        det = {}
        ready = self.ready(det)
        st = launcher_tools.READY_TO_LAUNCH if ready else launcher_tools.NOT_READY

        peer_status_obj.set_status(st, details=det)

    def peer_type(self):
        if self.peer_id.startswith('mx'):
            return 'multiplexer'
        else:
            return 'obci_peer'

    def launch_data(self):
        ser = PeerConfigSerializerCmd()
        args = [self.peer_id]
        peer_parser = peer.peer_config_parser.parser("ini")
        base_config = PeerConfig(self.peer_id)
        conf_path = launcher_tools.default_config_path(self.path)
        if conf_path:

            with codecs.open(conf_path, "r", "utf8") as f:
                self.logger.info("parsing default config for peer %s, %s ",
                                 self.peer_id, conf_path)
                peer_parser.parse(f, base_config)

        ser.serialize_diff(base_config, self.config, args)

        return dict(peer_id=self.peer_id,
                    experiment_id=self.experiment_id,
                    path=self.path,
                    machine=self.machine,
                    args=args,
                    peer_type=self.peer_type())

    def info(self, detailed=False):
        info = dict(peer_id=self.peer_id,
                    path=self.path,
                    machine=self.machine,
                    peer_type=self.peer_type())

        if not self.config:
            return info

        info[CONFIG_SOURCES] = self.config.config_sources
        info[LAUNCH_DEPENDENCIES] = self.config.launch_deps

        if detailed:
            info[LOCAL_PARAMS] = self.config.local_params
            info[EXT_PARAMS] = self.config.ext_param_defs
        return info
Esempio n. 11
0
                v = self.driver_out_q.get_nowait()
                self.logger.info(v)
            except Empty:
                time.sleep(0.1)
        sys.exit(self.driver.returncode)



def enqueue_output(out, queue):
    for line in iter(out.readline, ''):
        queue.put(line)
    out.close()


if __name__ == "__main__":
    from obci.control.peer.peer_config import PeerConfig
    import json

    conf = PeerConfig('amplifier')
    conf.add_local_param('driver_executable', 'drivers/eeg/cpp_amplifiers/tmsi_amplifier')
    conf.add_local_param('samples_per_packet', '4')
    conf.add_local_param('bluetooth_device', '')
    conf.add_local_param('usb_device', '/dev/tmsi0')

    driv = DriverComm(conf)
    descr = driv.get_driver_description()
    dic = json.loads(descr)
    driv.start_sampling()
    time.sleep(3)
    driv.terminate_driver()
Esempio n. 12
0
class PeerConfigDescription(object):

    def __init__(self, peer_id, experiment_id, config=None, path=None, machine=None,
                 logger=None):
        self.peer_id = peer_id

        self.experiment_id = experiment_id

        self.config = PeerConfig(peer_id)
        self.path = path
        self.machine = machine
        self.public_params = []
        self.logger = logger or logging.getLogger("ObciExperimentConfig.peer_id")
        self.del_after_stop = False

    def __str__(self):
        return self.peer_id

    def ready(self, details=None):
        loc_det = {}
        ready = self.config is not None and \
            self.path is not None and\
            self.machine is not None and\
            self.peer_id is not None

        if not ready:
            return ready
        ready = self.config.config_sources_ready(loc_det) and ready
        ready = self.config.launch_deps_ready(loc_det) and ready
        if details is not None:
            details[self.peer_id] = loc_det
        return ready

    def list_config_sources(self):
        return [val for val in self.config.config_sources.values() if
                val in self.config.used_config_sources()]

    def list_launch_deps(self):
        return list(self.config.launch_deps.values())

    def status(self, peer_status_obj):
        det = {}
        ready = self.ready(det)
        st = launcher_tools.READY_TO_LAUNCH if ready else launcher_tools.NOT_READY

        peer_status_obj.set_status(st, details=det)

    def peer_type(self):
        if self.peer_id.startswith('mx'):
            return 'multiplexer'
        else:
            return 'obci_peer'

    def launch_data(self):
        ser = PeerConfigSerializerCmd()
        args = [self.peer_id]
        peer_parser = peer.peer_config_parser.parser("ini")
        base_config = PeerConfig(self.peer_id)
        conf_path = launcher_tools.default_config_path(self.path)
        if conf_path:

            with codecs.open(conf_path, "r", "utf8") as f:
                self.logger.info("parsing default config for peer %s, %s ",
                                 self.peer_id, conf_path)
                peer_parser.parse(f, base_config)

        ser.serialize_diff(base_config, self.config, args)

        return dict(peer_id=self.peer_id, experiment_id=self.experiment_id,
                    path=self.path, machine=self.machine,
                    args=args, peer_type=self.peer_type())

    def info(self, detailed=False):
        info = dict(peer_id=self.peer_id,
                    path=self.path, machine=self.machine, peer_type=self.peer_type()
                    )

        if not self.config:
            return info

        info[CONFIG_SOURCES] = self.config.config_sources
        info[LAUNCH_DEPENDENCIES] = self.config.launch_deps

        if detailed:
            info[LOCAL_PARAMS] = self.config.local_params
            info[EXT_PARAMS] = self.config.ext_param_defs
        return info
Esempio n. 13
0
                v = self.driver_out_q.get_nowait()
                self.logger.info(v)
            except Empty:
                time.sleep(0.1)
        sys.exit(self.driver.returncode)


def enqueue_output(out, queue):
    for line in iter(out.readline, ''):
        queue.put(line)
    out.close()


if __name__ == "__main__":
    from obci.control.peer.peer_config import PeerConfig
    import json

    conf = PeerConfig('amplifier')
    conf.add_local_param('driver_executable',
                         'drivers/eeg/cpp_amplifiers/tmsi_amplifier')
    conf.add_local_param('samples_per_packet', '4')
    conf.add_local_param('bluetooth_device', '')
    conf.add_local_param('usb_device', '/dev/tmsi0')

    driv = DriverComm(conf)
    descr = driv.get_driver_description()
    dic = json.loads(descr)
    driv.start_sampling()
    time.sleep(3)
    driv.terminate_driver()