Seite 1 von 1

String Problem mit py2exe

Verfasst: Montag 16. Februar 2009, 12:05
von benny
Hallo Zusammen,

ich versuche gerade eine serielle Schnittstelle wie folgt anzusprechen (code ist etwas verkürzt):

Code: Alles auswählen

ser = serial.Serial(...)
pos = berechnePosition() # Wert von 0-100 (integer)
msg = '\x01\x02\x03' + unichr(pos) # UnicodeDecodeError Fehlermeldung
ser.write(msg)
Das Funktioniert auch wunderbar - nur nicht mit py2exe. Dort bekomme ich eine Fehlermeldung:
UnicodeDecodeError('ascii','\x01\x02\x03', 0, 1, 'ordinal not in range(128))....
Aus anderen Beiträgen habe ich schon erfahren das py2exe nicht automatisch die encodings mit einbindet. Das habe nachgeholt - allerdings scheint das hier nicht das Problem gewesen zu sein.

Hat jemand eine Ahnung was es sein könnte, oder wie ich meinen seriellen String auch anders bauen könnte?

Danke im voraus!

Benny

Verfasst: Montag 16. Februar 2009, 12:24
von ms4py
Funktioniert vielleicht:

Code: Alles auswählen

msg = '\x01\x02\x03%d' % pos

Verfasst: Montag 16. Februar 2009, 12:49
von HWK
Schon versucht?

Code: Alles auswählen

msg = ('\x01\x02\x03' + unichr(pos)).encode('ascii')
MfG
HWK

Verfasst: Montag 16. Februar 2009, 12:59
von benny
HWK hat geschrieben:Schon versucht?

Code: Alles auswählen

msg = ('\x01\x02\x03' + unichr(pos)).encode('ascii')
MfG
HWK
jip, das wars :D

danke dir!

b.

Verfasst: Montag 16. Februar 2009, 22:06
von BlackJack
Und was bitte ist der *Sinn* davon hier *Unicode* zu verwenden!?

Code: Alles auswählen

message = '\x01\x02\x03' + chr(pos)
# oder
message = '\x01\x02\x03%c' % pos
Und der Kommentar mit Wert von 0-100 kann irgendwie nicht stimmen, weil man dabei keinen Fehler mit Unicode bekommen dürfte.