import os.path, sys, time

from multiplexer.multiplexer_constants import peers, types
from obci.control.peer.configured_multiplexer_server import ConfiguredMultiplexerServer

from obci.configs import settings, variables_pb2
from obci.gui.ugm import ugm_config_manager
from obci.gui.ugm import ugm_helper
from obci.utils import keystroke
from obci.utils import tags_helper

from obci.acquisition import acquisition_helper

from obci.logic import logic_logging as logger
LOGGER = logger.get_logger("logic_p300_calibration", "info")


class LogicP300Calibration(ConfiguredMultiplexerServer):
    """A class for creating a manifest file with metadata."""
    def __init__(self, addresses):
        super(LogicP300Calibration,
              self).__init__(addresses=addresses,
                             type=peers.LOGIC_P300_CALIBRATION)
        self.blinking_ugm = ugm_config_manager.UgmConfigManager(
            self.config.get_param("ugm_config")).config_to_message()
        self.hi_text = self.config.get_param("hi_text")
        self.bye_text = self.config.get_param("bye_text")
        self.break_text = self.config.get_param("break_text")
        self.break_duration = float(self.config.get_param("break_duration"))
        self.trials_count = int(self.config.get_param("trials_count"))
from obci.analysis.obci_signal_processing import smart_tags_manager as sgr
from obci.configs import settings
from obci.acquisition import acquisition_helper
from obci.gui.ugm import ugm_helper
#from obci.interfaces.bci.ssvep_csp import logic_ssvep_csp_analysis
from obci.interfaces.bci.ssvep_csp import ssvep_csp_helper

from obci.logic import logic_helper
from obci.logic import logic_logging as logger

import signalParser as sp
from p300_draw import P300_draw
from p300_fda import P300_train


LOGGER = logger.get_logger("p300_fda", 'info')

class LogicP300Fda(ConfiguredMultiplexerServer):
    """A class for creating a manifest file with metadata."""
    def __init__(self, addresses):
        super(LogicP300Fda, self).__init__(addresses=addresses,
                                          type=peers.LOGIC_P300_CSP)

        self.use_channels=None
        tmp = self.config.get_param("use_channels")
        if len(tmp) > 0:
            self.use_channels = tmp.split(';')

        self.ignore_channels=None        
        tmp = self.config.get_param("ignore_channels")
        if len(tmp) > 0:
import os.path, sys, time

from multiplexer.multiplexer_constants import peers, types
from obci.control.peer.configured_multiplexer_server import ConfiguredMultiplexerServer

from obci.configs import settings, variables_pb2
from obci.gui.ugm import ugm_config_manager
from obci.gui.ugm import ugm_helper
from obci.utils import keystroke
from obci.utils import tags_helper

from obci.acquisition import acquisition_helper

from obci.logic import logic_logging as logger
LOGGER = logger.get_logger("logic_p300_calibration", "info")

class LogicP300Calibration(ConfiguredMultiplexerServer):
    """A class for creating a manifest file with metadata."""
    def __init__(self, addresses):
        super(LogicP300Calibration, self).__init__(addresses=addresses,
                                          type=peers.LOGIC_P300_CALIBRATION)
        self.blinking_ugm = ugm_config_manager.UgmConfigManager(self.config.get_param("ugm_config")).config_to_message()
        self.hi_text = self.config.get_param("hi_text")
        self.bye_text = self.config.get_param("bye_text")
        self.break_text = self.config.get_param("break_text")
        self.break_duration = float(self.config.get_param("break_duration"))
        self.trials_count = int(self.config.get_param("trials_count"))
        self.current_target = int(self.config.get_param("target"))
        self.blink_duration = float(self.config.get_param("blink_duration"))
from obci.analysis.obci_signal_processing.tags import smart_tag_definition as df
from obci.analysis.obci_signal_processing import smart_tags_manager as sgr
from obci.configs import settings
from obci.acquisition import acquisition_helper
from obci.gui.ugm import ugm_helper
#from obci.interfaces.bci.ssvep_csp import logic_ssvep_csp_analysis
from obci.interfaces.bci.ssvep_csp import ssvep_csp_helper

from obci.logic import logic_helper
from obci.logic import logic_logging as logger

import signalParser as sp
from p300_draw import P300_draw
from p300_fda import P300_train

LOGGER = logger.get_logger("p300_fda", 'info')


class LogicP300Fda(ConfiguredMultiplexerServer):
    """A class for creating a manifest file with metadata."""
    def __init__(self, addresses):
        super(LogicP300Fda, self).__init__(addresses=addresses,
                                           type=peers.LOGIC_P300_CSP)

        self.use_channels = None
        tmp = self.config.get_param("use_channels")
        if len(tmp) > 0:
            self.use_channels = tmp.split(';')

        self.ignore_channels = None
        tmp = self.config.get_param("ignore_channels")