78 lines
2.0 KiB
Python
Executable File
78 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import logging
|
|
import webview
|
|
from time import sleep
|
|
from server import run_server
|
|
import config
|
|
from threading import Thread, Lock
|
|
from loggerops import create_logger
|
|
|
|
socketio = config.socketio
|
|
|
|
server_lock = Lock()
|
|
|
|
logger = logging.getLogger(__name__)
|
|
logging.getLogger('matplotlib.font_manager').disabled = True
|
|
logging.getLogger('matplotlib').setLevel(logging.WARNING)
|
|
|
|
|
|
def url_ok(url, port):
|
|
# Use httplib on Python 2
|
|
try:
|
|
from http.client import HTTPConnection
|
|
except ImportError:
|
|
from httplib import HTTPConnection
|
|
|
|
try:
|
|
conn = HTTPConnection(url, port)
|
|
conn.request("GET", "/")
|
|
r = conn.getresponse()
|
|
return r.status == 200
|
|
except:
|
|
logger.error("Server not started")
|
|
return False
|
|
|
|
def create_new_window():
|
|
webview.create_window("Participant view",
|
|
"http://127.0.0.1:23948/participant_home",
|
|
width=1000, height=700, min_size=(1000, 500))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
logger = create_logger(
|
|
logger_streamlevel=10,
|
|
log_filename='./logs/main.log',
|
|
logger_filelevel=10
|
|
)
|
|
log = logging.getLogger('werkzeug')
|
|
log.setLevel(logging.ERROR)
|
|
log = logging.getLogger('engineio')
|
|
log.setLevel(logging.ERROR)
|
|
logger.debug("Starting server")
|
|
# Run server in seperate thread
|
|
# socketio.start_background_task(run_server)
|
|
t = Thread(target=run_server)
|
|
t.daemon = True
|
|
t.start()
|
|
logger.debug("Checking server")
|
|
|
|
# Check server is up and running
|
|
while not url_ok("127.0.0.1", 23948):
|
|
sleep(0.1)
|
|
|
|
logger.debug("Server started")
|
|
# Create browser window for user interaction with GUI
|
|
|
|
# Create clinician view
|
|
t2 = Thread(target=create_new_window)
|
|
t2.start()
|
|
# socketio.start_background_task(create_new_window)
|
|
webview.create_window("BPLabs",
|
|
"http://127.0.0.1:23948/home",
|
|
width=1000, height=700, min_size=(1000, 500))
|
|
webview.start(debug=True)
|
|
|
|
|