From 377a28c95fd8da31ca8cf9af3db456b00a1e4d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Sandstr=C3=B6m?= Date: Wed, 10 Sep 2025 13:44:56 +0200 Subject: [PATCH] Adapt to ecmc v11 --- .gitignore | 2 ++ GNUmakefile | 2 +- src/ecmcMotionPlg.cpp | 44 ++++++++++---------------------- tools/ecmcMotionMainPyQtGraph.py | 2 +- tools/startGui.sh | 2 +- 5 files changed, 18 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index 9055b16..e80baf6 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ tools/bin tools/lib tools/lib64 tools/pyvenv.cfg +tools/.* + diff --git a/GNUmakefile b/GNUmakefile index 181b097..c14e080 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -17,7 +17,7 @@ USR_CXXFLAGS += -std=c++17 OPT_CXXFLAGS_YES = -O3 # dependencies -ecmc_VERSION = 10.0 +ecmc_VERSION = v11.0.0_RC1 # ethercat # debian 12 diff --git a/src/ecmcMotionPlg.cpp b/src/ecmcMotionPlg.cpp index 2aea597..630ea3a 100644 --- a/src/ecmcMotionPlg.cpp +++ b/src/ecmcMotionPlg.cpp @@ -839,22 +839,22 @@ void ecmcMotionPlg::executeMotionObject() { // protect axis_ if axis object id is changed over asyn epicsMutexLock(axisMutex_); - ecmcAxisStatusType *tempAxisStat = axis_->getDebugInfoDataPointer(); + ecmcAxisDataStatus *tempAxisStat = axis_->getAxisStatusStruct(); // Fill the buffers - actPosBuffer_->addData(tempAxisStat->onChangeData.positionActual); - setPosBuffer_->addData(tempAxisStat->onChangeData.positionSetpoint); - diffPosBuffer_->addData(tempAxisStat->onChangeData.positionError); - enableBuffer_->addData(tempAxisStat->onChangeData.statusWd.enable); - enabledBuffer_->addData(tempAxisStat->onChangeData.statusWd.enabled); - busyBuffer_->addData(tempAxisStat->onChangeData.statusWd.busy); - executeBuffer_->addData(tempAxisStat->onChangeData.statusWd.execute); - trajSourceBuffer_->addData(tempAxisStat->onChangeData.statusWd.trajsource); - encSourceBuffer_->addData(tempAxisStat->onChangeData.statusWd.encsource); - atTargetBuffer_->addData(tempAxisStat->onChangeData.statusWd.attarget); - errorIdBuffer_->addData(tempAxisStat->onChangeData.error); + actPosBuffer_->addData(tempAxisStat->currentPositionActual); + setPosBuffer_->addData(tempAxisStat->currentPositionSetpoint); + diffPosBuffer_->addData(tempAxisStat->cntrlError); + enableBuffer_->addData(tempAxisStat->statusWord_.enable); + enabledBuffer_->addData(tempAxisStat->statusWord_.enabled); + busyBuffer_->addData(tempAxisStat->statusWord_.busy); + executeBuffer_->addData(tempAxisStat->statusWord_.execute); + trajSourceBuffer_->addData(tempAxisStat->statusWord_.trajsource); + encSourceBuffer_->addData(tempAxisStat->statusWord_.encsource); + atTargetBuffer_->addData(tempAxisStat->statusWord_.attarget); + errorIdBuffer_->addData(tempAxisStat->errorCode); - epicsInt32 *temp=(epicsInt32*)&(tempAxisStat->onChangeData.statusWd); // A bit nasty + epicsInt32 *temp=(epicsInt32*)&(tempAxisStat->statusWord_); // A bit nasty statusWdBuffer_->addData(*temp); xTime_+=xdt_; @@ -870,24 +870,6 @@ void ecmcMotionPlg::executeMotionObject() { epicsMutexUnlock(axisMutex_); } -//void ecmcMotionPlg::setModeFFT(FFT_MODE mode) { -// cfgMode_ = mode; -// setIntegerParam(asynFFTModeId_,(epicsInt32)mode); -//} -// -//FFT_STATUS ecmcMotionPlg::getStatusFFT() { -// return status_; -//} - -//void ecmcMotionPlg::updateStatus(FFT_STATUS status) { -// status_ = status; -// setIntegerParam(asynFFTStatId_,(epicsInt32) status); -// -// setIntegerParam(asynElementsInBuffer_, (epicsInt32)elementsInBuffer_); -// -// callParamCallbacks(); -//} - asynStatus ecmcMotionPlg::writeInt32(asynUser *pasynUser, epicsInt32 value) { int function = pasynUser->reason; if( function == asynEnableId_ ) { diff --git a/tools/ecmcMotionMainPyQtGraph.py b/tools/ecmcMotionMainPyQtGraph.py index 373236a..66df6bd 100644 --- a/tools/ecmcMotionMainPyQtGraph.py +++ b/tools/ecmcMotionMainPyQtGraph.py @@ -579,7 +579,7 @@ class ecmcMtnMainGui(QtWidgets.QDialog): axId = axIdPV.get() if axId > 0: - self.cmbBxSelectAxis.addItem(str(int(ax))) + self.cmbBxSelectAxis.addItem(str(int(axId))) def changeAxisIndex(self,xxx): if self.cmbBxSelectAxis.currentData() is not None: diff --git a/tools/startGui.sh b/tools/startGui.sh index 4fea3ad..a1cc1fc 100755 --- a/tools/startGui.sh +++ b/tools/startGui.sh @@ -19,4 +19,4 @@ fi echo "Prefix=${P=c6025a-04}" echo "plugin id=${ID=0}" -python ecmcMotionMainPyQtGraph.py ${P=c6025a-04} ${ID=0} +python3 ecmcMotionMainPyQtGraph.py ${P=c6025a-04} ${ID=0}