Frage

Ich bin neu in Python und versuche, einige Werte von einem USB-Gerät über PyUSB zu lesen.Nun, es funktioniert jetzt, aber ich hatte einige Probleme: Beim Lesen von Daten vom Gerät benötigt PyUSB einen Endpunkt, von dem die Daten gelesen werden können.Dieser Endpunkt wird über einen Hex-Wert identifiziert.Wenn ich die Daten wie ... lese

dev.read('\x81', ...)

... Ich erhalte die Fehlermeldung "AttributeError: 'NoneType' Objekt hat kein Attribut 'bmAttributes'".Wenn ich die Daten wie ... lese

dev.read(0x81, ...)

... es funktioniert.

Meine einfache Frage lautet also: Was ist der Unterschied zwischen 0x81 und '\ x81'?

:-)

War es hilfreich?

Lösung

In Python 2.x ist '\x81' ein Bytestring, der aus einem einzelnen Byte mit dem Wert 129 besteht. Sie können ihn auch durch Aufrufen von chr(129) abrufen.

0x81 ist eine in Basis 16 geschriebene Ganzzahl mit dem Wert 129. Sie können sie auch erhalten, indem Sie einfach 129 schreiben.

Andere Tipps

\ x81 entspricht einem Unicode-Zeichen mit 81 Hex-Code, 0x81 ist ein gültiger Hexadezimalwert.

Der erste ist eine Zeichenfolge mit einem bestimmten Hex-Wert, der in die erste Zeichenposition gezwungen wird, der zweite ist eine Ganzzahl.

Anscheinend erwartet dieser API-Aufruf definitiv eine Ganzzahl.

0x81 sendet eine Hexadezimalzahl, nach der es fragt, während '\ x81' eine Zeichenfolge sendet.Deshalb funktioniert der zweite, hoffe, das hilft und ist genau das, was Sie gefragt haben :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top