Skip to content

marcope-98/pacemaker

pacemaker

C++ Windows License Contributor Covenant

COM automation for people with deadlines and a hatred of GUIs


pacemaker is a lightweight C++ wrapper around the ETAS INCA COM API. It lets you programmatically register the calibration parameters, set their values in real time, and control measurement recordings, without touching INCA's GUI.

Getting started

To start, clone the repository and move into the root directory

git clone https://github.com/marcope-98/pacemaker.git
cd pacemaker

Building Source Code

Note

An MSVC compiler must be avaible on your system. For a portable alternative, see PortableBuildTools by Data-Oriented-House.

cmake -B build -S . ^
      -DETAS_INCACOM_TLB="<path/to/incacom.tlb>" ^
      -DCMAKE_BUILD_TYPE="<Release|Debug|RelWithDebInfo|MinSizeRel>"

cmake --build build --target pacemaker

You can supply a incacom.tlb file via ETAS_INCACOM_TLB CMake variable, by specifying its absolute path. Otherwise a find module will take care of finding its location in regedit.

Due to backward compatibility issues, only ETAS INCA 7.4 and later installations are supported.

Building and Running Unit Tests

Build the tests target and then run the test suite via CTest:

cmake -B build -S . ^
      -DPACEMAKER_BUILD_TESTS=ON

cmake --build build --target tests
ctest --test-dir build --output-on-failure

The CMake option PACEMAKER_BUILD_TESTS is ON by default in case the project is the top level project.

To run a specific test by name or pattern, use the -R flag

ctest --test-dir build --output-on-failure -R <test-name>

Tip

Add -j <N> to run up to N tests in parallel, or --rerun-failed to only re-execute tests that failed in the previous run

Generating Requirements Documents

The Software Requirements Specification (SRS) and Test Specification (TS) documents are written in LaTeX and built using latexmk perl script via MiKTeX.

Dependencies:

  • MiKTeX: LaTeX distribution (install latexmk via its package manager)
  • Strawberry perl: Perl runtime for Windows
cmake -B build -S . ^
      -DMIKTEX_BINARY_PATH="<path/tp/miktex/bin>" ^
      -DPACEMAKER_BUILD_REQUIREMENTS=ON

cmake --build build --target requirements

MIKTEX_BINARY_PATH is only required for portable MiKTeX installations.

The CMake option PACEMAKER_BUILD_REQUIREMENTS is ON by default in case the project is the top level project.

Generating Source Documentation

API documentation is generated with Doxygen and Graphviz.

cmake -B build -S . ^
      -DDOXYGEN_EXECUTABLE="<path/to/doxygen>" ^
      -DDOXYGEN_DOT_EXECUTABLE="<path/to/dot>" ^
      -DPACEMAKER_BUILD_DOCS=ON

cmake --build build --target docs

Note

DOXYGEN_EXECUTABLE and DOXYGEN_DOT_EXECUTABLE are only required for portable installations

The CMake option PACEMAKER_BUILD_REQUIREMENTS is ON by default in case the project is the top level project.

Contributing

We welcome contributions from everyone in the community! To get started, please read our CONTRIBUTING.md guide. Whether you're adding a new feature, improving documentation, or fixing a bug, your help and feedback are invaluable.

Authors

About

COM automation for people with deadlines and a hatred of GUIs

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors