Forside | Regler | Praktisk | Kom i gang | Til læreren | Historie | Billedgalleri

Sådan modtager I data over en seriel forbindelse

Hvis jeres data ankommer til en laptop-computer via USB-porten, skal I have et program kørende på computeren, som modtager disse data og gemmer dem i en fil.

Det frarådes på det kraftigste at bruge et terminalprogram til at modtage data, for typisk bliver data ikke gemt automatisk, og hvis man kommer til at lukke programmet, inden man har gemt, eller computeren f.eks. løber tør for strøm og lukker ned, mister man sine data.

Nedenstående python-program skal køres i en terminal. Det modtager data fra USB-porten, gemmer det i en fil, og skriver det ud i terminalen.

#!/usr/bin/env python3
import serial,datetime,os

port = '/dev/ttyUSB0' # F.eks. Linux og MacOS
#port = "COM3" # Windows

baudRate = 9600

ser = serial.Serial(port, baudRate)

f = open("serialdump.txt", "a+") # Filen, som data bliver gemt til

while True:
    s    = ser.readline()
    now  = str(datetime.datetime.now()) # Timestamp, der skrives til filen

    line = ""
    line += str(now) # Tilføj timestamp
    line += "," # Tilføj komma
    line = s.decode('utf-8').replace('\r\n','') # Fjern evt. overflødige linjeskift
    data  = s.decode(encoding='ascii',errors='ignore') # Dekod data
    line += data

    print(line.replace('\r\n','')) # Print til terminal - her fjernes også overflødige linjeskift
    f.write(line) # Sender data til bufferen til at skrive til filen
    f.flush() # Skriver det rent faktisk til filen

Hvis I kopierer koden ind i en fil, som I f.eks. kan kalde readserial.py, skal I køre den fra en terminal med kommandoen

python3 readserial.py
– og så skal I lige tjekke, om data nu også bliver skrevet til den fil, I har defineret.

 

   Dette website er lavet 100% uden kunstig intelligens.