C++ EtherCAT Device Command & Control Library
To learn more about fastcat, checkout the following documents:
Fastcat: An Open-Source Library for Composable EtherCAT Control Systems
Fastcat has ben tested on Ubuntu 20.04, though it should work on older versions of Ubuntu with minor revisions to these steps.
$ sudo apt install libyaml-cpp-dev libreadline-dev doxygen python3-pip
$ sudo pip3 install pyaml cogapp graphviz ipython==7.9
To build fastcat from source:
$ git clone git@github.com:nasa-jpl/fastcat.git
$ cd fastcat
$ mkdir build
$ cd build
$ cmake ..
$ make
The following commands will execute the unit tests:
$ cd build
$ cmake ..
$ make
$ make test
$ make memcheck # note valgrind is required to perform memory checking
# Install dependencies for Ubuntu
$ sudo apt install doxygen graphviz
# use the build system to generate the code for you!
$ cd build
$ make doc
The output documentation is created in the directory doxygen_html
and can be opened by any web browser from the root index.html
webpage.
We recommend using the CMake FetchContent
utility to acquire fastcat and its upstream dependencies.
include(FetchContent)
FetchContent_Declare(fastcat
GIT_REPOSITORY git@github.com:nasa-jpl/fastcat.git
GIT_TAG v0.4.3
)
FetchContent_MakeAvailable(fastcat)
It is always recommend you specify your dependency to a tagged reldroppingease (GIT_TAG v0.4.3
) so updates to master cannot break your build (NOT GIT_TAG master
).
fastcat uses Semantic versioning to help applications reason about the software as updates are continuously rolled out. Tailored to fastcat, the Semver rules are as follows:
Violations of these rules will be considered errors and should be patched immediately. Please open an issue if you find a violation.
Note
Major version 0
indicates the API is still considered experimental and subject to change with any new release. These rules will be strictly followed after a Major version 1
release.