Seite 1 von 1

Daten aus Textfile über SPI versenden

Verfasst: Mittwoch 17. April 2019, 18:19
von pemozo
Hallo,

ich bin momentan dabei aus einem Textfile zu lesen. In diesem Textfile steht in jeder Zeile ein 16 bit word. Diese möchte ich mit Hilfe von pyftdi versenden. Jedoch habe ich das Problem, dass ich über die serielle Schnittstelle keine 16 bit versenden kann sondern nur 8 bit. Gibt es eine Möglichkeit die 16 bit zu splitten?
Ich muss noch erwähnen, dass ich die jeweiligen Zeilen in Integer umwandeln muss.

Code: Alles auswählen

 with open(filename2+".txt","r") as txtFile:
        lines = txtFile.readlines()[2:]
        ##integerLines = [int(x,0) for x in lines]
        ##integerLines = bytes(integerLines)
        integerLines = [int(x) for x in lines
Wäre für Tipps sehr dankbar.

Re: Daten aus Textfile über SPI versenden

Verfasst: Freitag 3. Mai 2019, 11:20
von heiner88
Den File binär einlesen: open(.... "rb").
Hier zwei Funktionen zum Wandeln:

(1024).to_bytes(2, byteorder='big') # or 'little'

int.from_bytes(b'\x00\x10', byteorder='big')

Re: Daten aus Textfile über SPI versenden

Verfasst: Freitag 3. Mai 2019, 11:29
von __blackjack__
@heiner88: Wenn es sich um eine Textdatei handelt, macht es eher weniger Sinn die als Binärdatei zu öffnen.

Re: Daten aus Textfile über SPI versenden

Verfasst: Freitag 3. Mai 2019, 12:05
von heiner88
"In diesem Textfile steht in jeder Zeile ein 16 bit word"

Re: Daten aus Textfile über SPI versenden

Verfasst: Freitag 3. Mai 2019, 12:10
von __deets__
@heiner88: Deine Glaskugel ist deutlich besser als unsere, wenn du weisst, wie das da steht. Du unterstellst binaere Repraesentation, womit das ein Widerspruch zur Aussage "Textfile" ist. Es kann genauso gut eine hexadezimal ascii codierte Zahl sein, oder irgendetwas anderes.

@pmeozo: kannst du uns mal einen Ausschnitt deiner Textdatei zeigen?

Re: Daten aus Textfile über SPI versenden

Verfasst: Freitag 3. Mai 2019, 12:17
von __blackjack__
@heiner88: In jeder *Zeile*, das kann also eigentlich nicht binär sein, sonst gäb's keine Zeilen und man bekäme auch Probleme wenn eine Zahl als Low- oder Highbyte ein Zeilenende-Zeichen wäre.

Re: Daten aus Textfile über SPI versenden

Verfasst: Freitag 3. Mai 2019, 12:41
von Sirius3
Ich vermute, dass in jeder Zeile eine Dezimalzahl im Bereich 0 bis 65535 oder -32768 bis +32767 steht. Die kann man dann mit einer der beiden Funktionen, die heiner77 gezeigt hat in zwei Bytes umwandeln, die dann über die serielle Schnittstelle versandt werden kann. Die Byteorder wäre da natürlich wichtig zu beachten.