-
Trying to recreate the GpsTutorial on F' v3 w/ Fpp ; by way of a mix of together the cross-compile (for getting on the RPi) and math demos (for the Fpp approach) with the old GpsApp in xml. Presently stuck where it looks like the Gps component function to parse the serial data coming across the UART (serialRecv_handler ) isn't receiving enough data to work with. I have repurposed the Gps component Tlm ports to route out debug info; it looks like serialRecv_handler is only ever seeing one buffer filled from the gpsSerial.serialRecv port (the Drv.LinuxSerialDriver instance connected to the UART), so it skips out at the I would think that was the same issue addressed in this discussion, but I thought the preamble function fulfilled the purpose of giving the UART multiple buffers to write to in order to create a complete message. So I think somehow my code isn't letting the UART fill those buffers or the serialRecv_handler is reading the buffers on every write rather than waiting for multiple buffers to fill. I'd appreciate any suggestions on where to look next. FWIW I'm running the GpsApp on the target RPi 4 (Raspbian 11) w/ the Adafruit Ultimate GPS FeatherWing attached via Pi Wedge; I can see the GPS strings w/ cat /dev/serial0 on the RPi, so I know that works. With other debug Fw::Logger messages to console I can see that the driver opened the port and that the preamble assigns the buffers. P.S. In retrospect I should have gone math demo, cross-compile, then RPi demo, then merged in Gps. So the code is a bit of a mashed up mess as I've pulled in RPi demo code to try debugging. I could back up and start again from scratch, but think that I just one one setting wrong somewhere. |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 6 replies
-
I think the GPS tutorial has made a bad assumption that it would receive a complete GPS frame per serial transaction. However, on newer PIs like the PI 4 the processing may out-pace the ability of the serial port to deliver. You'd should have some local storage in the Gps component that aggregates data. Then process the aggregated data once its size has passed 24. |
Beta Was this translation helpful? Give feedback.
-
@danjwait FYI, I just attempted to generate the build cache, using Also, if of interest to anyone, I'm running the aforementioned setup in an immutable virtual kasm development environment specifically for fprime development, which you can build and run locally from https://github.com/capsulecorplab/kasm-fprime-workspace/tree/install-cross-compile-toolchain-for-teensy |
Beta Was this translation helpful? Give feedback.
-
Sorry, first I'd typoed that pull request, it should be #1491 which is w/ the
Hope that helps a bit |
Beta Was this translation helpful? Give feedback.
I think the GPS tutorial has made a bad assumption that it would receive a complete GPS frame per serial transaction. However, on newer PIs like the PI 4 the processing may out-pace the ability of the serial port to deliver.
You'd should have some local storage in the Gps component that aggregates data. Then process the aggregated data once its size has passed 24.