From 29254b2b86c4235fc8ee7afe65ef4c92e8674426 Mon Sep 17 00:00:00 2001 From: aleks Date: Thu, 14 Jul 2022 16:53:16 +0200 Subject: [PATCH] master fix send fsm broadcast frame detection --- freemodbus/modbus/ascii/mbascii_m.c | 3 ++- freemodbus/modbus/rtu/mbrtu_m.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/freemodbus/modbus/ascii/mbascii_m.c b/freemodbus/modbus/ascii/mbascii_m.c index 849ab65..a883a23 100644 --- a/freemodbus/modbus/ascii/mbascii_m.c +++ b/freemodbus/modbus/ascii/mbascii_m.c @@ -437,7 +437,8 @@ xMBMasterASCIITransmitFSM( void ) /* Notify the task which called eMBMasterASCIISend that the frame has * been sent. */ case STATE_M_TX_NOTIFY: - xFrameIsBroadcast = ( ucMasterASCIISndBuf[MB_SER_PDU_ADDR_OFF] == MB_ADDRESS_BROADCAST ) ? TRUE : FALSE; + xFrameIsBroadcast = ( ucMasterASCIISndBuf[MB_SEND_BUF_PDU_OFF - MB_SER_PDU_PDU_OFF] + == MB_ADDRESS_BROADCAST ) ? TRUE : FALSE; vMBMasterRequestSetType( xFrameIsBroadcast ); eSndState = STATE_M_TX_XFWR; /* If the frame is broadcast ,master will enable timer of convert delay, diff --git a/freemodbus/modbus/rtu/mbrtu_m.c b/freemodbus/modbus/rtu/mbrtu_m.c index 65ac4b7..863b569 100644 --- a/freemodbus/modbus/rtu/mbrtu_m.c +++ b/freemodbus/modbus/rtu/mbrtu_m.c @@ -350,7 +350,8 @@ xMBMasterRTUTransmitFSM( void ) } else { - xFrameIsBroadcast = ( ucMasterRTUSndBuf[MB_SER_PDU_ADDR_OFF] == MB_ADDRESS_BROADCAST ) ? TRUE : FALSE; + xFrameIsBroadcast = ( ucMasterRTUSndBuf[MB_SEND_BUF_PDU_OFF - MB_SER_PDU_PDU_OFF] + == MB_ADDRESS_BROADCAST ) ? TRUE : FALSE; vMBMasterRequestSetType( xFrameIsBroadcast ); eSndState = STATE_M_TX_XFWR; /* If the frame is broadcast ,master will enable timer of convert delay,