From 6573386cd7cdc44956a6ef2d24075b8e23f69d05 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Fri, 30 Jun 2023 22:43:30 -0400 Subject: [PATCH] perform status update 4 times before switching a node into a failed state; --- src/monitor/NodeStatusWnd.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/monitor/NodeStatusWnd.h b/src/monitor/NodeStatusWnd.h index 84393c49..28549b02 100644 --- a/src/monitor/NodeStatusWnd.h +++ b/src/monitor/NodeStatusWnd.h @@ -42,6 +42,7 @@ using namespace finalcut; #define NODE_STATUS_WIDTH 28 #define NODE_STATUS_HEIGHT 8 +#define NODE_UPDATE_FAIL_CNT 4 // --------------------------------------------------------------------------- // Class Declaration @@ -93,6 +94,7 @@ private: int m_timerId; int m_reconnectTimerId; + uint8_t m_failCnt = 0U; bool m_failed; bool m_control; bool m_tx; @@ -278,11 +280,16 @@ private: HTTP_GET, GET_STATUS, req, rsp, g_debug); if (ret != network::rest::http::HTTPPayload::StatusType::OK) { ::LogError(LOG_HOST, "failed to get status for %s:%u, chNo = %u", m_chData.address().c_str(), m_chData.port(), m_channelNo); - m_failed = true; - setText("FAILED"); + ++m_failCnt; + if (m_failCnt > NODE_UPDATE_FAIL_CNT) { + m_failed = true; + setText("FAILED"); + } } else { try { + m_failCnt = 0U; + uint8_t mode = rsp["state"].get(); switch (mode) { case modem::STATE_DMR: @@ -414,6 +421,7 @@ private: } else { m_failed = false; + m_failCnt = 0U; setText("UNKNOWN"); } }