Ich kommuniziere mit einer Stromversorgung über RS232. Ich kann kein Problem kommunizieren, wenn ich zum Beispiel an:Der Versuch, eine String-Variable in der seriellen zu verwenden. In Python schreiben
port.write("\x31")
aber wenn stattdessen ich habe eine Zeichenfolge als eine Variable
teststring='"\\x31"'
(was druckt als "\ x31")
und Ich versuche:
port.write(teststring)
es sendet nicht den Befehl an die Versorgung. Ich habe versucht:
port.write(bytes(teststring,'utf-8'))
und
port.write(teststring.encode('utf-8'))
Aber es ist immer noch irgendwie nicht das gleiche wie das Senden nur den Text eingeben. Ich muss in der Lage sein, diese Variable zu ändern, also kann ich den Text nicht einfach einkodieren. Irgendwelche Hilfe wird geschätzt!
Kommentare unten unter Verwendung verwende ich nun eine ganze Zahl
testint = 31 und wenn ich drucke
chr (testint) I eine eine ungeradee Box mit 00 in der oberen Reihe und 1f in der GET Unterseite. Was ich jetzt tun muss, ist die 31 in 0x31 zu konvertieren, also kann ich chr (0x31) verwenden, was beim Drucken 1 ergibt. Hoffentlich wird der .write Befehl chr (0x31) genauso behandeln wie "\ x31"?
Wenn ich die Zeichenfolge erstellen, muss ich das Extra hinzufügen \ oder es gibt einen Fehler. Wenn ich Teststring auf den Bildschirm drucke, ist es nur "\ x30" – KBadgley
Exakt; Wenn Sie es richtig machen, sollte es "0" (das ist 0x30 in ASCII) drucken. Welchen Fehler bekommst du? –
Ich erstelle Teststring tatsächlich aus drei Strings. Einer, der so aussieht: '"\\ x' ', einer ist die Zahl und der letzte ist' ''. Wenn ich beim Erstellen der ersten Zeichenfolge die zweite \ abbringe, erhalte ich den Fehler "ungültige \ x-Escape". – KBadgley