1
0
Fork 0

static analysis: enumerator 'CO_CAN_ID_EMERGENCY' reuses the constant value '128' previously used by enumerator 'CO_CAN_ID_SYNC'

refactoring changed enum with define
This commit is contained in:
temi54c1l8 2024-06-12 14:26:51 +02:00
parent 691728f71a
commit 686ab04ee9
4 changed files with 34 additions and 33 deletions

View file

@ -138,7 +138,7 @@ static ODR_t OD_read_1014_default(OD_stream_t *stream, void *buf,
CO_EM_t *em = (CO_EM_t *)stream->object;
uint32_t COB_IDEmergency32 = em->producerEnabled ? 0U : 0x80000000U;
COB_IDEmergency32 |= (uint32_t)CO_CAN_ID_EMERGENCY + em->nodeId;
COB_IDEmergency32 |= CO_CAN_ID_EMERGENCY + em->nodeId;
(void)CO_setUint32(buf, COB_IDEmergency32);
*countRead = sizeof(uint32_t);
@ -441,7 +441,7 @@ CO_ReturnError_t CO_EM_init(CO_EM_t *em,
* to add nodeId of this node to the stored value. */
if (producerCanId == CO_CAN_ID_EMERGENCY) producerCanId += nodeId;
#else
uint32_t producerCanId = (uint32_t)CO_CAN_ID_EMERGENCY + nodeId;
uint32_t producerCanId = CO_CAN_ID_EMERGENCY + nodeId;
em->producerEnabled = (COB_IDEmergency32 & 0x80000000U) == 0U;
em->OD_1014_extension.object = em;

View file

@ -352,8 +352,8 @@ CO_ReturnError_t CO_SDOserver_init(CO_SDOserver_t *SDO,
/* configure default SDO channel */
if ((nodeId < 1U) || (nodeId > 127U)) { return CO_ERROR_ILLEGAL_ARGUMENT; }
CanId_ClientToServer = (uint16_t)CO_CAN_ID_SDO_CLI + nodeId;
CanId_ServerToClient = (uint16_t)CO_CAN_ID_SDO_SRV + nodeId;
CanId_ClientToServer = CO_CAN_ID_SDO_CLI + nodeId;
CanId_ServerToClient = CO_CAN_ID_SDO_SRV + nodeId;
SDO->valid = true;
}
else {
@ -365,8 +365,8 @@ CO_ReturnError_t CO_SDOserver_init(CO_SDOserver_t *SDO,
return CO_ERROR_ILLEGAL_ARGUMENT;
}
CanId_ClientToServer = (uint16_t)CO_CAN_ID_SDO_CLI + nodeId;
CanId_ServerToClient = (uint16_t)CO_CAN_ID_SDO_SRV + nodeId;
CanId_ClientToServer = CO_CAN_ID_SDO_CLI + nodeId;
CanId_ServerToClient = CO_CAN_ID_SDO_SRV + nodeId;
SDO->valid = true;
(void)OD_set_u32(OD_1200_SDOsrvPar, 1, CanId_ClientToServer, true);

View file

@ -469,34 +469,35 @@ typedef struct {
/**
* Default CANopen identifiers.
* @defgroup CO_Default_CAN_ID_t Default CANopen identifiers
* @{
*
* Default CANopen identifiers for CANopen communication objects. Same as
* 11-bit addresses of CAN messages. These are default identifiers and
* can be changed in CANopen. Especially PDO identifiers are configured
* in PDO linking phase of the CANopen network configuration.
*/
typedef enum {
CO_CAN_ID_NMT_SERVICE = 0x000U, /**< 0x000, Network management */
CO_CAN_ID_GFC = 0x001U, /**< 0x001, Global fail-safe command */
CO_CAN_ID_SYNC = 0x080U, /**< 0x080, Synchronous message */
CO_CAN_ID_EMERGENCY = 0x080U, /**< 0x080, Emergency messages (+nodeID) */
CO_CAN_ID_TIME = 0x100U, /**< 0x100, Time message */
CO_CAN_ID_SRDO_1 = 0x0FFU, /**< 0x0FF, Default SRDO1 (+2*nodeID) */
CO_CAN_ID_TPDO_1 = 0x180U, /**< 0x180, Default TPDO1 (+nodeID) */
CO_CAN_ID_RPDO_1 = 0x200U, /**< 0x200, Default RPDO1 (+nodeID) */
CO_CAN_ID_TPDO_2 = 0x280U, /**< 0x280, Default TPDO2 (+nodeID) */
CO_CAN_ID_RPDO_2 = 0x300U, /**< 0x300, Default RPDO2 (+nodeID) */
CO_CAN_ID_TPDO_3 = 0x380U, /**< 0x380, Default TPDO3 (+nodeID) */
CO_CAN_ID_RPDO_3 = 0x400U, /**< 0x400, Default RPDO3 (+nodeID) */
CO_CAN_ID_TPDO_4 = 0x480U, /**< 0x480, Default TPDO4 (+nodeID) */
CO_CAN_ID_RPDO_4 = 0x500U, /**< 0x500, Default RPDO5 (+nodeID) */
CO_CAN_ID_SDO_SRV = 0x580U, /**< 0x580, SDO response from server (+nodeID) */
CO_CAN_ID_SDO_CLI = 0x600U, /**< 0x600, SDO request from client (+nodeID) */
CO_CAN_ID_HEARTBEAT = 0x700U, /**< 0x700, Heartbeat message */
CO_CAN_ID_LSS_SLV = 0x7E4U, /**< 0x7E4, LSS response from slave */
CO_CAN_ID_LSS_MST = 0x7E5U /**< 0x7E5, LSS request from master */
} CO_Default_CAN_ID_t;
#define CO_CAN_ID_NMT_SERVICE 0x000U /**< 0x000 Network management */
#define CO_CAN_ID_GFC 0x001U /**< 0x001 Global fail-safe command */
#define CO_CAN_ID_SYNC 0x080U /**< 0x080 Synchronous message */
#define CO_CAN_ID_EMERGENCY 0x080U /**< 0x080 Emergency messages (+nodeID) */
#define CO_CAN_ID_TIME 0x100U /**< 0x100 Time message */
#define CO_CAN_ID_SRDO_1 0x0FFU /**< 0x0FF Default SRDO1 (+2*nodeID) */
#define CO_CAN_ID_TPDO_1 0x180U /**< 0x180 Default TPDO1 (+nodeID) */
#define CO_CAN_ID_RPDO_1 0x200U /**< 0x200 Default RPDO1 (+nodeID) */
#define CO_CAN_ID_TPDO_2 0x280U /**< 0x280 Default TPDO2 (+nodeID) */
#define CO_CAN_ID_RPDO_2 0x300U /**< 0x300 Default RPDO2 (+nodeID) */
#define CO_CAN_ID_TPDO_3 0x380U /**< 0x380 Default TPDO3 (+nodeID) */
#define CO_CAN_ID_RPDO_3 0x400U /**< 0x400 Default RPDO3 (+nodeID) */
#define CO_CAN_ID_TPDO_4 0x480U /**< 0x480 Default TPDO4 (+nodeID) */
#define CO_CAN_ID_RPDO_4 0x500U /**< 0x500 Default RPDO5 (+nodeID) */
#define CO_CAN_ID_SDO_SRV 0x580U /**< 0x580 SDO response from server (+nodeID) */
#define CO_CAN_ID_SDO_CLI 0x600U /**< 0x600 SDO request from client (+nodeID) */
#define CO_CAN_ID_HEARTBEAT 0x700U /**< 0x700 Heartbeat message */
#define CO_CAN_ID_LSS_SLV 0x7E4U /**< 0x7E4 LSS response from slave */
#define CO_CAN_ID_LSS_MST 0x7E5U /**< 0x7E5 LSS request from master */
/** @} */ /* CO_Default_CAN_ID_t */
/**

View file

@ -1058,7 +1058,7 @@ CO_ReturnError_t CO_CANopenInit(CO_t *co,
#endif
co->CANmodule,
CO_GET_CO(TX_IDX_HB_PROD),
(uint16_t)CO_CAN_ID_HEARTBEAT + nodeId,
CO_CAN_ID_HEARTBEAT + nodeId,
errInfo);
if (err != CO_ERROR_NO) { return err; }
}
@ -1082,7 +1082,7 @@ CO_ReturnError_t CO_CANopenInit(CO_t *co,
OD_GET(H100C, OD_H100C_GUARD_TIME),
OD_GET(H100D, OD_H100D_LIFETIME_FACTOR),
em,
(uint16_t)CO_CAN_ID_HEARTBEAT + nodeId,
CO_CAN_ID_HEARTBEAT + nodeId,
co->CANmodule,
CO_GET_CO(RX_IDX_NG_SLV),
co->CANmodule,
@ -1258,7 +1258,7 @@ CO_ReturnError_t CO_CANopenInitPDO(CO_t *co,
uint16_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_CAN_ID_RPDO_1 + (i * 0x100U)) + nodeId;
#else
uint16_t pdoOffset = i % 4;
uint16_t nodeIdOffset = i / 4;
@ -1292,7 +1292,7 @@ CO_ReturnError_t CO_CANopenInitPDO(CO_t *co,
uint16_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_CAN_ID_TPDO_1 + (i * 0x100U)) + nodeId;
#else
uint16_t pdoOffset = i % 4;
uint16_t nodeIdOffset = i / 4;
@ -1374,7 +1374,7 @@ CO_ReturnError_t CO_CANopenInitSRDO(CO_t *co,
od,
em,
nodeId,
((i == 0U) ? (uint16_t)CO_CAN_ID_SRDO_1 : 0U),
((i == 0U) ? CO_CAN_ID_SRDO_1 : 0U),
SRDOcomm++,
SRDOmap++,
OD_GET(H13FE, OD_H13FE_SRDO_VALID),