master/fsm_coe.c
changeset 594 07dd2a7df66e
parent 505 bc443ca0077f
child 637 d5d04c868e0e
equal deleted inserted replaced
593:78c838980258 594:07dd2a7df66e
   284     }
   284     }
   285 
   285 
   286     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   286     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   287         fsm->state = ec_fsm_coe_error;
   287         fsm->state = ec_fsm_coe_error;
   288         EC_ERR("Failed to receive CoE dictionary request datagram for"
   288         EC_ERR("Failed to receive CoE dictionary request datagram for"
   289                " slave %i.\n", slave->ring_position);
   289                " slave %i (datagram state %i).\n",
       
   290                slave->ring_position, datagram->state);
   290         return;
   291         return;
   291     }
   292     }
   292 
   293 
   293     if (datagram->working_counter != 1) {
   294     if (datagram->working_counter != 1) {
   294         fsm->state = ec_fsm_coe_error;
   295         fsm->state = ec_fsm_coe_error;
   321         return;
   322         return;
   322     }
   323     }
   323 
   324 
   324     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   325     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   325         fsm->state = ec_fsm_coe_error;
   326         fsm->state = ec_fsm_coe_error;
   326         EC_ERR("Failed to receive CoE mailbox check datagram for slave %i.\n",
   327         EC_ERR("Failed to receive CoE mailbox check datagram for slave %i"
   327                slave->ring_position);
   328                 " (datagram state %i).\n",
       
   329                slave->ring_position, datagram->state);
   328         return;
   330         return;
   329     }
   331     }
   330 
   332 
   331     if (datagram->working_counter != 1) {
   333     if (datagram->working_counter != 1) {
   332         fsm->state = ec_fsm_coe_error;
   334         fsm->state = ec_fsm_coe_error;
   382     }
   384     }
   383 
   385 
   384     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   386     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   385         fsm->state = ec_fsm_coe_error;
   387         fsm->state = ec_fsm_coe_error;
   386         EC_ERR("Failed to receive CoE dictionary response datagram for"
   388         EC_ERR("Failed to receive CoE dictionary response datagram for"
   387                " slave %i.\n", slave->ring_position);
   389                " slave %i (datagram state %i).\n",
       
   390                slave->ring_position, datagram->state);
   388         return;
   391         return;
   389     }
   392     }
   390 
   393 
   391     if (datagram->working_counter != 1) {
   394     if (datagram->working_counter != 1) {
   392         fsm->state = ec_fsm_coe_error;
   395         fsm->state = ec_fsm_coe_error;
   511     }
   514     }
   512 
   515 
   513     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   516     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   514         fsm->state = ec_fsm_coe_error;
   517         fsm->state = ec_fsm_coe_error;
   515         EC_ERR("Failed to receive CoE SDO description request datagram for"
   518         EC_ERR("Failed to receive CoE SDO description request datagram for"
   516                " slave %i.\n", slave->ring_position);
   519                " slave %i (datagram state %i).\n",
       
   520                slave->ring_position, datagram->state);
   517         return;
   521         return;
   518     }
   522     }
   519 
   523 
   520     if (datagram->working_counter != 1) {
   524     if (datagram->working_counter != 1) {
   521         fsm->state = ec_fsm_coe_error;
   525         fsm->state = ec_fsm_coe_error;
   548         return;
   552         return;
   549     }
   553     }
   550 
   554 
   551     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   555     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   552         fsm->state = ec_fsm_coe_error;
   556         fsm->state = ec_fsm_coe_error;
   553         EC_ERR("Failed to receive CoE mailbox check datagram from slave %i.\n",
   557         EC_ERR("Failed to receive CoE mailbox check datagram from slave %i"
   554                slave->ring_position);
   558                 " (datagram state %i).\n",
       
   559                 slave->ring_position, datagram->state);
   555         return;
   560         return;
   556     }
   561     }
   557 
   562 
   558     if (datagram->working_counter != 1) {
   563     if (datagram->working_counter != 1) {
   559         fsm->state = ec_fsm_coe_error;
   564         fsm->state = ec_fsm_coe_error;
   607     }
   612     }
   608 
   613 
   609     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   614     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   610         fsm->state = ec_fsm_coe_error;
   615         fsm->state = ec_fsm_coe_error;
   611         EC_ERR("Failed to receive CoE SDO description response datagram from"
   616         EC_ERR("Failed to receive CoE SDO description response datagram from"
   612                " slave %i.\n", slave->ring_position);
   617                " slave %i (datagram state %i).\n",
       
   618                slave->ring_position, datagram->state);
   613         return;
   619         return;
   614     }
   620     }
   615 
   621 
   616     if (datagram->working_counter != 1) {
   622     if (datagram->working_counter != 1) {
   617         fsm->state = ec_fsm_coe_error;
   623         fsm->state = ec_fsm_coe_error;
   723     }
   729     }
   724 
   730 
   725     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   731     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   726         fsm->state = ec_fsm_coe_error;
   732         fsm->state = ec_fsm_coe_error;
   727         EC_ERR("Failed to receive CoE SDO entry request datagram for"
   733         EC_ERR("Failed to receive CoE SDO entry request datagram for"
   728                " slave %i.\n", slave->ring_position);
   734                " slave %i (datagram state %i).\n",
       
   735                slave->ring_position, datagram->state);
   729         return;
   736         return;
   730     }
   737     }
   731 
   738 
   732     if (datagram->working_counter != 1) {
   739     if (datagram->working_counter != 1) {
   733         fsm->state = ec_fsm_coe_error;
   740         fsm->state = ec_fsm_coe_error;
   761         return;
   768         return;
   762     }
   769     }
   763 
   770 
   764     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   771     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   765         fsm->state = ec_fsm_coe_error;
   772         fsm->state = ec_fsm_coe_error;
   766         EC_ERR("Failed to receive CoE mailbox check datagram from slave %i.\n",
   773         EC_ERR("Failed to receive CoE mailbox check datagram from slave %i"
   767                slave->ring_position);
   774                 " (datagram state %i).\n",
       
   775                slave->ring_position, datagram->state);
   768         return;
   776         return;
   769     }
   777     }
   770 
   778 
   771     if (datagram->working_counter != 1) {
   779     if (datagram->working_counter != 1) {
   772         fsm->state = ec_fsm_coe_error;
   780         fsm->state = ec_fsm_coe_error;
   821     }
   829     }
   822 
   830 
   823     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   831     if (datagram->state != EC_DATAGRAM_RECEIVED) {
   824         fsm->state = ec_fsm_coe_error;
   832         fsm->state = ec_fsm_coe_error;
   825         EC_ERR("Failed to receive CoE SDO description response datagram from"
   833         EC_ERR("Failed to receive CoE SDO description response datagram from"
   826                " slave %i.\n", slave->ring_position);
   834                " slave %i (datagram state %i).\n",
       
   835                slave->ring_position, datagram->state);
   827         return;
   836         return;
   828     }
   837     }
   829 
   838 
   830     if (datagram->working_counter != 1) {
   839     if (datagram->working_counter != 1) {
   831         fsm->state = ec_fsm_coe_error;
   840         fsm->state = ec_fsm_coe_error;
  1016     }
  1025     }
  1017 
  1026 
  1018     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1027     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1019         fsm->state = ec_fsm_coe_error;
  1028         fsm->state = ec_fsm_coe_error;
  1020         EC_ERR("Failed to receive CoE download request datagram for"
  1029         EC_ERR("Failed to receive CoE download request datagram for"
  1021                " slave %i.\n", slave->ring_position);
  1030                " slave %i (datagram state %i).\n",
       
  1031                slave->ring_position, datagram->state);
  1022         return;
  1032         return;
  1023     }
  1033     }
  1024 
  1034 
  1025     if (datagram->working_counter != 1) {
  1035     if (datagram->working_counter != 1) {
  1026         fsm->state = ec_fsm_coe_error;
  1036         fsm->state = ec_fsm_coe_error;
  1053         return;
  1063         return;
  1054     }
  1064     }
  1055 
  1065 
  1056     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1066     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1057         fsm->state = ec_fsm_coe_error;
  1067         fsm->state = ec_fsm_coe_error;
  1058         EC_ERR("Failed to receive CoE mailbox check datagram for slave %i.\n",
  1068         EC_ERR("Failed to receive CoE mailbox check datagram for slave %i"
  1059                slave->ring_position);
  1069                 " (datagram state %i).\n",
       
  1070                slave->ring_position, datagram->state);
  1060         return;
  1071         return;
  1061     }
  1072     }
  1062 
  1073 
  1063     if (datagram->working_counter != 1) {
  1074     if (datagram->working_counter != 1) {
  1064         fsm->state = ec_fsm_coe_error;
  1075         fsm->state = ec_fsm_coe_error;
  1111     }
  1122     }
  1112 
  1123 
  1113     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1124     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1114         fsm->state = ec_fsm_coe_error;
  1125         fsm->state = ec_fsm_coe_error;
  1115         EC_ERR("Failed to receive CoE download response datagram from"
  1126         EC_ERR("Failed to receive CoE download response datagram from"
  1116                " slave %i.\n", slave->ring_position);
  1127                " slave %i (datagram state %i).\n",
       
  1128                slave->ring_position, datagram->state);
  1117         return;
  1129         return;
  1118     }
  1130     }
  1119 
  1131 
  1120     if (datagram->working_counter != 1) {
  1132     if (datagram->working_counter != 1) {
  1121         fsm->state = ec_fsm_coe_error;
  1133         fsm->state = ec_fsm_coe_error;
  1233         return;
  1245         return;
  1234     }
  1246     }
  1235 
  1247 
  1236     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1248     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1237         fsm->state = ec_fsm_coe_error;
  1249         fsm->state = ec_fsm_coe_error;
  1238         EC_ERR("Failed to receive CoE upload request for slave %i.\n",
  1250         EC_ERR("Failed to receive CoE upload request for slave %i"
  1239                slave->ring_position);
  1251                 " (datagram state %i).\n",
       
  1252                slave->ring_position, datagram->state);
  1240         return;
  1253         return;
  1241     }
  1254     }
  1242 
  1255 
  1243     if (datagram->working_counter != 1) {
  1256     if (datagram->working_counter != 1) {
  1244         fsm->state = ec_fsm_coe_error;
  1257         fsm->state = ec_fsm_coe_error;
  1271         return;
  1284         return;
  1272     }
  1285     }
  1273 
  1286 
  1274     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1287     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1275         fsm->state = ec_fsm_coe_error;
  1288         fsm->state = ec_fsm_coe_error;
  1276         EC_ERR("Failed to receive CoE mailbox check datagram from slave %i.\n",
  1289         EC_ERR("Failed to receive CoE mailbox check datagram from slave %i"
  1277                slave->ring_position);
  1290                 " (datagram state %i).\n",
       
  1291                slave->ring_position, datagram->state);
  1278         return;
  1292         return;
  1279     }
  1293     }
  1280 
  1294 
  1281     if (datagram->working_counter != 1) {
  1295     if (datagram->working_counter != 1) {
  1282         fsm->state = ec_fsm_coe_error;
  1296         fsm->state = ec_fsm_coe_error;
  1334     }
  1348     }
  1335 
  1349 
  1336     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1350     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1337         fsm->state = ec_fsm_coe_error;
  1351         fsm->state = ec_fsm_coe_error;
  1338         EC_ERR("Failed to receive CoE upload response datagram for"
  1352         EC_ERR("Failed to receive CoE upload response datagram for"
  1339                " slave %i.\n", slave->ring_position);
  1353                " slave %i (datagram state %i).\n",
       
  1354                slave->ring_position, datagram->state);
  1340         return;
  1355         return;
  1341     }
  1356     }
  1342 
  1357 
  1343     if (datagram->working_counter != 1) {
  1358     if (datagram->working_counter != 1) {
  1344         fsm->state = ec_fsm_coe_error;
  1359         fsm->state = ec_fsm_coe_error;
  1482     }
  1497     }
  1483 
  1498 
  1484     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1499     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1485         fsm->state = ec_fsm_coe_error;
  1500         fsm->state = ec_fsm_coe_error;
  1486         EC_ERR("Failed to receive CoE upload segment request datagram for"
  1501         EC_ERR("Failed to receive CoE upload segment request datagram for"
  1487                " slave %i.\n", slave->ring_position);
  1502                " slave %i (datagram state %i).\n",
       
  1503                slave->ring_position, datagram->state);
  1488         return;
  1504         return;
  1489     }
  1505     }
  1490 
  1506 
  1491     if (datagram->working_counter != 1) {
  1507     if (datagram->working_counter != 1) {
  1492         fsm->state = ec_fsm_coe_error;
  1508         fsm->state = ec_fsm_coe_error;
  1519         return;
  1535         return;
  1520     }
  1536     }
  1521 
  1537 
  1522     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1538     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1523         fsm->state = ec_fsm_coe_error;
  1539         fsm->state = ec_fsm_coe_error;
  1524         EC_ERR("Failed to receive CoE mailbox check datagram for slave %i.\n",
  1540         EC_ERR("Failed to receive CoE mailbox check datagram for slave %i"
  1525                slave->ring_position);
  1541                 " (datagram state %i).\n",
       
  1542                slave->ring_position, datagram->state);
  1526         return;
  1543         return;
  1527     }
  1544     }
  1528 
  1545 
  1529     if (datagram->working_counter != 1) {
  1546     if (datagram->working_counter != 1) {
  1530         fsm->state = ec_fsm_coe_error;
  1547         fsm->state = ec_fsm_coe_error;
  1582     }
  1599     }
  1583 
  1600 
  1584     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1601     if (datagram->state != EC_DATAGRAM_RECEIVED) {
  1585         fsm->state = ec_fsm_coe_error;
  1602         fsm->state = ec_fsm_coe_error;
  1586         EC_ERR("Failed to receive CoE upload segment response datagram for"
  1603         EC_ERR("Failed to receive CoE upload segment response datagram for"
  1587                " slave %i.\n", slave->ring_position);
  1604                " slave %i (datagram state %i).\n",
       
  1605                slave->ring_position, datagram->state);
  1588         return;
  1606         return;
  1589     }
  1607     }
  1590 
  1608 
  1591     if (datagram->working_counter != 1) {
  1609     if (datagram->working_counter != 1) {
  1592         fsm->state = ec_fsm_coe_error;
  1610         fsm->state = ec_fsm_coe_error;