
Wertebereich! Klar!
Also hatte ich Recht! Das Problem war wieder genau so einfach! ;-)
Hab einfach schon zu lange nichts neues am EibPC programmiert. Ich gelobe Besserung....und schiebe gleich noch eine Frage hinterher...
Wie man aus dem obigen Code erahnen kann, wird das eine Rollo Anzeige/Steuerung. Funktioniert seit gestern Abend grundsätzlich auch einwandfrei.
Problem1 war noch den Rückgabewert der aktuellen Position vom Aktor (0-100%, also 0-255) für den peslider passend darzustellen. Ich muss ihn ja zum einen durch 2.55 dividieren, dann auf eine Ganzzahl runden (gibt es wirklich keinen Runden-Befehl im EibPC?) und dann noch auf f32 konvertieren. Das funktioniert auch sind aber bei mir 3 verschachtelte converts geworden. Ich hab den Eindruck, das geht auch eleganter. Wie würdet ihr das machen?
Problem2 ist noch immer, dass der peslider bei Bediehnung zwar den korrekten Wert auf den Bus schickt, dann die Anzeige aber sofort auf den alten Wert zurück springt. Ich geb ihm im Programm aber den neuen Wert mit. Der wird aber erst im nächsten Refresh des WebServers übernommen. Wie kann man das eleganter lösen?
Code dazu:
[highlight=epc]
Rollo13 = convert(2.55f32 * getpeslider(13,81),0u08)
if change(Rollo13) then write("EG Positionierung Wohnen N M L-3/5/29",Rollo13) endif
if change("EG Pos Rollo Wohnen N M L-3/2/29") then setpeslider(13,convert(convert((convert("EG Pos Rollo Wohnen N M L-3/2/29",0f32)/2.55f32)+0.5f32,0u08),0f32), BLIND, INACTIVE,81) endif
[/highlight]
Problem ist wohl, dass der Aktor die neue Pos natürlich erst schickt, wenn der Rollo auch die Pos erreicht hat.
Wenn ich aber
[highlight=epc]
if change(Rollo13) then setpeslider(13,convert(convert((convert("EG Pos Rollo Wohnen N M L-3/2/29",0f32)/2.55f32)+0.5f32,0u08),0f32), BLIND, INACTIVE,81) endif
[/highlight]
verwende, ändert sich der Slider nicht, wenn der Rollo von "außerhalb" des Webserver bedient wird.
Muss man einfach beide Zeilen im Code haben, damit er einerseits sofort aktualisiert wird, andererseit aber auch alle Änderungen mitbekommt?
Oder gibt es einen Trick, dass der Slider bei Betätigung auch automatisch den neuen Wert anzeigt, was ja eigentlich immer nötig ist und automatisch funktionieren sollte?!
Kommentar