130 likes | 267 Views
MASAR Server & Application. Guobao Shen Photon Sciences Department Brookhaven National Laboratory Collaboration Working Group Oct 02, 2013. What ’ s MASAR?. MASAR Machine Snapshot, Archiving, and Retrieve An EPICS tool for experimental control system Machine
E N D
MASAR Server & Application Guobao Shen Photon Sciences Department Brookhaven National Laboratory Collaboration Working Group Oct 02, 2013
What’s MASAR? • MASAR • Machine Snapshot, Archiving, and Retrieve • An EPICS tool for experimental control system • Machine • A facility controlled by EPICS, accelerator for example • Snapshot • Data at specific time point • Value, time stamp, connection status, alarm status, alarm severity • Similar tools, but different purpose • IOC automatic save & restore • IOC bumpless rebooting • Channel Archiving • Archive pre-defined configuration periodically • All data saved time serially
MASAR Architecture Scripting CSS/BOY Others (Matlab) Scripting PyQt High Level Scripting API Finished Low Level Python Client Library pvAccess/channelRPC Client (C++) pvAccess Client API Library (Java) pvAccess Planning pvAccess/channelRPC Service Engine DSL-PY Module Gather/C++ PYMASAR (SQLite) Channel Access IOC IOC IOC User Apps Developing
MASAR Service • An EPICS V4 service • V4 C++ modules • pvData beta2 • pvAccess beta2 • pvIOC beta2 • normativeTypes • Communication mechanism • channelRPC
V3 Type Support • Support all scalar and waveform PV types • float, double, string, and enum • Could be a mix of any of the types
MASAR Functions • Functions supported by service • Data Structure used by request structure NTNameValue string[] names string[] values string function xxxxxx // function name as above
MASAR Data Structure structure timeStamp long secondsPastEpoch 0 int nanoSeconds 0 int userTag 0 structure alarm int severity 0 int status 0 string message string[] label [...] // value field in label field string pv name [] string value [] double value [] long value [] int dbr_type [] bool isConnected [] long secondsPastEpoch [] int nanoSeconds [] string alarmSeverity [] string alarmStatus [] bool is_array [] structure array_value [structure[]] • NTTable • Scalar value • Need NTVariantArray
MASAR Client • Python library • 7 APIs • API naming convention • Retrieve/Save: RDB oriented • Get/Put: PV oriented
MASAR UI • PyQt4 based graphic user interface • On top of Python client library • Browse configuration • Browse event • Take snapshot • Retrieve data • Compare data • Restore machine • Export data to external file
MASAR UI • Multiple comparison • Support up to 9 data sets
MASAR UI • Data plotting
MASAR CSS Integration • pvAccess plug-in in CSS • Map NT type into V Type/pvManager • Basic type • Name/value • Table • NT type Java support • Widget development • Reuse existing widget • Table, … • Table manipulation • Join, comparison • Plotting • Columns in single table • Columns in multiple tables • URI pva://pva…
System Wide Application • Interactive with other services • Channel finder • Get PV list to create a new configuration • Olog • Create a new entry automatically whenever needed • Lattice/Model • Get a machine live lattice • Calculate beam parameters of live lattice • Save model results • Need MUNICONV service support • Engineering unit (Ampere) Model unit (K value) • Assemble into CSS • Each item is or will be a CSS application • Need to assemble them together