From 36526bfc86641dd8477de2b29a2d84c2360e29b2 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 31 Dec 2025 16:44:17 +0100 Subject: [PATCH] Move request handling --- rpi/controllers/GameController.py | 27 +++++++++++++++++++++++++-- rpi/services/game_service.py | 30 +++--------------------------- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/rpi/controllers/GameController.py b/rpi/controllers/GameController.py index c2bbc27c..3fe71e32 100644 --- a/rpi/controllers/GameController.py +++ b/rpi/controllers/GameController.py @@ -1,3 +1,6 @@ +import threading + +import requests from flask import jsonify, request from services.game_service import GameService @@ -45,9 +48,29 @@ class GameController: if auth_token != "Bearer " + self.auth_token: return jsonify({"status": "error", "message": "Invalid authorization token"}), 401 - self._game_service.make_move() + img, fen = self._game_service.make_move() + + threading.Thread( + target=self.__send_detection_result, + args=("https://192.168.15.125:1880/party/image", img, fen), + daemon=True + ).start() return jsonify({"status": "ok"}), 200 except Exception as ex: print(ex) - return jsonify({"status": "error", "message": f"An error occurred : {ex}"}), 500 \ No newline at end of file + return jsonify({"status": "error", "message": f"An error occurred : {ex}"}), 500 + + def __send_detection_result(self, url, img, fen): + try: + headers = {'Content-Type': 'image/jpeg'} + body = {'frame': img, 'fen': fen} + response = requests.post( + url, + data=body, + headers=headers, + verify=False) + + print(response.status_code) + except Exception as e: + print(e) \ No newline at end of file diff --git a/rpi/services/game_service.py b/rpi/services/game_service.py index 6b4bada0..bb740c19 100644 --- a/rpi/services/game_service.py +++ b/rpi/services/game_service.py @@ -1,8 +1,3 @@ -import threading - -import requests -import _thread - from services.clock_service import ClockService from services.detection_service import DetectionService @@ -24,28 +19,9 @@ class GameService: self.clock_service.stop() self.detection_service.stop() - def make_move(self) -> None: + def make_move(self) -> tuple[bytes, str] | None: try : - frame, fen = self.detection_service.analyze_single_frame() - print(fen) - url = "http://192.168.15.125:1880/party/image" - """threading.Thread( - target=self.__send_detection_result, - args=(url, frame, fen), - daemon=True - ).start()""" + return self.detection_service.analyze_single_frame() except Exception as e: print(e) - - def __send_detection_result(self, url, img, fen): - try: - headers = {'Content-Type': 'image/jpeg'} - body = {'frame': img, 'fen': fen} - response = requests.post( - url, - data=body, - headers=headers, - verify=False) - print(response.status_code) - except Exception as e: - print(e) \ No newline at end of file + return None \ No newline at end of file