more work on special; all pvdbcr* redone

This commit is contained in:
mrkraimer
2021-04-14 10:26:30 -04:00
parent 1c121b3f1e
commit f345651b67
24 changed files with 81 additions and 82 deletions

View File

@ -20,8 +20,8 @@ INC += pv/pvSupport.h
INC += pv/controlSupport.h INC += pv/controlSupport.h
INC += pv/scalarAlarmSupport.h INC += pv/scalarAlarmSupport.h
INC += pv/pvdbcrScalar.h INC += pv/pvdbcrScalarRecord.h
INC += pv/pvdbcrScalarArray.h INC += pv/pvdbcrScalarArrayRecord.h
INC += pv/pvdbcrAddRecord.h INC += pv/pvdbcrAddRecord.h
INC += pv/pvdbcrRemoveRecord.h INC += pv/pvdbcrRemoveRecord.h
INC += pv/pvdbcrProcessRecord.h INC += pv/pvdbcrProcessRecord.h

View File

@ -7,8 +7,8 @@
* @author mrk * @author mrk
* @date 2021.04.11 * @date 2021.04.11
*/ */
#ifndef PVDBCRSCALARARRAY_H #ifndef PVDBCRSCALARARRAYRECORD_H
#define PVDBCRSCALARARRAY_H #define PVDBCRSCALARARRAYRECORD_H
#include <pv/pvDatabase.h> #include <pv/pvDatabase.h>
#include <pv/pvSupport.h> #include <pv/pvSupport.h>
@ -18,26 +18,26 @@
namespace epics { namespace pvDatabase { namespace epics { namespace pvDatabase {
class PvdbcrScalarArray; class PvdbcrScalarArrayRecord;
typedef std::tr1::shared_ptr<PvdbcrScalarArray> PvdbcrScalarArrayPtr; typedef std::tr1::shared_ptr<PvdbcrScalarArrayRecord> PvdbcrScalarArrayRecordPtr;
/** /**
* @brief PvdbcrScalarArray creates a record with a scalar array value, alarm, and timeStamp. * @brief PvdbcrScalarArrayRecord creates a record with a scalar array value, alarm, and timeStamp.
* *
*/ */
class epicsShareClass PvdbcrScalarArray : class epicsShareClass PvdbcrScalarArrayRecord :
public PVRecord public PVRecord
{ {
private: private:
PvdbcrScalarArray( PvdbcrScalarArrayRecord(
std::string const & recordName,epics::pvData::PVStructurePtr const & pvStructure, std::string const & recordName,epics::pvData::PVStructurePtr const & pvStructure,
int asLevel,std::string const & asGroup); int asLevel,std::string const & asGroup);
public: public:
POINTER_DEFINITIONS(PvdbcrScalarArray); POINTER_DEFINITIONS(PvdbcrScalarArrayRecord);
/** /**
* The Destructor. * The Destructor.
*/ */
virtual ~PvdbcrScalarArray() {} virtual ~PvdbcrScalarArrayRecord() {}
/** /**
* @brief Create a record. * @brief Create a record.
* *
@ -47,11 +47,11 @@ public:
* @param asGroup The access security group. * @param asGroup The access security group.
* @return The PVRecord * @return The PVRecord
*/ */
static PvdbcrScalarArrayPtr create( static PvdbcrScalarArrayRecordPtr create(
std::string const & recordName,std::string const & scalarType, std::string const & recordName,std::string const & scalarType,
int asLevel=0,std::string const & asGroup = std::string("DEFAULT")); int asLevel=0,std::string const & asGroup = std::string("DEFAULT"));
}; };
}} }}
#endif /* PVDBCRSCALARARRAY_H */ #endif /* PVDBCRSCALARARRAYRECORD_H */

View File

@ -7,8 +7,8 @@
* @author mrk * @author mrk
* @date 2021.04.11 * @date 2021.04.11
*/ */
#ifndef PVDBCRSCALAR_H #ifndef PVDBCRSCALARRECORD_H
#define PVDBCRSCALAR_H #define PVDBCRSCALARRECORD_H
#include <pv/pvDatabase.h> #include <pv/pvDatabase.h>
#include <pv/pvSupport.h> #include <pv/pvSupport.h>
@ -18,26 +18,26 @@
namespace epics { namespace pvDatabase { namespace epics { namespace pvDatabase {
class PvdbcrScalar; class PvdbcrScalarRecord;
typedef std::tr1::shared_ptr<PvdbcrScalar> PvdbcrScalarPtr; typedef std::tr1::shared_ptr<PvdbcrScalarRecord> PvdbcrScalarRecordPtr;
/** /**
* @brief PvdbcrScalar creates a record with a scalar value, alarm, and timeStamp. * @brief PvdbcrScalarRecord creates a record with a scalar value, alarm, and timeStamp.
* *
*/ */
class epicsShareClass PvdbcrScalar : class epicsShareClass PvdbcrScalarRecord :
public PVRecord public PVRecord
{ {
private: private:
PvdbcrScalar( PvdbcrScalarRecord(
std::string const & recordName,epics::pvData::PVStructurePtr const & pvStructure, std::string const & recordName,epics::pvData::PVStructurePtr const & pvStructure,
int asLevel,std::string const & asGroup); int asLevel,std::string const & asGroup);
public: public:
POINTER_DEFINITIONS(PvdbcrScalar); POINTER_DEFINITIONS(PvdbcrScalarRecord);
/** /**
* The Destructor. * The Destructor.
*/ */
virtual ~PvdbcrScalar() {} virtual ~PvdbcrScalarRecord() {}
/** /**
* @brief Create a record. * @brief Create a record.
* *
@ -47,11 +47,11 @@ public:
* @param asGroup The access security group. * @param asGroup The access security group.
* @return The PVRecord * @return The PVRecord
*/ */
static PvdbcrScalarPtr create( static PvdbcrScalarRecordPtr create(
std::string const & recordName,std::string const & scalarType, std::string const & recordName,std::string const & scalarType,
int asLevel=0,std::string const & asGroup = std::string("DEFAULT")); int asLevel=0,std::string const & asGroup = std::string("DEFAULT"));
}; };
}} }}
#endif /* PVDBCRSCALAR_H */ #endif /* PVDBCRSCALARRECORD_H */

View File

@ -2,18 +2,17 @@
SRC_DIRS += $(PVDATABASE_SRC)/special SRC_DIRS += $(PVDATABASE_SRC)/special
DBD += pvdbcrTraceRecordRegister.dbd DBD += pvdbcrScalarRecord.dbd
DBD += pvdbcrRemoveRecordRegister.dbd DBD += pvdbcrScalarArrayRecord.dbd
DBD += pvdbcrAddRecordRegister.dbd DBD += pvdbcrAddRecord.dbd
DBD += pvdbcrProcessRecordRegister.dbd DBD += pvdbcrRemoveRecord.dbd
DBD += pvdbcrScalarRegister.dbd DBD += pvdbcrProcessRecord.dbd
DBD += pvdbcrScalarArrayRegister.dbd DBD += pvdbcrTraceRecord.dbd
DBD += pvdbSpecialRegister.dbd DBD += pvdbcrAllRecords.dbd
LIBSRCS += pvdbcrScalarRegister.cpp
LIBSRCS += pvdbcrScalarArrayRegister.cpp
LIBSRCS += pvdbcrTraceRecordRegister.cpp
LIBSRCS += pvdbcrRemoveRecordRegister.cpp
LIBSRCS += pvdbcrAddRecordRegister.cpp
LIBSRCS += pvdbcrProcessRecordRegister.cpp
LIBSRCS += pvdbcrScalarRecord.cpp
LIBSRCS += pvdbcrScalarArrayRecord.cpp
LIBSRCS += pvdbcrAddRecord.cpp
LIBSRCS += pvdbcrRemoveRecord.cpp
LIBSRCS += pvdbcrProcessRecord.cpp
LIBSRCS += pvdbcrTraceRecord.cpp

View File

@ -1,6 +0,0 @@
include "pvdbcrAddRecordRegister.dbd"
include "pvdbcrRemoveRecordRegister.dbd"
include "pvdbcrProcessRecordRegister.dbd"
include "pvdbcrTraceRecordRegister.dbd"
include "pvdbcrScalarRegister.dbd"
include "pvdbcrScalarArrayRegister.dbd"

View File

@ -133,7 +133,7 @@ static void pvdbcrAddRecordCallFunc(const iocshArgBuf *args)
if(!result) cout << "recordname " << recordName << " not added" << endl; if(!result) cout << "recordname " << recordName << " not added" << endl;
} }
static void pvdbcrAddRecordRegister(void) static void pvdbcrAddRecord(void)
{ {
static int firstTime = 1; static int firstTime = 1;
if (firstTime) { if (firstTime) {
@ -143,5 +143,5 @@ static void pvdbcrAddRecordRegister(void)
} }
extern "C" { extern "C" {
epicsExportRegistrar(pvdbcrAddRecordRegister); epicsExportRegistrar(pvdbcrAddRecord);
} }

View File

@ -0,0 +1 @@
registrar("pvdbcrAddRecord")

View File

@ -1 +0,0 @@
registrar("pvdbcrAddRecordRegister")

View File

@ -0,0 +1,6 @@
include "pvdbcrAddRecord.dbd"
include "pvdbcrRemoveRecord.dbd"
include "pvdbcrProcessRecord.dbd"
include "pvdbcrTraceRecord.dbd"
include "pvdbcrScalarRecord.dbd"
include "pvdbcrScalarArrayRecord.dbd"

View File

@ -192,7 +192,7 @@ static void pvdbcrProcessRecordCallFunc(const iocshArgBuf *args)
if(!result) cout << "recordname " << recordName << " not added" << endl; if(!result) cout << "recordname " << recordName << " not added" << endl;
} }
static void pvdbcrProcessRecordRegister(void) static void pvdbcrProcessRecord(void)
{ {
static int firstTime = 1; static int firstTime = 1;
if (firstTime) { if (firstTime) {
@ -202,5 +202,5 @@ static void pvdbcrProcessRecordRegister(void)
} }
extern "C" { extern "C" {
epicsExportRegistrar(pvdbcrProcessRecordRegister); epicsExportRegistrar(pvdbcrProcessRecord);
} }

View File

@ -0,0 +1 @@
registrar("pvdbcrProcessRecord")

View File

@ -1 +0,0 @@
registrar("pvdbcrProcessRecordRegister")

View File

@ -109,7 +109,7 @@ static void pvdbcrRemoveRecordCallFunc(const iocshArgBuf *args)
if(!result) cout << "recordname " << recordName << " not added" << endl; if(!result) cout << "recordname " << recordName << " not added" << endl;
} }
static void pvdbcrRemoveRecordRegister(void) static void pvdbcrRemoveRecord(void)
{ {
static int firstTime = 1; static int firstTime = 1;
if (firstTime) { if (firstTime) {
@ -119,5 +119,5 @@ static void pvdbcrRemoveRecordRegister(void)
} }
extern "C" { extern "C" {
epicsExportRegistrar(pvdbcrRemoveRecordRegister); epicsExportRegistrar(pvdbcrRemoveRecord);
} }

View File

@ -0,0 +1 @@
registrar("pvdbcrRemoveRecord")

View File

@ -1 +0,0 @@
registrar("pvdbcrRemoveRecordRegister")

View File

@ -21,20 +21,20 @@
// The following must be the last include for code pvDatabase implements // The following must be the last include for code pvDatabase implements
#include <epicsExport.h> #include <epicsExport.h>
#define epicsExportSharedSymbols #define epicsExportSharedSymbols
#include "pv/pvdbcrScalarArray.h"
#include "pv/pvDatabase.h" #include "pv/pvDatabase.h"
#include "pv/pvdbcrScalarArrayRecord.h"
using namespace epics::pvData; using namespace epics::pvData;
using namespace std; using namespace std;
namespace epics { namespace pvDatabase { namespace epics { namespace pvDatabase {
PvdbcrScalarArray::PvdbcrScalarArray( PvdbcrScalarArrayRecord::PvdbcrScalarArrayRecord(
std::string const & recordName,epics::pvData::PVStructurePtr const & pvStructure, std::string const & recordName,epics::pvData::PVStructurePtr const & pvStructure,
int asLevel,std::string const & asGroup) int asLevel,std::string const & asGroup)
: PVRecord(recordName,pvStructure,asLevel,asGroup) : PVRecord(recordName,pvStructure,asLevel,asGroup)
{} {}
PvdbcrScalarArrayPtr PvdbcrScalarArray::create( PvdbcrScalarArrayRecordPtr PvdbcrScalarArrayRecord::create(
std::string const & recordName,std::string const & scalarType, std::string const & recordName,std::string const & scalarType,
int asLevel,std::string const & asGroup) int asLevel,std::string const & asGroup)
{ {
@ -46,9 +46,9 @@ PvdbcrScalarArrayPtr PvdbcrScalarArray::create(
addArray("value",st) -> addArray("value",st) ->
add("timeStamp",standardField->timeStamp()) -> add("timeStamp",standardField->timeStamp()) ->
add("alarm",standardField->alarm()) -> add("alarm",standardField->alarm()) ->
createStructure(); createStructure();
PVStructurePtr pvStructure = pvDataCreate->createPVStructure(top); PVStructurePtr pvStructure = pvDataCreate->createPVStructure(top);
PvdbcrScalarArrayPtr pvRecord(new PvdbcrScalarArray(recordName,pvStructure,asLevel,asGroup)); PvdbcrScalarArrayRecordPtr pvRecord(new PvdbcrScalarArrayRecord(recordName,pvStructure,asLevel,asGroup));
pvRecord->initPVRecord(); pvRecord->initPVRecord();
return pvRecord; return pvRecord;
}; };
@ -60,18 +60,18 @@ static const iocshArg arg2 = { "asLevel", iocshArgInt };
static const iocshArg arg3 = { "asGroup", iocshArgString }; static const iocshArg arg3 = { "asGroup", iocshArgString };
static const iocshArg *args[] = {&arg0,&arg1,&arg2,&arg3}; static const iocshArg *args[] = {&arg0,&arg1,&arg2,&arg3};
static const iocshFuncDef pvdbcrScalarArrayFuncDef = {"pvdbcrScalarArray", 4,args}; static const iocshFuncDef pvdbcrScalarArrayFuncDef = {"pvdbcrScalarArrayRecord", 4,args};
static void pvdbcrScalarArrayCallFunc(const iocshArgBuf *args) static void pvdbcrScalarArrayCallFunc(const iocshArgBuf *args)
{ {
char *sval = args[0].sval; char *sval = args[0].sval;
if(!sval) { if(!sval) {
throw std::runtime_error("pvdbcrScalarArray recordName not specified"); throw std::runtime_error("pvdbcrScalarArrayRecord recordName not specified");
} }
string recordName = string(sval); string recordName = string(sval);
sval = args[1].sval; sval = args[1].sval;
if(!sval) { if(!sval) {
throw std::runtime_error("pvdbcrScalarArray scalarType not specified"); throw std::runtime_error("pvdbcrScalarArrayRecord scalarType not specified");
} }
string scalarType = string(sval); string scalarType = string(sval);
int asLevel = args[2].ival; int asLevel = args[2].ival;
@ -80,8 +80,8 @@ static void pvdbcrScalarArrayCallFunc(const iocshArgBuf *args)
if(sval) { if(sval) {
asGroup = string(sval); asGroup = string(sval);
} }
epics::pvDatabase::PvdbcrScalarArrayPtr record epics::pvDatabase::PvdbcrScalarArrayRecordPtr record
= epics::pvDatabase::PvdbcrScalarArray::create(recordName,scalarType); = epics::pvDatabase::PvdbcrScalarArrayRecord::create(recordName,scalarType);
epics::pvDatabase::PVDatabasePtr master = epics::pvDatabase::PVDatabase::getMaster(); epics::pvDatabase::PVDatabasePtr master = epics::pvDatabase::PVDatabase::getMaster();
record->setAsLevel(asLevel); record->setAsLevel(asLevel);
record->setAsGroup(asGroup); record->setAsGroup(asGroup);
@ -89,7 +89,7 @@ static void pvdbcrScalarArrayCallFunc(const iocshArgBuf *args)
if(!result) cout << "recordname " << recordName << " not added" << endl; if(!result) cout << "recordname " << recordName << " not added" << endl;
} }
static void pvdbcrScalarArrayRegister(void) static void pvdbcrScalarArrayRecord(void)
{ {
static int firstTime = 1; static int firstTime = 1;
if (firstTime) { if (firstTime) {
@ -99,5 +99,5 @@ static void pvdbcrScalarArrayRegister(void)
} }
extern "C" { extern "C" {
epicsExportRegistrar(pvdbcrScalarArrayRegister); epicsExportRegistrar(pvdbcrScalarArrayRecord);
} }

View File

@ -0,0 +1 @@
registrar("pvdbcrScalarArrayRecord")

View File

@ -1 +0,0 @@
registrar("pvdbcrScalarArrayRegister")

View File

@ -21,20 +21,20 @@
// The following must be the last include for code pvDatabase implements // The following must be the last include for code pvDatabase implements
#include <epicsExport.h> #include <epicsExport.h>
#define epicsExportSharedSymbols #define epicsExportSharedSymbols
#include "pv/pvdbcrScalar.h"
#include "pv/pvDatabase.h" #include "pv/pvDatabase.h"
#include "pv/pvdbcrScalarRecord.h"
using namespace epics::pvData; using namespace epics::pvData;
using namespace std; using namespace std;
namespace epics { namespace pvDatabase { namespace epics { namespace pvDatabase {
PvdbcrScalar::PvdbcrScalar( PvdbcrScalarRecord::PvdbcrScalarRecord(
std::string const & recordName,epics::pvData::PVStructurePtr const & pvStructure, std::string const & recordName,epics::pvData::PVStructurePtr const & pvStructure,
int asLevel,std::string const & asGroup) int asLevel,std::string const & asGroup)
: PVRecord(recordName,pvStructure,asLevel,asGroup) : PVRecord(recordName,pvStructure,asLevel,asGroup)
{} {}
PvdbcrScalarPtr PvdbcrScalar::create( PvdbcrScalarRecordPtr PvdbcrScalarRecord::create(
std::string const & recordName,std::string const & scalarType, std::string const & recordName,std::string const & scalarType,
int asLevel,std::string const & asGroup) int asLevel,std::string const & asGroup)
{ {
@ -46,9 +46,9 @@ PvdbcrScalarPtr PvdbcrScalar::create(
add("value",st) -> add("value",st) ->
add("timeStamp",standardField->timeStamp()) -> add("timeStamp",standardField->timeStamp()) ->
add("alarm",standardField->alarm()) -> add("alarm",standardField->alarm()) ->
createStructure(); createStructure();
PVStructurePtr pvStructure = pvDataCreate->createPVStructure(top); PVStructurePtr pvStructure = pvDataCreate->createPVStructure(top);
PvdbcrScalarPtr pvRecord(new PvdbcrScalar(recordName,pvStructure,asLevel,asGroup)); PvdbcrScalarRecordPtr pvRecord(new PvdbcrScalarRecord(recordName,pvStructure,asLevel,asGroup));
pvRecord->initPVRecord(); pvRecord->initPVRecord();
return pvRecord; return pvRecord;
}; };
@ -60,18 +60,18 @@ static const iocshArg arg2 = { "asLevel", iocshArgInt };
static const iocshArg arg3 = { "asGroup", iocshArgString }; static const iocshArg arg3 = { "asGroup", iocshArgString };
static const iocshArg *args[] = {&arg0,&arg1,&arg2,&arg3}; static const iocshArg *args[] = {&arg0,&arg1,&arg2,&arg3};
static const iocshFuncDef pvdbcrScalarFuncDef = {"pvdbcrScalar", 4,args}; static const iocshFuncDef pvdbcrScalarFuncDef = {"pvdbcrScalarRecord", 4,args};
static void pvdbcrScalarCallFunc(const iocshArgBuf *args) static void pvdbcrScalarCallFunc(const iocshArgBuf *args)
{ {
char *sval = args[0].sval; char *sval = args[0].sval;
if(!sval) { if(!sval) {
throw std::runtime_error("pvdbcrScalar recordName not specified"); throw std::runtime_error("pvdbcrScalarRecord recordName not specified");
} }
string recordName = string(sval); string recordName = string(sval);
sval = args[1].sval; sval = args[1].sval;
if(!sval) { if(!sval) {
throw std::runtime_error("pvdbcrScalar scalarType not specified"); throw std::runtime_error("pvdbcrScalarRecord scalarType not specified");
} }
string scalarType = string(sval); string scalarType = string(sval);
int asLevel = args[2].ival; int asLevel = args[2].ival;
@ -80,8 +80,8 @@ static void pvdbcrScalarCallFunc(const iocshArgBuf *args)
if(sval) { if(sval) {
asGroup = string(sval); asGroup = string(sval);
} }
epics::pvDatabase::PvdbcrScalarPtr record epics::pvDatabase::PvdbcrScalarRecordPtr record
= epics::pvDatabase::PvdbcrScalar::create(recordName,scalarType); = epics::pvDatabase::PvdbcrScalarRecord::create(recordName,scalarType);
epics::pvDatabase::PVDatabasePtr master = epics::pvDatabase::PVDatabase::getMaster(); epics::pvDatabase::PVDatabasePtr master = epics::pvDatabase::PVDatabase::getMaster();
record->setAsLevel(asLevel); record->setAsLevel(asLevel);
record->setAsGroup(asGroup); record->setAsGroup(asGroup);
@ -89,7 +89,7 @@ static void pvdbcrScalarCallFunc(const iocshArgBuf *args)
if(!result) cout << "recordname " << recordName << " not added" << endl; if(!result) cout << "recordname " << recordName << " not added" << endl;
} }
static void pvdbcrScalarRegister(void) static void pvdbcrScalarRecord(void)
{ {
static int firstTime = 1; static int firstTime = 1;
if (firstTime) { if (firstTime) {
@ -99,5 +99,5 @@ static void pvdbcrScalarRegister(void)
} }
extern "C" { extern "C" {
epicsExportRegistrar(pvdbcrScalarRegister); epicsExportRegistrar(pvdbcrScalarRecord);
} }

View File

@ -0,0 +1 @@
registrar("pvdbcrScalarRecord")

View File

@ -1 +0,0 @@
registrar("pvdbcrScalarRegister")

View File

@ -114,7 +114,7 @@ static void pvdbcrTraceRecordCallFunc(const iocshArgBuf *args)
if(!result) cout << "recordname " << recordName << " not added" << endl; if(!result) cout << "recordname " << recordName << " not added" << endl;
} }
static void pvdbcrTraceRecordRegister(void) static void pvdbcrTraceRecord(void)
{ {
static int firstTime = 1; static int firstTime = 1;
if (firstTime) { if (firstTime) {
@ -124,5 +124,5 @@ static void pvdbcrTraceRecordRegister(void)
} }
extern "C" { extern "C" {
epicsExportRegistrar(pvdbcrTraceRecordRegister); epicsExportRegistrar(pvdbcrTraceRecord);
} }

View File

@ -0,0 +1 @@
registrar("pvdbcrTraceRecord")

View File

@ -1 +0,0 @@
registrar("pvdbcrTraceRecordRegister")