From eb7196668c47fb9aa68b778b13b5f2029ea96ed4 Mon Sep 17 00:00:00 2001 From: skarg Date: Sun, 9 Mar 2008 13:52:48 +0000 Subject: [PATCH] Corrected the MS/TP TEST REQUEST state such that it now returns the data from the request per BACnet 9.3.5 which says "The data, if present, shall be that which was present in the initiating Test_Request." Thank you to Martin Labbe! --- bacnet-stack/ports/at91sam7s/dlmstp.c | 3 ++- bacnet-stack/ports/atmega168/dlmstp.c | 3 ++- bacnet-stack/ports/dos/dlmstp.c | 3 ++- bacnet-stack/ports/pic18f6720/mstp.c | 4 +++- bacnet-stack/ports/rtos32/mstp.c | 4 +++- bacnet-stack/src/mstp.c | 2 +- 6 files changed, 13 insertions(+), 6 deletions(-) diff --git a/bacnet-stack/ports/at91sam7s/dlmstp.c b/bacnet-stack/ports/at91sam7s/dlmstp.c index ca8a54c9..5a813e37 100644 --- a/bacnet-stack/ports/at91sam7s/dlmstp.c +++ b/bacnet-stack/ports/at91sam7s/dlmstp.c @@ -759,7 +759,8 @@ static bool MSTP_Master_Node_FSM( break; case FRAME_TYPE_TEST_REQUEST: MSTP_Send_Frame(FRAME_TYPE_TEST_RESPONSE, - SourceAddress, This_Station, NULL, 0); + SourceAddress, This_Station, + &InputBuffer[0], DataLength); break; case FRAME_TYPE_TEST_RESPONSE: default: diff --git a/bacnet-stack/ports/atmega168/dlmstp.c b/bacnet-stack/ports/atmega168/dlmstp.c index c59560d6..15788f56 100644 --- a/bacnet-stack/ports/atmega168/dlmstp.c +++ b/bacnet-stack/ports/atmega168/dlmstp.c @@ -673,7 +673,8 @@ static bool MSTP_Master_Node_FSM( break; case FRAME_TYPE_TEST_REQUEST: MSTP_Send_Frame(FRAME_TYPE_TEST_RESPONSE, - SourceAddress, This_Station, NULL, 0); + SourceAddress, This_Station, + &InputBuffer[0], DataLength); break; case FRAME_TYPE_TEST_RESPONSE: default: diff --git a/bacnet-stack/ports/dos/dlmstp.c b/bacnet-stack/ports/dos/dlmstp.c index cdaa38d5..68bebfe9 100644 --- a/bacnet-stack/ports/dos/dlmstp.c +++ b/bacnet-stack/ports/dos/dlmstp.c @@ -758,7 +758,8 @@ static bool MSTP_Master_Node_FSM( break; case FRAME_TYPE_TEST_REQUEST: MSTP_Send_Frame(FRAME_TYPE_TEST_RESPONSE, - SourceAddress, This_Station, NULL, 0); + SourceAddress, This_Station, + &InputBuffer[0], DataLength); break; case FRAME_TYPE_TEST_RESPONSE: default: diff --git a/bacnet-stack/ports/pic18f6720/mstp.c b/bacnet-stack/ports/pic18f6720/mstp.c index 6cde0ad9..1509d15f 100644 --- a/bacnet-stack/ports/pic18f6720/mstp.c +++ b/bacnet-stack/ports/pic18f6720/mstp.c @@ -676,7 +676,9 @@ bool MSTP_Master_Node_FSM( MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TEST_RESPONSE, mstp_port->SourceAddress, - mstp_port->This_Station, NULL, 0); + mstp_port->This_Station, + (uint8_t *) & mstp_port->InputBuffer[0], + mstp_port->DataLength); break; case FRAME_TYPE_TEST_RESPONSE: default: diff --git a/bacnet-stack/ports/rtos32/mstp.c b/bacnet-stack/ports/rtos32/mstp.c index 2b585e75..b9873b73 100644 --- a/bacnet-stack/ports/rtos32/mstp.c +++ b/bacnet-stack/ports/rtos32/mstp.c @@ -819,7 +819,9 @@ bool MSTP_Master_Node_FSM( MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TEST_RESPONSE, mstp_port->SourceAddress, - mstp_port->This_Station, NULL, 0); + mstp_port->This_Station, + (uint8_t *) & mstp_port->InputBuffer[0], + mstp_port->DataLength); break; case FRAME_TYPE_TEST_RESPONSE: default: diff --git a/bacnet-stack/src/mstp.c b/bacnet-stack/src/mstp.c index 45e34fb9..e7bfc03c 100644 --- a/bacnet-stack/src/mstp.c +++ b/bacnet-stack/src/mstp.c @@ -632,7 +632,7 @@ MSTP_Put_Receive(mstp_port); break; case FRAME_TYPE_BACNET_DATA_EXPECTING_REPLY: mstp_port->master_state = MSTP_MASTER_STATE_ANSWER_DATA_REQUEST;} break; case FRAME_TYPE_TEST_REQUEST: -MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TEST_RESPONSE, mstp_port->SourceAddress, mstp_port->This_Station, NULL, 0); break; case FRAME_TYPE_TEST_RESPONSE: +MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TEST_RESPONSE, mstp_port->SourceAddress, mstp_port->This_Station, mstp_port->InputBuffer, mstp_port->DataLength); break; case FRAME_TYPE_TEST_RESPONSE: default: break;} }