eMBErrorCode eStatus = MB_ENOERR;
( void )ucSlaveAddress;
- ENTER_CRITICAL_SECTION( );
ucMBLFCharacter = MB_ASCII_DEFAULT_LF;
if( xMBPortSerialInit( ucPort, ulBaudRate, 7, eParity ) != TRUE )
eStatus = MB_EPORTERR;
}
- EXIT_CRITICAL_SECTION( );
return eStatus;
}
void
eMBASCIIStart( void )
{
- ENTER_CRITICAL_SECTION( );
vMBPortSerialEnable( TRUE, FALSE );
eRcvState = STATE_RX_IDLE;
- EXIT_CRITICAL_SECTION( );
/* No special startup required for ASCII. */
( void )xMBPortEventPost( EV_READY );
void
eMBASCIIStop( void )
{
- ENTER_CRITICAL_SECTION( );
vMBPortSerialEnable( FALSE, FALSE );
vMBPortTimersDisable( );
- EXIT_CRITICAL_SECTION( );
}
eMBErrorCode
ULONG usTimerT35_50us;
( void )ucSlaveAddress;
- ENTER_CRITICAL_SECTION( );
/* Modbus RTU uses 8 Databits. */
if( xMBPortSerialInit( ucPort, ulBaudRate, 8, eParity ) != TRUE )
eStatus = MB_EPORTERR;
}
}
- EXIT_CRITICAL_SECTION( );
return eStatus;
}
void
eMBRTUStart( void )
{
- ENTER_CRITICAL_SECTION( );
/* Initially the receiver is in the state STATE_RX_INIT. we start
* the timer and if no character is received within t3.5 we change
* to STATE_RX_IDLE. This makes sure that we delay startup of the
vMBPortSerialEnable( TRUE, FALSE );
vMBPortTimersEnable( );
- EXIT_CRITICAL_SECTION( );
}
void
eMBRTUStop( void )
{
- ENTER_CRITICAL_SECTION( );
vMBPortSerialEnable( FALSE, FALSE );
vMBPortTimersDisable( );
- EXIT_CRITICAL_SECTION( );
}
// The lines below are required to suppress GCC warnings about unused but set variable 'xFrameReceived'