Class BeamScanApplication

java.lang.Object
org.scictrl.csshell.epics.server.application.AbstractApplication
org.scictrl.csshell.epics.server.application.BeamScanApplication
All Implemented Interfaces:
org.scictrl.csshell.epics.server.Application, org.scictrl.csshell.epics.server.processor.OnDemandValueProcessor.ValueProvider

public class BeamScanApplication extends org.scictrl.csshell.epics.server.application.AbstractApplication

BeamScanApplication scans the beam with four control values: power, phase, solenoid magnet and bending magnet. It records beam position and shape and filters and averages the beam values. Values with Q below configured threshold are discarded.

Four parameters, which are beeing scannes: Power, Phase, Solenoid, Bend, have own set of scan properties and control PVs, which are being provided by ScanApplication, which is embedded in this application.

Supported XML parameters

  • Power.precision, Phase.precision, Solenoid.precision, Bend.precision - precision for 4 scan modules, determines when scan value is close enough to target value. Default is 0.000001.
  • Power.setpointPV, Phase.setpointPV, Solenoid.setpointPV, Bend.setpointPV - PV name for corresponding record that is being scanned. Required.
  • Power.setpointCmdPV, Phase.setpointCmdPV, Solenoid.setpointCmdPV, Bend.setpointCmdPV - PV name for record that is necessary to be set after scan value has been set. Some devices need to apply value after has been set, optional.
  • beamSpotPv - PV for beam spot measurement device, expected device is BeamSpotApplication. Default value F:GL:BeamSpot:01.
  • measurementWait - wait time between beam measurements, in ms. Default value 10000.

Application provides PVs with following suffixes:

  • Access to embedded scanning tools PVs is provided with PV prefixes: Power, Phase, Solenoid, Bend. See ScanApplication.
  • Cmd:Start - Starts scanning task. Setting 1 triggers command.
  • Cmd:Stop - Stops scanning task. Setting 1 triggers command.
  • Meas:Last - Last beam measurement. Array with measurements.
  • Meas:Peak - Beam measurement at peak beam, that is largest beam area. Array with measurements.
  • Status - Scanning status. Enum with states: READY, SCANNING, ERROR
  • Status:Progress - Scanning progress, in %.
  • Status:Remaining - Estimated remaining time of scan. String with human friendly time format.
  • Status:Scanning - Boolean flag indicating scanning in progress. 0,1 as byte.
  • Wait - wait time between beam measurements. Float from 0 to 1000 s.
Author:
igor@scictrl.com
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    final class 
    Measurement stores beam measurement data is na array.
  • Field Summary

    Fields inherited from class org.scictrl.csshell.epics.server.application.AbstractApplication

    database, DEFAULT_NAME_DELIMITER, dynamicRecordCreator, ERROR_SUM, LINK_ERROR, LINK_ERROR_STRING, links, log, name, NAME_DELIMITER, nameDelimiter, records
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for BeamScanApplication.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    void
    configure(String name, org.apache.commons.configuration.HierarchicalConfiguration config)
    void
    initialize(org.scictrl.csshell.epics.server.Database database)
    protected void
    notifyRecordChange(String name, boolean alarmOnly)
    protected void

    Methods inherited from class org.scictrl.csshell.epics.server.application.AbstractApplication

    addRecord, addRecordOfCommandProcessor, addRecordOfMemoryValueProcessor, addRecordOfMemoryValueProcessor, addRecordOfMemoryValueProcessor, addRecordOfMemoryValueProcessor, addRecordOfMemoryValueProcessor, addRecordOfMemoryValueProcessor, addRecordOfMemoryValueProcessor, addRecordOfMemoryValueProcessor, addRecordOfMemoryValueProcessor, addRecordOfOnDemandProcessor, addRecordOfOnLinkValueProcessor, configure, connectLinks, createNewStore, fullRecordName, getLinks, getName, getNameDelimiter, getNotNull, getRecord, getRecordErrorSum, getRecordLinkError, getRecordNames, getRecords, getStore, getStore, getValue, isActivated, isDynamicRecordCreator, log4debug, log4error, log4error, log4info, notifyLinkChange, processLinkChange, pushDoneCommandProcessor, reconnectLinks, resetOnDemandProcessor, restore, store, toString, updateErrorSum, updateErrorSum, updateLinkError, updateLinkError

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • BeamScanApplication

      public BeamScanApplication()

      Constructor for BeamScanApplication.

  • Method Details

    • configure

      public void configure(String name, org.apache.commons.configuration.HierarchicalConfiguration config)
      Specified by:
      configure in interface org.scictrl.csshell.epics.server.Application
      Overrides:
      configure in class org.scictrl.csshell.epics.server.application.AbstractApplication
    • activate

      public void activate()
      Specified by:
      activate in interface org.scictrl.csshell.epics.server.Application
      Overrides:
      activate in class org.scictrl.csshell.epics.server.application.AbstractApplication
    • initialize

      public void initialize(org.scictrl.csshell.epics.server.Database database)
      Specified by:
      initialize in interface org.scictrl.csshell.epics.server.Application
      Overrides:
      initialize in class org.scictrl.csshell.epics.server.application.AbstractApplication
    • notifyRecordChange

      protected void notifyRecordChange(String name, boolean alarmOnly)
      Overrides:
      notifyRecordChange in class org.scictrl.csshell.epics.server.application.AbstractApplication
    • notifyRecordWrite

      protected void notifyRecordWrite(String name)
      Overrides:
      notifyRecordWrite in class org.scictrl.csshell.epics.server.application.AbstractApplication