MCPcopy Create free account
hub / github.com/CANopenNode/CANopenNode / CO_LSSmaster_configureStore

Function CO_LSSmaster_configureStore

305/CO_LSSmaster.c:434–467  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

432}
433
434CO_LSSmaster_return_t
435CO_LSSmaster_configureStore(CO_LSSmaster_t* LSSmaster, uint32_t timeDifference_us) {
436 CO_LSSmaster_return_t ret = CO_LSSmaster_INVALID_STATE;
437
438 if (LSSmaster == NULL) {
439 return CO_LSSmaster_ILLEGAL_ARGUMENT;
440 }
441
442 /* Initiate config store */
443 if ((LSSmaster->state == CO_LSSmaster_STATE_CFG_SLECTIVE) && (LSSmaster->command == CO_LSSmaster_COMMAND_WAITING)) {
444
445 LSSmaster->command = CO_LSSmaster_COMMAND_CFG_STORE;
446 LSSmaster->timeoutTimer = 0;
447
448 CO_FLAG_CLEAR(LSSmaster->CANrxNew);
449 LSSmaster->TXbuff->data[0] = CO_LSS_CFG_STORE;
450 (void)memset(&LSSmaster->TXbuff->data[1], 0, sizeof(LSSmaster->TXbuff->data) - 1U);
451 (void)CO_CANsend(LSSmaster->CANdevTx, LSSmaster->TXbuff);
452
453 ret = CO_LSSmaster_WAIT_SLAVE;
454 }
455 /* Wait for confirmation */
456 else if (LSSmaster->command == CO_LSSmaster_COMMAND_CFG_STORE) {
457
458 ret = CO_LSSmaster_configureCheckWait(LSSmaster, timeDifference_us, CO_LSS_CFG_STORE);
459 } else { /* MISRA C 2004 14.10 */
460 }
461
462 if ((ret != CO_LSSmaster_INVALID_STATE) && (ret != CO_LSSmaster_WAIT_SLAVE)) {
463 /* finished */
464 LSSmaster->command = CO_LSSmaster_COMMAND_WAITING;
465 }
466 return ret;
467}
468
469CO_LSSmaster_return_t
470CO_LSSmaster_ActivateBit(CO_LSSmaster_t* LSSmaster, uint16_t switchDelay_ms) {

Callers 1

CO_gateway_ascii.cFile · 0.85

Calls 2

CO_CANsendFunction · 0.85

Tested by

no test coverage detected