src/sdo.c
changeset 154 1b3165f2d17d
parent 149 fe50ada8020b
child 163 212a9ea3b968
equal deleted inserted replaced
153:1c1ad874fe8f 154:1b3165f2d17d
   976       if (err) {
   976       if (err) {
   977 	MSG_ERR(0x1AA5, "SDO error : Received response for unknown download request from nodeId", nodeId); 
   977 	MSG_ERR(0x1AA5, "SDO error : Received response for unknown download request from nodeId", nodeId); 
   978 	failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
   978 	failedSDO(d, nodeId, whoami, 0, 0, SDOABT_LOCAL_CTRL_ERROR);
   979 	return 0xFF;
   979 	return 0xFF;
   980       }
   980       }
   981       /* Reset the wathdog */
   981       /* Reset the watchdog */
   982       RestartSDO_TIMER(line)
   982       RestartSDO_TIMER(line)
   983       index = d->transfers[line].index;
   983       index = d->transfers[line].index;
   984       subIndex = d->transfers[line].subIndex;
   984       subIndex = d->transfers[line].subIndex;
   985       /* End transmission or requesting  next segment. */
   985       /* End transmission or requesting  next segment. */
   986       getSDOlineRestBytes(d, line, &nbBytes);
   986       getSDOlineRestBytes(d, line, &nbBytes);
  1152       sdo.body.data[i] = 0;
  1152       sdo.body.data[i] = 0;
  1153   }
  1153   }
  1154   sdo.body.data[1] = index & 0xFF;        /* LSB */
  1154   sdo.body.data[1] = index & 0xFF;        /* LSB */
  1155   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
  1155   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
  1156   sdo.body.data[3] = subIndex;
  1156   sdo.body.data[3] = subIndex;
  1157   
  1157 
       
  1158   d->transfers[line].Callback = Callback;
       
  1159     
  1158   err = sendSDO(d, SDO_CLIENT, sdo);
  1160   err = sendSDO(d, SDO_CLIENT, sdo);
  1159   if (err) {
  1161   if (err) {
  1160     MSG_ERR(0x1AD1, "SDO. Error while sending SDO to node : ", nodeId);
  1162     MSG_ERR(0x1AD1, "SDO. Error while sending SDO to node : ", nodeId);
  1161     /* release the line */
  1163     /* release the line */
  1162     resetSDOline(d, line);
  1164     resetSDOline(d, line);
  1163     return 0xFF;
  1165     return 0xFF;
  1164   }
  1166   }
  1165   d->transfers[line].Callback = Callback;
  1167 
       
  1168   
  1166   return 0;
  1169   return 0;
  1167 }
  1170 }
  1168 
  1171 
  1169 /*--------------------------------------------------------------------------*/
  1172 /*--------------------------------------------------------------------------*/
  1170 
  1173 
  1253   sdo.body.data[1] = index & 0xFF;        /* LSB */
  1256   sdo.body.data[1] = index & 0xFF;        /* LSB */
  1254   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
  1257   sdo.body.data[2] = (index >> 8) & 0xFF; /* MSB */
  1255   sdo.body.data[3] = subIndex;
  1258   sdo.body.data[3] = subIndex;
  1256   for (i = 4 ; i < 8 ; i++)
  1259   for (i = 4 ; i < 8 ; i++)
  1257     sdo.body.data[i] = 0;
  1260     sdo.body.data[i] = 0;
       
  1261   d->transfers[line].Callback = Callback;
  1258   err = sendSDO(d, SDO_CLIENT, sdo);
  1262   err = sendSDO(d, SDO_CLIENT, sdo);
  1259   if (err) {
  1263   if (err) {
  1260     MSG_ERR(0x1AE5, "SDO. Error while sending SDO to node : ", nodeId);
  1264     MSG_ERR(0x1AE5, "SDO. Error while sending SDO to node : ", nodeId);
  1261     /* release the line */
  1265     /* release the line */
  1262     resetSDOline(d, line);
  1266     resetSDOline(d, line);
  1263     return 0xFF;
  1267     return 0xFF;
  1264   }		
  1268   }		
  1265   d->transfers[line].Callback = Callback;
       
  1266   return 0;
  1269   return 0;
  1267 }
  1270 }
  1268 
  1271 
  1269 /*--------------------------------------------------------------------------*/
  1272 /*--------------------------------------------------------------------------*/
  1270 
  1273