Commit e33a35a8 authored by Jean-Luc Pons's avatar Jean-Luc Pons

Work around for DeviceAttribute extraction issue

parent 4ab2f4f4
......@@ -944,17 +944,21 @@ void AttributeCombiner::add_dynamic_commands()
for (int i = 0; i < nbDev; i++) {
for (int j = 0; j < nbAtt; j++) {
if (!arl[j][i].has_failed() && !arl[j][i].get_data().is_empty() && arl[j][i].group_element_enabled()) {
if (!arl[j][i].has_failed() && arl[j][i].group_element_enabled()) {
vector<inType> val;
arl[j][i] >> val;
if (firstValue) {
if( val.size()>0 ) {
if (firstValue) {
value = val[0];
if(item->rwType == Tango::READ_WRITE){
setPoint = val[1];
if (item->rwType == Tango::READ_WRITE) {
setPoint = val[1];
}
firstValue = false;
} else {
} else {
allEqual = allEqual && (val[0] == value);
}
} else {
allEqual = false;
}
} else {
if (arl[j][i].has_failed() && arl[j][i].group_element_enabled()) {
......@@ -1149,18 +1153,22 @@ void AttributeCombiner::add_dynamic_commands()
for (int i = 0; i < nbDev; i++) {
for (int j = 0; j < nbAtt; j++) {
if (arl[j][i].has_failed() || arl[j][i].get_data().is_empty()) {
if (arl[j][i].has_failed()) {
readVal[i * nbAtt + j] = invalid;
if (isRW) readSetPoint[i * nbAtt + j] = invalid;
if(arl[j][i].has_failed())
addError(i, arl[j][i]);
addError(i, arl[j][i]);
} else {
if (arl[j][i].group_element_enabled()) {
if (item->type != Tango::DEV_STATE && isRW) {
vector<inType> v;
arl[j][i] >> v;
readVal[i * nbAtt + j] = (outType) v[0];
readSetPoint[i * nbAtt + j] = (outType) v[1];
if(v.size()>0) {
readVal[i * nbAtt + j] = (outType) v[0];
readSetPoint[i * nbAtt + j] = (outType) v[1];
} else {
readVal[i * nbAtt + j] = invalid;
if (isRW) readSetPoint[i * nbAtt + j] = invalid;
}
} else {
inType v;
arl[j][i] >> v;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment