SctApi::Crate Class Reference

A representation of the crate controller. More...

#include <crate.h>

Inheritance diagram for SctApi::Crate:

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

Collaboration graph
[legend]

Public Types

enum  PLControl { C_PL_STOP, C_PL_PAUSE, C_PL_RESUME, C_PL_CANCEL }
 C_PL_STOP Abort the current primitiveList C_PL_PAUSE Pause the current primitiveList C_PL_RESUME Resume the current primitiveList C_PL_CANCEL Cancel the recently sent primitiveList (only if not started execution). More...

Public Member Functions

 Crate (const Sct::UCID &ucid)
 An empty default constructor.
virtual ~Crate ()
 Delete all the RodModules and VmeInterface.
const Sct::UCIDucid () const
virtual int initialiseCrate ()=0
 Return number of RODs initialised.
virtual int initialiseTim ()=0
 Return 0 for success.
virtual int initialiseRod (unsigned int rod)=0
 Store object in local map.
virtual int initialiseBOC (unsigned int rod)=0
 Return 0 for success.
virtual int configureBOC (unsigned int rod)=0
 Return 0 for success.
virtual int sendPrimList (unsigned int rod, boost::shared_ptr< PrimListWrapper > prim)=0
 Return 0 for success.
virtual int sendPrimListAll (boost::shared_ptr< PrimListWrapper > prim)=0
 Return 0 for success.
virtual int awaitResponse (unsigned int rod, int timeout)=0
 Await response from a ROD within this crate.
virtual int awaitResponseAll (int timeout)=0
 Handle text messages sent by the RODs (print to stdout).
virtual boost::shared_ptr<
SctPixelRod::RodOutList > 
getResponse (unsigned int rod)=0
 Return the response to the last primlist (a wrapped copy).
virtual void setMrsStream (MRSStream *stream)=0
virtual bool getRodMessage (unsigned int rod, char *buffer, unsigned long &length)=0
virtual int mdspBlockRead (unsigned int rod, long dspStart, unsigned long *buffer, unsigned long numWords)=0
 Proxy for RodModule method.
virtual int slvBlockRead (unsigned int rod, long dspStart, unsigned long *buffer, unsigned long numWords, long slaveNumber)=0
 Proxy for RodModule method.
virtual int slvBlockWrite (unsigned int rod, long dspStart, unsigned long *buffer, unsigned long numWords, long dspNumber)=0
 Proxy for RodModule method.
virtual int mdspBlockWrite (unsigned int rod, long dspStart, unsigned long *buffer, unsigned long numWords)=0
 Proxy for RodModule method.
virtual unsigned long readRodStatusReg (unsigned int rod, long regNumber)=0
 Proxy for RodModule method.
virtual unsigned long readRodCommandReg (unsigned int rod, long regNumber)=0
 Proxy for RodModule method.
virtual unsigned long dspSingleRead (unsigned int rod, const unsigned long dspAddr, long dspNumber)=0
 Proxy for RodModule method.
virtual int dspSingleWrite (unsigned int rod, unsigned long dspAddr, unsigned long buffer, long dspNumber)=0
 Proxy for RodModule method.
virtual std::string status ()=0
 Print status of rods on crate.
virtual std::list< unsigned > getListOfRods () const =0
virtual void primListControl (unsigned int rod, PLControl function)=0
 Control the primitive list running on a rod (Untested).
virtual void printBOCSetup (unsigned int rod)=0
 Print all BOC paramters as set up.
virtual std::vector< SctConfiguration::BOCChannelConfigcurrentBOCSetup (unsigned int rod)=0
 Return channel parameters as stored in BOC.
virtual void printBOCRegisters (unsigned int rod)=0
 Print all BOC registers.
virtual SctConfiguration::BOCGlobalConfig currentBOCRegisters (unsigned int rod)=0
 Return global registers as stored in BOC.
virtual void saveBOCSetup (unsigned int rod, BankType bank)=0
 Save BOC channel setup.
virtual void saveBOCRegisters (unsigned int rod, BankType bank)=0
 Save BOC register setup.
virtual void restoreBOCSetup (unsigned int rod, BankType bank)=0
 Restore BOC channel setup.
virtual void restoreBOCRegisters (unsigned int rod, BankType bank)=0
 Restore BOC register setup.
virtual bool checkBOCLasersOn (unsigned int rod)=0
 Check BOC laser interlock.
virtual void enterBOCClockBy2Mode (unsigned int rod)=0
 Setup BOC to sample at 20MHz.
virtual void leaveBOCClockBy2Mode (unsigned int rod)=0
 Restore BOC to 40MHz mode.
virtual std::vector< double > getBOCMonitorArray (unsigned int rod)=0
 Return 12 monitor values from BOC ADCs.
virtual void modifyTIMParam (unsigned int type, unsigned int val)=0
 Modify parameter on TIM.
virtual void modifyBOCParam (unsigned int type, unsigned int val, bool raw)=0
virtual void modifyBOCParam (unsigned int rod, unsigned int channel, unsigned int type, unsigned int val, bool raw)=0
virtual void lasersOff ()=0
 Turn all BOC laser currents to 0.
virtual void timSetFrequency (double trigFreq, double rstFreq)=0
virtual double timGetTriggerFrequency ()=0
 get tim trig frequency (kHz)
virtual double timGetResetFrequency ()=0
 get tim reset frequency (Hz)
virtual void freeTriggers ()=0
 Start the TIM generating regular triggers.
virtual void stopTriggers ()=0
 Stop the TIM generating regular triggers.
virtual void timLoadSequence (const std::vector< unsigned > &seq)=0
 Load a TIM trigger sequence;.
virtual unsigned long timRunSequence (long unsigned ntrigs, int random, bool external)=0
 run the tim sequencer
virtual void timL1A ()=0
 Tell the TIM to send an L1A.
virtual void timCalL1A (int delay)=0
 Tell TIM to send Cal + L1A.
virtual void timECR ()=0
virtual void timBCR ()=0
virtual void timFER ()=0
virtual unsigned long sendTimBurst (unsigned long count, int random, bool external)=0
 Tell TIM to send a burst of triggers.
virtual void timVerbose ()=0
 Print all the Tim registers.
virtual void timRegLoad (int reg, UINT16 val)=0
 Debug, load TIM register.
virtual UINT16 timRegRead (int reg)=0
 Debug, read TIM register.
virtual bool slavePresent (int rod, int index) const =0
 Check if a slave has been started.
virtual void slaveStarted (int rod, int slave)=0
 Notify that slave was started externally...
virtual bool RODPresent (int rod) const =0
 Check if a ROD has been configured.
virtual long getRodSlot (int rod) const =0
virtual int getRodRevision (int rod) const =0
 Get ROD Revision.
virtual void stopPolling ()=0
 Stop the primitive list polling.
virtual void resumePolling ()=0
 Restart the primitive list polling.
SctPixelRod::RodModule * getRod (unsigned int rod) const

Private Member Functions

 Crate (const Crate &)
Crateoperator= (const Crate &)

Private Attributes

const Sct::UCID m_ucid

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 58 of file crate.h.


Member Enumeration Documentation

enum SctApi::Crate::PLControl
 

C_PL_STOP Abort the current primitiveList C_PL_PAUSE Pause the current primitiveList C_PL_RESUME Resume the current primitiveList C_PL_CANCEL Cancel the recently sent primitiveList (only if not started execution).

Definition at line 224 of file crate.h.


Constructor & Destructor Documentation

SctApi::Crate::Crate const Sct::UCID ucid  )  [inline]
 

An empty default constructor.

Definition at line 65 of file crate.h.

virtual SctApi::Crate::~Crate  )  [inline, virtual]
 

Delete all the RodModules and VmeInterface.

Definition at line 71 of file crate.h.


Member Function Documentation

virtual int SctApi::Crate::awaitResponse unsigned int  rod,
int  timeout
[pure 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

Implemented in SctApi::CrateImpl.

Referenced by SctApi::awaitResponse().

virtual int SctApi::Crate::awaitResponseAll int  timeout  )  [pure virtual]
 

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

If waiting longer than timeout seconds then return anyway

Implemented in SctApi::CrateImpl.

Referenced by SctApi::awaitResponseAll().

virtual bool SctApi::Crate::checkBOCLasersOn unsigned int  rod  )  [pure virtual]
 

Check BOC laser interlock.

Implemented in SctApi::CrateImpl.

virtual int SctApi::Crate::configureBOC unsigned int  rod  )  [pure virtual]
 

Return 0 for success.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::configureBOC().

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

Return global registers as stored in BOC.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::currentBOCRegisters(), and SctApi::storeBOCConfigurations().

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

Return channel parameters as stored in BOC.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::currentBOCSetup().

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

Proxy for RodModule method.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::dspSingleRead().

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

Proxy for RodModule method.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::dspSingleWrite().

virtual void SctApi::Crate::enterBOCClockBy2Mode unsigned int  rod  )  [pure virtual]
 

Setup BOC to sample at 20MHz.

Implemented in SctApi::CrateImpl.

virtual void SctApi::Crate::freeTriggers  )  [pure virtual]
 

Start the TIM generating regular triggers.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::freeTriggers().

virtual std::vector<double> SctApi::Crate::getBOCMonitorArray unsigned int  rod  )  [pure virtual]
 

Return 12 monitor values from BOC ADCs.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::getBOCMonitorArray().

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

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

Implemented in SctApi::CrateImpl.

Referenced by SctApi::getResponse().

virtual bool SctApi::Crate::getRodMessage unsigned int  rod,
char *  buffer,
unsigned long &  length
[pure 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

Implemented in SctApi::CrateImpl.

Referenced by SctApi::getRodMessage().

virtual int SctApi::Crate::getRodRevision int  rod  )  const [pure virtual]
 

Get ROD Revision.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::getRodRevision(), and SctApi::initialiseRod().

virtual int SctApi::Crate::initialiseBOC unsigned int  rod  )  [pure virtual]
 

Return 0 for success.

Implemented in SctApi::CrateImpl.

virtual int SctApi::Crate::initialiseCrate  )  [pure virtual]
 

Return number of RODs initialised.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::initialisationThread().

virtual int SctApi::Crate::initialiseRod unsigned int  rod  )  [pure virtual]
 

Store object in local map.

Return 0 for success

Implemented in SctApi::CrateImpl.

virtual int SctApi::Crate::initialiseTim  )  [pure virtual]
 

Return 0 for success.

Implemented in SctApi::CrateImpl.

virtual void SctApi::Crate::lasersOff  )  [pure virtual]
 

Turn all BOC laser currents to 0.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::lasersOff().

virtual void SctApi::Crate::leaveBOCClockBy2Mode unsigned int  rod  )  [pure virtual]
 

Restore BOC to 40MHz mode.

Implemented in SctApi::CrateImpl.

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

Proxy for RodModule method.

Implemented in SctApi::CrateImpl.

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

Proxy for RodModule method.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::dspBlockWrite().

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

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

Implemented in SctApi::CrateImpl.

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

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

Implemented in SctApi::CrateImpl.

Referenced by SctApi::modifyABCDVar(), and SctApi::modifyBOCParam().

virtual void SctApi::Crate::modifyTIMParam unsigned int  type,
unsigned int  val
[pure virtual]
 

Modify parameter on TIM.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::modifyTIMParam().

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

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

virtual void SctApi::Crate::printBOCRegisters unsigned int  rod  )  [pure virtual]
 

Print all BOC registers.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::printBOCRegisters().

virtual void SctApi::Crate::printBOCSetup unsigned int  rod  )  [pure virtual]
 

Print all BOC paramters as set up.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::printBOCSetup().

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

Proxy for RodModule method.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::readRodCommandReg().

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

Proxy for RodModule method.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::readRodStatusReg().

virtual void SctApi::Crate::restoreBOCRegisters unsigned int  rod,
BankType  bank
[pure virtual]
 

Restore BOC register setup.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::restoreBOCRegisters().

virtual void SctApi::Crate::restoreBOCSetup unsigned int  rod,
BankType  bank
[pure virtual]
 

Restore BOC channel setup.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::restoreBOCSetup().

virtual void SctApi::Crate::resumePolling  )  [pure virtual]
 

Restart the primitive list polling.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::resumePolling().

virtual bool SctApi::Crate::RODPresent int  rod  )  const [pure virtual]
 

Check if a ROD has been configured.

Implemented in SctApi::CrateImpl.

virtual void SctApi::Crate::saveBOCRegisters unsigned int  rod,
BankType  bank
[pure virtual]
 

Save BOC register setup.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::saveBOCRegisters().

virtual void SctApi::Crate::saveBOCSetup unsigned int  rod,
BankType  bank
[pure virtual]
 

Save BOC channel setup.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::saveBOCSetup().

virtual int SctApi::Crate::sendPrimList unsigned int  rod,
boost::shared_ptr< PrimListWrapper prim
[pure virtual]
 

Return 0 for success.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::sendPrimList().

virtual int SctApi::Crate::sendPrimListAll boost::shared_ptr< PrimListWrapper prim  )  [pure virtual]
 

Return 0 for success.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::sendPrimListAll().

virtual unsigned long SctApi::Crate::sendTimBurst unsigned long  count,
int  random,
bool  external
[pure virtual]
 

Tell TIM to send a burst of triggers.

Returns:
last l1id

Implemented in SctApi::CrateImpl.

Referenced by SctApi::sendTimBurst().

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

Check if a slave has been started.

Implemented in SctApi::CrateImpl.

virtual void SctApi::Crate::slaveStarted int  rod,
int  slave
[pure virtual]
 

Notify that slave was started externally...

Implemented in SctApi::CrateImpl.

Referenced by SctApi::initialiseRod().

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

Proxy for RodModule method.

Implemented in SctApi::CrateImpl.

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

Proxy for RodModule method.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::dspBlockWrite().

virtual std::string SctApi::Crate::status  )  [pure virtual]
 

Print status of rods on crate.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::awaitResponse(), and SctApi::status().

virtual void SctApi::Crate::stopPolling  )  [pure virtual]
 

Stop the primitive list polling.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::stopPolling().

virtual void SctApi::Crate::stopTriggers  )  [pure virtual]
 

Stop the TIM generating regular triggers.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::stopTriggers().

virtual void SctApi::Crate::timCalL1A int  delay  )  [pure virtual]
 

Tell TIM to send Cal + L1A.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timCalL1A().

virtual double SctApi::Crate::timGetResetFrequency  )  [pure virtual]
 

get tim reset frequency (Hz)

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timGetResetFrequency().

virtual double SctApi::Crate::timGetTriggerFrequency  )  [pure virtual]
 

get tim trig frequency (kHz)

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timGetTriggerFrequency().

virtual void SctApi::Crate::timL1A  )  [pure virtual]
 

Tell the TIM to send an L1A.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timL1A().

virtual void SctApi::Crate::timLoadSequence const std::vector< unsigned > &  seq  )  [pure virtual]
 

Load a TIM trigger sequence;.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timLoadSequence().

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

Debug, load TIM register.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timWriteRegister().

virtual UINT16 SctApi::Crate::timRegRead int  reg  )  [pure virtual]
 

Debug, read TIM register.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timReadRegister().

virtual unsigned long SctApi::Crate::timRunSequence long unsigned  ntrigs,
int  random,
bool  external
[pure virtual]
 

run the tim sequencer

  • ntrigs - number of triggers to send (trigs, not cycles)
  • random - randomise the start-time of the sequence (tim has rand=1 or rand=2)
  • burst - use the tim burst register (rather than doing l1id polling)
  • external - start sequence from external source
    Returns:
    last l1id Precondition - sequence must have been loaded and end of sequence marker set

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timRunSequence().

virtual void SctApi::Crate::timSetFrequency double  trigFreq,
double  rstFreq
[pure virtual]
 

Parameters:
trigFrequency Frequency of triggers
rstFrequency Frequency of resets

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timSetFrequency().

virtual void SctApi::Crate::timVerbose  )  [pure virtual]
 

Print all the Tim registers.

Implemented in SctApi::CrateImpl.

Referenced by SctApi::timVerbose().


The documentation for this class was generated from the following file:
Generated on Mon Feb 6 14:04:17 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6