GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > RIM / V1-0-0

Constituent: rim     Tag: mv2304


Interface   Data Structures   File List   Data Fields   Globals  

RIM_lrd.c File Reference

LAT register description helper functions. More...

#include "RIM_p.h"
#include "RIM_AG_types_p.h"
#include "RIM_AG_types_s.h"
#include "RIM_AG_addr_s.h"
#include "RIM_AG_number_s.h"
#include <stdio.h>
#include <string.h>
#include <ctype.h>

Include dependency graph for RIM_lrd.c:


Functions

unsigned RIM_nTypes (void)
 Return the number of component types within the LAT register description.
RIM_type RIM_lookupType (const char *string)
 Hunt through the list of component types and return the index of the input string.
unsigned RIM_nameType (char *string, RIM_type type)
 Place the four-character string describing this type into name.
int RIM_compareType (const char *string, RIM_type type)
 Compare string with the name of type.
unsigned RIM_getAddrRng (const char *string, RIM_addr *addr)
 Finds the address range associated with the type identifed by the string.
unsigned RIM_getIndex (const RIM_addr *addr, unsigned *index, RIM_type type)
 Convert hierarchical bit addressing to flat addressing.
unsigned RIM_getAddress (RIM_addr *addr, unsigned index, RIM_type type)
 Convert hierarchical bit addressing to flat addressing.
void RIM_layerLow (const Layer_addr *layer, TEM_addr *tem)
 Convert the conceptual layer addressing of a TFE to the hierarchical form used to communicate with the LAT.
void RIM_layerHigh (const Layer_addr *layer, TEM_addr *tem)
 Convert the conceptual layer addressing of a TFE to the hierarchical form used to communicate with the LAT.
unsigned RIM_getLayerID (char sign, char xy, char index, unsigned *layer)
 Take three characters and convert them to a layer ID.
unsigned RIM_getLayerName (unsigned layer, char *sign, char *xy, char *index)
 Get the characters of the layer name from the layer ID.

Variables

static const char tkr_layer [2][2][9]
 Lookup table converting layer information to an index.
static const char tcc_lkup [4][2] = {{0, 1}, {3, 2}, {6, 7}, {5, 4}}
 Gives the TCC ID for a given "end" of the requested layer.

Detailed Description

LAT register description helper functions.

Author:
James Swain & Owen Saxton
Id
RIM_lrd.c,v 1.2 2007/03/22 23:47:46 saxton Exp

Function Documentation

int RIM_compareType const char *  string,
RIM_type  type
 

Compare string with the name of type.

Parameters:
string Name of a component type
type Type to compare to
Return values:
-1 If the type is unknown (exceeds the range of acceptable types)
0 If the type is known, and the name matches the string
1 If the type is known, and the name does not match the string

unsigned RIM_getAddress RIM_addr addr,
unsigned  index,
RIM_type  type
 

Convert hierarchical bit addressing to flat addressing.

Note that GTFEs are usually referred to as being part of an X or Y layer. This identification is converted to an absolute layer number and stored in the rc space by addr->rc = (layerNumber << 1) | isYlayer. This conversion is performed by the XLM->RIM converter, but is documented here since it is a storage convention.

Parameters:
addr Address to convert
index Index corresponding to address
type Type of address to convert
Return values:
RIM_SUCCESS if the address is successfully converted to an index
RIM_ADDR_RANGE if any component of the address is outside the allowable range for this type

unsigned RIM_getAddrRng const char *  string,
RIM_addr addr
 

Finds the address range associated with the type identifed by the string.

Parameters:
string Identifies the address range required
addr Pointer to address stucture to populate with the address range
Return values:
RIM_SUCCESS If the string is a good type name.
RIM_TYPE_STR If the string does not match a known type

unsigned RIM_getIndex const RIM_addr addr,
unsigned *  index,
RIM_type  type
 

Convert hierarchical bit addressing to flat addressing.

Note that GTFEs are usually referred to as being part of an X or Y layer. This identification is converted to an absolute layer number and stored in the rc space by addr->rc = (layerNumber << 1) | isYlayer. This conversion is performed by the XLM->binary converter, but is documented here since it is a storage convention.

Parameters:
addr Address to convert
type Type of address to convert
index Index corresponding to address
Return values:
RIM_SUCCESS if the address is successfully converted to an index
RIM_ADDR_BCAST if the address contains a mixture of broadcast and unicast components
RIM_ADDR_RANGE if any component of the address is outside the allowable range for this type

unsigned RIM_getLayerID char  sign,
char  xy,
char  index,
unsigned *  layer
 

Take three characters and convert them to a layer ID.

Parameters:
sign '+' or '-'
xy 'x' or 'y'
index '0' -> '8'
layer Location to store the layer ID
Return values:
RIM_SUCCESS If the layer ID was successfully found
RIM_ADDR_LSIG If the layer sign is nonsensical
RIM_ADDR_LXY If the layer xy value is nonsensical
RIM_ADDR_LIND If the layer index is nonsensical

unsigned RIM_getLayerName unsigned  layer,
char *  sign,
char *  xy,
char *  index
 

Get the characters of the layer name from the layer ID.

Parameters:
layer ID of the layer to name
sign Pointer to location to place the sign character
xy Pointer to location to place the xy character
index Pointer to location to place the index character
Return values:
RIM_SUCCESS If the layer is located
RIM_ADDR_LAYER If the layer is out of range

void RIM_layerHigh const Layer_addr layer,
TEM_addr tem
 

Convert the conceptual layer addressing of a TFE to the hierarchical form used to communicate with the LAT.

Note that GTFEs are usually referred to as being part of an X or Y layer. This identification is converted to an absolute layer number and stored in the rc space by addr->rc = (layerNumber << 1) | isYlayer. This conversion is performed by the XLM->RIM converter, but is documented here since it is a storage convention.

Parameters:
layer Address of the TFE / SPT in terms of layers
tem Address of the TFE / TRC in terms of CC/RC

void RIM_layerLow const Layer_addr layer,
TEM_addr tem
 

Convert the conceptual layer addressing of a TFE to the hierarchical form used to communicate with the LAT.

Note that GTFEs are usually referred to as being part of an X or Y layer. This identification is converted to an absolute layer number and stored in the rc space by addr->rc = (layerNumber << 1) | isYlayer. This conversion is performed by the XLM->RIM converter, but is documented here since it is a storage convention.

Parameters:
layer Address of the TFE / SPT in terms of layers
tem Address of the TFE / TRC in terms of CC/RC

RIM_type RIM_lookupType const char *  string  ) 
 

Hunt through the list of component types and return the index of the input string.

Parameters:
string String corresponding to one of the component types used in the LAT register description
Returns:
integer corresponding to the type identified by string or RIM_BAD_TYPE if the string does not match any on the list

unsigned RIM_nameType char *  string,
RIM_type  type
 

Place the four-character string describing this type into name.

Parameters:
type Type to be named
string Location to place name
Return values:
RIM_SUCCESS If the type is known to RIM
RIM_TYPE_UK If the type is unknown

unsigned RIM_nTypes void   ) 
 

Return the number of component types within the LAT register description.

Returns:
Number of component types


Variable Documentation

const char tcc_lkup[4][2] = {{0, 1}, {3, 2}, {6, 7}, {5, 4}} [static]
 

Gives the TCC ID for a given "end" of the requested layer.

Since the pattern is repeating, take the layer index modulo 4 as the first index to the table and 0 for low or 1 for high as the second index to the table.

const char tkr_layer[2][2][9] [static]
 

Initial value:

                    {{{0, 4,  8, 12, 16, 20, 24, 28, 32 },    
                      {1, 5,  9, 13, 17, 21, 25, 29, 33 }},   
                     {{3, 7, 11, 15, 19, 23, 27, 31, 35 },    
                      {2, 6, 10, 14, 18, 22, 26, 30, 34 }}}
Lookup table converting layer information to an index.


Generated on Fri Jun 15 02:03:29 2007 by  doxygen 1.4.4