mirror of
https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32.git
synced 2024-09-01 08:09:25 +08:00
1、【修改】主机RTU帧缓冲区及PDU缓冲区定义
Signed-off-by: armink <armink.ztl@gmail.com>
This commit is contained in:
parent
33eec6ff56
commit
20239198e5
@ -62,9 +62,11 @@
|
||||
|
||||
/* ----------------------- Static variables ---------------------------------*/
|
||||
|
||||
static UCHAR ucMBSendSlaveAddress;
|
||||
static UCHAR ucMBMasterSendAddress;
|
||||
static eMBMode eMBCurrentMode;
|
||||
static UCHAR pucMasterRTUBuf[MB_PDU_SIZE_MAX];
|
||||
static UCHAR ucMasterRTUBuf[MB_PDU_SIZE_MAX];
|
||||
static UCHAR * pucMasterPUDBuf = ucMasterRTUBuf + 1;
|
||||
static UCHAR ucMasterSendPDULength;
|
||||
|
||||
static enum
|
||||
{
|
||||
@ -274,9 +276,9 @@ eMBErrorCode eMBMasterPoll( void )
|
||||
break;
|
||||
|
||||
case EV_MASTER_FRAME_RECEIVED:
|
||||
eStatus = peMBMasterFrameReceiveCur( &ucRcvAddress, (UCHAR **)(pucMasterRTUBuf + 1), &usLength );
|
||||
eStatus = peMBMasterFrameReceiveCur( &ucRcvAddress, &pucMasterPUDBuf, &usLength );
|
||||
/* Check if the frame is for us. If not ,send an error process event. */
|
||||
if ( ( eStatus == MB_ENOERR ) && ( ucRcvAddress == ucMBSendSlaveAddress ) )
|
||||
if ( ( eStatus == MB_ENOERR ) && ( ucRcvAddress == ucMBMasterSendAddress ) )
|
||||
{
|
||||
( void ) xMBMasterPortEventPost( EV_MASTER_EXECUTE );
|
||||
}
|
||||
@ -287,7 +289,7 @@ eMBErrorCode eMBMasterPoll( void )
|
||||
break;
|
||||
|
||||
case EV_MASTER_EXECUTE:
|
||||
ucFunctionCode = (pucMasterRTUBuf + 1)[MB_PDU_FUNC_OFF];
|
||||
ucFunctionCode = (ucMasterRTUBuf + 1)[MB_PDU_FUNC_OFF];
|
||||
eException = MB_EX_ILLEGAL_FUNCTION;
|
||||
for( i = 0; i < MB_FUNC_HANDLERS_MAX; i++ )
|
||||
{
|
||||
@ -298,14 +300,14 @@ eMBErrorCode eMBMasterPoll( void )
|
||||
}
|
||||
else if( xMasterFuncHandlers[i].ucFunctionCode == ucFunctionCode )
|
||||
{
|
||||
eException = xMasterFuncHandlers[i].pxHandler( pucMasterRTUBuf + 1, &usLength );
|
||||
eException = xMasterFuncHandlers[i].pxHandler( pucMasterPUDBuf, &usLength );
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case EV_MASTER_FRAME_SENT:
|
||||
eStatus = peMBMasterFrameSendCur( ucMBSendSlaveAddress, pucMasterRTUBuf + 1, usLength );
|
||||
eStatus = peMBMasterFrameSendCur( ucMBMasterSendAddress, pucMasterPUDBuf, ucMasterSendPDULength );
|
||||
break;
|
||||
|
||||
case EV_MASTER_ERROR_PROCESS:
|
||||
|
Loading…
x
Reference in New Issue
Block a user