Files
pvData/pvDataApp/test/testSimpleStructure.cpp
2010-10-01 10:01:27 -04:00

76 lines
2.1 KiB
C++

/* testSimpleStructure.cpp */
/* Author: Marty Kraimer Date: 2010.09 */
#include <stddef.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include "requester.h"
#include "pvIntrospect.h"
#include "pvData.h"
#include "standardField.h"
using namespace epics::pvData;
static FieldCreate * pfieldCreate = 0;
static PVDataCreate *pvDataCreate = 0;
static String buffer("");
void testSimpleStructure() {
printf("\ntestSimpleStructure\n");
String secondsPastEpoch("secondsPastEpoch");
String nanoSeconds("nanoSeconds");
String timeStamp("timeStamp");
String severity("severity");
String message("message");
String alarm("alarm");
String value("value");
String top("top");
ScalarConstPtr pseconds = pfieldCreate->createScalar(
secondsPastEpoch,pvLong);
ScalarConstPtr pnano = pfieldCreate->createScalar(
nanoSeconds,pvInt);
FieldConstPtrArray fields = new FieldConstPtr[2];
fields[0] = pseconds;
fields[1] = pnano;
StructureConstPtr ptimeStamp = pfieldCreate->createStructure(
timeStamp,2,fields);
ScalarConstPtr pseverity = pfieldCreate->createScalar(
severity,pvInt);
ScalarConstPtr pmessage = pfieldCreate->createScalar(
message,pvString);
fields = new FieldConstPtr[2];
fields[0] = pseverity;
fields[1] = pmessage;
StructureConstPtr palarm = pfieldCreate->createStructure(
alarm,2,fields);
ScalarConstPtr pvalue = pfieldCreate->createScalar(
value,pvDouble);
fields = new FieldConstPtr[3];
fields[0] = ptimeStamp;
fields[1] = palarm;
fields[2] = pvalue;
StructureConstPtr ptop = pfieldCreate->createStructure(
top,3,fields);
buffer.clear();
ptop->toString(&buffer);
printf("%s\n",buffer.c_str());
PVStructure *pvStructure = pvDataCreate->createPVStructure( 0, ptop);
buffer.clear();
pvStructure->toString(&buffer);
printf("%s\n",buffer.c_str());
}
int main(int argc,char *argv[])
{
pfieldCreate = getFieldCreate();
pvDataCreate = getPVDataCreate();
testSimpleStructure();
return(0);
}