From 1313cdd12ee9e1663ae2b2bb3911c792dd863e72 Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Wed, 9 Apr 2025 10:41:51 -0500 Subject: [PATCH] Fixed MS/TP lost-token-counter that was lost during refactoring. (#962) --- src/bacnet/datalink/dlmstp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/bacnet/datalink/dlmstp.c b/src/bacnet/datalink/dlmstp.c index 0fa00106..5af8458b 100644 --- a/src/bacnet/datalink/dlmstp.c +++ b/src/bacnet/datalink/dlmstp.c @@ -347,6 +347,7 @@ uint16_t dlmstp_receive( struct dlmstp_rs485_driver *driver; uint16_t i; uint32_t milliseconds; + MSTP_MASTER_STATE master_state; (void)timeout; if (!MSTP_Port) { @@ -418,8 +419,15 @@ uint16_t dlmstp_receive( } else if ( (MSTP_Port->This_Station <= DEFAULT_MAX_MASTER) || MSTP_Port->ZeroConfigEnabled || MSTP_Port->CheckAutoBaud) { + master_state = MSTP_Port->master_state; while (MSTP_Master_Node_FSM(MSTP_Port)) { - /* do nothing while some states fast transition */ + if (master_state != MSTP_Port->master_state) { + /* state changed while some states fast transition */ + if (MSTP_Port->master_state == MSTP_MASTER_STATE_NO_TOKEN) { + user->Statistics.lost_token_counter++; + } + master_state = MSTP_Port->master_state; + } }; } }