die SOAP Schnittstelle von IPS ist klasse und so einfach zu verwenden.
Love it!
Habe schon das ein oder andere damit für mich umgesetzt.
So habe ich z.B. ein Addin für mein Mediacenter geschrieben, das, sobald ein Video startet, die Lampe dimmt (Kinofeeling :p)
Jetzt suche ich aber ein Event, das bei Änderung einer Variablen triggert.
In der WSDL finde es nicht.
Trixi hatte ich mal probiert, fand ich aber erstmal komplizierter als die SOAP Schnittstelle selbst.
Mit C# ist das ja recht einfach.
Die IPS SOAP Schnittstelle ist aber so mächtig, dass man im Zweifel nicht das findet, was man sucht, obwohl sie schon recht gut sortiert und sprechend benamt ist.
Das SDK ist in Pascal.
Wenn ich das Pascal einiegrmaßen richtig verstehe, werden hier auch keine Events genutzt, sondern der Messagesink permananet ausgelsen.
Dann können ich aber auch ein Timerevent machen, das sekündlich schaut, ob eine Variable geändert wurde, das will ich nicht.
Doch, das ist event-getriggered. Der MessageReader kriegt nur per SOAP eine neue Nachricht, wenn in IPS was passiert. Ansonsten wartet er, bis was Neues kommt. Sieht man beim Debuggen schön.
Funktioniert wie bei Windows Messages. Wenn die Message über SOAP kommt löst du deine Aktion aus. Nichts einfacher als das. Dein Timer-Vorschlag hingegen ist sogenanntes Polling-Verfahren und sehr Rechenintensiv. Und zwar auch dann wenn nichts an den Variablen passiert.
Trixi gibt dir nen Callback wenn dir das lieber ist. Benutzt aber intern auch die resourcenschonende Messagesink.