From b069f36c69b349470befd8379475bd086f3a5eee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Sandstr=C3=B6m?= Date: Tue, 5 Mar 2024 09:39:19 +0100 Subject: [PATCH 1/2] WIP --- src/ecmcDAQDataArray.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ecmcDAQDataArray.cpp b/src/ecmcDAQDataArray.cpp index 92ad296..ee2984c 100644 --- a/src/ecmcDAQDataArray.cpp +++ b/src/ecmcDAQDataArray.cpp @@ -143,7 +143,7 @@ void ecmcDAQDataArray::buildArrayHeader(){ dataStartOffset = dataStartOffset + (*pDataCh)->getDataElementCount(); index++; // Forth index spare... - buffer_[index] = -1234.0; + buffer_[index] = -1; index++; } } From cfe8be81967179d388d7ad0121c9f7995a4d1e11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Sandstr=C3=B6m?= Date: Tue, 5 Mar 2024 09:58:56 +0100 Subject: [PATCH 2/2] Add time in first element --- GNUmakefile | 2 +- src/ecmcDAQChannelItem.h | 2 +- src/ecmcDAQDataArray.cpp | 6 +++++- src/ecmcDAQDataArray.h | 3 ++- src/ecmcDAQDefs.h | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 2c81fc9..f90e8a6 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -15,7 +15,7 @@ USR_CXXFLAGS += -std=c++17 OPT_CXXFLAGS_YES = -O3 # dependencies -#ECmasterECMC_VERSION = v1.1.0 +ECmasterECMC_VERSION = v1.1.0 ecmc_VERSION = 9.1.0 BASE_DIR = . diff --git a/src/ecmcDAQChannelItem.h b/src/ecmcDAQChannelItem.h index 5b5671e..18d2b29 100644 --- a/src/ecmcDAQChannelItem.h +++ b/src/ecmcDAQChannelItem.h @@ -200,7 +200,7 @@ class ecmcDAQChannelItem { default: data = 0; - return ERROR_MEM_INVALID_DATA_TYPE; + return ERROR_DAQ_MEM_INVALID_DATA_TYPE; break; } diff --git a/src/ecmcDAQDataArray.cpp b/src/ecmcDAQDataArray.cpp index ee2984c..acda256 100644 --- a/src/ecmcDAQDataArray.cpp +++ b/src/ecmcDAQDataArray.cpp @@ -23,7 +23,6 @@ #include "ecmcPluginClient.h" - ecmcDAQDataArray::ecmcDAQDataArray(const char* name, const char* portName) : asynPortDriver(portName, 1, /* maxAddr */ @@ -49,6 +48,7 @@ ecmcDAQDataArray::ecmcDAQDataArray(const char* name, const char* portName) enablePlugin_ = -1; dataSourcesLinked_ = 0; name_ = name; + master_ = (ecmcEc*)getEcMaster(); printf("Created an array with name = %s, asynPortName = %s\n",name, portName); } @@ -156,6 +156,10 @@ void ecmcDAQDataArray::execute() { if(!enablePlugin_) { return; } + + //convert to micro secs 32bit and double + buffer_[0] =(double)((master_->getTimeNs()/1000)& 0xFFFFFFFF); + int first = 1; size_t index = firstDataElementIndex_ ; for(std::vector::iterator pDataCh = dataChannels_.begin(); pDataCh != dataChannels_.end(); ++pDataCh) { diff --git a/src/ecmcDAQDataArray.h b/src/ecmcDAQDataArray.h index 7ac0cea..74b13b9 100644 --- a/src/ecmcDAQDataArray.h +++ b/src/ecmcDAQDataArray.h @@ -17,6 +17,7 @@ #include #include "ecmcDAQDataChannel.h" #include "ecmcAsynPortDriver.h" +#include "ecmcEc.h" /* Class to format an array of ecmcDAQDataChannels with headers and push over asyn to epics */ class ecmcDAQDataArray : public asynPortDriver { @@ -50,7 +51,7 @@ private: int asynEnableId_; // Enable/disable int asynRawDataId_; // Raw data buffer int enablePlugin_; // Enable - + ecmcEc *master_; }; #endif /* ECMC_DAQ_DATA_ARRAY_H_ */ diff --git a/src/ecmcDAQDefs.h b/src/ecmcDAQDefs.h index 06847cd..5a4df13 100644 --- a/src/ecmcDAQDefs.h +++ b/src/ecmcDAQDefs.h @@ -19,6 +19,6 @@ #define ECMC_PLUGIN_ENABLE_OPTION_CMD "ENABLE=" -#define ERROR_MEM_INVALID_DATA_TYPE 1000; +#define ERROR_DAQ_MEM_INVALID_DATA_TYPE 1000; #endif /* ECMC_SCOPE_DEFS_H_ */