Fmd.cxx

Go to the documentation of this file.
00001 // -*- mode: C++ -*- 
00002 //
00003 // Copyright (C) 2006 Christian Holm Christensen <cholm@nbi.dk>
00004 //
00005 // This library is free software; you can redistribute it and/or
00006 // modify it under the terms of the GNU Lesser General Public License
00007 // as published by the Free Software Foundation; either version 2.1
00008 // of the License, or (at your option) any later version.
00009 //
00010 // This library is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // Lesser General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU Lesser General Public
00016 // License along with this library; if not, write to the Free
00017 // Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018 // 02111-1307 USA
00019 //
00025 #include "Fmd.h"
00026 #include <rcuxx/Fmd.h>
00027 #include <rcudb/Server.h>
00028 
00029 //____________________________________________________________________
00030 RcuConf::Fmd::Fmd(Rcuxx::Fmd& fmd)
00031   : Bc(fmd), fFmd(fmd) 
00032 {}
00033 
00034 //____________________________________________________________________
00035 Rcuxx::AltroRegister*
00036 RcuConf::Fmd::Name2Register(const std::string& name) 
00037 {
00038   Rcuxx::AltroRegister* reg = 0;
00039   if      (name == "TEMP_TH")           reg = 0; // ~FMD fBc.TEMP_TH();
00040   else if (name == "AV_TH")             reg = 0; // ~FMD fBc.AV_TH();
00041   else if (name == "AC_TH")             reg = 0; // ~FMD fBc.AC_TH();
00042   else if (name == "DV_TH")             reg = 0; // ~FMD fBc.DV_TH();
00043   else if (name == "DC_TH")             reg = 0; // ~FMD fBc.DC_TH();
00044   else if (name == "ShapeBias")         reg = fFmd.ShapeBias();
00045   else if (name == "VFP")               reg = fFmd.VFP();
00046   else if (name == "VFS")               reg = fFmd.VFS();
00047   else if (name == "CalIter")           reg = fFmd.CalIter();
00048   else if (name == "ShiftClock")        reg = fFmd.ShiftClock();
00049   else if (name == "SampleClock")       reg = fFmd.SampleClock();
00050   else if (name == "HoldWait")          reg = fFmd.HoldWait();
00051   else if (name == "L0Timeout")         reg = fFmd.L0Timeout();
00052   else if (name == "L1Timeout")         reg = fFmd.L1Timeout();
00053   else if (name == "Range")             reg = fFmd.Range();
00054   else if (name == "L0Triggers")        reg = 0; // R/O fFmd.L0Triggers();
00055   else if (name == "Status")            reg = 0; // R/O fFmd.Status();
00056   else if (name == "T1")                reg = 0; // R/O fFmd.T1();
00057   else if (name == "T1_TH")             reg = fFmd.T1_TH();
00058   else if (name == "FLASH_I")           reg = 0; // R/O fFmd.FLASH_I();
00059   else if (name == "FLASH_I_TH")        reg = fFmd.FLASH_I_TH();
00060   else if (name == "AL_DIG_I")          reg = 0; // R/O fFmd.AL_DIG_I();
00061   else if (name == "AL_DIG_I_TH")       reg = fFmd.AL_DIG_I_TH();
00062   else if (name == "AL_ANA_I")          reg = 0; // R/O fFmd.AL_ANA_I();
00063   else if (name == "AL_ANA_I_TH")       reg = fFmd.AL_ANA_I_TH();
00064   else if (name == "VA_REC_IP")         reg = 0; // R/O fFmd.VA_REC_IP();
00065   else if (name == "VA_REC_IP_TH")      reg = fFmd.VA_REC_IP_TH();
00066   else if (name == "T2")                reg = 0; // R/O fFmd.T2();
00067   else if (name == "T2_TH")             reg = fFmd.T2_TH();
00068   else if (name == "VA_SUP_IP")         reg = 0; // R/O fFmd.VA_SUP_IP();
00069   else if (name == "VA_SUP_IP_TH")      reg = fFmd.VA_SUP_IP_TH();
00070   else if (name == "VA_REC_IM")         reg = 0; // R/O fFmd.VA_REC_IM();
00071   else if (name == "VA_REC_IM_TH")      reg = fFmd.VA_REC_IM_TH();
00072   else if (name == "VA_SUP_IM")         reg = 0; // R/O fFmd.VA_SUP_IM();
00073   else if (name == "VA_SUP_IM_TH")      reg = fFmd.VA_SUP_IM_TH();
00074   else if (name == "GTL_U")             reg = 0; // R/O fFmd.GTL_U();
00075   else if (name == "GTL_U_TH")          reg = fFmd.GTL_U_TH();
00076   else if (name == "T3")                reg = 0; // R/O fFmd.T3();
00077   else if (name == "T3_TH")             reg = fFmd.T3_TH();
00078   else if (name == "T1SENS")            reg = 0; // R/O fFmd.T1SENS();
00079   else if (name == "T1SENS_TH")         reg = fFmd.T1SENS_TH();
00080   else if (name == "T2SENS")            reg = 0; // R/O fFmd.T2SENS();
00081   else if (name == "T2SENS_TH")         reg = fFmd.T2SENS_TH();
00082   else if (name == "AL_DIG_U")          reg = 0; // R/O fFmd.AL_DIG_U();
00083   else if (name == "AL_DIG_U_TH")       reg = fFmd.AL_DIG_U_TH();
00084   else if (name == "AL_ANA_U")          reg = 0; // R/O fFmd.AL_ANA_U();
00085   else if (name == "AL_ANA_U_TH")       reg = fFmd.AL_ANA_U_TH();
00086   else if (name == "T4")                reg = 0; // R/O fFmd.T4();
00087   else if (name == "T4_TH")             reg = fFmd.T4_TH();
00088   else if (name == "VA_REC_UP")         reg = 0; // R/O fFmd.VA_REC_UP();
00089   else if (name == "VA_REC_UP_TH")      reg = fFmd.VA_REC_UP_TH();
00090   else if (name == "VA_SUP_UP")         reg = 0; // R/O fFmd.VA_SUP_UP();
00091   else if (name == "VA_SUP_UP_TH")      reg = fFmd.VA_SUP_UP_TH();
00092   else if (name == "VA_SUP_UM")         reg = 0; // R/O fFmd.VA_SUP_UM();
00093   else if (name == "VA_SUP_UM_TH")      reg = fFmd.VA_SUP_UM_TH();
00094   else if (name == "VA_REC_UM")         reg = 0; // R/O fFmd.VA_REC_UM();
00095   else if (name == "VA_REC_UM_TH")      reg = fFmd.VA_REC_UM_TH();
00096   else                                  reg = Bc::Name2Register(name);
00097   return reg;
00098 }
00099 
00100 //____________________________________________________________________
00101 Rcuxx::AltroCommand*
00102 RcuConf::Fmd::Name2Command(const std::string& name) 
00103 {
00104   Rcuxx::AltroCommand* cmd = 0;
00105   if      (name == "CalibrationRun")    cmd = fFmd.CalibrationRun();
00106   else if (name == "ChangeDacs")        cmd = fFmd.ChangeDacs();
00107   else if (name == "FakeTrigger")       cmd = fFmd.FakeTrigger();
00108   else if (name == "PulserOff")         cmd = fFmd.PulserOff();
00109   else if (name == "PulserOn")          cmd = fFmd.PulserOn();
00110   else if (name == "SoftReset")         cmd = fFmd.SoftReset();
00111   else if (name == "TestOff")           cmd = fFmd.TestOff();
00112   else if (name == "TestOn")            cmd = fFmd.TestOn();
00113   else                                  cmd = Bc::Name2Command(name);
00114   return cmd;
00115 }
00116 
00117 //____________________________________________________________________
00118 bool
00119 RcuConf::Fmd::Create(RcuDb::Server& s) 
00120 {
00121   // Everything is in the RCU 
00122   Parameter::Where w = Parameter::kBc;
00123   // Create throws an exception in case of errors
00124   try {
00125     /* === Registers === */
00126     // Component::Create(s, "L1CNT",    w, false, 0xffffffff); // Read-only
00127     // Component::Create(s, "L2CNT",    w, false, 0xffffffff); // Read-only
00128     // Component::Create(s, "SCLKCNT",  w, false, 0xffffffff); // Read-only
00129     // Component::Create(s, "DSTBCNT",  w, false, 0xffffffff); // Read-only
00130     Component::Create(s, "TSMWORD",     w, false, 0xffffffff);
00131     Component::Create(s, "USRATIO",     w, false, 0xffffffff);
00132     Component::Create(s, "CSR0",        w, false, 0xffffffff);
00133     // Component::Create(s, "CSR1",     w, false, 0xffffffff); // Read-only
00134     Component::Create(s, "CSR2",        w, false, 0xffffffff);
00135     Component::Create(s, "CSR3",        w, false, 0xffffffff);
00136     // Component::Create(s, "Version",  w, false, 0xffffffff); // Read-only
00137     // Component::Create(s, "TEMP",     w, false, 0xffffffff); // Read-only
00138     // Component::Create(s, "AV",       w, false, 0xffffffff); // Read-only
00139     // Component::Create(s, "AC",       w, false, 0xffffffff); // Read-only
00140     // Component::Create(s, "DV",       w, false, 0xffffffff); // Read-only
00141     // Component::Create(s, "DC",       w, false, 0xffffffff); // Read-only
00142     // Component::Create(s, "TEMP_TH",  w, false, 0xffffffff); // Invalid
00143     // Component::Create(s, "AV_TH",    w, false, 0xffffffff); // Invalid
00144     // Component::Create(s, "AC_TH",    w, false, 0xffffffff); // Invalid
00145     // Component::Create(s, "DV_TH",    w, false, 0xffffffff); // Invalid
00146     // Component::Create(s, "DC_TH",    w, false, 0xffffffff); // Invalid
00147     Component::Create(s, "ShapeBias",           w, false, 0xffff);
00148     Component::Create(s, "VFP",                 w, false, 0xffff);
00149     Component::Create(s, "VFS",                 w, false, 0xffff);
00150     Component::Create(s, "CalIter",             w, false, 0xffff);
00151     Component::Create(s, "ShiftClock",          w, false, 0xffff);
00152     Component::Create(s, "SampleClock",         w, false, 0xffff);
00153     Component::Create(s, "HoldWait",            w, false, 0xffff);
00154     Component::Create(s, "L0Timeout",           w, false, 0xffff);
00155     Component::Create(s, "L1Timeout",           w, false, 0xffff);
00156     Component::Create(s, "Range",               w, false, 0xffff);
00157     // Component::Create(s, "L0Triggers",       w, false, 0xffff); R/O
00158     // Component::Create(s, "Status",           w, false, 0xffff); R/O
00159     // Component::Create(s, "T1",               w, false, 0xffff); R/O
00160     Component::Create(s, "T1_TH",               w, false, 0xffff);
00161     // Component::Create(s, "FLASH_I",          w, false, 0xffff); R/O
00162     Component::Create(s, "FLASH_I_TH",          w, false, 0xffff);
00163     // Component::Create(s, "AL_DIG_I",         w, false, 0xffff); R/O
00164     Component::Create(s, "AL_DIG_I_TH",         w, false, 0xffff);
00165     // Component::Create(s, "AL_ANA_I",         w, false, 0xffff); R/O
00166     Component::Create(s, "AL_ANA_I_TH",         w, false, 0xffff);
00167     // Component::Create(s, "VA_REC_IP",        w, false, 0xffff); R/O
00168     Component::Create(s, "VA_REC_IP_TH",        w, false, 0xffff);
00169     // Component::Create(s, "T2",               w, false, 0xffff); R/O
00170     Component::Create(s, "T2_TH",               w, false, 0xffff);
00171     // Component::Create(s, "VA_SUP_IP",        w, false, 0xffff); R/O
00172     Component::Create(s, "VA_SUP_IP_TH",        w, false, 0xffff);
00173     // Component::Create(s, "VA_REC_IM",        w, false, 0xffff); R/O
00174     Component::Create(s, "VA_REC_IM_TH",        w, false, 0xffff);
00175     // Component::Create(s, "VA_SUP_IM",        w, false, 0xffff); R/O
00176     Component::Create(s, "VA_SUP_IM_TH",        w, false, 0xffff);
00177     // Component::Create(s, "GTL_U",            w, false, 0xffff); R/O
00178     Component::Create(s, "GTL_U_TH",            w, false, 0xffff);
00179     // Component::Create(s, "T3",               w, false, 0xffff); R/O
00180     Component::Create(s, "T3_TH",               w, false, 0xffff);
00181     // Component::Create(s, "T1SENS",           w, false, 0xffff); R/O
00182     Component::Create(s, "T1SENS_TH",           w, false, 0xffff);
00183     // Component::Create(s, "T2SENS",           w, false, 0xffff); R/O
00184     Component::Create(s, "T2SENS_TH",           w, false, 0xffff);
00185     // Component::Create(s, "AL_DIG_U",         w, false, 0xffff); R/O
00186     Component::Create(s, "AL_DIG_U_TH",         w, false, 0xffff);
00187     // Component::Create(s, "AL_ANA_U",         w, false, 0xffff); R/O
00188     Component::Create(s, "AL_ANA_U_TH",         w, false, 0xffff);
00189     // Component::Create(s, "T4",               w, false, 0xffff); R/O
00190     Component::Create(s, "T4_TH",               w, false, 0xffff);
00191     // Component::Create(s, "VA_REC_UP",        w, false, 0xffff); R/O
00192     Component::Create(s, "VA_REC_UP_TH",        w, false, 0xffff);
00193     // Component::Create(s, "VA_SUP_UP",        w, false, 0xffff); R/O
00194     Component::Create(s, "VA_SUP_UP_TH",        w, false, 0xffff);
00195     // Component::Create(s, "VA_SUP_UM",        w, false, 0xffff); R/O
00196     Component::Create(s, "VA_SUP_UM_TH",        w, false, 0xffff);
00197     // Component::Create(s, "VA_REC_UM",        w, false, 0xffff); R/O
00198     Component::Create(s, "VA_REC_UM_TH",        w, false, 0xffff);
00199     /* === Commands === */
00200     Component::Create(s, "ACQRDO",              w, false, 0xffffffff);
00201     Component::Create(s, "ALRST",               w, false, 0xffffffff);
00202     Component::Create(s, "BCRST",               w, false, 0xffffffff);
00203     Component::Create(s, "CNTCLR",              w, false, 0xffffffff);
00204     Component::Create(s, "CNTLAT",              w, false, 0xffffffff);
00205     Component::Create(s, "CSR1CLR",             w, false, 0xffffffff);
00206     Component::Create(s, "EVLRDO",              w, false, 0xffffffff);
00207     Component::Create(s, "SCEVL",               w, false, 0xffffffff);
00208     Component::Create(s, "STCNV",               w, false, 0xffffffff);
00209     Component::Create(s, "STTSM",               w, false, 0xffffffff);
00210     Component::Create(s, "CalibrationRun",      w, false, 0xffff);
00211     Component::Create(s, "ChangeDacs",          w, false, 0xffff);
00212     Component::Create(s, "FakeTrigger",         w, false, 0xffff);
00213     Component::Create(s, "PulserOff",           w, false, 0xffff);
00214     Component::Create(s, "PulserOn",            w, false, 0xffff);
00215     Component::Create(s, "SoftReset",           w, false, 0xffff);
00216     Component::Create(s, "TestOff",             w, false, 0xffff);
00217     Component::Create(s, "TestOn",              w, false, 0xffff);
00218   }
00219   catch (bool& e) {
00220     return e;
00221   }
00222   return true;
00223 }
00224 
00225 
00226 //____________________________________________________________________
00227 //
00228 // EOF
00229 //
Top of page Last update Fri Apr 27 01:54:15 2007
Copyright © 2004 Christian Holm Created by DoxyGen 1.3.5