Added back 2 bytes in MS/TP header size for CRC16 since it failed unit testing.
This commit is contained in:
@@ -42,7 +42,8 @@
|
|||||||
#include "npdu.h"
|
#include "npdu.h"
|
||||||
|
|
||||||
/* defines specific to MS/TP */
|
/* 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)
|
#define MAX_MPDU (MAX_HEADER+MAX_PDU)
|
||||||
|
|
||||||
typedef struct dlmstp_packet {
|
typedef struct dlmstp_packet {
|
||||||
|
|||||||
+45
-9
@@ -68,6 +68,33 @@
|
|||||||
#define PRINT_ENABLED_MASTER 0
|
#define PRINT_ENABLED_MASTER 0
|
||||||
#endif
|
#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 */
|
/* MS/TP Frame Format */
|
||||||
/* All frames are of the following 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.ReceivedValidFrame == false);
|
||||||
ct_test(pTest, mstp_port.receive_state == MSTP_RECEIVE_STATE_IDLE);
|
ct_test(pTest, mstp_port.receive_state == MSTP_RECEIVE_STATE_IDLE);
|
||||||
/* Data */
|
/* 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 */
|
mstp_port.ReceivedInvalidFrame = false;
|
||||||
my_mac, /* source */
|
mstp_port.ReceivedValidFrame = false;
|
||||||
data, /* data */
|
memset(data, 0, sizeof(data));
|
||||||
sizeof(data)); /* data size */
|
len = MSTP_Create_Frame(buffer,
|
||||||
ct_test(pTest, len > 0); Load_Input_Buffer(buffer, len);
|
sizeof(buffer),
|
||||||
RS485_Check_UART_Data(&mstp_port); MSTP_Receive_Frame_FSM(&mstp_port);
|
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) {
|
while (mstp_port.receive_state != MSTP_RECEIVE_STATE_IDLE) {
|
||||||
RS485_Check_UART_Data(&mstp_port);
|
RS485_Check_UART_Data(&mstp_port);
|
||||||
MSTP_Receive_Frame_FSM(&mstp_port);}
|
MSTP_Receive_Frame_FSM(&mstp_port);
|
||||||
ct_test(pTest, mstp_port.DataLength == sizeof(data));
|
}
|
||||||
|
ct_test(pTest, mstp_port.DataLength == sizeof(data));
|
||||||
ct_test(pTest, mstp_port.ReceivedInvalidFrame == false);
|
ct_test(pTest, mstp_port.ReceivedInvalidFrame == false);
|
||||||
ct_test(pTest, mstp_port.ReceivedValidFrame == true);
|
ct_test(pTest, mstp_port.ReceivedValidFrame == true);
|
||||||
ct_test(pTest, mstp_port.receive_state == MSTP_RECEIVE_STATE_IDLE);
|
ct_test(pTest, mstp_port.receive_state == MSTP_RECEIVE_STATE_IDLE);
|
||||||
|
|||||||
Reference in New Issue
Block a user