WIP
This commit is contained in:
@@ -31,7 +31,6 @@ DBDS += $(SRC_DIR)/ecmcDAQPlg.dbd
|
||||
TEMPLATES += $(wildcard $(DB_DIR)/*.template)
|
||||
SCRIPTS += ./startup.cmd
|
||||
SCRIPTS += $(SCRIPTS_DIR)/ecmcAddDaqArray.cmd
|
||||
SCRIPTS += $(SCRIPTS_DIR)ecmcAddDaqChannel.cmd
|
||||
SCRIPTS += $(SCRIPTS_DIR)ecmcAddDaqDataItem.cmd
|
||||
SCRIPTS += $(SCRIPTS_DIR)ecmcLoadDaqArrayRecords.cmd
|
||||
|
||||
SCRIPTS += $(SCRIPTS_DIR)/ecmcAddDaqChannel.cmd
|
||||
SCRIPTS += $(SCRIPTS_DIR)/ecmcAddDaqDataItem.cmd
|
||||
SCRIPTS += $(SCRIPTS_DIR)/ecmcLoadDaqArrayRecords.cmd
|
||||
|
||||
@@ -222,3 +222,7 @@ size_t ecmcDAQDataArray::getArraySize() {
|
||||
return totalElementCount_;
|
||||
}
|
||||
|
||||
std::string ecmcDAQDataArray::getName() {
|
||||
return name_;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,19 +24,20 @@ class ecmcDAQDataArray : public asynPortDriver {
|
||||
public:
|
||||
ecmcDAQDataArray(const char* name, const char* portName);
|
||||
~ecmcDAQDataArray();
|
||||
void connectToDataSources();
|
||||
void execute();
|
||||
void addChannel(int type);
|
||||
// Always add to last added channel
|
||||
void addDataItemToChannel(const char* name, int format);
|
||||
void setEnable(int enable);
|
||||
size_t getArraySize();
|
||||
int validate();
|
||||
void connectToDataSources();
|
||||
void execute();
|
||||
void addChannel(int type);
|
||||
void addDataItemToChannel(const char* name, int format); // Always add to last added channel
|
||||
void setEnable(int enable);
|
||||
size_t getArraySize();
|
||||
int validate();
|
||||
std::string getName();
|
||||
|
||||
private:
|
||||
void buildArrayHeader();
|
||||
void initAsyn();
|
||||
void updateAsyn();
|
||||
void buildArrayHeader();
|
||||
void initAsyn();
|
||||
void updateAsyn();
|
||||
|
||||
std::string name_;
|
||||
double *buffer_;
|
||||
std::vector<ecmcDAQDataChannel*> dataChannels_;
|
||||
|
||||
@@ -22,11 +22,12 @@
|
||||
#include "ecmcDAQDefs.h"
|
||||
#include <epicsExport.h>
|
||||
#include <iocsh.h>
|
||||
#include "envDefs.h"
|
||||
|
||||
#define ECMC_PLUGIN_DAQ_ERROR_CODE 1
|
||||
|
||||
static std::vector<ecmcDAQDataArray*> arrays;
|
||||
static int arrayCounter = 0;
|
||||
static int arrayCounter = 0;
|
||||
|
||||
ecmcDAQDataArray* getDAQArrayFromName(const char *name) {
|
||||
// Find group by name
|
||||
@@ -42,14 +43,14 @@ ecmcDAQDataArray* getDAQArrayFromName(const char *name) {
|
||||
|
||||
int createDAQArray(const char* name, const char* portName ) {
|
||||
// Check if already exists
|
||||
ecmcDAQDataArray array = getDAQArrayFromName(name);
|
||||
ecmcDAQDataArray *array = getDAQArrayFromName(name);
|
||||
if(array){
|
||||
printf("Error: DAQ-Array %s already defined.\n",name);
|
||||
return ECMC_PLUGIN_DAQ_ERROR_CODE;
|
||||
}
|
||||
|
||||
// create new ecmcFFT object
|
||||
ecmcDAQDataArray* array = NULL;
|
||||
// create new ecmcDAQDataArray object
|
||||
array = NULL;
|
||||
|
||||
try {
|
||||
array = new ecmcDAQDataArray(name, portName);
|
||||
@@ -69,7 +70,7 @@ int createDAQArray(const char* name, const char* portName ) {
|
||||
}
|
||||
|
||||
int getDAQDataArrayNelm(const char *name){
|
||||
ecmcDAQDataArray array = getDAQArrayFromName(name);
|
||||
ecmcDAQDataArray *array = getDAQArrayFromName(name);
|
||||
if(!array){
|
||||
printf("Error: DAQ-Array %s not found.\n",name);
|
||||
return -1;
|
||||
@@ -312,7 +313,8 @@ void ecmcDAQReadNelmHelp() {
|
||||
printf(" <result_var_name> : Variable for return value.\n");
|
||||
printf("\n");
|
||||
}
|
||||
nelmBuffer[100];
|
||||
|
||||
static char nelmBuffer[100];
|
||||
|
||||
int ecmcDAQReadNelm(const char* name, const char* result_var) {
|
||||
if(!name) {
|
||||
@@ -333,7 +335,7 @@ int ecmcDAQReadNelm(const char* name, const char* result_var) {
|
||||
int nelm = 0;
|
||||
try {
|
||||
nelm = getDAQDataArrayNelm(name);
|
||||
sprintf(nelmBuffer, "%zu", nelm);
|
||||
sprintf(nelmBuffer, "%d", nelm);
|
||||
epicsEnvSet(result_var, nelmBuffer);
|
||||
}
|
||||
catch(std::exception& e) {
|
||||
@@ -362,7 +364,7 @@ static void initCallFunc_3(const iocshArgBuf *args) {
|
||||
* EPICS iocsh shell command: ecmcDAQConnectToDataSource
|
||||
*/
|
||||
|
||||
int ecmcDAQConnectToDataSource() {
|
||||
int ecmcDAQConnectToDataSource(int dummy) {
|
||||
|
||||
try {
|
||||
linkDataToDAQs();
|
||||
|
||||
Reference in New Issue
Block a user