master/fsm_sii.c
changeset 713 ae41cadd25b6
parent 637 d5d04c868e0e
child 753 7ba5f9cd8f7e
equal deleted inserted replaced
712:14f899ac51f0 713:ae41cadd25b6
   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?