Exemplo n.º 1
0
class DataServer:
    def __init__(self):
        try:
            self.camera = PiCamera()
            self.camera.resolution = (320, 240)
            self.camera.framerate = 30
            self.camera.start_preview()
            self.m = None
            try:
                self.m = Moving()
            except:
                print("Moving not possible")
                self.m = None
            time.sleep(2)
            self.t = tick(self.camera, self.m)
            self.t.start()
            self.m.start()

    #        self.m.setMotorPlan([[100,100],[100,100],[100,100],[100,100],[100,100],[100,100],[100,100],[100,100],[100,100],[100,100]])
        except:
            print("FAILED")
            traceback.print_exc()

    def current_time(self):
        return str(time.time())

    def current_image(self):
        image_stream = io.BytesIO()
        self.camera.capture(image_stream, 'jpeg', use_video_port=True)
        response = make_response(image_stream.getvalue())
        response.headers.set('Content-Type', 'image/jpeg')
        return response

    def get_data(self):
        data = {}
        data["startRequest"] = time.time()
        data["data"] = self.t.getData()
        data["endRequestTime"] = time.time()
        return jsonify(data)

    def set_current_plan(self, motorPlan):
        self.m.setMotorPlan(motorPlan)

    def stop(self):
        try:
            self.camera.stop_preview()
            self.camera.close()
        except:
            pass
        try:
            self.m.stop()
        except:
            pass
        try:
            self.t.stop()
        except:
            pass