by Anonymous » 20 Dec 2024, 22:56
Ich verwende die Falcon.NET KNX-Bibliothek für die Verbindung mit KNX-IP-Endpunkten in meinem Netzwerk. Das sind zwei davon, sie funktionieren einwandfrei und reagieren im Tunnelmodus (im Routingmodus funktionieren sie nicht).
Der Code, den ich zum Aufbau einer Verbindung verwende, ähnelt dem folgenden:< /p>
var options = new IpTunnelingConnectorParameters("192.168.30.5");
Mein Problem besteht darin, alle IP-Endpunkte aufzulisten. Ich verwende IpDeviceDiscovery.DiscoverAsync(). Sobald ich es aufrufe, kann ich über Wireshark erkennen, dass korrekte Anfragen und Antworten über Port 3761 (UDP) gehen. Alles funktioniert, und doch, wenn ich anrufe
var ipDiscovery = new IpDeviceDiscovery
{
Timeout = TimeSpan.FromSeconds(1)
};
var ipDeviceDiscoveryTask = ipDiscovery.DiscoverAsync(cancel);
var result = await ipDeviceDiscoveryTask.ToArray();
Die Ergebnisvariable hat 0 Elemente.
Nun, hier ist das Problem: Ich habe versucht, DiscoverAsync zu dekompilieren, aber es ist so verschleiert (ganz zu schweigen davon, dass es asynchron ist, daher kann ich nicht genau bestimmen, wo das Problem liegt. Ich weiß, dass die Schnittstellen vorhanden sind, ich verwende sie problemlos, aber aus irgendeinem unbekannten Grund werden sie nicht als Aufzählung zurückgegeben. Welches ist nervig.
Ich verwende die Falcon.NET KNX-Bibliothek für die Verbindung mit KNX-IP-Endpunkten in meinem Netzwerk. Das sind zwei davon, sie funktionieren einwandfrei und reagieren im Tunnelmodus (im Routingmodus funktionieren sie nicht).
Der Code, den ich zum Aufbau einer Verbindung verwende, ähnelt dem folgenden:< /p>
var options = new IpTunnelingConnectorParameters("192.168.30.5");
Mein Problem besteht darin, alle IP-Endpunkte aufzulisten. Ich verwende IpDeviceDiscovery.DiscoverAsync(). Sobald ich es aufrufe, kann ich über Wireshark erkennen, dass korrekte Anfragen und Antworten über Port 3761 (UDP) gehen. Alles funktioniert, und doch, wenn ich anrufe
var ipDiscovery = new IpDeviceDiscovery
{
Timeout = TimeSpan.FromSeconds(1)
};
var ipDeviceDiscoveryTask = ipDiscovery.DiscoverAsync(cancel);
var result = await ipDeviceDiscoveryTask.ToArray();
Die Ergebnisvariable hat 0 Elemente.
Nun, hier ist das Problem: Ich habe versucht, DiscoverAsync zu dekompilieren, aber es ist so verschleiert (ganz zu schweigen davon, dass es asynchron ist, daher kann ich nicht genau bestimmen, wo das Problem liegt. Ich weiß, dass die Schnittstellen vorhanden sind, ich verwende sie problemlos, aber aus irgendeinem unbekannten Grund werden sie nicht als Aufzählung zurückgegeben. Welches ist nervig.