Code source de xphs1903.mesure

from logging import getLogger

from pandas import DataFrame
from serial import Serial

logging = getLogger(__name__)


[docs] def prendre_mesure[R: DataFrame](res: R, ser: Serial) -> R: """Prise d'une mesure prendre_mesure, pour chaque liste de mesures contenues dans ``res``, envoie une requête à l'Arduino puis lit la valeur reçue. Parameters ---------- res Liste des mesures prises. Structurée en ``[t, pd1, pd2, ...]`` ser Objet de communication série avec lequel communiquer pour obtenir les données. Returns ---------- res Avec les nouvelles valeurs. """ # Mesure du temps auquel la mesure est prise lignes: list[bytes] = ser.readlines() logging.debug('lignes=%s', lignes) for l in lignes: logging.debug('l=%r', l) if b'\t' not in l: logging.error('Cette ligne est incorrecte:\t%s', l) else: n: int = res.t.size i: int w: float for i, w in enumerate(map(float, l.split())): res.loc[n, res.columns[i]] = w return res