-
-
Notifications
You must be signed in to change notification settings - Fork 520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix system discovery #1774
Fix system discovery #1774
Conversation
2137ee0
to
3d03fb0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be ok, however, in the future we should not even require any of this anymore as you can send out heartbeats to a remote port just from a MAVSDK server component without having to have a system as such.
Right, but what about client components that want to initiate the discovery? Are you saying that the client components should always listen and the server components should always broadcast? |
Presumably 🤔, but I'm sure you will find examples where that does not hold. |
It's just that I can imagine a system where the drone listens on some port, and the client connects to it. Somehow I actually believe that the client should always initiate the connection (opposite to what all mavlink implementations I've seen do, I know 😅 ). The drone could send a discovery heartbeat that the client would pickup, and then the client would initiate the connection. In other words, it would separate the discovery and the actual connection. Right now it is possible on the MAVSDK side, since the client can connect with One consequence of splitting discovery and connection is that the Or something like that 😅. |
For what it's worth: I'm all for separating discovery and connection, best with backwards compatibility. Yer something like that might work indeed. There are however a couple more dependencies from systems to mavsdk that would have to moved as well (e.g. timeout or call every handlers). |
Without this fix, MAVSDK has issues detecting more than one system (it seems like one
notify_on_discover
is lost, because one of the systems wasalways_connected
and is renamed when a new one is detected).This fix just clears the "fake system" when a new one is discovered, so that the new one triggers the discovery callback.