56 shared_vector<epics::pvData::boolean>isConnected = pvaClientMultiChannel->getIsConnected();
57 string request =
"value";
58 for(
size_t i=0; i<nchannel; ++i)
61 pvaClientGet[i] = pvaClientChannelArray[i]->createGet(request);
62 pvaClientGet[i]->issueConnect();
65 for(
size_t i=0; i<nchannel; ++i)
68 Status status = pvaClientGet[i]->waitConnect();
69 if(status.isOK())
continue;
70 string message = string(
"channel ") + pvaClientChannelArray[i]->getChannelName()
71 +
" PvaChannelGet::waitConnect " + status.getMessage();
72 throw std::runtime_error(message);
75 isGetConnected =
true;
81 shared_vector<epics::pvData::boolean> isConnected = pvaClientMultiChannel->getIsConnected();
82 for(
size_t i=0; i<nchannel; ++i)
85 if(!pvaClientGet[i]) pvaClientGet[i]=pvaClientChannelArray[i]->createGet(
"value");
86 pvaClientGet[i]->issueGet();
89 for(
size_t i=0; i<nchannel; ++i)
92 Status status = pvaClientGet[i]->waitGet();
93 if(status.isOK())
continue;
94 string message = string(
"channel ") + pvaClientChannelArray[i]->getChannelName()
95 +
" PvaChannelGet::waitGet " + status.getMessage();
96 throw std::runtime_error(message);
99 for(
size_t i=0; i<nchannel; ++i)
103 PVStructurePtr pvStructure = pvaClientGet[i]->getData()->getPVStructure();
104 PVScalarPtr pvScalar(pvStructure->getSubField<PVScalar>(
"value"));
106 ScalarType scalarType = pvScalar->getScalar()->getScalarType();
107 if(ScalarTypeFunc::isNumeric(scalarType)) {
108 doubleValue[i] = getConvert()->toDouble(pvScalar);
110 doubleValue[i] = epicsNAN;
113 doubleValue[i] = epicsNAN;
116 doubleValue[i] = epicsNAN;