#include <osal.h>
#include <ESL_os.h>
#include <ESL_BOARD_OS_config.h>
#include "ecSlvCiA402.h"
#include "ESL_cia402Demo.h"
#include "ESL_cia402Obd.h"
#include "ESL_gpioHelper.h"
#if !(defined BIT2BYTE)
#define BIT2BYTE(x) (((x)+7) >> 3)
#endif
#define ENABLE_DYNAMIC_POSITION_LIMITS 0
#define EC_SLV_APP_CIA_GETAXISVALUE(type_p, target_p, axisDesc_p) \
if (gotOffsets && (NULL != (axisDesc_p).pdoObject)) { \
(target_p) = ((type_p*)&(pApplication_p->pdRxBuffer[(axisDesc_p).pdoOffset]))[0]; } else { \
EC_SLV_APP_getCiA402ObjectValue(pApplication_p, (axisDesc_p).pSdo, sizeof(type_p), (uint16_t*)&(target_p)); }
#define EC_SLV_APP_CIA_SETAXISVALUE(type_p, axisDesc_p, value_p) \
if (gotOffsets && (NULL != (axisDesc_p).pdoObject)) { \
((type_p*)&(pApplication_p->pdTxBuffer[(axisDesc_p).pdoOffset]))[0] = (value_p); } else { \
EC_SLV_APP_setCiA402ObjectValue(pApplication_p, &(axisDesc_p), sizeof(type_p), (uint16_t*)&(value_p)); }
typedef struct
{
uint8_t id;
bool axisIsActive;
bool brakeApplied;
bool lowLevelPowerApplied;
bool highLevelPowerApplied;
bool axisFunctionEnabled;
bool configurationAllowed;
double positionActualValue;
uint32_t cycleTime;
}
#define SUPPORTED_DRIVE_MODE_CSP_BIT 7
#define SUPPORTED_DRIVE_MODE_CSV_BIT 8
#define SUPPORTED_DRIVE_MODE_CST_BIT 9
#define DRIVE_MODE_CSP (1 << SUPPORTED_DRIVE_MODE_CSP_BIT)
#define DRIVE_MODE_CSV (1 << SUPPORTED_DRIVE_MODE_CSV_BIT)
#define DRIVE_MODE_CST (1 << SUPPORTED_DRIVE_MODE_CST_BIT)
#define DRIVE_GEAR_RELATION 0.0010922
#define POSITION_MAX_LIMIT 0xFFFFFFFF
#define NON_DC_DEFAULT_CYCLE_TIME_USEC 4000
#define NSEC_TO_USEC 1000
#define ESC_DC_SYNC0_CYCLETIME_REG 0x09A0
{
if (NULL == pApplication_p || NULL == pObject_p)
{
goto Exit;
}
Exit:
return err;
}
{
uint32_t err;
{
pObject = pCiaObject_p->
pSdo;
}
else
{
if (err)
{
goto Exit;
}
}
Exit:
return err;
}
{
if (!pApplication || !pObjectEntry_p)
{
goto Exit;
}
Exit:
return error;
}
{
uint32_t err;
{
}
return err;
}
{
uint32_t err;
uint32_t driveMode = DRIVE_MODE_CSP | DRIVE_MODE_CSV | DRIVE_MODE_CST;
uint8_t axisNo;
for( axisNo = 0; axisNo < AXES_NUMBER; axisNo++)
{
sizeof (driveMode), (uint16_t*) &driveMode);
}
return err;
}
{
int32_t posMaxLimit = POSITION_MAX_LIMIT;
uint8_t axisNo;
OSAL_printf("+%s\r\n", __func__);
for(axisNo = 0; axisNo < AXES_NUMBER; axisNo++)
{
}
}
{
uint32_t sync0CycleTime = 0;
uint8_t axisNo;
OSALUNREF_PARM(pIntMask_p);
if (!pApplicationInstance)
{
goto Exit;
}
sync0CycleTime = sync0CycleTime / NSEC_TO_USEC;
for(axisNo = 0; axisNo < AXES_NUMBER; axisNo++)
{
localAxes_s[axisNo].
id = axisNo;
if (localAxes_s[axisNo].axisIsActive)
{
localAxes_s[axisNo].
cycleTime = sync0CycleTime;
}
if(!localAxes_s[axisNo].cycleTime)
{
localAxes_s[axisNo].
cycleTime = NON_DC_DEFAULT_CYCLE_TIME_USEC;
}
}
Exit:
return retVal;
}
{
switch(characteristic_p)
{
break;
break;
break;
break;
default:
break;
}
return true;
}
{
int16_t targetTorque;
}
{
int32_t targetVelocity;
}
{
uint32_t targetPosition, actualPosition;
int32_t targetVelocity, actualVelocity;
int16_t targetTorque, actualTorque;
float incFactor = (float) (DRIVE_GEAR_RELATION * pCiA402Axis_p->
cycleTime);
if (incFactor != 0)
{
actualVelocity = (targetPosition - actualPosition) / incFactor;
}
}
{
uint16_t statusWord, controlWord;
uint32_t targetPosition;
uint32_t posMaxLimit, posMinLimit;
uint8_t operationModeDisplay;
if (!pApplication_p)
{
goto Exit;
}
#if (defined ENABLE_DYNAMIC_POSITION_LIMITS) && (1==ENABLE_DYNAMIC_POSITION_LIMITS)
#endif
{
&&(posMinLimit < pCiA402Axis_p->positionActualValue || pCiA402Axis_p->
positionActualValue < targetPosition))
{
switch(operationModeDisplay)
{
break;
break;
break;
default:
break;
}
}
else
{
}
}
Exit:
return;
}
{
static
bool gotOffsets = false;
uint8_t axisNo;
uint16_t controlWord, statusWord, errorCode;
int16_t quickStopOptionCode, shutdownOptionCode, disableOperationCode, faultReactionCode;
uint8_t operationDisplayCode;
if (!pApplication_p)
{
goto Exit;
}
#if (defined GPIO_TEST_PINS) && (1==GPIO_TEST_PINS)
#if (defined GPIO_TEST_PROFILE_SEL) && (GPIO_TEST_PROFILE_1 == GPIO_TEST_PROFILE_SEL)
ESL_GPIO_testPins_set(ESL_TESTPIN_STATE_REG_BANK, ESL_TESTPIN_2_MASK);
#endif
#endif
{
EC_SLV_APP_CiA_dropPDOffsets(pApplication_p);
gotOffsets = false;
}
{
EC_SLV_APP_CiA_fetchPDOffsets(pApplication_p);
gotOffsets = true;
}
#if (defined GPIO_TEST_PINS) && (1==GPIO_TEST_PINS)
#if (defined GPIO_TEST_PROFILE_SEL) && (GPIO_TEST_PROFILE_1 == GPIO_TEST_PROFILE_SEL)
ESL_GPIO_testPins_clear(ESL_TESTPIN_STATE_REG_BANK, ESL_TESTPIN_2_MASK);
#endif
#endif
#if (defined GPIO_TEST_PINS) && (1==GPIO_TEST_PINS)
#if (defined GPIO_TEST_PROFILE_SEL) && (GPIO_TEST_PROFILE_1 == GPIO_TEST_PROFILE_SEL)
ESL_GPIO_testPins_set(ESL_TESTPIN_STATE_REG_BANK, ESL_TESTPIN_2_MASK);
#endif
#endif
{
}
{
}
for(axisNo = 0; axisNo < AXES_NUMBER; axisNo++)
{
{
OSAL_printf("Axis %d Activated\n\r", axisNo);
}
if(errorCode &&
{
}
else
{
}
switch(errorCode)
{
{
{
{
}
{
}
{
}
{
}
}
{
{
}
}
}
break;
{
{
}
}
break;
{
{
}
}
break;
{
{
}
}
break;
default:
break;
}
#if (defined GPIO_TEST_PINS) && (1==GPIO_TEST_PINS)
#if (defined GPIO_TEST_PROFILE_SEL) && (GPIO_TEST_PROFILE_1 == GPIO_TEST_PROFILE_SEL)
ESL_GPIO_testPins_set(ESL_TESTPIN_STATE_REG_BANK, ESL_TESTPIN_1_MASK);
#endif
#endif
#if (defined GPIO_TEST_PINS) && (1==GPIO_TEST_PINS)
#if (defined GPIO_TEST_PROFILE_SEL) && (GPIO_TEST_PROFILE_1 == GPIO_TEST_PROFILE_SEL)
ESL_GPIO_testPins_clear(ESL_TESTPIN_STATE_REG_BANK, ESL_TESTPIN_1_MASK);
#endif
#endif
}
{
}
{
}
#if (defined GPIO_TEST_PINS) && (1==GPIO_TEST_PINS)
#if (defined GPIO_TEST_PROFILE_SEL) && (GPIO_TEST_PROFILE_1 == GPIO_TEST_PROFILE_SEL)
ESL_GPIO_testPins_clear(ESL_TESTPIN_STATE_REG_BANK, ESL_TESTPIN_2_MASK);
#endif
#endif
Exit:
return;
}
{
OSALUNREF_PARM(pCtxt_p);
OSAL_printf("Local error triggered: 0x%04x\r\n", errorCode_p);
}
#define CONTROLWORD_COMMAND_ENABLEOPERATION
Enable operation command.
Definition: ecSlvApiDef_CiA402.h:89
uint32_t EC_SLV_APP_setCiA402ObjectValue(EC_SLV_APP_Sapplication_t *pApplication_p, EC_SLV_APP_sCIA_object_t *pCiaObject_p, uint16_t length_p, uint16_t *pValue_p)
Write CiA402 Object value.
Definition: ESL_cia402Demo.c:237
void EC_SLV_APP_CSP(EC_SLV_APP_Sapplication_t *pApplication_p, EC_SLV_API_CiA402_SAxis_t *pCiA402Axis_p, bool gotOffsets)
Cyclic synchronous position mode. ETG6010 6.2.
Definition: ESL_cia402Demo.c:697
#define CYCLIC_SYNC_TORQUE_MODE
Cyclic Synchronous Torque mode.
Definition: ecSlvApiDef_CiA402.h:149
#define SLOW_DOWN_RAMP
Slow down ramp (options: 0x605B; 0x605C; 0x605E)
Definition: ecSlvApiDef_CiA402.h:330
void EC_SLV_APP_cia402Application(void *pCtxt_p)
CiA402 Application function.
Definition: ESL_cia402Demo.c:876
EC_API_SLV_EUserRetCodes_t EC_SLV_APP_startInputHandler(void *pCtxt_p, uint16_t *pIntMask_p)
Get cycle time information.
Definition: ESL_cia402Demo.c:491
#define OBD_FAULT_REACTION_INDEX(x)
Definition: ecSlvApiDef_CiA402.h:362
uint32_t EC_SLV_APP_setSupportedDriveModes(EC_SLV_APP_Sapplication_t *pApplication_p)
Set supported drive modes.
Definition: ESL_cia402Demo.c:397
#define VOLTAGE_LIMIT_NO_TRANSIT
Slow down on voltage limit and stay in Quick Stop Active.
Definition: ecSlvApiDef_CiA402.h:344
#define QUICKSTOP_RAMP_NO_TRANSIT
Slow down on quick stop ramp and stay in Quick Stop Active.
Definition: ecSlvApiDef_CiA402.h:342
#define EC_SLV_APP_CIA_SETAXISVALUE(type_p, axisDesc_p, value_p)
Write CiA402 Axis value.
Definition: ESL_cia402Demo.c:106
#define CONTROLWORD_COMMAND_SWITCHON
Switch on command.
Definition: ecSlvApiDef_CiA402.h:84
uint32_t EC_SLV_APP_getCiA402ObjectEntryValue(void *pAppCtxt_p, EC_API_SLV_SCoE_ObjEntry_t *pObjectEntry_p, uint16_t length_p, uint16_t *pValue_p)
Read CiA402 Object entry.
Definition: ESL_cia402Demo.c:296
void EC_SLV_APP_CST(EC_SLV_APP_Sapplication_t *pApplication_p, EC_SLV_API_CiA402_SAxis_t *pCiA402Axis_p, bool gotOffsets)
Cyclic synchronous torque mode. ETG6010 6.4.
Definition: ESL_cia402Demo.c:613
#define QUICKSTOP_RAMP
Quick stop ramp (options: 0x605E)
Definition: ecSlvApiDef_CiA402.h:331
#define STATUSWORD_INTERNAL_LIMIT
Internal limit.
Definition: ecSlvApiDef_CiA402.h:100
#define OBD_DISABLE_OPERATION_INDEX(x)
Definition: ecSlvApiDef_CiA402.h:360
uint32_t EC_SLV_APP_setCiA402ObjectEntryValue(EC_API_SLV_SHandle_t *pEcApiSlv_p, uint16_t index_p, uint8_t subIndex_p, uint16_t length_p, uint16_t *pValue_p)
Write CiA402 Object entry.
Definition: ESL_cia402Demo.c:354
#define DISABLE_DRIVE
Disable drive (options: 0x605B; 0x605C; 0x605E)
Definition: ecSlvApiDef_CiA402.h:329
void EC_SLV_APP_CSV(EC_SLV_APP_Sapplication_t *pApplication_p, EC_SLV_API_CiA402_SAxis_t *pCiA402Axis_p, bool gotOffsets)
Cyclic synchronous velocity mode. ETG6010 6.3.
Definition: ESL_cia402Demo.c:655
#define STATUSWORD_DRIVE_FOLLOWS_COMMAND
Drive follows command (used in cyclic synchronous modes)
Definition: ecSlvApiDef_CiA402.h:104
void EC_SLV_APP_motionControl(EC_SLV_APP_Sapplication_t *pApplication_p, EC_SLV_API_CiA402_SAxis_t *pCiA402Axis_p, bool gotOffsets)
This functions provides a simple feedback functionality.
Definition: ESL_cia402Demo.c:760
#define OBD_SW_POSITION_LIMIT_INDEX(x)
Definition: ecSlvApiDef_CiA402.h:392
#define CYCLIC_SYNC_POSITION_MODE
Cyclic Synchronous Position mode.
Definition: ecSlvApiDef_CiA402.h:147
#define CURRENT_LIMIT_NO_TRANSIT
Slow down on current limit and stay in Quick Stop Active.
Definition: ecSlvApiDef_CiA402.h:343
bool EC_SLV_APP_transitionAction(int16_t characteristic_p)
This function shall calculate the desired Axis input values to move on a predefined ramp.
Definition: ESL_cia402Demo.c:560
#define STOP_ON_VOLTAGE_LIMIT
Stop on voltage limit (options: 0x605E)
Definition: ecSlvApiDef_CiA402.h:333
#define CYCLIC_SYNC_VELOCITY_MODE
Cyclic Synchronous Velocity mode.
Definition: ecSlvApiDef_CiA402.h:148
uint32_t EC_SLV_APP_getCiA402ObjectValue(EC_SLV_APP_Sapplication_t *pApplication_p, EC_API_SLV_SCoE_Object_t *pObject_p, uint16_t length_p, uint16_t *pValue_p)
Read CiA402 Objects.
Definition: ESL_cia402Demo.c:184
void EC_SLV_APP_cia402LocalError(void *pCtxt_p, uint16_t errorCode_p)
Local Error function handler.
Definition: ESL_cia402Demo.c:1129
#define EC_SLV_APP_CIA_GETAXISVALUE(type_p, target_p, axisDesc_p)
Read CiA402 Axis value.
Definition: ESL_cia402Demo.c:80
#define OBD_QUICKSTOP_INDEX(x)
Definition: ecSlvApiDef_CiA402.h:358
#define OBD_SHUTDOWN_INDEX(x)
Definition: ecSlvApiDef_CiA402.h:359
void EC_SLV_APP_setObdValues(void *pCtxt_p)
Set default values for CiA 402 object dictionary.
Definition: ESL_cia402Demo.c:443
#define STOP_ON_CURRENT_LIMIT
Stop on current limit (options: 0x605E)
Definition: ecSlvApiDef_CiA402.h:332
#define SLOWDOWN_RAMP_NO_TRANSIT
Slow down on slow down ramp and stay in Quick Stop Active.
Definition: ecSlvApiDef_CiA402.h:341
#define STATUSWORD_TARGET_REACHED
Target reached.
Definition: ecSlvApiDef_CiA402.h:102
uint32_t EC_API_SLV_readDoubleWordEscRegister(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint16_t escAddress_p)
This is the function reads a byte from ESC Register.
Definition: ecSlvApiStub.c:1245
EC_API_SLV_EEsmState_t EC_API_SLV_getState(void)
This is the function to read the EtherCAT Slave state machine.
Definition: ecSlvApiStub.c:1024
uint32_t EC_API_SLV_preSeqOutputPDBuffer(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint32_t length_p, void **ppOutProcData_p)
Acquire process data output buffer (RX)
Definition: ecSlvApi_ProcDataStub.c:1349
uint32_t EC_API_SLV_postSeqInputPDBuffer(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint32_t length_p, void *pInProcData_p)
Return process data input buffer (TX)
Definition: ecSlvApi_ProcDataStub.c:1422
uint32_t EC_API_SLV_postSeqOutputPDBuffer(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint32_t length_p, void *pOutProcData_p)
Return process data output buffer (RX)
Definition: ecSlvApi_ProcDataStub.c:1484
uint32_t EC_API_SLV_preSeqInputPDBuffer(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint32_t length_p, void **ppInProcData_p)
Acquire process data input buffer (TX)
Definition: ecSlvApi_ProcDataStub.c:1273
void EC_API_SLV_CiA402_SM_clearErrorCode(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint8_t axisNo_p)
Inform the CiA402 state machine whether a state change finished or not.
Definition: ecSlvApi_CiA402Stub.c:402
void EC_API_SLV_CiA402_activateAxis(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint8_t axisNo_p, bool active_p)
Activate Axis. This function is required to inform the CiA402 state machine that the axis is switched...
Definition: ecSlvApi_CiA402Stub.c:356
uint16_t EC_API_SLV_CiA402_SM_getErrorCode(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint8_t axisNo_p)
Get Local Error value.
Definition: ecSlvApi_CiA402Stub.c:443
@ EC_API_eERR_INVALID
Definition: ecSlvApi_Error.h:73
@ EC_API_eERR_NULLPTR
Definition: ecSlvApi_Error.h:79
@ EC_API_eERR_NONE
Definition: ecSlvApi_Error.h:66
uint32_t EC_API_SLV_CoE_getObjectEntry(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint16_t index_p, uint8_t subIndex_p, EC_API_SLV_SCoE_ObjEntry_t **ppObjectEntry_p)
This function returns object entries from the Object Dictionary.
Definition: ecSlvApi_CoEStub.c:412
uint32_t EC_API_SLV_CoE_getObjectData(EC_API_SLV_SHandle_t *pEcSlaveApi_p, EC_API_SLV_SCoE_Object_t *pObject_p, uint32_t length_p, uint16_t *pData_p)
This function read the object data from the Object Dictionary.
Definition: ecSlvApi_CoEStub.c:138
uint32_t EC_API_SLV_CoE_setObjectData(EC_API_SLV_SHandle_t *pEcSlaveApi_p, EC_API_SLV_SCoE_Object_t *pObject_p, uint32_t length_p, uint16_t *pData_p)
This function writes Data to the Object Dictionary.
Definition: ecSlvApi_CoEStub.c:188
uint32_t EC_API_SLV_CoE_getObjectEntryData(EC_API_SLV_SHandle_t *pEcSlaveApi_p, EC_API_SLV_SCoE_ObjEntry_t *pObjectEntry_p, uint32_t length_p, uint16_t *pData_p)
This function reads Data from the Object Dictionary.
Definition: ecSlvApi_CoEStub.c:512
uint32_t EC_API_SLV_CoE_getObject(EC_API_SLV_SHandle_t *pEcSlaveApi_p, uint16_t index_p, EC_API_SLV_SCoE_Object_t **pObject_p)
This function returns an object of the Object Dictionary.
Definition: ecSlvApi_CoEStub.c:87
uint32_t EC_API_SLV_CoE_setObjectEntryData(EC_API_SLV_SHandle_t *pEcSlaveApi_p, EC_API_SLV_SCoE_ObjEntry_t *pObjectEntry_p, uint32_t length_p, uint16_t *pData_p)
This function writes Data to the Object Dictionary.
Definition: ecSlvApi_CoEStub.c:615
uint32_t EC_API_SLV_getInputProcDataLength(EC_API_SLV_SHandle_t *pEcSlaveApi_p)
Read the input process data length.
Definition: ecSlvApi_ProcDataStub.c:862
uint32_t EC_API_SLV_getOutputProcDataLength(EC_API_SLV_SHandle_t *pEcSlaveApi_p)
Read the output process data length.
Definition: ecSlvApi_ProcDataStub.c:900
enum EC_API_SLV_EEsmState EC_API_SLV_EEsmState_t
EC_STATE_T EtherCAT State Machine states.
@ EC_API_SLV_eESM_errState
Error Flag.
Definition: ecSlvApi.h:97
@ EC_API_SLV_eESM_op
Operational State.
Definition: ecSlvApi.h:96
@ EC_API_SLV_eESM_safeop
SafeOP State.
Definition: ecSlvApi.h:95
struct EC_API_SLV_SHandle EC_API_SLV_SHandle_t
EC_API_SLV_SHandle_t describes the EtherCAT Slave API.
Definition: ecSlvApi.h:157
enum EC_API_SLV_EUserRetCodeserRetCodes EC_API_SLV_EUserRetCodes_t
EC_RETCODE_T Error codes used during EtherCAT State Machine transitions.
struct EC_API_SLV_SCoE_ObjEntry EC_API_SLV_SCoE_ObjEntry_t
TSdoEntry describes an OBD Object Entry.
Definition: ecSlvApi.h:151
@ EC_USR_eRET_OK
no error occurred
Definition: ecSlvApi.h:83
@ EC_USR_eRET_ERROR
Unspecified error occurred.
Definition: ecSlvApi.h:84
struct EC_API_SLV_SCoE_Object EC_API_SLV_SCoE_Object_t
TSdo describes an Object Dictionary Object.
Definition: ecSlvApi.h:154
uint8_t id
Axis Identification.
Definition: ESL_cia402Demo.c:114
double positionActualValue
Actual position within control loop.
Definition: ESL_cia402Demo.c:73
uint32_t cycleTime
Motion controller cycletime in us.
Definition: ESL_cia402Demo.c:74
Data structure to handle an CiA 402 axis.
Definition: ESL_cia402Demo.c:65
uint16_t realPdoOutLen
Definition: ecSlvCiA402.h:204
uint8_t * pdRxBuffer
Definition: ecSlvCiA402.h:201
uint16_t pdoOutLen
Definition: ecSlvCiA402.h:199
uint8_t * pdTxBuffer
Definition: ecSlvCiA402.h:202
uint16_t realPdoInLen
Definition: ecSlvCiA402.h:205
uint16_t pdoInLen
Definition: ecSlvCiA402.h:200
EC_API_SLV_SHandle_t * ptEcSlvApi
Definition: ecSlvSimple.h:97
EC_SLV_APP_sCIA_axisData_t CiA402_axisData[AXES_NUMBER]
Definition: ecSlvCiA402.h:206
Definition: ecSlvSimple.h:56
EC_SLV_APP_sCIA_object_t statusWordIndex
Definition: ecSlvCiA402.h:80
uint32_t posLimitMin
Definition: ecSlvCiA402.h:151
EC_SLV_APP_sCIA_object_t targetTorqueIndex
Definition: ecSlvCiA402.h:102
EC_SLV_APP_sCIA_object_t targetVelocityIndex
Definition: ecSlvCiA402.h:112
EC_SLV_APP_sCIA_object_t faultReactionIndex
Definition: ecSlvCiA402.h:85
EC_SLV_APP_sCIA_object_t modesOfOperationDisplayIndex
Definition: ecSlvCiA402.h:87
EC_SLV_APP_sCIA_object_t targetPositionIndex
Definition: ecSlvCiA402.h:107
EC_SLV_APP_sCIA_object_t modesOfOperationIndex
Definition: ecSlvCiA402.h:86
EC_SLV_APP_sCIA_object_t velocityActualValueIndex
Definition: ecSlvCiA402.h:97
EC_SLV_APP_sCIA_object_t quickStopIndex
Definition: ecSlvCiA402.h:81
uint32_t posLimitMax
Definition: ecSlvCiA402.h:150
EC_SLV_APP_sCIA_objectEntry_t positionLimitMin
Definition: ecSlvCiA402.h:148
EC_SLV_APP_sCIA_object_t disableOperationIndex
Definition: ecSlvCiA402.h:83
EC_SLV_APP_sCIA_object_t controlWordIndex
Definition: ecSlvCiA402.h:79
EC_SLV_APP_sCIA_object_t supportedDriveModesIndex
Definition: ecSlvCiA402.h:145
EC_SLV_APP_sCIA_object_t torqueActualValueIndex
Definition: ecSlvCiA402.h:105
EC_SLV_APP_sCIA_object_t positionActualValueIndex
Definition: ecSlvCiA402.h:90
EC_SLV_APP_sCIA_objectEntry_t positionLimitMax
Definition: ecSlvCiA402.h:147
EC_SLV_APP_sCIA_object_t shutdownIndex
Definition: ecSlvCiA402.h:82
EC_API_SLV_SCoE_Object_t * pSdo
Definition: ecSlvCiA402.h:60
uint16_t objectIndex
Definition: ecSlvCiA402.h:59
EC_API_SLV_SCoE_ObjEntry_t * pObjetEntry
Definition: ecSlvCiA402.h:73
Definition: ecSlvCiA402.h:58