96 MSG_WAR(0x2A02, "server node : ", d->transfers[id].nodeId); |
96 MSG_WAR(0x2A02, "server node : ", d->transfers[id].nodeId); |
97 MSG_WAR(0x2A02, " index : ", d->transfers[id].index); |
97 MSG_WAR(0x2A02, " index : ", d->transfers[id].index); |
98 MSG_WAR(0x2A02, " subIndex : ", d->transfers[id].subIndex); |
98 MSG_WAR(0x2A02, " subIndex : ", d->transfers[id].subIndex); |
99 /* Reset timer handler */ |
99 /* Reset timer handler */ |
100 d->transfers[id].timer = TIMER_NONE; |
100 d->transfers[id].timer = TIMER_NONE; |
101 /* Call the user function to inform of the problem.*/ |
101 /*Set aborted state*/ |
102 (*d->SDOtimeoutError)((UNS8)id); |
102 d->transfers[id].state = SDO_ABORTED_INTERNAL; |
103 /* Sending a SDO abort */ |
103 /* Sending a SDO abort */ |
104 sendSDOabort(d, d->transfers[id].whoami, |
104 sendSDOabort(d, d->transfers[id].whoami, |
105 d->transfers[id].index, d->transfers[id].subIndex, SDOABT_TIMED_OUT); |
105 d->transfers[id].index, d->transfers[id].subIndex, SDOABT_TIMED_OUT); |
106 /* Reset the line*/ |
106 d->transfers[id].abortCode = SDOABT_TIMED_OUT; |
107 resetSDOline(d, (UNS8)id); |
107 /* Call the user function to inform of the problem.*/ |
|
108 if(d->transfers[id].Callback) |
|
109 /*If ther is a callback, it is responsible to close SDO transfer (client)*/ |
|
110 (*d->transfers[id].Callback)(d,d->transfers[id].nodeId); |
|
111 else if(d->transfers[id].whoami == SDO_SERVER) |
|
112 /*Else, if server, reset the line*/ |
|
113 resetSDOline(d, (UNS8)id); |
108 } |
114 } |
109 |
115 |
110 #define StopSDO_TIMER(id) \ |
116 #define StopSDO_TIMER(id) \ |
111 MSG_WAR(0x3A05, "StopSDO_TIMER for line : ", line);\ |
117 MSG_WAR(0x3A05, "StopSDO_TIMER for line : ", line);\ |
112 d->transfers[id].timer = DelAlarm(d->transfers[id].timer); |
118 d->transfers[id].timer = DelAlarm(d->transfers[id].timer); |