src/sdo.c
changeset 665 90e6cf84a0d7
parent 664 a03f0aa7d219
child 666 9febdd6fdc71
equal deleted inserted replaced
664:a03f0aa7d219 665:90e6cf84a0d7
   154 	d->transfers[id].abortCode = SDOABT_TIMED_OUT;
   154 	d->transfers[id].abortCode = SDOABT_TIMED_OUT;
   155 	/* Call the user function to inform of the problem.*/
   155 	/* Call the user function to inform of the problem.*/
   156 	if(d->transfers[id].Callback)
   156 	if(d->transfers[id].Callback)
   157 		/*If ther is a callback, it is responsible to close SDO transfer (client)*/
   157 		/*If ther is a callback, it is responsible to close SDO transfer (client)*/
   158 		(*d->transfers[id].Callback)(d, nodeId);
   158 		(*d->transfers[id].Callback)(d, nodeId);
   159 
       
   160 	/*Reset the line if (whoami == SDO_SERVER) or the callback did not close the line.
   159 	/*Reset the line if (whoami == SDO_SERVER) or the callback did not close the line.
   161 	  Otherwise this sdo transfer would never be closed. */
   160 	  Otherwise this sdo transfer would never be closed. */
   162 	resetSDOline(d, (UNS8)id);
   161 	if(d->transfers[id].abortCode == SDOABT_TIMED_OUT) 
       
   162 		resetSDOline(d, (UNS8)id);
   163 }
   163 }
   164 
   164 
   165 #define StopSDO_TIMER(id) \
   165 #define StopSDO_TIMER(id) \
   166 	MSG_WAR(0x3A05, "StopSDO_TIMER for line : ", line);\
   166 	MSG_WAR(0x3A05, "StopSDO_TIMER for line : ", line);\
   167 d->transfers[id].timer = DelAlarm(d->transfers[id].timer);
   167 d->transfers[id].timer = DelAlarm(d->transfers[id].timer);