| [534] | 1 | // toilldiluproducer.cc
 | 
|---|
 | 2 | // Eric Aubourg         CEA/DAPNIA/SPP   octobre 1999
 | 
|---|
 | 3 | 
 | 
|---|
 | 4 | #include "toilldiluproducer.h"
 | 
|---|
 | 5 | #include "archfileset.h"
 | 
|---|
 | 6 | #include "toimanager.h"
 | 
|---|
 | 7 | #include "requesthandler.h"
 | 
|---|
 | 8 | 
 | 
|---|
 | 9 | #define   dilDAC           "dilDAC"
 | 
|---|
 | 10 | #define   dilSwitch        "dilSwitch"
 | 
|---|
 | 11 | #define   voyantEVO        "voyantEVO"
 | 
|---|
 | 12 | #define   voyantEVF        "voyantEVF"
 | 
|---|
 | 13 | #define   commandeEV0      "commandeEV0"
 | 
|---|
 | 14 | #define   commandeEVF      "commandeEVF"
 | 
|---|
 | 15 | #define   commandeEVB      "commandeEVB"
 | 
|---|
 | 16 | #define   commandeEVV      "commandeEVV"
 | 
|---|
 | 17 | #define   pressEnt3He      "pressEnt3He"
 | 
|---|
 | 18 | #define   debit3He         "debit3He"
 | 
|---|
 | 19 | #define   pressSor3He      "pressSor3He"
 | 
|---|
 | 20 | #define   pressEnt4He      "pressEnt4He"
 | 
|---|
 | 21 | #define   debit4He         "debit4He"
 | 
|---|
 | 22 | #define   pressSor4He      "pressSor4He"
 | 
|---|
 | 23 | #define   pressAirVanne    "pressAirVanne"
 | 
|---|
 | 24 | #define   pressPompChar    "pressPompChar"
 | 
|---|
 | 25 | #define   pressMembrane    "pressMembrane"
 | 
|---|
 | 26 | #define   pressExterne     "pressExterne"
 | 
|---|
 | 27 | #define   tensPile10T      "tensPile10T"
 | 
|---|
 | 28 | #define   tensPileP18D     "tensPileP18D"
 | 
|---|
 | 29 | #define   tensPileM18D     "tensPileM18D"
 | 
|---|
 | 30 | #define   tensPile10B      "tensPile10B"
 | 
|---|
 | 31 | #define   tensPileP18B     "tensPileP18B"
 | 
|---|
 | 32 | #define   tensPileM18B     "tensPileM18B"
 | 
|---|
 | 33 | #define   tensPileCh       "tensPileCh"
 | 
|---|
 | 34 | #define   swPile5          "swPile5"
 | 
|---|
 | 35 | #define   swPile15         "swPile15"
 | 
|---|
 | 36 | #define   tempCaissH1      "tempCaissH1"
 | 
|---|
 | 37 | #define   tempCaissH2      "tempCaissH2"
 | 
|---|
 | 38 | #define   tempCaissB1      "tempCaissB1"
 | 
|---|
 | 39 | #define   tempCaissB2      "tempCaissB2"
 | 
|---|
 | 40 | #define   tempCaissTHe     "tempCaissTHe"
 | 
|---|
 | 41 | #define   tempCaissPiles   "tempCaissPiles"
 | 
|---|
 | 42 | #define   tempCaissDrv     "tempCaissDrv"
 | 
|---|
 | 43 | #define   pressHeBain      "pressHeBain"
 | 
|---|
 | 44 | #define   pressPirani      "pressPirani"
 | 
|---|
 | 45 | 
 | 
|---|
 | 46 | 
 | 
|---|
 | 47 | TOILLDiluProducer::TOILLDiluProducer()
 | 
|---|
 | 48 | {
 | 
|---|
 | 49 |   possibleTOIs.insert(TOI(dilDAC,        TOI::all,    "", "ADU"));  
 | 
|---|
 | 50 |   possibleTOIs.insert(TOI(dilSwitch,     TOI::unspec, "", "LONGWORD"));  
 | 
|---|
 | 51 |   
 | 
|---|
 | 52 |   possibleTOIs.insert(TOI(voyantEVO,     TOI::unspec, "", "BOOLEAN"));  
 | 
|---|
 | 53 |   possibleTOIs.insert(TOI(voyantEVF,     TOI::unspec, "", "BOOLEAN"));  
 | 
|---|
 | 54 |   possibleTOIs.insert(TOI(commandeEV0,   TOI::unspec, "", "BOOLEAN"));  
 | 
|---|
 | 55 |   possibleTOIs.insert(TOI(commandeEVF,   TOI::unspec, "", "BOOLEAN"));  
 | 
|---|
 | 56 |   possibleTOIs.insert(TOI(commandeEVB,   TOI::unspec, "", "BOOLEAN"));  
 | 
|---|
 | 57 |   possibleTOIs.insert(TOI(commandeEVV,   TOI::unspec, "", "BOOLEAN"));  
 | 
|---|
 | 58 |   
 | 
|---|
 | 59 |   possibleTOIs.insert(TOI(pressEnt3He,   TOI::unspec, "", "bars"));  
 | 
|---|
 | 60 |   possibleTOIs.insert(TOI(debit3He,      TOI::unspec, "", "microMoles"));  
 | 
|---|
 | 61 |   possibleTOIs.insert(TOI(pressSor3He,   TOI::unspec, "", "bars"));  
 | 
|---|
 | 62 | 
 | 
|---|
 | 63 |   possibleTOIs.insert(TOI(pressEnt4He,   TOI::unspec, "", "bars"));  
 | 
|---|
 | 64 |   possibleTOIs.insert(TOI(debit4He,      TOI::unspec, "", "microMoles"));  
 | 
|---|
 | 65 |   possibleTOIs.insert(TOI(pressSor4He,   TOI::unspec, "", "bars"));  
 | 
|---|
 | 66 | 
 | 
|---|
 | 67 |   possibleTOIs.insert(TOI(pressAirVanne, TOI::unspec, "", "bars"));  
 | 
|---|
 | 68 |   possibleTOIs.insert(TOI(pressPompChar, TOI::unspec, "", "bars"));  
 | 
|---|
 | 69 |   possibleTOIs.insert(TOI(pressMembrane, TOI::unspec, "", "bars"));  
 | 
|---|
 | 70 |   possibleTOIs.insert(TOI(pressExterne,  TOI::unspec, "", "bars"));  
 | 
|---|
 | 71 |   
 | 
|---|
 | 72 |   possibleTOIs.insert(TOI(tensPile10T,   TOI::unspec, "", "Volts"));  
 | 
|---|
 | 73 |   possibleTOIs.insert(TOI(tensPileP18D,  TOI::unspec, "", "Volts"));  
 | 
|---|
 | 74 |   possibleTOIs.insert(TOI(tensPileM18D,  TOI::unspec, "", "Volts"));  
 | 
|---|
 | 75 |   possibleTOIs.insert(TOI(tensPile10B,   TOI::unspec, "", "Volts"));  
 | 
|---|
 | 76 |   possibleTOIs.insert(TOI(tensPileP18B,  TOI::unspec, "", "Volts"));  
 | 
|---|
 | 77 |   possibleTOIs.insert(TOI(tensPileM18B,  TOI::unspec, "", "Volts"));  
 | 
|---|
 | 78 |   possibleTOIs.insert(TOI(tensPileCh,    TOI::unspec, "", "Volts"));  
 | 
|---|
 | 79 | 
 | 
|---|
 | 80 |   possibleTOIs.insert(TOI(swPile5,       TOI::unspec, "", "BOOLEAN"));  
 | 
|---|
 | 81 |   possibleTOIs.insert(TOI(swPile15,      TOI::unspec, "", "BOOLEAN"));  
 | 
|---|
 | 82 | 
 | 
|---|
 | 83 |   possibleTOIs.insert(TOI(tempCaissH1,   TOI::unspec, "", "Kelvin"));  
 | 
|---|
 | 84 |   possibleTOIs.insert(TOI(tempCaissH2,   TOI::unspec, "", "Kelvin"));  
 | 
|---|
 | 85 |   possibleTOIs.insert(TOI(tempCaissB1,   TOI::unspec, "", "Kelvin"));  
 | 
|---|
 | 86 |   possibleTOIs.insert(TOI(tempCaissB2,   TOI::unspec, "", "Kelvin"));  
 | 
|---|
 | 87 |   possibleTOIs.insert(TOI(tempCaissTHe,  TOI::unspec, "", "Kelvin"));  
 | 
|---|
 | 88 |   possibleTOIs.insert(TOI(tempCaissPiles,TOI::unspec, "", "Kelvin"));  
 | 
|---|
 | 89 |   possibleTOIs.insert(TOI(tempCaissDrv,  TOI::unspec, "", "Kelvin"));  
 | 
|---|
 | 90 | 
 | 
|---|
 | 91 |   possibleTOIs.insert(TOI(pressHeBain,   TOI::unspec, "", "bars"));  
 | 
|---|
 | 92 |   possibleTOIs.insert(TOI(pressPirani,   TOI::unspec, "", "bars"));  
 | 
|---|
 | 93 | }
 | 
|---|
 | 94 | 
 | 
|---|
 | 95 | string TOILLDiluProducer::getName() {
 | 
|---|
 | 96 |   return("TOILLDiluProducer 1.0");
 | 
|---|
 | 97 | }
 | 
|---|
 | 98 | 
 | 
|---|
 | 99 | #define COMPTOI(_toi_, _func_)                               \
 | 
|---|
 | 100 |     if ((*i).name == _toi_) {                                 \
 | 
|---|
 | 101 |       computedValue((*i),sample0, _func_(blk));      \
 | 
|---|
 | 102 |     }
 | 
|---|
 | 103 | 
 | 
|---|
 | 104 | void TOILLDiluProducer::handleBlock(ArchFileSet* fs)
 | 
|---|
 | 105 | {
 | 
|---|
 | 106 |   block_type_dilution* blk = fs->lastDilution();
 | 
|---|
 | 107 |   long sample0 = numero_block(blk)*72;
 | 
|---|
 | 108 |   for (set<TOI>::iterator i = producedTOIs.begin(); i != producedTOIs.end(); i++) {
 | 
|---|
 | 109 |     COMPTOI(voyantEVO,      voyant_EVO) else
 | 
|---|
 | 110 |     COMPTOI(voyantEVF,      voyant_EVF) else
 | 
|---|
 | 111 |     COMPTOI(commandeEV0,    commande_EVO) else
 | 
|---|
 | 112 |     COMPTOI(commandeEVF,    commande_EVF) else
 | 
|---|
 | 113 |     COMPTOI(commandeEVB,    commande_EVB) else
 | 
|---|
 | 114 |     COMPTOI(commandeEVV,    commande_EVV) else
 | 
|---|
 | 115 |     COMPTOI(pressEnt3He,    pression_entree_3He) else
 | 
|---|
 | 116 |     COMPTOI(debit3He,       debit_3He) else
 | 
|---|
 | 117 |     COMPTOI(pressSor3He,    pression_sortie_3He) else
 | 
|---|
 | 118 |     COMPTOI(pressEnt4He,    pression_entree_4He) else
 | 
|---|
 | 119 |     COMPTOI(debit4He,       debit_4He) else
 | 
|---|
 | 120 |     COMPTOI(pressSor4He,    pression_sortie_4He) else
 | 
|---|
 | 121 |     COMPTOI(pressAirVanne,  pression_air_vanne) else
 | 
|---|
 | 122 |     COMPTOI(pressPompChar,  pression_pompe_charbon) else
 | 
|---|
 | 123 |     COMPTOI(pressMembrane,  pression_membranne) else
 | 
|---|
 | 124 |     COMPTOI(pressExterne,   pression_externe) else
 | 
|---|
 | 125 |     COMPTOI(tensPile10T,    tension_pile_10T) else
 | 
|---|
 | 126 |     COMPTOI(tensPileP18D,   tension_pile_p18D) else
 | 
|---|
 | 127 |     COMPTOI(tensPileM18D,   tension_pile_m18D) else
 | 
|---|
 | 128 |     COMPTOI(tensPile10B,    tension_pile_10B) else
 | 
|---|
 | 129 |     COMPTOI(tensPileP18B,   tension_pile_p18B) else
 | 
|---|
 | 130 |     COMPTOI(tensPileM18B,   tension_pile_m18B) else
 | 
|---|
 | 131 |     COMPTOI(tensPileCh,     tension_pile_Ch) else
 | 
|---|
 | 132 |     COMPTOI(swPile5,        switch_pile_5) else
 | 
|---|
 | 133 |     COMPTOI(swPile15,       switch_pile_15) else
 | 
|---|
 | 134 |     COMPTOI(tempCaissH1,    temperature_caisson_haut1) else
 | 
|---|
 | 135 |     COMPTOI(tempCaissH2,    temperature_caisson_haut2) else
 | 
|---|
 | 136 |     COMPTOI(tempCaissB1,    temperature_caisson_bas1) else
 | 
|---|
 | 137 |     COMPTOI(tempCaissB2,    temperature_caisson_bas2) else
 | 
|---|
 | 138 |     COMPTOI(tempCaissTHe,   temperature_caisson_tube_helium) else
 | 
|---|
 | 139 |     COMPTOI(tempCaissPiles, temperature_caisson_piles) else
 | 
|---|
 | 140 |     COMPTOI(tempCaissDrv,   temperature_caisson_driver_moteur) else
 | 
|---|
 | 141 |     COMPTOI(pressHeBain,    pression_helium_bain) else
 | 
|---|
 | 142 |     COMPTOI(pressPirani,    pression_pirani)
 | 
|---|
 | 143 |     if ((*i).name == dilDAC) {
 | 
|---|
 | 144 |       int k = (*i).index;
 | 
|---|
 | 145 |       computedValue((*i), sample0, blk->ADC_dil[k]);
 | 
|---|
 | 146 |     } else
 | 
|---|
 | 147 |     if ((*i).name == dilSwitch) {
 | 
|---|
 | 148 |       computedValue((*i), sample0, blk->switch_dil);
 | 
|---|
 | 149 |     }
 | 
|---|
 | 150 |   }
 | 
|---|
 | 151 | }
 | 
|---|
 | 152 | 
 | 
|---|
 | 153 | 
 | 
|---|
 | 154 | 
 | 
|---|