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

Function CO_LSSmaster_ActivateBit

305/CO_LSSmaster.c:469–492  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

467}
468
469CO_LSSmaster_return_t
470CO_LSSmaster_ActivateBit(CO_LSSmaster_t* LSSmaster, uint16_t switchDelay_ms) {
471 CO_LSSmaster_return_t ret = CO_LSSmaster_INVALID_STATE;
472
473 if (LSSmaster == NULL) {
474 return CO_LSSmaster_ILLEGAL_ARGUMENT;
475 }
476
477 /* for activating bit timing, we need to have all slaves set to config
478 * state. This check makes it a bit harder to shoot ourselves in the foot */
479 if ((LSSmaster->state == CO_LSSmaster_STATE_CFG_GLOBAL) && (LSSmaster->command == CO_LSSmaster_COMMAND_WAITING)) {
480
481 CO_FLAG_CLEAR(LSSmaster->CANrxNew);
482 LSSmaster->TXbuff->data[0] = CO_LSS_CFG_ACTIVATE_BIT_TIMING;
483 (void)CO_setUint16(&LSSmaster->TXbuff->data[1], CO_SWAP_16(switchDelay_ms));
484 (void)memset(&LSSmaster->TXbuff->data[3], 0, sizeof(LSSmaster->TXbuff->data) - 3U);
485 (void)CO_CANsend(LSSmaster->CANdevTx, LSSmaster->TXbuff);
486
487 /* This is non-confirmed service! */
488 ret = CO_LSSmaster_OK;
489 }
490
491 return ret;
492}
493
494/*
495 * Helper function - send request

Callers 1

ifFunction · 0.85

Calls 2

CO_setUint16Function · 0.85
CO_CANsendFunction · 0.85

Tested by

no test coverage detected