Dasu

org.eso.ias.dasu.Dasu
See theDasu companion object
abstract class Dasu(val dasuIdentifier: Identifier, val autoSendTimeInterval: Integer, val validityThreshold: Integer) extends InputsListener

The Distributed Alarm System Unit (DASU).

The DASU, once notified of new inputs received from the BSDB (or other sources), forwards the IASIOs to the ASCEs to produce the output. If no new inputs arrived the DASU generates the output anyhow to notify that the DASU is alive. At a first glance it seems enough to check the validity of the last set of inputs to assign the validity of the output.

The DASU is initialized in the constructor: to let it start processing events, the start() method must be called.

The DASU must update the output even if it does not receive any input to refresh the output and send it to the BSDB. The automatic refresh of the output when no new inputs arrive is not active by default but need to be activated by calling enableAutoRefreshOfOutput(true).

Newly received inputs are immediately processed unless they arrive so often to need the CPU running at 100%. In this case the DASU delayed the evaluation of the output collecting the inputs until the throttling time interval elapses.

Value parameters

autoSendTimeInterval

the refresh rate (seconds) to automatically re-send the last calculated output even if it did not change

dasuIdentifier

the identifier of the DASU

validityThreshold

the max delay (secs) before declaring an input unreliable

Attributes

Constructor

create a DASU with the given identifier

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class DasuImpl
class DasuMock

Members list

Value members

Abstract methods

def ack(alarmIdentifier: Identifier): Boolean

ACK the alarm if the ASCE that produces it runs in this DASU.

ACK the alarm if the ASCE that produces it runs in this DASU.

The DASU delegates the acknowledgment to the ASCE that produces the alarm

Value parameters

alarmIdentifier

the identifier of the alarm to ACK

Attributes

Returns

true if the alarm has been ACKed, false otherwise

See also
def cleanUp(): Unit

Release all the resources before exiting

Release all the resources before exiting

Attributes

def enableAutoRefreshOfOutput(enable: Boolean): Unit

Enable/disable the automatic update of the output in case no new inputs arrive.

Enable/disable the automatic update of the output in case no new inputs arrive.

Most likely, the value of the output remains the same while the validity could change.

Attributes

def getAsceIds(): Set[String]

The IDs of the ASCEs running in the DASU

The IDs of the ASCEs running in the DASU

Attributes

def getInputIds(): Set[String]

The IDs of the inputs of the DASU

The IDs of the inputs of the DASU

Attributes

override def inputsReceived(iasios: Iterable[IASValue[_]]): Unit

Updates the output with the inputs received

Updates the output with the inputs received

Value parameters

iasios

the inputs received

Attributes

See also

InputsListener

Definition Classes
def start(): Try[Unit]

Start getting events from the inputs subscriber to produce the output

Start getting events from the inputs subscriber to produce the output

Attributes

Concrete fields

val autoSendTimeInterval: Integer

Auto send time interval in milliseconds

Auto send time interval in milliseconds

Attributes

val fromTemplate: Boolean

True if the DASU has been generated from a template, False otherwise

True if the DASU has been generated from a template, False otherwise

Attributes

val id: String

The ID of the DASU

The ID of the DASU

Attributes

lazy val templateInstance: Option[Int]

The number of the instance if the DASU has been generated from a template; empty otherwise

The number of the instance if the DASU has been generated from a template; empty otherwise

Attributes

val throttling: Long

The minimum allowed refresh rate when a flow of inputs arrive (i.e. the throttiling) is given by Dasu.DefaultMinAllowedRefreshRate, if not overridden by a java property

The minimum allowed refresh rate when a flow of inputs arrive (i.e. the throttiling) is given by Dasu.DefaultMinAllowedRefreshRate, if not overridden by a java property

Attributes

val validityThreshold: Integer

The validityThreshold in milliseconds

The validityThreshold in milliseconds

Attributes