Table of Contents Previous Chapter ACIS

12.0 Radiation Monitor Device (36-53237 01)

12.1 Purpose

The purpose of the Radiation Monitor Device is to provide access to the radiation monitor interface logic.

12.2 Uses

The Radiation Monitor Device class provides the following features:

  1. Provide current state of the radiation monitor flag

  2. Handle interrupts from radiation monitor

12.3 Organization

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).

12.4 Scenarios

12.4.1 Use 1: Provide current state of the radiation monitor flag

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.

12.4.2 Use 2: Handle interrupts from radiation monitor

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().


12.5 Class RadDevice

Documentation:
This class represents the radiation monitor device. It provides access to the flag and handles radiation monitor interrupts.
Export Control:
Public
Cardinality:
n

Hierarchy:

Superclasses:

IntrDevice

Implementation Uses:

BepReg

Public Interface:

Operations:

isAsserted()
handleInterrupt()
Concurrency:
Synchronous
Persistence:
Transient

12.5.1 isAsserted()

Public member of:
RadDevice
Return Class:
Boolean
Documentation:
This function indicates whether or not the radiation monitor is currently asserted by reading the Back End's status register using bepReg.getStatus(), and then testing the radiation status bit. If so, it returns BoolTrue. If the flag is not asserted, it returns BoolFalse.
Concurrency:
Synchronous

12.5.2 handleInterrupt()

Public member of:
RadDevice
Return Class:
void
Documentation:
This function handles radiation monitor interrupts. It first clears the interrupt cause, using bepReg.pulse(), and then invokes the device's callback function, using IntrDevice::invokeCallback().
Concurrency:
Guarded
 

Table of Contents Next Chapter