Added back 2 bytes in MS/TP header size for CRC16 since it failed unit testing.

This commit is contained in:
skarg
2008-01-09 15:41:46 +00:00
parent a458bdce44
commit 83da7c5b3b
2 changed files with 47 additions and 10 deletions
+2 -1
View File
@@ -42,7 +42,8 @@
#include "npdu.h"
/* defines specific to MS/TP */
#define MAX_HEADER (2+1+1+1+2+1)
/* preamble+type+dest+src+len+crc8+crc16 */
#define MAX_HEADER (2+1+1+1+2+1+2)
#define MAX_MPDU (MAX_HEADER+MAX_PDU)
typedef struct dlmstp_packet {
+45 -9
View File
@@ -68,6 +68,33 @@
#define PRINT_ENABLED_MASTER 0
#endif
#if PRINT_ENABLED
#define PRINT_DEBUG(x) \
fprintf(stderr,x)
#define PRINT_DEBUG1(fmt,v1) \
fprintf(stderr,fmt,v1)
#define PRINT_DEBUG2(fmt,v1,v2) \
fprintf(stderr,fmt,v1,v2)
#define PRINT_DEBUG3(fmt,v1,v2,v3) \
fprintf(stderr,fmt,v1,v2,v3)
#define PRINT_DEBUG4(fmt,v1,v2,v3,v4) \
fprintf(stderr,fmt,v1,v2,v3,v4)
#define PRINT_DEBUG5(fmt,v1,v2,v3,v4,v5) \
fprintf(stderr,fmt,v1,v2,v3,v4,v5)
#define PRINT_DEBUG6(fmt,v1,v2,v3,v4,v5,v6) \
fprintf(stderr,fmt,v1,v2,v3,v4,v5,v6)
#define PRINT_DEBUG7(fmt,v1,v2,v3,v4,v5,v6,v7) \
fprintf(stderr,fmt,v1,v2,v3,v4,v5,v6,v7)
#else
#define PRINT_DEBUG(x)
#define PRINT_DEBUG1(fmt,v1)
#define PRINT_DEBUG2(fmt,v1,v2)
#define PRINT_DEBUG3(fmt,v1,v2,v3)
#define PRINT_DEBUG4(fmt,v1,v2,v3,v4)
#define PRINT_DEBUG5(fmt,v1,v2,v3,v4,v5)
#define PRINT_DEBUG6(fmt,v1,v2,v3,v4,v5,v6)
#endif
/* MS/TP Frame Format */
/* All frames are of the following format: */
/* */
@@ -1358,16 +1385,25 @@ mstp_port->ReceivedValidFrame = false; break; default:
ct_test(pTest, mstp_port.ReceivedValidFrame == false);
ct_test(pTest, mstp_port.receive_state == MSTP_RECEIVE_STATE_IDLE);
/* Data */
mstp_port.ReceivedInvalidFrame = false; mstp_port.ReceivedValidFrame = false; memset(data, 0, sizeof(data)); len = MSTP_Create_Frame(buffer, sizeof(buffer), FRAME_TYPE_PROPRIETARY_MIN, my_mac, /* destination */
my_mac, /* source */
data, /* data */
sizeof(data)); /* data size */
ct_test(pTest, len > 0); Load_Input_Buffer(buffer, len);
RS485_Check_UART_Data(&mstp_port); MSTP_Receive_Frame_FSM(&mstp_port);
mstp_port.ReceivedInvalidFrame = false;
mstp_port.ReceivedValidFrame = false;
memset(data, 0, sizeof(data));
len = MSTP_Create_Frame(buffer,
sizeof(buffer),
FRAME_TYPE_PROPRIETARY_MIN,
my_mac,
my_mac,
data,
sizeof(data));
ct_test(pTest, len > 0);
Load_Input_Buffer(buffer, len);
RS485_Check_UART_Data(&mstp_port);
MSTP_Receive_Frame_FSM(&mstp_port);
while (mstp_port.receive_state != MSTP_RECEIVE_STATE_IDLE) {
RS485_Check_UART_Data(&mstp_port);
MSTP_Receive_Frame_FSM(&mstp_port);}
ct_test(pTest, mstp_port.DataLength == sizeof(data));
RS485_Check_UART_Data(&mstp_port);
MSTP_Receive_Frame_FSM(&mstp_port);
}
ct_test(pTest, mstp_port.DataLength == sizeof(data));
ct_test(pTest, mstp_port.ReceivedInvalidFrame == false);
ct_test(pTest, mstp_port.ReceivedValidFrame == true);
ct_test(pTest, mstp_port.receive_state == MSTP_RECEIVE_STATE_IDLE);