Class CommandValueProcessor
java.lang.Object
org.scictrl.csshell.epics.server.processor.AbstractValueProcessor
org.scictrl.csshell.epics.server.processor.MemoryValueProcessor
org.scictrl.csshell.epics.server.processor.CommandValueProcessor
- All Implemented Interfaces:
PropertyChangeListener
,EventListener
,ValueProcessor
The Command Value Processor is intended for commands or actions, which are
triggered from client (e.g. CSS) by sending 1 or true to this processor.
Implementor should watch for write notification or change notification
where new value is 1.
Record will stay 1 until action is finished or timeout is expired.
Implementor should signal this or by calling
pushDone()
or by setting
value to false (or 0). Setting timeout will automatically flip value to 0 after
timeout time has expired- Author:
- igor@scictrl.com
-
Field Summary
Modifier and TypeFieldDescriptionprotected long
After timeout period command value is returned to 0.Fields inherited from class org.scictrl.csshell.epics.server.processor.MemoryValueProcessor
fixed, lastChangeTimestamp, timestamp, value
Fields inherited from class org.scictrl.csshell.epics.server.processor.AbstractValueProcessor
log, record, trigger, type
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
activate()
Record has now reference to Database.void
Configures the internals of value processor, provides reference to parent record and to configuration with root inside processor tag.long
Getter for the fieldtimeout
.static final CommandValueProcessor
newProcessor
(String name, String description, long timeout) newProcessor.void
void
pushDone()
pushDone.void
setTimeout
(long timeout) Setter for the fieldtimeout
.void
Sets new value to the processor.Methods inherited from class org.scictrl.csshell.epics.server.processor.MemoryValueProcessor
_forceValueUpdateEvent, _setValue, _setValue, _setValue, _setValue, convert, getChangeAccessTimestamp, getTimestamp, getValue, getValueAsBoolean, isFixed, newBooleanProcessor, newDoubleProcessor, newProcessor, newProcessor, setFixed
Methods inherited from class org.scictrl.csshell.epics.server.processor.AbstractValueProcessor
getName, getRecord, getTrigger, getType, process, toString
-
Field Details
-
timeout
protected long timeoutAfter timeout period command value is returned to 0.
-
-
Constructor Details
-
CommandValueProcessor
public CommandValueProcessor()Constructor for CommandValueProcessor.
-
-
Method Details
-
newProcessor
public static final CommandValueProcessor newProcessor(String name, String description, long timeout) newProcessor.
- Parameters:
name
- aString
objectdescription
- aString
objecttimeout
- a long- Returns:
- a
CommandValueProcessor
object
-
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 interfaceValueProcessor
- Overrides:
configure
in classMemoryValueProcessor
- 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 interfaceValueProcessor
- Overrides:
activate
in classMemoryValueProcessor
-
getTimeout
public long getTimeout()Getter for the field
timeout
. After timeout period command value is returned to 0.- Returns:
- a long
-
setTimeout
public void setTimeout(long timeout) Setter for the field
timeout
. After timeout period command value is returned to 0.- Parameters:
timeout
- a long
-
pushDone
public void pushDone()pushDone.
-
setValue
Sets new value to the processor. If value is different from current processor value, then event is fired. Timestamp is updated regardless if value is changed, since timestamp indicates last value update or confirmation. This method is used by remote EPICS entity or other record within same Database. By definition calling setValue must always update value, because further processing must be triggered.- Specified by:
setValue
in interfaceValueProcessor
- Overrides:
setValue
in classMemoryValueProcessor
- Parameters:
value
- aObject
object
-
propertyChange
- Specified by:
propertyChange
in interfacePropertyChangeListener
-