Seite 1 von 1

Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 14:08
von pythonlooser
Hallo,

ich möchte ein Meßgerät über LAN ansteuern (automatische Messungen) und habe bisher folgendes:

Code: Alles auswählen

#http einbinden
import requests

#Variablen
server = "http://192.168.xxx.xxx/remote-access"
grundeinst = {'Setup.OutputFrequency': '12345’}

#einstellen
r = requests.get(server,params=grundeinst)
Das Teil stellt brav die Frequenz ein. :)

Jetzt will ich die Frequenz durch eine Variable ersetzen, zum z. B. eine Schleife zu programmieren.

Code: Alles auswählen

#Variablen
server = "http://192.168.xxx.xxx/remote-access"
frequency = 12345
grundeinst = {'Setup.OutputFrequency': 'FREQUENCY’}
An der GROẞ GESCHRIEBENEN Stelle soll also die Variable sitzen.

Bisher bin ich daran gescheitert, den String „grundeinst“ richtig zusammenzubauen.

Code: Alles auswählen

>>> grundeinst = "{'Setup.OutputFrequency': '"+str(frequency)+"'}"
>>> grundeinst
"{'Setup.OutputFrequency': '12345'}"
wird von „“ umschlossen – funktioniert nicht.

Code: Alles auswählen

>>> grundeinst = {'Setup.OutputFrequency': '+str(frequency)+'}
>>> grundeinst
{'Setup.OutputFrequency': '+str(frequency)+'}
übernimmt logischerweise die Variable nicht.

Wie geht das richtig?

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 14:18
von __deets__

Code: Alles auswählen

{'Setup.OutputFrequency': ' str(frequency)}
ist alles, was du brauchst.

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 14:55
von ThomasL
__deets__ hat geschrieben: Freitag 7. September 2018, 14:18

Code: Alles auswählen

{'Setup.OutputFrequency': ' str(frequency)}
ist alles, was du brauchst.
da ist noch ein Anführungszeichen zuviel

Code: Alles auswählen

{'Setup.OutputFrequency': str(frequency)}

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 14:59
von pythonlooser
danke, aber:

Code: Alles auswählen

    grundeinst = {'Setup.OutputFrequency': ' str(frequency)}
                                                           ^
SyntaxError: EOL while scanning string literal

edit:
@ThomasL - ebenso danke, jetzt funzt das ... :)

Code: Alles auswählen

Status: Ok, SetVariable: Setup.OutputFrequency, Value: 12345

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 15:03
von kbr
Nein, das öffnende ' vor str ist __deets__ dort versehentlich reingeraten.

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 15:15
von Sirius3
Das `str` ist überflüssig, das macht requests automatisch:

Code: Alles auswählen

grundeinst = {'Setup.OutputFrequency': frquency}

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 15:16
von ThomasL
kbr hat geschrieben: Freitag 7. September 2018, 15:03 Nein, das öffnende ' vor str ist __deets__ dort versehentlich reingeraten.
ich vermute mal eher er hat es auf die schnelle versehentlich übersehen beim löschen der anderen überflüssigen Zeichen
aber: das wieso weshalb warum ist doch sowas von egal, oder?
Sollte wohl klar sein, dass er nicht mit Absicht da einen Fehler reinpackt.

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 15:31
von __deets__
ThomasL hat geschrieben: Freitag 7. September 2018, 14:55 da ist noch ein Anführungszeichen zuviel
Ups. Danke!

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 15:41
von kbr
ThomasL hat geschrieben: Freitag 7. September 2018, 15:16 aber: das wieso weshalb warum ist doch sowas von egal, oder?
Sollte wohl klar sein, dass er nicht mit Absicht da einen Fehler reinpackt.
Das ist aus meiner Sicht eine Höflichkeitsfloskel, von der man gerade in Foren eher zu viel als zu wenig verwenden sollte.

Re: Meßgerät über LAN ansteuern – Stringproblem

Verfasst: Freitag 7. September 2018, 18:53
von pythonlooser
Sirius3 hat geschrieben: Freitag 7. September 2018, 15:15 das macht requests automatisch
Danke nochmal, das wußte ich nicht - und hab dazu auch keinen Hinweis gefunden.
Ich hab von Python bisher noch nicht viel Ahnung, hab ein paar alte Meßgeräte, die über ebenso alte Hard-/Software (Pentium 2, Win98, QBasic 4.5) angesteuert werden. Das neuere Gerät mit dem LAN-Interface hab ich da nicht dran gekriegt, außerdem wird die alte Hardware ohnehin irgendwann wegsterben, also hab ich mich nach einer Alternative umgesehen.
Und zunächst hab ich also einfach probiert, ob ich die Interfaces zum Leben erwecken und an die Geräte schreiben und von diesen lesen kann.
Das funktioniert ja jetzt, und nun muß ich mal anfangen, die Sprache zu lernen ...