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

Custom Component Questions #28

Closed
brhs17 opened this issue Mar 15, 2019 · 10 comments
Closed

Custom Component Questions #28

brhs17 opened this issue Mar 15, 2019 · 10 comments

Comments

@brhs17
Copy link

brhs17 commented Mar 15, 2019

I've started trying to make my own component based on the math tutorial component, but have gotten confused by the names of seemingly similar sections of code:
<enum name="MathOp">
<enum name="Operation">
<enum name="MathOperation">

Also, Is there a way to have components and ports two layers below Ref? I tried by putting a mod.mk file in the directory in Ref that had SUBDIRs = nextLayer, but this didn't work.

@brhs17
Copy link
Author

brhs17 commented Mar 15, 2019

Is there a list of tasks that need to be done to make a component? This would be very helpful so we could just work down the list instead of trying to get an implied list from the math tutorial.

@brhs17
Copy link
Author

brhs17 commented Mar 28, 2019

What do the 0 and 10 arguments mean here:
random10

@timcanham
Copy link
Collaborator

0 is the instance of the component if you have more than one (see the init() function of the component). For unit tests, it can always be 0, unless you do different things based on instance. The 10 is a command sequence number you can pick to make sure your code returns the correct one in the command response.

@Azlinkix
Copy link

Hi, I'm Sarah Sposato and I am also working on the math components tutorial.
I am running into an error with "make impl"

make: *** No rule to make target `impl'.  Stop.

All of the other steps have been somewhat successful.
I'm still assuming I am in Ref.
I don't see a makefile in Ref for implementation?

@rdaruwala
Copy link
Contributor

Hi Sarah -- You'll want to run make impl from within a component directory to generate the implementation files, not from general Ref application folder. Each component directory requires its own Makefile following the format specified in the tutorial.

@Azlinkix
Copy link

Ah I see. Thank you for explaining that!
So if the tutorial says "To generate a set of files for testing, from the module directory type: 'testcomp'---to me this is saying to go into fprime/Md (modules?)

I was getting a similiar "make: *** No rule to make target `testcomp'. Stop." So I figured I was in the wrong place?

@LeStarch
Copy link
Collaborator

LeStarch commented Apr 25, 2019

It is similar to the above comment. Running make impl and make testcomp both should be done in the directory of the Component, Port, or Topology you are working on. These are 'Modules'.

Assuming you put MathSender under 'Ref':

cd fprime/Ref/MathSender
make impl
make testcomp

We will update the tutorial to make it more clear.

@LeStarch
Copy link
Collaborator

Note: In order for these to run properly, the mk/config/modules/modules.mk must be updated to add the path Ref/MathSender and make gen_make should be rerun.

@timcanham
Copy link
Collaborator

Also note that since make impl and make testcomp are component specific targets, they only work in directories that have component XML.

@LeStarch
Copy link
Collaborator

LeStarch commented Sep 3, 2019

Last updated in April. Closing.

@LeStarch LeStarch closed this as completed Sep 3, 2019
r9-pena added a commit to r9-pena/fprime that referenced this issue Jul 21, 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

5 participants