Main Page | Modules

FSM interface


Functions

string fwUkl1_getUkl1State (const string &ukl1Name)
void fwUkl1_configure (string ukl1Name, string recipe, dyn_string &exceptionInfo)
void fwUkl1_start (string ukl1Name, string recipe, dyn_string &exceptionInfo)
void fwUkl1_stop (string ukl1Name, string recipe, dyn_string &exceptionInfo)
void fwUkl1_reset (string ukl1Name, dyn_string &exceptionInfo)
void fwUkl1_reload (string ukl1Name, dyn_string &exceptionInfo)
void fwUkl1_recover (string ukl1Name, dyn_string &exceptionInfo)
void _fwUkl1_configureSourceAddresses (const string &ukl1Name, dyn_string &exceptionInfo)
void _fwUkl1_configureHardcodedSettings (const string &ukl1Name, dyn_string &exceptionInfo)

Detailed Description

A group of functions that can be used to perform state machine actions for a UKL1 board. The following actions are defined: None of the defined functions change the FSM state, this is left to the User to ensure the FSM is in the appropriate state after the function has been called.

Function Documentation

void _fwUkl1_configureHardcodedSettings const string &  ukl1Name,
dyn_string &  exceptionInfo
 

Configures all the settings on the GBE that are never changed by the User and all values are hardcoded into this function. It also setups the single TTCrx register that is hardcoded to a UKL1 specific setting.

Parameters:
ukl1Name Name of the UKL1 board as it appears in the DIM server.
exceptionInfo Error information. If dynlen is zero no errors occurred. The standard error codes (defined in library documentation) are used.
Returns:
void.
The values set here are defined by the LHCb technical note Quad Gigabit Ethernet plug-in card and are correct as of issue 2.2 revision 0 of that document. They must be performed in a specific order.

void _fwUkl1_configureSourceAddresses const string &  ukl1Name,
dyn_string &  exceptionInfo
 

Configures the last byte of the source IP address and the fifth byte of the source MAC address from the ID number in the EPROM. It also sets the L1 ID to the least significant byte of the serial number.

Parameters:
ukl1Name Name of the UKL1 board as it appears in the DIM server.
exceptionInfo Error information. If dynlen is zero no errors occurred. The standard error codes (defined in library documentation) are used.
Returns:
void.

void fwUkl1_configure string  ukl1Name,
string  recipe,
dyn_string &  exceptionInfo
 

Loads a specific recipe to a UKL1 board from the configuration database.

Parameters:
ukl1Name Name of the UKL1 board as defined in the DIM server.
recipe Name of the recipe that is to be applied to the UKL1 board.
exceptionInfo Error information. If dynlen is zero no errors occurred. The standard error codes (defined in library documentation) are used.
Returns:
void
This will move the UKL1 board to a configured state, it is typically a long operation and it is recommended that a fwUkl1_stop() is performed once completed. It will not update the state of the UKL1, this must be done by the User.

string fwUkl1_getUkl1State const string &  ukl1Name  ) 
 

Gets the state of the current UKL1.

Parameters:
ukl1Name Name of the UKL1 board as it appears in the DIM server.
Returns:
string State that the UKL1 board is currently in, empty string if the board is not present and hence there is no associated state.

void fwUkl1_recover string  ukl1Name,
dyn_string &  exceptionInfo
 

Recovers the UKL1 board from an error state. This will return the UKL1 to an unconfigured state and the values in the registers cannot be guarantied to be the same as before recovering. The User should update the FSM state appropriately.

Parameters:
ukl1Name Name of the UKL1 board as it appears in the DIM server.
exceptionInfo Error information. If dynlen is zero no errors occurred. The standard error codes (defined in library documentation) are used.
Returns:
void
The interface to this function is unlikely to change, but it might.

void fwUkl1_reload string  ukl1Name,
dyn_string &  exceptionInfo
 

Performs a reload of the FPGA firmware on the L1 board. It will reset all values back to their defaults.

Parameters:
ukl1Name Name of the UKL1 board as it appears in the DIM server.
exceptionInfo Error information. If dynlen is zero no errors occurred. The standard error codes (defined in library documentation) are used.
Returns:
void

void fwUkl1_reset string  ukl1Name,
dyn_string &  exceptionInfo
 

Performs a reset of the FPGAs on the L1 board. Effects still under discussion.

Parameters:
ukl1Name Name of the UKL1 board as it appears in the DIM server.
exceptionInfo Error information. If dynlen is zero no errors occurred. The standard error codes (defined in library documentation) are used.
Returns:
void

void fwUkl1_start string  ukl1Name,
string  recipe,
dyn_string &  exceptionInfo
 

Start does only two things and that is to enable the TFC decoding on the UKL1 and enable the link from the BE FPGA to the GBE card for data output.

Parameters:
ukl1Name Name of the UKL1 board as defined in the DIM server.
recipe Name of the recipe that is to be applied to the UKL1 board.
exceptionInfo Error information. If dynlen is zero no errors occurred. The standard error codes (defined in library documentation) are used.
Returns:
void
This will move the UKL1 to the start state where it is ready to take data. It will not update the state once complete this is upto the User.

void fwUkl1_stop string  ukl1Name,
string  recipe,
dyn_string &  exceptionInfo
 

Stop does only two things and that is to disable the TFC decoding on the UKL1 and disable the link from the BE FPGA to the GBE card for data output.

Parameters:
ukl1Name Name of the UKL1 board as defined in the DIM server.
recipe Name of the recipe that is to be applied to the UKL1 board.
exceptionInfo Error information. If dynlen is zero no errors occurred. The standard error codes (defined in library documentation) are used.
Returns:
void
This will move the UKL1 to the start state where it will not be able to see triggers sent from the TFC and also is not capable of outputting data. It will not update the state once complete this is upto the User.


Generated on Tue Jul 3 17:05:51 2007 by  doxygen 1.3.9.1