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
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
<undefined>
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 interface.md for a description of supported RPC calls.
./masar