#!/usr/bin/python3 import logging import signal import subprocess import sys import threading import time from queue import Queue import flask from flask import jsonify, request from dronekit_server_client import DroneKitComms from vision_cargo_approach import VisionCargoApproacher from pallet_hole_alignment_c import HoleAligner # def reinit_networking(): # logging.info('Resetting dhcpcd service, wait 5 seconds...') # subprocess.run(["sudo", "service", "dhcpcd", "restart"]) # time.sleep(5) # subprocess.run(["route", "-n"]) JOB_QUEUE = Queue(maxsize=10) KILL_SIGNAL = False def exit_handler(*_): global KILL_SIGNAL print('\nROOT: CTRL-C pressed, killing everything') KILL_SIGNAL = True sys.exit(0) signal.signal(signal.SIGINT, exit_handler) logging.basicConfig() logging.root.setLevel(logging.NOTSET) logging.basicConfig(level=logging.NOTSET) executor_logger = logging.getLogger("LOGISTICS EXECUTOR") executor_logger.setLevel(logging.DEBUG) #--- Logistics executionner is running..." @app.route('/alive', methods=['POST']) def alive(): app.logger.info(f"Returning alive") return jsonify({'Success': True}) @app.route('/add_job', methods=['POST']) def add_job(): if request.is_json: job_request = request.get_json() if not verify_json_data(job_request): app.logger.error("Error processing job request: check logs...") return jsonify({'Error': 'Error processing job request: check logs...'}) app.logger.info(f"Got valid job request: {job_request}") JOB_QUEUE.put(job_request) return jsonify({'Success': True}) else: return jsonify({'Error': 'Not JSON'}) app.run(host='0.0.0.0', port=8080)