fprime
                                
                                
                                
                                    fprime copied to clipboard
                            
                            
                            
                        [ERROR: Port xml specification file Fw/Cmd/CmdPortAi.xml does not exist!] encountered while generating implementations following GPS tutorial
| F´ Version | v3.0.0 | 
| Affected Component | Gps | 
Problem Description
Encountered following error while attempting to generate implementations with fprime-util impl in the GpsApp/Gps directory while following the Coding Our Module section of the F´ GPS Tutorial
[~/fprime/GpsApp/Gps]$ fprime-util impl
[WARNING] Failed to find settings file: /home/kasm-user/fprime/GpsApp/settings.ini
[100%] Built target codegen
[100%] Generating ../../../Gps/GpsComponentImpl.hpp-template, ../../../Gps/GpsComponentImpl.cpp-template
Parsing Component Gps
Reading external dictionary /home/kasm-user/fprime/GpsApp/Gps/Commands.xml
Reading external dictionary /home/kasm-user/fprime/GpsApp/Gps/Telemetry.xml
Reading external dictionary /home/kasm-user/fprime/GpsApp/Gps/Events.xml
ERROR: Port xml specification file Fw/Cmd/CmdPortAi.xml does not exist!
make[3]: *** [GpsApp/Gps/CMakeFiles/GpsApp_Gps_impl.dir/build.make:74: ../Gps/GpsComponentImpl.hpp-template] Error 255
make[2]: *** [CMakeFiles/Makefile2:7331: GpsApp/Gps/CMakeFiles/GpsApp_Gps_impl.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:7338: GpsApp/Gps/CMakeFiles/GpsApp_Gps_impl.dir/rule] Error 2
make: *** [Makefile:2152: GpsApp_Gps_impl] Error 2
[ERROR] CMake erred with return code 2
How to Reproduce
(Optional): run following steps in kasm-fprime-workspace
- clone and checkout https://github.com/capsulecorplab/fprime/commit/3fd0d6cdd887492c38a16f2beb40eccc078e8766
 cdintoGpsApp/- generate build cache with 
fprime-util generate cdintoGps/- generate implementations with 
fprime-util impl 
Expected Behavior
Should generate GpsComponentImpl.cpp-template and GpsComponentImpl.hpp-template
We need to fix or abandon the GPS tutorial. My thoughts are to abandon it in favor of a single more verbose systems reference....but I'd appreciate input.
I haven't tested it with the hardware, but it's worth noting that the GpsApp on @danjwait's fprime fork seems to build fine. Assuming it works, perhaps we keep the GpsApp project files, but replace the tutorial? I was suggesting an I2C example in #1329.
I spoke too soon; @danjwait's GpsApp fork was building, but encounters a CMake Error after updating my dev environment with python packages installed from https://github.com/nasa/fprime/blob/v3.1.0/requirements.txt
@capsulecorplab Sorry, I've been away from this for awhile. I updated my master from the F' master to get started w 3.1.0 and made a new branch called GpsApp from that (I've moved the old one to branch 301_GpsApp). I had to make some updates on the active rate group config in instances.fpp per #1510 and that build and ran. I then updated per requirements.txt, purged, generated and build again; that all worked, and the app runs on the RPi but my GDS won't work (it's really weird, the browser opens and the app on the RPi shows connected, but the browser is completely blank).
I will keep at this a bit, but per @LeStarch I think community-wide we should develop a more in-depth systems reference. My GpsApp redo tutorial and files were more an experiment w/ some students here and shouldn't be used as an example other than maybe of what not to do. I'll stop working this discussion here and if I think I've got anything worth adding I'll post to #1403 and/or #1365
... more in-depth systems reference
This is currently under development! We expect to have something we can start showing towards end of summer or so.
Sorry for the delayed response on my end as well (recently got back from a long roadtrip)~ I updated my local dev environment with python packages as per the requirements.txt in fprime v3.1.1 release and checked out @danjwait's GpsApp branch at https://github.com/danjwait/fprime/commit/96f88973ac2a61e361a5c68e611d37c521b0a314 and was able to rerun fprime-util generate without encountering the ERROR: Port xml specification file Fw/Cmd/CmdPortAi.xml does not exist! error! However, running fprime-util impl in Gps/ isn't generating a GpsComponentImpl.cpp-template and GpsComponentImpl.hpp-template. Though, I do see a Gps.cpp-template and Gps.hpp-template.
Yes, the output names have been reworked for simplicity.  No more ComponentImpl
Okay~ So theoretically, if I rename Gps.cpp-template to Gps.cpp and Gps.hpp-template to Gps.hpp, it should compile with fprime-util build?
Yes. You'd need to update the make system too, as that CMakeList.txt points to the old naming. Keep in mind, these stubs are empty.
The GDS tutorial has been officially abandoned as it was never updated to run with FPP. Closing this issue.