4 Commits
2.0.2 ... 3.0.0

Author SHA1 Message Date
179bd6aa22 Use ecmc 11.0 2025-10-13 11:54:03 +02:00
377a28c95f Adapt to ecmc v11 2025-09-10 13:44:56 +02:00
8d4ea1e87c epics 7.0.9 2025-04-22 12:14:17 +02:00
5ec740b3b0 Update makefile 2025-03-28 09:23:06 +01:00
5 changed files with 29 additions and 42 deletions

2
.gitignore vendored
View File

@@ -20,3 +20,5 @@ tools/bin
tools/lib
tools/lib64
tools/pyvenv.cfg
tools/.*

View File

@@ -8,7 +8,7 @@ BUILDCLASSES = Linux
ARCH_FILTER = deb10% deb12%
# Run 7.0.6 for now
EXCLUDE_VERSIONS+=3 7.0.5 7.0.6 7.0.7 7.0.9
EXCLUDE_VERSIONS+=3 7.0.5 7.0.6 7.0.7
IGNORE_MODULES += asynMotor
IGNORE_MODULES += motorBase
@@ -17,25 +17,28 @@ USR_CXXFLAGS += -std=c++17
OPT_CXXFLAGS_YES = -O3
# dependencies
ECmasterECMC_VERSION = v1.1.0
ecmc_VERSION = 10.0
ecmc_VERSION = 11.0
# ethercat
EC_BASE_PATH = /ioc/NeedfulThings/EtherCAT/4epics/
# debian 12
EC_MASTER_VER = 1.6.3
EC_BASE_PATH = /ioc/NeedfulThings/EtherCAT/4epics/${EC_MASTER_VER}/
USR_CXXFLAGS_deb12-x86_64 += -I${EC_BASE_PATH}${T_A}/include/
USR_CXXFLAGS_deb12-x86_64 += -L${EC_BASE_PATH}${T_A}/lib/
OPT_CXXFLAGS_YES = -O3
LIB_SYS_LIBS += ethercat
USR_LDFLAGS_deb12-x86_64 += -Wl,-rpath=${EC_BASE_PATH}${T_A}/lib/
USR_LDFLAGS_deb12-x86_64 += -L ${EC_BASE_PATH}${T_A}/lib/
# debian 10
# note: EC_MASTER LIB does not depend on epics version hence use the 7.0.8 build..
USR_LDFLAGS_deb10-x86_64 += -lethercat
EC_MASTER_LIB = ${EPICS_MODULES}/ECmasterECMC/${ECmasterECMC_VERSION}/R${EPICSVERSION}/lib/${T_A}
USR_LDFLAGS_deb10-x86_64 += -Wl,-rpath=${EC_MASTER_LIB}
USR_LDFLAGS_deb10-x86_64 += -L ${EC_MASTER_LIB}
EC_MASTER_LIB = /ioc/NeedfulThings/EtherCAT/4epics/v1.1.0/R7.0.8/
USR_LDFLAGS_deb10-x86_64 += -Wl,-rpath=${EC_MASTER_LIB}lib/${T_A}
USR_LDFLAGS_deb10-x86_64 += -L ${EC_MASTER_LIB}lib/${T_A}
USR_CXXFLAGS_deb10-x86_64 += -I${EC_MASTER_LIB}/include/
OPT_CXXFLAGS_YES = -O3
BASE_DIR = .
SRC_DIR = $(BASE_DIR)/src
DB_DIR = $(BASE_DIR)/Db

View File

@@ -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_ ) {

View File

@@ -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:

View File

@@ -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}