
Hallo,
ich beschäftige mich seit kurzer Zeit etwas mit Python und lese nun Daten seriell von einem Gerät aus. Leider ist diese Schnittstelle nicht Zeichenorientier sondern es komme direkt die Messwerte im float Format über die Schnittstelle. Ich erhalte somit eine Zeichenkette die wie folgt aussieht: ['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
In C würde ich irgend sowas wie atoi versuchen anzuwenden aber in Python hab ich bisher nichts gefunden und hoffe nun dass mir jemand aus der Liste weiterhelfen kann?
Schon mal recht herzlichen Dank
Viele Grüße
Frank -- Bevor Sie diese E-Mail ausdrucken, überlegen Sie bitte, ob dies wirklich erforderlich ist. Please think before you print. -- WIKA Alexander Wiegand GmbH & Co. KG Alexander-Wiegand-Straße 30 - 63911 Klingenberg - Germany Kommanditgesellschaft: Sitz Klingenberg - Amtsgericht Aschaffenburg HRA 1819 Komplementärin: WIKA Alexander Wiegand Verwaltungs GmbH - Sitz Klingenberg - Amtsgericht Aschaffenburg HRB 306 Geschäftsführer: Alexander Wiegand Telefon: (09372) 132-0 Internet: www.wika.com

--On 20. Juni 2008 14:54:33 +0200 "Wagner, Frank" F.Wagner@wika.de wrote:
Hallo,
ich beschäftige mich seit kurzer Zeit etwas mit Python und lese nun Daten seriell von einem Gerät aus. Leider ist diese Schnittstelle nicht Zeichenorientier sondern es komme direkt die Messwerte im float Format über die Schnittstelle. Ich erhalte somit eine Zeichenkette die wie folgt aussieht: ['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
In C würde ich irgend sowas wie atoi versuchen anzuwenden aber in Python hab ich bisher nichts gefunden und hoffe nun dass mir jemand aus der Liste weiterhelfen kann?
Zuerst solltest Dir mal selbst im klaren werden, was für einen Datenmüll hier überhaupt bekommst und in welchem Format.
['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
sieht nicht nach etwas bekanntem aus...also lies bitte erstmal die Dokumentation von der Schnittstelle, die Du hier verwendest.
-aj

Andreas Jung wrote:
"Wagner, Frank" wrote:
ich beschäftige mich seit kurzer Zeit etwas mit Python und lese nun Daten seriell von einem Gerät aus. Leider ist diese Schnittstelle nicht Zeichenorientier sondern es komme direkt die Messwerte im float Format über die Schnittstelle. Ich erhalte somit eine Zeichenkette die wie folgt aussieht: ['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
In C würde ich irgend sowas wie atoi versuchen anzuwenden aber in Python hab ich bisher nichts gefunden und hoffe nun dass mir jemand aus der Liste weiterhelfen kann?
Zuerst solltest Dir mal selbst im klaren werden, was für einen Datenmüll hier überhaupt bekommst und in welchem Format.
['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
sieht nicht nach etwas bekanntem aus...also lies bitte erstmal die Dokumentation von der Schnittstelle, die Du hier verwendest.
Er schreibt doch, das seien floats.
Falls das zutrifft, dann funktioniert folgendes:
import struct struct.unpack('fff', '\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0')
(2.5375023778432188e-29, -4.2598690830326374e-22, -33991360512.0)
Falls es in Wirklichkeit etwas anderes ist, muss er halt den richtigen Format-String autüfteln. Das struct-Modul dürfte aber so oder so das angemessene Werkzeug sein.
-schorsch

--On 22. Juni 2008 04:11:36 -0400 Georg Mischler schorsch@schorsch.com wrote:
Andreas Jung wrote:
"Wagner, Frank" wrote:
ich beschäftige mich seit kurzer Zeit etwas mit Python und lese nun Daten seriell von einem Gerät aus. Leider ist diese Schnittstelle nicht Zeichenorientier sondern es komme direkt die Messwerte im float Format über die Schnittstelle. Ich erhalte somit eine Zeichenkette die wie folgt aussieht: ['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
In C würde ich irgend sowas wie atoi versuchen anzuwenden aber in Python hab ich bisher nichts gefunden und hoffe nun dass mir jemand aus der Liste weiterhelfen kann?
Zuerst solltest Dir mal selbst im klaren werden, was für einen Datenmüll hier überhaupt bekommst und in welchem Format.
['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
sieht nicht nach etwas bekanntem aus...also lies bitte erstmal die Dokumentation von der Schnittstelle, die Du hier verwendest.
Er schreibt doch, das seien floats.
Woran soll man erkennen das dies Floats sind und wie diese kodiert sind? Ohne weitere Kenntnis der Kodierung ist dies Datenmüll.
Andreas

Andreas Jung wrote:
Georg Mischler wrote:
Andreas Jung wrote:
"Wagner, Frank" wrote:
... es komme direkt die Messwerte im float Format über die Schnittstelle...
Zuerst solltest Dir mal selbst im klaren werden, was für einen Datenmüll hier überhaupt bekommst und in welchem Format.
Er schreibt doch, das seien floats.
Woran soll man erkennen das dies Floats sind...
Zuviele Monty Python-Filme geschaut? ;)
-schorsch

Wagner, Frank schrieb:
Hallo,
ich beschäftige mich seit kurzer Zeit etwas mit Python und lese nun Daten seriell von einem Gerät aus. Leider ist diese Schnittstelle nicht Zeichenorientier sondern es komme direkt die Messwerte im float Format über die Schnittstelle. Ich erhalte somit eine Zeichenkette die wie folgt aussieht: ['\xaa\xaa\x00\x10$\xbf\x00\x9c`A\xfd\xd0']
In C würde ich irgend sowas wie atoi versuchen anzuwenden aber in Python hab ich bisher nichts gefunden und hoffe nun dass mir jemand aus der Liste weiterhelfen kann?
Für so etwas benutzt man in Python das ``struct``-Modul.
Georg
participants (4)
-
Andreas Jung
-
Georg Brandl
-
Georg Mischler
-
Wagner, Frank