Compare commits
No commits in common. "pipelines" and "main" have entirely different histories.
10
Dockerfile
10
Dockerfile
|
@ -1,10 +0,0 @@
|
|||
FROM --platform=$BUILDPLATFORM python:3.10-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY requirements.txt /app
|
||||
RUN pip3 install -r requirements.txt
|
||||
|
||||
COPY . /app
|
||||
|
||||
CMD ["python", "main.py"]
|
|
@ -1,11 +1,12 @@
|
|||
# Initialise flask
|
||||
from flask import Flask
|
||||
app = Flask(__name__)
|
||||
app.config['SERVER_NAME'] = '0.0.0.0:5000'
|
||||
app.config.from_prefixed_env()
|
||||
|
||||
# Initialise the bluetooth stack
|
||||
from bluewind import headwind
|
||||
fan = headwind.Headwind(app.config["ADDRESS"])
|
||||
fan = headwind.Headwind(app, app.config["ADDRESS"])
|
||||
|
||||
# Load the views
|
||||
from bluewind import views
|
|
@ -15,12 +15,15 @@ CHARACTERISTIC = "a026e038-0a7d-4ab3-97fa-f1500f9feb8b"
|
|||
# > bytearray(b'\xfd\x01\x00\x01')
|
||||
|
||||
class Headwind:
|
||||
def __init__(self, address):
|
||||
self.address = address
|
||||
fanClient = None
|
||||
flaskApp = None
|
||||
def __init__(self, flaskApp, address):
|
||||
self.flaskApp = flaskApp
|
||||
self.fanClient = BleakClient(address)
|
||||
|
||||
async def readSpeed(self):
|
||||
try:
|
||||
async with BleakClient(self.address) as client:
|
||||
async with self.fanClient as client:
|
||||
result = await client.read_gatt_char(CHARACTERISTIC)
|
||||
return result[2]
|
||||
except Exception:
|
||||
|
@ -28,7 +31,7 @@ class Headwind:
|
|||
|
||||
async def readMode(self):
|
||||
try:
|
||||
async with BleakClient(self.address) as client:
|
||||
async with self.fanClient as client:
|
||||
result = await client.read_gatt_char(CHARACTERISTIC)
|
||||
return result[3] # Return state code, needs to figure out what each code means
|
||||
except Exception:
|
||||
|
@ -36,32 +39,32 @@ class Headwind:
|
|||
|
||||
async def writeSleep(self):
|
||||
try:
|
||||
async with BleakClient(self.address) as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, SLEEP, response=False)
|
||||
async with self.fanClient as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, SLEEP)
|
||||
return True
|
||||
except Exception as e:
|
||||
return False
|
||||
|
||||
async def writeOn(self):
|
||||
try:
|
||||
async with BleakClient(self.address) as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, ON, response=False)
|
||||
async with self.fanClient as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, ON)
|
||||
return True
|
||||
except Exception as e:
|
||||
return False
|
||||
|
||||
async def writeSpeedMode(self):
|
||||
try:
|
||||
async with BleakClient(self.address) as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, SPD, response=False)
|
||||
async with self.fanClient as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, SPD)
|
||||
return True
|
||||
except Exception as e:
|
||||
return False
|
||||
|
||||
async def writeHrMode(self):
|
||||
try:
|
||||
async with BleakClient(self.address) as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, HR, response=False)
|
||||
async with self.fanClient as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, HR)
|
||||
return True
|
||||
except Exception as e:
|
||||
return False
|
||||
|
@ -70,8 +73,8 @@ class Headwind:
|
|||
if speed > 0:
|
||||
value = [0x2, speed]
|
||||
try:
|
||||
async with BleakClient(self.address) as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, value, response=False)
|
||||
async with self.fanClient as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, value)
|
||||
return True
|
||||
except Exception as e:
|
||||
return False
|
||||
|
@ -79,8 +82,8 @@ class Headwind:
|
|||
|
||||
async def writeOff(self):
|
||||
try:
|
||||
async with BleakClient(self.address) as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, OFF, response=False)
|
||||
async with self.fanClient as client:
|
||||
await client.write_gatt_char(CHARACTERISTIC, OFF)
|
||||
return True
|
||||
except Exception as e:
|
||||
return False
|
|
@ -24,6 +24,7 @@ async def setSpeed(speed):
|
|||
|
||||
@app.route("/speed/increase", methods=["POST"])
|
||||
async def setIncreaseSpeed():
|
||||
print("increase speed")
|
||||
currentSpeed = await fan.readSpeed()
|
||||
newSpeed = 0
|
||||
if currentSpeed < 25:
|
||||
|
@ -41,6 +42,7 @@ async def setIncreaseSpeed():
|
|||
|
||||
@app.route("/speed/decrease", methods=["POST"])
|
||||
async def setDecreaseSpeed():
|
||||
print("decrease speed")
|
||||
currentSpeed = await fan.readSpeed()
|
||||
newSpeed = 0
|
||||
if currentSpeed == 100:
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
FLASK_ADDRESS='F2:B3:F7:6A:24:48'
|
||||
FLASK_URL='127.0.0.1:5000'
|
Loading…
Reference in New Issue