/*! ** ** ** @param d ** @param cob_id ** ** @return **/ UNS8 sendSYNC(CO_Data* d) { UNS8 res; res = sendSYNCMessage(d); proceedSYNC(d) ; return res ; }
/*! ** ** ** @param d ** @param m **/ void canDispatch(CO_Data* d, Message *m) { UNS16 cob_id = UNS16_LE(m->cob_id); switch (cob_id >> 7) { case SYNC: /* can be a SYNC or a EMCY message */ if (cob_id == 0x080) { /* SYNC */ if (d->CurrentCommunicationState.csSYNC) proceedSYNC(d); } else /* EMCY */ if (d->CurrentCommunicationState.csEmergency) proceedEMCY(d, m); break; /* case TIME_STAMP: */ case PDO1tx: case PDO1rx: case PDO2tx: case PDO2rx: case PDO3tx: case PDO3rx: case PDO4tx: case PDO4rx: if (d->CurrentCommunicationState.csPDO) proceedPDO(d, m); break; case SDOtx: case SDOrx: if (d->CurrentCommunicationState.csSDO) proceedSDO(d, m); break; case NODE_GUARD: if (d->CurrentCommunicationState.csHeartbeat) proceedNODE_GUARD(d, m); break; case NMT: if (*(d->iam_a_slave)) { proceedNMTstateChange(d, m); } #ifdef CO_ENABLE_LSS case LSS: if (!d->CurrentCommunicationState.csLSS)break; if ((*(d->iam_a_slave)) && cob_id == MLSS_ADRESS) { proceedLSS_Slave(d, m); } else if (!(*(d->iam_a_slave)) && cob_id == SLSS_ADRESS) { proceedLSS_Master(d, m); } break; #endif } }