Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

SctPixelRod::BocCard Class Reference

BocCard: A class for setting-up etc. the BOC. This class contains the methods to set up a BOC. The name BocCard was chosen because the possibly more obvious "BocModule" implies that this class is derived from VmeModule. In fact it relies on RodModule for the interface to the BOC. More...

#include <BocCard.h>

Collaboration diagram for SctPixelRod::BocCard:

Collaboration graph
[legend]

Public Member Functions

 BocCard (RodModule &rod)
UINT32 getSerialNumber ()
UINT32 getManufacturer ()
UINT32 getModuleType ()
UINT32 getHardwareRevision ()
UINT32 getFirmwareRevision ()
RodModulegetRod ()
void initialize ()
void reset ()
void status ()
void getLaserCurrent (const UINT32 channel, UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
UINT32 getLaserCurrent (const UINT32 channel) throw (BocException&)
void setLaserCurrent (const UINT32 channel, const UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
void setLaserCurrent (const UINT32 channel, const UINT32 value) throw (BocException&)
void getRxThreshold (const UINT32 channel, UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
UINT32 getRxThreshold (const UINT32 channel) throw (BocException&)
void setRxThreshold (const UINT32 channel, const UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
void setRxThreshold (const UINT32 channel, const UINT32 value) throw (BocException&)
void getRxDataDelay (const UINT32 channel, UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
UINT32 getRxDataDelay (const UINT32 channel) throw (BocException&)
void setRxDataDelay (const UINT32 channel, const UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
void setRxDataDelay (const UINT32 channel, const UINT32 value) throw (BocException&)
void getStrobeDelay (const UINT32 channel, UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
UINT32 getStrobeDelay (const UINT32 channel) throw (BocException&)
void setStrobeDelay (const UINT32 channel, const UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
void setStrobeDelay (const UINT32 channel, const UINT32 value) throw (BocException&)
void getBpmStreamInhibit (const UINT32 channel, UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
UINT32 getBpmStreamInhibit (const UINT32 channel) throw (BocException&)
void setBpmStreamInhibit (const UINT32 channel, const UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
void setBpmStreamInhibit (const UINT32 channel, const UINT32 value) throw (BocException&)
void getBpmMarkSpace (const UINT32 channel, UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
UINT32 getBpmMarkSpace (const UINT32 channel) throw (BocException&)
void setBpmMarkSpace (const UINT32 channel, const UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
void setBpmMarkSpace (const UINT32 channel, const UINT32 value) throw (BocException&)
void getBpmCoarseDelay (const UINT32 channel, UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
UINT32 getBpmCoarseDelay (const UINT32 channel) throw (BocException&)
void setBpmCoarseDelay (const UINT32 channel, const UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
void setBpmCoarseDelay (const UINT32 channel, const UINT32 value) throw (BocException&)
void getBpmFineDelay (const UINT32 channel, UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
UINT32 getBpmFineDelay (const UINT32 channel) throw (BocException&)
void setBpmFineDelay (const UINT32 channel, const UINT32 buffer[], const UINT32 numChannels) throw (BocException&)
void setBpmFineDelay (const UINT32 channel, const UINT32 value) throw (BocException&)
UINT32 getClockControl ()
void setClockControl (const UINT32 value) throw (BocException&)
UINT32 getRxDataMode ()
void setRxDataMode (const UINT32 value) throw (BocException&)
UINT32 getRxDacClear ()
void clearRxDac ()
UINT32 getTxDacClear ()
void clearTxDac ()
UINT32 getVernierFinePhase ()
void setVernierFinePhase (const UINT32 value) throw (BocException&)
UINT32 getVernierClockPhase0 ()
void setVernierClockPhase0 (const UINT32 value) throw (BocException&)
UINT32 getVernierClockPhase1 ()
void setVernierClockPhase1 (const UINT32 value) throw (BocException&)
UINT32 getVernierClockPhases (UINT32 *value0, UINT32 *value1)
void setVernierClockPhases (const UINT32 value) throw (BocException&)
UINT32 getBpmClockPhase ()
void setBpmClockPhase (const UINT32 value) throw (BocException&)
UINT32 getBregClockPhase ()
void setBregClockPhase (const UINT32 value) throw (BocException&)
UINT32 getBocReset ()
void resetBoc ()
UINT32 getBpmReset ()
void resetBpm ()
UINT32 getVpinReset ()
void resetVpin ()
UINT32 getBocOkReset ()
void resetBocOk ()
UINT32 getBocStatusRegister ()
double getMonitorAdc (const UINT32 channel, std::string &units, std::string &type) throw (BocException&)
double getMonitorAdc (const UINT32 channel) throw (BocException&)
std::string getMonitorAdcUnits (const UINT32 channel) throw (BocException&)
std::string getMonitorAdcType (const UINT32 channel) throw (BocException&)
UINT32 getMonitorAdcCurrents (double currents[], UINT32 count, std::string &units) throw (BocException&)
UINT32 getMonitorAdcVoltages (double voltages[], UINT32 count, std::string &units) throw (BocException&)
UINT32 getMonitorAdcTemps (double temps[], UINT32 count, std::string &units) throw (BocException&)
UINT32 getMonitorAdcCurrentsCount ()
UINT32 getMonitorAdcVoltagesCount ()
UINT32 getMonitorAdcTempsCount ()
void resetMonitorAdc ()
UINT32 getInterlockStatus (UINT32 *localEnable, UINT32 *remoteEnable)
UINT32 getInterlockStatus ()

Private Member Functions

UINT32 singleRead (const UINT32 bocAddress) throw (BocException&)
 Read and write to single BOC registers.

void singleWrite (const UINT32 bocAddress, const UINT32 value) throw (BocException&)
void blockRead (const UINT32 bocAddress, UINT32 buffer[], const INT32 length)
 Read and write to a block of BOC registers.

void blockWrite (const UINT32 bocAddress, const UINT32 buffer[], const INT32 length)
UINT32 bpmRead (const UINT32 bpm, const UINT32 stream, const UINT32 offset)
 Read and write to BPM streams.

void bpmWrite (const UINT32 bpm, const UINT32 stream, const UINT32 offset, const UINT32 value)

Private Attributes

RodModulem_myrod
 Handle for the ROD through which this BOC is accessed.

UINT32 m_serialNumber
 BOC serial number (read in initialize method). Set on a pair of hex switches.

UINT32 m_manufacturer
 BOC manufacturer (read in initialize method). Should be 0xCB.

UINT32 m_moduleType
 BOC module type (read in initialize method).

UINT32 m_hardwareRevision
 BOC hardware revision (read in initialize method).

UINT32 m_firmwareRevision
 BOC firmware revision (read in initialize method).

UINT32 m_bocType
 BOC type.

UINT32 m_bocMask
 BOC setup bus mask.


Detailed Description

BocCard: A class for setting-up etc. the BOC. This class contains the methods to set up a BOC. The name BocCard was chosen because the possibly more obvious "BocModule" implies that this class is derived from VmeModule. In fact it relies on RodModule for the interface to the BOC.

Author:
John Hill (hill@hep.phy.cam.ac.uk) - originator

Definition at line 151 of file BocCard.h.


Member Function Documentation

void SctPixelRod::BocCard::blockRead const UINT32  address,
UINT32  buffer[],
const INT32  wordCount
[private]
 

Read and write to a block of BOC registers.

This method reads a block of 32-bit words from a BOC. Because the setup bus is slow, we have to wait after each read until the BOC_BUSY_0 bit is cleared. Hence we use the singleRead method in a loop.

Definition at line 2690 of file BocCard.cxx.

References singleRead().

Here is the call graph for this function:

void SctPixelRod::BocCard::blockWrite const UINT32  address,
const UINT32  buffer[],
const INT32  wordCount
[private]
 

This method writes a block of 32-bit words to a BOC. Because the setup bus is slow, we have to wait after each read until the BOC_BUSY_0 bit is cleared. Hence we use the singleWrite method in a loop.

Definition at line 2710 of file BocCard.cxx.

References singleWrite().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::bpmRead const UINT32  bpm,
const UINT32  stream,
const UINT32  offset
[private]
 

Read and write to BPM streams.

This method reads from a BPM location, identified by BPM #, stream # and offset.

Definition at line 2736 of file BocCard.cxx.

References singleRead().

Here is the call graph for this function:

void SctPixelRod::BocCard::bpmWrite const UINT32  bpm,
const UINT32  stream,
const UINT32  offset,
const UINT32  value
[private]
 

This method writes to a BPM location, identified by BPM #, stream # and offset.

Definition at line 2760 of file BocCard.cxx.

References singleWrite().

Referenced by initialize().

Here is the call graph for this function:

void SctPixelRod::BocCard::clearRxDac  ) 
 

clearRxDac() clears the Rx Dac register by writing 1 followed by 0 to the register. A method to write a specific value to the register is not provided, as this is not a meaningful operation for the user.

Definition at line 1622 of file BocCard.cxx.

References m_bocType, SctPixelRod::PRE_PRODUCTION_BOC, and singleWrite().

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), reset(), and SctApi::CrateImpl::restoreBOCRegisters().

Here is the call graph for this function:

void SctPixelRod::BocCard::clearTxDac  ) 
 

clearTxDac() clears the Tx Dac register by writing 1 followed by 0 to the register. A method to write a specific value to the register is not provided, as this is not a meaningful operation for the user.

Definition at line 1677 of file BocCard.cxx.

References m_bocType, SctPixelRod::PRE_PRODUCTION_BOC, and singleWrite().

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), reset(), and SctApi::CrateImpl::restoreBOCRegisters().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getBocOkReset  ) 
 

getBocOkReset() reads the contents of the BOC_OK Reset register.

Definition at line 2090 of file BocCard.cxx.

References m_bocType, and singleRead().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getBocReset  ) 
 

getBocReset() reads the contents of the BOC Reset register.

Definition at line 1940 of file BocCard.cxx.

References m_bocType, SctPixelRod::PRE_PRODUCTION_BOC, and singleRead().

Referenced by SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getBocStatusRegister  ) 
 

getBocStatusRegister() reads the contents of the BOC Status register. This is a readonly register, hence there is no "set" method provided.

Definition at line 2133 of file BocCard.cxx.

References m_bocMask, m_bocType, and singleRead().

Referenced by getInterlockStatus(), SctApi::CrateImpl::printBOCRegisters(), and status().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getBpmClockPhase  ) 
 

getBpmClockPhase() reads the contents of the BPM Clock Phase register.

Definition at line 1870 of file BocCard.cxx.

References m_bocMask, and singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

void SctPixelRod::BocCard::getBpmCoarseDelay const UINT32  channel,
UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

getBpmCoarseDelay() reads the contents of one or more BPM coarse delay registers. The method is overloaded to return either a number of consecutive channels from a starting channel number in a buffer, or a single channel via the method return value. "Channel" refers to the BOC channel number - the BPM stream number mapping is dealt with internally.

Definition at line 1200 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::currentBOCSetup(), and SctApi::CrateImpl::printBOCSetup().

void SctPixelRod::BocCard::getBpmFineDelay const UINT32  channel,
UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

getBpmFineDelay() reads the contents of one or more BPM fine delay registers. The method is overloaded to return either a number of consecutive channels from a starting channel number in a buffer, or a single channel via the method return value. "Channel" refers to the BOC channel number - the BPM stream number mapping is dealt with internally.

Definition at line 1335 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::currentBOCSetup(), and SctApi::CrateImpl::printBOCSetup().

void SctPixelRod::BocCard::getBpmMarkSpace const UINT32  channel,
UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

getBpmMarkSpace() reads the contents of one or more BPM mark/space registers. The method is overloaded to return either a number of consecutive channels from a starting channel number in a buffer, or a single channel via the method return value. "Channel" refers to the BOC channel number - the BPM stream number mapping is dealt with internally.

Definition at line 1064 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::currentBOCSetup(), and SctApi::CrateImpl::printBOCSetup().

UINT32 SctPixelRod::BocCard::getBpmReset  ) 
 

getBpmReset() reads the contents of the BPM Reset register.

Definition at line 1986 of file BocCard.cxx.

References m_bocType, SctPixelRod::PRE_PRODUCTION_BOC, and singleRead().

Referenced by SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

void SctPixelRod::BocCard::getBpmStreamInhibit const UINT32  channel,
UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

getBpmStreamInhibit() reads the contents of one or more BPM stream inhibit registers. The method is overloaded to return either a number of consecutive channels from a starting channel number in a buffer, or a single channel via the method return value. "Channel" refers to the BOC channel number - the BPM stream number mapping is dealt with internally.

Definition at line 928 of file BocCard.cxx.

UINT32 SctPixelRod::BocCard::getBregClockPhase  ) 
 

getBregClockPhase() reads the contents of the BREG Clock Phase register.

Definition at line 1904 of file BocCard.cxx.

References m_bocMask, and singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getClockControl  ) 
 

getClockControl() reads the contents of the Clock Control register.

Definition at line 1474 of file BocCard.cxx.

References m_bocType, SctPixelRod::PRE_PRODUCTION_BOC, and singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getInterlockStatus UINT32 *  localEnable,
UINT32 *  remoteEnable
 

getInterlockStatus() returns the status of the laser interlocks. The returned value is 0 if there is an interlock, 1 if not. The relevant bits on the status register are used. The state of the local enable and remote enable can be returned in the arguments, to give extra information if required - the method is overloaded so that the user can avoid this complication if necessary.

Definition at line 2545 of file BocCard.cxx.

References getBocStatusRegister(), m_bocType, and SctPixelRod::PRE_PRODUCTION_BOC.

Referenced by SctApi::CrateImpl::checkBOCLasersOn().

Here is the call graph for this function:

void SctPixelRod::BocCard::getLaserCurrent const UINT32  channel,
UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

getLaserCurrent() reads the contents of one or more Tx laser current DACs. The method is overloaded to return either a number of consecutive channels from a starting channel number in a buffer, or a single channel via the method return value.

Definition at line 278 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::currentBOCSetup(), and SctApi::CrateImpl::printBOCSetup().

double SctPixelRod::BocCard::getMonitorAdc const UINT32  channel,
std::string &  units,
std::string &  type
throw (BocException&)
 

getMonitorAdc() gets the reading for a single channel of the monitoring ADC on the BOC. The returned value is in "natural" units: mA for current, V for voltage and degrees C for temperature. The method is now (11 March 2004) overloaded to provide the units and type of quantity monitored if desired.

Definition at line 2159 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::getBOCMonitorArray().

UINT32 SctPixelRod::BocCard::getMonitorAdcCurrents double  currents[],
UINT32  count,
std::string &  units
throw (BocException&)
 

getMonitorAdcCurrents() returns the PIN currents in an array, together with a count of the number of currents returned and the units used.

Definition at line 2347 of file BocCard.cxx.

References SctPixelRod::MONITOR_CURRENT.

UINT32 SctPixelRod::BocCard::getMonitorAdcCurrentsCount  ) 
 

getMonitorAdcCurrentsCount() returns the number of PIN currents monitored. This is to allow the user to provide an array of adequate length to the method getMonitorAdcCurrents.

Definition at line 2381 of file BocCard.cxx.

References SctPixelRod::MONITOR_CURRENT.

UINT32 SctPixelRod::BocCard::getMonitorAdcTemps double  temps[],
UINT32  count,
std::string &  units
throw (BocException&)
 

getMonitorAdcTemps() returns the temperatures in an array, together with a count of the number of temperatures returned and the units used.

Definition at line 2463 of file BocCard.cxx.

UINT32 SctPixelRod::BocCard::getMonitorAdcTempsCount  ) 
 

getMonitorAdcTempsCount() returns the number of temperatures monitored. This is to allow the user to provide an array of adequate length to the method getMonitorAdcTemps.

Definition at line 2497 of file BocCard.cxx.

std::string SctPixelRod::BocCard::getMonitorAdcType const UINT32  channel  )  throw (BocException&)
 

getMonitorAdcType() returns the type of information monitored (PIN current, PIN voltage or temperature).

Definition at line 2282 of file BocCard.cxx.

References SctPixelRod::MONITOR_CURRENT.

std::string SctPixelRod::BocCard::getMonitorAdcUnits const UINT32  channel  )  throw (BocException&)
 

getMonitorAdcUnits() returns the units in which the channel monitoring is reported by getMonitorAdc().

Definition at line 2314 of file BocCard.cxx.

References SctPixelRod::MONITOR_CURRENT.

UINT32 SctPixelRod::BocCard::getMonitorAdcVoltages double  voltages[],
UINT32  count,
std::string &  units
throw (BocException&)
 

getMonitorAdcVoltages() returns the PIN voltages in an array, together with a count of the number of voltages returned and the units used.

Definition at line 2405 of file BocCard.cxx.

UINT32 SctPixelRod::BocCard::getMonitorAdcVoltagesCount  ) 
 

getMonitorAdcVoltagesCount() returns the number of PIN voltages monitored. This is to allow the user to provide an array of adequate length to the method getMonitorAdcVoltages.

Definition at line 2439 of file BocCard.cxx.

UINT32 SctPixelRod::BocCard::getRxDacClear  ) 
 

getRxDacClear() reads the contents of the Rx Dac Clear register.

Definition at line 1592 of file BocCard.cxx.

References m_bocType, SctPixelRod::PRE_PRODUCTION_BOC, and singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

void SctPixelRod::BocCard::getRxDataDelay const UINT32  channel,
UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

getRxDataDelay() reads the contents of one or more Rx data delay registers. The method is overloaded to return either a number of consecutive channels from a starting channel number in a buffer, or a single channel via the method return value.

Definition at line 595 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::currentBOCSetup(), and SctApi::CrateImpl::printBOCSetup().

UINT32 SctPixelRod::BocCard::getRxDataMode  ) 
 

getRxDataMode() reads the contents of the Data Mode register.

Definition at line 1551 of file BocCard.cxx.

References singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

void SctPixelRod::BocCard::getRxThreshold const UINT32  channel,
UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

getRxThreshold() reads the contents of one or more Rx threshold DACs. The method is overloaded to return either a number of consecutive channels from a starting channel number in a buffer, or a single channel via the method return value.

Definition at line 436 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::currentBOCSetup(), and SctApi::CrateImpl::printBOCSetup().

void SctPixelRod::BocCard::getStrobeDelay const UINT32  channel,
UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

getStrobeDelay() reads the contents of one or more strobe delay registers. The method is overloaded to return either a number of consecutive channels from a starting channel number in a buffer, or a single channel via the method return value. Note that these registers no longer do anything that is of practical use - the methods are retained for completeness and might be made private at a later date.

Definition at line 758 of file BocCard.cxx.

UINT32 SctPixelRod::BocCard::getTxDacClear  ) 
 

getTxDacClear() reads the contents of the Tx Dac Clear register.

Definition at line 1647 of file BocCard.cxx.

References m_bocType, SctPixelRod::PRE_PRODUCTION_BOC, and singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getVernierClockPhase0  ) 
 

getVernierClockPhase0() reads the contents of the Vernier Clock Phase register 0. This is one of two clock phase registers allowing the user to set a delay of up to 48 nsec.

Definition at line 1737 of file BocCard.cxx.

References singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), getVernierClockPhases(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getVernierClockPhase1  ) 
 

getVernierClockPhase1() reads the contents of the Vernier Clock Phase register 1. This is one of two clock phase registers allowing the user to set a delay of up to 48 nsec.

Definition at line 1778 of file BocCard.cxx.

References singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), getVernierClockPhases(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getVernierClockPhases UINT32 *  value0,
UINT32 *  value1
 

getVernierClockPhases() reads the contents of the two Vernier Clock Phase registers. These two clock phase registers allow the user to set a delay of up to 48 nsec. The return contains the sum of the 2 delays.

Definition at line 1819 of file BocCard.cxx.

References getVernierClockPhase0(), and getVernierClockPhase1().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getVernierFinePhase  ) 
 

getVernierFinePhase() reads the contents of the Vernier Fine Phase register.

Definition at line 1701 of file BocCard.cxx.

References m_bocMask, and singleRead().

Referenced by SctApi::CrateImpl::currentBOCRegisters(), and SctApi::CrateImpl::printBOCRegisters().

Here is the call graph for this function:

UINT32 SctPixelRod::BocCard::getVpinReset  ) 
 

getVpinReset() reads the contents of the Vpin Reset register.

Definition at line 2041 of file BocCard.cxx.

References m_bocType, and singleRead().

Here is the call graph for this function:

void SctPixelRod::BocCard::initialize  ) 
 

initialize() sets the BOC into a well-defined state. Power-on should set the BOC into much the same state, but we may wish to do this to recover that state without power cycling.

Activities: Reset the BOC Read the read-only registers Set clock registers Initialize the I2C busses by writing to each in turn Set 0xFF into the Rx thresholds Set 0x00 into the data delays, strobe delays and laser current DACs Reset the BPM12 chips Set the defaults values for the BPM12 chips (including the test structures).

Definition at line 98 of file BocCard.cxx.

References bpmWrite(), clearRxDac(), clearTxDac(), m_bocMask, m_bocType, m_firmwareRevision, m_hardwareRevision, m_manufacturer, m_moduleType, m_serialNumber, resetBoc(), resetBocOk(), resetBpm(), resetMonitorAdc(), resetVpin(), setBpmClockPhase(), setBpmCoarseDelay(), setBpmFineDelay(), setBpmMarkSpace(), setBpmStreamInhibit(), setBregClockPhase(), setClockControl(), setLaserCurrent(), setRxDataDelay(), setRxDataMode(), setRxThreshold(), setStrobeDelay(), setVernierClockPhase0(), setVernierClockPhase1(), setVernierFinePhase(), and singleRead().

Referenced by SctApi::CrateImpl::initialiseBOC().

Here is the call graph for this function:

void SctPixelRod::BocCard::reset  ) 
 

reset() issues a reset to all parts of the BOC.

Definition at line 218 of file BocCard.cxx.

References clearRxDac(), clearTxDac(), resetBoc(), resetBocOk(), resetBpm(), and resetVpin().

Here is the call graph for this function:

void SctPixelRod::BocCard::resetBoc  ) 
 

resetBoc() resets the BOC by writing 1 followed by 0 to the Reset register. A method to write a specific value to the register is not provided as this would not be a useful operation.

Definition at line 1970 of file BocCard.cxx.

References singleWrite().

Referenced by initialize(), and reset().

Here is the call graph for this function:

void SctPixelRod::BocCard::resetBocOk  ) 
 

resetBocOk() resets the BOC_OK register on the BOC by writing 1 followed by 0 to the BOC_OK Reset register. A method to write a specific value to the register is not provided as this would not be a useful operation.

Definition at line 2113 of file BocCard.cxx.

References m_bocType, and singleWrite().

Referenced by initialize(), and reset().

Here is the call graph for this function:

void SctPixelRod::BocCard::resetBpm  ) 
 

resetBpm() resets the BPM registers on the BOC by writing 1 followed by 0 to the BPM Reset register. A method to write a specific value to the register is not provided as this would not be a useful operation.

Definition at line 2015 of file BocCard.cxx.

References m_bocType, SctPixelRod::PRE_PRODUCTION_BOC, and singleWrite().

Referenced by initialize(), and reset().

Here is the call graph for this function:

void SctPixelRod::BocCard::resetMonitorAdc  ) 
 

resetMonitorAdc() initialises the monitoring ADC chip. This is done in the initialisation method, but can be redone any time.

Definition at line 2520 of file BocCard.cxx.

References m_bocType, and singleWrite().

Referenced by initialize().

Here is the call graph for this function:

void SctPixelRod::BocCard::resetVpin  ) 
 

resetVpin() resets the Vpin register on the BOC by writing 1 followed by 0 to the Vpin Reset register. A method to write a specific value to the register is not provided as this would not be a useful operation.

Definition at line 2065 of file BocCard.cxx.

References m_bocType, m_myrod, singleWrite(), and SctPixelRod::RodModule::sleep().

Referenced by initialize(), and reset().

Here is the call graph for this function:

void SctPixelRod::BocCard::setBpmClockPhase const UINT32  value  )  throw (BocException&)
 

setBpmClockPhase() writes the contents of the BPM Clock Phase register.

Definition at line 1884 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCRegisters().

void SctPixelRod::BocCard::setBpmCoarseDelay const UINT32  channel,
const UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

setBpmCoarseDelay() writes the contents of one or more BPM coarse delay registers. The method is overloaded to write either a number of consecutive channels from a starting channel number, or a single channel. "Channel" refers to the BOC channel number - the BPM stream number mapping is dealt with internally.

Definition at line 1265 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCSetup().

void SctPixelRod::BocCard::setBpmFineDelay const UINT32  channel,
const UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

setBpmFineDelay() writes the contents of one or more BPM fine delay registers. The method is overloaded to write either a number of consecutive channels from a starting channel number, or a single channel. "Channel" refers to the BOC channel number - the BPM stream number mapping is dealt with internally.

Definition at line 1400 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCSetup().

void SctPixelRod::BocCard::setBpmMarkSpace const UINT32  channel,
const UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

setBpmMarkSpace() writes the contents of one or more BPM mark/space registers. The method is overloaded to write either a number of consecutive channels from a starting channel number, or a single channel. "Channel" refers to the BOC channel number - the BPM stream number mapping is dealt with internally.

Definition at line 1129 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCSetup().

void SctPixelRod::BocCard::setBpmStreamInhibit const UINT32  channel,
const UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

setBpmStreamInhibit() writes the contents of one or more BPM stream inhibit registers. The method is overloaded to write either a number of consecutive channels from a starting channel number, or a single channel. "Channel" refers to the BOC channel number - the BPM stream number mapping is dealt with internally.

Definition at line 994 of file BocCard.cxx.

Referenced by initialize().

void SctPixelRod::BocCard::setBregClockPhase const UINT32  value  )  throw (BocException&)
 

setBregClockPhase() writes the contents of the BREG Clock Phase register.

Definition at line 1918 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCRegisters().

void SctPixelRod::BocCard::setClockControl const UINT32  value  )  throw (BocException&)
 

setClockControl() writes the contents of the Clock Control register.

Definition at line 1509 of file BocCard.cxx.

References SctPixelRod::PRE_PRODUCTION_BOC.

Referenced by SctApi::CrateImpl::configureBOC(), SctApi::CrateImpl::enterBOCClockBy2Mode(), initialize(), SctApi::CrateImpl::leaveBOCClockBy2Mode(), and SctApi::CrateImpl::restoreBOCRegisters().

void SctPixelRod::BocCard::setLaserCurrent const UINT32  channel,
const UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

setLaserCurrent() writes the contents of one or more Tx laser current DACs. The method is overloaded to write either a number of consecutive channels from a starting channel number, or a single channel.

Definition at line 353 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::lasersOff(), SctApi::CrateImpl::modifyBOCParam(), SctApi::CrateImpl::restoreBOCSetup(), SctApi::CrateImpl::setupScanRawTx(), and SctApi::CrateImpl::setupScanTx().

void SctPixelRod::BocCard::setRxDataDelay const UINT32  channel,
const UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

setRxDataDelay() writes the contents of one or more Rx data delay registers. The method is overloaded to write either a number of consecutive channels from a starting channel number, or a single channel.

Definition at line 674 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCSetup().

void SctPixelRod::BocCard::setRxDataMode const UINT32  value  )  throw (BocException&)
 

setRxDataMode() writes the contents of the Data Mode register.

Definition at line 1568 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), SctApi::CrateImpl::enterBOCClockBy2Mode(), initialize(), SctApi::CrateImpl::leaveBOCClockBy2Mode(), and SctApi::CrateImpl::restoreBOCRegisters().

void SctPixelRod::BocCard::setRxThreshold const UINT32  channel,
const UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

setRxThreshold() writes the contents of one or more Rx threshold DACs. The method is overloaded to write either a number of consecutive channels from a starting channel number, or a single channel.

Definition at line 513 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCSetup().

void SctPixelRod::BocCard::setStrobeDelay const UINT32  channel,
const UINT32  buffer[],
const UINT32  numChannels
throw (BocException&)
 

setStrobeDelay() writes the contents of one or more strobe delay registers. The method is overloaded to write either a number of consecutive channels from a starting channel number, or a single channel. Note that these registers no longer do anything that is of practical use - the methods are retained for completeness and might be made private at a later date.

Definition at line 840 of file BocCard.cxx.

Referenced by initialize().

void SctPixelRod::BocCard::setVernierClockPhase0 const UINT32  value  )  throw (BocException&)
 

setVernierClockPhase0() writes the contents of the Vernier Clock Phase register 0. This is one of two clock phase registers allowing the user to set a delay of up to 48 nsec.

Definition at line 1756 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCRegisters().

void SctPixelRod::BocCard::setVernierClockPhase1 const UINT32  value  )  throw (BocException&)
 

setVernierClockPhase1() writes the contents of the Vernier Clock Phase register 1. This is one of two clock phase registers allowing the user to set a delay of up to 48 nsec.

Definition at line 1797 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCRegisters().

void SctPixelRod::BocCard::setVernierClockPhases const UINT32  value  )  throw (BocException&)
 

setVernierClockPhases() writes the contents of the Vernier Clock Phase registers. These two clock phase registers allow the user to set a delay of up to 48 nsec. An exception is thrown if the total delay is >48nsec

Definition at line 1843 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::modifyBOCParam().

void SctPixelRod::BocCard::setVernierFinePhase const UINT32  value  )  throw (BocException&)
 

setVernierFinePhase() writes the contents of the Vernier Fine Phase register.

Definition at line 1715 of file BocCard.cxx.

Referenced by SctApi::CrateImpl::configureBOC(), initialize(), SctApi::CrateImpl::modifyBOCParam(), and SctApi::CrateImpl::restoreBOCRegisters().

UINT32 SctPixelRod::BocCard::singleRead const UINT32  address  )  throw (BocException&) [private]
 

Read and write to single BOC registers.

This method reads a single 32-bit word from a BOC address. An exception will be thrown if the BOC_BUSY_0 bit does not clear within a second.

Definition at line 2626 of file BocCard.cxx.

Referenced by blockRead(), bpmRead(), getBocOkReset(), getBocReset(), getBocStatusRegister(), getBpmClockPhase(), getBpmReset(), getBregClockPhase(), getClockControl(), getRxDacClear(), getRxDataMode(), getTxDacClear(), getVernierClockPhase0(), getVernierClockPhase1(), getVernierFinePhase(), getVpinReset(), and initialize().

void SctPixelRod::BocCard::singleWrite const UINT32  address,
const UINT32  value
throw (BocException&) [private]
 

This method writes a single 32-bit word to a BOC address. An exception will be thrown if the BOC_BUSY_0 bit does not clear within 1 second.

Definition at line 2658 of file BocCard.cxx.

Referenced by blockWrite(), bpmWrite(), clearRxDac(), clearTxDac(), resetBoc(), resetBocOk(), resetBpm(), resetMonitorAdc(), and resetVpin().

void SctPixelRod::BocCard::status  ) 
 

This method reports the status of the BOC. For now, it simply prints to standard output.

Definition at line 237 of file BocCard.cxx.

References getBocStatusRegister(), m_bocType, m_firmwareRevision, m_hardwareRevision, m_manufacturer, m_moduleType, m_serialNumber, and SctPixelRod::PRE_PRODUCTION_BOC.

Referenced by SctApi::CrateImpl::initialiseBOC(), and SctApi::CrateImpl::status().

Here is the call graph for this function:


Field Documentation

UINT32 SctPixelRod::BocCard::m_bocMask [private]
 

BOC setup bus mask.

This is the maximum width of any data to be read or written via the setup bus.

Definition at line 695 of file BocCard.h.

Referenced by getBocStatusRegister(), getBpmClockPhase(), getBregClockPhase(), getVernierFinePhase(), and initialize().

UINT32 SctPixelRod::BocCard::m_bocType [private]
 

BOC type.

This identifies the different BOC revisions, deduced from the upper 3 bits of the Hardware Revision register (modified 3 March 2004).

Definition at line 691 of file BocCard.h.

Referenced by clearRxDac(), clearTxDac(), getBocOkReset(), getBocReset(), getBocStatusRegister(), getBpmReset(), getClockControl(), getInterlockStatus(), getRxDacClear(), getTxDacClear(), getVpinReset(), initialize(), resetBocOk(), resetBpm(), resetMonitorAdc(), resetVpin(), and status().

UINT32 SctPixelRod::BocCard::m_firmwareRevision [private]
 

BOC firmware revision (read in initialize method).

Definition at line 686 of file BocCard.h.

Referenced by initialize(), and status().

UINT32 SctPixelRod::BocCard::m_hardwareRevision [private]
 

BOC hardware revision (read in initialize method).

This variable holds the lower 5 bits of the register only now.

Definition at line 682 of file BocCard.h.

Referenced by initialize(), and status().

UINT32 SctPixelRod::BocCard::m_manufacturer [private]
 

BOC manufacturer (read in initialize method). Should be 0xCB.

Definition at line 673 of file BocCard.h.

Referenced by initialize(), and status().

UINT32 SctPixelRod::BocCard::m_moduleType [private]
 

BOC module type (read in initialize method).

Definition at line 677 of file BocCard.h.

Referenced by initialize(), and status().

RodModule* SctPixelRod::BocCard::m_myrod [private]
 

Handle for the ROD through which this BOC is accessed.

Definition at line 665 of file BocCard.h.

Referenced by resetVpin().

UINT32 SctPixelRod::BocCard::m_serialNumber [private]
 

BOC serial number (read in initialize method). Set on a pair of hex switches.

Definition at line 669 of file BocCard.h.

Referenced by initialize(), and status().


The documentation for this class was generated from the following files:
Generated on Fri Sep 16 18:04:46 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5