Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion flexbe_webui/webui_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -340,10 +340,16 @@ def main(args: List[str] = None):
print(f' Invalid port = {args.port} - {exc}', flush=True)
return

try:
host = str(args.host)
except Exception as exc:
print(f'\n Invalid host = {args.host} - {exc}', flush=True)
return

print('\nStarting FlexBE WebUI ROS node with server at '
f'port={port} logging={args.logging_level}...', flush=True)
webui_node = WebuiNode(args)
server = threading.Thread(target=webui_node._server.run, args=(port, args.logging_level), daemon=True)
server = threading.Thread(target=webui_node._server.run, args=(port, host, args.logging_level), daemon=True)
server.start()
try:
rclpy.spin(webui_node)
Expand Down
15 changes: 11 additions & 4 deletions flexbe_webui/webui_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -620,10 +620,10 @@ async def behavior_manifest_generator(json_manifest_dict: Dict = Body(...)):
print(traceback.format_exc().replace('%', '%%'))
return False

def run(self, port: int = 8000, logging: str = 'warning'):
def run(self, port: int = 8000, host: str = '0.0.0.0', logging: str = 'warning'):
"""Run main web server loop."""
print(f' Configure uvicorn port={port} logging={logging} ...', flush=True)
config = uvicorn.Config(self._app, port=port, log_level=logging)
print(f' Configure uvicorn port={port} host={host} logging={logging} ...', flush=True)
config = uvicorn.Config(self._app, host=host, port=port, log_level=logging)
print(' Construct uvicorn server ...', flush=True)
server = uvicorn.Server(config)
print(' Run uvicorn server...', flush=True)
Expand All @@ -636,6 +636,7 @@ def parse_args(args: List[str] = None):
"""Parse command line arguments for webui_server and webui_node."""
parser = argparse.ArgumentParser(description='FlexBE WebUI Server parameters')
parser.add_argument('--port', type=str, default='8000', help="FlexBE WebUI Server port (default='8000')")
parser.add_argument('--host', type=str, default='0.0.0.0', help="IP address to bind the FlexBE WebUI server to (default: 0.0.0.0 — listen on all interfaces)")
parser.add_argument('--config_folder', type=str, default='',
help="FlexBE WebUI Server configuration file folder (default='' use 'flexbe_webui/config')")
parser.add_argument('--config_file', type=str, default='',
Expand Down Expand Up @@ -667,9 +668,15 @@ def main(args: List[str] = None):
print(f'\n Invalid port = {args.port} - {exc}', flush=True)
return

try:
host = str(args.host)
except Exception as exc:
print(f'\n Invalid host = {args.host} - {exc}', flush=True)
return

print(f'at port={port} logging={args.logging_level} ...', flush=True)
webui_server = WebuiServer(args)
webui_server.run(port, args.logging_level)
webui_server.run(port, host, args.logging_level)
print('shutdown FlexBE WebUI server!', flush=True)


Expand Down
9 changes: 9 additions & 0 deletions launch/flexbe_ocs.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ def generate_launch_description():
default_value='8000'
)

host = DeclareLaunchArgument('host',
description="IP address to bind the FlexBE WebUI server to (default: 0.0.0.0 — listen on all interfaces)",
default_value='0.0.0.0')

clear_cache = DeclareLaunchArgument('clear_cache',
description='Clear existing package data cache and reprocess',
default_value='false')
Expand All @@ -62,12 +66,14 @@ def start_webui(context, *args, **kwargs):
config_folder = LaunchConfiguration('config_folder').perform(context)
config_file = LaunchConfiguration('config_file').perform(context)
port = LaunchConfiguration('port').perform(context)
host = LaunchConfiguration('host').perform(context)
clear_cache = LaunchConfiguration('clear_cache').perform(context)
print('Setting up launch for FlexBE WebUI')
print(f" offline : '{offline}'")
print(f" config_folder: '{config_folder}'")
print(f" config_file : '{config_file}'")
print(f" port : '{port}'")
print(f" host : '{host}'")
print(f" clear_cache : '{clear_cache}'")

node_args = []
Expand All @@ -77,6 +83,8 @@ def start_webui(context, *args, **kwargs):
node_args += ['--config_file', config_file]
if port != '':
node_args += ['--port', port]
if host != '':
node_args += ['--host', host]
if clear_cache.lower() == 'true':
node_args += ['--clear_cache', 'true']

Expand Down Expand Up @@ -117,6 +125,7 @@ def start_webui(context, *args, **kwargs):
config_folder,
config_file,
port,
host,
clear_cache,
behavior_mirror,
client_delay,
Expand Down