Files
pvData/testApp/pv/testStandardField.cpp
2013-02-16 12:50:36 +01:00

72 lines
2.1 KiB
C++

/* testStandardField.cpp */
/**
* Copyright - See the COPYRIGHT that is included with this distribution.
* EPICS pvData is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
/* Author: Marty Kraimer Date: 2012.08 */
#include <cstddef>
#include <cstdlib>
#include <cstddef>
#include <string>
#include <cstdio>
#include <epicsAssert.h>
#include <epicsExit.h>
#include <pv/requester.h>
#include <pv/pvIntrospect.h>
#include <pv/pvData.h>
#include <pv/convert.h>
#include <pv/standardField.h>
using namespace epics::pvData;
using std::tr1::static_pointer_cast;
static bool debug = false;
static FieldCreatePtr fieldCreate = getFieldCreate();
static StandardFieldPtr standardField = getStandardField();
static String builder("");
static void print(String name)
{
if(debug) printf("\n%s\n%s\n",name.c_str(),builder.c_str());
}
int main(int, char **)
{
StructureConstPtr doubleValue = standardField->scalar(pvDouble,
"alarm,timeStamp,display,control,valueAlarm");
builder.clear();
doubleValue->toString(&builder);
print("doubleValue");
StructureConstPtr stringArrayValue = standardField->scalarArray(pvString,
"alarm,timeStamp");
builder.clear();
stringArrayValue->toString(&builder);
print("stringArrayValue");
StructureConstPtr enumeratedValue = standardField->enumerated(
"alarm,timeStamp,valueAlarm");
builder.clear();
enumeratedValue->toString(&builder);
print("enumeratedValue");
FieldConstPtrArray fields;
fields.reserve(2);
fields.push_back(fieldCreate->createScalar(pvDouble));
fields.push_back(fieldCreate->createScalarArray(pvDouble));
StringArray fieldNames;
fieldNames.reserve(2);
fieldNames.push_back("scalarValue");
fieldNames.push_back("arrayValue");
StructureConstPtr structure = fieldCreate->createStructure(fieldNames, fields);
StructureConstPtr structureArrayValue = standardField->structureArray(structure, "alarm,timeStamp");
builder.clear();
structureArrayValue->toString(&builder);
print("structureArrayValue");
printf("PASSED\n");
return(0);
}