Compare commits

..

No commits in common. "b7cd8d18e81addb6a6f3f56c19084cc56bd4f919" and "4e4adeb581e2a3153c02be440d2dae586426162c" have entirely different histories.

View File

@ -3,57 +3,46 @@ import time
from bleak import BleakScanner, BleakClient
lampAmount = 25
LampArray = {
"Center": [0],
"Up": [1,2,8,9,10,11,12,13,23,24],
"Down": [4,5,6,15,16,17,18,19,20,21],
"Left": [6,3,8,9,19,20,21,22,23,12],
"Right": [2,7,4,11,24,13,14,15,16,17],
"Inner": [1,2,3,4,5,6,7,8],
"Outer": [9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]
}
Center = [0]
Up = [1,2,8,9,10,11,12,13,23,24]
Down = [4,5,6,15,16,17,18,19,20,21]
Left = [6,3,8,9,19,20,21,22,23,12]
Right = [2,7,4,11,24,13,14,15,16,17]
Inner = [1,2,3,4,5,6,7,8]
Outer = [9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]
colorArray = ["500000","005000","000050"]
colorArrayTest = ["050000","000500"]
def sectionInitializer():
result = [b'\x00\x00\x00'] * lampAmount
result = [0] * lampAmount
return result
def sectionSerializer(section, color):
def sectionSerializer(section):
result = sectionInitializer()
sectionResult = LampArray[section]
sectionResult = Center + section
for pos in sectionResult:
result[pos] = int(color,16).to_bytes(3)
result[pos] = 1
return result
def posColorByte(pos, section, color):
intColor = int(color, 16)
result = int(intColor * section[pos])
result = intColor * section[pos]
print(result)
return result.to_bytes(3)
async def setOnUserInput(client, chars):
while True:
configZone = input("Input Zone [Up, Down, Left, Right, Inner, Outer]: ")
configColor = input("Input Color [000000]: ")
configColorCenter = input("Input Color for Center Lamp [000000]: ")
await setLampToColor(client, chars, configZone, configColor, configColorCenter)
async def setLampToColor(bleClient, bleChars, section, color, colorCenter):
sectionSerial = sectionSerializer(section, color)
sectionSerial[0] = int(colorCenter,16).to_bytes(3)
async def setLampToColor(bleClient, bleChars, section, color):
sectionSerial = sectionSerializer(section)
for char in bleChars:
lampPos = bleChars.index(char)
value = sectionSerial[lampPos]
print(f"Setting Lamp number {lampPos} to {value}")
print(f"Setting Lamp number {lampPos}")
value = posColorByte(lampPos, sectionSerial, color)
await bleClient.write_gatt_char(char.uuid, value)
time.sleep(10)
async def connect_to_ble_device(device_name):
print(f"Scanning for device: {device_name}...")
devices = await BleakScanner.discover()
global services
global client
target_device = None
for device in devices:
@ -92,14 +81,13 @@ async def connect_to_ble_device(device_name):
print(f" Could not read characteristic {char.uuid}: {e}")
else:
print(" (Read not supported)")
# for color in colorArray:
# await setLampToColor(client, service.characteristics, Up, color)
# await setLampToColor(client, service.characteristics, Down, color)
# await setLampToColor(client, service.characteristics, Left, color)
# await setLampToColor(client, service.characteristics, Right, color)
# await setLampToColor(client, service.characteristics, Inner, color)
# await setLampToColor(client, service.characteristics, Outer, color)
await setOnUserInput(client, service.characteristics)
for color in colorArray:
await setLampToColor(client, service.characteristics, Up, color)
await setLampToColor(client, service.characteristics, Down, color)
await setLampToColor(client, service.characteristics, Left, color)
await setLampToColor(client, service.characteristics, Right, color)
await setLampToColor(client, service.characteristics, Inner, color)
await setLampToColor(client, service.characteristics, Outer, color)
else:
print(f"Device '{device_name}' not found.")