Remove printer import, remove vendor&device configuration, update
print_queue
This commit is contained in:
27
src/main.py
27
src/main.py
@@ -36,7 +36,6 @@ import werkzeug.exceptions
|
|||||||
from flask_socketio import SocketIO
|
from flask_socketio import SocketIO
|
||||||
from flask_limiter import Limiter
|
from flask_limiter import Limiter
|
||||||
from flask_limiter.util import get_remote_address
|
from flask_limiter.util import get_remote_address
|
||||||
from printer import Printer # The wrapper for the printer class
|
|
||||||
from raspberry import Raspberry # The Raspberry pi control Class
|
from raspberry import Raspberry # The Raspberry pi control Class
|
||||||
from web import Web # Wrapper for the web routes and API
|
from web import Web # Wrapper for the web routes and API
|
||||||
from print_queue import PrintQueue
|
from print_queue import PrintQueue
|
||||||
@@ -73,11 +72,7 @@ except OSError as e:
|
|||||||
|
|
||||||
app.logger.debug("Config file loaded !")
|
app.logger.debug("Config file loaded !")
|
||||||
|
|
||||||
# Define the USB connections here.
|
|
||||||
vendor_id = configuration_file["printer"]["vendor_id"]
|
|
||||||
device_id = configuration_file["printer"]["device_id"]
|
|
||||||
UPLOAD_FOLDER = str(configuration_file["printer"]["upload_folder"])
|
UPLOAD_FOLDER = str(configuration_file["printer"]["upload_folder"])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.mkdir(UPLOAD_FOLDER)
|
os.mkdir(UPLOAD_FOLDER)
|
||||||
app.logger.debug("Directory %s created successfully.", UPLOAD_FOLDER)
|
app.logger.debug("Directory %s created successfully.", UPLOAD_FOLDER)
|
||||||
@@ -98,13 +93,12 @@ app.config["ALLOWED_EXTENSIONS"] = ALLOWED_EXTENSIONS
|
|||||||
app.config["MAX_CONTENT_LENGTH"] = 10 * 1000 * 1000 # Maximum 3Mb for a file upload
|
app.config["MAX_CONTENT_LENGTH"] = 10 * 1000 * 1000 # Maximum 3Mb for a file upload
|
||||||
app.config["TEMPLATES_AUTO_RELOAD"] = True
|
app.config["TEMPLATES_AUTO_RELOAD"] = True
|
||||||
|
|
||||||
# Printer connection
|
# Queue creation
|
||||||
# Uses the class defined in the printer.py file
|
print_queue = PrintQueue(app)
|
||||||
printer = Printer(app, 0x04B8, 0x0E28)
|
|
||||||
|
|
||||||
# Find out if we are running on a Raspberry Pi
|
# Find out if we are running on a Raspberry Pi
|
||||||
rpi = Raspberry(
|
rpi = Raspberry(
|
||||||
printer,
|
print_queue,
|
||||||
app,
|
app,
|
||||||
socketio,
|
socketio,
|
||||||
configuration_file["rpi"]["button_gpio_port_number"],
|
configuration_file["rpi"]["button_gpio_port_number"],
|
||||||
@@ -112,18 +106,20 @@ rpi = Raspberry(
|
|||||||
configuration_file["rpi"]["flash_gpio_port_number"],
|
configuration_file["rpi"]["flash_gpio_port_number"],
|
||||||
configuration_file["rpi"]["flash"],
|
configuration_file["rpi"]["flash"],
|
||||||
)
|
)
|
||||||
|
|
||||||
RASPBERRY_PI_CONNECTED = rpi.is_raspberry_pi()
|
RASPBERRY_PI_CONNECTED = rpi.is_raspberry_pi()
|
||||||
|
|
||||||
# Queue creation
|
|
||||||
print_queue = PrintQueue(app)
|
|
||||||
|
|
||||||
# Web & API management
|
# Web & API management
|
||||||
web = Web(app, print_queue)
|
web = Web(app, print_queue)
|
||||||
|
|
||||||
# Start worker thread
|
# Start worker thread
|
||||||
worker = PrintWorker(app, print_queue, printer, socketio)
|
# When created, the worker will try to find printers connected to the system
|
||||||
|
try:
|
||||||
|
worker = PrintWorker(app, print_queue, socketio)
|
||||||
worker.start()
|
worker.start()
|
||||||
|
except Exception as e:
|
||||||
|
app.logger.error("Could not start the worker because %s ", str(e))
|
||||||
|
sys.exit(-1)
|
||||||
|
|
||||||
# The rate limit
|
# The rate limit
|
||||||
limiter = Limiter(
|
limiter = Limiter(
|
||||||
@@ -303,6 +299,7 @@ def api_print_image():
|
|||||||
return "OK", 200
|
return "OK", 200
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: This might not depend on the Raspberry Pi
|
||||||
@app.route("/api/camera/picture", methods=["GET"])
|
@app.route("/api/camera/picture", methods=["GET"])
|
||||||
def camera_picture():
|
def camera_picture():
|
||||||
"""Returns a picture taken by the camera on a raspberry pi"""
|
"""Returns a picture taken by the camera on a raspberry pi"""
|
||||||
@@ -320,6 +317,10 @@ def api_queue_status():
|
|||||||
"""API endpoint for entire queue"""
|
"""API endpoint for entire queue"""
|
||||||
return jsonify(web.get_queue_state())
|
return jsonify(web.get_queue_state())
|
||||||
|
|
||||||
|
@app.route("/api/queue/completed", methods=["GET"])
|
||||||
|
def api_queue_completed():
|
||||||
|
"""API endpoint that returns the finished tasks"""
|
||||||
|
return jsonify(web.get_queue_completed())
|
||||||
|
|
||||||
@app.route("/api/worker", methods=["GET"])
|
@app.route("/api/worker", methods=["GET"])
|
||||||
def api_worker_state():
|
def api_worker_state():
|
||||||
|
|||||||
Reference in New Issue
Block a user