| 1 | // toillreglageproducer.cc
 | 
|---|
| 2 | // Eric Aubourg         CEA/DAPNIA/SPP   septembre 1999
 | 
|---|
| 3 | 
 | 
|---|
| 4 | #include "toillreglageproducer.h"
 | 
|---|
| 5 | #include "archfileset.h"
 | 
|---|
| 6 | #include "toimanager.h"
 | 
|---|
| 7 | #include "requesthandler.h"
 | 
|---|
| 8 | 
 | 
|---|
| 9 | // horloge
 | 
|---|
| 10 | #define horlPeriode    "horlPeriode"
 | 
|---|
| 11 | #define horlNbMesures  "horlNbMesures"
 | 
|---|
| 12 | #define horlTempMort   "horlTempMort"
 | 
|---|
| 13 | #define horlFlag       "horlFlag"
 | 
|---|
| 14 | 
 | 
|---|
| 15 | // regul_bolo
 | 
|---|
| 16 | #define regMode        "regMode"         // index regul 
 | 
|---|
| 17 | #define regNumBolo     "regNumBolo"
 | 
|---|
| 18 | #define regVoieChauf   "regVoieChauf"
 | 
|---|
| 19 | #define regProp        "regProp"
 | 
|---|
| 20 | #define regInteg       "regInteg"
 | 
|---|
| 21 | #define regDeriv       "regDeriv"
 | 
|---|
| 22 | #define regChauffage   "regChauffage"
 | 
|---|
| 23 | 
 | 
|---|
| 24 | // auto_bolo
 | 
|---|
| 25 | #define autoBolMode    "autoBolMode"     // index voie
 | 
|---|
| 26 | #define autoBolGain    "autoBolGain"
 | 
|---|
| 27 | #define autoBolCourant "autoBolCourant"
 | 
|---|
| 28 | #define autoBolDelai   "autoBolDelai"
 | 
|---|
| 29 | 
 | 
|---|
| 30 | // auto_dilu
 | 
|---|
| 31 | #define autoDilVanne   "autoDilVanne"
 | 
|---|
| 32 | #define autoDilHelium  "autoDilHelium"
 | 
|---|
| 33 | #define autoDilChauff  "autoDilChauff"
 | 
|---|
| 34 | #define autoDilPiles   "autoDilPiles"
 | 
|---|
| 35 | #define autoDilTrans   "autoDilTrans"
 | 
|---|
| 36 | #define autoDilTMxVan  "autoDilTMxVan"
 | 
|---|
| 37 | #define autoDilxx7     "autoDilxx7"
 | 
|---|
| 38 | #define autoDilxx8     "autoDilxx8"
 | 
|---|
| 39 | 
 | 
|---|
| 40 | // reglage_un_bolo
 | 
|---|
| 41 | #define boloDACV       "boloDACV"       // index bolo
 | 
|---|
| 42 | #define boloDACI       "boloDACI"
 | 
|---|
| 43 | 
 | 
|---|
| 44 | 
 | 
|---|
| 45 | TOILLReglageProducer::TOILLReglageProducer()
 | 
|---|
| 46 | {
 | 
|---|
| 47 |   possibleTOIs.insert(TOI(horlPeriode,   TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 48 |   possibleTOIs.insert(TOI(horlNbMesures, TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 49 |   possibleTOIs.insert(TOI(horlTempMort,  TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 50 |   possibleTOIs.insert(TOI(horlFlag,      TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 51 |   
 | 
|---|
| 52 |   possibleTOIs.insert(TOI(regMode,       TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 53 |   possibleTOIs.insert(TOI(regNumBolo,    TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 54 |   possibleTOIs.insert(TOI(regVoieChauf,  TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 55 |   possibleTOIs.insert(TOI(regProp,       TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 56 |   possibleTOIs.insert(TOI(regInteg,      TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 57 |   possibleTOIs.insert(TOI(regDeriv,      TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 58 |   possibleTOIs.insert(TOI(regChauffage,  TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 59 | 
 | 
|---|
| 60 |   possibleTOIs.insert(TOI(autoBolMode,   TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 61 |   possibleTOIs.insert(TOI(autoBolGain,   TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 62 |   possibleTOIs.insert(TOI(autoBolCourant,TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 63 |   possibleTOIs.insert(TOI(autoBolDelai,  TOI::all,    "", "CHAR-CODED"));  
 | 
|---|
| 64 | 
 | 
|---|
| 65 |   possibleTOIs.insert(TOI(autoDilVanne,  TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 66 |   possibleTOIs.insert(TOI(autoDilHelium, TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 67 |   possibleTOIs.insert(TOI(autoDilChauff, TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 68 |   possibleTOIs.insert(TOI(autoDilPiles,  TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 69 |   possibleTOIs.insert(TOI(autoDilTrans,  TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 70 |   possibleTOIs.insert(TOI(autoDilTMxVan, TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 71 |   possibleTOIs.insert(TOI(autoDilxx7,    TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 72 |   possibleTOIs.insert(TOI(autoDilxx8,    TOI::unspec, "", "CHAR-CODED"));  
 | 
|---|
| 73 |   
 | 
|---|
| 74 |   possibleTOIs.insert(TOI(boloDACV,      TOI::all,    "", "microVolts"));  
 | 
|---|
| 75 |   possibleTOIs.insert(TOI(boloDACI,      TOI::all,    "", "microAmps"));  
 | 
|---|
| 76 | }
 | 
|---|
| 77 | 
 | 
|---|
| 78 | string TOILLReglageProducer::getName() {
 | 
|---|
| 79 |   return("TOILLReglageProducer 1.0");
 | 
|---|
| 80 | }
 | 
|---|
| 81 | 
 | 
|---|
| 82 | 
 | 
|---|
| 83 | 
 | 
|---|
| 84 | #define COMPTOI(_toi_, _field_)                               \
 | 
|---|
| 85 |     if ((*i).name == _toi_) {                                 \
 | 
|---|
| 86 |       computedValue((*i),sample0, blk->reglage._field_);      \
 | 
|---|
| 87 |     }
 | 
|---|
| 88 | 
 | 
|---|
| 89 | void TOILLReglageProducer::handleBlock(ArchFileSet* fs)
 | 
|---|
| 90 | {
 | 
|---|
| 91 |   block_type_reglage* blk = fs->lastReglage();
 | 
|---|
| 92 |   long sample0 = numero_block(blk)*72;
 | 
|---|
| 93 |   for (set<TOI>::iterator i = producedTOIs.begin(); i != producedTOIs.end(); i++) {
 | 
|---|
| 94 |     int k = (*i).index;
 | 
|---|
| 95 |     COMPTOI(horlPeriode,    horloge.periode) else
 | 
|---|
| 96 |     COMPTOI(horlNbMesures,  horloge.nb_mesures) else
 | 
|---|
| 97 |     COMPTOI(horlTempMort,   horloge.temp_mort) else
 | 
|---|
| 98 |     COMPTOI(horlFlag,       horloge.flag) else
 | 
|---|
| 99 |     COMPTOI(regMode,        regul[k].mode) else
 | 
|---|
| 100 |     COMPTOI(regNumBolo,     regul[k].num_bolo) else
 | 
|---|
| 101 |     COMPTOI(regVoieChauf,   regul[k].voie_chauf) else
 | 
|---|
| 102 |     COMPTOI(regProp,        regul[k].prop) else
 | 
|---|
| 103 |     COMPTOI(regInteg,       regul[k].integ) else
 | 
|---|
| 104 |     COMPTOI(regDeriv,       regul[k].deriv) else
 | 
|---|
| 105 |     COMPTOI(regChauffage,   regul[k].chauffage) else
 | 
|---|
| 106 |     COMPTOI(autoBolMode,    autom[k].mode) else
 | 
|---|
| 107 |     COMPTOI(autoBolGain,    autom[k].gain) else
 | 
|---|
| 108 |     COMPTOI(autoBolCourant, autom[k].courant) else
 | 
|---|
| 109 |     COMPTOI(autoBolDelai,   autom[k].delai) else
 | 
|---|
| 110 |     COMPTOI(autoDilVanne,   dilu.vanne) else
 | 
|---|
| 111 |     COMPTOI(autoDilHelium,  dilu.helium) else
 | 
|---|
| 112 |     COMPTOI(autoDilChauff,  dilu.chauffage) else
 | 
|---|
| 113 |     COMPTOI(autoDilPiles,   dilu.piles) else
 | 
|---|
| 114 |     COMPTOI(autoDilTrans,   dilu.transmission) else
 | 
|---|
| 115 |     COMPTOI(autoDilTMxVan,  dilu.temps_max_vanne) else
 | 
|---|
| 116 |     COMPTOI(autoDilxx7,     dilu.xx7) else
 | 
|---|
| 117 |     COMPTOI(autoDilxx8,     dilu.xx8) else
 | 
|---|
| 118 |     if ((*i).name == boloDACV) {
 | 
|---|
| 119 |       computedValue((*i), sample0, DAC_muV(&fs->lastParam()->param, &blk->reglage, k));
 | 
|---|
| 120 |     } else
 | 
|---|
| 121 |     if ((*i).name == boloDACI) {
 | 
|---|
| 122 |       computedValue((*i), sample0, DAC_muA(&fs->lastParam()->param, &blk->reglage, k));
 | 
|---|
| 123 |     }
 | 
|---|
| 124 |   }
 | 
|---|
| 125 | }
 | 
|---|
| 126 | 
 | 
|---|
| 127 | 
 | 
|---|
| 128 | 
 | 
|---|