public class WireScanner extends ProfileDevice
Represents a wire scanner diagnostic device, in particular
those devices installed at the SNS facility. This class
implements the new profile device API at SNS. The previous
device API interfaced with the SMF class
.
ProfileMonitor
WireScanner
class that generalizes to the WireHarp
Ported from XAL on Jul 21, 2014. (Over-wrote old WireScanner
implementation.)
· Jonathan M. Freed
ProfileMonitor
Modifier and Type | Class and Description |
---|---|
static class |
WireScanner.ActrConfig
This class is a data structure for managing scan actuator
configuration data parameters.
|
static class |
WireScanner.CMD
Wire Scanner Commands
|
static class |
WireScanner.CMDARG
Valid arguments to commands accepting
arguments.
|
static class |
WireScanner.CmdPck
A class-level representation of a wire-scanner command.
|
static class |
WireScanner.DataFit
Data structure containing the fitted profile data
available after data acquisition (i.e., the profile
fit as computed by the acquisition software).
|
static class |
WireScanner.DataLiveArr
Data structure contain the profile data available
during data acquisition in a point-by-point fashion
(i.e., as the scan progress).
|
static class |
WireScanner.DataLivePt
Data structure contain the profile data available
during data acquisition in a point-by-point fashion
(i.e., as the scan progress).
|
static class |
WireScanner.DataRaw
Data structure containing the profile data available
after data acquisition (i.e., once the scan
is complete).
|
static class |
WireScanner.DblGaussFitAttrSet
Data structure containing the profile data characteristics
when modelled as a Double Gaussian signal.
|
static class |
WireScanner.DevStatus
Contains device status parameters.
|
static class |
WireScanner.GaussFitAttrSet
Data structure containing the profile data characteristics
when modeled as a Gaussian signal.
|
static class |
WireScanner.PrcgConfig
Data structure containing the configuration parameters
for the on-board data processing and analysis.
|
static class |
WireScanner.ScanConfig
This class is a data structure for managing scan
configuration parameters.
|
static class |
WireScanner.SmplConfig
Data structure containing the sampling parameters
for data acquisition.
|
static class |
WireScanner.StatisticalAttrSet
Data structure containing the profile data characteristics
when modelled as a Double Gaussian signal.
|
static class |
WireScanner.Trace
Data structure containing the last available
raw data trace as defined by the sample rate
and duration.
|
static class |
WireScanner.TrgConfig
Data structure containing configuration parameters
for DAQ triggering.
|
ProfileDevice.ANGLE, ProfileDevice.GAIN, ProfileDevice.IProfileData, ProfileDevice.IProfileDomain, ProfileDevice.MACROPULSE, ProfileDevice.MVTVAL, ProfileDevice.TRGEVT
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
HARDWARE_TYPE
Hardware type for the WireScanner class
|
static java.lang.String |
HORIZONTAL_SIGMA_GAUSS_HANDLE
handle for the horizontal sigma Gauss channel
|
static java.lang.String |
s_strType
device type
|
static java.lang.String |
SOFTWARE_TYPE
software type for the Wire Scanner class
|
static java.lang.String |
VERTICAL_SIGMA_GAUSS_HANDLE
handle for the vertical sigma Gauss channel
|
channelSuite, m_bolIsSoft, m_bolStatus, m_bolValid, m_bucAlign, m_bucAper, m_bucTwiss, m_dblLen, m_dblPos, m_dblS, m_mapAttrs, m_objAccel, m_seqParent, m_strEId, m_strId, m_strPId
Constructor and Description |
---|
WireScanner(java.lang.String nodeID)
Create a new
WireScanner object. |
Modifier and Type | Method and Description |
---|---|
void |
analysisParametersSelect(ProfileDevice.MACROPULSE enmBmSct,
double dblBmFrac)
Changes the data processing parameters (see
)
so that the on-board controller selects the beam micro-bunch section for computing
measurement results. |
void |
configureHardware(ParameterSet datPvFlds)
Set all the hardware parameter values associated
with the given data set.
|
Monitor |
createMonitor(XalPvDescriptor.IPvDescriptor pvdFld,
IEventSinkValue snkEvents,
int... mskEvtType)
Setup a value monitor on the given process variable (i.e.,
using its handle).
|
int[] |
getCommandResult()
Returns the command result code(s).
|
java.lang.String |
getSoftType()
Derived class may furnish a unique software type
|
java.lang.String |
getType()
Get the device type
|
void |
runCommand(WireScanner.CMD cmd)
Issue a wire scanner command with no arguments.
|
void |
runCommand(WireScanner.CmdPck cmdPck)
Issue a wire scanner command with or without arguments arguments.
|
boolean |
testConnection(java.util.Collection<ScadaFieldDescriptor> setFds,
double dblTmOut)
Test the connections in all the channels of the given parameter set for this
accelerator device.
|
acquireConfig, acquireData, testConnection
addBucket, channelSuite, clear, dataLabel, findChannel, getAccelerator, getAlign, getAndConnectChannel, getAper, getBucket, getBuckets, getChannel, getDesignPropertyValue, getEId, getHandles, getId, getLength, getLivePropertyChannels, getLivePropertyValue, getParent, getPId, getPitchAngle, getPosition, getPrimaryAncestor, getRollAngle, getSDisplay, getStatus, getTwiss, getValid, getXOffset, getYawAngle, getYOffset, getZOffset, hasBucket, hasParent, isKindOf, isMagnet, lazilyGetAndConnect, removeFromParent, setAccelerator, setAlign, setAper, setLength, setParent, setPitchAngle, setPosition, setRollAngle, setSDisplay, setStatus, setTwiss, setValid, setXOffset, setYawAngle, setYOffset, setZOffset, toString, update, write
public static final java.lang.String s_strType
public static final java.lang.String SOFTWARE_TYPE
public static final java.lang.String HARDWARE_TYPE
public static final java.lang.String HORIZONTAL_SIGMA_GAUSS_HANDLE
public static final java.lang.String VERTICAL_SIGMA_GAUSS_HANDLE
public WireScanner(java.lang.String nodeID)
WireScanner
object.nodeID
- public java.lang.String getType()
getType
in class AcceleratorNode
public java.lang.String getSoftType()
getSoftType
in class AcceleratorNode
public void runCommand(WireScanner.CMD cmd) throws ConnectionException, PutException, java.lang.InterruptedException
cmd
- wire scanner commandConnectionException
- unable to find channelPutException
- unable to set channel valuejava.lang.InterruptedException
- command buffer reset thread interruptedpublic void runCommand(WireScanner.CmdPck cmdPck) throws java.lang.IllegalArgumentException, ConnectionException, PutException, java.lang.InterruptedException
WireScanner2.CmdPck
Here we are packing the command-argument vector as an array of type
double
.cmdPck
- packaged wire scanner command with optional argumentsjava.lang.IllegalArgumentException
- argument/command inconsistencyConnectionException
- unable to find channelPutException
- unable to set channel valuejava.lang.InterruptedException
- command buffer reset thread interruptedpublic int[] getCommandResult() throws ConnectionException, GetException
ConnectionException
- Unable to connect to result readback channelGetException
- Unable to read result from readback channelpublic boolean testConnection(java.util.Collection<ScadaFieldDescriptor> setFds, double dblTmOut) throws BadChannelException
testConnection
in class ProfileDevice
setFds
- set of field descriptors containing channel handlesdblTmOut
- time out before test fails (in seconds)true
if all connections were successful,
false
if not all connection were made within given timeBadChannelException
- An unbound channel handle within a field descriptorpublic Monitor createMonitor(XalPvDescriptor.IPvDescriptor pvdFld, IEventSinkValue snkEvents, int... mskEvtType) throws ConnectionException, MonitorException, NoSuchChannelException
Setup a value monitor on the given process variable (i.e.,
using its handle). The monitor events are
sent to the IEventSink
object provided.
One can specify the event type which fires the monitor using
the argument
Monitor.VALUE
- fire upon PV value change
Monitor.LOG
-
Monitor.ALARM
- fire upon PV alarm value
The default value (i.e., no argument) is Monitor.VALUE
.
createMonitor
in class ProfileDevice
pvdFld
- handle enumeration for process variablesnkEvents
- interface to data sinkmskEvtType
- code specifying when the monitor is fired
(or'ed combination of {Monitor.VALUE, Monitor.LOG, Monitor.ALARM})NoSuchChannelException
- if the handle does not identify any
process variable of this accelerator nodeConnectionException
- channel is not connectedMonitorException
- general monitor failurepublic void configureHardware(ParameterSet datPvFlds) throws PutException, ConnectionException
configureHardware
in class ProfileDevice
datPvFlds
- set of new hardware valuesConnectionException
- unable to connect PV channelPutException
- general exception setting valuespublic void analysisParametersSelect(ProfileDevice.MACROPULSE enmBmSct, double dblBmFrac) throws ConnectionException, NoSuchChannelException, GetException, PutException, java.util.concurrent.RejectedExecutionException
WireScanner.PrcgConfig
)
so that the on-board controller selects the beam micro-bunch section for computing
measurement results.enmBmSct
- the part of the beam on which to focus the analysisdblBmFrac
- proportion of the current beam to be used in analysis
(a value 1 is the entire macro-pulse)java.util.concurrent.RejectedExecutionException
- (runtime exception) the machine is not in 50 μsec mode, parameter will not be changedNoSuchChannelException
- error in XAL channel handle/EPICS PV bindingConnectionException
- could not connect to data processing PVsGetException
- could not retrieve some data processing parametersPutException
- unable to set the new analysis configuration parameters