Class RunningCounterApplication
java.lang.Object
org.scictrl.csshell.epics.server.application.AbstractApplication
org.scictrl.csshell.epics.server.application.RunningCounterApplication
- All Implemented Interfaces:
Application
,OnDemandValueProcessor.ValueProvider
RunningCounterApplication calculates average of input value updates based on defined time window. Valid values are accepted into calculation, based on strict or relaxed option.
If newest value timestamp is newer than current time minus time interval, then interval is set from newest timestamp. This helps counter if there is time shift between timestamps and local clock and if updates are fairly irregular. If newest recorded timestamp is older than current time minus interval, then it is taken out.
- Author:
- igor@scictrl.com
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Calculates average and other statistics on predefine time window. -
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
activate()
Application has now reference to Database.void
Configures the internals of this application, provides reference to configuration with root inside applications tag.protected void
notifyRecordChange
(String name, boolean alarmOnly) This method is called whenever record value changed for any record, which belongs to this application (it was added to the applicationAbstractApplication.addRecord(String, Record)
).protected void
notifyRecordWrite
(String name) This method is called whenever record value has been written for any record, which belongs to this application (it was added to the applicationAbstractApplication.addRecord(String, Record)
).protected void
updateLinkError
(gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status) updateLinkError.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, initialize, isActivated, isDynamicRecordCreator, log4debug, log4error, log4error, log4info, notifyLinkChange, processLinkChange, pushDoneCommandProcessor, reconnectLinks, resetOnDemandProcessor, restore, store, toString, updateErrorSum, updateErrorSum, updateLinkError, updateLinkError
-
Constructor Details
-
RunningCounterApplication
public RunningCounterApplication()Constructor for RunningCounterApplication.
-
-
Method Details
-
configure
public void configure(String name, org.apache.commons.configuration.HierarchicalConfiguration config) Configures the internals of this application, provides reference to configuration with root inside applications tag. Server structure is not yet initialized, so does not have reference to Database, the Database reference will be available during activate call.- Specified by:
configure
in interfaceApplication
- Overrides:
configure
in classAbstractApplication
- Parameters:
name
- aString
objectconfig
- configuration with room inside application tag.
-
activate
public void activate()Application has now reference to Database. Application 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 application that records has been loaded and linking to other values can be commenced.- Specified by:
activate
in interfaceApplication
- Overrides:
activate
in classAbstractApplication
-
updateLinkError
protected void updateLinkError(gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status) updateLinkError.
- Parameters:
severity
- aSeverity
objectstatus
- aStatus
object
-
notifyRecordChange
This method is called whenever record value changed for any record, which belongs to this application (it was added to the applicationAbstractApplication.addRecord(String, Record)
). Implementation class should override this method to intercept the update.- Overrides:
notifyRecordChange
in classAbstractApplication
- Parameters:
name
- the name of record, that triggered change.alarmOnly
- iftrue
then only alarm has been changed
-
notifyRecordWrite
This method is called whenever record value has been written for any record, which belongs to this application (it was added to the applicationAbstractApplication.addRecord(String, Record)
). Implementation class should override this method to intercept the update.- Overrides:
notifyRecordWrite
in classAbstractApplication
- Parameters:
name
- the name of record, that triggered change.
-