Я пытаюсь реализовать службу REST в Python с FLASK, которая предоставляет данные GPS.Данные GPS считываются с устройства доступа через COM-порт.Основная точка входа моего приложения выглядит так:
from flask import Flask
from flask_restful import Api, Resource
from GPS import GPSParser
gpsparser = GPSParser()
app = Flask(__name__)
api = Api(app)
class GPS(Resource):
def get(self):
if gpsparser.gpsQueue.qsize() > 0:
element = gpsparser.gpsQueue.get_nowait()
return element, 200
return "", 204
api.add_resource(GPS, "/gps")
app.run(debug=True)
GPSParser выглядит так:
class GPSParser:
def __init__(self):
self.ser = serial.Serial('/dev/ttyUSB0', 4800, timeout=None)
manager = multiprocessing.Manager()
self.gpsQueue = manager.Queue()
thread = Thread(target=self.readgpsvalues)
thread.start()
Теперь проблема в том, что очередь в функции get всегда пуста,Я не знаю почему.Из операторов отладки я знаю, что элементы добавляются в очередь.