This repository provides the C++ (with a C calling API) driver for controlling the second generation BBN Arbitrary Pulse Sequencer. In addition to the C driver we provide thin wrappers for Matlab and Julia.
Read the online manual.
This code is licensed under the Apache v2 license. See the LICENSE file for more information.
Only necessary for those wishing to develop or build the driver from source. Prebuilt binaries for Windows are available on the releases tab.
We get the asio, Catch, and plog dependencies via submodules with the --recursive switch
git clone --recursive [email protected]:BBN-Q/libaps2.git
- C++ compiler with good C++11 support. See below for OS specific compilers tested.
- cmake: Cmake build tool version 2.8 or higher (http://www.cmake.org/)
Use your distribution's package manager to install the dependencies and it should work out of the box. Here is how to build the library and utilities using a Debian-base package manager:
sudo apt update
sudo apt install git
sudo apt install build-essential
sudo apt install cmake
git clone https://github.com/BBN-Q/libaps2.git
git submodule update --init --recursive
mkdir build
cd build
cmake ../src
make
Then install the python driver if you'd like:
cd src/python
pip install .
Tested on:
- Linux Mint 18.1 with 5.4.0
- CentOS 7
- Ubuntu 16.04 - 18.04
- Install the command-line developer tools.
- Use Homebrew to install cmake.
- Then a standard
cmake ../src
andmake
should build.
Tested on:
- OS X 10.10 Yosemite with Apple clang 6.0
- Xcode 9.4 & 10.1 with clang++
We currently only support Windows builds in MinGW. It is possible to build the library and utilities in Visual Studio though this process tends to be brittle.
The most painless way to use gcc on Windows has been using MSYS2 and the MinGW-w64 gcc compiler stack.
- Download the MSYS2 installer and follow the instructions to install and update in place.
- Use pacman package manager to install some additional tools and libraries:
pacman -S make
pacman -S mingw64/mingw-w64-x86_64-cmake
pacman -S mingw64/mingw-w64-x86_64-gcc
pacman -S mingw64/mingw-w64-x86_64-gdb
- Finally build in the libaps2 folder
mkdir build
cd build
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug ../src/
make
Tested on:
- Windows 10 Professional with gcc 6.1.0
For the adventurous, the Appveyor build artifacts are available for download here. These are binaries build from the master branch.
This software was funded in part by the Office of the Director of National Intelligence (ODNI), Intelligence Advanced Research Projects Activity (IARPA), through the Army Research Office contract No. W911NF-10-1-0324 and No. W911NF-14-1-0114. All statements of fact, opinion or conclusions contained herein are those of the authors and should not be construed as representing the official views or policies of IARPA, the ODNI, or the US Government.