-
Notifications
You must be signed in to change notification settings - Fork 18.2k
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
AP_GPS_GSOF: Support GPS_RAW_DATA for external logging #25517
Comments
I would like to work on this issue. Please assign it to me. |
Thanks for assigning this issue to me. I am working on it. |
Great. Let me know if you get stuck or are ready for a review. |
Can you please provide me with some references or contexts about the AP_GPS library? |
The wiki is very brief: The main interface for GPS is here: https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_GPS/AP_GPS.h This library follows the frontend-backend split. Implementation that all GPS's follow is here: GSOF header file: GSOF implementation: For retrieving a parameter from the param server, you can do it like so:
Then, you need to write a validation function to ensure the user has not put a bogus value for the param, since param limits are not enforced: ardupilot/libraries/AP_GPS/AP_GPS_GSOF.cpp Line 363 in 2e5af08
For example, if a user sets GPS_RAW_DATA to a value of 99 , the validation helper should return false.
Next, write the implementation of the logger configuration message, similar to ardupilot/libraries/AP_GPS/AP_GPS_GSOF.cpp Line 164 in 2e5af08
The packet buffer structure was detailed on the initial issue description; seems like you can just hard code it as a Make sure to calculate the checksum AFTER populating the transaction number |
Is this still open? |
Yep! |
Hello, I was working on this issue, so I think the solution should follow as: -> Get the GPS_RAW_DATA and validate as you mentioned |
@Ryanf55 The second last hexadecimal is supposed to be checksum right? Since 0x3 is an ending tag following how binary commands were handled in |
The checksum is a uint8_t. We rely on natural overflow of the uint8_t for it to work. 0x264 larger than the max value of uint8_t. Also, the first 0x02 is also excluded. |
@Ryanf55 I have mostly done the work described in this ticket. But, I have been stuck in implementing the arming/disarming scenarios. I tried scanning through the source code for doing this but still couldn't find the right method to call. Could you help me out here, and point me in the right direction? (I am sorry for the delay, got involved in university work) |
Ah no worries, want to put what you have up for review in a pull request without the integration to arm/disarm? That's still quite useful, and could be merged after a review. |
Is there still room to contribute on this issue? @Ryanf55 |
@Ryanf55 Hello Sir I want to contribute in GSoC through your organization and needed the guidance for the same. |
Feature request
Is your feature request related to a problem? Please describe.
Right now, there is no way to enable the internal logging on the PX1 GNSS because the API is only available over the ethernet web UI. Internal logging is used for tech support to analyze system performance. Since PX1 has little flight hours on small fixed wing drones, this is particularly useful to have the ArduPilot community be able to supply logs.
Describe the solution you'd like
Describe alternatives you've considered
Connect laptop temporarily.
Platform
[ ] All
[ ] AntennaTracker
[ ] Copter
[ ] Plane
[ ] Rover
[ ] Submarine
Further details
The following binary data commands are what need to be sent for logging. There is no TransNumber, so just hard code these in the implementation file. If there is an ACK, parse the ACK.
Dependencies
The configuration ack/nack pattern from
gsof-49-50
branch needs to be merged in before there is ability to do configuration responses. This ticket could be done without acks, however it will need to be changed.The text was updated successfully, but these errors were encountered: