Serial.flushInput()
Serial.flushOutput()
Serial.write("{n32}".encode())
buffer = ""
counter = 0
while buffer.find("{") == -1 and buffer.find("}") == -1:
buffer += str(Serial.readall())
counter += 1
if counter > 15:
return
await asyncio.sleep(1)
start = buffer.find('{', 0, len(buffer))
end = buffer.find('[', 0, len(buffer))
crcStart = buffer.find('[', 0, len(buffer))
crcEnd = buffer.find(']', 0, len(buffer))
result = buffer[start + 1:end]
crcIncome = int(buffer[crcStart + 1:crcEnd])
crc = 0
for i in range(len(result)):
crc ^= ord(result[i])
if crcIncome != crc:
return
resultsArray = result.split(',')
await CurClient.SendInTelegram(
f"Uptime: {resultsArray[0]}\nТемпература: {resultsArray[1]}\nВлажность: {resultsArray[2]}\nAO: {resultsArray[3]}\nср. PPM: {resultsArray[4]}")