Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
mbport.h
Package: FreeModBus.rar [view]
Upload User: kongshuqi
Upload Date: 2013-10-09
Package Size: 59k
Code Size: 4k
Category:
Communication
Development Platform:
Visual C++
- /*
- * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
- * 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
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * File: $Id: mbport.h,v 1.14 2006/06/26 19:26:50 wolti Exp $
- */
- #ifndef _MB_PORT_H
- #define _MB_PORT_H
- #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. */
- } eMBEventType;
- /*! ingroup modbus
- * brief 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. */
- } eMBParity;
- /* ----------------------- Supporting functions -----------------------------*/
- BOOL xMBPortEventInit( void );
- BOOL xMBPortEventPost( eMBEventType eEvent );
- BOOL xMBPortEventGet( /*@out@ */ eMBEventType * eEvent );
- /* ----------------------- Serial port functions ----------------------------*/
- BOOL xMBPortSerialInit( UCHAR ucPort, ULONG ulBaudRate,
- UCHAR ucDataBits, eMBParity eParity );
- void vMBPortClose( void );
- void xMBPortSerialClose( void );
- void vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable );
- INLINE BOOL xMBPortSerialGetByte( CHAR * pucByte );
- INLINE BOOL xMBPortSerialPutByte( CHAR ucByte );
- /* ----------------------- Timers functions ---------------------------------*/
- BOOL xMBPortTimersInit( USHORT usTim1Timerout100us );
- void xMBPortTimersClose( void );
- INLINE void vMBPortTimersEnable( void );
- INLINE void vMBPortTimersDisable( void );
- /* ----------------------- Callback for the protocol stack ------------------*/
- /*!
- * brief 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.
- */
- extern BOOL( *pxMBFrameCBByteReceived ) ( void );
- extern BOOL( *pxMBFrameCBTransmitterEmpty ) ( void );
- extern BOOL( *pxMBPortCBTimerExpired ) ( void );
- /* ----------------------- TCP port functions -------------------------------*/
- BOOL xMBTCPPortInit( USHORT usTCPPort );
- void vMBTCPPortClose( void );
- void vMBTCPPortDisable( void );
- BOOL xMBTCPPortGetRequest( UCHAR **ppucMBTCPFrame, USHORT * usTCPLength );
- BOOL xMBTCPPortSendResponse( const UCHAR *pucMBTCPFrame, USHORT usTCPLength );
- #ifdef __cplusplus
- PR_END_EXTERN_C
- #endif
- #endif