summaryrefslogtreecommitdiff
path: root/apps/include/modbus/mbport.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/include/modbus/mbport.h')
-rw-r--r--apps/include/modbus/mbport.h135
1 files changed, 69 insertions, 66 deletions
diff --git a/apps/include/modbus/mbport.h b/apps/include/modbus/mbport.h
index fbc1c260d..ae2170d2b 100644
--- a/apps/include/modbus/mbport.h
+++ b/apps/include/modbus/mbport.h
@@ -1,4 +1,6 @@
-/*
+/****************************************************************************
+ * apps/include/modbus/mbport.h
+ *
* FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
* Copyright (c) 2006 Christian Walter <wolti@sil.at>
* All rights reserved.
@@ -25,108 +27,109 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * File: $Id: mbport.h,v 1.19 2010/06/06 13:54:40 wolti Exp $
- */
+ ****************************************************************************/
-#ifndef _MB_PORT_H
-#define _MB_PORT_H
+#ifndef __APPS_INCLUDE_MODBUS_MBPORT_H
+#define __APPS_INCLUDE_MODBUS_MBPORT_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
#include <stdint.h>
#include <stdbool.h>
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
#ifdef __cplusplus
PR_BEGIN_EXTERN_C
#endif
-/* ----------------------- Type definitions ---------------------------------*/
-
typedef enum
{
- EV_READY, /*!< Startup finished. */
- EV_FRAME_RECEIVED, /*!< Frame received. */
- EV_EXECUTE, /*!< Execute function. */
- EV_FRAME_SENT /*!< Frame sent. */
+ EV_READY, /* Startup finished. */
+ EV_FRAME_RECEIVED, /* Frame received. */
+ EV_EXECUTE, /* Execute function. */
+ EV_FRAME_SENT /* Frame sent. */
} eMBEventType;
-/*! \ingroup modbus
- * \brief Parity used for characters in serial mode.
+/* Parity used for characters in serial mode.
*
* The parity which should be applied to the characters sent over the serial
* link. Please note that this values are actually passed to the porting
* layer and therefore not all parity modes might be available.
*/
+
typedef enum
{
- MB_PAR_NONE, /*!< No parity. */
- MB_PAR_ODD, /*!< Odd parity. */
- MB_PAR_EVEN /*!< Even parity. */
+ MB_PAR_NONE, /* No parity. */
+ MB_PAR_ODD, /* Odd parity. */
+ MB_PAR_EVEN /* Even parity. */
} eMBParity;
-/* ----------------------- Supporting functions -----------------------------*/
-bool xMBPortEventInit( void );
-
-bool xMBPortEventPost( eMBEventType eEvent );
-
-bool xMBPortEventGet( /*@out@ */ eMBEventType * eEvent );
-
-/* ----------------------- Serial port functions ----------------------------*/
-
-bool xMBPortSerialInit( uint8_t ucPort, speed_t ulBaudRate,
- uint8_t ucDataBits, eMBParity eParity );
-
-void vMBPortClose( void );
-
-void xMBPortSerialClose( void );
-
-void vMBPortSerialEnable( bool xRxEnable, bool xTxEnable );
-
-bool xMBPortSerialGetByte( int8_t * pucByte );
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
-bool xMBPortSerialPutByte( int8_t ucByte );
-
-/* ----------------------- Timers functions ---------------------------------*/
-bool xMBPortTimersInit( uint16_t usTimeOut50us );
-
-void xMBPortTimersClose( void );
-
-void vMBPortTimersEnable( void );
-
-void vMBPortTimersDisable( void );
-
-void vMBPortTimersDelay( uint16_t usTimeOutMS );
-
-/* ----------------------- Callback for the protocol stack ------------------*/
-
-/*!
- * \brief Callback function for the porting layer when a new byte is
- * available.
+/* Callback function for the porting layer when a new byte is available.
*
* Depending upon the mode this callback function is used by the RTU or
* 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
- * a new byte was received. The port implementation should wake up the
- * tasks which are currently blocked on the eventqueue.
+ * Return true 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( *pxMBFrameCBTransmitterEmpty ) ( void );
+extern bool(*pxMBFrameCBByteReceived)(void);
+extern bool(*pxMBFrameCBTransmitterEmpty)(void);
+extern bool(*pxMBPortCBTimerExpired)(void);
-extern bool( *pxMBPortCBTimerExpired ) ( void );
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
-/* ----------------------- TCP port functions -------------------------------*/
-bool xMBTCPPortInit( uint16_t usTCPPort );
+/* Supporting functions */
-void vMBTCPPortClose( void );
+bool xMBPortEventInit(void);
+bool xMBPortEventPost(eMBEventType eEvent);
+bool xMBPortEventGet(/*@out@ */ eMBEventType * eEvent);
-void vMBTCPPortDisable( void );
+/* Serial port functions */
-bool xMBTCPPortGetRequest( uint8_t **ppucMBTCPFrame, uint16_t * usTCPLength );
+bool xMBPortSerialInit(uint8_t ucPort, speed_t ulBaudRate,
+ uint8_t ucDataBits, eMBParity eParity);
+#ifdef CONFIG_MB_HAVE_CLOSE
+void vMBPortClose(void);
+#endif
+void xMBPortSerialClose(void);
+void vMBPortSerialEnable(bool xRxEnable, bool xTxEnable);
+bool xMBPortSerialGetByte(int8_t * pucByte);
+bool xMBPortSerialPutByte(int8_t ucByte);
+
+/* Timers functions */
-bool xMBTCPPortSendResponse( const uint8_t *pucMBTCPFrame, uint16_t usTCPLength );
+bool xMBPortTimersInit(uint16_t usTimeOut50us);
+void xMBPortTimersClose(void);
+void vMBPortTimersEnable(void);
+void vMBPortTimersDisable(void);
+void vMBPortTimersDelay(uint16_t usTimeOutMS);
+
+/* TCP port function */
+
+bool xMBTCPPortInit(uint16_t usTCPPort);
+#ifdef CONFIG_MB_HAVE_CLOSE
+void vMBTCPPortClose(void);
+#endif
+void vMBTCPPortDisable(void);
+bool xMBTCPPortGetRequest(uint8_t **ppucMBTCPFrame, uint16_t * usTCPLength);
+bool xMBTCPPortSendResponse(const uint8_t *pucMBTCPFrame, uint16_t usTCPLength);
#ifdef __cplusplus
PR_END_EXTERN_C
#endif
-#endif
+
+#endif /* __APPS_INCLUDE_MODBUS_MBPORT_H */