-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart_server.py
More file actions
84 lines (65 loc) · 2.38 KB
/
Copy pathstart_server.py
File metadata and controls
84 lines (65 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
"""Entry point for the FIREQ Server.
This module starts the FIREQServer with a loaded FIREQ SoC overlay.
"""
import logging
import os
import sys
from FIREQ_SERVER import FIREQServer
# Path to the base directory where the overlay files are stored
HOME_PATH = "/home/xilinx/"
def setup_logging(level: int) -> logging.Logger:
"""Configure logging for the server."""
logging.basicConfig(
level=level,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
)
return logging.getLogger(__name__)
def main() -> None:
"""Prompt for overlay, load it, and start the FIREQ server."""
logger = setup_logging(level=logging.INFO)
logger.info("### FIREQ Server startup ###\n")
# set logging level
log_level = input("Input logging level: 'debug', 'info' (press enter for 'info')\n")
if log_level == "debug":
logging.getLogger().setLevel(logging.DEBUG)
else:
pass
# Get overlay path
ol_filename = input(f"# Insert Overlay filename relative to '{HOME_PATH}' (press Enter for 'overlay.bit')\n")
if not ol_filename:
ol_filename = "overlay.bit"
ol_filepath = HOME_PATH + ol_filename
# Check existence of overlay
if not os.path.exists(ol_filepath):
logger.error(f"Overlay invalid filepath '{ol_filepath}'")
sys.exit(-1)
# Get server configuration
host = input('# Insert server host (press Enter for "0.0.0.0")\n').strip()
if not host:
host = "0.0.0.0"
port_str = input('# Insert server port (press Enter for "5000")\n').strip()
if not port_str:
port = 5000
else:
try:
port = int(port_str)
except ValueError:
logger.error(f"Invalid port number: {port_str}")
sys.exit(-1)
auth_token = input('# Insert auth token (press Enter for "fireq")\n').strip()
if not auth_token:
auth_token = "fireq"
# run the server
logger.info(f"Starting server using overlay '{ol_filepath}, on address '{host}:{port}', with token {auth_token}")
try:
server = FIREQServer(ol_filepath, host, port, auth_token=auth_token)
except Exception as e:
logger.error(f"Failed to initialize server: {e}")
sys.exit(-1)
try:
server.start()
except KeyboardInterrupt:
logger.info("Keyboard interrupt, stopping server...")
server.stop()
if __name__ == "__main__":
main()