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

📄 commmainunit.h

📁 一个不错的串口源码... ... ... !
💻 H
字号:
//---------------------------------------------------------------------------
#ifndef CommMainUnitH
#define CommMainUnitH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ToolWin.hpp>
#include <ExtCtrls.hpp>

#include "CommControl.h"
#include <Dialogs.hpp>
#include "cspin.h"
#include "CSPIN.h"
#include <ImgList.hpp>
//---------------------------------------------------------------------------
#define HISTNUM               10  
//#define WM_DATAARRIVED        (WM_USER + 191)
//#define WM_PACKAGEFINISHED    (WM_USER + 192)

class TCommMain : public TForm
{
protected:
//  void __fastcall WMPortData(TMessage Message);
//  void __fastcall WMPackageFinished(TMessage Message);
//  BEGIN_MESSAGE_MAP
//    MESSAGE_HANDLER(WM_DATAARRIVED     , TMessage ,WMPortData );
//    MESSAGE_HANDLER(WM_PACKAGEFINISHED , TMessage ,WMPackageFinished );
//  END_MESSAGE_MAP(TForm)
__published:	// IDE-managed Components
    TImageList *ImageList1;
    TCoolBar *CoolBar1;
    TToolBar *ToolBar1;
    TToolButton *OpenPort;
    TToolButton *ClosePort;
    TToolButton *SetPort;
    TStatusBar *StatusBar1;
    TPanel *Panel1;
    TSplitter *Splitter1;
    TPanel *Panel2;
    TBevel *Bevel1;
    TBevel *Bevel2;
    TLabel *Label2;
    TRadioButton *RASCII;
    TRadioButton *RHEX;
    TRadioButton *SASCII;
    TRadioButton *SHEX;
    TToolButton *ToolB1;
    TToolButton *OpenFile;
    TToolButton *Send;
    TBevel *Bevel3;
    TMemo *RMemo;
    TBevel *Bevel4;
    TMemo *SMemo;
    TToolButton *ClearRMemo;
    TOpenDialog *OpenDialog1;
    TCSpinEdit *maxStore;
    TLabel *Label1;
    TLabel *Label3;
    TCSpinEdit *intChars;
    TCheckBox *RepeatSend;
    TCSpinEdit *RepeatInterval;
    TTimer *RepeatTimer;
    TToolButton *ToolButton1;
    TToolButton *AddParity;
    TPanel *Panel3;
    TShape *RD;
    TShape *WD;
    TLabel *Label4;
    TLabel *Label5;
    TTimer *RDFlashTimer;
    TTimer *WDFlashTimer;
    TToolButton *NextBtn;
    TToolButton *PrevBtn;
    TImageList *ImageList2;
    TLabel *RepeatCountLabel;void __fastcall SetPortClick(TObject *Sender);
    void __fastcall ClosePortClick(TObject *Sender);
    void __fastcall FormActivate(TObject *Sender);
    void __fastcall OpenPortClick(TObject *Sender);
    void __fastcall SendClick(TObject *Sender);
    void __fastcall ClearRMemoClick(TObject *Sender);
    void __fastcall RASCIIClick(TObject *Sender);
    void __fastcall RHEXClick(TObject *Sender);
    void __fastcall OpenFileClick(TObject *Sender);
    void __fastcall intCharsChange(TObject *Sender);
    void __fastcall maxStoreChange(TObject *Sender);
    void __fastcall RepeatIntervalChange(TObject *Sender);
    void __fastcall RepeatSendClick(TObject *Sender);
    void __fastcall RepeatTimerTimer(TObject *Sender);
    
    void __fastcall SASCIIClick(TObject *Sender);
    void __fastcall SHEXClick(TObject *Sender);
    void __fastcall AddParityClick(TObject *Sender);
    
    void __fastcall WDFlashTimerTimer(TObject *Sender);
    void __fastcall RDFlashTimerTimer(TObject *Sender);
    void __fastcall Panel3Click(TObject *Sender);
    void __fastcall PrevBtnClick(TObject *Sender);
    void __fastcall NextBtnClick(TObject *Sender);
    void __fastcall SMemoKeyPress(TObject *Sender, char &Key);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
    void __fastcall SetRepeatCount(int RCount);
    void __fastcall RepeatCountLabelDblClick(TObject *Sender);
private:	// User declarations
    int           FRepeatCount;
    int           SBytesInQue;            // 接收缓冲区尚未读取的字符数
    int           SBytesOutQue;           // 输出缓冲区字符数
    int           BytesRead;              // 本次读串口读取的字符数
    int           BytesReceived;          // 读取的总字符数(正在显示的字符数)
    int           StartingAt;             // 从什么位置开始发送
    bool          IsSendingData;          // 正在发送数据
    bool          DataModified;           // 接收到的新数据尚未显示
    AnsiString    DataReceived;           // 接收到的字符(显示格式)
    Byte          InBuff[520];
    char          *tempStore;
    AnsiString    History[HISTNUM+1];
    bool          UseHex[HISTNUM+1];
    int           CurrHistory;
    int           LastHistory;            // 选上一组时应显示的历史记录
    int           NextHistory;            // 选下一组时应显示的历史记录
    bool          HistoryFull;
    TCommControl  *Comm;
    void __fastcall UpdateStatus(void);
    void __fastcall IdleHandler(TObject *Sender, bool &Done);
    void __fastcall DataArrived(void);
    void __fastcall PackageFinished(void);
    void __fastcall AddBytes(void);
    bool __fastcall SendPackage(void);
    void __fastcall EnableAddParity(void);
    int __fastcall SMemoHexToChar(Byte *store,int &from,int PacketLen=0);
public:		// User declarations
    __fastcall TCommMain(TComponent* Owner);
    __property int RepeatCount = {read=FRepeatCount, write=SetRepeatCount};
};
//---------------------------------------------------------------------------
extern PACKAGE TCommMain *CommMain;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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