From ebf70f8a79eb8ef23bc1d99938768ef06c466119 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 21 Jul 2012 16:18:16 +0000 Subject: FreeModBus now builds git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4963 42af7a65-404d-4744-a932-0658087f49c3 --- apps/modbus/Makefile | 4 ++ apps/modbus/ascii/Make.defs | 2 +- apps/modbus/ascii/mbascii.c | 19 +++++----- apps/modbus/functions/mbfunccoils.c | 6 +-- apps/modbus/functions/mbfuncdisc.c | 6 +-- apps/modbus/functions/mbfuncholding.c | 6 +-- apps/modbus/functions/mbfuncinput.c | 6 +-- apps/modbus/functions/mbfuncother.c | 6 +-- apps/modbus/functions/mbutils.c | 9 +++-- apps/modbus/mb.c | 13 ++++--- apps/modbus/nuttx/port.h | 70 ++++++++++++++++++++--------------- apps/modbus/nuttx/portevent.c | 10 +++-- apps/modbus/nuttx/portother.c | 10 +++-- apps/modbus/nuttx/portserial.c | 17 +++++---- apps/modbus/nuttx/porttimer.c | 16 +++++--- apps/modbus/rtu/Make.defs | 2 +- apps/modbus/rtu/mbrtu.c | 17 +++++---- apps/modbus/tcp/Make.defs | 2 +- apps/modbus/tcp/mbtcp.c | 7 ++-- 19 files changed, 130 insertions(+), 98 deletions(-) diff --git a/apps/modbus/Makefile b/apps/modbus/Makefile index 485228607..3cee14017 100644 --- a/apps/modbus/Makefile +++ b/apps/modbus/Makefile @@ -48,6 +48,10 @@ CSRCS += mb.c DEPPATH = --dep-path . VPATH = . +ifeq ($(WINTOOL),y) +INCDIROPT = -w +endif + include ascii/Make.defs include functions/Make.defs include nuttx/Make.defs diff --git a/apps/modbus/ascii/Make.defs b/apps/modbus/ascii/Make.defs index 263134f1c..3e9967283 100644 --- a/apps/modbus/ascii/Make.defs +++ b/apps/modbus/ascii/Make.defs @@ -33,7 +33,7 @@ # ############################################################################ -ifeq ($(MB_ASCII_ENABLED),y) +ifeq ($(CONFIG_MB_ASCII_ENABLED),y) CSRCS += mbascii.c diff --git a/apps/modbus/ascii/mbascii.c b/apps/modbus/ascii/mbascii.c index c334d6a9a..6b871601b 100644 --- a/apps/modbus/ascii/mbascii.c +++ b/apps/modbus/ascii/mbascii.c @@ -32,17 +32,18 @@ #include #include #include +#include /* ----------------------- Platform includes --------------------------------*/ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbascii.h" -#include "mbframe.h" +#include +#include +#include +#include "mbascii.h" #include "mbcrc.h" -#include "mbport.h" #ifdef CONFIG_MB_ASCII_ENABLED @@ -154,7 +155,7 @@ eMBASCIIReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame, USHORT * pusLength ) eMBErrorCode eStatus = MB_ENOERR; ENTER_CRITICAL_SECTION( ); - assert( usRcvBufferPos < MB_SER_PDU_SIZE_MAX ); + ASSERT( usRcvBufferPos < MB_SER_PDU_SIZE_MAX ); /* Length and CRC check */ if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN ) @@ -225,7 +226,7 @@ xMBASCIIReceiveFSM( void ) UCHAR ucByte; UCHAR ucResult; - assert( eSndState == STATE_TX_IDLE ); + ASSERT( eSndState == STATE_TX_IDLE ); ( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte ); switch ( eRcvState ) @@ -333,7 +334,7 @@ xMBASCIITransmitFSM( void ) BOOL xNeedPoll = FALSE; UCHAR ucByte; - assert( eRcvState == STATE_RX_IDLE ); + ASSERT( eRcvState == STATE_RX_IDLE ); switch ( eSndState ) { /* Start of transmission. The start of a frame is defined by sending @@ -421,7 +422,7 @@ xMBASCIITimerT1SExpired( void ) break; default: - assert( ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_WAIT_EOF ) ); + ASSERT( ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_WAIT_EOF ) ); break; } vMBPortTimersDisable( ); @@ -462,7 +463,7 @@ prvucMBBIN2CHAR( UCHAR ucByte ) else { /* Programming error. */ - assert( 0 ); + ASSERT( 0 ); } return '0'; } diff --git a/apps/modbus/functions/mbfunccoils.c b/apps/modbus/functions/mbfunccoils.c index 4bf9ce1ce..e518dbc79 100644 --- a/apps/modbus/functions/mbfunccoils.c +++ b/apps/modbus/functions/mbfunccoils.c @@ -37,9 +37,9 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbframe.h" -#include "mbproto.h" +#include +#include +#include /* ----------------------- Defines ------------------------------------------*/ #define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF ) diff --git a/apps/modbus/functions/mbfuncdisc.c b/apps/modbus/functions/mbfuncdisc.c index 14d49e470..525fb037d 100644 --- a/apps/modbus/functions/mbfuncdisc.c +++ b/apps/modbus/functions/mbfuncdisc.c @@ -26,9 +26,9 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbframe.h" -#include "mbproto.h" +#include +#include +#include /* ----------------------- Defines ------------------------------------------*/ #define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF ) diff --git a/apps/modbus/functions/mbfuncholding.c b/apps/modbus/functions/mbfuncholding.c index 507b7f382..019699836 100644 --- a/apps/modbus/functions/mbfuncholding.c +++ b/apps/modbus/functions/mbfuncholding.c @@ -37,9 +37,9 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbframe.h" -#include "mbproto.h" +#include +#include +#include /* ----------------------- Defines ------------------------------------------*/ #define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF + 0) diff --git a/apps/modbus/functions/mbfuncinput.c b/apps/modbus/functions/mbfuncinput.c index 92c3ab79f..3f66c6594 100644 --- a/apps/modbus/functions/mbfuncinput.c +++ b/apps/modbus/functions/mbfuncinput.c @@ -37,9 +37,9 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbframe.h" -#include "mbproto.h" +#include +#include +#include /* ----------------------- Defines ------------------------------------------*/ #define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF ) diff --git a/apps/modbus/functions/mbfuncother.c b/apps/modbus/functions/mbfuncother.c index 5d5636a16..f68097a4c 100644 --- a/apps/modbus/functions/mbfuncother.c +++ b/apps/modbus/functions/mbfuncother.c @@ -37,9 +37,9 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbframe.h" -#include "mbproto.h" +#include +#include +#include #ifdef CONFIG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED diff --git a/apps/modbus/functions/mbutils.c b/apps/modbus/functions/mbutils.c index 8812419ec..992333565 100644 --- a/apps/modbus/functions/mbutils.c +++ b/apps/modbus/functions/mbutils.c @@ -32,13 +32,14 @@ #include #include #include +#include /* ----------------------- Platform includes --------------------------------*/ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbproto.h" +#include +#include /* ----------------------- Defines ------------------------------------------*/ #define BITS_UCHAR 8U @@ -54,8 +55,8 @@ xMBUtilSetBits( UCHAR * ucByteBuf, USHORT usBitOffset, UCHAR ucNBits, USHORT usNPreBits; USHORT usValue = ucValue; - assert( ucNBits <= 8 ); - assert( ( size_t )BITS_UCHAR == sizeof( UCHAR ) * 8 ); + ASSERT( ucNBits <= 8 ); + ASSERT( ( size_t )BITS_UCHAR == sizeof( UCHAR ) * 8 ); /* Calculate byte offset for first byte containing the bit values starting * at usBitOffset. */ diff --git a/apps/modbus/mb.c b/apps/modbus/mb.c index ff773ddca..421a25567 100644 --- a/apps/modbus/mb.c +++ b/apps/modbus/mb.c @@ -37,18 +37,21 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbframe.h" -#include "mbproto.h" -#include "mbfunc.h" +#include +#include +#include +#include + +#include -#include "mbport.h" #ifdef CONFIG_MB_RTU_ENABLED #include "mbrtu.h" #endif + #ifdef CONFIG_MB_ASCII_ENABLED #include "mbascii.h" #endif + #ifdef CONFIG_MB_TCP_ENABLED #include "mbtcp.h" #endif diff --git a/apps/modbus/nuttx/port.h b/apps/modbus/nuttx/port.h index 4102628b4..6bb9ab1ba 100644 --- a/apps/modbus/nuttx/port.h +++ b/apps/modbus/nuttx/port.h @@ -1,6 +1,8 @@ /* - * FreeModbus Libary: Linux Port - * Copyright (C) 2006 Christian Walter + * FreeModbus Libary: NuttX Port + * Based on the FreeModbus Linux port by: + * + * Copyright (C) 2006 Christian Walter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,55 +21,63 @@ * File: $Id: port.h,v 1.1 2006/08/01 20:58:49 wolti Exp $ */ -#ifndef _PORT_H -#define _PORT_H +#ifndef __APPS_MODBUS_NUTTX_PORT_H +#define __APPS_MODBUS_NUTTX_PORT_H +#include +#include #include +/* ----------------------- Defines ------------------------------------------*/ + #define INLINE -#define PR_BEGIN_EXTERN_C extern "C" { -#define PR_END_EXTERN_C } +#define PR_BEGIN_EXTERN_C extern "C" { +#define PR_END_EXTERN_C } #ifdef __cplusplus PR_BEGIN_EXTERN_C #endif -/* ----------------------- Defines ------------------------------------------*/ + #define ENTER_CRITICAL_SECTION( ) vMBPortEnterCritical() #define EXIT_CRITICAL_SECTION( ) vMBPortExitCritical() -#define MB_PORT_HAS_CLOSE 1 + +#define MB_PORT_HAS_CLOSE 1 + #ifndef TRUE -#define TRUE 1 +# define TRUE true #endif + #ifndef FALSE -#define FALSE 0 +# define FALSE false #endif + /* ----------------------- Type definitions ---------------------------------*/ - typedef enum + +typedef enum { - MB_LOG_ERROR = 0, - MB_LOG_WARN = 1, - MB_LOG_INFO = 2, - MB_LOG_DEBUG = 3 + MB_LOG_ERROR = 0, + MB_LOG_WARN = 1, + MB_LOG_INFO = 2, + MB_LOG_DEBUG = 3 } eMBPortLogLevel; -typedef char BOOL; -typedef unsigned char UCHAR; -typedef char CHAR; -typedef unsigned short USHORT; -typedef short SHORT; - -typedef unsigned long ULONG; -typedef long LONG; +typedef bool BOOL; +typedef uint8_t UCHAR; +typedef int8_t CHAR; +typedef uint16_t USHORT; +typedef int16_t SHORT; +typedef uint32_t ULONG; +typedef int32_t LONG; /* ----------------------- Function prototypes ------------------------------*/ -void vMBPortEnterCritical( void ); -void vMBPortExitCritical( void ); -void vMBPortLog( eMBPortLogLevel eLevel, const CHAR * szModule, - const CHAR * szFmt, ... ); -void vMBPortTimerPoll( ); -BOOL xMBPortSerialPoll( ); -BOOL xMBPortSerialSetTimeout( ULONG dwTimeoutMs ); +void vMBPortEnterCritical(void); +void vMBPortExitCritical(void); +void vMBPortLog(eMBPortLogLevel eLevel, const CHAR * szModule, + const CHAR * szFmt, ...); +void vMBPortTimerPoll(void); +BOOL xMBPortSerialPoll(void); +BOOL xMBPortSerialSetTimeout(ULONG dwTimeoutMs); #ifdef __cplusplus PR_END_EXTERN_C diff --git a/apps/modbus/nuttx/portevent.c b/apps/modbus/nuttx/portevent.c index dd7a6fef8..e96eb3d73 100644 --- a/apps/modbus/nuttx/portevent.c +++ b/apps/modbus/nuttx/portevent.c @@ -1,6 +1,8 @@ /* - * FreeModbus Libary: Linux Port - * Copyright (C) 2006 Christian Walter + * FreeModbus Libary: NuttX Port + * Based on the FreeModbus Linux port by: + * + * Copyright (C) 2006 Christian Walter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,8 +22,8 @@ */ /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbport.h" +#include +#include /* ----------------------- Variables ----------------------------------------*/ static eMBEventType eQueuedEvent; diff --git a/apps/modbus/nuttx/portother.c b/apps/modbus/nuttx/portother.c index bb7068940..d74d28de3 100644 --- a/apps/modbus/nuttx/portother.c +++ b/apps/modbus/nuttx/portother.c @@ -1,6 +1,8 @@ /* - * FreeModbus Libary: Linux Port - * Copyright (C) 2006 Christian Walter + * FreeModbus Libary: NuttX Port + * Based on the FreeModbus Linux port by: + * + * Copyright (C) 2006 Christian Walter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,8 +33,8 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbport.h" +#include +#include /* ----------------------- Defines ------------------------------------------*/ #define NELEMS( x ) ( sizeof( ( x ) )/sizeof( ( x )[0] ) ) diff --git a/apps/modbus/nuttx/portserial.c b/apps/modbus/nuttx/portserial.c index bacab6a23..a30f7f4aa 100644 --- a/apps/modbus/nuttx/portserial.c +++ b/apps/modbus/nuttx/portserial.c @@ -1,6 +1,8 @@ /* - * FreeModbus Libary: Linux Port - * Copyright (C) 2006 Christian Walter + * FreeModbus Libary: NuttX Port + * Based on the FreeModbus Linux port by: + * + * Copyright (C) 2006 Christian Walter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -31,12 +33,13 @@ #include #include #include +#include #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbport.h" +#include +#include /* ----------------------- Defines -----------------------------------------*/ #ifdef CONFIG_MB_ASCII_ENABLED @@ -66,7 +69,7 @@ void vMBPortSerialEnable( BOOL bEnableRx, BOOL bEnableTx ) { /* it is not allowed that both receiver and transmitter are enabled. */ - assert( !bEnableRx || !bEnableTx ); + ASSERT( !bEnableRx || !bEnableTx ); if( bEnableRx ) { @@ -336,7 +339,7 @@ xMBPortSerialPoll( ) BOOL xMBPortSerialPutByte( CHAR ucByte ) { - assert( uiTxBufferPos < BUF_SIZE ); + ASSERT( uiTxBufferPos < BUF_SIZE ); ucBuffer[uiTxBufferPos] = ucByte; uiTxBufferPos++; return TRUE; @@ -345,7 +348,7 @@ xMBPortSerialPutByte( CHAR ucByte ) BOOL xMBPortSerialGetByte( CHAR * pucByte ) { - assert( uiRxBufferPos < BUF_SIZE ); + ASSERT( uiRxBufferPos < BUF_SIZE ); *pucByte = ucBuffer[uiRxBufferPos]; uiRxBufferPos++; return TRUE; diff --git a/apps/modbus/nuttx/porttimer.c b/apps/modbus/nuttx/porttimer.c index c440e4f1f..3ff2d78ae 100644 --- a/apps/modbus/nuttx/porttimer.c +++ b/apps/modbus/nuttx/porttimer.c @@ -1,6 +1,8 @@ /* - * FreeModbus Libary: Linux Port - * Copyright (C) 2006 Christian Walter + * FreeModbus Libary: NuttX Port + * Based on the FreeModbus Linux port by: + * + * Copyright (C) 2006 Christian Walter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -21,14 +23,16 @@ /* ----------------------- Standard includes --------------------------------*/ #include -#include + #include +#include +#include #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbport.h" +#include +#include /* ----------------------- Defines ------------------------------------------*/ @@ -87,7 +91,7 @@ vMBPortTimersEnable( ) { int res = gettimeofday( &xTimeLast, NULL ); - assert( res == 0 ); + ASSERT( res == 0 ); bTimeoutEnable = TRUE; } diff --git a/apps/modbus/rtu/Make.defs b/apps/modbus/rtu/Make.defs index bb1b46c30..8b9c68c77 100644 --- a/apps/modbus/rtu/Make.defs +++ b/apps/modbus/rtu/Make.defs @@ -33,7 +33,7 @@ # ############################################################################ -ifeq ($(MB_RTU_ENABLED),y) +ifeq ($(CONFIG_MB_RTU_ENABLED),y) CSRCS += mbcrc.c mbrtu.c diff --git a/apps/modbus/rtu/mbrtu.c b/apps/modbus/rtu/mbrtu.c index d3fd01fcb..8959b66f7 100644 --- a/apps/modbus/rtu/mbrtu.c +++ b/apps/modbus/rtu/mbrtu.c @@ -32,17 +32,18 @@ #include #include #include +#include /* ----------------------- Platform includes --------------------------------*/ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" -#include "mbrtu.h" -#include "mbframe.h" +#include +#include +#include +#include "mbrtu.h" #include "mbcrc.h" -#include "mbport.h" /* ----------------------- Defines ------------------------------------------*/ #define MB_SER_PDU_SIZE_MIN 4 /*!< Minimum size of a Modbus RTU frame. */ @@ -155,7 +156,7 @@ eMBRTUReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame, USHORT * pusLength ) eMBErrorCode eStatus = MB_ENOERR; ENTER_CRITICAL_SECTION( ); - assert( usRcvBufferPos < MB_SER_PDU_SIZE_MAX ); + ASSERT( usRcvBufferPos < MB_SER_PDU_SIZE_MAX ); /* Length and CRC check */ if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN ) @@ -229,7 +230,7 @@ xMBRTUReceiveFSM( void ) BOOL xTaskNeedSwitch = FALSE; UCHAR ucByte; - assert( eSndState == STATE_TX_IDLE ); + ASSERT( eSndState == STATE_TX_IDLE ); /* Always read the character. */ ( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte ); @@ -288,7 +289,7 @@ xMBRTUTransmitFSM( void ) { BOOL xNeedPoll = FALSE; - assert( eRcvState == STATE_RX_IDLE ); + ASSERT( eRcvState == STATE_RX_IDLE ); switch ( eSndState ) { @@ -345,7 +346,7 @@ xMBRTUTimerT35Expired( void ) /* Function called in an illegal state. */ default: - assert( ( eRcvState == STATE_RX_INIT ) || + ASSERT( ( eRcvState == STATE_RX_INIT ) || ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_ERROR ) ); } diff --git a/apps/modbus/tcp/Make.defs b/apps/modbus/tcp/Make.defs index 93d4a2be0..30860be3a 100644 --- a/apps/modbus/tcp/Make.defs +++ b/apps/modbus/tcp/Make.defs @@ -33,7 +33,7 @@ # ############################################################################ -ifeq ($(MB_TCP_ENABLED),y) +ifeq ($(CONFIG_MB_TCP_ENABLED),y) CSRCS += mbtcp.c diff --git a/apps/modbus/tcp/mbtcp.c b/apps/modbus/tcp/mbtcp.c index a666c17a5..195a88fe9 100644 --- a/apps/modbus/tcp/mbtcp.c +++ b/apps/modbus/tcp/mbtcp.c @@ -37,10 +37,11 @@ #include "port.h" /* ----------------------- Modbus includes ----------------------------------*/ -#include "mb.h" +#include +#include +#include + #include "mbtcp.h" -#include "mbframe.h" -#include "mbport.h" #ifdef CONFIG_MB_TCP_ENABLED -- cgit v1.2.3