// Dump in ASCII the BecParams structure to a file int BecParams_Fprintf( BecParams *params, FILE *fptr ) { char buf[128*1024]; int ret; // Check for Null pointer if( fptr == (FILE *)NULL ) { fprintf( stderr, "%s: fptr=0\n", __FUNCTION__ ); return D_RetCode_Err_Null_Pointer; } // If parameters were not set, just exit queitly if( params->Config_Id < 0 ) return D_RetCode_Sucsess; // Create info sprintf( buf, "Bec %d CrateId %d\n", params->Config_Id, params->Crate_Id ); // First produce the ASCII representation of the MVT parameters structure sprintf( buf, "%s# BE Crate %d configuration\n", buf, params->Config_Id ); if( (ret = BecParams_Sprintf( params, buf )) != D_RetCode_Sucsess ) { fprintf( stderr, "%s: BecParams_Sprintf failed with %d\n", __FUNCTION__, ret ); return ret; } // Then save it in the file if( (ret = fprintf( fptr, "%s", buf ) ) < 0 ) { fprintf( stderr, "%s: fprintf failed with %d\n", __FUNCTION__, ret ); fprintf( stderr, "%s: fprintf failed with %s\n", __FUNCTION__, strerror(errno) ); return ret; } // All went fine return D_RetCode_Sucsess; }
// Dump in ASCII the SysParams structure to a buffer int SysParams_Sprintf( SysParams *params, char *buf ) { int bec; int ret; // Check for Null pointer if( params == (SysParams *)NULL ) { fprintf( stderr, "%s: params=0\n", __FUNCTION__ ); return D_RetCode_Err_Null_Pointer; } if( buf == (char *)NULL ) { fprintf( stderr, "%s: buf=0\n", __FUNCTION__ ); return D_RetCode_Err_Null_Pointer; } // Common parameters sprintf( buf, "############################\n" ); sprintf( buf, "%s# Global System parameters #\n", buf ); sprintf( buf, "%s############################\n", buf ); sprintf( buf, "%sSys Name %s\n", buf, params->Name ); sprintf( buf, "%sSys RunMode %s\n", buf, SysRunMode2Str( params->RunMode ) ); sprintf( buf, "%sSys NbOfSmpPerEvt %d\n", buf, params->NbOfSmpPerEvt ); sprintf( buf, "%sSys NbOfEvtPerBlk %d\n", buf, params->NbOfEvtPerBlk ); sprintf( buf, "%sSys ClkMode %s\n", buf, SysClkMode2Str( params->ClkMode ) ); sprintf( buf, "%sSys SparseSmp %d\n", buf, params->SparseSmp ); sprintf( buf, "%sSys BlockPrescale %d\n", buf, params->BlockPrescale ); sprintf( buf, "%sSys BRepRawData %d\n", buf, params->RepRawData ); //fprintf( stderr, "%s: Global parameters OK\n", __FUNCTION__ ); // Backend crate configurations sprintf( buf, "%s################################\n", buf ); sprintf( buf, "%s# Backend crate configurations #\n", buf ); sprintf( buf, "%s################################\n", buf ); for( bec=1; bec<DEF_MAX_NB_OF_BEC; bec++ ) { ret = BecParams_Sprintf( &(params->Bec_Params[bec]), buf ); if( ret != D_RetCode_Sucsess ) { fprintf( stderr, "%s: BecParams_Sprintf failed for bec %d with %d\n", __FUNCTION__, bec, ret ); return ret; } } //fprintf( stderr, "%s: BecParams_Sprintf OK\n", __FUNCTION__ ); // TI configurations sprintf( buf, "%s#####################\n", buf ); sprintf( buf, "%s# TI configurations #\n", buf ); sprintf( buf, "%s#####################\n", buf ); if( params->RunMode != Clas12 ) { for( bec=0; bec<DEF_MAX_NB_OF_BEC; bec++ ) { ret = TiParams_Sprintf( &(params->Ti_Params[bec]), buf ); if( ret != D_RetCode_Sucsess ) { fprintf( stderr, "%s: TiParams_Sprintf failed for sd %d with %d\n", __FUNCTION__, bec, ret ); return ret; } } } else { sprintf( buf, "%s# TI parameters do not apply in %s mode #\n", buf, SysRunMode2Str( params->RunMode ) ); } sprintf( buf, "%s\n", buf ); //fprintf( stderr, "%s: TiParams_Sprintf OK\n", __FUNCTION__ ); // SD configurations sprintf( buf, "%s#####################\n", buf ); sprintf( buf, "%s# SD configurations #\n", buf ); sprintf( buf, "%s#####################\n", buf ); for( bec=1; bec<DEF_MAX_NB_OF_BEC; bec++ ) { ret = SdParams_Sprintf( &(params->Sd_Params[bec]), buf ); if( ret != D_RetCode_Sucsess ) { fprintf( stderr, "%s: SdParams_Sprintf failed for sd %d with %d\n", __FUNCTION__, bec, ret ); return ret; } } sprintf( buf, "%s\n", buf ); //fprintf( stderr, "%s: SdParams_Sprintf OK\n", __FUNCTION__ ); // Backend unit configurations sprintf( buf, "%s###############################\n", buf ); sprintf( buf, "%s# Backend unit configurations #\n", buf ); sprintf( buf, "%s###############################\n", buf ); ret = BeuSspConfCol_Sprintf( &(params->BeuSspConf_Col), buf ); if( ret != D_RetCode_Sucsess ) { fprintf( stderr, "%s: BeuSspConfCol_Sprintf failed with %d\n", __FUNCTION__, ret ); return ret; } //fprintf( stderr, "%s: BeuSspConfCol_Sprintf OK\n", __FUNCTION__ ); // Frontend unit configurations sprintf( buf, "%s################################\n", buf ); sprintf( buf, "%s# Frontend unit configurations #\n", buf ); sprintf( buf, "%s################################\n", buf ); ret = FeuParamsCol_Sprintf( &(params->FeuParams_Col), buf ); if( ret != D_RetCode_Sucsess ) { fprintf( stderr, "%s: FeuParamsCol_Sprintf failed with %d\n", __FUNCTION__, ret ); return ret; } //fprintf( stderr, "%s: FeuParamsCol_Sprintf OK\n", __FUNCTION__ ); // All went fine return D_RetCode_Sucsess; }