FreeModBus now builds
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4963 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
1df7b496dd
commit
d06e6c83b3
@ -48,6 +48,10 @@ CSRCS += mb.c
|
|||||||
DEPPATH = --dep-path .
|
DEPPATH = --dep-path .
|
||||||
VPATH = .
|
VPATH = .
|
||||||
|
|
||||||
|
ifeq ($(WINTOOL),y)
|
||||||
|
INCDIROPT = -w
|
||||||
|
endif
|
||||||
|
|
||||||
include ascii/Make.defs
|
include ascii/Make.defs
|
||||||
include functions/Make.defs
|
include functions/Make.defs
|
||||||
include nuttx/Make.defs
|
include nuttx/Make.defs
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
ifeq ($(MB_ASCII_ENABLED),y)
|
ifeq ($(CONFIG_MB_ASCII_ENABLED),y)
|
||||||
|
|
||||||
CSRCS += mbascii.c
|
CSRCS += mbascii.c
|
||||||
|
|
||||||
|
@ -32,17 +32,18 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
/* ----------------------- Platform includes --------------------------------*/
|
/* ----------------------- Platform includes --------------------------------*/
|
||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbascii.h"
|
#include <apps/modbus/mbframe.h>
|
||||||
#include "mbframe.h"
|
#include <apps/modbus/mbport.h>
|
||||||
|
|
||||||
|
#include "mbascii.h"
|
||||||
#include "mbcrc.h"
|
#include "mbcrc.h"
|
||||||
#include "mbport.h"
|
|
||||||
|
|
||||||
#ifdef CONFIG_MB_ASCII_ENABLED
|
#ifdef CONFIG_MB_ASCII_ENABLED
|
||||||
|
|
||||||
@ -154,7 +155,7 @@ eMBASCIIReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame, USHORT * pusLength )
|
|||||||
eMBErrorCode eStatus = MB_ENOERR;
|
eMBErrorCode eStatus = MB_ENOERR;
|
||||||
|
|
||||||
ENTER_CRITICAL_SECTION( );
|
ENTER_CRITICAL_SECTION( );
|
||||||
assert( usRcvBufferPos < MB_SER_PDU_SIZE_MAX );
|
ASSERT( usRcvBufferPos < MB_SER_PDU_SIZE_MAX );
|
||||||
|
|
||||||
/* Length and CRC check */
|
/* Length and CRC check */
|
||||||
if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN )
|
if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN )
|
||||||
@ -225,7 +226,7 @@ xMBASCIIReceiveFSM( void )
|
|||||||
UCHAR ucByte;
|
UCHAR ucByte;
|
||||||
UCHAR ucResult;
|
UCHAR ucResult;
|
||||||
|
|
||||||
assert( eSndState == STATE_TX_IDLE );
|
ASSERT( eSndState == STATE_TX_IDLE );
|
||||||
|
|
||||||
( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte );
|
( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte );
|
||||||
switch ( eRcvState )
|
switch ( eRcvState )
|
||||||
@ -333,7 +334,7 @@ xMBASCIITransmitFSM( void )
|
|||||||
BOOL xNeedPoll = FALSE;
|
BOOL xNeedPoll = FALSE;
|
||||||
UCHAR ucByte;
|
UCHAR ucByte;
|
||||||
|
|
||||||
assert( eRcvState == STATE_RX_IDLE );
|
ASSERT( eRcvState == STATE_RX_IDLE );
|
||||||
switch ( eSndState )
|
switch ( eSndState )
|
||||||
{
|
{
|
||||||
/* Start of transmission. The start of a frame is defined by sending
|
/* Start of transmission. The start of a frame is defined by sending
|
||||||
@ -421,7 +422,7 @@ xMBASCIITimerT1SExpired( void )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert( ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_WAIT_EOF ) );
|
ASSERT( ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_WAIT_EOF ) );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
vMBPortTimersDisable( );
|
vMBPortTimersDisable( );
|
||||||
@ -462,7 +463,7 @@ prvucMBBIN2CHAR( UCHAR ucByte )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Programming error. */
|
/* Programming error. */
|
||||||
assert( 0 );
|
ASSERT( 0 );
|
||||||
}
|
}
|
||||||
return '0';
|
return '0';
|
||||||
}
|
}
|
||||||
|
@ -37,9 +37,9 @@
|
|||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbframe.h"
|
#include <apps/modbus/mbframe.h>
|
||||||
#include "mbproto.h"
|
#include <apps/modbus/mbproto.h>
|
||||||
|
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
|
#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
|
||||||
|
@ -26,9 +26,9 @@
|
|||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbframe.h"
|
#include <apps/modbus/mbframe.h>
|
||||||
#include "mbproto.h"
|
#include <apps/modbus/mbproto.h>
|
||||||
|
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
|
#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
|
||||||
|
@ -37,9 +37,9 @@
|
|||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbframe.h"
|
#include <apps/modbus/mbframe.h>
|
||||||
#include "mbproto.h"
|
#include <apps/modbus/mbproto.h>
|
||||||
|
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF + 0)
|
#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF + 0)
|
||||||
|
@ -37,9 +37,9 @@
|
|||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbframe.h"
|
#include <apps/modbus/mbframe.h>
|
||||||
#include "mbproto.h"
|
#include <apps/modbus/mbproto.h>
|
||||||
|
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
|
#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
|
||||||
|
@ -37,9 +37,9 @@
|
|||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbframe.h"
|
#include <apps/modbus/mbframe.h>
|
||||||
#include "mbproto.h"
|
#include <apps/modbus/mbproto.h>
|
||||||
|
|
||||||
#ifdef CONFIG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED
|
#ifdef CONFIG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED
|
||||||
|
|
||||||
|
@ -32,13 +32,14 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
/* ----------------------- Platform includes --------------------------------*/
|
/* ----------------------- Platform includes --------------------------------*/
|
||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbproto.h"
|
#include <apps/modbus/mbproto.h>
|
||||||
|
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
#define BITS_UCHAR 8U
|
#define BITS_UCHAR 8U
|
||||||
@ -54,8 +55,8 @@ xMBUtilSetBits( UCHAR * ucByteBuf, USHORT usBitOffset, UCHAR ucNBits,
|
|||||||
USHORT usNPreBits;
|
USHORT usNPreBits;
|
||||||
USHORT usValue = ucValue;
|
USHORT usValue = ucValue;
|
||||||
|
|
||||||
assert( ucNBits <= 8 );
|
ASSERT( ucNBits <= 8 );
|
||||||
assert( ( size_t )BITS_UCHAR == sizeof( UCHAR ) * 8 );
|
ASSERT( ( size_t )BITS_UCHAR == sizeof( UCHAR ) * 8 );
|
||||||
|
|
||||||
/* Calculate byte offset for first byte containing the bit values starting
|
/* Calculate byte offset for first byte containing the bit values starting
|
||||||
* at usBitOffset. */
|
* at usBitOffset. */
|
||||||
|
13
modbus/mb.c
13
modbus/mb.c
@ -37,18 +37,21 @@
|
|||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbframe.h"
|
#include <apps/modbus/mbframe.h>
|
||||||
#include "mbproto.h"
|
#include <apps/modbus/mbproto.h>
|
||||||
#include "mbfunc.h"
|
#include <apps/modbus/mbfunc.h>
|
||||||
|
|
||||||
|
#include <apps/modbus/mbport.h>
|
||||||
|
|
||||||
#include "mbport.h"
|
|
||||||
#ifdef CONFIG_MB_RTU_ENABLED
|
#ifdef CONFIG_MB_RTU_ENABLED
|
||||||
#include "mbrtu.h"
|
#include "mbrtu.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_MB_ASCII_ENABLED
|
#ifdef CONFIG_MB_ASCII_ENABLED
|
||||||
#include "mbascii.h"
|
#include "mbascii.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_MB_TCP_ENABLED
|
#ifdef CONFIG_MB_TCP_ENABLED
|
||||||
#include "mbtcp.h"
|
#include "mbtcp.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* FreeModbus Libary: Linux Port
|
* FreeModbus Libary: NuttX Port
|
||||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
* Based on the FreeModbus Linux port by:
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* 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 $
|
* File: $Id: port.h,v 1.1 2006/08/01 20:58:49 wolti Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _PORT_H
|
#ifndef __APPS_MODBUS_NUTTX_PORT_H
|
||||||
#define _PORT_H
|
#define __APPS_MODBUS_NUTTX_PORT_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdint.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
|
|
||||||
#define INLINE
|
#define INLINE
|
||||||
#define PR_BEGIN_EXTERN_C extern "C" {
|
#define PR_BEGIN_EXTERN_C extern "C" {
|
||||||
#define PR_END_EXTERN_C }
|
#define PR_END_EXTERN_C }
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
PR_BEGIN_EXTERN_C
|
PR_BEGIN_EXTERN_C
|
||||||
#endif
|
#endif
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
|
||||||
#define ENTER_CRITICAL_SECTION( ) vMBPortEnterCritical()
|
#define ENTER_CRITICAL_SECTION( ) vMBPortEnterCritical()
|
||||||
#define EXIT_CRITICAL_SECTION( ) vMBPortExitCritical()
|
#define EXIT_CRITICAL_SECTION( ) vMBPortExitCritical()
|
||||||
#define MB_PORT_HAS_CLOSE 1
|
|
||||||
|
#define MB_PORT_HAS_CLOSE 1
|
||||||
|
|
||||||
#ifndef TRUE
|
#ifndef TRUE
|
||||||
#define TRUE 1
|
# define TRUE true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef FALSE
|
#ifndef FALSE
|
||||||
#define FALSE 0
|
# define FALSE false
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ----------------------- Type definitions ---------------------------------*/
|
/* ----------------------- Type definitions ---------------------------------*/
|
||||||
typedef enum
|
|
||||||
|
typedef enum
|
||||||
{
|
{
|
||||||
MB_LOG_ERROR = 0,
|
MB_LOG_ERROR = 0,
|
||||||
MB_LOG_WARN = 1,
|
MB_LOG_WARN = 1,
|
||||||
MB_LOG_INFO = 2,
|
MB_LOG_INFO = 2,
|
||||||
MB_LOG_DEBUG = 3
|
MB_LOG_DEBUG = 3
|
||||||
} eMBPortLogLevel;
|
} eMBPortLogLevel;
|
||||||
|
|
||||||
typedef char BOOL;
|
typedef bool BOOL;
|
||||||
typedef unsigned char UCHAR;
|
typedef uint8_t UCHAR;
|
||||||
typedef char CHAR;
|
typedef int8_t CHAR;
|
||||||
typedef unsigned short USHORT;
|
typedef uint16_t USHORT;
|
||||||
typedef short SHORT;
|
typedef int16_t SHORT;
|
||||||
|
typedef uint32_t ULONG;
|
||||||
typedef unsigned long ULONG;
|
typedef int32_t LONG;
|
||||||
typedef long LONG;
|
|
||||||
|
|
||||||
/* ----------------------- Function prototypes ------------------------------*/
|
/* ----------------------- Function prototypes ------------------------------*/
|
||||||
|
|
||||||
void vMBPortEnterCritical( void );
|
void vMBPortEnterCritical(void);
|
||||||
void vMBPortExitCritical( void );
|
void vMBPortExitCritical(void);
|
||||||
void vMBPortLog( eMBPortLogLevel eLevel, const CHAR * szModule,
|
void vMBPortLog(eMBPortLogLevel eLevel, const CHAR * szModule,
|
||||||
const CHAR * szFmt, ... );
|
const CHAR * szFmt, ...);
|
||||||
void vMBPortTimerPoll( );
|
void vMBPortTimerPoll(void);
|
||||||
BOOL xMBPortSerialPoll( );
|
BOOL xMBPortSerialPoll(void);
|
||||||
BOOL xMBPortSerialSetTimeout( ULONG dwTimeoutMs );
|
BOOL xMBPortSerialSetTimeout(ULONG dwTimeoutMs);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
PR_END_EXTERN_C
|
PR_END_EXTERN_C
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* FreeModbus Libary: Linux Port
|
* FreeModbus Libary: NuttX Port
|
||||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
* Based on the FreeModbus Linux port by:
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -20,8 +22,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbport.h"
|
#include <apps/modbus/mbport.h>
|
||||||
|
|
||||||
/* ----------------------- Variables ----------------------------------------*/
|
/* ----------------------- Variables ----------------------------------------*/
|
||||||
static eMBEventType eQueuedEvent;
|
static eMBEventType eQueuedEvent;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* FreeModbus Libary: Linux Port
|
* FreeModbus Libary: NuttX Port
|
||||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
* Based on the FreeModbus Linux port by:
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -31,8 +33,8 @@
|
|||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbport.h"
|
#include <apps/modbus/mbport.h>
|
||||||
|
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
#define NELEMS( x ) ( sizeof( ( x ) )/sizeof( ( x )[0] ) )
|
#define NELEMS( x ) ( sizeof( ( x ) )/sizeof( ( x )[0] ) )
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* FreeModbus Libary: Linux Port
|
* FreeModbus Libary: NuttX Port
|
||||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
* Based on the FreeModbus Linux port by:
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -31,12 +33,13 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbport.h"
|
#include <apps/modbus/mbport.h>
|
||||||
|
|
||||||
/* ----------------------- Defines -----------------------------------------*/
|
/* ----------------------- Defines -----------------------------------------*/
|
||||||
#ifdef CONFIG_MB_ASCII_ENABLED
|
#ifdef CONFIG_MB_ASCII_ENABLED
|
||||||
@ -66,7 +69,7 @@ void
|
|||||||
vMBPortSerialEnable( BOOL bEnableRx, BOOL bEnableTx )
|
vMBPortSerialEnable( BOOL bEnableRx, BOOL bEnableTx )
|
||||||
{
|
{
|
||||||
/* it is not allowed that both receiver and transmitter are enabled. */
|
/* it is not allowed that both receiver and transmitter are enabled. */
|
||||||
assert( !bEnableRx || !bEnableTx );
|
ASSERT( !bEnableRx || !bEnableTx );
|
||||||
|
|
||||||
if( bEnableRx )
|
if( bEnableRx )
|
||||||
{
|
{
|
||||||
@ -336,7 +339,7 @@ xMBPortSerialPoll( )
|
|||||||
BOOL
|
BOOL
|
||||||
xMBPortSerialPutByte( CHAR ucByte )
|
xMBPortSerialPutByte( CHAR ucByte )
|
||||||
{
|
{
|
||||||
assert( uiTxBufferPos < BUF_SIZE );
|
ASSERT( uiTxBufferPos < BUF_SIZE );
|
||||||
ucBuffer[uiTxBufferPos] = ucByte;
|
ucBuffer[uiTxBufferPos] = ucByte;
|
||||||
uiTxBufferPos++;
|
uiTxBufferPos++;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -345,7 +348,7 @@ xMBPortSerialPutByte( CHAR ucByte )
|
|||||||
BOOL
|
BOOL
|
||||||
xMBPortSerialGetByte( CHAR * pucByte )
|
xMBPortSerialGetByte( CHAR * pucByte )
|
||||||
{
|
{
|
||||||
assert( uiRxBufferPos < BUF_SIZE );
|
ASSERT( uiRxBufferPos < BUF_SIZE );
|
||||||
*pucByte = ucBuffer[uiRxBufferPos];
|
*pucByte = ucBuffer[uiRxBufferPos];
|
||||||
uiRxBufferPos++;
|
uiRxBufferPos++;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* FreeModbus Libary: Linux Port
|
* FreeModbus Libary: NuttX Port
|
||||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
* Based on the FreeModbus Linux port by:
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -21,14 +23,16 @@
|
|||||||
|
|
||||||
/* ----------------------- Standard includes --------------------------------*/
|
/* ----------------------- Standard includes --------------------------------*/
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbport.h"
|
#include <apps/modbus/mbport.h>
|
||||||
|
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
|
|
||||||
@ -87,7 +91,7 @@ vMBPortTimersEnable( )
|
|||||||
{
|
{
|
||||||
int res = gettimeofday( &xTimeLast, NULL );
|
int res = gettimeofday( &xTimeLast, NULL );
|
||||||
|
|
||||||
assert( res == 0 );
|
ASSERT( res == 0 );
|
||||||
bTimeoutEnable = TRUE;
|
bTimeoutEnable = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
ifeq ($(MB_RTU_ENABLED),y)
|
ifeq ($(CONFIG_MB_RTU_ENABLED),y)
|
||||||
|
|
||||||
CSRCS += mbcrc.c mbrtu.c
|
CSRCS += mbcrc.c mbrtu.c
|
||||||
|
|
||||||
|
@ -32,17 +32,18 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
/* ----------------------- Platform includes --------------------------------*/
|
/* ----------------------- Platform includes --------------------------------*/
|
||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbus/mb.h>
|
||||||
#include "mbrtu.h"
|
#include <apps/modbus/mbframe.h>
|
||||||
#include "mbframe.h"
|
#include <apps/modbus/mbport.h>
|
||||||
|
|
||||||
|
#include "mbrtu.h"
|
||||||
#include "mbcrc.h"
|
#include "mbcrc.h"
|
||||||
#include "mbport.h"
|
|
||||||
|
|
||||||
/* ----------------------- Defines ------------------------------------------*/
|
/* ----------------------- Defines ------------------------------------------*/
|
||||||
#define MB_SER_PDU_SIZE_MIN 4 /*!< Minimum size of a Modbus RTU frame. */
|
#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;
|
eMBErrorCode eStatus = MB_ENOERR;
|
||||||
|
|
||||||
ENTER_CRITICAL_SECTION( );
|
ENTER_CRITICAL_SECTION( );
|
||||||
assert( usRcvBufferPos < MB_SER_PDU_SIZE_MAX );
|
ASSERT( usRcvBufferPos < MB_SER_PDU_SIZE_MAX );
|
||||||
|
|
||||||
/* Length and CRC check */
|
/* Length and CRC check */
|
||||||
if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN )
|
if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN )
|
||||||
@ -229,7 +230,7 @@ xMBRTUReceiveFSM( void )
|
|||||||
BOOL xTaskNeedSwitch = FALSE;
|
BOOL xTaskNeedSwitch = FALSE;
|
||||||
UCHAR ucByte;
|
UCHAR ucByte;
|
||||||
|
|
||||||
assert( eSndState == STATE_TX_IDLE );
|
ASSERT( eSndState == STATE_TX_IDLE );
|
||||||
|
|
||||||
/* Always read the character. */
|
/* Always read the character. */
|
||||||
( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte );
|
( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte );
|
||||||
@ -288,7 +289,7 @@ xMBRTUTransmitFSM( void )
|
|||||||
{
|
{
|
||||||
BOOL xNeedPoll = FALSE;
|
BOOL xNeedPoll = FALSE;
|
||||||
|
|
||||||
assert( eRcvState == STATE_RX_IDLE );
|
ASSERT( eRcvState == STATE_RX_IDLE );
|
||||||
|
|
||||||
switch ( eSndState )
|
switch ( eSndState )
|
||||||
{
|
{
|
||||||
@ -345,7 +346,7 @@ xMBRTUTimerT35Expired( void )
|
|||||||
|
|
||||||
/* Function called in an illegal state. */
|
/* Function called in an illegal state. */
|
||||||
default:
|
default:
|
||||||
assert( ( eRcvState == STATE_RX_INIT ) ||
|
ASSERT( ( eRcvState == STATE_RX_INIT ) ||
|
||||||
( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_ERROR ) );
|
( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_ERROR ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
ifeq ($(MB_TCP_ENABLED),y)
|
ifeq ($(CONFIG_MB_TCP_ENABLED),y)
|
||||||
|
|
||||||
CSRCS += mbtcp.c
|
CSRCS += mbtcp.c
|
||||||
|
|
||||||
|
@ -37,10 +37,11 @@
|
|||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
/* ----------------------- Modbus includes ----------------------------------*/
|
/* ----------------------- Modbus includes ----------------------------------*/
|
||||||
#include "mb.h"
|
#include <apps/modbusmb.h>
|
||||||
|
#include <apps/modbusmbframe.h>
|
||||||
|
#include <apps/modbusmbport.h>
|
||||||
|
|
||||||
#include "mbtcp.h"
|
#include "mbtcp.h"
|
||||||
#include "mbframe.h"
|
|
||||||
#include "mbport.h"
|
|
||||||
|
|
||||||
#ifdef CONFIG_MB_TCP_ENABLED
|
#ifdef CONFIG_MB_TCP_ENABLED
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user