diff --git a/scripts/speed_reader.py b/scripts/speed_reader.py index 54de62c..bdebe61 100644 --- a/scripts/speed_reader.py +++ b/scripts/speed_reader.py @@ -1,11 +1,15 @@ from src.variables.service import get_variable, set_variable from gpiozero import Button -import datetime, os +import datetime, os, json pulses_per_rotation = 4 reader = Button(4, pull_up=False, bounce_time=0.0005) set_variable("speed_reader_last_impulse_time", datetime.datetime.now(), False) -set_variable("actual_rpm_unfiltered", 0, False) +#set_variable("actual_rpm_unfiltered", 0, False) +set_variable("rpm_filter", json.dumps([0]), False) + +if get_variable("rpm_filter_count") == None: + set_variable("rpm_filter_count", 8, True) def printer(text): if bool(os.getenv("DEBUG")): @@ -19,8 +23,23 @@ def event(): rpm = (60 / difference) / pulses_per_rotation - actual_rpm = (float(get_variable("actual_rpm_unfiltered")) + rpm) / 2 - set_variable("actual_rpm_unfiltered", rpm, False) + #actual_rpm = (float(get_variable("actual_rpm_unfiltered")) + rpm) / 2 + #set_variable("actual_rpm_unfiltered", rpm, False) + + rpm_filter = json.loads(get_variable("rpm_filter")) + print(rpm_filter) + + while len(rpm_filter) > int(get_variable("rpm_filter_count")): + rpm_filter.remove(rpm_filter[0]) + + rpm_filter.append(rpm) + set_variable("rpm_filter", json.dumps(rpm_filter), False) + + average = 0 + for i in rpm_filter: + average = average + i + + actual_rpm = average / len(rpm_filter) set_variable("actual_rpm", round(actual_rpm, 1), False) printer("Measured RPM: {}".format(round(actual_rpm, 1))) diff --git a/src/main.py b/src/main.py index 4119872..2be7b57 100644 --- a/src/main.py +++ b/src/main.py @@ -4,6 +4,7 @@ from dotenv import load_dotenv load_dotenv() from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware from src.modules.router import router as modulesrouter from src.variables.router import router as variablesrouter @@ -13,6 +14,13 @@ import scripts.timer app = FastAPI(root_path="/api") +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # Can also use ["*"] to allow all origins + allow_credentials=True, # Allow cookies or authentication credentials + allow_methods=["*"], # Allow all HTTP methods + allow_headers=["*"], # Allow all headers +) app.include_router(router=modulesrouter) app.include_router(router=variablesrouter)