html Werte zuweisen

Django, Flask, Bottle, WSGI, CGI…
Antworten
köttbullar
User
Beiträge: 34
Registriert: Donnerstag 6. August 2015, 19:23

Hallo Python Gemeinde,

Ich habe mir ein kleines Programm geschrieben mit dem ich per Klick meine SPS Ausgänge schalten kann.
die Buttons sind in der Form eines Bildes siehe hier der html code:

Code: Alles auswählen

<form action="test" method="post">
<input type="image" style="position: absolute; top:150px; left:150px;"
onmousedown=" window.location.href='{% url Firstfloor.views.v_start %}'" 
onmouseup=" window.location.href='{% url Firstfloor.views.v_stop %}'"
src="{{STATIC_URL}}Bilder/Ein.png";
></input>
</form>
die Funktionen sehen wie folgt aus:

Code: Alles auswählen

def v_start(request):
    print request.POST
    client = ModbusClient('192.168.0.202')
    client.write_coil(0, True)
    return render(request,'Firstfloor/index.html')

Code: Alles auswählen

def v_stop(request):
    print request.POST
    client = ModbusClient('192.168.0.202')
    client.write_coil(0, False)
    return render(request, 'Firstfloor/index.html')
nun würde ich gerne, dem html Tag Werte zuweisen, damit ich nachher weiß welchen Ausgang ich an der SPS schalten muss.
kann mir jemand sagen was ich falsch mache?

vielen Dank
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@köttbullar: Was soll denn das onmousedown und onmouseup? Die location per JavaScript zu ändern, ist sehr ungewöhnlich, das onmouseup dürfte doch nie erreicht werden. Wenn Du eine form benutzen willst, dann tu das. Da ist auch noch ein Strichpunkt zu viel.
köttbullar
User
Beiträge: 34
Registriert: Donnerstag 6. August 2015, 19:23

Ist im Prinzip ganz einfach, sobald ich auf den Button klicke wird an meiner SPS der AUsgang auf "1" gesetzt.
Wenn ich den Button loslasse, dann wird der Ausgang auf "0" gesetzt.
An meinem Ausgang habe ich nämlich einen elektronischen Dimmer angeschlossen. Je länger ich den Button drücke, umso heller bzw. Dunkler wird das Licht. Wenn ich nur einen kurzen Impuls drauf gebe, dann wird das Licht entweder eingeschaltet oder ausgeschaltet jenachdem.

wo ist ein Strichpunkt zuviel?

ich würde nun gerne dies etwas besser programmieren da ich ca. 20 Buttons habe und ich diese nicht per Copy Paste einsetzten will sondern mithilfe einer Schleife. Deshalb sollte ich nun wissen wie ich dem onmouseup und onmousedown werte übergeben kann
wenn ich den Button1 drücken dann soll Serverseitig Button1 übertragen werden wenn ich den Button2 betätige, dann soll Serverseitig Button2 übertragen werden usw. ich hoffe, das war einigermaßen verständlich ausgedrückt.

vielleicht hat aber jemand eine ganz andere Idee.
würde mich über viele Ideen freuen :-)
BlackJack

@köttbullar: Das geht so aber nicht mit einem <form>. Wenn Dein `onmousedown` ausgeführt wird, führt der Code darin dazu das eine neue HTML-Seite geladen wird, womit es dann das <form> nicht mehr gibt und Du da folglich auch nicht mehr auf ein `onmouseup` reagieren kannst. Das würde man wohl besser mit JavaScript und AJAX lösen, ohne das da etwas neu geladen werden muss im Browser
köttbullar
User
Beiträge: 34
Registriert: Donnerstag 6. August 2015, 19:23

wie würde das dann mit Ajax aussehen?
Antworten