123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- /***************************************************************************
- * E-Com Technology Ltd.
- *
- * ECOMPACS DICOM Network Transport Libraries * Version 0.1 Beta
- ***************************************************************************/
- #pragma once
- #ifndef _SerialPortServer_DLL
- #define SERIALPORTSERVER_API _declspec(dllimport)
- #else
- #define SERIALPORTSERVER_API _declspec(dllexport)
- #endif
- //////////////////////////////////////////////////////////////////////
- // class InBuffer
- class SERIALPORTSERVER_API InBuffer
- {
- protected:
- class charQueue * m_Queue;
- public:
- InBuffer ();
- ~InBuffer ();
- InBuffer & operator >> (BYTE & x);
- InBuffer & operator >> (char & x) { return ((*this) >> (BYTE &) x); }
- UINT Read (BYTE * Data, UINT cbNumBytes);
- protected:
- UINT PrepareRead (UINT cbNumByte);
- private:
- BOOL ReadBlock (void);
- virtual INT ReadBinary(BYTE *, UINT) = 0;
- };
- //////////////////////////////////////////////////////////////////////
- // class FileBuffer
- class SERIALPORTSERVER_API FileBuffer
- {
- public:
- enum ShareMode
- {
- shareCompat = (int) 0x00000,
- shareExclusive = (int) 0x00010,
- shareDenyWrite = (int) 0x00020,
- shareDenyRead = (int) 0x00030,
- shareDenyNone = (int) 0x00040,
- };
- FileBuffer () { m_hFile = INVALID_HANDLE_VALUE; m_bEOF = TRUE; }
- ~FileBuffer () { CloseFile (); }
- virtual BOOL Open (const char * filename, ShareMode mode) = 0;
- BOOL CloseFile (void);
- void SeekToBegin (void);
- UINT32 SeekToEnd (void);
- virtual LONG Seek (LONG lOff, UINT nFrom);
- virtual DWORD GetLength (void) const;
- virtual DWORD GetPosition (void) const;
- enum SeekPosition { begin = 0x0, current = 0x1, end = 0x2 };
- virtual BOOL IsEOF (void) const;
- virtual BOOL IsOpened (void) const;
- protected:
- BOOL m_bEOF;
- HANDLE m_hFile;
- };
- //////////////////////////////////////////////////////////////////////
- // class SerialPortBuffer
- //////////////////////////////////////////////////////////////////////
- class SERIALPORTSERVER_API SerialPortBuffer : public InBuffer, public FileBuffer
- {
- public:
- virtual BOOL Open (const char * filename, ShareMode mode);
- INT ReadBinary (BYTE * Data, UINT Count);
- BOOL SendBinary (const BYTE * Data, UINT Count);
- virtual BOOL Close (void);
- public:
- int SendCommands (const char * pchcommand, int ncommandsize);
- int SendCommands (const unsigned char * pchcommand, int ncommandsize);
- protected:
- OVERLAPPED m_OverlappedRead;
- OVERLAPPED m_OverlappedWrite;
- public:
- SerialPortBuffer ();
- ~SerialPortBuffer ();
- BOOL Open ( UINT portnr = 1,
- UINT baud = 19200,
- char parity = NOPARITY,
- UINT databits = 8,
- UINT stopsbits = 1);
- public:
- bool SetDumpIn (bool bDump);
- bool SetDumpOut (bool bDump);
- protected:
- bool m_bDumpIn;
- bool m_bDumpOut;
- protected:
- int m_nPort;
- protected:
- DWORD ReadDataWaiting (void);
- protected:
- DCB m_DCB;
- };
|