From 4bfb6ea0caf87bda4e09426256b94e95e98f1729 Mon Sep 17 00:00:00 2001
From: Florian Pose <fp@igh-essen.com>
Date: Fri, 27 Oct 2006 13:59:49 +0000
Subject: [PATCH] Print certain warnings only at debug_level.

---
 include/ecrt.h   |  2 +-
 master/fsm.c     | 11 ++++++-----
 master/fsm_coe.c |  8 +++++---
 master/master.c  |  6 ++++--
 master/slave.c   |  4 +++-
 5 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/include/ecrt.h b/include/ecrt.h
index b1c14f5c..a5cc7b74 100644
--- a/include/ecrt.h
+++ b/include/ecrt.h
@@ -161,7 +161,7 @@ int ecrt_slave_conf_sdo32(ec_slave_t *slave, uint16_t sdo_index,
                           uint8_t sdo_subindex, uint32_t value);
 
 int ecrt_slave_pdo_size(ec_slave_t *slave, uint16_t pdo_index,
-                        uint8_t pdo_subindex, size_t size);
+                        uint8_t pdo_subindex, size_t size); // deprecated
 
 /******************************************************************************
  *  Bitwise read/write macros
diff --git a/master/fsm.c b/master/fsm.c
index c13ba1b2..c507a421 100644
--- a/master/fsm.c
+++ b/master/fsm.c
@@ -492,7 +492,7 @@ void ec_fsm_master_read_states(ec_fsm_t *fsm /**< finite state machine */)
     if (datagram->working_counter != 1) {
         if (slave->online) {
             slave->online = 0;
-            if (master->debug_level)
+            if (slave->master->debug_level)
                 EC_DBG("Slave %i: offline.\n", slave->ring_position);
         }
         ec_fsm_master_action_next_slave_state(fsm);
@@ -505,7 +505,7 @@ void ec_fsm_master_read_states(ec_fsm_t *fsm /**< finite state machine */)
         slave->online = 1;
         slave->error_flag = 0; // clear error flag
         slave->current_state = new_state;
-        if (master->debug_level) {
+        if (slave->master->debug_level) {
             char cur_state[EC_STATE_STRING_SIZE];
             ec_state_string(slave->current_state, cur_state);
             EC_DBG("Slave %i: online (%s).\n",
@@ -513,7 +513,7 @@ void ec_fsm_master_read_states(ec_fsm_t *fsm /**< finite state machine */)
         }
     }
     else if (new_state != slave->current_state) {
-        if (master->debug_level) {
+        if (slave->master->debug_level) {
             char old_state[EC_STATE_STRING_SIZE],
                 cur_state[EC_STATE_STRING_SIZE];
             ec_state_string(slave->current_state, old_state);
@@ -1188,8 +1188,9 @@ void ec_fsm_slavescan_eeprom_data(ec_fsm_t *fsm /**< finite state machine */)
                     goto end;
                 break;
             default:
-                EC_WARN("Unknown category type 0x%04X in slave %i.\n",
-                        cat_type, slave->ring_position);
+                if (fsm->master->debug_level)
+                    EC_WARN("Unknown category type 0x%04X in slave %i.\n",
+                            cat_type, slave->ring_position);
         }
 
         cat_word += cat_size + 2;
diff --git a/master/fsm_coe.c b/master/fsm_coe.c
index bcd203d3..0c6e1f03 100644
--- a/master/fsm_coe.c
+++ b/master/fsm_coe.c
@@ -395,8 +395,9 @@ void ec_fsm_coe_dict_response(ec_fsm_coe_t *fsm /**< finite state machine */)
     for (i = 0; i < sdo_count; i++) {
         sdo_index = EC_READ_U16(data + 8 + i * 2);
         if (!sdo_index) {
-            EC_WARN("SDO dictionary of slave %i contains index 0x0000.\n",
-                    slave->ring_position);
+            if (slave->master->debug_level)
+                EC_WARN("SDO dictionary of slave %i contains index 0x0000.\n",
+                        slave->ring_position);
             continue;
         }
 
@@ -1191,7 +1192,8 @@ void ec_fsm_coe_up_response(ec_fsm_coe_t *fsm /**< finite state machine */)
     expedited = EC_READ_U8(data + 2) & 0x02;
 
     if (expedited) {
-        EC_WARN("Received expedited response upon normal request!\n");
+        if (master->debug_level)
+            EC_WARN("Received expedited response upon normal request!\n");
 
         size_specified = EC_READ_U8(data + 2) & 0x01;
         if (size_specified) {
diff --git a/master/master.c b/master/master.c
index 3f7dff93..c503411e 100644
--- a/master/master.c
+++ b/master/master.c
@@ -1031,8 +1031,10 @@ void ec_master_eoe_start(ec_master_t *master /**< EtherCAT master */)
         }
 
         if (!found) {
-            EC_WARN("No EoE handler for slave %i!\n", slave->ring_position);
-            ec_slave_request_state(slave, EC_SLAVE_STATE_INIT);
+            if (master->debug_level)
+                EC_WARN("No EoE handler for slave %i!\n",
+                        slave->ring_position);
+            ec_slave_request_state(slave, EC_SLAVE_STATE_PREOP);
         }
     }
 
diff --git a/master/slave.c b/master/slave.c
index 0dda0754..3c664ace 100644
--- a/master/slave.c
+++ b/master/slave.c
@@ -496,7 +496,9 @@ int ec_slave_locate_string(ec_slave_t *slave, /**< EtherCAT slave */
         return 0;
     }
 
-    EC_WARN("String %i not found in slave %i.\n", index, slave->ring_position);
+    if (slave->master->debug_level)
+        EC_WARN("String %i not found in slave %i.\n",
+                index, slave->ring_position);
 
     err_string = "(string not found)";
 
-- 
GitLab