logo.png

SUBVERSION
XILINX
DATABASE
GUI
ONLINEV2

Home Up


Contents



1 Introduction

The database module is developped and maintained by Guillaume Baulieu at IPNL wich provide documentation available at https://lyosvn.in2p3.fr/ilc/wiki/ILCConfDB.

  • A setup is a set of states. While each state contains the description of a subdetector configuration, the setup sumup the whole detector configuration.
  • A state is a coherent set of 4 Configurations :
    1 LdaConfiguration, 1 DccConfiguration, 1 DifConfiguration and 1 AsicConfiguration.
    It contains all the configuration parameters of a sub-detector.
  • Basically, a configuration is a list of objects :
    a LdaConfiguration is a list of LDA, a DccConfiguration is a list of Dcc and so on...
    When you want to store the LDA configuration of your sub-detector, you create a LdaConfiguration object and populate it with all your Ldas objects. The same can be done for DCC, DIF and ASICS.

The Daq, RunInfo and Job classes have been add by Laurent fo acquisition. Jobs are related to process on aquisition computer. Daq contain the XDaq configuration description.


1.1 Installation

$ ssh calice@poldhcp45
$ mkdir db && cd !$
$ wget ftp://lyoftp.in2p3.fr/baulieu/ILCConfDB-dev-0.8-1.i686.rpm
$ wget ftp://lyoftp.in2p3.fr/baulieu/ILCConfDB-lib-0.8-1.i686.rpm
$ wget ftp://lyoftp.in2p3.fr/baulieu/ILCOracle-dev-11.1-1.i686.rpm
$ wget ftp://lyoftp.in2p3.fr/baulieu/ILCOracle-lib-11.1-1.i686.rpm
$ su
# rpm -i ILCOracle-dev-11.1-1.i686.rpm ILCOracle-lib-11.1-1.i686.rpm \
         ILCConfDB-lib-0.8-1.i686.rpm ILCConfDB-dev-0.8-1.i686.rpm

/* python */

$ wget ftp://lyoftp.in2p3.fr/baulieu/ILCConfDB-pythonlib-0.9-1.i686.rpm
# yum install libxerces-c-3_1
# rpm -i ILCConfDB-pythonlib-0.9-1.i686.rpm

This will install the /usr/lib/libilcconfdb.so shared library but also files into:

  • /usr/lib/
  • /usr/include/
  • /usr/include/ILCConfDB


1.2 Usage

Test file: db.cc (bellow is shorter)

#include <ILCConfDB/ILCConfDB.h>

int main() {
  int rc = 0;

  try{
    DBInit::init();//connection
    State* s = State::download("toto");
    DBInit::terminate();//disconnection
    delete s;
  }
  catch(Exception e){
    cout<<e.getMessage()<<endl;
  }
  
  return rc;
}

Compilation and execution:

$ g++ db.cc -l ilcconfdb
$ a.out

Composition of state TB_12-17_31_13_38_56_5_40_v01 :
	1 lda
name= mac=5e:70:0c:d2:51:0a fw= hw= 
	2 dcc
name= addr=5e:70:0c:d2:51:0a:7 fw= hw= 
name= addr=5e:70:0c:d2:51:0a:6 fw= hw= 
	15 dif
id=43 name=FT1010043 addr=5e:70:0c:d2:51:0a:6:5 enabled=1 type=DHCALDIF 
sdhcal: 
 AVDD_SHDN=0 DIF_IMON_GAIN=0 DVDD_SHDN=0 ENABLE_MONITORING=0 MASK=0 
 MEMORY_DISPLAY_LIMIT_MAX=0 MEMORY_DISPLAY_LIMIT_MIN=0 
 MEMORY_EFFICIENCY_LIMIT_MAX=0 MEMORY_EFFICIENCY_LIMIT_MIN=0 
 MONITORED_CHANNEL=0 MONITOR_SEQUENCER=0 NUMERICAL_READOUT_MODE=0 
 NUMERICAL_READOUT_START_MODE=0 POWER_ADC=0 POWER_ANALOG=0 POWER_DAC=0 
 POWER_DIGITAL=0 POWER_SS=0 SLAB_IMON_GAIN=0 TIMER_HOLD_REGISTER=0

id=44 name=FT1010044 addr=5e:70:0c:d2:51:0a:6:4 enabled=1 type=DHCALDIF 
sdhcal: 
AVDD_SHDN=0 DIF_IMON_GAIN=0 DVDD_SHDN=0 ENABLE_MONITORING=0 MASK=0 
MEMORY_DISPLAY_LIMIT_MAX=0 MEMORY_DISPLAY_LIMIT_MIN=0 
MEMORY_EFFICIENCY_LIMIT_MAX=0 MEMORY_EFFICIENCY_LIMIT_MIN=0 
MONITORED_CHANNEL=0 MONITOR_SEQUENCER=0 NUMERICAL_READOUT_MODE=0 
NUMERICAL_READOUT_START_MODE=0 POWER_ADC=0 POWER_ANALOG=0 POWER_DAC=0 
POWER_DIGITAL=0 POWER_SS=0 SLAB_IMON_GAIN=0 TIMER_HOLD_REGISTER=0
...
	720 asic
difId=78 pos=1 type=HR2 
hr2: 
B0=250 B1=250 B2=250 CLKMUX=1 CMDB0FSB1=1 CMDB0FSB2=1 CMDB0SS=0 
CMDB2FSB1=0 CMDB2FSB2=0 CMDB2SS=0 CMDB3FSB1=1 CMDB3FSB2=1 CMDB3SS=0 
CTEST= DACSW=1 DISCRI0=1 DISCRI1=1 DISCRI2=1 DISCROROR=1 ENABLED=0 
ENOCCHIPSATB=1 ENOCDOUT1B=1 ENOCDOUT2B=0 ENOCTRANSMITON1B=1 ENOCTRANSMITON2B=0 
ENTRIGOUT=1 EN_OTAQ=1 HEADER=1 MASK0=0XFFFFFFFFFFFFFFFF 
MASK1=0XFFFFFFFFFFFFFFFF MASK2=0XFFFFFFFFFFFFFFFF OTABGSW=1 OTAQ_PWRADC=1 
PWRONBUFF=1 PWRONFSB0=1 PWRONFSB1=1 PWRONFSB2=1 PWRONPA=1 PWRONSS=1 PWRONW=1 
QSCSROUTSC=1 RAZCHNEXTVAL=0 RAZCHNINTVAL=1 RS_OR_DISCRI=1 SCON=1 SEL0=1 SEL1=0 
SELENDREADOUT=1 SELSTARTREADOUT=1 SMALLDAC=0 SW100F0=1 SW100F1=1 SW100F21 SW100K0=1 
SW100K1=1 SW100K2=1 SW50F0=1 SW50F1=1 SW50F2=1 SW50K0=1 SW50K1=1 SW50K2=1 SWSSC=7 
TRIG0B=1 TRIG1B=0 TRIG2B=0 TRIGEXTVAL=0
PAGAIN_VALUES= 115 140 136 136 120 111 119 143 125 121 128 135 117 128 118 133 116 130 134 
135 146 149 117 132 135 134 117 116 131 130 139 112 110 126 147 119 120 135 118 123 112 129
135 125 128 129 120 124 132 155 119 122 131 132 129 130 135 130 147 128 135 130 136 127

difId=78 pos=25 type=HR2 
hr2: 
B0=250 B1=250 B2=250 CLKMUX=1 CMDB0FSB1=1 CMDB0FSB2=1 CMDB0SS=0 
CMDB2FSB1=0 CMDB2FSB2=0 CMDB2SS=0 CMDB3FSB1=1 CMDB3FSB2=1 CMDB3SS=0 
CTEST= DACSW=1 DISCRI0=1 DISCRI1=1 DISCRI2=1 DISCROROR=1 ENABLED=0 
ENOCCHIPSATB=1 ENOCDOUT1B=1 ENOCDOUT2B=0 ENOCTRANSMITON1B=1 ENOCTRANSMITON2B=0 
ENTRIGOUT=1 EN_OTAQ=1 HEADER=25 MASK0=0XFFFFFFFFFFFFFFFF 
MASK1=0XFFFFFFFFFFFFFFFF MASK2=0XFFFFFFFFFFFFFFFF OTABGSW=1 OTAQ_PWRADC=1 
PWRONBUFF=1 PWRONFSB0=1 PWRONFSB1=1 PWRONFSB2=1 PWRONPA=1 PWRONSS=1 PWRONW=1 
QSCSROUTSC=1 RAZCHNEXTVAL=0 RAZCHNINTVAL=1 RS_OR_DISCRI=1 SCON=1 SEL0=1 SEL1=0 
SELENDREADOUT=1 SELSTARTREADOUT=1 SMALLDAC=0 SW100F0=1 SW100F1=1 SW100F21 SW100K0=1 
SW100K1=1 SW100K2=1 SW50F0=1 SW50F1=1 SW50F2=1 SW50K0=1 SW50K1=1 SW50K2=1 SWSSC=7 
TRIG0B=1 TRIG1B=0 TRIG2B=0 TRIGEXTVAL=0
PAGAIN_VALUES= 127 122 144 122 118 128 122 126 133 145 113 126 130 134 111 122 137 136 129 
140 139 118 119 126 115 130 133 124 124 124 138 128 128 125 128 113 120 147 123 118 133 125 
125 123 127 120 128 133 127 130 139 126 131 129 136 144 126 125 134 135 120 145 121 136
...


1.3 Bugs or troubles

  • setups still not used (only one state by setup)
  • firmware and hardware fields not used
  • ID Dif's key parameter is not documented.
  • SDHCAL DIF parameters no used (all set to 0) ask Laurent and Christophe about it.


1.4 Error messages

There is no particular logging system. See explanations of the errors messages encountered bellow:

  • ORA-12514: TNS:listener does not currently know of service requested in connect descriptor This message came directely from the Oracle server wich is not operational.


2 Install on other OS

We consider that the above installation was done on the calice@poldhcp45 account of a SLC55 machine.

$ mkdir ~/caliceDB
$ mkdir ~/caliceDB/lib
$ mkdir ~/caliceDB/include

$ cd ~caliceDB
$ scp calice@poldhcp45:/usr/lib/libilcconfdb.so lib
$ scp -r calice@poldhcp45:/usr/include/ILCConfDB include

$ files="/usr/lib/libclntsh.so /usr/lib/libnnz11.so /usr/lib/libocci.so /usr/lib/libociicus.so /usr/lib/libocijdbc11.so"
$ for f in $files ; do scp calice@poldhcp45:$f lib; done

$ files="/usr/include/ldap.h /usr/include/nzerror.h /usr/include/nzt.h /usr/include/occi.h /usr/include/occiAQ.h \
/usr/include/occiCommon.h /usr/include/occiControl.h /usr/include/occiData.h /usr/include/occiObjects.h /usr/include/oci.h \
/usr/include/oci1.h /usr/include/oci8dp.h /usr/include/ociap.h /usr/include/ociapr.h /usr/include/ocidef.h \
/usr/include/ocidem.h /usr/include/ocidfn.h /usr/include/ociextp.h /usr/include/ocikpr.h /usr/include/ocixmldb.h \
/usr/include/ocixstream.h /usr/include/odci.h /usr/include/oratypes.h /usr/include/ori.h /usr/include/orid.h \
/usr/include/orl.h /usr/include/oro.h /usr/include/ort.h /usr/include/xa.h"
$ for f in $files ; do scp calice@poldhcp45:$f include; done

The target machine have a 64 bits architecture :

# apt-get install libc6-dev-i386

$ g++ -c db.cc -o db.o -Iinclude

$ $ g++ db.o -o db -Iinclude -Llib -l ilcconfdb -fPIC
/usr/bin/ld: skipping incompatible lib/libilcconfdb.so when searching for -lilcconfdb
/usr/bin/ld: cannot find -lilcconfdb
collect2: ld returned 1 exit status

This will install the /usr/lib/libilcconfdb.so shared library but also files into:

  • /usr/lib/
  • /usr/include/
  • /usr/include/ILCConfDB


3 Ecals parameters

Ecals parameters

Mail from Stéphane Callier:

Explications :
- en colonne G, les bits ecrits en rouge sont fixés et ne sont pas disponibles pour l'utilisateur
(les 3 cases jaunes etaient fixées dans la 1ere version et n'apparaissent pas encore dans le GUI de Muriel)
- en colonne H, le nom du parametre
- en colonne C, le nombre de bits
- en colonne J, explications pour le decodage lorsqu'il y a plusieurs bits et que l'affichage est du texte

Ce fichier est valable pour les ASUs ECAL avec les puces SPIROC2 et SPIROC2A. 
La seule difference entre ces 2 puces, concerne la ligne 12 (en rose) qui n'est disponible que dans SPIROC2A.

Si tu as des questions...
A+
Stephane

Home Up

This document is also available in PDF and PostScript format.



2015-10-29