Я очень новичок в python, и я пытаюсь создать программу, которая принимает живой ввод с COM-порта (подключенного к детектору ветра) и анализирует живые данные в более удобный для человека вывод. Данные, полученные в данный момент из порта, имеют формат csv:
Q,060,000.10,M,00,19
«Q» - адрес текущего узла,
«060» - направление ветра,
"000.10" - скорость ветра,
«М» - единица измерения (м / с),
«00» - это статус, а последний номер - контрольная сумма.
Мне удалось заставить python распечатывать непрерывные данные через Pyserial readline (), однако это формат по умолчанию, а это не то, что мне нужно. Я попытался использовать csv.reader для разбора и чтения кода, но, похоже, я не смог напечатать его в правильном формате. Я попытался внедрить в него csv.reader, но результаты отделяют каждый элемент как новую строку.
Это код, который у меня есть для чтения и анализа.
while True:
data = ser.readline().decode('ascii')
csvReader = csv.reader(data, delimiter=',')
for row in csvReader:
print(row)
Результат, который я получаю сейчас:
['\x02']
['Q']
['', '']
['', '']
['0']
['0']
['0']
['.']
['0']
['1']
['', '']
['M']
['', '']
['0']
['0']
Я пытаюсь получить окончательный результат, подобный следующему:
"Wind Direction is 60deg.
Wind Speed is 0.10 m/s.
The current status is Ok"