master/domain.c
changeset 363 58588a3a1562
parent 353 beb26409ba22
child 377 ecac8252f114
equal deleted inserted replaced
362:ae38aeb6fde9 363:58588a3a1562
   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 */