https://github.com/bugadani/cglue
Embedded firmware toolkit to generate and connect software components
https://github.com/bugadani/cglue
Last synced: 3 months ago
JSON representation
Embedded firmware toolkit to generate and connect software components
- Host: GitHub
- URL: https://github.com/bugadani/cglue
- Owner: bugadani
- License: mit
- Created: 2020-05-11T18:54:07.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-20T21:18:07.000Z (about 6 years ago)
- Last Synced: 2025-03-02T15:28:35.427Z (over 1 year ago)
- Size: 459 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
CGlue  [](https://codecov.io/gh/RevolutionRobotics/CGlue)
=====
__CGlue is in its early stages of development. It is not recommended for use in
production software and every part can change significantly.__
CGlue is a software framework for project written in C. It defines a component-based
architecture and provides tools to support this architecture.
A CGlue project has two main layers:
- a component layer where you define the boundaries (ports, public types) of your software
components
- and a runtime layer where you define connections between your components
CGlue is capable of generating the skeleton structure of software components
and the implementation of the runtime layer.
CGlue requires python 3.x (TODO check minimum python version) and chevron.
Got any issues or suggestions? Head on to the issues page and open a ticket!
Running tests
=============
To set up the required packages, run the following:
```
pip install -r requirements.txt
pip install -r requirements_tests.txt
```
Use `python setup.py test` to run the tests.
Create a new project
=============
`cglue --new-project ProjectName [--project=project_file.json] [--cleanup]`
This command will create a new CGlue project file and the default directories.
There is no makefile added to the project - you'll need to write your own
or use a script to generate based on the CGlue project file.
Create a new software component
=============
`cglue --new-component ComponentName [--cleanup]`
This will create a new folder in the `SwComponents` folder (by default), create an empty source and
header file as well as a component configuration json.
Updating a software component
=============
After you edit a component configuration json, you may call the following command to re-generate
the header and source files:
`cglue --update-component ComponentName [--cleanup]`
Alternatively, if you want to update all components, call `cglue --update-all-components [--cleanup]`