From 62272c279e7cc994cce40ce1fd68c4d9796aa810 Mon Sep 17 00:00:00 2001
From: Florian Pose <fp@igh-essen.com>
Date: Fri, 17 Mar 2006 15:18:13 +0000
Subject: [PATCH] =?UTF-8?q?Dom=C3=A4nen-Status=20(ecrt=5Fdomain=5Fstate)?=
 =?UTF-8?q?=20hinzugef=C3=BCgt.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 include/ecrt.h  |  1 +
 master/domain.c | 22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/include/ecrt.h b/include/ecrt.h
index 110eea5a..39bf82ca 100644
--- a/include/ecrt.h
+++ b/include/ecrt.h
@@ -78,6 +78,7 @@ int ecrt_domain_register_field_list(ec_domain_t *domain,
                                     ec_field_init_t *fields);
 void ecrt_domain_queue(ec_domain_t *domain);
 void ecrt_domain_process(ec_domain_t *domain);
+int ecrt_domain_state(ec_domain_t *domain);
 
 /*****************************************************************************/
 // Slave Methods
diff --git a/master/domain.c b/master/domain.c
index ac73d7e2..72b4c9ba 100644
--- a/master/domain.c
+++ b/master/domain.c
@@ -394,10 +394,32 @@ void ecrt_domain_process(ec_domain_t *domain /**< Dom
 
 /*****************************************************************************/
 
+/**
+   Gibt den Status einer Domäne zurück.
+
+   \return 0 wenn alle Kommandos empfangen wurden, sonst -1.
+*/
+
+int ecrt_domain_state(ec_domain_t *domain /**< Domäne */)
+{
+    unsigned int i;
+    ec_command_t *command;
+
+    for (i = 0; i < domain->command_count; i++) {
+        command = domain->commands + i;
+        if (command->state != EC_CMD_RECEIVED) return -1;
+    }
+
+    return 0;
+}
+
+/*****************************************************************************/
+
 EXPORT_SYMBOL(ecrt_domain_register_field);
 EXPORT_SYMBOL(ecrt_domain_register_field_list);
 EXPORT_SYMBOL(ecrt_domain_queue);
 EXPORT_SYMBOL(ecrt_domain_process);
+EXPORT_SYMBOL(ecrt_domain_state);
 
 /*****************************************************************************/
 
-- 
GitLab