Make calculation of timerNext_us optional.
This commit is contained in:
parent
3fd799f919
commit
6e28914ca9
11 changed files with 132 additions and 22 deletions
|
|
@ -308,7 +308,6 @@ void CO_EM_process(
|
|||
(em->bufReadPtr != em->bufWritePtr || em->bufFull))
|
||||
{
|
||||
uint32_t preDEF; /* preDefinedErrorField */
|
||||
uint16_t diff;
|
||||
|
||||
if (emPr->inhibitEmTimer >= emInhTime_us) {
|
||||
/* inhibit time elapsed, send message */
|
||||
|
|
@ -367,13 +366,16 @@ void CO_EM_process(
|
|||
CO_CANsend(emPr->CANdev, emPr->CANtxBuff);
|
||||
|
||||
}
|
||||
#if (CO_CONFIG_EM) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
else if (timerNext_us != NULL) {
|
||||
uint32_t diff;
|
||||
/* check again after inhibit time elapsed */
|
||||
diff = emInhTime_us - emPr->inhibitEmTimer;
|
||||
if (*timerNext_us > diff) {
|
||||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -386,6 +386,7 @@ void CO_HBconsumer_process(
|
|||
monitoredNode->HBstate = CO_HBconsumer_TIMEOUT;
|
||||
}
|
||||
|
||||
#if (CO_CONFIG_HB_CONS) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
else if (timerNext_us != NULL) {
|
||||
/* Calculate timerNext_us for next timeout checking. */
|
||||
uint32_t diff = monitoredNode->time_us
|
||||
|
|
@ -394,6 +395,7 @@ void CO_HBconsumer_process(
|
|||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if(monitoredNode->HBstate != CO_HBconsumer_ACTIVE) {
|
||||
|
|
|
|||
|
|
@ -275,12 +275,14 @@ CO_NMT_reset_cmd_t CO_NMT_process(
|
|||
if (NMT->LEDtimer >= 50000) {
|
||||
NMT->LEDtimer -= 50000;
|
||||
|
||||
#if (CO_CONFIG_NMT) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
if (timerNext_us != NULL) {
|
||||
uint32_t diff = 50000 - NMT->LEDtimer;
|
||||
if (*timerNext_us > diff) {
|
||||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (++NMT->LEDflickering >= 1) NMT->LEDflickering = -1;
|
||||
|
||||
|
|
@ -402,12 +404,15 @@ CO_NMT_reset_cmd_t CO_NMT_process(
|
|||
NMT->pFunctNMT(NMT->operatingState);
|
||||
}
|
||||
#endif
|
||||
#if (CO_CONFIG_NMT) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
/* execute next CANopen processing immediately */
|
||||
if (timerNext_us != NULL) {
|
||||
*timerNext_us = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if (CO_CONFIG_NMT) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
/* Calculate, when next Heartbeat needs to be send and lower timerNext_us if necessary. */
|
||||
if (HBtime != 0 && timerNext_us != NULL) {
|
||||
if (NMT->HBproducerTimer < HBtime) {
|
||||
|
|
@ -419,6 +424,7 @@ CO_NMT_reset_cmd_t CO_NMT_process(
|
|||
*timerNext_us = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return (CO_NMT_reset_cmd_t) NMT->resetCommand;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -991,6 +991,7 @@ void CO_TPDO_process(
|
|||
TPDO->eventTimer = ((uint32_t) TPDO->TPDOCommPar->eventTimer) * 1000;
|
||||
}
|
||||
}
|
||||
#if (CO_CONFIG_PDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
if(timerNext_us != NULL){
|
||||
if(TPDO->sendRequest && *timerNext_us > TPDO->inhibitTimer){
|
||||
*timerNext_us = TPDO->inhibitTimer; /* Schedule for just beyond inhibit window */
|
||||
|
|
@ -998,6 +999,7 @@ void CO_TPDO_process(
|
|||
*timerNext_us = TPDO->eventTimer; /* Schedule for next maximum event time */
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Synchronous PDOs */
|
||||
|
|
|
|||
|
|
@ -372,10 +372,12 @@ CO_SDOclient_return_t CO_SDOclientDownloadInitiate(
|
|||
/* if nodeIDOfTheSDOServer == node-ID of this node, then exchange data with this node */
|
||||
if(SDO_C->SDOClientPar->nodeIDOfTheSDOServer == SDO_C->SDO->nodeId){
|
||||
|
||||
#if (CO_CONFIG_SDO_CLI) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
/* Optional signal to RTOS. We can immediately continue SDO Client */
|
||||
if(timerNext_us != NULL) {
|
||||
*timerNext_us = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
return CO_SDOcli_ok_communicationEnd;
|
||||
}
|
||||
|
|
@ -642,6 +644,7 @@ CO_SDOclient_return_t CO_SDOclientDownload(
|
|||
CO_SDOclient_abort(SDO_C, *pSDOabortCode);
|
||||
return CO_SDOcli_endedWithTimeout;
|
||||
}
|
||||
#if (CO_CONFIG_SDO_CLI) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
else if (timerNext_us != NULL) {
|
||||
/* check again after timeout time elapsed */
|
||||
uint32_t diff = SDO_C->SDOtimeoutTime_us - SDO_C->timeoutTimer;
|
||||
|
|
@ -649,6 +652,7 @@ CO_SDOclient_return_t CO_SDOclientDownload(
|
|||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* TX data ******************************************************************************************* */
|
||||
if(SDO_C->CANtxBuff->bufferFull) {
|
||||
|
|
@ -720,12 +724,14 @@ CO_SDOclient_return_t CO_SDOclientDownload(
|
|||
else if (SDO_C->block_seqno >= SDO_C->block_blksize) {
|
||||
SDO_C->state = SDO_STATE_BLOCKDOWNLOAD_BLOCK_ACK;
|
||||
}
|
||||
#if (CO_CONFIG_SDO_CLI) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
else {
|
||||
/* Inform OS to call this function again without delay. */
|
||||
if (timerNext_us != NULL) {
|
||||
*timerNext_us = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* tx data */
|
||||
SDO_C->timeoutTimer = 0;
|
||||
|
|
@ -830,10 +836,12 @@ CO_SDOclient_return_t CO_SDOclientUploadInitiate(
|
|||
/* if nodeIDOfTheSDOServer == node-ID of this node, then exchange data with this node */
|
||||
if(SDO_C->SDOClientPar->nodeIDOfTheSDOServer == SDO_C->SDO->nodeId){
|
||||
|
||||
#if (CO_CONFIG_SDO_CLI) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
/* Optional signal to RTOS. We can immediately continue SDO Client */
|
||||
if(timerNext_us != NULL) {
|
||||
*timerNext_us = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
return CO_SDOcli_ok_communicationEnd;
|
||||
}
|
||||
|
|
@ -1156,6 +1164,7 @@ CO_SDOclient_return_t CO_SDOclientUpload(
|
|||
CO_SDOclient_abort(SDO_C, *pSDOabortCode);
|
||||
return CO_SDOcli_endedWithTimeout;
|
||||
}
|
||||
#if (CO_CONFIG_SDO_CLI) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
else if (timerNext_us != NULL) {
|
||||
/* check again after timeout time elapsed */
|
||||
uint32_t diff = SDO_C->SDOtimeoutTime_us - SDO_C->timeoutTimer;
|
||||
|
|
@ -1163,11 +1172,13 @@ CO_SDOclient_return_t CO_SDOclientUpload(
|
|||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* block TMO */
|
||||
if (SDO_C->timeoutTimerBLOCK >= SDO_C->SDOtimeoutTimeHalf_us) {
|
||||
SDO_C->state = SDO_STATE_BLOCKUPLOAD_BLOCK_ACK;
|
||||
}
|
||||
#if (CO_CONFIG_SDO_CLI) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
else if (timerNext_us != NULL) {
|
||||
/* check again after inhibit time elapsed */
|
||||
uint32_t diff = SDO_C->SDOtimeoutTimeHalf_us - SDO_C->timeoutTimerBLOCK;
|
||||
|
|
@ -1175,6 +1186,7 @@ CO_SDOclient_return_t CO_SDOclientUpload(
|
|||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* TX data ******************************************************************************** */
|
||||
|
|
|
|||
|
|
@ -900,6 +900,7 @@ int8_t CO_SDO_process(
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
#if (CO_CONFIG_SDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
else if (timerNext_us != NULL) {
|
||||
/* check again after timeout time elapsed */
|
||||
uint32_t diff = SDO->SDOtimeoutTime_us - SDO->timeoutTimer;
|
||||
|
|
@ -907,6 +908,7 @@ int8_t CO_SDO_process(
|
|||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* return immediately if still idle */
|
||||
if(state == CO_SDO_ST_IDLE){
|
||||
|
|
@ -952,8 +954,10 @@ int8_t CO_SDO_process(
|
|||
/* finish the communication and run mainline processing again */
|
||||
SDO->state = CO_SDO_ST_IDLE;
|
||||
sendResponse = true;
|
||||
#if (CO_CONFIG_SDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
if (timerNext_us != NULL)
|
||||
*timerNext_us = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Segmented transfer */
|
||||
|
|
@ -1030,8 +1034,10 @@ int8_t CO_SDO_process(
|
|||
|
||||
/* finish the communication and run mainline processing again */
|
||||
SDO->state = CO_SDO_ST_IDLE;
|
||||
#if (CO_CONFIG_SDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
if (timerNext_us != NULL)
|
||||
*timerNext_us = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* download segment response and alternate toggle bit */
|
||||
|
|
@ -1177,8 +1183,10 @@ int8_t CO_SDO_process(
|
|||
SDO->CANtxBuff->data[0] = 0xA1;
|
||||
SDO->state = CO_SDO_ST_IDLE;
|
||||
sendResponse = true;
|
||||
#if (CO_CONFIG_SDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
if (timerNext_us != NULL)
|
||||
*timerNext_us = 0;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1198,8 +1206,10 @@ int8_t CO_SDO_process(
|
|||
/* finish the communication and run mainline processing again */
|
||||
SDO->state = CO_SDO_ST_IDLE;
|
||||
sendResponse = true;
|
||||
#if (CO_CONFIG_SDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
if (timerNext_us != NULL)
|
||||
*timerNext_us = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Segmented transfer */
|
||||
|
|
@ -1284,8 +1294,10 @@ int8_t CO_SDO_process(
|
|||
|
||||
/* finish the communication and run mainline processing again */
|
||||
SDO->state = CO_SDO_ST_IDLE;
|
||||
#if (CO_CONFIG_SDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
if (timerNext_us != NULL)
|
||||
*timerNext_us = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* send response */
|
||||
|
|
@ -1474,10 +1486,12 @@ int8_t CO_SDO_process(
|
|||
/* send response */
|
||||
CO_CANsend(SDO->CANdevTx, SDO->CANtxBuff);
|
||||
|
||||
#if (CO_CONFIG_SDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
/* Inform OS to call this function again without delay. */
|
||||
if (timerNext_us != NULL) {
|
||||
*timerNext_us = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* don't call CO_FLAG_CLEAR, so return directly */
|
||||
return 1;
|
||||
|
|
@ -1492,8 +1506,10 @@ int8_t CO_SDO_process(
|
|||
|
||||
/* finish the communication and run mainline processing again */
|
||||
SDO->state = CO_SDO_ST_IDLE;
|
||||
#if (CO_CONFIG_SDO) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
if (timerNext_us != NULL)
|
||||
*timerNext_us = 0;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -343,7 +343,6 @@ uint8_t CO_SYNC_process(
|
|||
|
||||
/* SYNC producer */
|
||||
if(SYNC->isProducer && SYNC->periodTime){
|
||||
uint32_t diff;
|
||||
if(SYNC->timer >= SYNC->periodTime){
|
||||
if(++SYNC->counter > SYNC->counterOverflowValue) SYNC->counter = 1;
|
||||
SYNC->timer = 0;
|
||||
|
|
@ -351,17 +350,16 @@ uint8_t CO_SYNC_process(
|
|||
SYNC->CANrxToggle = SYNC->CANrxToggle ? false : true;
|
||||
SYNC->CANtxBuff->data[0] = SYNC->counter;
|
||||
CO_CANsend(SYNC->CANdevTx, SYNC->CANtxBuff);
|
||||
diff = SYNC->periodTime;
|
||||
}else{
|
||||
/* Calculate when next SYNC needs to be sent */
|
||||
diff = SYNC->periodTime - SYNC->timer;
|
||||
}
|
||||
/* Set lower timerNext_us if necessary. */
|
||||
#if (CO_CONFIG_SYNC) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
/* Calculate when next SYNC needs to be sent */
|
||||
if(timerNext_us != NULL){
|
||||
uint32_t diff = SYNC->periodTime - SYNC->timer;
|
||||
if(*timerNext_us > diff){
|
||||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Synchronous PDOs are allowed only inside time window */
|
||||
|
|
@ -385,12 +383,14 @@ uint8_t CO_SYNC_process(
|
|||
if(SYNC->timer > SYNC->periodTimeoutTime) {
|
||||
CO_errorReport(SYNC->em, CO_EM_SYNC_TIME_OUT, CO_EMC_COMMUNICATION, SYNC->timer);
|
||||
}
|
||||
#if (CO_CONFIG_SYNC) & CO_CONFIG_FLAG_TIMERNEXT
|
||||
else if(timerNext_us != NULL) {
|
||||
uint32_t diff = SYNC->periodTimeoutTime - SYNC->timer;
|
||||
if(*timerNext_us > diff){
|
||||
*timerNext_us = diff;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -73,12 +73,25 @@ extern "C" {
|
|||
#define CO_CONFIG_FLAG_CALLBACK_PRE 0x0100
|
||||
|
||||
|
||||
/**
|
||||
* Enable calculation of timerNext_us variable.
|
||||
*
|
||||
* Calculation of the timerNext_us variable is useful for smooth operation on
|
||||
* operating system. See also @ref CO_process() function.
|
||||
*
|
||||
* This flag is common to multiple configuration macros.
|
||||
*/
|
||||
#define CO_CONFIG_FLAG_TIMERNEXT 0x0200
|
||||
|
||||
|
||||
/**
|
||||
* Configuration of NMT_Heartbeat object
|
||||
*
|
||||
* Possible flags, can be ORed:
|
||||
* - #CO_CONFIG_FLAG_CALLBACK_PRE - Enable custom callback after preprocessing
|
||||
* received NMT CAN message.
|
||||
* - #CO_CONFIG_FLAG_TIMERNEXT - Enable calculation of timerNext_us variable
|
||||
* inside CO_NMT_process().
|
||||
* Callback is configured by CO_NMT_initCallbackPre().
|
||||
* - CO_CONFIG_NMT_CALLBACK_CHANGE - Enable custom callback after NMT
|
||||
* state changes. Callback is configured by
|
||||
|
|
@ -88,7 +101,7 @@ extern "C" {
|
|||
* be used for LEDs.
|
||||
*/
|
||||
#ifdef CO_DOXYGEN
|
||||
#define CO_CONFIG_NMT CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_NMT_CALLBACK_CHANGE | CO_CONFIG_NMT_MASTER | CO_CONFIG_NMT_LEDS
|
||||
#define CO_CONFIG_NMT CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_NMT_CALLBACK_CHANGE | CO_CONFIG_NMT_MASTER | CO_CONFIG_NMT_LEDS
|
||||
#endif
|
||||
#define CO_CONFIG_NMT_CALLBACK_CHANGE 0x01
|
||||
#define CO_CONFIG_NMT_MASTER 0x02
|
||||
|
|
@ -101,13 +114,15 @@ extern "C" {
|
|||
* Possible flags, can be ORed:
|
||||
* - #CO_CONFIG_FLAG_CALLBACK_PRE - Enable custom callback after preprocessing
|
||||
* received SDO CAN message.
|
||||
* - #CO_CONFIG_FLAG_TIMERNEXT - Enable calculation of timerNext_us variable
|
||||
* inside CO_SDO_process().
|
||||
* Callback is configured by CO_SDO_initCallbackPre().
|
||||
* - CO_CONFIG_SDO_SEGMENTED - Enable SDO server segmented transfer.
|
||||
* - CO_CONFIG_SDO_BLOCK - Enable SDO server block transfer. If set, then
|
||||
* CO_CONFIG_SDO_SEGMENTED must also be set.
|
||||
*/
|
||||
#ifdef CO_DOXYGEN
|
||||
#define CO_CONFIG_SDO CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_SDO_SEGMENTED | CO_CONFIG_SDO_BLOCK
|
||||
#define CO_CONFIG_SDO CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_SDO_SEGMENTED | CO_CONFIG_SDO_BLOCK
|
||||
#endif
|
||||
/* TODO with new OD */
|
||||
#define CO_CONFIG_SDO_SEGMENTED 0x01
|
||||
|
|
@ -136,10 +151,12 @@ extern "C" {
|
|||
* - #CO_CONFIG_FLAG_CALLBACK_PRE - Enable custom callback after preprocessing
|
||||
* emergency condition by CO_errorReport() or CO_errorReset() call.
|
||||
* Callback is configured by CO_EM_initCallbackPre().
|
||||
* - #CO_CONFIG_FLAG_TIMERNEXT - Enable calculation of timerNext_us variable
|
||||
* inside CO_EM_process().
|
||||
* - CO_CONFIG_EM_CONSUMER - Enable emergency consumer.
|
||||
*/
|
||||
#ifdef CO_DOXYGEN
|
||||
#define CO_CONFIG_EM CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_EM_CONSUMER
|
||||
#define CO_CONFIG_EM CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_EM_CONSUMER
|
||||
#endif
|
||||
#define CO_CONFIG_EM_CONSUMER 0x01
|
||||
|
||||
|
|
@ -151,6 +168,8 @@ extern "C" {
|
|||
* - #CO_CONFIG_FLAG_CALLBACK_PRE - Enable custom callback after preprocessing
|
||||
* received heartbeat CAN message.
|
||||
* Callback is configured by CO_HBconsumer_initCallbackPre().
|
||||
* - #CO_CONFIG_FLAG_TIMERNEXT - Enable calculation of timerNext_us variable
|
||||
* inside CO_HBconsumer_process().
|
||||
* - CO_CONFIG_HB_CONS_CALLBACK_CHANGE - Enable custom callback after NMT
|
||||
* state of the monitored node changes. Callback is configured by
|
||||
* CO_HBconsumer_initCallbackNmtChanged().
|
||||
|
|
@ -163,13 +182,37 @@ extern "C" {
|
|||
* NMT state of the specific monitored node.
|
||||
*/
|
||||
#ifdef CO_DOXYGEN
|
||||
#define CO_CONFIG_HB_CONS CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_HB_CONS_CALLBACK_CHANGE | CO_CONFIG_HB_CONS_CALLBACK_MULTI | CO_CONFIG_HB_CONS_QUERY_FUNCT
|
||||
#define CO_CONFIG_HB_CONS CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_HB_CONS_CALLBACK_CHANGE | CO_CONFIG_HB_CONS_CALLBACK_MULTI | CO_CONFIG_HB_CONS_QUERY_FUNCT
|
||||
#endif
|
||||
#define CO_CONFIG_HB_CONS_CALLBACK_CHANGE 0x01
|
||||
#define CO_CONFIG_HB_CONS_CALLBACK_MULTI 0x02
|
||||
#define CO_CONFIG_HB_CONS_QUERY_FUNCT 0x04
|
||||
|
||||
|
||||
/**
|
||||
* Configuration of PDO
|
||||
*
|
||||
* Possible flags, can be ORed:
|
||||
* - #CO_CONFIG_FLAG_TIMERNEXT - Enable calculation of timerNext_us variable
|
||||
* inside CO_TPDO_process().
|
||||
*/
|
||||
#ifdef CO_DOXYGEN
|
||||
#define CO_CONFIG_PDO CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Configuration of SYNC
|
||||
*
|
||||
* Possible flags, can be ORed:
|
||||
* - #CO_CONFIG_FLAG_TIMERNEXT - Enable calculation of timerNext_us variable
|
||||
* inside CO_SYNC_process().
|
||||
*/
|
||||
#ifdef CO_DOXYGEN
|
||||
#define CO_CONFIG_SYNC CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Configuration of SDO client object
|
||||
*
|
||||
|
|
@ -177,9 +220,12 @@ extern "C" {
|
|||
* - #CO_CONFIG_FLAG_CALLBACK_PRE - Enable custom callback after preprocessing
|
||||
* received SDO CAN message.
|
||||
* Callback is configured by CO_SDOclient_initCallbackPre().
|
||||
* - #CO_CONFIG_FLAG_TIMERNEXT - Enable calculation of timerNext_us variable
|
||||
* inside CO_SDOclientDownloadInitiate(), CO_SDOclientDownload(),
|
||||
* CO_SDOclientUploadInitiate(), CO_SDOclientUpload().
|
||||
*/
|
||||
#ifdef CO_DOXYGEN
|
||||
#define CO_CONFIG_SDO_CLI CO_CONFIG_FLAG_CALLBACK_PRE
|
||||
#define CO_CONFIG_SDO_CLI CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,14 @@ extern "C" {
|
|||
#define CO_CONFIG_HB_CONS 0
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_PDO
|
||||
#define CO_CONFIG_PDO 0
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SYNC
|
||||
#define CO_CONFIG_SYNC 0
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SDO_CLI
|
||||
#define CO_CONFIG_SDO_CLI 0
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -45,11 +45,11 @@ extern "C" {
|
|||
/* Stack configuration override from CO_driver.h. Compile full stack.
|
||||
* For more information see file CO_config.h. */
|
||||
#ifndef CO_CONFIG_NMT
|
||||
#define CO_CONFIG_NMT CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_NMT_CALLBACK_CHANGE | CO_CONFIG_NMT_MASTER | CO_CONFIG_NMT_LEDS
|
||||
#define CO_CONFIG_NMT CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_NMT_CALLBACK_CHANGE | CO_CONFIG_NMT_MASTER | CO_CONFIG_NMT_LEDS
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SDO
|
||||
#define CO_CONFIG_SDO CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_SDO_SEGMENTED | CO_CONFIG_SDO_BLOCK
|
||||
#define CO_CONFIG_SDO CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_SDO_SEGMENTED | CO_CONFIG_SDO_BLOCK
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SDO_BUFFER_SIZE
|
||||
|
|
@ -57,15 +57,23 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_EM
|
||||
#define CO_CONFIG_EM CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_EM_CONSUMER
|
||||
#define CO_CONFIG_EM CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_EM_CONSUMER
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_HB_CONS
|
||||
#define CO_CONFIG_HB_CONS CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_HB_CONS_CALLBACK_CHANGE | CO_CONFIG_HB_CONS_CALLBACK_MULTI | CO_CONFIG_HB_CONS_QUERY_FUNCT
|
||||
#define CO_CONFIG_HB_CONS CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_HB_CONS_CALLBACK_CHANGE | CO_CONFIG_HB_CONS_CALLBACK_MULTI | CO_CONFIG_HB_CONS_QUERY_FUNCT
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_PDO
|
||||
#define CO_CONFIG_PDO CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SYNC
|
||||
#define CO_CONFIG_SYNC CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SDO_CLI
|
||||
#define CO_CONFIG_SDO_CLI CO_CONFIG_FLAG_CALLBACK_PRE
|
||||
#define CO_CONFIG_SDO_CLI CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_LSS_MST
|
||||
|
|
|
|||
|
|
@ -53,11 +53,11 @@ extern "C" {
|
|||
/* Stack configuration override from CO_driver.h.
|
||||
* For more information see file CO_config.h. */
|
||||
#ifndef CO_CONFIG_NMT
|
||||
#define CO_CONFIG_NMT CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_NMT_CALLBACK_CHANGE | CO_CONFIG_NMT_MASTER | CO_CONFIG_NMT_LEDS
|
||||
#define CO_CONFIG_NMT CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_NMT_CALLBACK_CHANGE | CO_CONFIG_NMT_MASTER | CO_CONFIG_NMT_LEDS
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SDO
|
||||
#define CO_CONFIG_SDO CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_SDO_SEGMENTED | CO_CONFIG_SDO_BLOCK
|
||||
#define CO_CONFIG_SDO CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_SDO_SEGMENTED | CO_CONFIG_SDO_BLOCK
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SDO_BUFFER_SIZE
|
||||
|
|
@ -65,15 +65,23 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_EM
|
||||
#define CO_CONFIG_EM CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_EM_CONSUMER
|
||||
#define CO_CONFIG_EM CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_EM_CONSUMER
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_HB_CONS
|
||||
#define CO_CONFIG_HB_CONS CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_HB_CONS_CALLBACK_CHANGE
|
||||
#define CO_CONFIG_HB_CONS CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT | CO_CONFIG_HB_CONS_CALLBACK_CHANGE
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_PDO
|
||||
#define CO_CONFIG_PDO CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SYNC
|
||||
#define CO_CONFIG_SYNC CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_SDO_CLI
|
||||
#define CO_CONFIG_SDO_CLI CO_CONFIG_FLAG_CALLBACK_PRE
|
||||
#define CO_CONFIG_SDO_CLI CO_CONFIG_FLAG_CALLBACK_PRE | CO_CONFIG_FLAG_TIMERNEXT
|
||||
#endif
|
||||
|
||||
#ifndef CO_CONFIG_LSS_MST
|
||||
|
|
|
|||
Loading…
Reference in a new issue