From 9ac61008b1052abece37a16136d4933f99c002e7 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Thu, 9 Jul 2015 01:49:45 +0300 Subject: [PATCH] NodeStatusMonitor logic fix --- libuavcan/include/uavcan/protocol/node_status_monitor.hpp | 4 ++-- libuavcan/test/protocol/node_status_monitor.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libuavcan/include/uavcan/protocol/node_status_monitor.hpp b/libuavcan/include/uavcan/protocol/node_status_monitor.hpp index db563085d3..92cba78d37 100644 --- a/libuavcan/include/uavcan/protocol/node_status_monitor.hpp +++ b/libuavcan/include/uavcan/protocol/node_status_monitor.hpp @@ -150,9 +150,9 @@ private: if (entry.time_since_last_update_ms100 >= OfflineTimeoutMs100) { - Entry new_entry_value; + Entry new_entry_value = entry; new_entry_value.time_since_last_update_ms100 = OfflineTimeoutMs100; - new_entry_value.status = NodeStatus(); + new_entry_value.status.mode = protocol::NodeStatus::MODE_OFFLINE; changeNodeStatus(nid, new_entry_value); } } diff --git a/libuavcan/test/protocol/node_status_monitor.cpp b/libuavcan/test/protocol/node_status_monitor.cpp index 2655ac23bc..cbe9193cb3 100644 --- a/libuavcan/test/protocol/node_status_monitor.cpp +++ b/libuavcan/test/protocol/node_status_monitor.cpp @@ -111,11 +111,11 @@ TEST(NodeStatusMonitor, Basic) ASSERT_TRUE(nsm.isNodeKnown(uavcan::NodeID(10))); ASSERT_EQ(NodeStatus::MODE_OFFLINE, nsm.getNodeStatus(uavcan::NodeID(10)).mode); - ASSERT_EQ(NodeStatus::HEALTH_CRITICAL, nsm.getNodeStatus(uavcan::NodeID(10)).health); + ASSERT_EQ(NodeStatus::HEALTH_OK, nsm.getNodeStatus(uavcan::NodeID(10)).health); ASSERT_TRUE(nsm.isNodeKnown(uavcan::NodeID(9))); ASSERT_EQ(NodeStatus::MODE_OFFLINE, nsm.getNodeStatus(uavcan::NodeID(9)).mode); - ASSERT_EQ(NodeStatus::HEALTH_CRITICAL, nsm.getNodeStatus(uavcan::NodeID(9)).health); + ASSERT_EQ(NodeStatus::HEALTH_WARNING, nsm.getNodeStatus(uavcan::NodeID(9)).health); ASSERT_TRUE(nsm.isNodeKnown(uavcan::NodeID(11))); ASSERT_EQ(NodeStatus::MODE_OFFLINE, nsm.getNodeStatus(uavcan::NodeID(11)).mode); @@ -143,11 +143,11 @@ TEST(NodeStatusMonitor, Basic) */ ASSERT_TRUE(nsm.isNodeKnown(uavcan::NodeID(10))); ASSERT_EQ(NodeStatus::MODE_OFFLINE, nsm.getNodeStatus(uavcan::NodeID(10)).mode); - ASSERT_EQ(NodeStatus::HEALTH_CRITICAL, nsm.getNodeStatus(uavcan::NodeID(10)).health); + ASSERT_EQ(NodeStatus::HEALTH_OK, nsm.getNodeStatus(uavcan::NodeID(10)).health); ASSERT_TRUE(nsm.isNodeKnown(uavcan::NodeID(9))); ASSERT_EQ(NodeStatus::MODE_OFFLINE, nsm.getNodeStatus(uavcan::NodeID(9)).mode); - ASSERT_EQ(NodeStatus::HEALTH_CRITICAL, nsm.getNodeStatus(uavcan::NodeID(9)).health); + ASSERT_EQ(NodeStatus::HEALTH_WARNING, nsm.getNodeStatus(uavcan::NodeID(9)).health); ASSERT_TRUE(nsm.isNodeKnown(uavcan::NodeID(11))); ASSERT_EQ(NodeStatus::MODE_OPERATIONAL, nsm.getNodeStatus(uavcan::NodeID(11)).mode);