-
-
Notifications
You must be signed in to change notification settings - Fork 510
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
Refactor MAVLinkParameters into client and server classes #1772
Conversation
The current state is that it compiles again and the tests seem to pass but now it needs simplifying and cleanup. |
67213a3
to
7541ec2
Compare
1402600
to
e970618
Compare
3ae028c
to
d459571
Compare
d459571
to
ba15d26
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.
Wow that's a big one, with quite some improvements! It depends on mavlink/MAVSDK-Proto#296, right?
Just a couple questions:
- Is that right that it is the responsibility of the drone to now have conflicting param names between components? It seems to me that we save them all together, so if a camera has a param called
MODE
and the autopilot also has it, then they will conflict. Correct? - What happens when
select_component
is called? Does that impact the params already in the queue, or only the new ones? Say I select the autopilot, set a param (which puts it on the worker queue), then select the camera to set another param. Am I guaranteed that the first param will be sent to the autopilot?
@JonasVautherin thanks for the review!
That's a good point I haven't thought about. Sounds like I ought to change it. Edit: I had a look and the client is per target component ID, so it has separate caches and it should not conflict if I have that right.
Good point. I need to check again what I did but better would definitely be if it only affects the new ones. I'll see if I can change it. Edit: yes, that's indeed how it works already. There are queues for all components in system_impl and when selecting the component, the next request will just go on another cache and queue instance. |
7139352
to
3ced488
Compare
This brings: - Support to provide parameters in components. - Get/set parameters for a specific component. - Both with normal as well as extendended parameters. Signed-off-by: Julian Oes <[email protected]> Co-authored-by: consti10 <[email protected]>
Signed-off-by: Julian Oes <[email protected]>
Except for the camera discovery where we use the subscription directly. Signed-off-by: Julian Oes <[email protected]>
Signed-off-by: Julian Oes <[email protected]>
Signed-off-by: Julian Oes <[email protected]>
Signed-off-by: Julian Oes <[email protected]>
48c74f2
to
6a39103
Compare
This splits the MAVLinkParameters class into MavlinkParameterClient and MavlinkParameterServer.
This brings:
Big thanks to @Consti10 for starting this work!