Class HeartbeatValueProcessor

All Implemented Interfaces:
PropertyChangeListener, EventListener, ValueProcessor

public class HeartbeatValueProcessor extends MemoryValueProcessor implements PropertyChangeListener
Value processor, which connects to provided remote names and captures their value. By default first value from array of linked values is used. Value update events wit captured value are produced at the configured heartbeat rate.
Author:
igor@scictrl.com
  • Field Details

    • input

      protected ValueLinks input
      Input value remote link.
    • buffer

      protected List<Double> buffer
      Buffer that stores data between two heartbeat updated.
  • Constructor Details

    • HeartbeatValueProcessor

      public HeartbeatValueProcessor()

      Constructor for HeartbeatValueProcessor.

  • Method Details

    • newProcessor

      public static final HeartbeatValueProcessor newProcessor(String name, String description, String link)
      Creates processor, configures it and returns it embedded within the returned record.
      Parameters:
      name - name of the returned record
      description - the description of the record
      link - the link of the returned processor
      Returns:
      new record with embedded and configured processor
    • configure

      public void configure(Record record, org.apache.commons.configuration.HierarchicalConfiguration config)
      Configures the internals of value processor, provides reference to parent record and to configuration with root inside processor tag. Parent record is not yet initialized, so does not have reference to Database, the Database reference will be available during activate call.
      Specified by:
      configure in interface ValueProcessor
      Overrides:
      configure in class MemoryValueProcessor
      Parameters:
      record - the parent record.
      config - configuration with room inside processor tag.
    • activate

      public void activate()
      Record has now reference to Database. processor might want to connect to other records on this server or PVs on other servers. This can not be done until all records from configuration has been loaded. Call to this method signals to the processor that records has been loaded and linking to other values can be commenced.
      Specified by:
      activate in interface ValueProcessor
      Overrides:
      activate in class MemoryValueProcessor
    • propertyChange

      public void propertyChange(PropertyChangeEvent evt)
      Specified by:
      propertyChange in interface PropertyChangeListener
    • process

      public void process()
      Called by Database in interval set by the trigger parameter in milliseconds. Not called if trigger in 0.
      Specified by:
      process in interface ValueProcessor
      Overrides:
      process in class AbstractValueProcessor