| 1473 | |
| 1474 | #if ((CO_CONFIG_SRDO)&CO_CONFIG_SRDO_ENABLE) != 0 |
| 1475 | CO_SRDO_state_t |
| 1476 | CO_process_SRDO(CO_t* co, uint32_t timeDifference_us, uint32_t* timerNext_us) { |
| 1477 | static bool_t NMTisOperationalPrevius = false; |
| 1478 | uint8_t i; |
| 1479 | CO_ReturnError_t err; |
| 1480 | |
| 1481 | if (co->nodeIdUnconfigured) { |
| 1482 | return CO_SRDO_state_unknown; |
| 1483 | } |
| 1484 | |
| 1485 | bool_t NMTisOperational = CO_NMT_getInternalState(co->NMT) == CO_NMT_OPERATIONAL; |
| 1486 | |
| 1487 | if (NMTisOperationalPrevius != NMTisOperational) { |
| 1488 | NMTisOperationalPrevius = NMTisOperational; |
| 1489 | if (NMTisOperational) { |
| 1490 | for (i = 0; i < CO_GET_CNT(SRDO); i++) { |
| 1491 | err = CO_SRDO_config(&co->SRDO[i], i, co->SRDOGuard, NULL); |
| 1492 | |
| 1493 | if (err != CO_ERROR_NO) { |
| 1494 | return CO_SRDO_state_error_internal; |
| 1495 | } |
| 1496 | } |
| 1497 | } |
| 1498 | } |
| 1499 | |
| 1500 | CO_SRDO_state_t lowestState = CO_SRDO_state_deleted; |
| 1501 | |
| 1502 | for (i = 0; i < CO_GET_CNT(SRDO); i++) { |
| 1503 | CO_SRDO_state_t state = CO_SRDO_process(&co->SRDO[i], timeDifference_us, timerNext_us, NMTisOperational); |
| 1504 | if (state < lowestState) { |
| 1505 | lowestState = state; |
| 1506 | } |
| 1507 | } |
| 1508 | |
| 1509 | return lowestState; |
| 1510 | } |
| 1511 | #endif |
nothing calls this directly
no test coverage detected