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); |