Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 179bd6aa22 | |||
| 377a28c95f | |||
| 8d4ea1e87c | |||
| 5ec740b3b0 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -20,3 +20,5 @@ tools/bin
|
||||
tools/lib
|
||||
tools/lib64
|
||||
tools/pyvenv.cfg
|
||||
tools/.*
|
||||
|
||||
|
||||
21
GNUmakefile
21
GNUmakefile
@@ -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
|
||||
|
||||
@@ -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_ ) {
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user