mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-19 05:43:34 +08:00
FreeModBus now builds
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4963 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
+40
-30
@@ -1,6 +1,8 @@
|
||||
/*
|
||||
* FreeModbus Libary: Linux Port
|
||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||
* FreeModbus Libary: NuttX Port
|
||||
* 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
|
||||
* 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 <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <assert.h>
|
||||
|
||||
/* ----------------------- 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
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
/*
|
||||
* FreeModbus Libary: Linux Port
|
||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||
* FreeModbus Libary: NuttX Port
|
||||
* 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
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -20,8 +22,8 @@
|
||||
*/
|
||||
|
||||
/* ----------------------- Modbus includes ----------------------------------*/
|
||||
#include "mb.h"
|
||||
#include "mbport.h"
|
||||
#include <apps/modbus/mb.h>
|
||||
#include <apps/modbus/mbport.h>
|
||||
|
||||
/* ----------------------- Variables ----------------------------------------*/
|
||||
static eMBEventType eQueuedEvent;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
/*
|
||||
* FreeModbus Libary: Linux Port
|
||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||
* FreeModbus Libary: NuttX Port
|
||||
* 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
|
||||
* 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 <apps/modbus/mb.h>
|
||||
#include <apps/modbus/mbport.h>
|
||||
|
||||
/* ----------------------- Defines ------------------------------------------*/
|
||||
#define NELEMS( x ) ( sizeof( ( x ) )/sizeof( ( x )[0] ) )
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
/*
|
||||
* FreeModbus Libary: Linux Port
|
||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||
* FreeModbus Libary: NuttX Port
|
||||
* 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
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -31,12 +33,13 @@
|
||||
#include <fcntl.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "port.h"
|
||||
|
||||
/* ----------------------- Modbus includes ----------------------------------*/
|
||||
#include "mb.h"
|
||||
#include "mbport.h"
|
||||
#include <apps/modbus/mb.h>
|
||||
#include <apps/modbus/mbport.h>
|
||||
|
||||
/* ----------------------- 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;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
/*
|
||||
* FreeModbus Libary: Linux Port
|
||||
* Copyright (C) 2006 Christian Walter <wolti@sil.at>
|
||||
* FreeModbus Libary: NuttX Port
|
||||
* 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
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -21,14 +23,16 @@
|
||||
|
||||
/* ----------------------- Standard includes --------------------------------*/
|
||||
#include <nuttx/config.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "port.h"
|
||||
|
||||
/* ----------------------- Modbus includes ----------------------------------*/
|
||||
#include "mb.h"
|
||||
#include "mbport.h"
|
||||
#include <apps/modbus/mb.h>
|
||||
#include <apps/modbus/mbport.h>
|
||||
|
||||
/* ----------------------- Defines ------------------------------------------*/
|
||||
|
||||
@@ -87,7 +91,7 @@ vMBPortTimersEnable( )
|
||||
{
|
||||
int res = gettimeofday( &xTimeLast, NULL );
|
||||
|
||||
assert( res == 0 );
|
||||
ASSERT( res == 0 );
|
||||
bTimeoutEnable = TRUE;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user