1
0
Fork 0

fixed some warnings

fixed some small bugs
This commit is contained in:
gotocoffee1 2021-04-27 16:24:00 +02:00
parent b76002ae2a
commit 591a91be29
10 changed files with 88 additions and 86 deletions

View file

@ -259,7 +259,7 @@ static ODR_t OD_read_statusBits(OD_stream_t *stream, void *buf,
CO_EM_t *em = (CO_EM_t *)stream->object;
/* get MAX(errorStatusBitsSize, bufSize, ODsizeIndication) */
size_t countReadLocal = CO_CONFIG_EM_ERR_STATUS_BITS_COUNT / 8;
OD_size_t countReadLocal = CO_CONFIG_EM_ERR_STATUS_BITS_COUNT / 8;
if (countReadLocal > count) {
countReadLocal = count;
}
@ -288,7 +288,7 @@ static ODR_t OD_write_statusBits(OD_stream_t *stream, const void *buf,
CO_EM_t *em = (CO_EM_t *)stream->object;
/* get MAX(errorStatusBitsSize, bufSize, ODsizeIndication) */
size_t countWrite = CO_CONFIG_EM_ERR_STATUS_BITS_COUNT / 8;
OD_size_t countWrite = CO_CONFIG_EM_ERR_STATUS_BITS_COUNT / 8;
if (countWrite > count) {
countWrite = count;
}

View file

@ -315,7 +315,7 @@ CO_NMT_reset_cmd_t CO_NMT_process(CO_NMT_t *NMT,
* @return @ref CO_NMT_internalState_t
*/
static inline CO_NMT_internalState_t CO_NMT_getInternalState(CO_NMT_t *NMT) {
return (NMT == NULL) ? CO_NMT_INITIALIZING : NMT->operatingState;
return (NMT == NULL) ? CO_NMT_INITIALIZING : (CO_NMT_internalState_t)NMT->operatingState;
}
@ -330,7 +330,7 @@ static inline CO_NMT_internalState_t CO_NMT_getInternalState(CO_NMT_t *NMT) {
static inline void CO_NMT_sendInternalCommand(CO_NMT_t *NMT,
CO_NMT_command_t command)
{
if (NMT != NULL) NMT->internalCommand = command;
if (NMT != NULL) NMT->internalCommand = (uint8_t)command;
}

View file

@ -411,8 +411,8 @@ CO_SDO_return_t CO_SDOclient_setup(CO_SDOclient_t *SDO_C,
if (ret != CO_ERROR_NO || SDO_C->CANtxBuff == NULL) {
return CO_SDO_RT_wrongArguments;
SDO_C->valid = false;
return CO_SDO_RT_wrongArguments;
}
return CO_SDO_RT_ok_communicationEnd;
@ -599,11 +599,11 @@ CO_SDO_return_t CO_SDOclientDownload(CO_SDOclient_t *SDO_C,
buf[count++] = 0;
SDO_C->sizeTran++;
}
SDO_C->OD_IO.stream.dataLength = SDO_C->sizeTran;
SDO_C->OD_IO.stream.dataLength = (OD_size_t)SDO_C->sizeTran;
}
/* Indicate OD data size, if necessary. Used for EOF check. */
else if (sizeInOd == 0) {
SDO_C->OD_IO.stream.dataLength = SDO_C->sizeTran;
SDO_C->OD_IO.stream.dataLength = (OD_size_t)SDO_C->sizeTran;
}
/* Verify if size of data downloaded matches data size in OD. */
else if (SDO_C->sizeTran != sizeInOd) {
@ -619,7 +619,7 @@ CO_SDO_return_t CO_SDOclientDownload(CO_SDOclient_t *SDO_C,
/* write data to Object Dictionary */
if (lock) { CO_LOCK_OD(SDO_C->CANdevTx); }
ODR_t odRet = SDO_C->OD_IO.write(&SDO_C->OD_IO.stream, buf,
count, &countWritten);
(OD_size_t)count, &countWritten);
if (lock) { CO_UNLOCK_OD(SDO_C->CANdevTx); }
/* verify for errors in write */
@ -910,7 +910,7 @@ CO_SDO_return_t CO_SDOclientDownload(CO_SDOclient_t *SDO_C,
#if (CO_CONFIG_SDO_CLI) & CO_CONFIG_SDO_CLI_SEGMENTED
/* segmented transfer, indicate data size */
if (SDO_C->sizeInd > 0) {
uint32_t size = CO_SWAP_32(SDO_C->sizeInd);
uint32_t size = CO_SWAP_32((uint32_t)SDO_C->sizeInd);
SDO_C->CANtxBuff->data[0] |= 0x01;
memcpy(&SDO_C->CANtxBuff->data[4], &size, sizeof(size));
}
@ -946,7 +946,7 @@ CO_SDO_return_t CO_SDOclientDownload(CO_SDOclient_t *SDO_C,
}
/* SDO command specifier */
SDO_C->CANtxBuff->data[0] = SDO_C->toggle | ((7 - count) << 1);
SDO_C->CANtxBuff->data[0] = (uint8_t)(SDO_C->toggle | ((7 - count) << 1));
/* is end of transfer? Verify also sizeTran */
if (CO_fifo_getOccupied(&SDO_C->bufFifo) == 0 && !bufferPartial) {
@ -976,7 +976,7 @@ CO_SDO_return_t CO_SDOclientDownload(CO_SDOclient_t *SDO_C,
/* indicate data size */
if (SDO_C->sizeInd > 0) {
uint32_t size = CO_SWAP_32(SDO_C->sizeInd);
uint32_t size = CO_SWAP_32((uint32_t)SDO_C->sizeInd);
SDO_C->CANtxBuff->data[0] |= 0x02;
memcpy(&SDO_C->CANtxBuff->data[4], &size, sizeof(size));
}
@ -998,7 +998,7 @@ CO_SDO_return_t CO_SDOclientDownload(CO_SDOclient_t *SDO_C,
/* get up to 7 data bytes */
count = CO_fifo_altRead(&SDO_C->bufFifo,
&SDO_C->CANtxBuff->data[1], 7);
SDO_C->block_noData = 7 - count;
SDO_C->block_noData = (uint8_t)(7 - count);
/* verify if sizeTran is too large */
SDO_C->sizeTran += count;
@ -1204,7 +1204,7 @@ CO_SDO_return_t CO_SDOclientUpload(CO_SDOclient_t *SDO_C,
* use maximum SDO client buffer size. Prepare temp buffer. */
OD_size_t countData = SDO_C->OD_IO.stream.dataLength;
OD_size_t countBuf = (countData > 0 && countData <= countFifo)
? countData : countFifo;
? countData : (OD_size_t)countFifo;
OD_size_t countRd = 0;
uint8_t buf[CO_CONFIG_SDO_CLI_BUFFER_SIZE + 1];
bool_t lock = OD_mappable(&SDO_C->OD_IO.stream);
@ -1225,14 +1225,14 @@ CO_SDO_return_t CO_SDOclientUpload(CO_SDOclient_t *SDO_C,
&& (SDO_C->OD_IO.stream.attribute & ODA_STR) != 0
) {
buf[countRd] = 0; /* (buf is one byte larger) */
OD_size_t countStr = strlen((char *)buf);
OD_size_t countStr = (OD_size_t)strlen((char *)buf);
if (countStr == 0) countStr = 1; /* no zero length */
if (countStr < countRd) {
/* string terminator found, finish read, shorten data */
countRd = countStr;
odRet = ODR_OK;
SDO_C->OD_IO.stream.dataLength =
SDO_C->sizeTran + countRd;
(OD_size_t)SDO_C->sizeTran + countRd;
}
}

View file

@ -339,7 +339,6 @@ CO_ReturnError_t CO_SDOserver_init(CO_SDOserver_t *SDO,
/* configure CAN identifiers and SDO server parameters if available */
uint16_t CanId_ClientToServer, CanId_ServerToClient;
uint16_t OD_SDOsrvParIdx = OD_getIndex(OD_1200_SDOsrvPar);
if (OD_1200_SDOsrvPar == NULL) {
/* configure default SDO channel */
@ -349,60 +348,63 @@ CO_ReturnError_t CO_SDOserver_init(CO_SDOserver_t *SDO,
CanId_ServerToClient = CO_CAN_ID_SDO_SRV + nodeId;
SDO->valid = true;
}
else if (OD_SDOsrvParIdx == OD_H1200_SDO_SERVER_1_PARAM) {
/* configure default SDO channel and SDO server parameters for it */
if (nodeId < 1 || nodeId > 127) return CO_ERROR_ILLEGAL_ARGUMENT;
else {
uint16_t OD_SDOsrvParIdx = OD_getIndex(OD_1200_SDOsrvPar);
if (OD_SDOsrvParIdx == OD_H1200_SDO_SERVER_1_PARAM) {
/* configure default SDO channel and SDO server parameters for it */
if (nodeId < 1 || nodeId > 127) return CO_ERROR_ILLEGAL_ARGUMENT;
CanId_ClientToServer = CO_CAN_ID_SDO_CLI + nodeId;
CanId_ServerToClient = CO_CAN_ID_SDO_SRV + nodeId;
SDO->valid = true;
CanId_ClientToServer = CO_CAN_ID_SDO_CLI + nodeId;
CanId_ServerToClient = CO_CAN_ID_SDO_SRV + nodeId;
SDO->valid = true;
OD_set_u32(OD_1200_SDOsrvPar, 1, CanId_ClientToServer, true);
OD_set_u32(OD_1200_SDOsrvPar, 2, CanId_ServerToClient, true);
}
else if (OD_SDOsrvParIdx > OD_H1200_SDO_SERVER_1_PARAM
&& OD_SDOsrvParIdx <= (OD_H1200_SDO_SERVER_1_PARAM + 0x7F)
) {
/* configure additional SDO channel and SDO server parameters for it */
uint8_t maxSubIndex;
uint32_t COB_IDClientToServer32, COB_IDServerToClient32;
/* get and verify parameters from Object Dictionary (initial values) */
ODR_t odRet0 = OD_get_u8(OD_1200_SDOsrvPar, 0, &maxSubIndex, true);
ODR_t odRet1 = OD_get_u32(OD_1200_SDOsrvPar, 1,
&COB_IDClientToServer32, true);
ODR_t odRet2 = OD_get_u32(OD_1200_SDOsrvPar, 2,
&COB_IDServerToClient32, true);
if (odRet0 != ODR_OK || (maxSubIndex != 2 && maxSubIndex != 3)
|| odRet1 != ODR_OK || odRet2 != ODR_OK
OD_set_u32(OD_1200_SDOsrvPar, 1, CanId_ClientToServer, true);
OD_set_u32(OD_1200_SDOsrvPar, 2, CanId_ServerToClient, true);
}
else if (OD_SDOsrvParIdx > OD_H1200_SDO_SERVER_1_PARAM
&& OD_SDOsrvParIdx <= (OD_H1200_SDO_SERVER_1_PARAM + 0x7F)
) {
if (errInfo != NULL) *errInfo = OD_SDOsrvParIdx;
return CO_ERROR_OD_PARAMETERS;
/* configure additional SDO channel and SDO server parameters for it */
uint8_t maxSubIndex;
uint32_t COB_IDClientToServer32, COB_IDServerToClient32;
/* get and verify parameters from Object Dictionary (initial values) */
ODR_t odRet0 = OD_get_u8(OD_1200_SDOsrvPar, 0, &maxSubIndex, true);
ODR_t odRet1 = OD_get_u32(OD_1200_SDOsrvPar, 1,
&COB_IDClientToServer32, true);
ODR_t odRet2 = OD_get_u32(OD_1200_SDOsrvPar, 2,
&COB_IDServerToClient32, true);
if (odRet0 != ODR_OK || (maxSubIndex != 2 && maxSubIndex != 3)
|| odRet1 != ODR_OK || odRet2 != ODR_OK
) {
if (errInfo != NULL) *errInfo = OD_SDOsrvParIdx;
return CO_ERROR_OD_PARAMETERS;
}
CanId_ClientToServer = ((COB_IDClientToServer32 & 0x80000000) == 0)
? (uint16_t)(COB_IDClientToServer32 & 0x7FF) : 0;
CanId_ServerToClient = ((COB_IDServerToClient32 & 0x80000000) == 0)
? (uint16_t)(COB_IDServerToClient32 & 0x7FF) : 0;
#if (CO_CONFIG_SDO_SRV) & CO_CONFIG_FLAG_OD_DYNAMIC
SDO->OD_1200_extension.object = SDO;
SDO->OD_1200_extension.read = OD_readOriginal;
SDO->OD_1200_extension.write = OD_write_1201_additional;
ODR_t odRetE = OD_extension_init(OD_1200_SDOsrvPar,
&SDO->OD_1200_extension);
if (odRetE != ODR_OK) {
if (errInfo != NULL) *errInfo = OD_SDOsrvParIdx;
return CO_ERROR_OD_PARAMETERS;
}
#endif
}
CanId_ClientToServer = ((COB_IDClientToServer32 & 0x80000000) == 0)
? (uint16_t)(COB_IDClientToServer32 & 0x7FF) : 0;
CanId_ServerToClient = ((COB_IDServerToClient32 & 0x80000000) == 0)
? (uint16_t)(COB_IDServerToClient32 & 0x7FF) : 0;
#if (CO_CONFIG_SDO_SRV) & CO_CONFIG_FLAG_OD_DYNAMIC
SDO->OD_1200_extension.object = SDO;
SDO->OD_1200_extension.read = OD_readOriginal;
SDO->OD_1200_extension.write = OD_write_1201_additional;
ODR_t odRetE = OD_extension_init(OD_1200_SDOsrvPar,
&SDO->OD_1200_extension);
if (odRetE != ODR_OK) {
if (errInfo != NULL) *errInfo = OD_SDOsrvParIdx;
return CO_ERROR_OD_PARAMETERS;
else {
return CO_ERROR_ILLEGAL_ARGUMENT;
}
#endif
}
else {
return CO_ERROR_ILLEGAL_ARGUMENT;
}
CO_FLAG_CLEAR(SDO->CANrxNew);
/* store the parameters and configure CANrx and CANtx */
@ -620,7 +622,7 @@ static bool_t readFromOd(CO_SDOserver_t *SDO,
/* if data is string, send only data up to null termination */
if (countRd > 0 && (SDO->OD_IO.stream.attribute & ODA_STR) != 0) {
bufShifted[countRd] = 0; /* (SDO->buf is one byte larger) */
OD_size_t countStr = strlen((char *)bufShifted);
OD_size_t countStr = (OD_size_t)strlen((char *)bufShifted);
if (countStr == 0) countStr = 1; /* zero length is not allowed */
if (countStr < countRd) {
/* string terminator found, read is finished, shorten data */
@ -1070,7 +1072,7 @@ CO_SDO_return_t CO_SDOserver_process(CO_SDOserver_t *SDO,
}
/* verify, if there is enough data */
if (!SDO->finished && SDO->bufOffsetWr < SDO->block_blksize*7) {
if (!SDO->finished && SDO->bufOffsetWr < SDO->block_blksize*7U) {
abortCode = CO_SDO_AB_DEVICE_INCOMPAT;
SDO->state = CO_SDO_ST_ABORT;
}
@ -1260,7 +1262,7 @@ CO_SDO_return_t CO_SDOserver_process(CO_SDOserver_t *SDO,
/* data were already loaded from OD variable */
if (SDO->sizeInd > 0 && SDO->sizeInd <= 4) {
/* expedited transfer */
SDO->CANtxBuff->data[0] = 0x43 | ((4 - SDO->sizeInd) << 2);
SDO->CANtxBuff->data[0] = (uint8_t)(0x43 | ((4 - SDO->sizeInd) << 2));
memcpy(&SDO->CANtxBuff->data[4], &SDO->buf,
sizeof(SDO->sizeInd));
SDO->state = CO_SDO_ST_IDLE;
@ -1512,7 +1514,7 @@ CO_SDO_return_t CO_SDOserver_process(CO_SDOserver_t *SDO,
memcpy(&SDO->CANtxBuff->data[1], SDO->buf + SDO->bufOffsetRd,
count);
SDO->bufOffsetRd += count;
SDO->block_noData = 7 - count;
SDO->block_noData = (uint8_t)(7 - count);
SDO->sizeTran += count;
/* verify if sizeTran is too large or too short if last segment */

View file

@ -136,9 +136,9 @@ static inline bool_t CO_fifo_purge(CO_fifo_t *fifo) {
* @return number of available bytes
*/
static inline size_t CO_fifo_getSpace(CO_fifo_t *fifo) {
int sizeLeft = (int)fifo->readPtr - fifo->writePtr - 1;
int sizeLeft = (int)fifo->readPtr - (int)fifo->writePtr - 1;
if (sizeLeft < 0) {
sizeLeft += fifo->bufSize;
sizeLeft += (int)fifo->bufSize;
}
return (size_t) sizeLeft;
@ -153,9 +153,9 @@ static inline size_t CO_fifo_getSpace(CO_fifo_t *fifo) {
* @return number of occupied bytes
*/
static inline size_t CO_fifo_getOccupied(CO_fifo_t *fifo) {
int sizeOccupied = (int)fifo->writePtr - fifo->readPtr;
int sizeOccupied = (int)fifo->writePtr - (int)fifo->readPtr;
if (sizeOccupied < 0) {
sizeOccupied += fifo->bufSize;
sizeOccupied += (int)fifo->bufSize;
}
return (size_t) sizeOccupied;
@ -295,9 +295,9 @@ void CO_fifo_altFinish(CO_fifo_t *fifo, uint16_t *crc);
* @return number of occupied bytes.
*/
static inline size_t CO_fifo_altGetOccupied(CO_fifo_t *fifo) {
int sizeOccupied = (int)fifo->writePtr - fifo->altReadPtr;
int sizeOccupied = (int)fifo->writePtr - (int)fifo->altReadPtr;
if (sizeOccupied < 0) {
sizeOccupied += fifo->bufSize;
sizeOccupied += (int)fifo->bufSize;
}
return (size_t) sizeOccupied;

View file

@ -129,10 +129,10 @@ CO_ReturnError_t CO_LSSmaster_init(
uint16_t timeout_ms,
CO_CANmodule_t *CANdevRx,
uint16_t CANdevRxIdx,
uint32_t CANidLssSlave,
uint16_t CANidLssSlave,
CO_CANmodule_t *CANdevTx,
uint16_t CANdevTxIdx,
uint32_t CANidLssMaster)
uint16_t CANidLssMaster)
{
CO_ReturnError_t ret = CO_ERROR_NO;

View file

@ -158,10 +158,10 @@ CO_ReturnError_t CO_LSSmaster_init(
uint16_t timeout_ms,
CO_CANmodule_t *CANdevRx,
uint16_t CANdevRxIdx,
uint32_t CANidLssSlave,
uint16_t CANidLssSlave,
CO_CANmodule_t *CANdevTx,
uint16_t CANdevTxIdx,
uint32_t CANidLssMaster);
uint16_t CANidLssMaster);
/**
* Change LSS master timeout

View file

@ -199,10 +199,10 @@ CO_ReturnError_t CO_LSSslave_init(
uint8_t *pendingNodeID,
CO_CANmodule_t *CANdevRx,
uint16_t CANdevRxIdx,
uint32_t CANidLssMaster,
uint16_t CANidLssMaster,
CO_CANmodule_t *CANdevTx,
uint16_t CANdevTxIdx,
uint32_t CANidLssSlave)
uint16_t CANidLssSlave)
{
CO_ReturnError_t ret = CO_ERROR_NO;

View file

@ -164,10 +164,10 @@ CO_ReturnError_t CO_LSSslave_init(
uint8_t *pendingNodeID,
CO_CANmodule_t *CANdevRx,
uint16_t CANdevRxIdx,
uint32_t CANidLssMaster,
uint16_t CANidLssMaster,
CO_CANmodule_t *CANdevTx,
uint16_t CANdevTxIdx,
uint32_t CANidLssSlave);
uint16_t CANidLssSlave);
/**
* Process LSS communication

View file

@ -485,7 +485,7 @@ static void responseWithError(CO_GTWA_t *gtwa,
for (i = 0; i < len; i++) {
const errorDescs_t *ed = &errorDescs[i];
if(ed->code == respErrorCode) {
if((CO_GTWA_respErrorCode_t)ed->code == respErrorCode) {
desc = ed->desc;
}
}
@ -507,7 +507,7 @@ static void responseWithErrorSDO(CO_GTWA_t *gtwa,
for (i = 0; i < len; i++) {
const errorDescs_t *ed = &errorDescsSDO[i];
if(ed->code == abortCode) {
if((CO_SDO_abortCode_t)ed->code == abortCode) {
desc = ed->desc;
}
}
@ -605,7 +605,7 @@ static inline void convertToLower(char *token, size_t maxCount) {
if (*c == 0) {
break;
} else {
*c = tolower((int)*c);
*c = (char)tolower((int)*c);
}
c++;
}
@ -1404,7 +1404,7 @@ void CO_GTWA_process(CO_GTWA_t *gtwa,
if (closed == 0) {
/* more arguments follow */
CO_fifo_readToken(&gtwa->commFifo,tok,sizeof(tok),&closed,&err);
gtwa->lssNID = getU32(tok, 1, 127, &err);
gtwa->lssNID = (uint8_t)getU32(tok, 1, 127, &err);
if (err) break;
closed = -1;