本文整理汇总了C++中PVDatabasePtr::addRecord方法的典型用法代码示例。如果您正苦于以下问题:C++ PVDatabasePtr::addRecord方法的具体用法?C++ PVDatabasePtr::addRecord怎么用?C++ PVDatabasePtr::addRecord使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PVDatabasePtr
的用法示例。
在下文中一共展示了PVDatabasePtr::addRecord方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc,char *argv[])
{
PVDatabasePtr master = PVDatabase::getMaster();
PVRecordPtr pvRecord;
bool result = false;
string recordName;
recordName = "exampleServer";
pvRecord = ExampleServer::create(recordName);
result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
recordName = "traceRecordPGRPC";
pvRecord = TraceRecord::create(recordName);
result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
ContextLocal::shared_pointer contextLocal = ContextLocal::create();
contextLocal->start();
PVStringArrayPtr pvNames = master->getRecordNames();
shared_vector<const string> names = pvNames->view();
for(size_t i=0; i<names.size(); ++i) cout << names[i] << endl;
contextLocal->waitForExit();
return 0;
}
示例2: main
int main(int argc,char *argv[])
{
string provider("pva");
string linkedRecordName("doubleArray");
bool generateLinkedRecord(true);
if(argc==2 && string(argv[1])==string("-help")) {
cout << "provider linkedRecordName generateLinkedRecord" << endl;
cout << "default" << endl;
cout << provider << " " << " " << linkedRecordName << " true" << endl;
return 0;
}
if(argc>1) provider = argv[1];
if(argc>2) linkedRecordName = argv[2];
if(argc>3) {
string val = argv[3];
if(val=="false") generateLinkedRecord = false;
}
try {
PVDatabasePtr master = PVDatabase::getMaster();
ChannelProviderLocalPtr channelProvider = getChannelProviderLocal();
PvaClientPtr pva= PvaClient::get(provider);
ServerContext::shared_pointer ctx =
startPVAServer("local",0,true,true);
if(generateLinkedRecord) {
NTScalarArrayBuilderPtr ntScalarArrayBuilder = NTScalarArray::createBuilder();
PVStructurePtr pvStructure = ntScalarArrayBuilder->
value(pvDouble)->
addAlarm()->
addTimeStamp()->
createPVStructure();
PVRecordPtr pvRecord(PVRecord::create(linkedRecordName,pvStructure));
master->addRecord(pvRecord);
}
ExampleMonitorLinkRecordPtr pvMonitorRecord(
ExampleMonitorLinkRecord::create(
pva, "exampleMonitorLink",provider,linkedRecordName));
master->addRecord(pvMonitorRecord);
ExampleGetLinkRecordPtr pvGetRecord(
ExampleGetLinkRecord::create(
pva,"exampleGetLink",provider,linkedRecordName));
master->addRecord(pvGetRecord);
ExamplePutLinkRecordPtr pvPutRecord(
ExamplePutLinkRecord::create(
pva,"examplePutLink",provider,linkedRecordName));
master->addRecord(pvPutRecord);
cout << "exampleMonitorLink\n";
string str;
while(true) {
cout << "Type exit to stop: \n";
getline(cin,str);
if(str.compare("exit")==0) break;
}
ctx->destroy();
} catch (std::runtime_error e) {
cerr << "exception " << e.what() << endl;
return 1;
}
return 0;
}
示例3: main
int main(int argc,char *argv[])
{
string provider("pva");
if(argc>1) provider = argv[1];
PVDatabasePtr master = PVDatabase::getMaster();
NTScalarArrayBuilderPtr ntScalarArrayBuilder = NTScalarArray::createBuilder();
PVStructurePtr pvStructure = ntScalarArrayBuilder->
value(pvDouble)->
addAlarm()->
addTimeStamp()->
createPVStructure();
master->addRecord(PVRecord::create("doubleArray",pvStructure));
ChannelProviderLocalPtr channelProvider = getChannelProviderLocal();
if(provider=="pva") ClientFactory::start();
ServerContext::shared_pointer ctx =
startPVAServer(PVACCESS_ALL_PROVIDERS,0,true,true);
ExampleLinkPtr pvRecord(
ExampleLink::create(
"exampleLink",provider,"doubleArray"));
master->addRecord(pvRecord);
cout << "exampleLink\n";
string str;
while(true) {
cout << "Type exit to stop: \n";
getline(cin,str);
if(str.compare("exit")==0) break;
}
ctx->destroy();
epicsThreadSleep(3.0);
// channelProvider->destroy();
// if(provider=="pva") ClientFactory::stop();
// epicsThreadSleep(3.0);
return 0;
}
示例4: main
int main(int argc,char *argv[])
{
string doubleArrayRecordName("doubleArray");
if(argc==2 && string(argv[1])==string("-help")) {
cout << "doubleArrayRecordName" << endl;
cout << "default" << endl;
cout << doubleArrayRecordName << endl;
return 0;
}
if(argc>1) doubleArrayRecordName = argv[1];
try {
PVDatabasePtr master = PVDatabase::getMaster();
ChannelProviderLocalPtr channelProvider = getChannelProviderLocal();
NTScalarArrayBuilderPtr ntScalarArrayBuilder = NTScalarArray::createBuilder();
PVStructurePtr pvStructure = ntScalarArrayBuilder->
value(pvDouble)->
addAlarm()->
addTimeStamp()->
createPVStructure();
master->addRecord(PVRecord::create(doubleArrayRecordName,pvStructure));
ServerContext::shared_pointer ctx =
startPVAServer(PVACCESS_ALL_PROVIDERS,0,true,true);
string str;
while(true) {
cout << "Type exit to stop: \n";
getline(cin,str);
if(str.compare("exit")==0) break;
}
ctx->destroy();
} catch (std::runtime_error e) {
cerr << "exception " << e.what() << endl;
return 1;
}
return 0;
}
示例5: exampleServerCallFunc
static void exampleServerCallFunc(const iocshArgBuf *args)
{
PVDatabasePtr master = PVDatabase::getMaster();
char *recordName = args[0].sval;
ExampleServerPtr record = ExampleServer::create(recordName);
bool result = master->addRecord(record);
if(!result) cout << "recordname" << " not added" << endl;
PVRecordPtr pvRecord = TraceRecord::create(
"laptopTraceRecordPGRPC");
if(!pvRecord) {
cout << "TraceRecord::create failed" << endl;
} else {
result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
}
}
示例6: main
int main(int argc,char *argv[])
{
PVDatabasePtr master = PVDatabase::getMaster();
ChannelProviderLocalPtr channelProvider = getChannelProviderLocal();
PVRecordPtr pvRecord;
string recordName;
recordName = "powerSupply";
pvRecord = PowerSupplyRecord::create(recordName);
master->addRecord(pvRecord);
ServerContext::shared_pointer ctx =
startPVAServer(PVACCESS_ALL_PROVIDERS,0,true,true);
string str;
while(true) {
cout << "Type exit to stop: \n";
getline(cin,str);
if(str.compare("exit")==0) break;
}
ctx->destroy();
epicsThreadSleep(3.0); // should not be necessary
return 0;
}
示例7: createRecords
static void createRecords(
PVDatabasePtr const &master,
ScalarType scalarType,
string const &recordNamePrefix,
string const &properties)
{
string recordName = recordNamePrefix;
PVStructurePtr pvStructure = standardPVField->scalar(scalarType,properties);
PVRecordPtr pvRecord = PVRecord::create(recordName,pvStructure);
bool result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
recordName += "Array";
pvStructure = standardPVField->scalarArray(scalarType,properties);
pvRecord = PVRecord::create(recordName,pvStructure);
result = master->addRecord(pvRecord);
}
示例8: NDPluginDriver
adPvaServer::adPvaServer(
const string & portName,
const string & imageName,
int queueSize,
int blockingCallbacks,
const string & NDArrayPort,
int NDArrayAddr,
int maxbuffers,
int maxmemory)
: NDPluginDriver(portName.c_str(), queueSize, blockingCallbacks,
NDArrayPort.c_str(), NDArrayAddr, 1, NUM_AD_IMAGE_SERVER_PARAMS,
maxbuffers, maxmemory,
0, // interfaceMask
0, // interruptMask,
ASYN_CANBLOCK,
1, // autoconnect
0, // priority
0), // stack-size
imageName(imageName)
{
createParam("arrayPVName", asynParamOctet, &arrayPVName);
setStringParam(NDPluginDriverPluginType, "EPICS V4 AD Image Server");
setStringParam(arrayPVName, imageName.c_str());
callParamCallbacks();
PVDatabasePtr master = PVDatabase::getMaster();
record = NDArrayRecord::create(imageName);
bool result = master->addRecord(record);
if(!result) std::cerr << "recordname" << " not added" << std::endl;
connectToArrayPort();
}
示例9: createDumbPowerSupplyRecord
static void createDumbPowerSupplyRecord(
PVDatabasePtr const &master,
string const &recordName)
{
StructureConstPtr top = fieldCreate->createFieldBuilder()->
add("alarm",standardField->alarm()) ->
add("timeStamp",standardField->timeStamp()) ->
addNestedStructure("power") ->
add("value",pvDouble) ->
add("alarm",standardField->alarm()) ->
endNested()->
addNestedStructure("voltage") ->
add("value",pvDouble) ->
add("alarm",standardField->alarm()) ->
endNested()->
addNestedStructure("current") ->
add("value",pvDouble) ->
add("alarm",standardField->alarm()) ->
endNested()->
createStructure();
PVStructurePtr pvStructure = pvDataCreate->createPVStructure(top);
PVRecordPtr pvRecord = PVRecord::create(recordName,pvStructure);
bool result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
}
示例10: exampleRPCCallFunc
static void exampleRPCCallFunc(const iocshArgBuf *args)
{
PVDatabasePtr master = PVDatabase::getMaster();
char *recordName = args[0].sval;
ExampleRPCPtr record = ExampleRPC::create(recordName);
bool result = master->addRecord(record);
if(!result) cout << "recordname" << " not added" << endl;
}
示例11: createVariantUnionRecord
static void createVariantUnionRecord(
PVDatabasePtr const &master,
string const &recordName)
{
StructureConstPtr top = fieldCreate->createFieldBuilder()->
add("value",fieldCreate->createVariantUnion())->
createStructure();
PVStructurePtr pvStructure = pvDataCreate->createPVStructure(top);
PVRecordPtr pvRecord = PVRecord::create(recordName,pvStructure);
bool result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
}
示例12: doubleArrayCallFunc
static void doubleArrayCallFunc(const iocshArgBuf *args)
{
string recordName("doubleArray");
char *sval = args[0].sval;
if(sval) recordName = string(sval);
PVDatabasePtr master = PVDatabase::getMaster();
NTScalarArrayBuilderPtr ntScalarArrayBuilder = NTScalarArray::createBuilder();
PVStructurePtr pvStructure = ntScalarArrayBuilder->
value(pvDouble)->
addAlarm()->
addTimeStamp()->
createPVStructure();
bool result = master->addRecord(PVRecord::create(recordName,pvStructure));
if(!result) cout<< "record " << recordName << " not added" << endl;
}
示例13: createRegularUnionArrayRecord
static void createRegularUnionArrayRecord(
PVDatabasePtr const &master,
string const &recordName)
{
StructureConstPtr top = fieldCreate->createFieldBuilder()->
addNestedUnionArray("value")->
add("string",pvString)->
addArray("stringArray",pvString)->
endNested()->
createStructure();
PVStructurePtr pvStructure = pvDataCreate->createPVStructure(top);
PVRecordPtr pvRecord = PVRecord::create(recordName,pvStructure);
bool result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
}
示例14: main
int main(int argc,char *argv[])
{
bool result(false);
string recordName;
recordName = "arrayPerformance";
size_t size = 10000000;
double delay = .0001;
string providerName("local");
size_t nMonitor = 1;
int queueSize = 2;
double waitTime = 0.0;
if(argc==2 && string(argv[1])==string("-help")) {
cout << "arrayPerformanceMain recordName size";
cout << " delay providerName nMonitor queueSize waitTime" << endl;
cout << "default" << endl;
cout << "arrayPerformance ";
cout << recordName << " ";
cout << size << " ";
cout << delay << " ";
cout << providerName << " ";
cout << nMonitor << " ";
cout << queueSize << " ";
cout << "0.0" << endl;
return 0;
}
if(argc>1) recordName = argv[1];
if(argc>2) size = strtoul(argv[2],0,0);
if(argc>3) delay = atof(argv[3]);
if(argc>4) providerName = argv[4];
if(argc>5) nMonitor = strtoul(argv[5],0,0);
if(argc>6) queueSize = strtol(argv[6],0,0);
if(argc>7) waitTime = atof(argv[7]);
cout << "arrayPerformance ";
cout << recordName << " ";
cout << size << " ";
cout << delay << " ";
cout << providerName << " ";
cout << nMonitor << " ";
cout << queueSize << " ";
cout << waitTime << endl;
ClientFactory::start();
PVDatabasePtr master = PVDatabase::getMaster();
ChannelProviderLocalPtr channelProvider = getChannelProviderLocal();
PVRecordPtr pvRecord;
pvRecord = ArrayPerformance::create(recordName,size,delay);
result = master->addRecord(pvRecord);
PVRecordPtr arrayPreformance = pvRecord;
arrayPreformance->setTraceLevel(0);
pvRecord = TraceRecord::create("traceRecordPGRPC");
result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
pvRecord.reset();
ServerContext::shared_pointer pvaServer =
startPVAServer(PVACCESS_ALL_PROVIDERS,0,true,true);
std::vector<LongArrayMonitorPtr> longArrayMonitor(nMonitor);
for(size_t i=0; i<nMonitor; ++i) {
longArrayMonitor[i]
= LongArrayMonitor::create(providerName,recordName,queueSize,waitTime);
}
epicsThreadSleep(1.0);
for(size_t i=0; i<nMonitor; ++i) longArrayMonitor[i]->start();
cout << "arrayPerformance\n";
string str;
while(true) {
cout << "Type exit to stop: \n";
getline(cin,str);
if(str.compare("exit")==0) break;
}
arrayPreformance.reset();
for(size_t i=0; i<nMonitor; ++i) longArrayMonitor[i]->stop();
for(size_t i=0; i<nMonitor; ++i) longArrayMonitor[i]->destroy();
pvaServer->shutdown();
epicsThreadSleep(1.0);
pvaServer->destroy();
ClientFactory::stop();
epicsThreadSleep(1.0);
channelProvider->destroy();
return 0;
}
示例15: create
void ExampleDatabase::create()
{
PVDatabasePtr master = PVDatabase::getMaster();
PVRecordPtr pvRecord;
string recordName;
bool result(false);
recordName = "traceRecordPGRPC";
pvRecord = TraceRecord::create(recordName);
result = master->addRecord(pvRecord);
if(!result) cout<< "record " << recordName << " not added" << endl;
string properties;
properties = "alarm,timeStamp";
createRecords(master,pvByte,"byte01",properties);
createRecords(master,pvShort,"short01",properties);
createRecords(master,pvLong,"long01",properties);
createRecords(master,pvUByte,"ubyte01",properties);
createRecords(master,pvUInt,"uint01",properties);
createRecords(master,pvUShort,"ushort01",properties);
createRecords(master,pvULong,"ulong01",properties);
createRecords(master,pvFloat,"float01",properties);
StringArray choices(2);
choices[0] = "zero";
choices[1] = "one";
master->addRecord(PVRecord::create(
"exampleEnum",standardPVField->enumerated(choices,properties)));
createRecords(master,pvBoolean,"exampleBoolean",properties);
createRecords(master,pvByte,"exampleByte",properties);
createRecords(master,pvShort,"exampleShort",properties);
createRecords(master,pvInt,"exampleInt",properties);
createRecords(master,pvLong,"exampleLong",properties);
createRecords(master,pvFloat,"exampleFloat",properties);
createRecords(master,pvDouble,"exampleDouble",properties);
createRecords(master,pvDouble,"exampleDouble01",properties);
createRecords(master,pvDouble,"exampleDouble02",properties);
createRecords(master,pvDouble,"exampleDouble03",properties);
createRecords(master,pvDouble,"exampleDouble04",properties);
createRecords(master,pvDouble,"exampleDouble05",properties);
createRecords(master,pvString,"exampleString",properties);
createStructureArrayRecord(master,"exampleStructureArray");
createRegularUnionRecord(master,"exampleRegularUnion");
createVariantUnionRecord(master,"exampleVariantUnion");
createRegularUnionArrayRecord(master,"exampleRegularUnionArray");
createVariantUnionArrayRecord(master,"exampleVariantUnionArray");
createDumbPowerSupplyRecord(master,"exampleDumbPowerSupply");
recordName = "examplePowerSupply";
PVStructurePtr pvStructure = createPowerSupply();
PowerSupplyPtr psr = PowerSupply::create(recordName,pvStructure);
if(!psr) {
cout << "PowerSupply::create failed" << endl;
} else {
result = master->addRecord(psr);
if(!result) cout<< "record " << recordName << " not added" << endl;
}
recordName = "exampleHello";
result = master->addRecord(ExampleHello::create(recordName));
if(!result) cout<< "record " << recordName << " not added" << endl;
RPCServer::shared_pointer server(new RPCServer());
server->registerService("exampleHelloRPC",ExampleHelloRPC::create());
}