From 1c8980f3a518e7ac021ad6f727e3220cd6efe6f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Fr=C4=85tczak?= Date: Tue, 14 Nov 2023 18:22:27 +0100 Subject: [PATCH] working speed increase and decrease endpoints --- bluewind/headwind/__init__.py | 44 ++--------------------------------- bluewind/views.py | 38 ++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 42 deletions(-) diff --git a/bluewind/headwind/__init__.py b/bluewind/headwind/__init__.py index 4641273..2842ab8 100644 --- a/bluewind/headwind/__init__.py +++ b/bluewind/headwind/__init__.py @@ -75,51 +75,11 @@ class Headwind: try: async with self.fanClient as client: await client.write_gatt_char(CHARACTERISTIC, value) + # print("flag") return True except Exception as e: return False - else: - return False - - async def writeIncreaseSpeed(self): - try: - async with self.fanClient as client: - currentSpeed = await client.read_gatt_char(CHARACTERISTIC)[2] - newSpeed = 0 - if currentSpeed < 25: - newSpeed = 25 - elif currentSpeed < 50: - newSpeed = 50 - elif currentSpeed < 75: - newSpeed = 75 - elif currentSpeed < 100: - newSpeed = 100 - value = [0x2, newSpeed] - await client.write_gatt_char(CHARACTERISTIC, value) - return True - except Exception as e: - return False - - async def writeDecreaseSpeed(self): - try: - async with self.fanClient as client: - currentSpeed = await client.read_gatt_char(CHARACTERISTIC)[2] - newSpeed = 0 - if currentSpeed == 100: - newSpeed = 75 - elif currentSpeed >= 75: - newSpeed = 50 - elif currentSpeed >= 50: - newSpeed = 25 - elif currentSpeed > 25: - newSpeed = 25 - elif currentSpeed <= 25: - return True - value = [0x2, newSpeed] - await client.write_gatt_char(CHARACTERISTIC, value) - return True - except Exception as e: - return False + return False async def writeOff(self): try: diff --git a/bluewind/views.py b/bluewind/views.py index b18263e..bd14bc3 100755 --- a/bluewind/views.py +++ b/bluewind/views.py @@ -22,6 +22,44 @@ async def setSpeed(speed): return f"Failed to set headwind speed to {speed}", 503 return f"Setting headwind speed to {speed}", 200 +@app.route("/speed/increase", methods=["POST"]) +async def setIncreaseSpeed(): + print("increase speed") + currentSpeed = await fan.readSpeed() + newSpeed = 0 + if currentSpeed < 25: + newSpeed = 25 + elif currentSpeed < 50: + newSpeed = 50 + elif currentSpeed < 75: + newSpeed = 75 + elif currentSpeed < 100: + newSpeed = 100 + fan_status = await fan.writeSpeed(newSpeed) + if not fan_status: + return f"Failed to increase speed by 25%", 503 + return f"Increased speed by 25%", 200 + +@app.route("/speed/decrease", methods=["POST"]) +async def setDecreaseSpeed(): + print("decrease speed") + currentSpeed = await fan.readSpeed() + newSpeed = 0 + if currentSpeed == 100: + newSpeed = 75 + elif currentSpeed >= 75: + newSpeed = 50 + elif currentSpeed >= 50: + newSpeed = 25 + elif currentSpeed > 25: + newSpeed = 25 + elif currentSpeed <= 25: + newSpeed = 1 + fan_status = await fan.writeSpeed(newSpeed) + if not fan_status: + return f"Failed to decrease speed by 25%", 503 + return f"Decreased speed by 25%", 200 + @app.route("/speed", methods=["GET"]) async def getSpeed(): speed = await fan.readSpeed()