📄 comthread.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 + -