Я пытаюсь создать программу на python, которая читает последовательный порт, затем декодирует полученную информацию (в данном случае это координаты GPS и ультразвуковой датчик), затем мне нужно создать несколько циклов if для сохранения эти последовательные данные в переменные, но мне кажется, что мое утверждение if не хорошо, ниже я прилагаю код:
import serial
Ard = serial.Serial(port='COM5', baudrate=9600,
bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, timeout=2)
try:
Ard.isOpen()
print("Conexion con el puerto serial: COM5, establecida satisfactoriamente!\n")
except:
print("Error")
exit()
if (Ard.isOpen()):
try:
while (1):
aux = Ard.readline()
a = aux.decode('utf-8')
print(a)
if a == '1':
print("It works")
lat = float(a)
except Exception:
print("It doesn't work")
else:
print("Port is not opening")
Я пытался не использовать UTF-8, но использовал a = float(Ard.readline())
, он работал (по крайней мере, печать последовательных переменных как float), но теперь это не так и он никогда не входит в цикл if, я пытался, если a != 1
и это работает, так что дело в том, что я не знаю, расшифровка или тип переменной a
, и мне нужно, чтобы она была с плавающей точкой. Я читаю из Arduino UNO, и я использую pycharm в качестве Python IDE с pyserial и интерпретатора 3.7, пожалуйста, помогите мне.