Lines Matching refs:RPDO
44 CO_RPDO_t *RPDO; in CO_PDO_receive() local
46 RPDO = (CO_RPDO_t*)object; /* this is the correct pointer type of the first argument */ in CO_PDO_receive()
48 if( (RPDO->valid) && in CO_PDO_receive()
49 (*RPDO->operatingState == CO_NMT_OPERATIONAL) && in CO_PDO_receive()
50 (msg->DLC >= RPDO->dataLength)) in CO_PDO_receive()
52 if(RPDO->SYNC && RPDO->synchronous && RPDO->SYNC->CANrxToggle) { in CO_PDO_receive()
54 RPDO->CANrxData[1][0] = msg->data[0]; in CO_PDO_receive()
55 RPDO->CANrxData[1][1] = msg->data[1]; in CO_PDO_receive()
56 RPDO->CANrxData[1][2] = msg->data[2]; in CO_PDO_receive()
57 RPDO->CANrxData[1][3] = msg->data[3]; in CO_PDO_receive()
58 RPDO->CANrxData[1][4] = msg->data[4]; in CO_PDO_receive()
59 RPDO->CANrxData[1][5] = msg->data[5]; in CO_PDO_receive()
60 RPDO->CANrxData[1][6] = msg->data[6]; in CO_PDO_receive()
61 RPDO->CANrxData[1][7] = msg->data[7]; in CO_PDO_receive()
63 SET_CANrxNew(RPDO->CANrxNew[1]); in CO_PDO_receive()
67 RPDO->CANrxData[0][0] = msg->data[0]; in CO_PDO_receive()
68 RPDO->CANrxData[0][1] = msg->data[1]; in CO_PDO_receive()
69 RPDO->CANrxData[0][2] = msg->data[2]; in CO_PDO_receive()
70 RPDO->CANrxData[0][3] = msg->data[3]; in CO_PDO_receive()
71 RPDO->CANrxData[0][4] = msg->data[4]; in CO_PDO_receive()
72 RPDO->CANrxData[0][5] = msg->data[5]; in CO_PDO_receive()
73 RPDO->CANrxData[0][6] = msg->data[6]; in CO_PDO_receive()
74 RPDO->CANrxData[0][7] = msg->data[7]; in CO_PDO_receive()
76 SET_CANrxNew(RPDO->CANrxNew[0]); in CO_PDO_receive()
95 static void CO_RPDOconfigCom(CO_RPDO_t* RPDO, uint32_t COB_IDUsedByRPDO){ in CO_RPDOconfigCom() argument
102 if((COB_IDUsedByRPDO & 0xBFFFF800L) == 0 && RPDO->dataLength && ID){ in CO_RPDOconfigCom()
104 if(ID == RPDO->defaultCOB_ID) ID += RPDO->nodeId; in CO_RPDOconfigCom()
105 RPDO->valid = true; in CO_RPDOconfigCom()
106 RPDO->synchronous = (RPDO->RPDOCommPar->transmissionType <= 240) ? true : false; in CO_RPDOconfigCom()
110 RPDO->valid = false; in CO_RPDOconfigCom()
111 CLEAR_CANrxNew(RPDO->CANrxNew[0]); in CO_RPDOconfigCom()
112 CLEAR_CANrxNew(RPDO->CANrxNew[1]); in CO_RPDOconfigCom()
115 RPDO->CANdevRx, /* CAN device */ in CO_RPDOconfigCom()
116 RPDO->CANdevRxIdx, /* rx buffer index */ in CO_RPDOconfigCom()
120 (void*)RPDO, /* object passed to receive function */ in CO_RPDOconfigCom()
123 RPDO->valid = false; in CO_RPDOconfigCom()
124 CLEAR_CANrxNew(RPDO->CANrxNew[0]); in CO_RPDOconfigCom()
125 CLEAR_CANrxNew(RPDO->CANrxNew[1]); in CO_RPDOconfigCom()
292 static uint32_t CO_RPDOconfigMap(CO_RPDO_t* RPDO, uint8_t noOfMappedObjects){ in CO_RPDOconfigMap() argument
296 const uint32_t* pMap = &RPDO->RPDOMapPar->mappedObject1; in CO_RPDOconfigMap()
308 RPDO->SDO, in CO_RPDOconfigMap()
317 CO_errorReport(RPDO->em, CO_EM_PDO_WRONG_MAPPING, CO_EMC_PROTOCOL_ERROR, map); in CO_RPDOconfigMap()
325 RPDO->mapPointer[j] = pData++; in CO_RPDOconfigMap()
329 RPDO->mapPointer[j] = pData++; in CO_RPDOconfigMap()
333 RPDO->mapPointer[j] = pData++; in CO_RPDOconfigMap()
339 RPDO->dataLength = length; in CO_RPDOconfigMap()
418 CO_RPDO_t *RPDO; in CO_ODF_RPDOcom() local
420 RPDO = (CO_RPDO_t*) ODF_arg->object; in CO_ODF_RPDOcom()
428 if(((value)&0xFFFF) == RPDO->defaultCOB_ID && RPDO->defaultCOB_ID) in CO_ODF_RPDOcom()
429 value += RPDO->nodeId; in CO_ODF_RPDOcom()
432 if(!RPDO->valid) value |= 0x80000000L; in CO_ODF_RPDOcom()
440 if(RPDO->restrictionFlags & 0x04) in CO_ODF_RPDOcom()
442 if(*RPDO->operatingState == CO_NMT_OPERATIONAL && (RPDO->restrictionFlags & 0x01)) in CO_ODF_RPDOcom()
453 if(((value)&0xFFFF) == (RPDO->defaultCOB_ID + RPDO->nodeId)){ in CO_ODF_RPDOcom()
455 value += RPDO->defaultCOB_ID; in CO_ODF_RPDOcom()
460 if(RPDO->valid && ((value ^ RPDO->RPDOCommPar->COB_IDUsedByRPDO) & 0x3FFFFFFFL)) in CO_ODF_RPDOcom()
464 CO_RPDOconfigCom(RPDO, value); in CO_ODF_RPDOcom()
468 bool_t synchronousPrev = RPDO->synchronous; in CO_ODF_RPDOcom()
474 RPDO->synchronous = (*value <= 240) ? true : false; in CO_ODF_RPDOcom()
477 if(RPDO->synchronous != synchronousPrev) { in CO_ODF_RPDOcom()
478 CLEAR_CANrxNew(RPDO->CANrxNew[1]); in CO_ODF_RPDOcom()
587 CO_RPDO_t *RPDO; in CO_ODF_RPDOmap() local
589 RPDO = (CO_RPDO_t*) ODF_arg->object; in CO_ODF_RPDOmap()
597 if(!RPDO->dataLength) *value = 0; in CO_ODF_RPDOmap()
603 if(RPDO->restrictionFlags & 0x08) in CO_ODF_RPDOmap()
605 if(*RPDO->operatingState == CO_NMT_OPERATIONAL && (RPDO->restrictionFlags & 0x02)) in CO_ODF_RPDOmap()
607 if(RPDO->valid) in CO_ODF_RPDOmap()
618 return CO_RPDOconfigMap(RPDO, *value); in CO_ODF_RPDOmap()
629 if(RPDO->dataLength) in CO_ODF_RPDOmap()
634 RPDO->SDO, in CO_ODF_RPDOmap()
715 CO_RPDO_t *RPDO, in CO_RPDO_init() argument
731 if(RPDO==NULL || em==NULL || SDO==NULL || operatingState==NULL || in CO_RPDO_init()
737 RPDO->em = em; in CO_RPDO_init()
738 RPDO->SDO = SDO; in CO_RPDO_init()
739 RPDO->SYNC = SYNC; in CO_RPDO_init()
740 RPDO->RPDOCommPar = RPDOCommPar; in CO_RPDO_init()
741 RPDO->RPDOMapPar = RPDOMapPar; in CO_RPDO_init()
742 RPDO->operatingState = operatingState; in CO_RPDO_init()
743 RPDO->nodeId = nodeId; in CO_RPDO_init()
744 RPDO->defaultCOB_ID = defaultCOB_ID; in CO_RPDO_init()
745 RPDO->restrictionFlags = restrictionFlags; in CO_RPDO_init()
748 CO_OD_configure(SDO, idx_RPDOCommPar, CO_ODF_RPDOcom, (void*)RPDO, 0, 0); in CO_RPDO_init()
749 CO_OD_configure(SDO, idx_RPDOMapPar, CO_ODF_RPDOmap, (void*)RPDO, 0, 0); in CO_RPDO_init()
752 CLEAR_CANrxNew(RPDO->CANrxNew[0]); in CO_RPDO_init()
753 CLEAR_CANrxNew(RPDO->CANrxNew[1]); in CO_RPDO_init()
754 RPDO->CANdevRx = CANdevRx; in CO_RPDO_init()
755 RPDO->CANdevRxIdx = CANdevRxIdx; in CO_RPDO_init()
757 CO_RPDOconfigMap(RPDO, RPDOMapPar->numberOfMappedObjects); in CO_RPDO_init()
758 CO_RPDOconfigCom(RPDO, RPDOCommPar->COB_IDUsedByRPDO); in CO_RPDO_init()
898 void CO_RPDO_process(CO_RPDO_t *RPDO, bool_t syncWas){ in CO_RPDO_process() argument
900 if(!RPDO->valid || !(*RPDO->operatingState == CO_NMT_OPERATIONAL)) in CO_RPDO_process()
902 CLEAR_CANrxNew(RPDO->CANrxNew[0]); in CO_RPDO_process()
903 CLEAR_CANrxNew(RPDO->CANrxNew[1]); in CO_RPDO_process()
905 else if(!RPDO->synchronous || syncWas) in CO_RPDO_process()
914 if(RPDO->SYNC && RPDO->synchronous && !RPDO->SYNC->CANrxToggle) { in CO_RPDO_process()
918 while(IS_CANrxNew(RPDO->CANrxNew[bufNo])){ in CO_RPDO_process()
923 i = RPDO->dataLength; in CO_RPDO_process()
924 pPDOdataByte = &RPDO->CANrxData[bufNo][0]; in CO_RPDO_process()
925 ppODdataByte = &RPDO->mapPointer[0]; in CO_RPDO_process()
929 CLEAR_CANrxNew(RPDO->CANrxNew[bufNo]); in CO_RPDO_process()
938 if(update && RPDO->SDO->ODExtensions){ in CO_RPDO_process()
941 const uint32_t* pMap = &RPDO->RPDOMapPar->mappedObject1; in CO_RPDO_process()
942 CO_SDO_t *pSDO = RPDO->SDO; in CO_RPDO_process()
944 for(i=RPDO->RPDOMapPar->numberOfMappedObjects; i>0; i--){ in CO_RPDO_process()