doc
This commit is contained in:
+4
-2
@@ -7,6 +7,9 @@ static char *sccsId = "@(#) $Id$";
|
||||
|
||||
/*
|
||||
* $Log$
|
||||
* Revision 1.41 1996/12/11 01:10:33 jhill
|
||||
* added additional vector tests
|
||||
*
|
||||
* Revision 1.40 1996/11/22 19:07:01 jhill
|
||||
* included string.h
|
||||
*
|
||||
@@ -755,7 +758,6 @@ int doacctst(char *pname)
|
||||
* o verifies that we can at least write and read back the same array
|
||||
* if multiple elements are present
|
||||
*/
|
||||
printf("Element Count %u\n", ca_element_count(chix1));
|
||||
if (VALID_DB_REQ(chix1->type)) {
|
||||
if (ca_element_count(chix1)>1u) {
|
||||
dbr_float_t *pRF, *pWF, *pEF, *pT;
|
||||
@@ -795,7 +797,7 @@ printf("Element Count %u\n", ca_element_count(chix1));
|
||||
assert(*pRF++ == *pWF++);
|
||||
}
|
||||
}
|
||||
printf("done");
|
||||
printf("done\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
//
|
||||
// Example EPICS CA server
|
||||
// (asynchrronous process variable)
|
||||
//
|
||||
|
||||
#include <exServer.h>
|
||||
|
||||
@@ -312,6 +312,7 @@ caStatus exPV::getValue(gdd &value)
|
||||
|
||||
//
|
||||
// exPV::write()
|
||||
// (synchronous default)
|
||||
//
|
||||
caStatus exPV::write (const casCtx &, gdd &valueIn)
|
||||
{
|
||||
@@ -320,6 +321,7 @@ caStatus exPV::write (const casCtx &, gdd &valueIn)
|
||||
|
||||
//
|
||||
// exPV::read()
|
||||
// (synchronous default)
|
||||
//
|
||||
caStatus exPV::read (const casCtx &, gdd &protoIn)
|
||||
{
|
||||
|
||||
@@ -75,11 +75,15 @@ void exScalarPV::scan()
|
||||
// be translated into a real number?
|
||||
// 2) We prefer to unreference the old PV value here and
|
||||
// reference the incomming value because this will
|
||||
// result in value change events each retaining an
|
||||
// result in each value change events retaining an
|
||||
// independent value on the event queue.
|
||||
//
|
||||
caStatus exScalarPV::updateValue (gdd &valueIn)
|
||||
{
|
||||
//
|
||||
// Really no need to perform this check since the
|
||||
// server lib verifies that all requests are in range
|
||||
//
|
||||
if (!valueIn.isScalar()) {
|
||||
return S_casApp_outOfBounds;
|
||||
}
|
||||
|
||||
@@ -142,6 +142,9 @@ caStatus exVectorPV::updateValue(gdd &valueIn)
|
||||
// (and see if we are replacing all elements -
|
||||
// replaceOk==TRUE)
|
||||
//
|
||||
// Perhaps much of this is unnecessary since the
|
||||
// server lib checks the bounds of all requests
|
||||
//
|
||||
if (valueIn.isAtomic()) {
|
||||
if (valueIn.dimension()!=1u) {
|
||||
return S_casApp_badDimension;
|
||||
@@ -166,7 +169,7 @@ caStatus exVectorPV::updateValue(gdd &valueIn)
|
||||
|
||||
if (replFlag==replace) {
|
||||
//
|
||||
// It is most efficient to replace all elements
|
||||
// replacing all elements is efficient
|
||||
//
|
||||
valueIn.reference();
|
||||
pNewValue = &valueIn;
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
*
|
||||
* History
|
||||
* $Log$
|
||||
* Revision 1.13 1996/12/11 01:03:52 jhill
|
||||
* removed redundant bad client attach detect
|
||||
*
|
||||
* Revision 1.12 1996/12/06 22:36:22 jhill
|
||||
* use destroyInProgress flag now functional nativeCount()
|
||||
*
|
||||
@@ -108,7 +111,7 @@ caStatus casStrmClient::verifyRequest (casChannelI *&pChan)
|
||||
//
|
||||
// element count out of range ?
|
||||
//
|
||||
if (mp->m_count> pChan->getPVI().nativeCount()) {
|
||||
if (mp->m_count > pChan->getPVI().nativeCount()) {
|
||||
return this->sendErr(mp, ECA_BADCOUNT, NULL);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user