From 6d2bcd43a9a90e4be63c1bc29f14882a8db536df Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 24 Jul 2012 15:10:21 +0000 Subject: Remove BOTHER git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4972 42af7a65-404d-4744-a932-0658087f49c3 --- apps/modbus/ascii/mbascii.c | 2 +- apps/modbus/ascii/mbascii.h | 2 +- apps/modbus/mb.c | 2 +- apps/modbus/nuttx/portserial.c | 24 +++++++++++++----------- apps/modbus/rtu/mbrtu.c | 2 +- apps/modbus/rtu/mbrtu.h | 2 +- 6 files changed, 18 insertions(+), 16 deletions(-) (limited to 'apps/modbus') diff --git a/apps/modbus/ascii/mbascii.c b/apps/modbus/ascii/mbascii.c index 455e1a7cb..4b8a56e01 100644 --- a/apps/modbus/ascii/mbascii.c +++ b/apps/modbus/ascii/mbascii.c @@ -106,7 +106,7 @@ static volatile uint8_t ucMBLFCharacter; /* ----------------------- Start implementation -----------------------------*/ eMBErrorCode -eMBASCIIInit( uint8_t ucSlaveAddress, uint8_t ucPort, uint32_t ulBaudRate, eMBParity eParity ) +eMBASCIIInit( uint8_t ucSlaveAddress, uint8_t ucPort, speed_t ulBaudRate, eMBParity eParity ) { eMBErrorCode eStatus = MB_ENOERR; ( void )ucSlaveAddress; diff --git a/apps/modbus/ascii/mbascii.h b/apps/modbus/ascii/mbascii.h index 8ac0000e1..96001404a 100644 --- a/apps/modbus/ascii/mbascii.h +++ b/apps/modbus/ascii/mbascii.h @@ -37,7 +37,7 @@ PR_BEGIN_EXTERN_C #ifdef CONFIG_MB_ASCII_ENABLED eMBErrorCode eMBASCIIInit( uint8_t slaveAddress, uint8_t ucPort, - uint32_t ulBaudRate, eMBParity eParity ); + speed_t ulBaudRate, eMBParity eParity ); void eMBASCIIStart( void ); void eMBASCIIStop( void ); diff --git a/apps/modbus/mb.c b/apps/modbus/mb.c index 0e5c8a920..209b1274c 100644 --- a/apps/modbus/mb.c +++ b/apps/modbus/mb.c @@ -130,7 +130,7 @@ static xMBFunctionHandler xFuncHandlers[CONFIG_MB_FUNC_HANDLERS_MAX] = { /* ----------------------- Start implementation -----------------------------*/ eMBErrorCode -eMBInit( eMBMode eMode, uint8_t ucSlaveAddress, uint8_t ucPort, uint32_t ulBaudRate, eMBParity eParity ) +eMBInit( eMBMode eMode, uint8_t ucSlaveAddress, uint8_t ucPort, speed_t ulBaudRate, eMBParity eParity ) { eMBErrorCode eStatus = MB_ENOERR; diff --git a/apps/modbus/nuttx/portserial.c b/apps/modbus/nuttx/portserial.c index bf1f4526a..68c02830a 100644 --- a/apps/modbus/nuttx/portserial.c +++ b/apps/modbus/nuttx/portserial.c @@ -106,7 +106,7 @@ void vMBPortSerialEnable(bool bEnableRx, bool bEnableTx) } } -bool xMBPortSerialInit(uint8_t ucPort, uint32_t ulBaudRate, +bool xMBPortSerialInit(uint8_t ucPort, speed_t ulBaudRate, uint8_t ucDataBits, eMBParity eParity) { char szDevice[16]; @@ -164,18 +164,20 @@ bool xMBPortSerialInit(uint8_t ucPort, uint32_t ulBaudRate, if (bStatus) { - /* Set the new baud using the (non-standard) BOTHER mechanism - * supported by NuttX. + /* Set the new baud. The following might be compatible with other + * OSs for the following reason. + * + * (1) In NuttX, cfset[i|o]speed always return OK so failures will + * really only be reported when tcsetattr() is called. + * (2) NuttX does not support separate input and output speeds so it + * is not necessary to call both cfsetispeed() and + * cfsetospeed(), and + * (3) In NuttX, the input value to cfiset[i|o]speed is not + * encoded, but is the absolute baud value. The following might + * not be */ - - xNewTIO.c_ispeed = (speed_t)ulBaudRate; - xNewTIO.c_ospeed = (speed_t)ulBaudRate; - /* NOTE: In NuttX, cfset[i|o]speed always return OK. Failures will - * only be reported when tcsetattr() is called. - */ - - if (cfsetispeed(&xNewTIO, BOTHER) != 0 || cfsetospeed(&xNewTIO, BOTHER) != 0) + if (cfsetispeed(&xNewTIO, ulBaudRate) != 0 /* || cfsetospeed(&xNewTIO, ulBaudRate) != 0 */) { vMBPortLog(MB_LOG_ERROR, "SER-INIT", "Can't set baud rate %ld for port %s: %d\n", ulBaudRate, szDevice, errno); diff --git a/apps/modbus/rtu/mbrtu.c b/apps/modbus/rtu/mbrtu.c index 1c2f02a8b..196473c17 100644 --- a/apps/modbus/rtu/mbrtu.c +++ b/apps/modbus/rtu/mbrtu.c @@ -80,7 +80,7 @@ static volatile uint16_t usRcvBufferPos; /* ----------------------- Start implementation -----------------------------*/ eMBErrorCode -eMBRTUInit( uint8_t ucSlaveAddress, uint8_t ucPort, uint32_t ulBaudRate, eMBParity eParity ) +eMBRTUInit( uint8_t ucSlaveAddress, uint8_t ucPort, speed_t ulBaudRate, eMBParity eParity ) { eMBErrorCode eStatus = MB_ENOERR; uint32_t usTimerT35_50us; diff --git a/apps/modbus/rtu/mbrtu.h b/apps/modbus/rtu/mbrtu.h index 6a14654f0..ca35b94a7 100644 --- a/apps/modbus/rtu/mbrtu.h +++ b/apps/modbus/rtu/mbrtu.h @@ -34,7 +34,7 @@ #ifdef __cplusplus PR_BEGIN_EXTERN_C #endif - eMBErrorCode eMBRTUInit( uint8_t slaveAddress, uint8_t ucPort, uint32_t ulBaudRate, + eMBErrorCode eMBRTUInit( uint8_t slaveAddress, uint8_t ucPort, speed_t ulBaudRate, eMBParity eParity ); void eMBRTUStart( void ); void eMBRTUStop( void ); -- cgit v1.2.3