Table of Contents Previous Chapter
The purpose of the Radiation Monitor Device is to provide access to the radiation monitor interface logic.
The Radiation Monitor Device class provides the following features:
Figure 30 illustrates the relationships used by the RadDevice class.
FIGURE 30. Radiation Monitor Device Class Relationships
RadDevice- This class is a subclass of IntrDevice and is responsible for providing access to the Back End Processor's Radiation Monitor logic. This class provides functions to test the current status of the monitor (isAsserted) and to handle interrupts from the monitor (handleInterrupt).
BepReg- This class represents the lowest level hardware access to the features provided by the Back End hardware control, status, and pulse registers. The RadDevice class uses this class to read the Back End's status regsiter (getStatus) and to reset radiation monitor interrupts using the Back End's pulse register (pulse).
To obtain the current state of the radiation monitor flag, the client calls radDevice.isAsserted(). The member function isAsserted() then reads the Back End's status register, using bepReg.getStatus(). It then tests the radiation monitor status bit, and returns the appropriate answer to its caller.
When the hardware receives a command indicating that the radiation monitor has been asserted, it generates an interrupt. The interrupt dispatcher then invokes radDevice.handleInterrupt(). The function handleInterrupt() then clears the latched interrupt cause using bepReg.pulse(), and then invokes the interrupt callback, if one is installed, using the inherited member function, IntrDevice::invokeCallback().
Hierarchy:
Superclasses:
IntrDevice
Implementation Uses:
BepReg
Public Interface:
Operations:
isAsserted() handleInterrupt()