master/fsm_sii.c
branchstable-1.3
changeset 1745 07fd94c5119d
parent 1744 7bc131b92039
child 1746 72e7507b3f1b
equal deleted inserted replaced
1744:7bc131b92039 1745:07fd94c5119d
   194         return;
   194         return;
   195     }
   195     }
   196 
   196 
   197     if (datagram->working_counter != 1) {
   197     if (datagram->working_counter != 1) {
   198         fsm->state = ec_fsm_sii_error;
   198         fsm->state = ec_fsm_sii_error;
   199         EC_ERR("Reception of SII read datagram failed - slave %i did not"
   199         EC_ERR("Reception of SII read datagram failed on slave %i: ",
   200                " respond.\n", fsm->slave->ring_position);
   200                 fsm->slave->ring_position);
       
   201         ec_datagram_print_wc_error(datagram);
   201         return;
   202         return;
   202     }
   203     }
   203 
   204 
   204     fsm->cycles_start = datagram->cycles_sent;
   205     fsm->cycles_start = datagram->cycles_sent;
   205     fsm->check_once_more = 1;
   206     fsm->check_once_more = 1;
   240         return;
   241         return;
   241     }
   242     }
   242 
   243 
   243     if (datagram->working_counter != 1) {
   244     if (datagram->working_counter != 1) {
   244         fsm->state = ec_fsm_sii_error;
   245         fsm->state = ec_fsm_sii_error;
   245         EC_ERR("Reception of SII check/fetch datagram failed - slave %i did"
   246         EC_ERR("Reception of SII check/fetch datagram failed on slave %i: ",
   246                " not respond\n", fsm->slave->ring_position);
   247                 fsm->slave->ring_position);
       
   248         ec_datagram_print_wc_error(datagram);
   247         return;
   249         return;
   248     }
   250     }
   249 
   251 
   250     // check "busy bit"
   252     // check "busy bit"
   251     if (EC_READ_U8(datagram->data + 1) & 0x81) {
   253     if (EC_READ_U8(datagram->data + 1) & 0x81) {
   336         return;
   338         return;
   337     }
   339     }
   338 
   340 
   339     if (datagram->working_counter != 1) {
   341     if (datagram->working_counter != 1) {
   340         fsm->state = ec_fsm_sii_error;
   342         fsm->state = ec_fsm_sii_error;
   341         EC_ERR("Reception of SII write datagram failed - slave %i did not"
   343         EC_ERR("Reception of SII write datagram failed on slave %i: ",
   342                " respond.\n", fsm->slave->ring_position);
   344                 fsm->slave->ring_position);
       
   345         ec_datagram_print_wc_error(datagram);
   343         return;
   346         return;
   344     }
   347     }
   345 
   348 
   346     fsm->cycles_start = datagram->cycles_sent;
   349     fsm->cycles_start = datagram->cycles_sent;
   347     fsm->check_once_more = 1;
   350     fsm->check_once_more = 1;
   373         return;
   376         return;
   374     }
   377     }
   375 
   378 
   376     if (datagram->working_counter != 1) {
   379     if (datagram->working_counter != 1) {
   377         fsm->state = ec_fsm_sii_error;
   380         fsm->state = ec_fsm_sii_error;
   378         EC_ERR("Reception of SII write check datagram failed - slave %i did"
   381         EC_ERR("Reception of SII write check datagram failed on slave %i: ",
   379                " not respond.\n", fsm->slave->ring_position);
   382                 fsm->slave->ring_position);
       
   383         ec_datagram_print_wc_error(datagram);
   380         return;
   384         return;
   381     }
   385     }
   382 
   386 
   383     if (EC_READ_U8(datagram->data + 1) & 0x82) {
   387     if (EC_READ_U8(datagram->data + 1) & 0x82) {
   384         // still busy... timeout?
   388         // still busy... timeout?