скрипт Python, который извлекает некоторые значения из последовательного вывода - PullRequest
0 голосов
/ 27 июня 2018

Я написал небольшой скрипт, который фиксирует вывод последовательного соединения. Это выход.

                 CHEMONORM AG

      ZURCHERST.  137  CH-8852  ALTENDORF

   TEL: +00 00 4517200 FAX: +00 00 45172200

                   WATCHDOG



       pH            REDOX       IN1    IN2

   ---------       ---------    -----  -----

      7.1 pH          797 mV     Off     On

 RAM - TEST:         OK

 PROM - TEST:        OK

 PROCESS - STATUS:   OK

Теперь я хочу сохранить значения pH и REDOX (mV) в двух переменных.

var1 = 7.1
var2 = 797

Это мой скрипт на python.

#!/bin/env python
import time
import serial

ser = serial.Serial(
        port='/dev/ttyAMA0',
        baudrate = 2400,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_ONE,
        bytesize=serial.EIGHTBITS,
        timeout= None)


while True:
        line = ser.readline()
        print(line)

1 Ответ

0 голосов
/ 27 июня 2018
if 'mV' in line:
    line_split = line.replace(' ','').replace('pH', ',').replace('mV', ',').split(',')
    var_ph = float(line_split[0])
    var_redox = float(line_split[1])

Пояснение:

Условие 'mV' in line достаточно для обнаружения строки со значениями.

первая замена - удалить пробелы: '7.1pH797mVOffOn'

вторая и третья замены - единицы на запятые: '7.1,797,OffOn'

разделить запятыми к списку: ['7.1', '797', 'OffOn']

, а затем только первый и второй элементы сохраняются как float.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...