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

SctApi::CrateImpl Class Reference

A representation of the crate controller. More...

#include <crateImpl.h>

Inheritance diagram for SctApi::CrateImpl:

Inheritance graph
[legend]
Collaboration diagram for SctApi::CrateImpl:

Collaboration graph
[legend]

Public Member Functions

 CrateImpl (unsigned int partition, unsigned int crate, boost::shared_ptr< SctConfiguration::Configuration > newConf=boost::shared_ptr< SctConfiguration::Configuration >())
 Tell this crate which partition it belongs to.

 ~CrateImpl ()
 Delete all the RodModules and VmeInterface.

int initialiseCrate ()
 Return number of RODs initialised.

int initialiseTim ()
 Return 0 for success.

int initialiseRod (unsigned int rod)
 Store object in local map.

int initialiseBOC (unsigned int rod)
 Return 0 for success.

int configureBOC (unsigned int rod)
 Return 0 for success.

int sendPrimList (unsigned int rod, boost::shared_ptr< PrimListWrapper > prim)
 Return 0 for success.

int sendPrimListAll (boost::shared_ptr< PrimListWrapper > prim)
 Return 0 for success.

int awaitResponse (unsigned int rod, int timeout)
 Await response from a ROD within this crate.

int awaitResponseAll (int timeout)
 Handle text messages sent by the RODs (print to stdout).

boost::shared_ptr< SctPixelRod::RodOutListgetResponse (unsigned int rod)
 Return the response to the last primlist (a wrapped copy).

void setMrsStream (MRSStream *stream)
bool getRodMessage (unsigned int rod, char *buffer, unsigned long &length)
int mdspBlockRead (unsigned int rod, long dspStart, unsigned long *buffer, unsigned long numWords)
 Proxy for RodModule method.

int slvBlockRead (unsigned int rod, long dspStart, unsigned long *buffer, unsigned long numWords, long slaveNumber)
 Proxy for RodModule method.

int slvBlockWrite (unsigned int rod, long dspStart, unsigned long *buffer, unsigned long numWords, long dspNumber)
 Proxy for RodModule method.

int mdspBlockWrite (unsigned int rod, long dspStart, unsigned long *buffer, unsigned long numWords)
 Proxy for RodModule method.

unsigned long readRodStatusReg (unsigned int rod, long regNumber)
 Proxy for RodModule method.

unsigned long readRodCommandReg (unsigned int rod, long regNumber)
 Proxy for RodModule method.

unsigned long dspSingleRead (unsigned int rod, const unsigned long dspAddr, long dspNumber)
 Proxy for RodModule method.

int dspSingleWrite (unsigned int rod, unsigned long dspAddr, unsigned long buffer, long dspNumber)
 Proxy for RodModule method.

void status ()
 Print status of rods on crate.

void primListControl (unsigned int rod, PLControl function)
 Control the primitive list running on a rod (Untested).

void printBOCSetup (unsigned int rod)
 Print all BOC paramters as set up.

std::vector< SctConfiguration::BOCChannelConfigcurrentBOCSetup (unsigned int rod)
 Return channel parameters as stored in BOC.

void printBOCRegisters (unsigned int rod)
 Print all BOC registers.

SctConfiguration::BOCGlobalConfig currentBOCRegisters (unsigned int rod)
 Return global registers as stored in BOC.

void saveBOCSetup (unsigned int rod)
 Save BOC channel setup.

void saveBOCRegisters (unsigned int rod)
 Save BOC register setup.

void restoreBOCSetup (unsigned int rod)
 Restore BOC channel setup.

void restoreBOCRegisters (unsigned int rod)
 Restore BOC register setup.

bool checkBOCLasersOn (unsigned int rod)
 Check BOC laser interlock.

void enterBOCClockBy2Mode (unsigned int rod)
 Setup BOC to sample at 20MHz.

void leaveBOCClockBy2Mode (unsigned int rod)
 Restore BOC to 40MHz mode.

void modifyBOCParam (unsigned int type, unsigned int val, bool raw)
void modifyBOCParam (unsigned int rod, unsigned int channel, unsigned int type, unsigned int val, bool raw)
 Modify parameter on BOC channel.

void lasersOff ()
 Turn all BOC laser currents to 0.

void timSetFrequency (double trigFreq, double rstFreq)
void freeTriggers ()
 Start the TIM generating regular triggers.

void stopTriggers ()
 Stop the TIM generating regular triggers.

void timL1A ()
 Tell the TIM to send an L1A.

void timCalL1A (int delay)
 Tell TIM to send Cal + L1A.

void timECR ()
void timBCR ()
void timFER ()
void sendTimBurst (int count)
 Tell TIM to send a burst of triggers.

void timVerbose ()
 Print all the Tim registers.

void timRegLoad (int reg, UINT16 val)
 Debug, load TIM register.

UINT16 timRegRead (int reg)
 Debug, read TIM register.

bool slavePresent (int rod, int index) const
 Check if a slave has been started.

void slaveStarted (int rod, int slave)
 Notify that slave was started externally...

bool RODPresent (int rod) const
 Check if a ROD has been configured.

long getRodSlot (int rod) const
int getRodRevision (int rod) const
 Get ROD Revision.

void stopPolling ()
 Stop the primitive list polling.

void resumePolling ()
 Restart the primitive list polling.


Private Types

typedef std::map< unsigned
int, std::pair< RodStatus *,
SctPixelRod::RodModule * > > 
RodMap
 Shortcut for rod map.


Private Member Functions

 CrateImpl (const CrateImpl &)
CrateImploperator= (const CrateImpl &)
void rodInitialiseThread (int rod)
void setupScanTx (unsigned int rod, unsigned int channel)
 Turn off all tx channels except channel.

void setupScanRawTx (unsigned int rod, unsigned int channel)
 Turn off all tx channels except channel (Don't map the channel numbers).

SctPixelRod::RodModulegetRod (unsigned int rod) const
 Return 0 if not found.

const RodStatus & getRodData (unsigned int rod) const
RodStatus & getRodData (unsigned int rod)
void doTextBuffer (SctPixelRod::RodModule &rod0)
 Get a text buffer from a ROD.

void pollingLoop ()

Private Attributes

RodMap rodMap
 Map to lookup RodModule objects.

SctPixelRod::TimModuletim
 TIM module.

boost::shared_ptr< SctConfiguration::Configurationconfig
 The configuration.

SctPixelRod::VmeInterface * vme
 The vmeinterface that is used by all rods and tims.

const unsigned int partition
 Which partition this crate is in.

const unsigned int crate
 The id of this crate.

MRSStream * mrs
bool m_stopPolling
bool m_enablePolling
std::list< boost::shared_ptr<
PrimListWrapper > > 
listQueueAll
 Queue for prim lists to go to all RODs.

boost::mutex vmeMutex
boost::condition primQueue_notEmpty
boost::mutex primQueue_mutex
std::auto_ptr< boost::thread > pollThread
int rodCounter

Detailed Description

A representation of the crate controller.

This is used by SCTAPI to send commands to RodModule objects. These are stored in crate memory.

Module configuration will eventually be stored here also?

Definition at line 52 of file crateImpl.h.


Member Typedef Documentation

typedef std::map<unsigned int, std::pair<RodStatus *, SctPixelRod::RodModule *> > SctApi::CrateImpl::RodMap [private]
 

Shortcut for rod map.

Definition at line 341 of file crateImpl.h.


Constructor & Destructor Documentation

SctApi::CrateImpl::CrateImpl unsigned int  partition,
unsigned int  crate,
boost::shared_ptr< SctConfiguration::Configuration newConf = boost::shared_ptr< SctConfiguration::Configuration >()
 

Tell this crate which partition it belongs to.

This creates a VmeInterface.

SctApi::CrateImpl::~CrateImpl  ) 
 

Delete all the RodModules and VmeInterface.


Member Function Documentation

int SctApi::CrateImpl::awaitResponse unsigned int  rod,
int  timeout
[virtual]
 

Await response from a ROD within this crate.

Handle text messages sent by the ROD (print to stdout)

If waiting longer than timeout seconds then return anyway

Implements SctApi::Crate.

int SctApi::CrateImpl::awaitResponseAll int  timeout  )  [virtual]
 

Handle text messages sent by the RODs (print to stdout).

If waiting longer than timeout seconds then return anyway

Implements SctApi::Crate.

bool SctApi::CrateImpl::checkBOCLasersOn unsigned int  rod  )  [virtual]
 

Check BOC laser interlock.

Implements SctApi::Crate.

int SctApi::CrateImpl::configureBOC unsigned int  rod  )  [virtual]
 

Return 0 for success.

Implements SctApi::Crate.

SctConfiguration::BOCGlobalConfig SctApi::CrateImpl::currentBOCRegisters unsigned int  rod  )  [virtual]
 

Return global registers as stored in BOC.

Implements SctApi::Crate.

std::vector<SctConfiguration::BOCChannelConfig> SctApi::CrateImpl::currentBOCSetup unsigned int  rod  )  [virtual]
 

Return channel parameters as stored in BOC.

Implements SctApi::Crate.

void SctApi::CrateImpl::doTextBuffer SctPixelRod::RodModule rod0  )  [private]
 

Get a text buffer from a ROD.

unsigned long SctApi::CrateImpl::dspSingleRead unsigned int  rod,
const unsigned long  dspAddr,
long  dspNumber
[virtual]
 

Proxy for RodModule method.

Implements SctApi::Crate.

int SctApi::CrateImpl::dspSingleWrite unsigned int  rod,
unsigned long  dspAddr,
unsigned long  buffer,
long  dspNumber
[virtual]
 

Proxy for RodModule method.

Implements SctApi::Crate.

void SctApi::CrateImpl::enterBOCClockBy2Mode unsigned int  rod  )  [virtual]
 

Setup BOC to sample at 20MHz.

Implements SctApi::Crate.

void SctApi::CrateImpl::freeTriggers  )  [virtual]
 

Start the TIM generating regular triggers.

Implements SctApi::Crate.

boost::shared_ptr<SctPixelRod::RodOutList> SctApi::CrateImpl::getResponse unsigned int  rod  )  [virtual]
 

Return the response to the last primlist (a wrapped copy).

Implements SctApi::Crate.

SctPixelRod::RodModule* SctApi::CrateImpl::getRod unsigned int  rod  )  const [private]
 

Return 0 if not found.

bool SctApi::CrateImpl::getRodMessage unsigned int  rod,
char *  buffer,
unsigned long &  length
[virtual]
 

Parameters:
rod Index of ROD
buffer Buffer to write text into
length Length of buffer allocated, on return contains amount of data copied.
Return message from ROD if present

Implements SctApi::Crate.

int SctApi::CrateImpl::getRodRevision int  rod  )  const [virtual]
 

Get ROD Revision.

Implements SctApi::Crate.

int SctApi::CrateImpl::initialiseBOC unsigned int  rod  )  [virtual]
 

Return 0 for success.

Implements SctApi::Crate.

int SctApi::CrateImpl::initialiseCrate  )  [virtual]
 

Return number of RODs initialised.

Implements SctApi::Crate.

int SctApi::CrateImpl::initialiseRod unsigned int  rod  )  [virtual]
 

Store object in local map.

Return 0 for success

Implements SctApi::Crate.

int SctApi::CrateImpl::initialiseTim  )  [virtual]
 

Return 0 for success.

Implements SctApi::Crate.

void SctApi::CrateImpl::lasersOff  )  [virtual]
 

Turn all BOC laser currents to 0.

Implements SctApi::Crate.

void SctApi::CrateImpl::leaveBOCClockBy2Mode unsigned int  rod  )  [virtual]
 

Restore BOC to 40MHz mode.

Implements SctApi::Crate.

int SctApi::CrateImpl::mdspBlockRead unsigned int  rod,
long  dspStart,
unsigned long *  buffer,
unsigned long  numWords
[virtual]
 

Proxy for RodModule method.

Implements SctApi::Crate.

int SctApi::CrateImpl::mdspBlockWrite unsigned int  rod,
long  dspStart,
unsigned long *  buffer,
unsigned long  numWords
[virtual]
 

Proxy for RodModule method.

Implements SctApi::Crate.

void SctApi::CrateImpl::modifyBOCParam unsigned int  rod,
unsigned int  channel,
unsigned int  type,
unsigned int  val,
bool  raw
[virtual]
 

Modify parameter on BOC channel.

Implements SctApi::Crate.

void SctApi::CrateImpl::modifyBOCParam unsigned int  type,
unsigned int  val,
bool  raw
[virtual]
 

Parameters:
raw If false then map module channel to BOC, otherwise channel refers to BOC channel

Implements SctApi::Crate.

void SctApi::CrateImpl::primListControl unsigned int  rod,
PLControl  function
[virtual]
 

Control the primitive list running on a rod (Untested).

Implements SctApi::Crate.

void SctApi::CrateImpl::printBOCRegisters unsigned int  rod  )  [virtual]
 

Print all BOC registers.

Implements SctApi::Crate.

void SctApi::CrateImpl::printBOCSetup unsigned int  rod  )  [virtual]
 

Print all BOC paramters as set up.

Implements SctApi::Crate.

unsigned long SctApi::CrateImpl::readRodCommandReg unsigned int  rod,
long  regNumber
[virtual]
 

Proxy for RodModule method.

Implements SctApi::Crate.

unsigned long SctApi::CrateImpl::readRodStatusReg unsigned int  rod,
long  regNumber
[virtual]
 

Proxy for RodModule method.

Implements SctApi::Crate.

void SctApi::CrateImpl::restoreBOCRegisters unsigned int  rod  )  [virtual]
 

Restore BOC register setup.

Implements SctApi::Crate.

void SctApi::CrateImpl::restoreBOCSetup unsigned int  rod  )  [virtual]
 

Restore BOC channel setup.

Implements SctApi::Crate.

void SctApi::CrateImpl::resumePolling  )  [virtual]
 

Restart the primitive list polling.

Implements SctApi::Crate.

bool SctApi::CrateImpl::RODPresent int  rod  )  const [virtual]
 

Check if a ROD has been configured.

Implements SctApi::Crate.

void SctApi::CrateImpl::saveBOCRegisters unsigned int  rod  )  [virtual]
 

Save BOC register setup.

Implements SctApi::Crate.

void SctApi::CrateImpl::saveBOCSetup unsigned int  rod  )  [virtual]
 

Save BOC channel setup.

Implements SctApi::Crate.

int SctApi::CrateImpl::sendPrimList unsigned int  rod,
boost::shared_ptr< PrimListWrapper >  prim
[virtual]
 

Return 0 for success.

Implements SctApi::Crate.

int SctApi::CrateImpl::sendPrimListAll boost::shared_ptr< PrimListWrapper >  prim  )  [virtual]
 

Return 0 for success.

Implements SctApi::Crate.

void SctApi::CrateImpl::sendTimBurst int  count  )  [virtual]
 

Tell TIM to send a burst of triggers.

Implements SctApi::Crate.

void SctApi::CrateImpl::setupScanRawTx unsigned int  rod,
unsigned int  channel
[private]
 

Turn off all tx channels except channel (Don't map the channel numbers).

void SctApi::CrateImpl::setupScanTx unsigned int  rod,
unsigned int  channel
[private]
 

Turn off all tx channels except channel.

bool SctApi::CrateImpl::slavePresent int  rod,
int  index
const [virtual]
 

Check if a slave has been started.

Implements SctApi::Crate.

void SctApi::CrateImpl::slaveStarted int  rod,
int  slave
[virtual]
 

Notify that slave was started externally...

Implements SctApi::Crate.

int SctApi::CrateImpl::slvBlockRead unsigned int  rod,
long  dspStart,
unsigned long *  buffer,
unsigned long  numWords,
long  slaveNumber
[virtual]
 

Proxy for RodModule method.

Implements SctApi::Crate.

int SctApi::CrateImpl::slvBlockWrite unsigned int  rod,
long  dspStart,
unsigned long *  buffer,
unsigned long  numWords,
long  dspNumber
[virtual]
 

Proxy for RodModule method.

Implements SctApi::Crate.

void SctApi::CrateImpl::status  )  [virtual]
 

Print status of rods on crate.

Implements SctApi::Crate.

void SctApi::CrateImpl::stopPolling  )  [virtual]
 

Stop the primitive list polling.

Implements SctApi::Crate.

void SctApi::CrateImpl::stopTriggers  )  [virtual]
 

Stop the TIM generating regular triggers.

Implements SctApi::Crate.

void SctApi::CrateImpl::timCalL1A int  delay  )  [virtual]
 

Tell TIM to send Cal + L1A.

Implements SctApi::Crate.

void SctApi::CrateImpl::timL1A  )  [virtual]
 

Tell the TIM to send an L1A.

Implements SctApi::Crate.

void SctApi::CrateImpl::timRegLoad int  reg,
UINT16  val
[virtual]
 

Debug, load TIM register.

Implements SctApi::Crate.

UINT16 SctApi::CrateImpl::timRegRead int  reg  )  [virtual]
 

Debug, read TIM register.

Implements SctApi::Crate.

void SctApi::CrateImpl::timSetFrequency double  trigFreq,
double  rstFreq
[virtual]
 

Parameters:
trigFrequency Frequency of triggers
rstFrequency Frequency of resets

Implements SctApi::Crate.

void SctApi::CrateImpl::timVerbose  )  [virtual]
 

Print all the Tim registers.

Implements SctApi::Crate.


Field Documentation

boost::shared_ptr<SctConfiguration::Configuration> SctApi::CrateImpl::config [private]
 

The configuration.

Definition at line 350 of file crateImpl.h.

const unsigned int SctApi::CrateImpl::crate [private]
 

The id of this crate.

Definition at line 359 of file crateImpl.h.

std::list<boost::shared_ptr<PrimListWrapper> > SctApi::CrateImpl::listQueueAll [private]
 

Queue for prim lists to go to all RODs.

Definition at line 371 of file crateImpl.h.

const unsigned int SctApi::CrateImpl::partition [private]
 

Which partition this crate is in.

Definition at line 356 of file crateImpl.h.

RodMap SctApi::CrateImpl::rodMap [private]
 

Map to lookup RodModule objects.

Definition at line 344 of file crateImpl.h.

SctPixelRod::TimModule* SctApi::CrateImpl::tim [private]
 

TIM module.

Definition at line 347 of file crateImpl.h.

SctPixelRod::VmeInterface* SctApi::CrateImpl::vme [private]
 

The vmeinterface that is used by all rods and tims.

Definition at line 353 of file crateImpl.h.


The documentation for this class was generated from the following file:
Generated on Thu Jul 15 09:51:59 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5