Package edu.stanford.slac.archiverappliance.PB

Contains the protocol buffer definitions of EPICS DBR_TIME types. See EPICSEvent.proto and StatusSeverity.proto for the definitions. There is a shell script proto2java.sh that contains the typical command used to convert .proto files into .java files. This shell script assumes that protocol buffers is installed and that protoc is in the path.
The javadoc for this package shows a lot of classes, interfaces and enums. These are automatically generated by protoc from the .proto files and therefore lack documentation. This documentation can be found in the .proto files themselves. Here is a brief summary.
  1. There are scalar and vector (waveform) versions of the basic EPICS types. Please refer to the EPICS documentation for more details on these entities.
  2. These are all DBR_TIME types - they have time+value+status+severity.
  3. Time in EPICS has nanosecond precision - so the timestamp here is broken into year + secondsintoyear and nano components.
  4. JODA (a popular Java time library) is used to go back and forth between epoch seconds (or millis, which is what comes from System.currentTimeMillis()) and year + secondsintoyear
  5. The year part of the timestamp is expected to be stored/transmitted once in the header; therefore, the PB versions of the EPICS DBR types only have secondsintoyear and nano fields.
  6. The EPICSEvent.PayloadInfo is the proto/java object that represents the header. It contains the DBR type, PV name, year and lots of other optional information.
  7. The optional fields lowerDisplayLimit and upperDisplayLimit in EPICSEvent.PayloadInfo are typically the graphic limits.