Seite 1 von 1

Umwandeln von ASCII in Binärdaten

Verfasst: Freitag 3. September 2004, 11:11
von Loisel
Hallo,
ich bekomme je zwei byte über die ser. Schnittstelle von einem MC, diese Daten will ich nun um sie weiterverarbeiten zu können in binär oder int Zahlensysteme umwandeln.


import serial
import binascii

ser = serial.Serial(0)
s = ser.read(2)
print s
w = binascii.a2b_qp(s)

print s
print w
ser.close()

Ausgabe: 3x das gleiche ASCII Paar, habe bereits schon einige andere binascii Funktionen ausprobiert, müsste meines Erachtens mit der _qp Fkt. hinhauen.
Hat von euch jemand Erfahrungen mit dieser Thematik.
Wäre sehr dankbar.

Stefan

Verfasst: Freitag 3. September 2004, 13:31
von joerg
Vielleicht suchst Du sowas wie unpack() aus dem Modul struct?

HTH

Jörg

Verfasst: Freitag 3. September 2004, 13:37
von Dookie
Hi Stefan,

also erstmal print wandelt Typen vor der Ausgabe, wenn es nicht schon Strings sind in Strings um.

Code: Alles auswählen

print 12
ergibt die gleiche Ausgabe wie

Code: Alles auswählen

print "12"
zunächst ist mal interessant, was für Bytes du da bekommst, sind das die zeichen "1" und "2" oder "/x01" und "/x02" ?
im ersten fall ists einfach

Code: Alles auswählen

import serial


ser = serial.Serial(0)
s = ser.read(2)
print s
w = int(s)

print "s ist vom Type %s und hat den Wert %s" % (type(s), repr(s))
print "w ist vom Type %s und hat den Wert %s" % (type(w), repr(w))

ser.close()
im 2. Fall gehts so

Code: Alles auswählen

import serial

ser = serial.Serial(0)
s = ser.read(2)
print s
w = ord(s[0])*256+ord(s[1])

print "s ist vom Type %s und hat den Wert %s" % (type(s), repr(s))
print "w ist vom Type %s und hat den Wert %s" % (type(w), repr(w))

ser.close()
Gruß

Dookie

Verfasst: Samstag 4. September 2004, 11:22
von LOISEL
Also erstmal vielen Dank Dookie,
funktioniert einwandfrei. Ich glaube man muss mit dem Tutorial doch schon sehr vertraut sein, um sowas zu finden ;-)

Ich hab nochmal kurz ne Frage: weiss jemand ob es schon fertige Programmfragmente für Python gibt, die Werte über der Zeit auf einer Skala darstellen, (Schreiber --> siehe Excell oder so).

Melde mich aber nochmal, da ich die nächsten Tage leider andersweilig beschäftigt bin.

Dank im Vorraus


Stefan