equal
deleted
inserted
replaced
513 { |
513 { |
514 unsigned int working_counter_sum; |
514 unsigned int working_counter_sum; |
515 ec_datagram_t *datagram; |
515 ec_datagram_t *datagram; |
516 |
516 |
517 working_counter_sum = 0; |
517 working_counter_sum = 0; |
|
518 domain->state = 0; |
518 list_for_each_entry(datagram, &domain->datagrams, list) { |
519 list_for_each_entry(datagram, &domain->datagrams, list) { |
519 if (datagram->state == EC_DATAGRAM_RECEIVED) { |
520 if (datagram->state == EC_DATAGRAM_RECEIVED) { |
520 working_counter_sum += datagram->working_counter; |
521 working_counter_sum += datagram->working_counter; |
|
522 } |
|
523 else { |
|
524 domain->state = -1; |
521 } |
525 } |
522 } |
526 } |
523 |
527 |
524 if (working_counter_sum != domain->response_count) { |
528 if (working_counter_sum != domain->response_count) { |
525 domain->working_counter_changes++; |
529 domain->working_counter_changes++; |
552 \ingroup RealtimeInterface |
556 \ingroup RealtimeInterface |
553 */ |
557 */ |
554 |
558 |
555 int ecrt_domain_state(const ec_domain_t *domain /**< EtherCAT domain */) |
559 int ecrt_domain_state(const ec_domain_t *domain /**< EtherCAT domain */) |
556 { |
560 { |
557 ec_datagram_t *datagram; |
561 return domain->state; |
558 |
|
559 list_for_each_entry(datagram, &domain->datagrams, list) { |
|
560 if (datagram->state != EC_DATAGRAM_RECEIVED) return -1; |
|
561 } |
|
562 |
|
563 return 0; |
|
564 } |
562 } |
565 |
563 |
566 /*****************************************************************************/ |
564 /*****************************************************************************/ |
567 |
565 |
568 /** \cond */ |
566 /** \cond */ |