GithubHelp home page GithubHelp logo

nasa / fprime Goto Github PK

View Code? Open in Web Editor NEW
9.9K 262.0 1.3K 370.27 MB

F´ - A flight software and embedded systems framework

Home Page: https://nasa.github.io/fprime

License: Apache License 2.0

Shell 0.31% Python 21.12% C++ 67.50% C 1.50% CMake 6.71% Fortran 2.86%
flight-software embedded-systems nasa cpp spaceflight real-time raspberry-pi object-oriented-programming components framework

fprime's Introduction


A Flight-Proven, Multi-Platform, Open-Source Flight Software Framework

F´ (F Prime) is a component-driven framework that enables rapid development and deployment of spaceflight and other embedded software applications. Originally developed at the Jet Propulsion Laboratory, F´ has been successfully deployed on several space applications. It is tailored but not limited to small-scale spaceflight systems such as CubeSats, SmallSats, and instruments.

Please Visit the F´ Website: https://nasa.github.io/fprime for more information.

What does F´ provide

  • An architecture that decomposes flight software into discrete components with well-defined interfaces
  • A C++ framework that provides core capabilities such as message queues and threads
  • Modeling tools for specifying components and connections and automatically generating code
  • A growing collection of ready-to-use components
  • Testing tools for testing flight software at the unit and integration levels.

Learn more about F' key features here.

System Requirements

  1. Linux, Windows with WSL, or macOS operating system
  2. git
  3. CMake 3.16+. CLI tool must be available on the system path.
  4. CLang or GNU C and C++ compilers (e.g. gcc and g++)
  5. Python 3.8+, virtual environments, and PIP

Getting Started

To get started with F´, install the F´ bootstrapping tool with:

pip install fprime-bootstrap

Then, create a new project with:

fprime-bootstrap project

See the HelloWorld Tutorial to guide you through all the steps of developing an F´ project.

New users are encouraged to read through the User Guide and explore the other tutorials.

Getting Help

Discussions

To ask questions, discuss improvements, and ask for help please use the project's GitHub Discussions.

Bug reports

To report bugs and issues, open an issue here.

Community

The F´ Community GitHub Organization contains third party contributions, more documentation of flight software development, and additional resources.

Resources

Release Notes

The version history and artifacts associated with the project can be found at Releases.

fprime's People

Contributors

acxz avatar anirban166 avatar astroesteban avatar billallen256 avatar bocchino avatar brian-campuzano avatar csmith608 avatar eltociear avatar genemerewether avatar hunterpaulson avatar jhdeerin avatar johanbertrand avatar joshua-anderson avatar jsoref avatar jweadick avatar jwest115 avatar kemyt avatar kevin-f-ortega avatar lestarch avatar ljreder avatar matzipan avatar rdaruwala avatar rohandkn avatar saba-ja avatar smorettini avatar thibfrgsgmz avatar thnkslprpt avatar thomas-bc avatar tiffany1618 avatar timcanham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fprime's Issues

F Prime Initialization - CMake and Sample Application Start up Problems

Hello,

We are just starting f Prime exploration. In order to do so, the first steps were to download f prime on Windows and Linux machines to be compiled. I have not been able to build/ compile the program yet. Requesting your feedback in the following scenarios.

Windows Problem(s)

  1. Downloaded fPrime master branch using Eclipse which created fprime-sw project:
    Error 1 a - Console Output:
    01:20:38 **** Build of configuration Default for project fprime-sw **** make gen_make all Generating templates make[1]: Entering directory '/c/Users/git/fprime/Autocoders/Python/src/fprime_ac/generators/templates/component' make[1]: /bin/cheetah-compile: Command not found /bin/cheetah-compile cpp.tmpl make[1]: *** [cpp.py] Error 127 make[1]: Leaving directory '/c/Users/git/fprime/Autocoders/Python/src/fprime_ac/generators/templates/component' make: *** [compile-templates] Error 2 "make gen_make all" terminated with exit code 2. Build might be incomplete.
    Error 1 b:
    Download also created a 'MagicDrawCompPlugin' project that leads to the following error when built:
    package gov.nasa.jpl.componentaction;
    The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files.

  2. CMake on Cygwin Error:

cmake ../Ref/
CMakeLists.txt:27 (message):
[F-PRIME] No platform config for 'Windows'. Please create:
'C:/cygwin/home/fprime/cmake/platform/Windows.cmake'

Call Stack (most recent call first):
C:/cygwin/home/fprime/cmake/FPrime.cmake:28 (include)
CMakeLists.txt:32 (include)

  1. Sample Application Error on Cygwin

~/fprime/Ref $ make gen_make Generating templates make[1]: Entering directory '/c/cygwin/home/fprime/Autocoders/Python/src/fprime_ac/generators/templates/component' /bin/cheetah-compile cpp.tmpl make[1]: /bin/cheetah-compile: Command not found make[1]: *** [cpp.py] Error 127 make[1]: Leaving directory '/c/cygwin/home/fprime/Autocoders/Python/src/fprime_ac/generators/templates/component' make: *** [compile-templates] Error 2

Linux Problem(s)

  1. Cmake Error on Linux:

cmake ../Ref/ -- The C compiler identification is GNU 4.4.7 -- The CXX compiler identification is GNU 4.4.7 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- F' core directory set to: /home/mas0047/fprime/fprime/cmake/.. -- [VALIDATION] Running: python;/home/mas0047/fprime/fprime/cmake/support/validation/pipsetup.py enum34 is missing. Markdown is missing. Traceback (most recent call last): File "/home/mas0047/fprime/fprime/cmake/support/validation/pipsetup.py", line 40, in <module> sys.exit(0 if validate_python_setup() else 1) File "/home/mas0047/fprime/fprime/cmake/support/validation/pipsetup.py", line 35, in validate_python_setup except pkg_resources.RequirementParseError: AttributeError: 'module' object has no attribute 'RequirementParseError' CMake Error at /home/mas0047/fprime/fprime/cmake/support/validation/Validation.cmake:38 (message): [VALIDATION] Validation failed for: python;/home/mas0047/fprime/fprime/cmake/support/validation/pipsetup.py Call Stack (most recent call first): /home/mas0047/fprime/fprime/cmake/support/validation/Validation.cmake:52 (setup_validation_command) /home/mas0047/fprime/fprime/cmake/FPrime.cmake:23 (include) CMakeLists.txt:32 (include)

  1. Sample Application Error on Linux:

make gen_make all Generating templates make[1]: Entering directory '/fprime/fprime/Autocoders/Python/src/fprime_ac/generators/templates/component' cheetah-compile cpp.tmpl make[1]: cheetah-compile: Command not found make[1]: *** [cpp.py] Error 127 make[1]: Leaving directory '/fprime/fprime/Autocoders/Python/src/fprime_ac/generators/templates/component' /fprime/fprime/mk/makefiles/templates.mk:3: recipe for target 'compile-templates' failed make: [compile-templates] Error 2


May I request feedback on any of the aforementioned errors to get the sample application running (Windows or Linux)?

Thanks!

Fprime on FreeRTOS

I wanted to know whether fprime is compatible with FreeRTOS operating system.
If so, is there any tutorial or reference guide on how to integrate and use fprime with FreeRTOS ?

Development-Process.md / issue

Hello,
I am trying to set up a port using the directions found at: https://github.com/fprime-community/fprime-course-materials/blob/master/Flight_Software_Workshop-June_2019/Development-Process.md
However, I am having difficulties once I arrive to step 7 (in the port directory: make to autocode the port).

I am getting an error that "status" was not declared in the scope (screenshots of the error are attached below). I have talked to a couple of my teammates and they have had the same issue. Does anyone have any ideas what I should do to fix the problem? Thank you!

VirtualBox_AnjaCisLunar_24_06_2019_19_41_20
VirtualBox_AnjaCisLunar_24_06_2019_19_41_36

build errors using make gen_make

I am having trouble with a gps component we are trying to create, the make gen_make command is providing an error that I cannot figure out. This is the error obtained:
makeGenError

My code does not even reference the svc directory so I am not really sure how to fix that.

Here is the makefile for it:
makefilePhoto

implgen.py error

When I was trying to run implgen.py to generate a template for a port, it gave me an error like this:

"ERROR: Invalid XML found...this format not supported"

This error message is hard to understand, could it be changed to something more helpful, like implgen.py is not used to generate templates for ports, but rather for components

PYTHONPATH Commands Required

In order to run Implgen.py a Python path needs to be defined in order to find python files to run.

Ex:

export PYTHONPATH="~/fprime/Fw/Python/src:~/fprime/Autocoders/Python/src/"
~/fprime/Python/bin/implgen.py -b ~/fprime

Setting fprime as an upstream branch for our repo

Hello, we forked the F Prime repository a while back in order to create our repository and want to merge our repo with all of the edits since then. How can we set the original f prime repo as an upstream branch and which branch should we rebase with? Is it reasonably unlikely that if we rebase with the newest updates it would cause breaking changes?

GDS/GSE - Python version and required libraries on Ubuntu 16

Good morning,

Quick questions on Python version/ libraries to run gds/gse starting from the sample application:

  • Which version of Python do you recommend on Ubuntu esp. for wxPython and Numpy/ Scipy?

(Issues:

  1. For v 2.7, a required library 'numpy' does not install saying it is geared to 3.5+.
  2. If 3.5/3.7+ are installed and used instead, several 'print' commands fail because those are geared to 2.7 with no parenthesis '( )'. Even after fixing files for parenthesis, Python 3.7 failed.

)

  • Exactly which scripts need run prior to running the sample application or the Ground Data System in general? The options are in 'fprime/mk/python':

  • pip_required_gds.txt

  • pip_required_gse.txt

  • pip_required_scripts.txt

  • wxPython.sh

  • Are all these aforementioned scripts need run prior to launching the sample application through: 'Ref/scripts/run_ref.sh'


We have been able to make the application successfully but now there is a road block with the GDS starting from the sample application due to Python versioning and libraries. Would highly appreciate any feedback!

Thanks!

Error when issuing 'make rebuild' in Math Component Tutorial

When trying to build the MathSender component, I keep running into the same error when issuing the make rebuild command within the Ref directory. I have check the mod.mk file in the configs/modules folder and tried rearranging the module order under REF_MODULES :=\. Any help is appreciated.

fprime error

Failed Add/Sub operation test after make run_ut

After running make run_ut, I receive the following unit test results

failed test after make run_ut

I tried rerunning the code after copying the MathSender files from the Tutorial folder into my own directory but get the same failed results.

MagicDraw18 SP6 on Windows velocity runtime failure

Hello,

We are running the fprime magicDraw plugin on MagicDraw18 SP6 Windows. We installed the JPL plugin and got the Component Autocoder to appear on toolbar. However when pressing Auto Generate Component/Port/Topology XML we get the following error:

screen shot 2019-02-02 at 1 12 37 pm

All of the XML files in AutoXML are generated but empty. Have you seen this issue before? What do you suggest we do next?

Any help is greatly appreciated. Thank you!

Opcode encryption and verification

Hello,

Does the fprime communication framework provide any built-in encryption of commands sent from the ground station in order to ensure that no malicious attackers could send opcodes to our satellite? Additionally, are there any systems in place in order to prevent spurious commands from being accidentally read in by fprime and sent as an opcode?

Best,
A

Remove cygwin configs

We have users who keep trying to use cygwin, which is broken, so we should take out the config files.

Port with Return Type Not Autocoded Correctly

I am trying to make a port that has a return type, and have put the return type in the port definition XML. However, when I make a component that uses this port and should return a value, the impl files are generated with the associated function having a return type of void. This causes the compile error below when I rebuild, and makes sense since there doesn't seem to be a way signify a return type in component XML.
ReturnTypeMismatchError
Do I have to manually chance the return types of the Impl files, or is there something else I can do to fix this through the autocoder?

Environment Variable and Argument Redundancy

BUILD_ROOT required as environment variable and command arguments

Ex:

export PYTHONPATH="~/fprime/Fw/Python/src:~/fprime/Autocoders/Python/src/"
BUILD_ROOT=~/fprime ~/fprime/Python/bin/implgen.py -b ~/fprime

Porting Guide for New Platforms

Setting up a deployment for a random Linuxy target is pretty reasonable, and going to Raspberry Pi is an example so Linux cross-compile is also doable.

The advanced usage of putting F Prime deployments on new platforms is not so obvious. Whether the platform is a small OS like FreeRTOS or BeRTOS, or the target is bare metal such as a PIC, MSP430, or AVR 8-Bit platform; some things under the hood need to be adjusted.

Can a guide for this be created? Some things of note include writing a Main.cpp (#75) for your platform, parts of the OSAL that might (or might not) need implementation, and the collection of cmake files that need special attention.

Problem when make at the end in the Ref folder

HI,

I have this error when I tried to make at the end of the math tutorial in the Ref folder. Every module are built with no errors but when it is time to make the Ref folder, I get this mistake. I tried to make my own components and I got the same errors. Could you please guide me?

I copied exactly every files from the Tutorial folder so there shouldn't be any problem.

Linking binary...
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/linux-linux-x86-debug-gnu-bin/libRefMathSender.a(MathSenderComponentAc.o): In function `Ref::MathSenderComponentBase::set_mathOut_OutputPort(int, Ref::InputMathOpPort*)':
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/MathSenderComponentAc.cpp:116: undefined reference to `Ref::OutputMathOpPort::addCallPort(Ref::InputMathOpPort*)'
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/linux-linux-x86-debug-gnu-bin/libRefMathSender.a(MathSenderComponentAc.o): In function `Ref::MathSenderComponentBase::MathSenderComponentBase(char const*)':
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/MathSenderComponentAc.cpp:281: undefined reference to `Ref::InputMathResultPort::InputMathResultPort()'
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/MathSenderComponentAc.cpp:281: undefined reference to `Ref::OutputMathOpPort::OutputMathOpPort()'
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/linux-linux-x86-debug-gnu-bin/libRefMathSender.a(MathSenderComponentAc.o): In function `Ref::MathSenderComponentBase::init(int, int)':
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/MathSenderComponentAc.cpp:313: undefined reference to `Ref::InputMathResultPort::addCallComp(Fw::PassiveComponentBase*, void (*)(Fw::PassiveComponentBase*, int, float))'
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/linux-linux-x86-debug-gnu-bin/libRefMathSender.a(MathSenderComponentAc.o): In function `Ref::MathSenderComponentBase::mathOut_out(int, float, float, Ref::MathOperation)':
/home/nathan/dev/fprime_math/fprime/Ref/MathSender/MathSenderComponentAc.cpp:542: undefined reference to `Ref::OutputMathOpPort::invoke(float, float, Ref::MathOperation)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/linux-linux-x86-debug-gnu-bin/libRefMathReceiver.a(MathReceiverComponentImpl.o): In function `Ref::MathReceiverComponentImpl::mathIn_handler(int, float, float, Ref::MathOperation)':
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:73: undefined reference to `Ref::MathOp::MathOp()'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:77: undefined reference to `Ref::MathOp::setop(Ref::Operation)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:81: undefined reference to `Ref::MathOp::setop(Ref::Operation)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:85: undefined reference to `Ref::MathOp::setop(Ref::Operation)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:89: undefined reference to `Ref::MathOp::setop(Ref::Operation)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:99: undefined reference to `Ref::MathOp::setval1(float)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:100: undefined reference to `Ref::MathOp::setval2(float)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:101: undefined reference to `Ref::MathOp::setresult(float)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentImpl.cpp:102: undefined reference to `Ref::MathOp::MathOp(Ref::MathOp const&)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/linux-linux-x86-debug-gnu-bin/libRefMathReceiver.a(MathReceiverComponentImpl.o): In function `Ref::MathOp::~MathOp()':
/home/nathan/dev/fprime_math/fprime/Ref/MathTypes/MathOpSerializableAc.hpp:32: undefined reference to `vtable for Ref::MathOp'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/linux-linux-x86-debug-gnu-bin/libRefMathReceiver.a(MathReceiverComponentAc.o): In function `Ref::MathReceiverComponentBase::set_mathOut_OutputPort(int, Ref::InputMathResultPort*)':
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentAc.cpp:124: undefined reference to `Ref::OutputMathResultPort::addCallPort(Ref::InputMathResultPort*)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/linux-linux-x86-debug-gnu-bin/libRefMathReceiver.a(MathReceiverComponentAc.o): In function `Ref::MathReceiverComponentBase::MathReceiverComponentBase(char const*)':
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentAc.cpp:382: undefined reference to `Ref::InputMathOpPort::InputMathOpPort()'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentAc.cpp:382: undefined reference to `Ref::OutputMathResultPort::OutputMathResultPort()'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/linux-linux-x86-debug-gnu-bin/libRefMathReceiver.a(MathReceiverComponentAc.o): In function `Ref::MathReceiverComponentBase::init(int, int)':
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentAc.cpp:417: undefined reference to `Ref::InputMathOpPort::addCallComp(Fw::PassiveComponentBase*, void (*)(Fw::PassiveComponentBase*, int, float, float, Ref::MathOperation))'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/linux-linux-x86-debug-gnu-bin/libRefMathReceiver.a(MathReceiverComponentAc.o): In function `Ref::MathReceiverComponentBase::mathOut_out(int, float)':
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentAc.cpp:718: undefined reference to `Ref::OutputMathResultPort::invoke(float)'
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/linux-linux-x86-debug-gnu-bin/libRefMathReceiver.a(MathReceiverComponentAc.o): In function `Ref::MathReceiverComponentBase::log_ACTIVITY_HI_MR_OPERATION_PERFORMED(Ref::MathOp)':
/home/nathan/dev/fprime_math/fprime/Ref/MathReceiver/MathReceiverComponentAc.cpp:1676: undefined reference to `Ref::MathOp::toString(Fw::StringBase&) const'
collect2: error: ld returned 1 exit status
/home/nathan/dev/fprime_math/fprime/mk/makefiles/Makefile:63: recipe for target '/home/nathan/dev/fprime_math/fprime/Ref/linux-linux-x86-debug-gnu-bin/Ref' failed
make[1]: *** [/home/nathan/dev/fprime_math/fprime/Ref/linux-linux-x86-debug-gnu-bin/Ref] Error 1
make[1]: Leaving directory '/home/nathan/dev/fprime_math/fprime/Ref'
Command exited with non-zero status 2
Build Time: 0:01.84
/home/nathan/dev/fprime_math/fprime/mk/makefiles/deployment_makefile.mk:48: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2

Issue with using Fw::Buffer

I am getting some issues when using a U8 array with the Fw::Buffer. It says that it cannot convert from U8 to U64. I thought that Fw::Buffer would be a buffer of bytes and therefore should use U8, additionally this seems to be the way that @timcanham uses it in the RobotArm tutorial for the i2c component, so I assume there's a way to use it this way. Here's a screenshot of the error and my fork is at https://github.com/aaronbuchwald/fprime on the branch i2c-driver.

Issue with installations for RPI Demo

Hi,

I'm trying to do the RPI demo, but I ran into problems with installation.

When I ran ./mk/os-pkg/ubuntu-packages.sh it works until it throws the error that it cannot locate libc-i386. I think this is the reason that the next two installations fail the first time.

For the first one:
sudo pip install -r mk/python/pip_required_build.txt

I am getting the error
/bin/sh: 1: xslt-config: not found multiple times

And then later it says to make sure that the development packages of libxml2 and libxslt are installed.

I'm also getting the error that the Python.h and libxml/xpath.h files are not included.

To fix this, I used apt-get to get what was missing.

sudo apt-get install python-dev
sudo apt-get install python-lxml

This allows sudo pip install -r mk/python/pip_required_build.txt to run to completion with no errors.

For the second one, mk/python/pip_required_gui.txt the requirements file simply does not exist, so I guess the README should be updated or an empty text file added so that it doesn't throw an error when installing and requirements can be added later if anything becomes necessary for the gui.

Now when I run
make rebuild_rpi
It results in the warning that I I don't have the c version of NameMapper installed each time the make command tries to use the cheetah compiler.
Then the error that:
/usr/bin/time: not found
terminates the make command.

I did this:
which time
This is unable to find the time, which means that running ubuntu_packages.sh (which should have installed it) must not have successfully installed time for some reason. I ran this directly from the command line doing:
sudo apt-get install time.
After this I was able to successfully run make rebuild_rpi.

Does anyone know why the ubuntu_packages.sh file is not able to locate libc6-i386? I ran sudo apt-get install libc6-i386 and it gave me the same error that it couldn't find it, which I think was the cause of other dependencies failing to install and the rest of the problems. Is libc6-i386 necessary for some other reason?

make impl Command Not Recognized

My name is Benjamin and I am a new member on Cornell Cislunar Explorers. I have been working thorough the math component tutorial, and at step 2.4.1 I cannot get the make impl command to create any stubs.

I run the command in the Ref/MathSender directory, and get the result:

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

I built the component without any problems, and have failed to find anything like misnamed files.

Tutorial Updates

This issue is to track issues found while others are working their way through the tutorial.

Linux Error with CmuApp demo

This a question referencing the CmuApp created with Michael Starch and Sofia Hurtado in December.

In linux only, we're having a problem with making CmuApp. When making Ref, everything works fine. When making CmuApp, we get the following error (and a list of similar ones all tied to undefined reference to Drv::DataBuffer):
/home/raewynd/lunar_robotics/fprimed/fprime/Drv/BlockDriver/BlockDriverComponentAc.cpp:1022: undefined reference to `Drv::DataBuffer::DataBuffer()'
The only difference we could find in CmuApp that varied from Ref was that RateCounterComponentAi.xml was created as 'active' in CmuApp while SignalGenComponentAi.xml was created as 'queued' in Ref. So when we changed that, we got the following error (which is expected given it's now queued):
/home/raewynd/lunar_robotics/fprimed/fprime/CmuApp/Top/Topology.cpp:266:17: error: ‘class CmuApp::RateCounterComponentImpl’ has no member named ‘start’
'passive' results in:
RateCounterComponentAi.xml: Command RateCounter_report cannot be async with a passive component

Since queued and passive don't seem to have a compilation error in Drv/BlockDriver and Drv/DataBuffer, we're assuming the problem lies in it being declared as 'active'. We would like to create this as an 'active' component. Is there any precedent for active not working in Linux and any good fix? We do plan on using the same code across linux and mac if possible, but if we can only use one, it would be linux as eventually this will be running on FreeRTOS.

Any help would be greatly appreciated.

How to make ut_raspian_cross work

Hello,

I am trying to make an I2C component for the raspberry pi and am not sure how to make/compile the unit test to go on the pi. I am following the directions here: https://github.com/fprime-community/fprime-course-materials/blob/master/Flight_Software_Workshop-June_2019/F-Prime-Command-Cheat-Sheet.md
However, this simply says that I need to add the two lines for ut_raspian_cross and ut_raspian_cross_clean, but this results in an exception that says: no rule to make target.

Best,
A

Binary Linking Error

What might be the reason that "make ac_lvl1 ac_lvl2 ac_lvl3 ac_lvl4 " runs to completion but "make all" fails with a lot of "undefined reference to xxx" errors?

For more specific details:

  1. We wrote a HelloWorld App which is very similar to MathComponent and its config in modules.mk is as follows:
HELLOWORLD_MODULES := \
	HelloWorld/Top \
	HelloWorld/HelloTypes \
	HelloWorld/HelloPorts \
	HelloWorld/RecvBuffApp \
	HelloWorld/SendBuffApp \
	HelloWorld/SignalGen \
	HelloWorld/PingReceiver \
	HelloWorld/HelloSender \
	HelloWorld/HelloReceiver
	
HelloWorld_MODULES := \
	\
	$(HELLOWORLD_MODULES) \
	\
	$(SVC_MODULES) \
	\
	$(DEMO_DRV_MODULES) \
	\
	$(FW_MODULES) \
	\
	$(OS_MODULES) \
	\
	$(CFDP_MODULES) \
  	\
  	$(UTILS_MODULES)
  1. All libraries compiled successfully and all individual components passes the unit tests. But upon 'make all', the components seem to have trouble linking to the definitions of ports and types.
  2. Error message:
    error.log

Sample Application make Command Error

Hello,

OS: Cygwin, all Python packages installed, make gen_make completed with no errors.

While running 'make' command after 'make gen_make' for sample application in Ref directory, we encountered the following error:

mkdir -p /home/Saidah/fprime/Os/Posix/linux-cygwin-x86-debug-gnu-bin
/usr/bin/g++ -DASSERT_FILE_ID=0xC2E71506 -MMD -MP -MF/home/Saidah/fprime/Os/Posix/linux-cygwin-x86-debug-gnu-bin/Mutex.d -g3 -DTGT_OS_TYPE_LINUX -DISF -DBUILD_CYGWIN -Wall -Wextra -fno-builtin -fno-asm -fstrength-reduce -Wno-unused-parameter -Wno-long-long -fcheck-new -Wnon-virtual-dtor -m32 -I/home/Saidah/fprime/Fw/Types/Linux -I/home/Saidah/fprime -I/home/Saidah/fprime/gtest/include -I/home/Saidah/fprime/gtest -fno-rtti -I/home/Saidah/fprime/Os/Posix/ -c -o /home/Saidah/fprime/Os/Posix/linux-cygwin-x86-debug-gnu-bin/Mutex.o /home/Saidah/fprime/Os/Posix/Mutex.cpp
mkdir -p /home/Saidah/fprime/Os/Linux/linux-cygwin-x86-debug-gnu-bin
/home/Saidah/fprime/Os/Posix/Mutex.cpp: In constructor ‘Os::Mutex::Mutex()’:
/home/Saidah/fprime/Os/Posix/Mutex.cpp:23:52: error: ‘PTHREAD_PRIO_INHERIT’ was not declared in this scope
stat = pthread_mutexattr_setprotocol(&attr,PTHREAD_PRIO_INHERIT);
^~~~~~~~~~~~~~~~~~~~
/home/Saidah/fprime/Os/Posix/Mutex.cpp:23:52: note: suggested alternative: ‘PTHREAD_ONCE_INIT’
stat = pthread_mutexattr_setprotocol(&attr,PTHREAD_PRIO_INHERIT);
^~~~~~~~~~~~~~~~~~~~
PTHREAD_ONCE_INIT
make[1]: *** [/home/Saidah/fprime/mk/makefiles/bin_targets.mk:5758: /home/Saidah/fprime/Os/Posix/linux-cygwin-x86-debug-gnu-bin/Mutex.o] Error 1
make[1]: *** Waiting for unfinished jobs....

/usr/bin/g++ -DASSERT_FILE_ID=0x22ABA4FB -MMD -MP -MF/home/Saidah/fprime/Os/Linux/linux-cygwin-x86-debug-gnu-bin/FileSystem.d -g3 -DTGT_OS_TYPE_LINUX -DISF -DBUILD_CYGWIN -Wall -Wextra -fno-builtin -fno-asm -fstrength-reduce -Wno-unused-parameter -Wno-long-long -fcheck-new -Wnon-virtual-dtor -m32 -I/home/Saidah/fprime/Fw/Types/Linux -I/home/Saidah/fprime -I/home/Saidah/fprime/gtest/include -I/home/Saidah/fprime/gtest -fno-rtti -I/home/Saidah/fprime/Os/Linux/ -c -o /home/Saidah/fprime/Os/Linux/linux-cygwin-x86-debug-gnu-bin/FileSystem.o /home/Saidah/fprime/Os/Linux/FileSystem.cpp
make[1]: Leaving directory '/home/Saidah/fprime/Ref'
Command exited with non-zero status 2


May I request your feedback on what steps would lead to a successful compilation avoiding this error?

Thanks!

Errors Issue

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

Custom Component Questions

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.

Ref app in master branch is not building on Mac OSX Mojave

I attempted to clone the master branch and build on my new MAC running Mojave. It looks like the Mac is missing an ssl library. When making the Ref app I get this at the end:

Linking binary...
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [/Users/reder/Documents/Workspace/FP2/fprime/Ref/darwin-darwin-x86-debug-llvm-bin/Ref] Error 1
5.72 real 11.34 user 6.30 sys
make: *** [DARWIN] Error 2

Also it appears the Make system is not setting the PYTHONPATH for the autocoder.

MagicDraw errors when opening demo project: ISFRefApplication.mdxml

We are trying to generate XML's using the Autocoder MagicDraw plugin for the Ref example project.

When opening the demo project located in https://github.com/nasa/fprime/blob/master/Autocoders/MagicDrawCompPlugin/Demos/ISFRefApplication.mdxml

We get the following messages and here are the steps we took:

1. Missing PingPortModule.mdxml
missing ping

For the missing PingPortModule.mdxml, we manually selected the file located at https://github.com/nasa/fprime/tree/master/Svc/Ping

2. Missing CmdSequencerModule.mdxml
missing cmdsquencer

For this missing file, we could only find the file CmdSequencerComponent.mdxml here: https://github.com/nasa/fprime/tree/master/Svc/CmdSequencer. So we manually select this file.

3. The project opens. But when we try generating the xml's through Component Autocoder -> Auto Generate Component/Port/Topology XML. We get the following type error. (Note: there are also errors involving two connections, highlighted in red on the right.)
image

When we expanded out this component, we saw that the type field was blank, which was the reason for the error.
image

We also noticed that there was also an error with the BlockDriver module as well, with the Interrupt port having no data type, which again causes an error.
image

Do you have any fixes for these missing type errors? Or are we happen to be using the wrong project file for generating XML's for the Ref application? We tried using the topology XML's found in Ref with Autocoder with no luck (unknown error when generating port xml's).

Thank you very much for your help.

Connecting RPI to server port

Hello,

I am trying to connect the RPI to my linux machine and I am running into a strange bug. I was running the run_rpi_cross.sh file on the linux machine and it was booting up and launching the GUI, but then when I ran the RPI binary on the raspberry pi it gives me the message that it has connected to the server on port 50000, but the linux machine itself does not recognize or acknowledge the connection. I tried running the RPI file without it running on the linux machine and it still gives me the message that it has connected to the linux machine. Any idea why this is occurring or if this is a bug?

RPI Demo ./runBoth.sh

I am having an issue running the runBoth.sh file after compiling the RPI demo.

I have made the RPI demo successfully, and am now trying to run the script runBoth.sh in the RPI directory. However, this is giving me the following error:

./scripts/run_pi.sh: 31: ./scripts/run_pi.sh: Syntax error: end of file unexpected (expected "fi")

And then the program just hangs and does not terminate. I looked at the run_pi.sh file and could not find the problem. Any ideas what I should do to fix the script or if I may have installed something incorrectly setting up?

Issue when running runBoth.sh

I have successfully ran make rebuild_rpi but am running into issues when trying to launch the program itself with ./runBoth.sh.
Photo with runBoth issue.
Any help is appreciated, currently running on RPI 3b+ with Raspian 4.14 (Debian Stretch)

make impl not generating template files

I am trying to implement a component in FPrime by following the getting started tutorial. I have made the Ai.xml, Events.xml, Makefile, and mod.mk. Currently, I am trying to generate implementation templates. Running make impl results in the following console output:

Generating implementation template for DrvLinuxI2CDriver
make[1]: Entering directory '/home/ubnl-fprime/fprime/Drv/LinuxI2CDriver'
cd /home/ubnl-fprime/fprime/Drv/LinuxI2CDriver && /usr/bin/python /home/ubnl-fprime/fprime/Autocoders/bin/codegen.py --build_root -t 
Usage: /home/ubnl-fprime/fprime/Autocoders/bin/codegen.py [options] xml_filename
make[1]: Leaving directory '/home/ubnl-fprime/fprime/Drv/LinuxI2CDriver'
Build Time: 0:00.69

No templates are generated. My Makefile and mod.mk are shown below.

Makefile:

MODULE_DIR = Drv/LinuxI2CDriver
MODULE = $(subst /,,$(MODULE_DIR))

BUILD_ROOT ?= $(subst /$(MODULE_DIR),,$(CURDIR))
export BUILD_ROOT

include $(BUILD_ROOT)/mk/makefiles/module_targets.mk

mod.mk:

SRC = LinuxI2CDriverComponentAi.xml \
#	  LinuxI2CDriverComponentImpl.cpp

#HDR = LinuxI2CDriverComponentImpl.hpp

make command cannot import cheetah

Every time I attempt to build the demo, the make command fails to import cheetah. make gen_make executed successfully. Cheetah is also installed. Any ideas?

$ make
make[1]: Entering directory '/home/Ryan/fprime/Ref'
cd /home/Ryan/fprime/Fw/Buffer && mkdir -p /home/Ryan/fprime/Fw/Buffer/ac_dep && /usr/bin/python /home/Ryan/fprime/Autocoders/bin/codegen.py --build_root --default_topology_dict --dict_dir Dict BufferSerializableAi.xml --dependency-file /home/Ryan/fprime/Fw/Buffer/ac_dep/BufferSerializableAi.dep
Traceback (most recent call last):
  File "/home/Ryan/fprime/Autocoders/bin/codegen.py", line 49, in <module>
    from generators import GenFactory
  File "/home/Ryan/fprime/Autocoders/src/generators/GenFactory.py", line 28, in <module>
    from visitors import ComponentCppVisitor
  File "/home/Ryan/fprime/Autocoders/src/generators/visitors/ComponentCppVisitor.py", line 16, in <module>
    from generators.templates.component import cpp
  File "/home/Ryan/fprime/Autocoders/src/generators/templates/component/cpp.py", line 18, in <module>
    from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
ImportError: No module named Cheetah.Version
make[1]: *** [/home/Ryan/fprime/mk/makefiles/ac_targets.mk:1849: /home/Ryan/fprime/Fw/Buffer/BufferSerializableAc.cpp] Error 1
make[1]: Leaving directory '/home/Ryan/fprime/Ref'
Command exited with non-zero status 2
Build Time: 0:02.71
make: *** [/home/Ryan/fprime/mk/makefiles/deployment_makefile.mk:33: ac_lvl4] Error 2

Ground GUI crashed after invalid commands

Submitted invalid command to ground station html gui, and the following crash happened:

[2019-09-21 19:50:46,178] ERROR in app: Exception on /commands/cmdDisp.CMD_TEST_CMD_1 [PUT]
Traceback (most recent call last):
  File "/Users/fprime-venv/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/fprime-venv/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/fprime-venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 458, in wrapper
    resp = resource(*args, **kwargs)
  File "/Users/fprime-venv/lib/python3.7/site-packages/flask/views.py", line 89, in view
    return self.dispatch_request(*args, **kwargs)
  File "/Users/fprime-venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 573, in dispatch_request
    resp = meth(*args, **kwargs)
  File "/Users/Documents/fprime/Gds/src/fprime_gds/flask/commands.py", line 97, in put
    self.sender.send_command(cmd_name_dict[command].opcode, arg_list)
  File "/Users/Documents/fprime/Gds/src/fprime_gds/common/pipeline/standard.py", line 217, in send_command```
    cmd_data = fprime_gds.common.data_types.cmd_data.CmdData(tuple(args), command_template)
  File "/Users/Documents/fprime/Gds/src/fprime_gds/common/data_types/cmd_data.py", line 72, in __init__
    self.convert_arg_value(val, typ)
  File "/Users/Documents/fprime/Gds/src/fprime_gds/common/data_types/cmd_data.py", line 171, in convert_arg_value
    arg_type.val = int(arg_val)
ValueError: invalid literal for int() with base 10: 'x'

Ref example has no Main.cpp file

I was reading the instructions for creating a new F Prime deployment in the community documentation, and it mentions having a Main.cpp file in the Top folder. Because I wanted to do this for a new bare-metal system, I went to look at the Ref example to see how it was implemented, but there is no file here!

No Class Prototype?

I got this error when trying to rebuild a folder in which I had just run make impl on successfully.
Unkown

Adding Compile Commands to make system

As part of our software, we are using a library called WiringPi, and in order to compile those files the compilier must be given the flag -lwiringPi. How can we add this flag to the make system so that it will be able to successfully compile our drivers?
Ex:
-lwiringPi

Error in Rasberry Pi example

In the example, it is mentionned that we need to connect the LED to GPIO 22. But if we look in the topology.cpp file, we can see that it is setup to work with pin 21.

Include External Libraries in Make

Hello,

I'm attempting to build a component where I need to include external headers (Placed in a different directory, where I could ideally do a -I and include that directory in my compile) and include a different library at the linking stage of my project. Is there a simple way to integrate this into the Makefile?

Porting to Platforms with Constrained Memory

I am trying to port F Prime to one of the largest available parts in the ATmega family of embedded processors from Microchip (previously Atmel). With some modifications, @zeroping and I have managed to get it to compile all the expected frameworks parts, port objects, and components for the ArduinoBlink deployment in @LeStarch's fork.

The problem is that when we get to the linking step, it fails to link because it cannot find references to new and delete. These keywords are explicitly left out of the avr-g++ compiler support, because using them on many of the smaller supported processors is actually a mistake. e.g.: an ATtiny85 with 512 bytes of ram, or worse, an ATtiny10 with only 32 bytes of RAM! Not that we care about running F Prime on those targets, but the authors of the compiler do care, and made appropriate decisions about the built-in support.

Similarly, there is an avr-libc that is provided but STL, libc++, and libstdc++ are not. These issues are approachable by providing stubs or extern "C" statements for the Fw/Types/AVR directory. In fact, that is how I have gotten it to compile, needing cstring, cstdio, and cstdarg shims in the Types folder.

The following is a snippet of my [cmake build system] compilation output where the linker fails:

[100%] Linking CXX executable ../../../bin/avr-gcc/ArduinoBlink
cd /home/vagrant/src/ATmega-fprime/build-atmega/examples/ArduinoBlink/Top && /usr/bin/cmake -E cmake_link_script CMakeFiles/ArduinoBlink.dir/link.txt --verbose=1
/usr/bin/avr-g++  -g   CMakeFiles/ArduinoBlink.dir/Main.cpp.obj CMakeFiles/ArduinoBlink.dir/Topology.cpp.obj CMakeFiles/ArduinoBlink.dir/write.c.obj CMakeFiles/ArduinoBlink.dir/ArduinoTopologyAppAc.cpp.obj  -o ../../../bin/avr-gcc/ArduinoBlink ../../../lib/avr-gcc/libFw_Types.a ../../../lib/avr-gcc/libFw_Cfg.a ../../../lib/avr-gcc/libSvc_ActiveRateGroup.a ../../../lib/avr-gcc/libSvc_Health.a ../../../lib/avr-gcc/libSvc_Time.a ../../../lib/avr-gcc/libSvc_FatalHandler.a ../../../lib/avr-gcc/libSvc_GroundInterface.a ../../../lib/avr-gcc/libSvc_TlmChan.a ../../../lib/avr-gcc/libSvc_BufferManager.a ../../../lib/avr-gcc/libSvc_FileDownlink.a ../../../lib/avr-gcc/libSvc_ActiveLogger.a ../../../lib/avr-gcc/libSvc_AssertFatalAdapter.a ../../../lib/avr-gcc/libexamples_ArduinoGpsTracker_SerialDriver.a ../../../lib/avr-gcc/libSvc_CmdDispatcher.a ../../../lib/avr-gcc/libexamples_ArduinoGpsTracker_LedBlinker.a ../../../lib/avr-gcc/libSvc_FileUplink.a ../../../lib/avr-gcc/libexamples_ArduinoGpsTracker_HardwareRateDriver.a ../../../lib/avr-gcc/libSvc_PrmDb.a ../../../lib/avr-gcc/libSvc_RateGroupDriver.a ../../../lib/avr-gcc/libSvc_CmdSequencer.a ../../../lib/avr-gcc/libFw_Logger.a ../../../lib/avr-gcc/libSvc_GroundInterface.a ../../../lib/avr-gcc/libSvc_LinuxTime.a ../../../lib/avr-gcc/libOs.a ../../../lib/avr-gcc/libOs_Baremetal_TaskRunner.a ../../../lib/avr-gcc/libSvc_WatchDog.a ../../../lib/avr-gcc/libUtils_Types.a ../../../lib/avr-gcc/libSvc_Fatal.a ../../../lib/avr-gcc/libFw_FilePacket.a ../../../lib/avr-gcc/libFw_Buffer.a ../../../lib/avr-gcc/libCFDP_Checksum.a ../../../lib/avr-gcc/libFw_Prm.a ../../../lib/avr-gcc/libSvc_Cycle.a ../../../lib/avr-gcc/libFw_Tlm.a ../../../lib/avr-gcc/libFw_Log.a ../../../lib/avr-gcc/libSvc_Sched.a ../../../lib/avr-gcc/libSvc_Ping.a ../../../lib/avr-gcc/libFw_Cmd.a ../../../lib/avr-gcc/libFw_Com.a ../../../lib/avr-gcc/libSvc_Seq.a ../../../lib/avr-gcc/libSvc_Time.a ../../../lib/avr-gcc/libFw_Comp.a ../../../lib/avr-gcc/libOs.a ../../../lib/avr-gcc/libFw_Time.a ../../../lib/avr-gcc/libFw_Port.a ../../../lib/avr-gcc/libFw_Obj.a ../../../lib/avr-gcc/libFw_Logger.a ../../../lib/avr-gcc/libUtils_Hash.a ../../../lib/avr-gcc/libFw_Types.a ../../../lib/avr-gcc/libFw_Cfg.a 
/usr/lib/gcc/avr/5.4.0/../../../avr/bin/ld: ../../../bin/avr-gcc/ArduinoBlink section `.text' will not fit in region `text'
/usr/lib/gcc/avr/5.4.0/../../../avr/bin/ld: region `text' overflowed by 271484 bytes
../../../lib/avr-gcc/libFw_Types.a(Assert.cpp.obj): In function `Fw::defaultPrintAssert(signed char const*)':
/home/vagrant/src/ATmega-fprime/Fw/Types/Assert.cpp:23: undefined reference to `operator delete'
/home/vagrant/src/ATmega-fprime/Fw/Types/Assert.cpp:23: undefined reference to `operator delete'
../../../lib/avr-gcc/libSvc_ActiveLogger.a(ActiveLoggerImpl.cpp.obj): In function `Svc::ActiveLoggerImpl::~ActiveLoggerImpl()':
/home/vagrant/src/ATmega-fprime/Svc/ActiveLogger/ActiveLoggerImpl.cpp:59: undefined reference to `operator delete'
../../../lib/avr-gcc/libSvc_ActiveLogger.a(ActiveLoggerImpl.cpp.obj): In function `Svc::ActiveLoggerImpl::~ActiveLoggerImpl()':
/home/vagrant/src/ATmega-fprime/Svc/ActiveLogger/ActiveLoggerImpl.cpp:59: undefined reference to `operator delete'
../../../lib/avr-gcc/libSvc_CmdDispatcher.a(CommandDispatcherComponentAc.cpp.obj): In function `Svc::CommandDispatcherComponentBase::~CommandDispatcherComponentBase()':
/home/vagrant/src/ATmega-fprime/build-atmega/F-Prime/Svc/CmdDispatcher/CommandDispatcherComponentAc.cpp:730: undefined reference to `operator delete'

The Arduino solution for cross-platform code between AVR and ARM architectures is to implement new and delete in the Arduino library. It basically just thinly wraps the avr-libc implementations of malloc() and free():

void *operator new( size_t size ){
  return malloc( size );
}

void *operator new[]( size_t size ){
  return malloc( size );
}

void operator delete( void *ptr ){
  if( ptr )
    free( ptr );
}

void operator delete[]( void *ptr ){
  if( ptr )
    free( ptr );
}

So, clearly it is possible to find a place to plug this into the framework. However, @timcanham has also suggested that perhaps there are patterns we can leverage that avoid using malloc.

What is a good approach here? Hopefully we can use the results of this issue to enhance Issue #76.

Cornell Comments

• Change "requirement.txt" to "required.txt" because that's what the actual file is named.
• I had to manually install a few things not listed in the guide, but maybe the packages.sh file would have done that automatically.
• Even though it tries to install lxml automatically, this hangs and doesn't appear to work. I had to do it manually and remove lxml from the required.txt to get it to proceed.
• The demo is in "scripts" not "script".

MagicDraw

I'm trying to open the various MagicDraw files in the repo and I keep getting an error that the SSCAEProjectUsageInegrityProfile.mdzip is missing. I've tried searching around manually and can't find it either. Is this really missing or am I overlooking it?

Fix RPI Scripts

See #38. runBoth.sh has tcsh remnants that fail if BUILD_ROOT is not set in the environment.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.