added connectionState
This commit is contained in:
@ -86,7 +86,7 @@ NTMultiChannelBuilder::shared_pointer NTMultiChannelBuilder::addUserTag()
|
||||
StructureConstPtr NTMultiChannelBuilder::createStructure()
|
||||
{
|
||||
StandardFieldPtr standardField = getStandardField();
|
||||
size_t nfields = 2;
|
||||
size_t nfields = 3;
|
||||
if(descriptor) ++nfields;
|
||||
if(alarm) ++nfields;
|
||||
if(timeStamp) ++nfields;
|
||||
@ -107,6 +107,8 @@ StructureConstPtr NTMultiChannelBuilder::createStructure()
|
||||
}
|
||||
names[ind] = "channelName";
|
||||
fields[ind++] = fieldCreate->createScalarArray(pvString);
|
||||
names[ind] = "isConnected";
|
||||
fields[ind++] = fieldCreate->createScalarArray(pvBoolean);
|
||||
if(timeStamp) {
|
||||
names[ind] = "timeStamp";
|
||||
fields[ind++] = standardField->timeStamp();
|
||||
@ -198,6 +200,7 @@ NTMultiChannel::NTMultiChannel(PVStructurePtr const & pvStructure)
|
||||
pvAlarm(pvStructure->getSubField<PVStructure>("alarm")),
|
||||
pvValue(pvStructure->getSubField<PVUnionArray>("value")),
|
||||
pvChannelName(pvStructure->getSubField<PVStringArray>("channelName")),
|
||||
pvIsConnected(pvStructure->getSubField<PVBooleanArray>("isConnected")),
|
||||
pvSeverity(pvStructure->getSubField<PVIntArray>("severity")),
|
||||
pvStatus(pvStructure->getSubField<PVIntArray>("status")),
|
||||
pvMessage(pvStructure->getSubField<PVStringArray>("message")),
|
||||
|
@ -94,13 +94,13 @@ namespace detail {
|
||||
epics::pvData::StructureConstPtr createStructure();
|
||||
/**
|
||||
* Create a {@code PVStructure} that represents NTMultiChannel.
|
||||
* This resets this instance state and allows new {@code instance to be created.
|
||||
* This resets this instance state and allows new {@code instance to be created.}
|
||||
* @return a new instance of a {@code PVStructure}
|
||||
*/
|
||||
epics::pvData::PVStructurePtr createPVStructure();
|
||||
/**
|
||||
* Create a {@code NTMultiChannel} instance.
|
||||
* This resets this instance state and allows new {@code instance to be created.
|
||||
* This resets this instance state and allows new {@code instance to be created.}
|
||||
* @return a new instance of a {@code NTMultiChannel}
|
||||
*/
|
||||
NTMultiChannelPtr create();
|
||||
@ -189,6 +189,11 @@ public:
|
||||
* @return PVStringArrayPtr
|
||||
*/
|
||||
epics::pvData::PVStringArrayPtr getChannelName() { return pvChannelName;};
|
||||
/**
|
||||
* Get the connection state of each channel.
|
||||
* @return PVBooleanArrayPtr
|
||||
*/
|
||||
epics::pvData::PVBooleanArrayPtr getIsConnected() { return pvIsConnected;};
|
||||
/**
|
||||
* Get the severity of each channel.
|
||||
* @return PVIntArrayPtr which may be null.
|
||||
@ -231,6 +236,7 @@ private:
|
||||
epics::pvData::PVStructurePtr pvAlarm;
|
||||
epics::pvData::PVUnionArrayPtr pvValue;
|
||||
epics::pvData::PVStringArrayPtr pvChannelName;
|
||||
epics::pvData::PVBooleanArrayPtr pvIsConnected;
|
||||
epics::pvData::PVIntArrayPtr pvSeverity;
|
||||
epics::pvData::PVIntArrayPtr pvStatus;
|
||||
epics::pvData::PVStringArrayPtr pvMessage;
|
||||
|
@ -4,7 +4,7 @@
|
||||
* in file LICENSE that is included with this distribution.
|
||||
*/
|
||||
/*
|
||||
* ntnameValueTest.cpp
|
||||
* ntmutiChannelTest.cpp
|
||||
*
|
||||
* Created on: 2014.08
|
||||
* Author: Marty Kraimer
|
||||
@ -103,6 +103,8 @@ static void test()
|
||||
PVIntArrayPtr pvSeverity = multiChannel->getSeverity();
|
||||
pvSeverity->replace(freeze(severities));
|
||||
if(debug) {cout << *pvStructure << endl;}
|
||||
PVBooleanArrayPtr pvIsConnected = multiChannel->getIsConnected();
|
||||
shared_vector<const boolean> isConnected = pvIsConnected->view();
|
||||
multiChannel = builder->
|
||||
addValue(unionPtr) ->
|
||||
addDescriptor()->
|
||||
|
Reference in New Issue
Block a user