Python - Escribir ciertas líneas de puerto serie ()

 
Vista:
sin imagen de perfil

Escribir ciertas líneas de puerto serie ()

Publicado por anonymous (2 intervenciones) el 28/06/2021 03:29:09
Hola! soy nuevo usando python, se lo más básico de momento. Tengo un proyecto escolar en el cual tengo algunos sensores en un microcontrolador MSP430, los datos que me va arrojando los manda por el puerto serie y por medio de python estoy leyendo esos datos y escribiéndolos en un archivo .txt al mismo tiempo. El problema es que los baudios están a 115200, entonces cada segundo me lanza varias líneas y el archivo se hace muy extenso; intente usando el time.sleep() pero eso no me da los datos en tiempo real, así que quisiera saber si hay alguna forma de por ejemplo leer la primera línea del puerto serie y luego saltar 10 líneas y leer la que sigue y así sucesivamente.
Adjunto el código de momento y muchas gracias de antemano.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Importamos la libreira de PySerial y time
import serial, time
from time import localtime, strftime
 
# Crea un objeto de tipo serial llamado ser y a continuación se seleccionan los parámetros
ser = serial.Serial()
# Parámetros
ser.port = 'COM3'               # Ruta en la cual se conecta el micro
ser.baudrate = 115200           # Velocidad de transmisión que se configuró en él
ser.open()                      # Se abre el puerto
 
''' Se genera un archivo temporal llamado dht con el método append que nos
permite agregar nuevos datos a la lista el cual se designa con 'a' y por
ultimo la codificación utf-8 '''
 
# Crea un ciclo while que se repita indefinidamente
while(True):
    temp_file = open('data.txt', 'a', encoding = 'utf-8')
    line = ser.readline()          # Lee una línea de texto del puerto serie
    print(line)                 # Imprime esa línea
    temp_file.write(strftime("%d %b %Y %H:%M:%S ", localtime()))
    temp_file.write(line.decode())  # Agrega la línea al archivo de texto
    temp_file.close()
 
ser.close()                 # Se cierra el puerto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Escribir ciertas líneas de puerto serie ()

Publicado por tincopasan (888 intervenciones) el 28/06/2021 04:32:52
No lo probé, pero podrías intentar algo como:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cont=1
while True:
 
    temp_file = open('data.txt', 'a', encoding = 'utf-8')
 
    line = ser.readline()          # Lee una línea de texto del puerto serie
 
    print(line)                 # Imprime esa línea
 
    temp_file.write(strftime("%d %b %Y %H:%M:%S ", localtime()))
 
    if cont ==1 or cont% 10 == 0:
        temp_file.write(line.decode())  # Agrega la línea al archivo de texto
 
    cont+=1
    temp_file.close()
 
ser.close()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Escribir ciertas líneas de puerto serie ()

Publicado por anonymous (2 intervenciones) el 28/06/2021 04:45:36
Esa es la solución! Muchas gracias, me salvaste.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar