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 |
|
---|