Hauptseite | Klassenhierarchie | Alphabetische Liste | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente

# BernsteinMsg.h

    00001 /* *****************************************************************************
    00002 **
    00003 ** Projekt       : FPS
    00004 ** File          : BernsteinMsg.h
    00005 ** Version       : $Revision: 1.10 $
    00006 ** Copyright     : (C) 2001 by Analytica GmbH
    00007 **
    00008 **-----------------------------------------------------------------------------
    00009 **
    00010 ** $Id: BernsteinMsg.h,v 1.10 2008/02/12 14:44:51 axelschmidt Exp $
    00011 **
    00012 ** $Log: BernsteinMsg.h,v $
    00013 ** Revision 1.10  2008/02/12 14:44:51  axelschmidt
    00014 ** neue Funktionen für direkten Zugriff auf serielle Schnittstelle
    00015 **
    00016 ** Revision 1.9  2001/09/05 07:23:42  AxelSchmidt
    00017 ** Zugriff auf IO-Handle im Read-Thread gesichert
    00018 **
    00019 ** Revision 1.8  2001/08/08 07:22:30  AxelSchmidt
    00020 ** Verhalten der RS232-Verbindung geaendert, jetzt nur noch während eine stehenden TCPIP-Verbindung geoeffnet
    00021 **
    00022 ** Revision 1.7  2001/07/13 06:54:23  AxelSchmidt
    00023 ** AddTrace macht Ausgaben ins EventLog
    00024 **
    00025 ** Revision 1.6  2001/07/12 14:36:00  AxelSchmidt
    00026 ** virtuelle Basis-Klasse CTraceObject hinzugefügt
    00027 **
    00028 ** Revision 1.5  2001/07/10 07:07:09  AxelSchmidt
    00029 ** Some class enhancements implemented
    00030 **
    00031 ** Revision 1.4  2001/07/06 15:35:51  SimonLinder
    00032 ** Zwei Ports (5001, 5002) können geöffnet werden. Somit kann man nun z.B.
    00033 ** von verschied. Rechnern aus über diesen Gateway kommunizieren (telnet).
    00034 **
    00035 ** Revision 1.3  2001/07/06 05:40:43  AxelSchmidt
    00036 ** File-Header geändert
    00037 **
    00038 ** Revision 1.2  2001/07/03 06:55:37  AxelSchmidt
    00039 ** Fehler beseitigt
    00040 **
    00041 *******************************************************************************/
    00042
    00043 #if !defined(AFX_BERNSTEINMSG_H__59CA0FD5_5A85_11D5_8643_0050BAC0C1BE__INCLUDED_)
    00044 #define AFX_BERNSTEINMSG_H__59CA0FD5_5A85_11D5_8643_0050BAC0C1BE__INCLUDED_
    00045
    00046 #if _MSC_VER > 1000
    00047 #pragma once
    00048 #endif // _MSC_VER > 1000
    00049
    00050 #include "TraceObject.h"
    00051
    00056 class CBernsteinMsg : virtual public CTraceObject
    00057 {
    00058 public:
    00059
    00068    CBernsteinMsg( const char *cCOMPort,
    00069                   const int nBaudRate,
    00070                   const int nByteSize,
    00071                   const int nParity,
    00072                   const int nStopBits,
    00073                   bool  bAutoStart = true );
    00074
    00075
    00077    virtual ~CBernsteinMsg();
    00078
    00083    void SendRS232( const char * pData, int nDataLen );
    00084
    00089    static DWORD WINAPI ReceiveThread( LPVOID pArgs );
    00090
    00091
    00096    virtual void ReceiveRS232( const char *pData,
    00097                               long        DataLen );
    00098    bool IsOpen( void ) const;
    00099    const std::string & GetLastErrorMsg( void ) const { return m_sLastErrorMsg; }
    00100
    00101    const std::string & GetPort( void ) const { return m_sCOMPort; }
    00102    void SetPort( const std::string & sCOMPort ) { m_sCOMPort = sCOMPort; }
    00103
    00107    bool IOStart( void );
    00108
    00109 protected:
    00112    CBernsteinMsg( void );
    00113
    00115    void ReceiveCOM();
    00116
    00120    bool IOStop( void );
    00121
    00122
    00131    bool InitRS232( const char *cCOMPort,
    00132                    const int nBaudRate,
    00133                    const int nByteSize,
    00134                    const int nParity,
    00135                    const int nStopBits);
    00136
    00137 private:
    00138
    00142    bool SetComParameter( void );
    00143
    00147    bool OpenPort( void );
    00148
    00150    void ClosePort( void );
    00151
    00153    int m_nLastRS232Error;
    00155    OVERLAPPED m_oOverlappedRead;
    00157    OVERLAPPED m_oOverlappedWrite;
    00158
    00160    std::string m_sCOMPort;
    00161    std::string m_sLastErrorMsg;
    00162
    00165    DCB m_oPortDCB;
    00166
    00168    HANDLE m_hCOMPort;
    00170    HANDLE m_hReceiveThreadHandle;
    00171
    00173    DWORD m_dwBytesWritten;
    00175    DWORD m_dwBytesRead;
    00177    DWORD m_dwRecThreadID;
    00178
    00179 };
    00180
    00181 #endif // !defined(AFX_BERNSTEINMSG_H__59CA0FD5_5A85_11D5_8643_0050BAC0C1BE__INCLUDED_)