Hab angefangen mich ein wenig in die Calimero KNX Lin für Java einzuarbeiten. Bin aber auf ein kleines Problemchen gestoßen dass ich gerade nicht gelöst bekomme:
Ich möchte mit Calimero eine PA in ein Gerät schreiben. Die passende Klasse und Methode habe ich gefunden (ManagementClientImpl#writeAddress())
Problem ist aber: Ich habe einen IP-Router als Zugang zum Bus. Und diesen möchte ich gerne im Routing-Modus belassen. Calimero sagt in seiner JavaDoc Doku aber:
Die writeAddress() Methode würde normalerweise blockieren bis der Vorgang abgeschlossen ist. Aber im Routing-Modus blockiert da in der Tat wie es in der Doku steht nix. Ich hätte aber gerne den blockierenden Fall, nur eben im Routing-Modus.
Mein ETS kann aber mit dem IP-Router in Routing-Modus "blockierend" eine PA programmieren.
Also muss es einen Weg geben.
Ich nehme an ich muss auf diverse Antwortnachrichten warten/filtern...
Hat das schon mal jemand gemacht oder muss ich mich selbst durch den Wald von Klassen und Events wühlen und "reverse engineeren" auf was ich tatsächlich hören/warten muss?!
Oder gibt's einen anderen, einfacheren Weg?
Gruß
Alex
Ich möchte mit Calimero eine PA in ein Gerät schreiben. Die passende Klasse und Methode habe ich gefunden (ManagementClientImpl#writeAddress())
Problem ist aber: Ich habe einen IP-Router als Zugang zum Bus. Und diesen möchte ich gerne im Routing-Modus belassen. Calimero sagt in seiner JavaDoc Doku aber:
If KNXnet/IP routing is used as base protocol, the send methods with wait for confirmation behave equally like without wait specified, since routing is an unconfirmed protocol. This implies that no confirmation frames are generated, thus NetworkLinkListener.confirmation(FrameEvent) is not used.
Mein ETS kann aber mit dem IP-Router in Routing-Modus "blockierend" eine PA programmieren.
Also muss es einen Weg geben.
Ich nehme an ich muss auf diverse Antwortnachrichten warten/filtern...
Hat das schon mal jemand gemacht oder muss ich mich selbst durch den Wald von Klassen und Events wühlen und "reverse engineeren" auf was ich tatsächlich hören/warten muss?!
Oder gibt's einen anderen, einfacheren Weg?
Gruß
Alex
Kommentar