本文整理汇总了C++中PvaClientPtr类的典型用法代码示例。如果您正苦于以下问题:C++ PvaClientPtr类的具体用法?C++ PvaClientPtr怎么用?C++ PvaClientPtr使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PvaClientPtr类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: exampleDoubleArray
static void exampleDoubleArray(PvaClientPtr const &pva,string const & channelName,string const & providerName)
{
cout << "__exampleDoubleArray__ channelName " << channelName << " providerName " << providerName << endl;
PvaClientChannelPtr channel = pva->channel(channelName,providerName,2.0);
PvaClientPutPtr put = channel->put();
PvaClientPutDataPtr putData = put->getData();
PvaClientMonitorPtr monitor = pva->channel(channelName,providerName,2.0)->monitor("value");
PvaClientMonitorDataPtr monitorData = monitor->getData();
size_t num = 5;
shared_vector<double> data(num,0);
for(size_t i=0; i<num; ++i) data[i] = .1*i;
putData->putDoubleArray(freeze(data)); put->put();
cout << channel->get("field(value)")->getData()->showChanged(cout) << endl;
data = shared_vector<double>(num,0);
for(size_t i=0; i<num; ++i) data[i] = .1*(i + 1);
putData->putDoubleArray(freeze(data)); put->put();
cout << channel->get("field(value)")->getData()->showChanged(cout) << endl;
if(!monitor->waitEvent()) {
cout << "waitEvent returned false. Why???";
} else while(true) {
cout << "monitor changed\n" << monitorData->showChanged(cout);
monitor->releaseEvent();
if(!monitor->poll()) break;
}
}
示例2: main
int main(int argc,char *argv[])
{
cout << "_____examplePvaClientPut starting_______\n";
try {
PvaClientPtr pva = PvaClient::get("pva ca");
exampleDouble(pva,"PVRdouble","pva");
exampleDoubleArray(pva,"PVRdoubleArray","pva");
examplePVFieldPut(pva,"PVRint","pva");
PvaClientChannelPtr pvaChannel = pva->createChannel("DBRdouble00","ca");
pvaChannel->issueConnect();
Status status = pvaChannel->waitConnect(1.0);
if(status.isOK()) {
exampleDouble(pva,"DBRdouble00","pva");
exampleDouble(pva,"DBRdouble00","ca");
exampleDoubleArray(pva,"DBRdoubleArray","pva");
exampleDoubleArray(pva,"DBRdoubleArray","ca");
examplePVFieldPut(pva,"DBRint00","pva");
examplePVFieldPut(pva,"DBRint00","ca");
} else {
cout << "DBRdouble00 not found\n";
}
cout << "_____examplePvaClientPut done_______\n";
} catch (std::runtime_error e) {
cerr << "exception " << e.what() << endl;
return 1;
}
return 0;
}
示例3: main
int main(int argc,char *argv[])
{
cout << "_____examplePvaClientNTMulti starting_______\n";
PvaClientPtr pva = PvaClient::create();
size_t num = 4;
shared_vector<string> channelNames(num);
channelNames[0] = "PVRdouble";
channelNames[1] = "PVRstring";
channelNames[2] = "PVRdoubleArray";
channelNames[3] = "PVRstringArray";
shared_vector<const string> names(freeze(channelNames));
example(pva,"pva",names);
PvaClientChannelPtr pvaChannel = pva->createChannel("DBRdouble00","ca");
pvaChannel->issueConnect();
Status status = pvaChannel->waitConnect(1.0);
if(status.isOK()) {
channelNames = shared_vector<string>(num);
channelNames[0] = "DBRdouble01";
channelNames[1] = "DBRstring01";
channelNames[2] = "DBRdoubleArray01";
channelNames[3] = "DBRstringArray01";
names = freeze(channelNames);
example(pva,"pva",names);
example(pva,"ca",names);
} else {
cout << "DBRdouble00 not found\n";
}
cout << "_____examplePvaClientNTMulti done_______\n";
return 0;
}
示例4: exampleMonitor
static void exampleMonitor(PvaClientPtr const &pva,string provider)
{
PvaClientMonitorPtr monitor = pva->channel("DBRdouble00",provider,2.0)->monitor("");
PvaClientMonitorDataPtr monitorData = monitor->getData();
PvaClientPutPtr put = pva->channel("DBRdouble00",provider,2.0)->put("");
PvaClientPutDataPtr putData = put->getData();
for(size_t ntimes=0; ntimes<5; ++ntimes)
{
double value = ntimes;
cout << "put " << value << endl;
putData->putDouble(value); put->put();
if(!monitor->waitEvent(.1)) {
cout << "waitEvent returned false. Why???";
continue;
} else while(true) {
cout << "monitor " << monitorData->getDouble() << endl;
cout << "changed\n";
monitorData->showChanged(cout);
cout << "overrun\n";
monitorData->showOverrun(cout);
monitor->releaseEvent();
if(!monitor->poll()) break;
}
}
}
示例5: main
int main(int argc,char *argv[])
{
cout << "_____examplePvaClientMonitor starting_______\n";
try {
PvaClientPtr pva = PvaClient::get("pva ca");
//PvaClient::setDebug(true);
exampleMonitor(pva,"PVRdouble","pva");
PvaClientChannelPtr pvaChannel = pva->createChannel("DBRdouble00","ca");
pvaChannel->issueConnect();
Status status = pvaChannel->waitConnect(1.0);
if(status.isOK()) {
cout << "exampleMonitor pva\n";
exampleMonitor(pva,"DBRdouble00","pva");
cout << "exampleMonitor ca\n";
exampleMonitor(pva,"DBRdouble00","ca");
} else {
cout << "DBRdouble00 not found\n";
}
cout << "_____examplePvaClientMonitor done_______\n";
} catch (std::runtime_error e) {
cerr << "exception " << e.what() << endl;
return 1;
}
return 0;
}
示例6: message
void PvaClientPutGet::message(string const & message,MessageType messageType)
{
if(isDestroyed) throw std::runtime_error("pvaClientPutGet was destroyed");
PvaClientPtr yyy = pvaClient.lock();
if(!yyy) throw std::runtime_error("pvaClient was destroyed");
yyy->message(message, messageType);
}
示例7: main
int main(int argc,char *argv[])
{
string provider("pva");
if(argc==2 && string(argv[1])==string("-help")) {
cout << "provider" << endl;
cout << "default" << endl;
cout << provider << endl;
return 0;
}
if(argc>1) provider = argv[1];
cout << "_____exampleLinkClient starting_______\n";
PvaClientPtr pva = PvaClient::create();
try {
PvaClientPutPtr put = pva->channel("doubleArray",provider,5.0)->put();
PvaClientPutDataPtr putData = put->getData();
PvaClientMonitorPtr monitor = pva->channel("exampleLink")->monitor("");
PvaClientMonitorDataPtr pvaData = monitor->getData();
if(!monitor->waitEvent(0.0)) {
cout << "waitEvent returned false. Why???\n";
} else {
cout << "exampleLink\n" << pvaData->getPVStructure() << endl;
monitor->releaseEvent();
}
{
size_t nElements = 5;
shared_vector<double> value(nElements);
for(size_t i=0; i< nElements; ++i) value[i] = 0.0;
shared_vector<const double> data(freeze(value));
putData->putDoubleArray(data); put->put();
}
if(!monitor->waitEvent(0.0)) {
cout<< "waitEvent returned false. Why???\n";
} else {
cout << "exampleLink\n" << pvaData->getPVStructure() << endl;
monitor->releaseEvent();
}
{
size_t nElements = 5;
shared_vector<double> value(nElements);
for(size_t i=0; i< nElements; ++i) value[i] = .1*(i+1);
shared_vector<const double> data(freeze(value));
putData->putDoubleArray(data); put->put();
}
if(!monitor->waitEvent(0.0)) {
cout<< "waitEvent returned false. Why???\n";
} else {
cout << "exampleLink\n" << pvaData->getPVStructure() << endl;
monitor->releaseEvent();
}
} catch (std::runtime_error e) {
cout << "exception " << e.what() << endl;
return 1;
}
cout << "_____exampleLinkClient done_______\n";
return 0;
}
示例8: exampleProcess
static void exampleProcess(PvaClientPtr const &pva)
{
cout << "example process\n";
PvaClientChannelPtr channel = pva->channel("PVRdouble");
PvaClientProcessPtr process = channel->createProcess();
process->process();
cout << channel->get("field()")->getData()->showChanged(cout) << endl;
process->process();
cout << channel->get("field()")->getData()->showChanged(cout) << endl;
}
示例9: exampleDouble
static void exampleDouble(PvaClientPtr const &pva,string const & channelName,string const & providerName)
{
cout << "__exampleDouble__ channelName " << channelName << " providerName " << providerName << endl;
PvaClientChannelPtr channel = pva->channel(channelName,providerName,2.0);
PvaClientPutPtr put = channel->put();
PvaClientPutDataPtr putData = put->getData();
PvaClientMonitorPtr monitor = pva->channel(channelName,providerName,2.0)->monitor("value");
PvaClientMonitorDataPtr monitorData = monitor->getData();
putData->putDouble(3.0); put->put();
cout << channel->get("field(value)")->getData()->showChanged(cout) << endl;
putData->putDouble(4.0); put->put();
cout << channel->get("field(value)")->getData()->showChanged(cout) << endl;
if(!monitor->waitEvent()) {
cout << "waitEvent returned false. Why???";
} else while(true) {
cout << "monitor changed\n" << monitorData->showChanged(cout);
monitor->releaseEvent();
if(!monitor->poll()) break;
}
}
示例10: main
int main(int argc,char *argv[])
{
PvaClientPtr pva = PvaClient::create();
try {
PvaClientChannelPtr channel = pva->channel("helloPutGet");
PvaClientPutGetPtr putGet = channel->createPutGet();
putGet->connect();
PvaClientPutDataPtr putData = putGet->getPutData();
PVStructurePtr arg = putData->getPVStructure();
PVStringPtr pvValue = arg->getSubField<PVString>("argument.value");
pvValue->put("World");
putGet->putGet();
PvaClientGetDataPtr getData = putGet->getGetData();
cout << getData->getPVStructure() << endl;
} catch (std::runtime_error e) {
cout << "exception " << e.what() << endl;
return 1;
}
return 0;
}
示例11: init
bool ExampleGetLinkRecord::init(PvaClientPtr const & pva,string const & channelName,string const & providerName)
{
initPVRecord();
PVStructurePtr pvStructure = getPVRecordStructure()->getPVStructure();
pvValue = pvStructure->getSubField<PVDoubleArray>("value");
if(!pvValue) {
return false;
}
pvaClientGet = pva->channel(channelName,providerName)->createGet();
return true;
}
示例12: examplePVFieldPut
static void examplePVFieldPut(PvaClientPtr const &pva,string const & channelName,string const & providerName)
{
cout << "__examplePVFieldPut__ channelName " << channelName << " providerName " << providerName << endl;
PvaClientChannelPtr channel = pva->channel(channelName,providerName,2.0);
PvaClientPutPtr put = channel->put();
PvaClientPutDataPtr putData = put->getData();
PVScalarPtr pvScalar = static_pointer_cast<PVScalar>(putData->getValue());
convert->fromDouble(pvScalar,1.0); put->put();
cout << channel->get("field(value)")->getData()->showChanged(cout) << endl;
convert->fromDouble(pvScalar,2.0); put->put();
cout << channel->get("field(value)")->getData()->showChanged(cout) << endl;
}
示例13: main
int main(int argc,char *argv[])
{
cout << "_____examplePvaClientMultiDouble starting_______\n";
try {
PvaClientPtr pva = PvaClient::get("pva ca");
//PvaClient::setDebug(true);
size_t num = 5;
shared_vector<string> channelNames(num);
channelNames[0] = "PVRdouble01";
channelNames[1] = "PVRint";
channelNames[2] = "PVRdouble03";
channelNames[3] = "PVRdouble04";
channelNames[4] = "PVRdouble05";
shared_vector<const string> names(freeze(channelNames));
example(pva,"pva",names);
PvaClientChannelPtr pvaChannel = pva->createChannel("DBRdouble00","pva");
pvaChannel->issueConnect();
Status status = pvaChannel->waitConnect(1.0);
if(status.isOK()) {
channelNames = shared_vector<string>(num);
channelNames[0] = "DBRdouble01";
channelNames[1] = "DBRint01";
channelNames[2] = "DBRdouble03";
channelNames[3] = "DBRdouble04";
channelNames[4] = "DBRdouble05";
names = freeze(channelNames);
example(pva,"pva",names);
example(pva,"ca",names);
} else {
cout << "DBRdouble00 not found\n";
}
cout << "_____examplePvaClientMultiDouble done_______\n";
} catch (std::runtime_error e) {
cout << "exception " << e.what() << endl;
return 1;
}
return 0;
}
示例14: exampleCADoubleArray
static void exampleCADoubleArray(PvaClientPtr const &pva)
{
cout << "__exampleCADoubleArray__\n";
shared_vector<const double> value;
try {
cout << "short way\n";
value = pva->channel("DBRdoubleArray","ca",5.0)->get()->getData()->getDoubleArray();
cout << "as doubleArray " << value << endl;
} catch (std::runtime_error e) {
cout << "exception " << e.what() << endl;
}
try {
cout << "long way\n";
PvaClientChannelPtr pvaChannel = pva->createChannel("DBRdoubleArray","ca");
pvaChannel->connect(2.0);
PvaClientGetPtr pvaGet = pvaChannel->createGet();
PvaClientGetDataPtr pvaData = pvaGet->getData();
value = pvaData->getDoubleArray();
cout << "as doubleArray " << value << endl;
} catch (std::runtime_error e) {
cout << "exception " << e.what() << endl;
}
}
示例15: exampleProcess
static void exampleProcess(PvaClientPtr const &pva)
{
cout << "example process\n";
PvaClientChannelPtr channel = pva->channel("PVRdouble");
PvaClientProcessPtr process = channel->createProcess();
try {
process->process();
cout << channel->get("field()")->getData()->showChanged(cout) << endl;
process->process();
cout << channel->get("field()")->getData()->showChanged(cout) << endl;
} catch (std::runtime_error e) {
cout << "exception " << e.what() << endl;
}
}