GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> QSE / V2-3-0 > qse / sun-gcc


Interface   Data Structures   File List   Data Fields   Globals  

QDF_esb.c File Reference

Decodes the Event Summary Block. More...

#include "QSE/QDF_esb.h"
#include "QDF_esb_def.h"
#include "EDS/EBF_esw.h"
#include "EDS/EBF_ebw.h"
#include "EDS/EBF_cid.h"
#include "EDS/FFS.h"
#include "LDT/BFU.h"

Defines

#define NULL   ((void *)(0))
#define PARITY_K_ODD   0x9669
 A vector of bits whose bit number (counting from least significant bit = 0) gives the odd parity of a nibble of that bit number.

Functions

static __inline int parityOdd16Calc (unsigned short int hword)
 Calculates the odd parity over the 16 bits in the specified half word.
int QDF_esbCtxSizeof (unsigned int level, void *prm)
 Returns the size, in bytes of the Event Summary Block decoding context needed to support the specified compression level.
QDF_esbCtxQDF_esbCtxConstruct (QDF_esbCtx *ctx, unsigned int level, void *prm, const QSE_ctx *qse)
 Constructs (initializes) the specified Event Summary Block decoding context structure.
int QDF_esbEvtSizeof (unsigned int level, void *prm)
 Returns the size, in bytes of QDF Event Summary Block needed to support the specified compression level.
QDF_esbEvtQDF_esbEvtConstruct (QDF_esbEvt *evt, unsigned int level, void *prm, QDF_exc *exc)
 Constructs (initializes) the specified Event Summary Block event structure.
__inline EBF_ebw QDF_esbEvtEbwGet (const QDF_esbEvt *evt, int cid)
 Returns the event builder word for the specified contributor id.
__inline EBF_esw QDF_esbEvtEswGet (const QDF_esbEvt *evt, int cid)
 Returns the event summary word for the specified contributor id.
EBF_ctbHdr QDF_esbEvtCtbHdrGet (const QDF_esbEvt *evt, int cid)
 Returns the contributor header for the specified contributor id.
unsigned int QDF_esbEvtCidsGet (const QDF_esbEvt *evt)
 Returns a mask of the contributor that are present.
unsigned int QDF_esbEvtDgnidsGet (const QDF_esbEvt *evt)
 Returns the left-justified bit mask of TEMs with a diagnostic contribution.
unsigned int QDF_esbEvtErridsGet (const QDF_esbEvt *evt)
 Returns the left-justified bit mask of TEMs with an error contribution.
unsigned int QDF_esbEvtSeqGet (const QDF_esbEvt *evt)
 Returns the event sequence number.
BFU QDF_esbDecode (QDF_esbCtx *qdf, QDF_esbEvt *esb, const unsigned int *src, unsigned int max, BFU bfu)
 Decodes the Event Summary Block.


Detailed Description

Decodes the Event Summary Block.

Author:
JJRussell - russell@slac.stanford.edu

   CVS $Id: QDF_esb.c,v 1.5 2009/05/01 01:01:52 russell Exp $

Define Documentation

#define PARITY_K_ODD   0x9669

A vector of bits whose bit number (counting from least significant bit = 0) gives the odd parity of a nibble of that bit number.

This is a bit vector whose bit number gives the odd parity of that bit number, The array is indexed by left shifting by the bit number. This array is used to return a 0 if the parity is ODD and a 1 if the parity is EVEN.
The following table maps a number idx into an even parity. The bottom line is the hex number representing the parity bit array.

       Idx  Parity    Index  Parity   Index Parity    Index Parity
         C       1        8       0       4      0        0      1
         D       0        9       1       5      1        1      0
         E       0        A       1       6      1        2      0
         F       1        B       0       7      0        3      1
      0x         9                6              6               9
  


Function Documentation

int parityOdd16Calc ( unsigned short int  hword  )  [static]

Calculates the odd parity over the 16 bits in the specified half word.

Returns:
The odd parity, either 0 or 1, over the 16 bits the specified half word.
Parameters:
hword The half word (short int) to calculate the parity of.

QDF_esbCtx* QDF_esbCtxConstruct ( QDF_esbCtx ctx,
unsigned int  level,
void *  prm,
const QSE_ctx qse 
)

Constructs (initializes) the specified Event Summary Block decoding context structure.

Returns:
Pointer to the context structure to construct
Parameters:
ctx The context structure to construct.
level The maximum level of compression that will be supported.
prm Additional configuation parameter, unused as of now
qse Pointer to the public/generic QSE context parameter

int QDF_esbCtxSizeof ( unsigned int  level,
void *  prm 
)

Returns the size, in bytes of the Event Summary Block decoding context needed to support the specified compression level.

Returns:
The size, in bytes, of the ESB decoding context
Parameters:
level The maximum level of compression that needs to be supported
prm Additional configuation parameter, unused as of now

BFU QDF_esbDecode ( QDF_esbCtx qdf,
QDF_esbEvt esb,
const unsigned int *  src,
unsigned int  max,
BFU  bfu 
)

Decodes the Event Summary Block.

Returns:
The updated bit position and current deblocked 32-bit buffer
Parameters:
qdf The compressed data decoding context
esb The event summary block to fill in
src The data source, i.e. the bit stream
max The maximum bit position
bfu The current bit position and temporary buffer

unsigned int QDF_esbEvtCidsGet ( const QDF_esbEvt evt  ) 

Returns a mask of the contributor that are present.

Returns:
The mask of contributors that are present
Parameters:
evt The target ESB event structure.
Even if the contributor has no data, the presence of a contributor means an empty contribution should be emitted into the data stream.

QDF_esbEvt* QDF_esbEvtConstruct ( QDF_esbEvt evt,
unsigned int  level,
void *  prm,
QDF_exc exc 
)

Constructs (initializes) the specified Event Summary Block event structure.

Returns:
Pointer to the ESB event structure to construct
Parameters:
evt The ESB event structure to construct.
level The maximum level of compression that will be supported.
prm Additional configuation parameter, unused as of now
exc Pointer to the global exception handling context

EBF_ctbHdr QDF_esbEvtCtbHdrGet ( const QDF_esbEvt evt,
int  cid 
)

Returns the contributor header for the specified contributor id.

Returns:
The contributor header. Notice that this is returned by value.
Parameters:
evt The target ESB event structure.
cid The contributor ID

unsigned int QDF_esbEvtDgnidsGet ( const QDF_esbEvt evt  ) 

Returns the left-justified bit mask of TEMs with a diagnostic contribution.

Returns:
The left-justified bit mask of TEMs with a diagnostic contribution.
Parameters:
evt The target ESB event structure.

__inline EBF_ebw QDF_esbEvtEbwGet ( const QDF_esbEvt evt,
int  cid 
)

Returns the event builder word for the specified contributor id.

Returns:
Pointer to the ESB event
Parameters:
evt The target ESB event structure.
cid The contributor ID
Note:
The length field of this word cannot be filled in by this utility, since the length is not known until the target contributor is decoded.
The response field of this word cannot be filled in by this utility since it dos not know which contributors are present. Because the response word cannot be filled in, the parity of the LATp portion of this word cannot be computed.
The packet sequence is no longer available. This is property of the physical transport and has been thrown away as being uninteresting. The error field, must be 0 when using this format.

unsigned int QDF_esbEvtErridsGet ( const QDF_esbEvt evt  ) 

Returns the left-justified bit mask of TEMs with an error contribution.

Returns:
The left-justified bit mask of TEMs with a error contribution.
Parameters:
evt The target ESB event structure.

__inline EBF_esw QDF_esbEvtEswGet ( const QDF_esbEvt evt,
int  cid 
)

Returns the event summary word for the specified contributor id.

Returns:
Pointer to the ESB event
Parameters:
evt The target ESB event structure.
cid The contributor ID

unsigned int QDF_esbEvtSeqGet ( const QDF_esbEvt evt  ) 

Returns the event sequence number.

Returns:
Pointer to the ESB event
Parameters:
evt The target ESB event structure.

int QDF_esbEvtSizeof ( unsigned int  level,
void *  prm 
)

Returns the size, in bytes of QDF Event Summary Block needed to support the specified compression level.

Returns:
The size, in bytes, of the QDF Event Summary Block
Parameters:
level The maximum level of compression that needs to be supported
prm Additional configuation parameter, unused as of now


Generated on Thu Sep 2 14:54:54 2010 by  doxygen 1.5.3