def test_board_type(self):
        board_cfg = board_config.BoardConfig()

        self.assertEqual('m3', board_cfg.board_type)
        self.assertEqual('m3', board_cfg.board_class.TYPE)
        self.assertEqual('turtlebot2', board_cfg.robot_type)
        self.assertNotEqual('', board_config.BoardConfig().node_id)
예제 #2
0
def flash():
    """ flash node function """
    board_cfg = board_config.BoardConfig()
    firmware = os.getenv('FW')
    opts = _setup_parser(_FLASH, board_cfg)
    control_node = opts.cn if hasattr(opts, 'cn') else False
    node = _get_node(board_cfg, control_node)
    if firmware is not None and not control_node:
        if firmware == 'idle':
            firmware = node.FW_IDLE
        if firmware == 'autotest':
            firmware = node.FW_AUTOTEST
    else:
        firmware = opts.firmware

    if firmware is None:
        ret = -2
        _print_result(ret, _FLASH)
        return ret

    if node.programmer is None:
        ret = -1
    else:
        try:
            firmware_path = common.abspath(firmware)
        except IOError as err:
            print(err)
            return 1
        if not opts.quiet:
            node.programmer.out = None
        ret = node.flash(firmware_path, opts.bin, opts.offset)

    _print_result(ret, _FLASH, node.TYPE)
    return ret
예제 #3
0
def reset():
    """ reset node function """
    board_cfg = board_config.BoardConfig()
    opts = _setup_parser(_RESET, board_cfg)
    control_node = opts.cn if hasattr(opts, 'cn') else False
    node = _get_node(board_cfg, control_node)
    ret = node.reset() if hasattr(node, _RESET) else -1
    _print_result(ret, _RESET, node.TYPE)
    return ret
예제 #4
0
def debug():
    """ debug node function """
    board_cfg = board_config.BoardConfig()
    opts = _setup_parser(_DEBUG, board_cfg)
    control_node = opts.cn if hasattr(opts, 'cn') else False
    node = _get_node(board_cfg, control_node)
    start_debug = hasattr(node, f'{_DEBUG}_start')
    stop_debug = hasattr(node, f'{_DEBUG}_stop')
    ret = _debug(node) if (start_debug and stop_debug) else -1
    _print_result(ret, _DEBUG, node.TYPE)
    return ret
예제 #5
0
    def __init__(self, gateway_manager):
        self.g_m = gateway_manager
        board_cfg = board_config.BoardConfig()
        self.on_class = board_cfg.board_class
        self.cn_class = board_cfg.cn_class

        self.on_serial = None
        self.a8_connection = None

        self.ret_dict = {'ret': None, 'success': [], 'error': [], 'mac': {}}
        self.cn_measures = []
예제 #6
0
def reset():
    """ reset node function """
    board_cfg = board_config.BoardConfig()
    opts = _setup_parser(_RESET, board_cfg)
    control_node = opts.cn if hasattr(opts, 'cn') else False
    node = _get_node(board_cfg, control_node)
    if node.programmer is not None:
        if not opts.quiet:
            node.programmer.out = None
        ret = node.reset()
    else:
        ret = -1
    _print_result(ret, _RESET, node.TYPE)
    return ret
예제 #7
0
def main():
    """ serial_redirection cli main function """
    # Catch SIGTERM signal sending by start-stop-daemon
    # init script
    signal.signal(signal.SIGTERM, _handle_signal)
    board_cfg = board_config.BoardConfig()
    node = _get_node(board_cfg)
    try:
        node.serial_redirection.start()
        print('Press Ctrl+C to stop')
        signal.pause()
    except KeyboardInterrupt:
        pass
    finally:
        node.serial_redirection.stop()
        print('Stopped')
예제 #8
0
    def __init__(self, log_folder='.', log_stdout=False):
        gateway_logging.init_logger(log_folder, log_stdout)

        self.board_cfg = board_config.BoardConfig()
        self.rlock = RLock()

        # Nodes instance
        self.open_node = self.board_cfg.board_class()
        self.control_node = self.board_cfg.cn_class(
            self.board_cfg.node_id, self.board_cfg.default_profile)
        self._nodes = {'control': self.control_node, 'open': self.open_node}

        # current experiment infos
        self.exp_id = None
        self.user = None
        self.exp_files = {}

        self.experiment_is_running = False
        self.user_log_handler = None
        self.timeout_timer = None
예제 #9
0
 def __init__(self, gateway_manager):
     super(GatewayRest, self).__init__()
     self.gateway_manager = gateway_manager
     self.board_config = board_config.BoardConfig()
     self._app_routing()
    def test_board_type_no_robot(self):
        board_cfg = board_config.BoardConfig()

        self.assertEqual('m3', board_cfg.board_type)
        self.assertEqual(None, board_cfg.robot_type)