Skip to content
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

Errors Issue #32

Closed
brhs17 opened this issue Mar 28, 2019 · 37 comments
Closed

Errors Issue #32

brhs17 opened this issue Mar 28, 2019 · 37 comments

Comments

@brhs17
Copy link

brhs17 commented Mar 28, 2019

I am working on the testing section of my CLEMOps component, and I get this error when I try to run make ut. I haven't started working on the tests themselves, but I think I have everything setup, including the blank testing functions.
https://github.com/brhs17/fprime/tree/MOpAgg
makeUTCLEMOps

@brhs17 brhs17 changed the title General Errors Issue Errors Issue Mar 28, 2019
@timcanham
Copy link
Collaborator

Whenever you get the "cannot declare .... abstract type", it means that a pure virtual function from the base class has not been implemented. You need to make sure all the pure virtual functions, which are handlers, in the base class are implemented in your derived testing class.

@brhs17
Copy link
Author

brhs17 commented Mar 30, 2019

I don't know how to do that, both the handlers in my ComponentImpl.cpp file look implemented. The error tells me that the OPS_Get_Data_cmdHandler in ComponentAc.hpp is not implemented, but I don't know where I'm supposed to write that, or really what the code needs to do.
I'm trying to compare to the equivalent command in Math but I can't find any differences.

@timcanham
Copy link
Collaborator

timcanham commented Mar 31, 2019

You write the function in the ComponentImpl.cpp. A similar command handler can be found here:

https://github.com/nasa/fprime/blob/master/docs/Tutorials/MathComponent/MathSender/MathSenderComponentImpl.cpp#L76

The make impl target creates empty command handlers for you that you can copy to your implementation file.

@brhs17
Copy link
Author

brhs17 commented Mar 31, 2019

What did I do wrong in my implementation?
OpsGetDatacmdHandler
error

@timcanham
Copy link
Collaborator

timcanham commented Mar 31, 2019

Looks like virtual is OPS, yours is Ops. You have to get the spelling exactly right. That's why the make impl is helpful, because it will get the spelling right.

@brhs17
Copy link
Author

brhs17 commented Mar 31, 2019

ok, I just needed to run the impl command to make new files and copy and paste everything.

@timcanham
Copy link
Collaborator

I've been using Fprime for a while now, and that's how I do it. Avoids errors like this.

@brhs17
Copy link
Author

brhs17 commented Apr 1, 2019

I'm getting a bunch of undefined Reference errors, what should I be looking for to fix them?
undefinedReference

@timcanham
Copy link
Collaborator

Check the mod.mk for the unit test. The TEST_MODS variable should have any modules your component relies on for testing.

@brhs17
Copy link
Author

brhs17 commented Apr 2, 2019

I'm not sure where this error came from, I'm not even sure how its related to something I write:
paramValid valid

@timcanham
Copy link
Collaborator

The Fw::ParamValid type is used to see if parameters successfully loaded. If you haven't defined any parameters in your XML, the headers to define it aren't included. If you added some parameters and then removed them all, you could see this error.

@brhs17
Copy link
Author

brhs17 commented Apr 2, 2019

What should I do to fix these warnings?
bunchOfWarnings

@brhs17
Copy link
Author

brhs17 commented Apr 3, 2019

I'm working on the topology and getting an error I don't understand at all:
topologyError

@LeStarch
Copy link
Collaborator

LeStarch commented Apr 4, 2019

Your constructor is expecting a name when you declare the component. Try something like this:

Ref::CLEAggComponentImpl CLEAgg("CLE Agg");

F´ allows you to name components in the system, which helps when looking at system tasks that are kicked-off from a component. You can disable this feature if you would like, but I would recommend keeping it as it can be useful.

@LeStarch
Copy link
Collaborator

LeStarch commented Apr 4, 2019

In response to your noted warnings 2 comments ago: these warnings occur when the order you define your member variables in the *.hpp are in a different order than the order in which you initialize them in the initializer list in the *.cpp.

The best way to fix those warnings is to go through your *.hpp in and list all declared members in-order of declaration from top to bottom. Then go through the initializer list in th *.cpp and reorder it to match.

@brhs17
Copy link
Author

brhs17 commented Apr 16, 2019

I'm trying to run the ground system with my new components in addition to the math components and am getting this error, which is strange because the math components worked before.
TryingToRunError

@rdaruwala
Copy link
Contributor

Make sure to run make dict_install before opening your GUI application

@LeStarch
Copy link
Collaborator

Right, if you do not build with make rebuild you need to ensure you run make dict_install since the dictionaries can get out-of-date, or cleared.

@brhs17
Copy link
Author

brhs17 commented Apr 21, 2019

I have my components mostly working, but I get this error whenever I try to use them that seems to be related to the text they are supposed to return somewhere, however, the error message seems to be completely void of any identifying information of where is it coming from. The Ref Application window displays everything as expected, but nothing shows up in the Log Events tab, which is bad.
OperationalError

@rdaruwala
Copy link
Contributor

rdaruwala commented Apr 21, 2019

This looks like the exact same error you encountered in #22. The fix will likely be along the same lines. Check the XML file to make sure you're passing in the right types of arguments in the right order

@brhs17
Copy link
Author

brhs17 commented Apr 21, 2019

Ok, so I seemed to have fixed it by changing something to want an integer instead of a float, but this seems super confusing because a string is mentioned in the error message. Also, why did it not get autocasted since getting an integer and converting it to a float doesn't lose precision.

@timcanham
Copy link
Collaborator

This is a ground software side issue that we need to fix to give a better error message. As @rdaruwala says, it indicates a mismatch between the format specifiers in the event/telemetry message and the actual type of the argument.

@Azlinkix
Copy link

Azlinkix commented May 3, 2019

Hi,

I'm running into a similar issue with the make ut command except the error is:

Screen Shot 2019-05-03 at 3 49 28 AM

@Azlinkix
Copy link

Azlinkix commented May 3, 2019

Running the following command "make ut run_ut" returns the same error.

Running "make ut run_ut cov" returns a similar error:

Screen Shot 2019-05-03 at 3 55 44 AM

Any suggestions on how I might move forward?

@timcanham
Copy link
Collaborator

timcanham commented May 3, 2019

It looks like main() isn't defined anywhere in your test files. Do you have this file in your unit test mod.mk?

https://github.com/nasa/fprime/blob/master/docs/Tutorials/MathComponent/MathSender/test/ut/main.cpp

make ut run_ut is just a concatenation of make ut and make run_ut, so you would get the same error.

@Azlinkix
Copy link

Azlinkix commented May 7, 2019

Thanks for the tip--turns out I missed a file.

Almost done with the tutorial!

One (hopefully last) question:

Screen Shot 2019-05-07 at 12 07 01 AM

I got alot of syntax errors? Or all of these are unititated? I looked at the reference files under Ref > Docs> Tutorials > MathTutorials and my files are the same.

Any suggestions or needed clarifications?

@brianthespoon
Copy link

brianthespoon commented May 7, 2019 via email

@timcanham
Copy link
Collaborator

For m_factor`` and m_factor1s`, make sure they are declared as private data members of your class:

      // stored factor1
      F32 m_factor1;
      // number of times factor1 has been written
      U32 m_factor1s;

See https://github.com/nasa/fprime/blob/master/docs/Tutorials/MathComponent/MathReceiver/MathReceiverComponentImpl.hpp#L101.

The header file is missing from the tutorial and should be added in. We have added it to #25.

@timcanham
Copy link
Collaborator

The uninitialized variable warning looks genuine. Maybe you are using a new compiler that checks for it. We'll add a fix to the tutorial, but in the meantime just initialize the variables where you declare them.

@brh68
Copy link

brh68 commented Jun 8, 2019

I am trying to add two components the the RPI topology, and keep getting this error:
ExternDoesNotNameAType
I am mostly worried about why aggregator isn't working because RTCComponent doesn't compile yet.

@timcanham
Copy link
Collaborator

It seems like there could be a typo in the name or namespace. Is this on a branch somewhere?

@brh68
Copy link

brh68 commented Jun 11, 2019

I'm trying to run a modified version of Ref, but I get some fatal 342 error after everything opens up, but before doing anything.
fatal342

@LeStarch
Copy link
Collaborator

It looks like you need to increase the configuration for the command dispatcher.

In Fw/Cfg/AcConstants.ini, what is the line "CmdDispatcherComponentCommandPorts" set to?

CmdDispatcherComponentCommandPorts  =       30

Is it 30 like above?

@LeStarch
Copy link
Collaborator

This may also be an issue in your Topology. In Your Topology Ai file, you should look for lines with the cmdDisp where the number at the end is 100, or 101. You need to keep these numbers sequential.

         <target component = "cmdDisp" port = "compCmdReg" type = "CmdReg" num = "11"/>

@brh68
Copy link

brh68 commented Jun 12, 2019

Thank you, changing the cmdDisp numbers to be sequential fixed the problem.

@LeStarch
Copy link
Collaborator

If you have more than 30 components connected to the cmdDisp, you need to increase the above config.

@LeStarch
Copy link
Collaborator

LeStarch commented Mar 3, 2020

I am closing this issue, as I see no updates. Please feel free to continue discussion on our mailing list: https://groups.google.com/forum/#!forum/fprime-community

Or open a new issue if you detect a new bug.

@LeStarch LeStarch closed this as completed Mar 3, 2020
r9-pena added a commit to r9-pena/fprime that referenced this issue Jul 23, 2021
LeStarch pushed a commit that referenced this issue Aug 4, 2021
* Create tutorial-support.yml

* Update tutorial-support.yml

GpsApp tutorial to be pulled for build test and submodules to be pulled recursively

* Implementation of tutorial workflow

* typo in repo address

* Added missing github action file

* Changed workflow path

* Changed dir paths

* Work around for workflow

* work around

* troubleshooting

* troubleshoot

* troubleshoot

* Performance update

* Path correction

* troubleshoot

* Dockerfile correction

* path change

* path change

* path fix

* path fix

* path fix

* path fix

* paht fix

* Revert to changes

* Completed workflow for tutorial support

* troubleshoot

* Build path error

* Optimization of workflow

* Path fix

* Path fix

* Path fix #1

* path fix #2

* path check

* Workflow test

* Workflow test #2

* Added logging feature

* Logs Troubleshoot

* Typo fix

* Troubleshoot #1

* Troubleshoot #2

* Corrected typo on path

* Troubleshoot #3

* Troubleshoot #4

* Troubleshoot #5

* Removed log archive feature

* Changed repo path to conform pull request merge

* Test run #1

* test #2

* test #3

* added branch for workflow test

* test #4

* test #4

* test #5

* test #6

* Test #7

* test #8

* test #8

* Test #9

* Test #9

* Test #10

* Test #11

* Test #12

* Test #13

* Test #14

* Test #15

* Test #16

* Test #17

* Test #18

* Test #20

* Test #21

* Test #22

* Test #23

* Test #24

* Test #25

* Split test files

* Split tests #2

* Added executable permissions

* Delete RPI.bash

* Delete Ref.bash

* Delete Framework.bash

* exe files

* Make Framework.bash executable

* Make RPI.bash and Ref.bash executable

* Test #26

* Test #27

* Test #28

* Attached Integration test to Ref test

* Test #29

* Test #30

* Test #31

* Test #32

* Test #33

* Test #34

* Test #35

* Test #35

* Test #37

* Test #38

* Test #39

* Test #40

* Test #41

* Test #42

* Test #43

* Test #43

* Test #44

* Test #45

* Cleaned up files to remove commented code

* Remove CI test branch from workflow

* Incorporated comments for PR

* Modified path for framework job test

* Incoporate reviewer comment for PR

* Incoporated reviewer comment for PR

* Was using incorrect directory for the test

* Revised args call for jobs

* Passing args #1

* Define entrypoint directly from workflow

* Changed entrypoint method

* Changed entrypoint method #2

* Corrected test path

* Syntax correction

* Path Test #1

* Path test #2

* Path Test #4

* Path Test $5

* Test Path #6

* Path Test #6

* Path Test #7

* Path Test #8

* Refactored scripts to remove master.bash

* Corrected test path

* Fixed log problems

* Entrypoint alternative

* Bypassed master.bash file

* Added line for better CI error messages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants