//--------------------------------------------------------------------------- #ifndef SocketPortH #define SocketPortH //--------------------------------------------------------------------------- #if defined( _BORLAND ) #include #endif #include #if defined(_WIN32) || defined(_WINDOWS) #include #else #include #include #include #include //inet_addr #include #include #endif #include "Port.h" //--------------------------------------------------------------------------- //typedef void *HANDLE; //--------------------------------------------------------------------------- //std::string getComName(int num); //--------------------------------------------------------------------------- class SocketPort: public Port { private: #if defined(_WIN32) || defined(_WINDOWS) SOCKET my_sock; //Socket handle #else int my_sock; #endif protected: bool bOpen; //Состояние порта public: //std::string ComNumber; //Номер ком порта //int BaudRate; //Скорость ком порта DWORD SocketPort(); virtual ~SocketPort(); bool Open(const char* IPAddress,int PortNo); //bool Open(std::string ComNumber); //bool Open(std::wstring ComNumber); //bool setBaudRate(); bool SetTimeout(unsigned long time); //Сколько ждать данных (Для чтения и запииси) bool isOpen(){ return bOpen; }; bool Close(); //Разорвать связь //bool Setup(int num = -1); //Настройка параметров ком порта unsigned long Write(const void* lpBuffer,unsigned long nNumberOfBytesToWrite); //unsigned long WriteString(std::string str); unsigned char WriteChar(signed char ch); unsigned char WriteUChar(unsigned char ch); unsigned char WriteUInt(unsigned int val); int writeUTF8(std::string str); int Read(void* lpBuffer,unsigned long nNumberOfBytesToRead); int ReadAll(void* lpBuffer,unsigned long nNumberOfBytesToRead); //Попытаться прочесть данные за несколько проходов int ReadR(void* lpBuffer,unsigned long nNumberOfBytesToRead); //unsigned char ReadUInt1(bool* b); }; //--------------------------------------------------------------------------- #endif