⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comthread.h

📁 C++ builder 3.0 COM 控件
💻 H
字号:
//---------------------------------------------------------------------------
#ifndef ComThreadH
#define ComThreadH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
typedef void __fastcall (__closure *TComRxEvent)( System::TObject* Sender, AnsiString &buffer);
class TComport;  // forward declaration -- hides implementation of threading
//---------------------------------------------------------------------------
class PACKAGE TComThread : public TComponent
{
public:
    // public data
	bool ok;
	AnsiString errMsg;
	enum TParity { none=NOPARITY, odd=ODDPARITY, even=EVENPARITY, mark=MARKPARITY, space=SPACEPARITY };
	enum TStopBits { s1=ONESTOPBIT, s1_5=ONE5STOPBITS, s2=TWOSTOPBITS };
protected:
  // protected data
	TComport *com;  // holds the TThread derived class
	HANDLE hCom;    // a handle to the comport
	TOverlapped *rOLap, *wOLap;

  // also published ...
	unsigned long FPacketSize;
	unsigned long FBaud;
	unsigned int FDataBits;
	TParity FParity;
	TStopBits FStopBits;
private:
    // private data which is published
	unsigned long FBufSize;
	unsigned int FPort;
	unsigned long FTimeout;
	TComRxEvent FOnPacketReceived;
private:
    // private methods
	void InitPort();  // open the serial port
protected:
    // protected methods
	virtual void __fastcall SetBufSize( unsigned long b);
	virtual void __fastcall SetBaud( unsigned long b);
	virtual void __fastcall SetDataBits( unsigned int d);
	virtual void __fastcall SetParity( TParity p);
	virtual void __fastcall SetStopBits( TStopBits s);
	virtual void __fastcall SetPort( unsigned int p);
	virtual void __fastcall SetPacketSize( unsigned long p);
	virtual void __fastcall SetTimeout( unsigned long t);
  virtual void SetupThread();
  virtual void SetupState();
public:
    // public methods
    __fastcall TComThread(TComponent* Owner);
	__fastcall ~TComThread(){ ComClose(); };
	void __fastcall ComInit();					// start up the comport
	void __fastcall ComClose();					// shut it down
	void __fastcall Write( AnsiString s); 		// output a null-terminated string
	void __fastcall Write( char *buf, int len); // output binary data of known len
	void __fastcall Purge(); // flush the system, cancel pending reads and writes
__published:
	__property unsigned long BufSize = {read=FBufSize, write=SetBufSize, default=128};
	__property unsigned long Baud = {read=FBaud, write=SetBaud, default=19200};
	__property unsigned int DataBits = {read=FDataBits, write=SetDataBits, default=8};
	__property TParity Parity = {read=FParity, write=SetParity, default=none};
	__property TStopBits StopBits = {read=FStopBits, write=SetStopBits, default=s1};
	__property unsigned int Port = {read=FPort, write=SetPort, default=1};
	__property unsigned long PacketSize = {read=FPacketSize, write=SetPacketSize, default=80};
	__property unsigned long Timeout = {read=FTimeout, write=SetTimeout, default=100};
	__property TComRxEvent OnPacketReceived = {read=FOnPacketReceived, write=FOnPacketReceived};
};
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -