summaryrefslogtreecommitdiff
path: root/apps/include/modbus
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-07-21 21:23:18 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-07-21 21:23:18 +0000
commitd9714b556703561a0abcbe71970b1cd6922168a6 (patch)
tree70b7893243b8ee2e6b8b5fd95106c4ab962699c5 /apps/include/modbus
parentebf70f8a79eb8ef23bc1d99938768ef06c466119 (diff)
downloadnuttx-d9714b556703561a0abcbe71970b1cd6922168a6.tar.gz
nuttx-d9714b556703561a0abcbe71970b1cd6922168a6.tar.bz2
nuttx-d9714b556703561a0abcbe71970b1cd6922168a6.zip
Use NuttX types in FreeModBus port; Add FreeModBus demo at apps/examples/modbus; Add new termios APIs
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4964 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/include/modbus')
-rw-r--r--apps/include/modbus/mb.h36
-rw-r--r--apps/include/modbus/mbframe.h12
-rw-r--r--apps/include/modbus/mbfunc.h20
-rw-r--r--apps/include/modbus/mbport.h37
-rw-r--r--apps/include/modbus/mbproto.h4
-rw-r--r--apps/include/modbus/mbutils.h12
6 files changed, 62 insertions, 59 deletions
diff --git a/apps/include/modbus/mb.h b/apps/include/modbus/mb.h
index b534c178a..ed247d163 100644
--- a/apps/include/modbus/mb.h
+++ b/apps/include/modbus/mb.h
@@ -31,7 +31,8 @@
#ifndef _MB_H
#define _MB_H
-#include "port.h"
+#include <stdint.h>
+#include <stdbool.h>
#ifdef __cplusplus
PR_BEGIN_EXTERN_C
@@ -121,7 +122,6 @@ typedef enum
MB_ETIMEDOUT /*!< timeout error occurred. */
} eMBErrorCode;
-
/* ----------------------- Function prototypes ------------------------------*/
/*! \ingroup modbus
* \brief Initialize the Modbus protocol stack.
@@ -148,8 +148,8 @@ typedef enum
* slave addresses are in the range 1 - 247.
* - eMBErrorCode::MB_EPORTERR IF the porting layer returned an error.
*/
-eMBErrorCode eMBInit( eMBMode eMode, UCHAR ucSlaveAddress,
- UCHAR ucPort, ULONG ulBaudRate, eMBParity eParity );
+eMBErrorCode eMBInit( eMBMode eMode, uint8_t ucSlaveAddress,
+ uint8_t ucPort, uint32_t ulBaudRate, eMBParity eParity );
/*! \ingroup modbus
* \brief Initialize the Modbus protocol stack for Modbus TCP.
@@ -165,7 +165,7 @@ eMBErrorCode eMBInit( eMBMode eMode, UCHAR ucSlaveAddress,
* slave addresses are in the range 1 - 247.
* - eMBErrorCode::MB_EPORTERR IF the porting layer returned an error.
*/
-eMBErrorCode eMBTCPInit( USHORT usTCPPort );
+eMBErrorCode eMBTCPInit( uint16_t usTCPPort );
/*! \ingroup modbus
* \brief Release resources used by the protocol stack.
@@ -228,7 +228,7 @@ eMBErrorCode eMBPoll( void );
*
* \param ucSlaveID Values is returned in the <em>Slave ID</em> byte of the
* <em>Report Slave ID</em> response.
- * \param xIsRunning If TRUE the <em>Run Indicator Status</em> byte is set to 0xFF.
+ * \param xIsRunning If true the <em>Run Indicator Status</em> byte is set to 0xFF.
* otherwise the <em>Run Indicator Status</em> is 0x00.
* \param pucAdditional Values which should be returned in the <em>Additional</em>
* bytes of the <em> Report Slave ID</em> response.
@@ -238,9 +238,9 @@ eMBErrorCode eMBPoll( void );
* is too small it returns eMBErrorCode::MB_ENORES. Otherwise
* it returns eMBErrorCode::MB_ENOERR.
*/
-eMBErrorCode eMBSetSlaveID( UCHAR ucSlaveID, BOOL xIsRunning,
- UCHAR const *pucAdditional,
- USHORT usAdditionalLen );
+eMBErrorCode eMBSetSlaveID( uint8_t ucSlaveID, bool xIsRunning,
+ uint8_t const *pucAdditional,
+ uint16_t usAdditionalLen );
/*! \ingroup modbus
* \brief Registers a callback handler for a given function code.
@@ -262,7 +262,7 @@ eMBErrorCode eMBSetSlaveID( UCHAR ucSlaveID, BOOL xIsRunning,
* case the values in config.h should be adjusted. If the argument was not
* valid it returns eMBErrorCode::MB_EINVAL.
*/
-eMBErrorCode eMBRegisterCB( UCHAR ucFunctionCode,
+eMBErrorCode eMBRegisterCB( uint8_t ucFunctionCode,
pxMBFunctionHandler pxHandler );
/* ----------------------- Callback -----------------------------------------*/
@@ -309,8 +309,8 @@ eMBErrorCode eMBRegisterCB( UCHAR ucFunctionCode,
* - eMBErrorCode::MB_EIO If an unrecoverable error occurred. In this case
* a <b>SLAVE DEVICE FAILURE</b> exception is sent as a response.
*/
-eMBErrorCode eMBRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress,
- USHORT usNRegs );
+eMBErrorCode eMBRegInputCB( uint8_t * pucRegBuffer, uint16_t usAddress,
+ uint16_t usNRegs );
/*! \ingroup modbus_registers
* \brief Callback function used if a <em>Holding Register</em> value is
@@ -344,8 +344,8 @@ eMBErrorCode eMBRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress,
* - eMBErrorCode::MB_EIO If an unrecoverable error occurred. In this case
* a <b>SLAVE DEVICE FAILURE</b> exception is sent as a response.
*/
-eMBErrorCode eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress,
- USHORT usNRegs, eMBRegisterMode eMode );
+eMBErrorCode eMBRegHoldingCB( uint8_t * pucRegBuffer, uint16_t usAddress,
+ uint16_t usNRegs, eMBRegisterMode eMode );
/*! \ingroup modbus_registers
* \brief Callback function used if a <em>Coil Register</em> value is
@@ -379,8 +379,8 @@ eMBErrorCode eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress,
* - eMBErrorCode::MB_EIO If an unrecoverable error occurred. In this case
* a <b>SLAVE DEVICE FAILURE</b> exception is sent as a response.
*/
-eMBErrorCode eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress,
- USHORT usNCoils, eMBRegisterMode eMode );
+eMBErrorCode eMBRegCoilsCB( uint8_t * pucRegBuffer, uint16_t usAddress,
+ uint16_t usNCoils, eMBRegisterMode eMode );
/*! \ingroup modbus_registers
* \brief Callback function used if a <em>Input Discrete Register</em> value is
@@ -408,8 +408,8 @@ eMBErrorCode eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress,
* - eMBErrorCode::MB_EIO If an unrecoverable error occurred. In this case
* a <b>SLAVE DEVICE FAILURE</b> exception is sent as a response.
*/
-eMBErrorCode eMBRegDiscreteCB( UCHAR * pucRegBuffer, USHORT usAddress,
- USHORT usNDiscrete );
+eMBErrorCode eMBRegDiscreteCB( uint8_t * pucRegBuffer, uint16_t usAddress,
+ uint16_t usNDiscrete );
#ifdef __cplusplus
PR_END_EXTERN_C
diff --git a/apps/include/modbus/mbframe.h b/apps/include/modbus/mbframe.h
index 99d59c613..0f701e6e5 100644
--- a/apps/include/modbus/mbframe.h
+++ b/apps/include/modbus/mbframe.h
@@ -71,13 +71,13 @@ typedef void ( *pvMBFrameStart ) ( void );
typedef void ( *pvMBFrameStop ) ( void );
-typedef eMBErrorCode( *peMBFrameReceive ) ( UCHAR * pucRcvAddress,
- UCHAR ** pucFrame,
- USHORT * pusLength );
+typedef eMBErrorCode( *peMBFrameReceive ) ( uint8_t * pucRcvAddress,
+ uint8_t ** pucFrame,
+ uint16_t * pusLength );
-typedef eMBErrorCode( *peMBFrameSend ) ( UCHAR slaveAddress,
- const UCHAR * pucFrame,
- USHORT usLength );
+typedef eMBErrorCode( *peMBFrameSend ) ( uint8_t slaveAddress,
+ const uint8_t * pucFrame,
+ uint16_t usLength );
typedef void( *pvMBFrameClose ) ( void );
diff --git a/apps/include/modbus/mbfunc.h b/apps/include/modbus/mbfunc.h
index d948ec72b..68ccdb1d9 100644
--- a/apps/include/modbus/mbfunc.h
+++ b/apps/include/modbus/mbfunc.h
@@ -35,43 +35,43 @@
PR_BEGIN_EXTERN_C
#endif
#ifdef CONFIG_MB_FUNC_OTHER_REP_SLAVEID_BUF
- eMBException eMBFuncReportSlaveID( UCHAR * pucFrame, USHORT * usLen );
+ eMBException eMBFuncReportSlaveID( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_READ_INPUT_ENABLED
-eMBException eMBFuncReadInputRegister( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncReadInputRegister( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_READ_HOLDING_ENABLED
-eMBException eMBFuncReadHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncReadHoldingRegister( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_WRITE_HOLDING_ENABLED
-eMBException eMBFuncWriteHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncWriteHoldingRegister( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED
-eMBException eMBFuncWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncWriteMultipleHoldingRegister( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_READ_COILS_ENABLED
-eMBException eMBFuncReadCoils( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncReadCoils( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_WRITE_COIL_ENABLED
-eMBException eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncWriteCoil( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED
-eMBException eMBFuncWriteMultipleCoils( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncWriteMultipleCoils( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED
-eMBException eMBFuncReadDiscreteInputs( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncReadDiscreteInputs( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef CONFIG_MB_FUNC_READWRITE_HOLDING_ENABLED
-eMBException eMBFuncReadWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
+eMBException eMBFuncReadWriteMultipleHoldingRegister( uint8_t * pucFrame, uint16_t * usLen );
#endif
#ifdef __cplusplus
diff --git a/apps/include/modbus/mbport.h b/apps/include/modbus/mbport.h
index 4f25a9644..e011c15bd 100644
--- a/apps/include/modbus/mbport.h
+++ b/apps/include/modbus/mbport.h
@@ -31,6 +31,9 @@
#ifndef _MB_PORT_H
#define _MB_PORT_H
+#include <stdint.h>
+#include <stdbool.h>
+
#ifdef __cplusplus
PR_BEGIN_EXTERN_C
#endif
@@ -60,29 +63,29 @@ typedef enum
} eMBParity;
/* ----------------------- Supporting functions -----------------------------*/
-BOOL xMBPortEventInit( void );
+bool xMBPortEventInit( void );
-BOOL xMBPortEventPost( eMBEventType eEvent );
+bool xMBPortEventPost( eMBEventType eEvent );
-BOOL xMBPortEventGet( /*@out@ */ eMBEventType * eEvent );
+bool xMBPortEventGet( /*@out@ */ eMBEventType * eEvent );
/* ----------------------- Serial port functions ----------------------------*/
-BOOL xMBPortSerialInit( UCHAR ucPort, ULONG ulBaudRate,
- UCHAR ucDataBits, eMBParity eParity );
+bool xMBPortSerialInit( uint8_t ucPort, uint32_t ulBaudRate,
+ uint8_t ucDataBits, eMBParity eParity );
void vMBPortClose( void );
void xMBPortSerialClose( void );
-void vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable );
+void vMBPortSerialEnable( bool xRxEnable, bool xTxEnable );
-BOOL xMBPortSerialGetByte( CHAR * pucByte );
+bool xMBPortSerialGetByte( int8_t * pucByte );
-BOOL xMBPortSerialPutByte( CHAR ucByte );
+bool xMBPortSerialPutByte( int8_t ucByte );
/* ----------------------- Timers functions ---------------------------------*/
-BOOL xMBPortTimersInit( USHORT usTimeOut50us );
+bool xMBPortTimersInit( uint16_t usTimeOut50us );
void xMBPortTimersClose( void );
@@ -90,7 +93,7 @@ void vMBPortTimersEnable( void );
void vMBPortTimersDisable( void );
-void vMBPortTimersDelay( USHORT usTimeOutMS );
+void vMBPortTimersDelay( uint16_t usTimeOutMS );
/* ----------------------- Callback for the protocol stack ------------------*/
@@ -102,26 +105,26 @@ void vMBPortTimersDelay( USHORT usTimeOutMS );
* ASCII transmission layers. In any case a call to xMBPortSerialGetByte()
* must immediately return a new character.
*
- * \return <code>TRUE</code> if a event was posted to the queue because
+ * \return <code>true</code> if a event was posted to the queue because
* a new byte was received. The port implementation should wake up the
* tasks which are currently blocked on the eventqueue.
*/
-extern BOOL( *pxMBFrameCBByteReceived ) ( void );
+extern bool( *pxMBFrameCBByteReceived ) ( void );
-extern BOOL( *pxMBFrameCBTransmitterEmpty ) ( void );
+extern bool( *pxMBFrameCBTransmitterEmpty ) ( void );
-extern BOOL( *pxMBPortCBTimerExpired ) ( void );
+extern bool( *pxMBPortCBTimerExpired ) ( void );
/* ----------------------- TCP port functions -------------------------------*/
-BOOL xMBTCPPortInit( USHORT usTCPPort );
+bool xMBTCPPortInit( uint16_t usTCPPort );
void vMBTCPPortClose( void );
void vMBTCPPortDisable( void );
-BOOL xMBTCPPortGetRequest( UCHAR **ppucMBTCPFrame, USHORT * usTCPLength );
+bool xMBTCPPortGetRequest( uint8_t **ppucMBTCPFrame, uint16_t * usTCPLength );
-BOOL xMBTCPPortSendResponse( const UCHAR *pucMBTCPFrame, USHORT usTCPLength );
+bool xMBTCPPortSendResponse( const uint8_t *pucMBTCPFrame, uint16_t usTCPLength );
#ifdef __cplusplus
PR_END_EXTERN_C
diff --git a/apps/include/modbus/mbproto.h b/apps/include/modbus/mbproto.h
index 786aaf403..24b0c98e7 100644
--- a/apps/include/modbus/mbproto.h
+++ b/apps/include/modbus/mbproto.h
@@ -69,11 +69,11 @@ PR_BEGIN_EXTERN_C
MB_EX_GATEWAY_TGT_FAILED = 0x0B
} eMBException;
-typedef eMBException( *pxMBFunctionHandler ) ( UCHAR * pucFrame, USHORT * pusLength );
+typedef eMBException( *pxMBFunctionHandler ) ( uint8_t * pucFrame, uint16_t * pusLength );
typedef struct
{
- UCHAR ucFunctionCode;
+ uint8_t ucFunctionCode;
pxMBFunctionHandler pxHandler;
} xMBFunctionHandler;
diff --git a/apps/include/modbus/mbutils.h b/apps/include/modbus/mbutils.h
index 61495751d..5f17376cc 100644
--- a/apps/include/modbus/mbutils.h
+++ b/apps/include/modbus/mbutils.h
@@ -75,8 +75,8 @@ PR_BEGIN_EXTERN_C
* xMBUtilSetBits( ucBits, 8, 8, 0x5A);
* \endcode
*/
-void xMBUtilSetBits( UCHAR * ucByteBuf, USHORT usBitOffset,
- UCHAR ucNBits, UCHAR ucValues );
+void xMBUtilSetBits( uint8_t * ucByteBuf, uint16_t usBitOffset,
+ uint8_t ucNBits, uint8_t ucValues );
/*! \brief Function to read bits in a byte buffer.
*
@@ -90,15 +90,15 @@ void xMBUtilSetBits( UCHAR * ucByteBuf, USHORT usBitOffset,
* than 8.
*
* \code
- * UCHAR ucBits[2] = {0, 0};
- * UCHAR ucResult;
+ * uint8_t ucBits[2] = {0, 0};
+ * uint8_t ucResult;
*
* // Extract the bits 3 - 10.
* ucResult = xMBUtilGetBits( ucBits, 3, 8 );
* \endcode
*/
-UCHAR xMBUtilGetBits( UCHAR * ucByteBuf, USHORT usBitOffset,
- UCHAR ucNBits );
+uint8_t xMBUtilGetBits( uint8_t * ucByteBuf, uint16_t usBitOffset,
+ uint8_t ucNBits );
/*! @} */