Changed the Treply_delay wait to be smaller when the next message in the queue is does not match.

This commit is contained in:
skarg
2011-08-24 12:48:33 +00:00
parent 26b5fdd3d0
commit 58691c16d6
4 changed files with 9 additions and 3 deletions
+2 -1
View File
@@ -1118,7 +1118,8 @@ static bool MSTP_Master_Node_FSM(
Master_State = MSTP_MASTER_STATE_IDLE;
/* clear our flag we were holding for comparison */
MSTP_Flag.ReceivedValidFrame = false;
} else if (rs485_silence_time_elapsed(Treply_delay)) {
} else if (rs485_silence_time_elapsed(Treply_delay) ||
(pkt != NULL)) {
/* DeferredReply */
/* If no reply will be available from the higher layers */
/* within Treply_delay after the reception of the */
+2 -1
View File
@@ -1145,7 +1145,8 @@ static bool MSTP_Master_Node_FSM(
Master_State = MSTP_MASTER_STATE_IDLE;
/* clear our flag we were holding for comparison */
MSTP_Flag.ReceivedValidFrame = false;
} else if (rs485_silence_time_elapsed(Treply_delay)) {
} else if (rs485_silence_time_elapsed(Treply_delay) ||
(pkt != NULL)) {
/* DeferredReply */
/* If no reply will be available from the higher layers */
/* within Treply_delay after the reception of the */
+2 -1
View File
@@ -1234,7 +1234,8 @@ static bool MSTP_Master_Node_FSM(
Master_State = MSTP_MASTER_STATE_IDLE;
/* clear our flag we were holding for comparison */
MSTP_Flag.ReceivedValidFrame = false;
} else if (rs485_silence_time_elapsed(Treply_delay)) {
} else if (rs485_silence_time_elapsed(Treply_delay) ||
(pkt != NULL)) {
/* DeferredReply */
/* If no reply will be available from the higher layers */
/* within Treply_delay after the reception of the */
+3
View File
@@ -1051,6 +1051,9 @@ bool MSTP_Master_Node_FSM(
/* The ANSWER_DATA_REQUEST state is entered when a */
/* BACnet Data Expecting Reply, a Test_Request, or */
/* a proprietary frame that expects a reply is received. */
/* FIXME: MSTP_Get_Reply waits for a matching reply, but
if the next queued message doesn't match, then we
sit here for Treply_delay doing nothing */
length = (unsigned) MSTP_Get_Reply(mstp_port, 0);
if (length > 0) {
/* Reply */