-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Pr base station menu #12686
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
base: master
Are you sure you want to change the base?
Pr base station menu #12686
Conversation
@bkueng Beat can you look through this. I'm not super familiar with RTK, |
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.
Nice, having type-dependent options makes sense.
But ideally the manufacturer is determined automatically, as we already know it when connecting the device.
3d91333
to
c7a2991
Compare
I've updated the PR with a rebase including the latest QGC changes. |
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: |
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: |
FYI: I'm going to branch for QGC 5.0 RC next week. So if this wants to go into 5.0 it needs to hurry. |
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.
Thanks for the info!
I think everything's already good, I've added a version with enumeration for the baseMode and I tested this morning that the menu works well.
Here's a quick recap of the latest changes:
- baseMode use enum as suggested by bkueng
- Bitmask calculation moved in c++ file to avoid magic constant
Is this supposed to be working? I have a Ublox RTK which I plugged in. When I went to the page the manufacturer was set to all. |
That's very strange ... I have test again with an Ublox ZED F9P an the menu was detected. I've also checked that there's no inconsistency with regard to enumerations (0 = Standart, 1 = All). I have made a little improvement to the print pattern, with the latest changes can you :
I hope it will help to understand what is happening ! |
After discussion with another QGC user, the "manufacturer" reference may be misleading. He thought that this choice had an impact on the protocol used, whereas it's just a graphics option to hide some settings, so I changed it to "Settings displayed". I have tested this change. |
Do you have any news @DonLakeFlyer ? |
I'll get back to this once we get 5.0 out the door |
FYI, the pull request on PX4 have been merged 😃 My internship will end in 3 weeks, feel free to ask me questions, I could respond even after, but I will be easier for me to finish it before, |
What is the "Standard" selection? |
Standard is for settings implemented by all receivers. |
Ok, so what is the difference between Standard and All then? Why are both needed? |
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.
If this seems to create confusion, I have removed "standard" manufacturer.
"All" was to display all parameters (implemented or not for the current receiver), whereas "Standard" was used to display parameters that are implemented for all receivers.
This will guarantee the user that his settings will be taking into account whatever the receiver, for example, when the receiver manufacturer is not detected (but by default, it will use UBlox driver, so let's directly remove standard and use Ublox for this case)
Yeah, I think that makes more sense. |
@DonLakeFlyer Do you know if you can merge this PR ? Tory9 will be taking over these changes since it will be the end of my internship ! |
@DonLakeFlyer hi, can you pls let me know if we can merge this request |
"longDesc": "Specify the values for the RTK base position without having to do a survey in.", | ||
"type": "bool", | ||
"default": false, | ||
"name": "baseMode", |
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.
I don't get why this changed? It's still basically a boolean value with only 0 or 1 as valid. What was wrong with the way it was before. The problem with changing settings like this is that all user who have set this value will lose their specific setting when they upgrade without really knowing it.
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.
The idea was to change from book to enum to update in future code to add moving base
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.
OK, that's fine. But it should be done in a way that doesn't affect existing settings which may have been saved:
- Leave the
baseMode
name the same so you don't trash peoples existing settings - Change the
baseMode
json to useenumStrings/Values
and encode the values such that 0 and 1 mean the same thing as they did when the setting was a bool.
This way for existing users they are not affected.
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.
okay, thank you. i will implement the changes and tag you when its done (next week most probably)
This PR aim to develop base station menu and depend on this PR for GPS Driver
Description
### Explanation.
We use bit mask defined like this :
To restrict a parameters' visibility to U-Blox + Septentrio : (You can use either | or +)
If implemented by all manufacturer :
This parameter is always visible because it is implemented by everyone, but I think that specifying it each time avoids uncertainties such as, how compatible is this parameter with the receiver? Has the developer thought this through?
Don't hesitate to tell me what you think :)
To show parameters available for U-blox, set manufacturer to
_standard + _ublox
Manufacturer is set automatically when plugin a receiver.
Base station mode is now :
0 : Survey-in
1 : Fixed
This change is compatible with the 4 different drivers that use BaseSettingsType (base_station.h).
a) Base stations info is display by using PosGeodetic information.
b) Some parameters like Ublox min precision don't have an equivalent in Septentrio, here is a quick recap of with parameters is available or not :
Survey-in options don't have equivalents for Septentrio receivers.
Test Steps
I have followed this procedure and another intern (@duck) have done the same on another computer.
Edit the file src/GPS/CMakeLists.txt
To have
Instead of :
You can now build QGC using :
Do these steps for Survey-In, Set location
Test have been made on Ublox and Septentrio, I don't have the equipment to test other GPS systems but they should work has Ublox does.
Checklist:
Please let me know if I need to make any changes to this RP so that it can be accepted by the community, this would be my first PR 🥳
Ps: The automatic tests could fail because of the need to modify the Makefile, so I'm putting the PR in draft form and I'll come back to you once the PR for the GPS driver has been accepted.