From 9878acd9b643f0947552762929318510be900638 Mon Sep 17 00:00:00 2001 From: sqozz Date: Mon, 22 Feb 2021 15:39:57 +0100 Subject: [PATCH] Add first "Hello World" webinterface --- fetapd.py | 2 +- phoneinterface.py | 14 +++++++++++++- webinterface.py | 12 ++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 webinterface.py diff --git a/fetapd.py b/fetapd.py index 1282510..fb3c25f 100644 --- a/fetapd.py +++ b/fetapd.py @@ -70,7 +70,7 @@ if __name__ == '__main__': cfg = configreader.ConfigurationReader() cfg.read('fetap.ini') - phone = PhoneInterface(cfg.phoneconfig) + phone = PhoneInterface(cfg.phoneconfig, webinterface_enabled=True, api_enabled=True) feap = FeApUserInterface(cfg.pinconfig) controller = statemachine.StateMachineController(phone, feap, cfg.dialconfig) diff --git a/phoneinterface.py b/phoneinterface.py index ec0204c..a2fe56c 100644 --- a/phoneinterface.py +++ b/phoneinterface.py @@ -46,7 +46,9 @@ class PhoneEvent(object): class PhoneInterface(object): - def __init__(self, config): + def __init__(self, config, webinterface_enabled = False, api_enabled = False): + self.webinterface_enabled = webinterface_enabled + self.api_enabled = api_enabled self.__event_cbs = [] self.__config = config @@ -81,6 +83,10 @@ class PhoneInterface(object): #self.__core.video_capture_enabled = False #self.__core.video_display_enabled = False + if self.webinterface_enabled: + from webinterface import FeTapWeb + self.webinterface = FeTapWeb(api_enabled=api_enabled) + def run_callbacks(self, evt): print(PhoneEvent.string(evt)) @@ -104,10 +110,16 @@ class PhoneInterface(object): self.__core.process_event() time.sleep(0.2) # Value for good measure + def __webthread(self): + self.webinterface.start("0.0.0.0", 8080) + def start(self): self.__running = True t = threading.Thread(target=self.__pollthread) t.start() + if self.webinterface_enabled: + w = threading.Thread(target=self.__webthread) + w.start() def stop(self): self.stop_playing() diff --git a/webinterface.py b/webinterface.py new file mode 100644 index 0000000..bafd3d7 --- /dev/null +++ b/webinterface.py @@ -0,0 +1,12 @@ +import bottle + +class FeTapWeb(): + def __init__(self, api_enabled=False): + pass + + @bottle.route("/") + def root(): + return "

Hello world!

" + + def start(self, host, port): + bottle.run(host=host, port=port)