convert missing uint16_t CAN ids to CO_CANident_t
This commit is contained in:
parent
5e4f7b8742
commit
c7c100e111
10 changed files with 97 additions and 35 deletions
|
|
@ -28,6 +28,15 @@
|
|||
#error CO_CONFIG_HB_CONS_CALLBACK_CHANGE and CO_CONFIG_HB_CONS_CALLBACK_MULTI cannot be set simultaneously!
|
||||
#endif
|
||||
|
||||
#if ((CO_CONFIG_HB_CONS)&CO_CONFIG_FLAG_ALLOW_EXT_ID) != 0
|
||||
#if (((CO_CONFIG_CAN)&CO_CONFIG_FLAG_ALLOW_EXT_ID) == 0)
|
||||
#error CO_CONFIG_CAN must have CO_CONFIG_FLAG_ALLOW_EXT_ID enabled
|
||||
#endif
|
||||
#define CO_COB_ID_MASK CO_COB_EXT_MASK
|
||||
#else
|
||||
#define CO_COB_ID_MASK CO_COB_STD_MASK
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Read received message from CAN module.
|
||||
*
|
||||
|
|
@ -181,7 +190,7 @@ CO_HBconsumer_initEntry(CO_HBconsumer_t* HBcons, uint8_t idx, uint8_t nodeId, ui
|
|||
|
||||
/* Configure one monitored node */
|
||||
if (ret == CO_ERROR_NO) {
|
||||
uint16_t COB_ID;
|
||||
CO_CANident_t COB_ID;
|
||||
|
||||
CO_HBconsNode_t* monitoredNode = &HBcons->monitoredNodes[idx];
|
||||
monitoredNode->nodeId = nodeId;
|
||||
|
|
@ -195,7 +204,7 @@ CO_HBconsumer_initEntry(CO_HBconsumer_t* HBcons, uint8_t idx, uint8_t nodeId, ui
|
|||
|
||||
/* is channel used */
|
||||
if ((monitoredNode->nodeId != 0U) && (monitoredNode->time_us != 0U)) {
|
||||
COB_ID = monitoredNode->nodeId + (uint16_t)CO_CAN_ID_HEARTBEAT;
|
||||
COB_ID = (CO_CANident_t)(monitoredNode->nodeId + CO_CAN_ID_HEARTBEAT);
|
||||
monitoredNode->HBstate = CO_HBconsumer_UNKNOWN;
|
||||
} else {
|
||||
COB_ID = 0;
|
||||
|
|
@ -204,7 +213,7 @@ CO_HBconsumer_initEntry(CO_HBconsumer_t* HBcons, uint8_t idx, uint8_t nodeId, ui
|
|||
}
|
||||
|
||||
/* configure Heartbeat consumer (or disable) CAN reception */
|
||||
ret = CO_CANrxBufferInit(HBcons->CANdevRx, HBcons->CANdevRxIdxStart + idx, COB_ID, CO_COB_STD_MASK, false,
|
||||
ret = CO_CANrxBufferInit(HBcons->CANdevRx, HBcons->CANdevRxIdxStart + idx, COB_ID, CO_COB_ID_MASK, false,
|
||||
(void*)&HBcons->monitoredNodes[idx], CO_HBcons_receive);
|
||||
}
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,15 @@
|
|||
|
||||
#include "301/CO_NMT_Heartbeat.h"
|
||||
|
||||
#if ((CO_CONFIG_NMT)&CO_CONFIG_FLAG_ALLOW_EXT_ID) != 0
|
||||
#if (((CO_CONFIG_CAN)&CO_CONFIG_FLAG_ALLOW_EXT_ID) == 0)
|
||||
#error CO_CONFIG_CAN must have CO_CONFIG_FLAG_ALLOW_EXT_ID enabled
|
||||
#endif
|
||||
#define CO_COB_ID_MASK CO_COB_EXT_MASK
|
||||
#else
|
||||
#define CO_COB_ID_MASK CO_COB_STD_MASK
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Read received message from CAN module.
|
||||
*
|
||||
|
|
@ -126,7 +135,7 @@ CO_NMT_init(CO_NMT_t* NMT, OD_entry_t* OD_1017_ProducerHbTime, CO_EM_t* em, uint
|
|||
}
|
||||
|
||||
/* configure NMT CAN reception */
|
||||
ret = CO_CANrxBufferInit(NMT_CANdevRx, NMT_rxIdx & CO_COB_STD_MASK, CANidRxNMT, CO_COB_STD_MASK, false, (void*)NMT, CO_NMT_receive);
|
||||
ret = CO_CANrxBufferInit(NMT_CANdevRx, NMT_rxIdx, CANidRxNMT, CO_COB_ID_MASK, false, (void*)NMT, CO_NMT_receive);
|
||||
if (ret != CO_ERROR_NO) {
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,15 @@
|
|||
|
||||
#if ((CO_CONFIG_NODE_GUARDING)&CO_CONFIG_NODE_GUARDING_SLAVE_ENABLE) != 0
|
||||
|
||||
#if ((CO_CONFIG_NODE_GUARDING)&CO_CONFIG_FLAG_ALLOW_EXT_ID) != 0
|
||||
#if (((CO_CONFIG_CAN)&CO_CONFIG_FLAG_ALLOW_EXT_ID) == 0)
|
||||
#error CO_CONFIG_CAN must have CO_CONFIG_FLAG_ALLOW_EXT_ID enabled
|
||||
#endif
|
||||
#define CO_COB_ID_MASK CO_COB_EXT_MASK
|
||||
#else
|
||||
#define CO_COB_ID_MASK CO_COB_STD_MASK
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Read received message from CAN module.
|
||||
*
|
||||
|
|
@ -155,7 +164,8 @@ CO_nodeGuardingSlave_init(CO_nodeGuardingSlave_t* ngs, OD_entry_t* OD_100C_Guard
|
|||
}
|
||||
|
||||
/* configure CAN reception */
|
||||
ret = CO_CANrxBufferInit(CANdevRx, CANdevRxIdx, CANidNodeGuarding & CO_COB_STD_MASK, CO_COB_STD_MASK, true, (void*)ngs, CO_ngs_receive);
|
||||
ret = CO_CANrxBufferInit(CANdevRx, CANdevRxIdx, CANidNodeGuarding, CO_COB_ID_MASK, true, (void*)ngs,
|
||||
CO_ngs_receive);
|
||||
if (ret != CO_ERROR_NO) {
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -282,7 +292,8 @@ CO_nodeGuardingMaster_init(CO_nodeGuardingMaster_t* ngm, CO_EM_t* em, CO_CANmodu
|
|||
ngm->em = em;
|
||||
|
||||
/* configure CAN reception. One buffer will receive all messages from CAN-id 0x700 to 0x7FF. */
|
||||
ret = CO_CANrxBufferInit(CANdevRx, CANdevRxIdx, CO_CAN_ID_HEARTBEAT, CO_COB_STD_MASK ^ 0x7FU, false, (void*)ngm, CO_ngm_receive);
|
||||
ret = CO_CANrxBufferInit(CANdevRx, CANdevRxIdx, CO_CAN_ID_HEARTBEAT, CO_COB_ID_MASK ^ 0x7FU, false, (void*)ngm,
|
||||
CO_ngm_receive);
|
||||
if (ret != CO_ERROR_NO) {
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ CO_SDOserver_init(CO_SDOserver_t* SDO, OD_t* OD, OD_entry_t* OD_1200_SDOsrvPar,
|
|||
#endif
|
||||
|
||||
/* configure CAN identifiers and SDO server parameters if available */
|
||||
uint16_t CanId_ClientToServer, CanId_ServerToClient;
|
||||
CO_CANident_t CanId_ClientToServer, CanId_ServerToClient;
|
||||
|
||||
if (OD_1200_SDOsrvPar == NULL) {
|
||||
/* configure default SDO channel */
|
||||
|
|
@ -300,8 +300,8 @@ CO_SDOserver_init(CO_SDOserver_t* SDO, OD_t* OD, OD_entry_t* OD_1200_SDOsrvPar,
|
|||
return CO_ERROR_ILLEGAL_ARGUMENT;
|
||||
}
|
||||
|
||||
CanId_ClientToServer = CO_CAN_ID_SDO_CLI + nodeId;
|
||||
CanId_ServerToClient = CO_CAN_ID_SDO_SRV + nodeId;
|
||||
CanId_ClientToServer = (CO_CANident_t)(CO_CAN_ID_SDO_CLI + nodeId);
|
||||
CanId_ServerToClient = (CO_CANident_t)(CO_CAN_ID_SDO_SRV + nodeId);
|
||||
SDO->valid = true;
|
||||
} else {
|
||||
uint16_t OD_SDOsrvParIdx = OD_getIndex(OD_1200_SDOsrvPar);
|
||||
|
|
@ -312,8 +312,8 @@ CO_SDOserver_init(CO_SDOserver_t* SDO, OD_t* OD, OD_entry_t* OD_1200_SDOsrvPar,
|
|||
return CO_ERROR_ILLEGAL_ARGUMENT;
|
||||
}
|
||||
|
||||
CanId_ClientToServer = CO_CAN_ID_SDO_CLI + nodeId;
|
||||
CanId_ServerToClient = CO_CAN_ID_SDO_SRV + nodeId;
|
||||
CanId_ClientToServer = (CO_CANident_t)(CO_CAN_ID_SDO_CLI + nodeId);
|
||||
CanId_ServerToClient = (CO_CANident_t)(CO_CAN_ID_SDO_SRV + nodeId);
|
||||
SDO->valid = true;
|
||||
|
||||
(void)OD_set_u32(OD_1200_SDOsrvPar, 1, CanId_ClientToServer, true);
|
||||
|
|
|
|||
10
304/CO_GFC.c
10
304/CO_GFC.c
|
|
@ -23,6 +23,14 @@
|
|||
|
||||
#if ((CO_CONFIG_GFC)&CO_CONFIG_GFC_ENABLE) != 0
|
||||
|
||||
#if ((CO_CONFIG_GFC)&CO_CONFIG_FLAG_ALLOW_EXT_ID) != 0
|
||||
#if (((CO_CONFIG_CAN)&CO_CONFIG_FLAG_ALLOW_EXT_ID) == 0)
|
||||
#error CO_CONFIG_CAN must have CO_CONFIG_FLAG_ALLOW_EXT_ID enabled
|
||||
#endif
|
||||
#define CO_COB_ID_MASK CO_COB_EXT_MASK
|
||||
#else
|
||||
#define CO_COB_ID_MASK CO_COB_STD_MASK
|
||||
#endif
|
||||
/*
|
||||
* Custom function for reading or writing OD object.
|
||||
*
|
||||
|
|
@ -107,7 +115,7 @@ CO_GFC_init(CO_GFC_t* GFC, OD_entry_t* OD_1300_gfcParameter, CO_CANmodule_t* GFC
|
|||
#if ((CO_CONFIG_GFC)&CO_CONFIG_GFC_CONSUMER) != 0
|
||||
GFC->functSignalObjectSafe = NULL;
|
||||
GFC->pFunctSignalSafe = NULL;
|
||||
const CO_ReturnError_t r = CO_CANrxBufferInit(GFC_CANdevRx, GFC_rxIdx, CANidRxGFC & CO_COB_STD_MASK, CO_COB_STD_MASK, false,
|
||||
const CO_ReturnError_t r = CO_CANrxBufferInit(GFC_CANdevRx, GFC_rxIdx, CANidRxGFC, CO_COB_ID_MASK, false,
|
||||
(void*)GFC, CO_GFC_receive);
|
||||
if (r != CO_ERROR_NO) {
|
||||
return r;
|
||||
|
|
|
|||
|
|
@ -35,6 +35,15 @@
|
|||
#warning CO_CONFORMANCE_TEST_TOOL_ADAPTATION may be used only for conformance testing (because of CTT limitations)
|
||||
#endif
|
||||
|
||||
#if ((CO_CONFIG_SRDO)&CO_CONFIG_FLAG_ALLOW_EXT_ID) != 0
|
||||
#if (((CO_CONFIG_CAN)&CO_CONFIG_FLAG_ALLOW_EXT_ID) == 0)
|
||||
#error CO_CONFIG_CAN must have CO_CONFIG_FLAG_ALLOW_EXT_ID enabled
|
||||
#endif
|
||||
#define CO_COB_ID_MASK CO_COB_EXT_MASK
|
||||
#else
|
||||
#define CO_COB_ID_MASK CO_COB_STD_MASK
|
||||
#endif
|
||||
|
||||
/* values for informationDirection and configurationValid */
|
||||
#define CO_SRDO_INVALID (0U)
|
||||
#define CO_SRDO_TX (1U)
|
||||
|
|
@ -165,7 +174,7 @@ OD_read_SRDO_communicationParam(OD_stream_t* stream, void* buf, OD_size_t count,
|
|||
CO_SRDO_t* SRDO = stream->object;
|
||||
|
||||
uint32_t value = CO_getUint32(buf);
|
||||
uint16_t defaultCOB_ID = SRDO->defaultCOB_ID + ((uint16_t)(stream->subIndex) - 5U);
|
||||
CO_CANident_t defaultCOB_ID = (CO_CANident_t)(SRDO->defaultCOB_ID + (stream->subIndex - 5U));
|
||||
|
||||
/* If default COB ID is used, then OD entry does not contain $NodeId. Add it here. */
|
||||
if ((value == defaultCOB_ID) && (SRDO->nodeId <= 64U)) {
|
||||
|
|
@ -225,7 +234,7 @@ OD_write_SRDO_communicationParam(OD_stream_t* stream, const void* buf, OD_size_t
|
|||
} else if ((stream->subIndex == 5U) || (stream->subIndex == 6U)) { /* COB_ID */
|
||||
uint32_t value = CO_getUint32(buf);
|
||||
uint16_t index = (uint16_t)(stream->subIndex) - 5U;
|
||||
uint16_t defaultCOB_ID = SRDO->defaultCOB_ID + index;
|
||||
CO_CANident_t defaultCOB_ID = (CO_CANident_t)(SRDO->defaultCOB_ID + index);
|
||||
|
||||
/* check value range, the spec does not specify if COB-ID flags are allowed */
|
||||
if ((value < 0x101U) || (value > 0x180U) || ((value & 1U) == index)) {
|
||||
|
|
@ -601,7 +610,7 @@ CO_SRDO_config(CO_SRDO_t* SRDO, uint8_t SRDO_Index, CO_SRDOGuard_t* SRDOGuard, u
|
|||
/* Configure CAN tx buffers */
|
||||
if ((err == 0U) && configurationInProgress && (informationDirection == CO_SRDO_TX)) {
|
||||
/* Normal Configuration */
|
||||
SRDO->CANtxBuff[0] = CO_CANtxBufferInit(SRDO->CANdevTx[0], SRDO->CANdevTxIdx[0], (uint16_t)COB_ID1_normal,
|
||||
SRDO->CANtxBuff[0] = CO_CANtxBufferInit(SRDO->CANdevTx[0], SRDO->CANdevTxIdx[0], (CO_CANident_t)COB_ID1_normal,
|
||||
false, SRDO->dataLength, false);
|
||||
|
||||
if (SRDO->CANtxBuff[0] == NULL) {
|
||||
|
|
@ -609,8 +618,8 @@ CO_SRDO_config(CO_SRDO_t* SRDO, uint8_t SRDO_Index, CO_SRDOGuard_t* SRDOGuard, u
|
|||
}
|
||||
|
||||
/* Inverted Configuration */
|
||||
SRDO->CANtxBuff[1] = CO_CANtxBufferInit(SRDO->CANdevTx[1], SRDO->CANdevTxIdx[1], (uint16_t)COB_ID2_inverted,
|
||||
false, SRDO->dataLength, false);
|
||||
SRDO->CANtxBuff[1] = CO_CANtxBufferInit(SRDO->CANdevTx[1], SRDO->CANdevTxIdx[1],
|
||||
(CO_CANident_t)COB_ID2_inverted, false, SRDO->dataLength, false);
|
||||
|
||||
if (SRDO->CANtxBuff[1] == NULL) {
|
||||
err = ERR_INFO(0x1301UL + SRDO_Index, 6, 10);
|
||||
|
|
@ -620,18 +629,16 @@ CO_SRDO_config(CO_SRDO_t* SRDO, uint8_t SRDO_Index, CO_SRDOGuard_t* SRDOGuard, u
|
|||
/* Configure CAN rx buffers */
|
||||
if ((err == 0U) && configurationInProgress && (informationDirection == CO_SRDO_RX)) {
|
||||
/* Normal Configuration */
|
||||
ret = CO_CANrxBufferInit(SRDO->CANdevRx[0], SRDO->CANdevRxIdx[0],
|
||||
(CO_CANident_t)(COB_ID1_normal & CO_COB_STD_MASK), CO_COB_STD_MASK, false, (void*)SRDO,
|
||||
CO_SRDO_receive_normal);
|
||||
ret = CO_CANrxBufferInit(SRDO->CANdevRx[0], SRDO->CANdevRxIdx[0], (CO_CANident_t)COB_ID1_normal, CO_COB_ID_MASK,
|
||||
false, (void*)SRDO, CO_SRDO_receive_normal);
|
||||
|
||||
if (ret != CO_ERROR_NO) {
|
||||
err = ERR_INFO(0x1301UL + SRDO_Index, 5, 11);
|
||||
}
|
||||
|
||||
/* Inverted Configuration */
|
||||
ret = CO_CANrxBufferInit(SRDO->CANdevRx[1], SRDO->CANdevRxIdx[1],
|
||||
(CO_CANident_t)(COB_ID2_inverted & CO_COB_STD_MASK), CO_COB_STD_MASK, false,
|
||||
(void*)SRDO, CO_SRDO_receive_inverted);
|
||||
ret = CO_CANrxBufferInit(SRDO->CANdevRx[1], SRDO->CANdevRxIdx[1], (CO_CANident_t)COB_ID2_inverted,
|
||||
CO_COB_ID_MASK, false, (void*)SRDO, CO_SRDO_receive_inverted);
|
||||
|
||||
if (ret != CO_ERROR_NO) {
|
||||
err = ERR_INFO(0x1301UL + SRDO_Index, 6, 11);
|
||||
|
|
@ -659,7 +666,7 @@ CO_SRDO_config(CO_SRDO_t* SRDO, uint8_t SRDO_Index, CO_SRDOGuard_t* SRDOGuard, u
|
|||
|
||||
CO_ReturnError_t
|
||||
CO_SRDO_init(CO_SRDO_t* SRDO, uint8_t SRDO_Index, CO_SRDOGuard_t* SRDOGuard, OD_t* OD, CO_EM_t* em, uint8_t nodeId,
|
||||
uint16_t defaultCOB_ID, OD_entry_t* OD_130x_SRDOCommPar, OD_entry_t* OD_138x_SRDOMapPar,
|
||||
CO_CANident_t defaultCOB_ID, OD_entry_t* OD_130x_SRDOCommPar, OD_entry_t* OD_138x_SRDOMapPar,
|
||||
CO_CANmodule_t* CANdevRxNormal, CO_CANmodule_t* CANdevRxInverted, uint16_t CANdevRxIdxNormal,
|
||||
uint16_t CANdevRxIdxInverted, CO_CANmodule_t* CANdevTxNormal, CO_CANmodule_t* CANdevTxInverted,
|
||||
uint16_t CANdevTxIdxNormal, uint16_t CANdevTxIdxInverted, uint32_t* errInfo) {
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ typedef struct {
|
|||
CO_SRDOGuard_t* SRDOGuard; /**< From CO_SRDO_init() */
|
||||
OD_t* OD; /**< From CO_SRDO_init() */
|
||||
CO_EM_t* em; /**< From CO_SRDO_init() */
|
||||
uint16_t defaultCOB_ID; /**< From CO_SRDO_init() */
|
||||
CO_CANident_t defaultCOB_ID; /**< From CO_SRDO_init() */
|
||||
uint8_t nodeId; /**< From CO_SRDO_init() */
|
||||
CO_CANmodule_t* CANdevTx[2]; /**< From CO_SRDO_init() */
|
||||
uint16_t CANdevTxIdx[2]; /**< From CO_SRDO_init() */
|
||||
|
|
@ -215,7 +215,7 @@ CO_ReturnError_t CO_SRDOGuard_init(CO_SRDOGuard_t* SRDOGuard, OD_entry_t* OD_13F
|
|||
* @return #CO_ReturnError_t: CO_ERROR_NO, CO_ERROR_ILLEGAL_ARGUMENT or CO_ERROR_OD_PARAMETERS.
|
||||
*/
|
||||
CO_ReturnError_t CO_SRDO_init(CO_SRDO_t* SRDO, uint8_t SRDO_Index, CO_SRDOGuard_t* SRDOGuard, OD_t* OD, CO_EM_t* em,
|
||||
uint8_t nodeId, uint16_t defaultCOB_ID, OD_entry_t* OD_130x_SRDOCommPar,
|
||||
uint8_t nodeId, CO_CANident_t defaultCOB_ID, OD_entry_t* OD_130x_SRDOCommPar,
|
||||
OD_entry_t* OD_138x_SRDOMapPar, CO_CANmodule_t* CANdevRxNormal,
|
||||
CO_CANmodule_t* CANdevRxInverted, uint16_t CANdevRxIdxNormal,
|
||||
uint16_t CANdevRxIdxInverted, CO_CANmodule_t* CANdevTxNormal,
|
||||
|
|
|
|||
|
|
@ -25,6 +25,15 @@
|
|||
|
||||
#if ((CO_CONFIG_LSS)&CO_CONFIG_LSS_MASTER) != 0
|
||||
|
||||
#if ((CO_CONFIG_LSS)&CO_CONFIG_FLAG_ALLOW_EXT_ID) != 0
|
||||
#if (((CO_CONFIG_CAN)&CO_CONFIG_FLAG_ALLOW_EXT_ID) == 0)
|
||||
#error CO_CONFIG_CAN must have CO_CONFIG_FLAG_ALLOW_EXT_ID enabled
|
||||
#endif
|
||||
#define CO_COB_ID_MASK CO_COB_EXT_MASK
|
||||
#else
|
||||
#define CO_COB_ID_MASK CO_COB_STD_MASK
|
||||
#endif
|
||||
|
||||
/*
|
||||
* @defgroup CO_LSSmaster_state_t
|
||||
* @{
|
||||
|
|
@ -136,8 +145,8 @@ CO_LSSmaster_init(CO_LSSmaster_t* LSSmaster, uint16_t timeout_ms, CO_CANmodule_t
|
|||
#endif
|
||||
|
||||
/* configure LSS CAN Slave response message reception */
|
||||
ret = CO_CANrxBufferInit(CANdevRx, CANdevRxIdx, CANidLssSlave & CO_COB_STD_MASK, CO_COB_STD_MASK, false,
|
||||
(void*)LSSmaster, CO_LSSmaster_receive);
|
||||
ret = CO_CANrxBufferInit(CANdevRx, CANdevRxIdx, CANidLssSlave, CO_COB_ID_MASK, false, (void*)LSSmaster,
|
||||
CO_LSSmaster_receive);
|
||||
|
||||
/* configure LSS CAN Master message transmission */
|
||||
LSSmaster->CANdevTx = CANdevTx;
|
||||
|
|
|
|||
|
|
@ -26,6 +26,15 @@
|
|||
|
||||
#if ((CO_CONFIG_LSS)&CO_CONFIG_LSS_SLAVE) != 0
|
||||
|
||||
#if ((CO_CONFIG_LSS)&CO_CONFIG_FLAG_ALLOW_EXT_ID) != 0
|
||||
#if (((CO_CONFIG_CAN)&CO_CONFIG_FLAG_ALLOW_EXT_ID) == 0)
|
||||
#error CO_CONFIG_CAN must have CO_CONFIG_FLAG_ALLOW_EXT_ID enabled
|
||||
#endif
|
||||
#define CO_COB_ID_MASK CO_COB_EXT_MASK
|
||||
#else
|
||||
#define CO_COB_ID_MASK CO_COB_STD_MASK
|
||||
#endif
|
||||
|
||||
/* 'bit' must be unsigned or additional range check must be added: bit>=CO_LSS_FASTSCAN_BIT0 */
|
||||
#define CO_LSS_FASTSCAN_BITCHECK_VALID(bit) ((bit <= CO_LSS_FASTSCAN_BIT31) || (bit == CO_LSS_FASTSCAN_CONFIRM))
|
||||
/* 'index' must be unsigned or additional range check must be added: index>=CO_LSS_FASTSCAN_VENDOR_ID */
|
||||
|
|
@ -206,7 +215,7 @@ CO_LSSslave_init(CO_LSSslave_t* LSSslave, CO_LSS_address_t* lssAddress, uint16_t
|
|||
CO_FLAG_CLEAR(LSSslave->sendResponse);
|
||||
|
||||
/* configure LSS CAN Master message reception */
|
||||
ret = CO_CANrxBufferInit(CANdevRx, CANdevRxIdx, CANidLssMaster & CO_COB_STD_MASK, CO_COB_STD_MASK, false, (void*)LSSslave, CO_LSSslave_receive);
|
||||
ret = CO_CANrxBufferInit(CANdevRx, CANdevRxIdx, CANidLssMaster, CO_COB_ID_MASK, false, (void*)LSSslave, CO_LSSslave_receive);
|
||||
|
||||
/* configure LSS CAN Slave response message transmission */
|
||||
LSSslave->CANdevTx = CANdevTx;
|
||||
|
|
|
|||
12
CANopen.c
12
CANopen.c
|
|
@ -1198,14 +1198,14 @@ CO_CANopenInitPDO(CO_t* co, CO_EM_t* em, OD_t* od, uint8_t nodeId, uint32_t* err
|
|||
OD_entry_t* RPDOmap = OD_GET(H1600, OD_H1600_RXPDO_1_MAPPING);
|
||||
for (uint16_t i = 0; i < CO_GET_CNT(RPDO); i++) {
|
||||
CO_ReturnError_t err;
|
||||
uint16_t preDefinedCanId = 0;
|
||||
CO_CANident_t preDefinedCanId = 0;
|
||||
if (i < CO_RPDO_DEFAULT_CANID_COUNT) {
|
||||
#if CO_RPDO_DEFAULT_CANID_COUNT <= 4
|
||||
preDefinedCanId = (uint16_t)((CO_CAN_ID_RPDO_1 + (i * 0x100U)) + nodeId);
|
||||
preDefinedCanId = (CO_CANident_t)((CO_CAN_ID_RPDO_1 + (i * 0x100U)) + nodeId);
|
||||
#else
|
||||
uint16_t pdoOffset = i % 4;
|
||||
uint16_t nodeIdOffset = i / 4;
|
||||
preDefinedCanId = (CO_CAN_ID_RPDO_1 + pdoOffset * 0x100) + nodeId + nodeIdOffset;
|
||||
preDefinedCanId = (CO_CANident_t)((CO_CAN_ID_RPDO_1 + pdoOffset * 0x100) + nodeId + nodeIdOffset);
|
||||
#endif
|
||||
}
|
||||
err = CO_RPDO_init(&co->RPDO[i], od, em,
|
||||
|
|
@ -1228,14 +1228,14 @@ CO_CANopenInitPDO(CO_t* co, CO_EM_t* em, OD_t* od, uint8_t nodeId, uint32_t* err
|
|||
OD_entry_t* TPDOmap = OD_GET(H1A00, OD_H1A00_TXPDO_1_MAPPING);
|
||||
for (uint16_t i = 0; i < CO_GET_CNT(TPDO); i++) {
|
||||
CO_ReturnError_t err;
|
||||
uint16_t preDefinedCanId = 0;
|
||||
CO_CANident_t preDefinedCanId = 0;
|
||||
if (i < CO_TPDO_DEFAULT_CANID_COUNT) {
|
||||
#if CO_TPDO_DEFAULT_CANID_COUNT <= 4
|
||||
preDefinedCanId = (uint16_t)((CO_CAN_ID_TPDO_1 + (i * 0x100U)) + nodeId);
|
||||
preDefinedCanId = (CO_CANident_t)((CO_CAN_ID_TPDO_1 + (i * 0x100U)) + nodeId);
|
||||
#else
|
||||
uint16_t pdoOffset = i % 4;
|
||||
uint16_t nodeIdOffset = i / 4;
|
||||
preDefinedCanId = (CO_CAN_ID_TPDO_1 + pdoOffset * 0x100) + nodeId + nodeIdOffset;
|
||||
preDefinedCanId = (CO_CANident_t)((CO_CAN_ID_TPDO_1 + pdoOffset * 0x100) + nodeId + nodeIdOffset);
|
||||
#endif
|
||||
}
|
||||
err = CO_TPDO_init(&co->TPDO[i], od, em,
|
||||
|
|
|
|||
Loading…
Reference in a new issue