src/pdo.c
changeset 297 639e5ec5a120
parent 285 dbf7695290ae
child 298 dba062c5c3c1
equal deleted inserted replaced
296:03f2b8b8cb0b 297:639e5ec5a120
   525 	   	/* No changes -> go to next pdo*/
   525 	   	/* No changes -> go to next pdo*/
   526 		status = state11;
   526 		status = state11;
   527 	}else{
   527 	}else{
   528 		MSG_WAR(0x306A, "Changes TPDO number : ", pdoNum);
   528 		MSG_WAR(0x306A, "Changes TPDO number : ", pdoNum);
   529 		/* Changes detected -> transmit message */
   529 		/* Changes detected -> transmit message */
       
   530         UNS16 EventTimerDuration = *(UNS16*)d->objdict[offsetObjdict].pSubindex[5].pObject;
       
   531         UNS16 InhibitTimerDuration = *(UNS16*)d->objdict[offsetObjdict].pSubindex[3].pObject;
       
   532         
   530 		status = state5;
   533 		status = state5;
   531 		
   534 		
   532 		/* Start both event_timer and inhibit_timer*/
   535 		/* Start both event_timer and inhibit_timer*/
   533 		DelAlarm(d->PDO_status[pdoNum].event_timer);
   536         if(EventTimerDuration){
   534 		d->PDO_status[pdoNum].event_timer = SetAlarm(d, pdoNum, &PDOEventTimerAlarm, MS_TO_TIMEVAL(*(UNS16*)d->objdict[offsetObjdict].pSubindex[5].pObject), 0);
   537            DelAlarm(d->PDO_status[pdoNum].event_timer);
       
   538            d->PDO_status[pdoNum].event_timer = SetAlarm(d, pdoNum, &PDOEventTimerAlarm, MS_TO_TIMEVAL(EventTimerDuration), 0);
       
   539         }
   535 		
   540 		
   536 		DelAlarm(d->PDO_status[pdoNum].inhibit_timer);
   541         if(InhibitTimerDuration){
   537 		d->PDO_status[pdoNum].inhibit_timer = SetAlarm(d, pdoNum, &PDOInhibitTimerAlarm, US_TO_TIMEVAL(*(UNS16*)d->objdict[offsetObjdict].pSubindex[3].pObject * 100), 0);
   542 		   DelAlarm(d->PDO_status[pdoNum].inhibit_timer);
       
   543 		   d->PDO_status[pdoNum].inhibit_timer = SetAlarm(d, pdoNum, &PDOInhibitTimerAlarm, US_TO_TIMEVAL(InhibitTimerDuration * 100), 0);
       
   544            /* and inhibit TPDO */
       
   545            d->PDO_status[pdoNum].transmit_type_parameter |= PDO_INHIBITED;
       
   546         }
   538 		
   547 		
   539 		/* and inhibit TPDO */
       
   540 		d->PDO_status[pdoNum].transmit_type_parameter |= PDO_INHIBITED;
       
   541 	}
   548 	}
   542       }else{
   549       }else{
   543 	MSG_WAR(0x306C, "  PDO is not on EVENT or synchro or not at this SYNC. Trans type : ", *pTransmissionType);
   550 	MSG_WAR(0x306C, "  PDO is not on EVENT or synchro or not at this SYNC. Trans type : ", *pTransmissionType);
   544 	status = state11;
   551 	status = state11;
   545       }      
   552       }