Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


MASAR (MAchine Snapshot, Archiving, and Retrieve)


Required dependencies

Needed by Qt client UI

# apt-get install epics-dev epics-pvd-dev epics-pva-dev \
  python-dev python-qt4 python-cothread


Copy RELEASE.local.example as RELEASE.local and fill in the paths for all EPICS module dependencies. If using Debian packages then copy RELEASE.local.deb instead.

Only EPICS Base is needed to build.

$ make

Running the daemon

Setting Python path. The 'p4p' module must appear in the search path. If '$P4P_DIR' is the source directory then:

export PYTHONPATH=$PWD/python2.7/linux-x86_64:$P4P_DIR/python2.7/linux-x86_64

Run automatic tests

$ nosetests minimasar

Run daemon in simulated client mode with in-memory database.

$ python -m minimasar.server --name masarService -L DEBUG ':memory:' -G sim

Run daemon in CA client mode and store in masar.db. The database file will be created if it does not exist.

$ python -m minimasar.server --name masarService -L DEBUG masar.db -G ca

Some testing can be done with the pvcall utility provided by the pvAccessCPP module.

## Load pre-defined configuration
## On success, a new configid is printed
$ pvcall masarService:storeTestConfig configname=test desc=testing
config_idx config_name config_desc    config_create_date config_version status system
         1        test     testing "2021-07-03 16:47:19"              0 active       
## Read-back configuration
$ pvcall masarService:loadServiceConfig configid=<configid>

$ pvcall masarService:retrieveServiceConfigs

$ pvcall masarService:saveSnapshot configname=test
$ pvcall masarService:updateSnapshotEvent eventid=<eventid> user=me desc=snap

$ pvcall masarService:retrieveServiceEvents configid=<configid>

$ pvcall masarService:retrieveSnapshot eventid=eventid>

$ pvcall masarService:dumpDB

See for a description of supported RPC calls.

Running the Qt client