本文整理汇总了C++中PVTimeStamp::attach方法的典型用法代码示例。如果您正苦于以下问题:C++ PVTimeStamp::attach方法的具体用法?C++ PVTimeStamp::attach怎么用?C++ PVTimeStamp::attach使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PVTimeStamp
的用法示例。
在下文中一共展示了PVTimeStamp::attach方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: attachTimeStamp
bool NTScalar::attachTimeStamp(PVTimeStamp &pvTimeStamp) const
{
PVStructurePtr ts = getTimeStamp();
if (ts)
return pvTimeStamp.attach(ts);
else
return false;
}
示例2: attachDataTimeStamp
bool NTNDArray::attachDataTimeStamp(PVTimeStamp &pvTimeStamp) const
{
PVStructurePtr ts = getDataTimeStamp();
if (ts)
return pvTimeStamp.attach(ts);
else
return false;
}
示例3: fromTimeStamp
void NTNDArrayConverter::fromTimeStamp (NDArray *src)
{
PVStructurePtr dest(m_array->getTimeStamp());
PVTimeStamp pvDest;
pvDest.attach(dest);
TimeStamp ts(src->epicsTS.secPastEpoch, src->epicsTS.nsec);
pvDest.set(ts);
}
示例4: toDataTimeStamp
void NTNDArrayConverter::toDataTimeStamp (NDArray *dest)
{
PVStructurePtr src(m_array->getDataTimeStamp());
PVTimeStamp pvSrc;
pvSrc.attach(src);
TimeStamp ts;
pvSrc.get(ts);
dest->timeStamp = ts.toSeconds();
}
示例5: fromDataTimeStamp
void NTNDArrayConverter::fromDataTimeStamp (NDArray *src)
{
PVStructurePtr dest(m_array->getDataTimeStamp());
double seconds = floor(src->timeStamp);
double nanoseconds = (src->timeStamp - seconds)*1e9;
PVTimeStamp pvDest;
pvDest.attach(dest);
TimeStamp ts((int64_t)seconds, (int32_t)nanoseconds);
pvDest.set(ts);
}
示例6: toTimeStamp
void NTNDArrayConverter::toTimeStamp (NDArray *dest)
{
PVStructurePtr src(m_array->getTimeStamp());
if(!src.get())
return;
PVTimeStamp pvSrc;
pvSrc.attach(src);
TimeStamp ts;
pvSrc.get(ts);
dest->epicsTS.secPastEpoch = ts.getSecondsPastEpoch();
dest->epicsTS.nsec = ts.getNanoseconds();
}
示例7: getTimeStamp
Status PvValue::getTimeStamp(TimeStamp &timeStamp)
{
if(pvGetStructure.get()==NULL) {
return Status(Status::STATUSTYPE_ERROR, "no timeStamp field");
}
PVTimeStamp pvTimeStamp;
PVFieldPtr pvField = pvGetStructure->getSubField("timeStamp");
if(pvField.get()==NULL) {
return Status(Status::STATUSTYPE_ERROR, "no timeStamp field");
}
if(!pvTimeStamp.attach(pvField)) {
return Status(Status::STATUSTYPE_ERROR, "no timeStamp field");
}
pvTimeStamp.get(timeStamp);
return Status::Ok;
}
示例8: setDataTimeStamp
void NTNDArrayRecord::setDataTimeStamp()
{
// Create PVTimeStamp and TimeStamp objects
// attach the dataTimeStamp field to the PVTimeStamp
// TimeStamp object should get the current time
// Use it to set the dataTimeStamp field
#if 0
PVTimeStamp timeStamp;
timeStamp.attach(pvStructure->getSubField<PVStructure>("dataTimeStamp"));
TimeStamp current;
current.getCurrent();
timeStamp.set(current);
#else
// Alternatively you can use the member objects already created
// for you and do the attaching once.
dataTimeStamp.getCurrent();
pvDataTimeStamp.set(dataTimeStamp);
#endif
}
示例9: Expected
static PyObject * _getTimeStamp(PyObject *willBeNull, PyObject *args)
{
PyObject *pcapsule = 0;
PyObject *ptimeStamp = 0;
if(!PyArg_ParseTuple(args,"OO:nttablePy",
&pcapsule,
&ptimeStamp))
{
PyErr_SetString(PyExc_SyntaxError,
"Bad argument. Expected (pvt,ptimeStamp)");
return NULL;
}
void *pvoid = PyCapsule_GetPointer(pcapsule,"nttablePvt");
if(pvoid==0) {
PyErr_SetString(PyExc_SyntaxError,
"first arg must be return from _init");
return NULL;
}
NTTablePvt *pvt = static_cast<NTTablePvt *>(pvoid);
pvoid = PyCapsule_GetPointer(ptimeStamp,"timeStamp");
if(pvoid==0) {
PyErr_SetString(PyExc_SyntaxError,
"second argument is not a timeStamp capsule");
return NULL;
}
TimeStamp *xxx = static_cast<TimeStamp *>(pvoid);
PVStructurePtr pvStructure = pvt->nttable->getTimeStamp();
//if(pvStructure!=0) {
if(!pvStructure) {
PVTimeStamp pvTimeStamp;
pvTimeStamp.attach(pvStructure);
pvTimeStamp.get(*xxx);
}
Py_INCREF(Py_None);
return Py_None;
}
示例10: attachTimeStamp
void NTMultiChannel::attachTimeStamp(PVTimeStamp &pv) const
{
if(!pvTimeStamp) return;
pv.attach(pvTimeStamp);
}
示例11: testCopy
static void testCopy()
{
TEST_COPY(PVBoolean, 1);
TEST_COPY(PVByte, 12);
TEST_COPY(PVShort, 128);
TEST_COPY(PVInt, 128000);
TEST_COPY(PVLong, 128000000);
TEST_COPY(PVUByte, 12);
TEST_COPY(PVUShort, 128);
TEST_COPY(PVUInt, 128000);
TEST_COPY(PVULong, 128000000);
TEST_COPY(PVFloat, 12.8);
TEST_COPY(PVDouble, 8.12);
TEST_COPY(PVString, "jikes");
int32 testValue = 128;
// PVStructure test
PVStructurePtr pvStructure =
standardPVField->scalar(pvInt, alarmTimeStampValueAlarm);
pvStructure->getSubField<PVInt>("value")->put(testValue);
PVTimeStamp timeStamp;
timeStamp.attach(pvStructure->getSubField<PVStructure>("timeStamp"));
TimeStamp current;
current.getCurrent();
timeStamp.set(current);
PVStructurePtr pvStructureCopy =
standardPVField->scalar(pvInt, alarmTimeStampValueAlarm);
pvStructureCopy->copy(*pvStructure);
testOk(*pvStructure == *pvStructureCopy, "PVStructure copy");
PVStructurePtr pvStructureCopy2 =
standardPVField->scalar(pvInt, alarmTimeStampValueAlarm);
pvStructureCopy2->copyUnchecked(*pvStructure);
testOk(*pvStructure == *pvStructureCopy2, "PVStructure copyUnchecked");
BitSet mask(pvStructure->getNumberFields());
PVStructurePtr pvStructureCopy3 =
standardPVField->scalar(pvInt, alarmTimeStampValueAlarm);
PVStructurePtr pvStructureCopy4 =
standardPVField->scalar(pvInt, alarmTimeStampValueAlarm);
pvStructureCopy3->copyUnchecked(*pvStructure, mask);
testOk(*pvStructureCopy3 == *pvStructureCopy4, "PVStructure copyUnchecked w/ cleared mask");
mask.set(pvStructure->getSubField<PVInt>("value")->getFieldOffset());
pvStructureCopy3->copyUnchecked(*pvStructure, mask);
pvStructureCopy4->getSubField<PVInt>("value")->put(testValue);
testOk(*pvStructureCopy3 == *pvStructureCopy4, "PVStructure copyUnchecked w/ value mask only");
mask.set(pvStructure->getSubField<PVStructure>("timeStamp")->getFieldOffset());
PVStructurePtr pvStructureCopy5 =
standardPVField->scalar(pvInt, alarmTimeStampValueAlarm);
pvStructureCopy5->copyUnchecked(*pvStructure, mask);
testOk(*pvStructure == *pvStructureCopy5, "PVStructure copyUnchecked w/ value+timeStamp mask");
UnionConstPtr _union = fieldCreate->createFieldBuilder()->
add("doubleValue", pvDouble)->
add("intValue", pvInt)->
add("timeStamp",standardField->timeStamp())->
createUnion();
PVUnionPtr pvUnion = pvDataCreate->createPVUnion(_union);
PVUnionPtr pvUnion2 = pvDataCreate->createPVUnion(_union);
pvUnion2->copy(*pvUnion);
testOk(*pvUnion == *pvUnion2, "null PVUnion copy");
pvUnion->select<PVInt>("intValue")->put(123);
pvUnion2->copy(*pvUnion);
testOk(*pvUnion == *pvUnion2, "PVUnion scalar copy, to null PVUnion");
pvUnion->select("doubleValue");
pvUnion2->copy(*pvUnion);
testOk(*pvUnion == *pvUnion2, "PVUnion scalar copy, to different type PVUnion");
pvUnion->select<PVStructure>("timeStamp")->copy(
*pvStructure->getSubField<PVStructure>("timeStamp")
);
pvUnion2->copy(*pvUnion);
testOk(*pvUnion == *pvUnion2, "PVUnion PVStructure copy, to different type PVUnion");
}