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