LHCb Home Subsystems Physics Meeting

Timing and Fast Control System

Online home  
Instructions on Scripting Automated Run Sequences
TFC System
ODIN
THOR
MUNIN
HUGIN
FREJA
TTC in LHCb
GlueLight
BPIM
Installation
Sub-detector test
TFC Local Control
Other documents
Contacts
 

 

Below is a list of all functions available to write PVSS scripts which perform automated run sequences. The functions correspond to the functions available from the run panels. By installing the TFC framework component on top of your own PVSS project you may also call these functions from your own scripts and panels such that you can combine actions on your electronics and the TFC system.

The argument "odin_name" is simply "ODIN/OdinV2_XX" where XX is the board id of the ODIN you are using.

The recipes you may create by saving them from the run panels.

The function "WaitForRunStop" allows you to set up the run sequence since it will return when the run stops automatically provided you have configured a maximum number of L0 triggers and enabled this function.

To run the scripts either from the PVSS console or as a line command [linux] or icon [windows]:

<PVSS_path>\PVSS00ctrl -event <PVSS.computer.name> -data <PVSS.computer.name> -config <project_path>/config/config <YourRunScript.ctl>

You only need the -data and -event parameters if you run the script on a machine which is different from the one on which the project is running.

An example of an automated run script. There are also script functions to control HUGIN. Please, look in the example run script.


 
Startup functions:
 ===================
 void ODIN_GetHWinfo(string odin_name)
 void ODIN_SystemReset(string odin_name)
 void ODIN_SoftReset(string odin_name)
 void ODIN_ResetAllCounters(string odin_name)
 void ODIN_UpdateAllCounters(string odin_name)
 void ODIN_SubscribeAllCounters(string odin_name)
 void ODIN_UpdateAll(string odin_name)
 void ODIN_SelectedReset(string odin_name)
 
 Run control functions:
 ========================
 void ODIN_AckError(string odin_name)
 void ODIN_RunStart(string odin_name)
 void ODIN_RunEnd(string odin_name)
 void ODIN_RunPause(string odin_name)
 void ODIN_RunContinue(string odin_name)
 int ODIN_WaitForRunStop(string odin_name, time timeout, bool &expired)
 
 Configure functions:
 ========================
 void LoadRecipe(string recipe_selected, bool recipeCache, string hierarchyType, dyn_string deviceList,
                         dyn_string exceptionInfo)
 void ODIN_EnableFunction(string odin_name, string function_name, int enable)
 
 Function names:
  • R_STOP_EXT_ENB
  • R_L0_MAX_ENB
  • R_L0_EXT_ENB
  • R_RNDTRG_A_ENB
  • R_RNDTRG_B_ENB
  • R_PERTRG_A_ENB
  • R_PERTRG_B_ENB
  • R_CALTRG_A_ENB
  • R_CALTRG_B_ENB
  • R_CALTRG_C_ENB
  • R_TIMTRG_ENB
  • R_AUXTRG_ENB
  • R_AUXTRG_FRC
  • R_SEQTRG_ENB
  • R_L0ERST_ENB
  • R_L01ERST_ENB
  • R_PERCMD_ENB
  • R_BCR_ENB
  • R_ECR_ENB
  • R_TRGTYPE_ENB 
  • R_IP_DEST_ENB
  • R_FE_ENB
  • R_BXSEQ_ENB
  • R_BX_INFO_LATENCY_ENB

 Functions to apply loaded recipes
 ====================================
 To enable functions with ODIN_EnableFunction() the following function should be used to apply the settings:

 void ODIN_GetReady(string odin_name)
 
 For the different type of recipes, use the following apply functions should be used:
 
R_Enable_*      void ODIN_GetReady(string odin_name)
 R_All_* void ODIN_Initialize(string odin_name)
R_HWSystem_* void ODIN_ApplyHWSystem(string odin_name)
R_Inhibit_* void ODIN_ApplyInhibits(string odin_name)
R_Emulator_* void ODIN_ApplyEmulator(string odin_name)
R_L0General_* void ODIN_ApplyL0General(string odin_name)
R_Random_* void ODIN_ApplyRandom(string odin_name)
R_TriggerSM_* void ODIN_ApplyTriggerSM(string odin_name)
R_CommandSM_* void ODIN_ApplyCommandSM(string odin_name)
R_IPdest_* void ODIN_ApplyIPDest(string odin_name)
R_GbEMAC_* void ODIN_ApplyGbEMAC(string odin_name)
R_FrontEnd_*  void ODIN_ApplyFrontEnd(string odin_name)

 
 Single shot functions:
 ========================
 void ODIN_DemandSingleECR(string odin_name)
 void ODIN_DemandSingleTRG_A(string odin_name)
 void ODIN_DemandSingleTRG_B(string odin_name)
 void ODIN_DemandSingleCALTRG_A(string odin_name)
 void ODIN_DemandSingleCALTRG_B(string odin_name)
 void ODIN_DemandSingleCALTRG_C(string odin_name)
 void ODIN_DemandSingleL0ERST(string odin_name)
 void ODIN_DemandSingleL01ERST(string odin_name)
 void ODIN_DemandSinglePERCMD(string odin_name)
 void ODIN_DemandFlushMEP(string odin_name)
 void ODIN_DemandSnapshot(string odin_name)
 ===========================================================