12 #define epicsExportSharedSymbols 18 namespace epics {
namespace pvData {
23 string PVControl::noControlFound(
"No control structure found");
24 string PVControl::notAttached(
"Not attached to an control structure");
28 if(pvField->getField()->getType()!=
structure)
return false;
30 pvLow = pvStructure->getSubField<
PVDouble>(
"limitLow");
31 if(pvLow.get()==
NULL)
return false;
32 pvHigh = pvStructure->getSubField<
PVDouble>(
"limitHigh");
33 if(pvHigh.get()==
NULL) {
37 pvMinStep = pvStructure->getSubField<
PVDouble>(
"minStep");
38 if(pvMinStep.get()==
NULL) {
53 if(pvLow.get()==
NULL)
return false;
59 if(pvLow.get()==
NULL) {
60 throw std::logic_error(notAttached);
62 control.
setLow(pvLow->get());
69 if(pvLow.get()==
NULL) {
70 throw std::logic_error(notAttached);
72 if(pvLow->isImmutable() || pvHigh->isImmutable() || pvMinStep->isImmutable())
return false;
75 bool returnValue =
false;
78 pvLow->put(control.
getLow());
bool set(Control const &control)
shared_ptr< T > static_pointer_cast(shared_ptr< U > const &r) BOOST_NOEXCEPT
void setHigh(double value)
TODO only here because of the Lockable.
double getMinStep() const
Methods for a control structure.
Data interface for a structure,.
std::tr1::shared_ptr< PVStructure > PVStructurePtr
void setMinStep(double value)
Class that holds the data for each possible scalar type.
std::tr1::shared_ptr< PVField > PVFieldPtr
void setLow(double value)
void get(Control &control) const
bool attach(PVFieldPtr const &pvField)