亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? comm.~h

?? uart串口通信的控件和demo,用API 編寫
?? ~H
字號:
//---------------------------------------------------------------------------
#ifndef CommH
#define CommH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>


#include <syncobjs.hpp>

#define sMsgExtention    "(Error: %d)"
#define sOpenError       "Error accessing specified device (Error: %d)"
#define sInvalidHandle   "Invalid device handle, access denied (Error: %d)"
#define sPortAlreadyOpen "Port already assigned (open) (Error: %d)"
#define sPortNotOpen     "Port not open (Error: %d)"
#define sSetupCommErr    "Error initializing Read/Write Buffers (Error: %d)"
#define sUpdateDCBErr    "Error updating DataControlBlock (Error: %d)"
#define sCommTimeoutsErr "Error updating CommTimeouts (Error: %d)"
#define sEscFuncError    "EscapeCommFunction failure (Error: %d)"
#define sReadError       "Read error (Error: %d)"
#define sWriteError      "Write error (Error: %d)"
#define PurgeRead        PURGE_RXABORT + PURGE_RXCLEAR
#define PurgeWrite       PURGE_TXABORT + PURGE_TXCLEAR
#define PurgeReadWrite   PurgeRead + PurgeWrite

typedef void __fastcall (__closure *TCommEvent)(TObject* Sender,
                                                   DWORD Status);
typedef void __fastcall (__closure *TCommErrorEvent)(TObject* Sender,
                                                   int Errors);
typedef void __fastcall (__closure *TCommRxCharEvent)(TObject* Sender,
                                                   DWORD Count);

typedef void __fastcall (__closure *TCommStatEvent)(TObject* Sender,
                                                    DWORD Status,
                                                    COMSTAT ComStat);

enum TCommEventType {evBreak, evCts, evDsr, evError, evRing,
                        evRlsd, evRxChar, evRxFlag, evTxEmpty };
typedef Set<TCommEventType,evBreak , evTxEmpty>  TCommEventTypes;

enum  TBaudRate {br110, br300, br600, br1200, br2400, br4800, br9600, br14400,
    br19200, br38400, br56000, br57600, br115200, br128000, br256000};
enum  TParity {paNone, paOdd, paEven, paMark, paSpace};
enum  TStopBits { sb10, sb15, sb20};
enum  TDataBits {da4, da5, da6, da7, da8};
//xukaiming 2005.4.2日更改--------------------------------------start ----------//
//enum  TFlowControl {fcNone, fcCTS, fcDTR, fcSoftware, fcDefault};
//xukaiming 2005.4.2日更改--------------------------------------end ----------//
//xukaiming 2005.4.2日添加--------------------------------------start ----------//
enum TFlowControl  {fcNone,fcHardWare,fcSoftWare,fcCustom};
enum  TDTRControl  {dcDTR_CONTROL_DISABLE,dcDTR_CONTROL_ENABLE,dcDTR_CONTROL_HANDSHAKE};
enum  TRTSControl  {rcRTS_CONTROL_DISABLE,rcRTS_CONTROL_ENABLE,rcDTR_CONTROL_HANDSHAKE,rcDTR_CONTROL_TOGGLE};
//xukaiming 2005.4.2日添加--------------------------------------end ----------//
//xukaiming 2005.4.3日添加--------------------------------------start ----------//
enum  TFlowOption {foCTSFlow,foDsrFlow,foOutX,foInX};
typedef Set<TFlowOption,foCTSFlow ,foInX>TFlowOptions;

//xukaiming 2005.4.3日添加--------------------------------------end ----------//
enum  TCommOption {coParityCheck, coDsrSensitivity, coIgnoreXOff,
    coErrorChar, coNullStrip};
typedef Set<TCommOption,coParityCheck ,coNullStrip>  TCommOptions;

class TCommEventThread : public TThread
{
    private :
        HANDLE FCommHandle ;
        DWORD FEventMask ;
        DWORD FSuspendTime ;
        TCommEvent FOnSignal;
    protected :
        virtual void __fastcall Execute(void);
        void __fastcall DoOnSignal(void);

    public :
        __fastcall TCommEventThread::TCommEventThread(HANDLE Handle,
                                                    TCommEventTypes MonitorEvents,
                                                    DWORD SuspendTime);
        __property TCommEvent OnSignal= { read=FOnSignal, write=FOnSignal } ;
} ;

class TThreadComm;

class TCommEventChars : public TPersistent
{
  private :
    TThreadComm *FOwner ;
    char FXOnChar;
    char FXOffChar;
    char FErrorChar;
    char FEofChar;
    char FEvtChar;
    void __fastcall SetEventChar(int Index, char Value);
  public :
        __fastcall TCommEventChars::TCommEventChars(TThreadComm *Owner);
    virtual void __fastcall Assign(TPersistent *Source);
  __published :
    __property char XOnChar={index=1,read=FXOnChar,write=SetEventChar,default=17};
    __property char XOffChar={index=2,read=FXOffChar,write=SetEventChar,default=19};
    __property char ErrorChar={index=3,read=FErrorChar,write=SetEventChar,default=0};
    __property char EofChar={index=4,read=FEofChar,write=SetEventChar,default=0};
    __property char EvtChar={index=5,read=FEvtChar,write=SetEventChar,default=0};
} ;




//---------------------------------------------------------------------------
class PACKAGE TThreadComm : public TComponent
{
  private:
    HANDLE FHandle;
    DCB    FDCB;
    String FDeviceName;
    TSimpleEvent *FEvent;
    TCriticalSection *FCriticalSection;
    int FReadTimeout;
    int FWriteTimeout;
    WORD FReadBufSize;
    WORD FWriteBufSize;
    DWORD FSuspendTime ;
    TCommEventTypes FMonitorEvents;
    TBaudRate FBaudRate;
    TParity FParity;
    TStopBits FStopBits;
    TDataBits FDataBits;
    bool        FConnected ;
    OVERLAPPED  WRITE_OS ;
    OVERLAPPED  READ_OS ;
    TCommEventThread *FEventThread;
    TCommEventChars *FEventChars;
    TCommOptions FOptions;
    //*xukaiming 2005.4.3日更改--------------------------------------start ----------//
    TFlowOptions FFlowOptions ;
    //*xukaiming 2005.4.3日更改--------------------------------------end ----------//

    //*xukaiming 2005.4.2日更改--------------------------------------start ----------//
    //*xukaiming 2005.4.2日更改--------------------------------------end ----------//
    //TFlowControl FFlowControl;   //此流控不太好
    //*xukaiming 2005.4.2日更改--------------------------------------end ----------//
    TNotifyEvent FOnBreak;
    TNotifyEvent FOnCts;
    TNotifyEvent FOnDsr;
    TCommErrorEvent FOnError;
    TNotifyEvent FOnRing;
    TNotifyEvent FOnRlsd;
    TCommRxCharEvent FOnRxChar;
    TNotifyEvent FOnRxFlag;
    TNotifyEvent FOnTxEmpty;
    TCommStatEvent FCommStatEvent ;

    //*xukaiming 2005.4.2日添加--------------------------------------start ----------//
    TDTRControl FDTRControl;
    TRTSControl FRTSControl;
    TFlowControl FFlowControl;
    bool TDSRSensitivity;
    //*xukaiming 2005.4.2日添加--------------------------------------end ----------//
    void __fastcall SetDeviceName(String Value);
    void __fastcall SetMonitorEvents(TCommEventTypes Value);
    void __fastcall SetReadBufSize(WORD Value);
    void __fastcall SetWriteBufSize(WORD Value);
    void __fastcall SetSuspendTime(DWORD Value);
    void __fastcall SetBaudRate(TBaudRate Value);
    void __fastcall SetParity(TParity Value);
    void __fastcall SetStopBits(TStopBits Value);
    void __fastcall SetDataBits(TDataBits Value);
    void __fastcall SetOptions(TCommOptions Value);

    bool __fastcall GetModemState(int Index);
    bool __fastcall GetComState(int Index);
    void __fastcall Lock();
    void __fastcall Unlock();
    void __fastcall CheckOpen();
    void __fastcall EscapeComm(int Flag);
    void __fastcall UpdateCommTimeouts();
    //*xukaiming 2005.4.2日添加--------------------------------------start ----------//
        void __fastcall SetDTRControl(TDTRControl value);         
        void __fastcall SetRTSControl(TRTSControl value);
        void __fastcall SetFlowControl(TFlowControl value);
        TDTRControl __fastcall GetDTRControl();
        TRTSControl __fastcall GetRTSControl();
        TFlowControl __fastcall GetFlowControl();
        void __fastcall SetDSRSensitivity(bool value);
        bool __fastcall GetDSRSensitivity();
        void __fastcall SetFlowOptions(TFlowOptions value);
        __property TDTRControl DTRControl  = { read=GetDTRControl, write=SetDTRControl };
        __property TRTSControl RTSControl  = { read=GetRTSControl, write=SetRTSControl };
        __property TFlowControl FlowControl  = { read=GetFlowControl, write=SetFlowControl };
        __property bool DSRSensitivity  = { read=GetDSRSensitivity, write=SetDSRSensitivity };
        __property TFlowOptions FlowOptions  = { read=FFlowOptions, write=SetFlowOptions };

    //*xukaiming 2005.4.2日添加--------------------------------------end ----------//
protected:
    virtual void __fastcall CreateHandle();
    void __fastcall DestroyHandle();
    void __fastcall HandleCommEvent(TObject *Sender,DWORD Status);
    void __fastcall UpdateDataControlBlockLock();
    __property String DeviceName={ read=FDeviceName,write=SetDeviceName};
    __property int ReadTimeout  ={ read=FReadTimeout,write=FReadTimeout,default=1000};
    __property int WriteTimeout ={ read=FWriteTimeout,write=FWriteTimeout,default=1000};
    __property WORD ReadBufSize  ={ read=FReadBufSize,write=SetReadBufSize,default=4096};
    __property WORD WriteBufSize ={ read=FWriteBufSize,write=SetWriteBufSize,default=2048};
    __property DWORD SuspendTime ={ read=FSuspendTime,write=SetSuspendTime,default=5};
    __property TCommEventTypes MonitorEvents ={read=FMonitorEvents,write=SetMonitorEvents};
    __property TBaudRate BaudRate ={read=FBaudRate,write=SetBaudRate,default=br9600};
    __property TParity Parity ={ read=FParity,write=SetParity,default=paNone};
    __property TStopBits StopBits ={ read=FStopBits,write=SetStopBits,default=sb10};
    __property TDataBits DataBits ={ read=FDataBits,write=SetDataBits,default=da8};
    __property TCommEventChars* EventChars ={ read=FEventChars };
    __property TCommOptions Options ={ read=FOptions,write=SetOptions};
    //*xukaiming 2005.4.2日更改--------------------------------------start ----------//
     //__property TFlowControl FlowControl ={ read=FFlowControl,write=SetFlowControl,default=fcDefault};
    //*xukaiming 2005.4.2日更改--------------------------------------end ----------//

    __property TNotifyEvent OnBreak ={ read=FOnBreak,write=FOnBreak};
    __property TNotifyEvent OnCts ={ read=FOnCts, write=FOnCts} ;
    __property TNotifyEvent OnDsr ={ read=FOnDsr, write=FOnDsr};
    __property TNotifyEvent OnRing ={ read=FOnRing,write=FOnRing};
    __property TNotifyEvent OnRlsd ={ read=FOnRlsd,write=FOnRlsd};
    __property TCommErrorEvent OnError={ read=FOnError, write=FOnError};
    __property TCommRxCharEvent OnRxChar={ read=FOnRxChar, write=FOnRxChar};
    __property TNotifyEvent OnRxFlag={ read=FOnRxFlag, write=FOnRxFlag};
    __property TNotifyEvent OnTxEmpty={read=FOnTxEmpty, write=FOnTxEmpty};
    __property TCommStatEvent OnComStatEvent={read=FCommStatEvent,write=FCommStatEvent};
public:
    __fastcall TThreadComm(TComponent* Owner);
    virtual __fastcall ~TThreadComm();
   void _fastcall Open();
    void __fastcall Close();
    bool __fastcall Enabled();
    int __fastcall Write(char Buf[], DWORD Count) ;
    //int __fastcall Write(char Buf[], DWORD Count) ;
    int __fastcall Read(char Buf[] , DWORD Count);
    int __fastcall InQueCount();
    int __fastcall OutQueCount();
    void __fastcall PurgeIn();
    void __fastcall PurgeOut();
//    {Comm escape functions}
    void __fastcall SetDTRState(bool State);
    void __fastcall SetRTSState(bool State);
    void __fastcall SetBREAKState(bool State);
    void __fastcall SetXONState(bool State);
    void __fastcall UpdateDataControlBlock();
    __property bool Connected={ read=FConnected} ;
//    {Comm status flags}
    __property bool CTS={ index=1, read=GetModemState } ;
    __property bool DSR ={ index=2, read=GetModemState} ;
    __property bool RING={ index=3, read=GetModemState } ;
    __property bool RLSD ={ index=4, read=GetModemState} ;

    __property bool CtsHold ={ index=1, read=GetComState };
    __property bool DsrHold ={ index=2, read=GetComState };
    __property bool RlsdHold ={ index=3, read=GetComState };
    __property bool XOffHold ={ index=4, read=GetComState };
    __property bool XOffSent ={ index=5, read=GetComState };

    __property HANDLE Handle ={ read=FHandle };
__published:
};

class PACKAGE TComm : public TThreadComm
{
  public:
    __fastcall virtual TComm(TComponent* Owner);
    virtual __fastcall ~TComm();
  __published:

    __property DeviceName;
    __property ReadTimeout;
    __property WriteTimeout;
    __property ReadBufSize;
    __property WriteBufSize;
    __property SuspendTime ;
    __property MonitorEvents;
    __property BaudRate;
    __property Parity;
    __property StopBits;
    __property DataBits;
    __property EventChars;
    __property Options;

    __property OnBreak;
    __property OnCts;
    __property OnDsr;
    __property OnRing;
    __property OnRlsd;
    __property OnError;
    __property OnRxChar;
    __property OnRxFlag;
    __property OnTxEmpty;
    __property OnComStatEvent;
     //*xukaiming 2005.4.2日添加--------------------------------------start ----------//
    __property DTRControl;
    __property RTSControl;
    __property FlowControl;
    __property DSRSensitivity;
     //*xukaiming 2005.4.2日添加--------------------------------------stop ----------//
     //*xukaiming 2005.4.3日添加--------------------------------------start ----------//
    __property FlowOptions;
     //*xukaiming 2005.4.3日添加--------------------------------------stop ----------//
};

//---------------------------------------------------------------------------
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区三区乱码| 日本va欧美va欧美va精品| 欧美日韩一区二区电影| 91啪在线观看| 成人国产精品免费观看| 成人免费电影视频| 国产91清纯白嫩初高中在线观看| 国产专区综合网| 丁香六月综合激情| 成人三级伦理片| 91美女片黄在线观看| 色欲综合视频天天天| 在线观看免费视频综合| 欧美日韩一区二区在线观看视频 | 亚洲国产日韩在线一区模特| 夜夜精品视频一区二区| 亚洲成人av免费| 日韩精品欧美成人高清一区二区| 日韩电影免费在线| 国产最新精品精品你懂的| 国产在线精品不卡| hitomi一区二区三区精品| 91蝌蚪porny成人天涯| 欧美日韩一本到| 欧美mv日韩mv亚洲| 中文字幕一区二区视频| 一区二区三区在线视频播放| 亚洲午夜影视影院在线观看| 秋霞国产午夜精品免费视频| 成人一区二区三区视频在线观看| 欧美猛男gaygay网站| 日韩一级二级三级精品视频| 久久精品亚洲精品国产欧美| 国产精品对白交换视频| 天天影视色香欲综合网老头| 国产精品亚洲一区二区三区妖精| 99久久精品99国产精品| 国产精品伦理一区二区| 一区二区三区四区五区视频在线观看| 日av在线不卡| av不卡免费电影| 欧美一区二区三区免费| 亚洲欧洲一区二区三区| 日韩福利视频导航| 91在线精品秘密一区二区| 91精品国产91久久久久久一区二区 | 香蕉av福利精品导航| 精品制服美女久久| 在线观看国产一区二区| 国产日韩欧美一区二区三区乱码| 亚洲午夜在线视频| 成人黄色片在线观看| 欧美一级日韩一级| 玉米视频成人免费看| 国产成人精品亚洲777人妖| 欧美亚州韩日在线看免费版国语版| 欧美tk丨vk视频| 日本一不卡视频| 色一区在线观看| 国产精品私房写真福利视频| 九九久久精品视频| 欧美肥大bbwbbw高潮| 自拍视频在线观看一区二区| 国产成人在线观看| 欧美成人一区二区| 天堂av在线一区| 欧美三级中文字| 综合色中文字幕| 成人激情电影免费在线观看| 久久这里只有精品首页| 麻豆精品久久精品色综合| 欧美人与性动xxxx| 国产精品视频麻豆| 精品一区二区三区的国产在线播放| 欧美专区亚洲专区| 久久久不卡影院| 国产精品1区2区| 久久精品亚洲国产奇米99| 精品在线播放午夜| 69p69国产精品| 日韩精品电影在线观看| 欧美剧情片在线观看| 亚洲一区二区三区三| 精品视频资源站| 午夜精品成人在线| 制服丝袜亚洲色图| 亚洲一区二区影院| 欧美日韩国产一级二级| 欧美日韩国产综合一区二区| 黄色资源网久久资源365| 亚洲综合丝袜美腿| 国产亚洲精品精华液| 欧美日韩亚洲丝袜制服| 欧美色偷偷大香| 激情亚洲综合在线| 日本视频一区二区三区| 91九色02白丝porn| 欧美精品 国产精品| 这里只有精品免费| 日韩欧美中文字幕制服| 亚洲成人精品影院| 欧美日韩和欧美的一区二区| 欧美日韩成人在线一区| av一本久道久久综合久久鬼色| 国产精品高潮久久久久无| 日韩精品一区二区在线观看| 成人av在线看| 成人黄色777网| 国产精品白丝jk白祙喷水网站| 国产黄人亚洲片| 91在线你懂得| 欧美日韩国产综合一区二区三区| 国产欧美日韩综合| 久久99国产精品成人| 精品视频一区二区三区免费| 日韩欧美在线不卡| 精品少妇一区二区三区视频免付费| 欧美中文字幕一区二区三区| 日韩一级完整毛片| 亚洲欧美另类小说| 中文字幕乱码一区二区免费| 视频一区视频二区中文字幕| 国产精品资源站在线| 精品国产乱码久久久久久蜜臀| 国产精品美女一区二区三区| 亚洲一区二区欧美激情| 亚洲va欧美va天堂v国产综合| 日韩高清一区在线| 三级亚洲高清视频| 国产成人aaa| 欧美视频完全免费看| 欧美激情一区二区三区不卡| 亚洲欧美日韩成人高清在线一区| 亚洲国产精品久久不卡毛片 | 日韩一区二区在线观看视频| 久久久天堂av| 精品一区二区免费| 91原创在线视频| 26uuu亚洲| av午夜一区麻豆| 国产欧美日韩综合| 91丨九色丨尤物| 亚洲chinese男男1069| 26uuu成人网一区二区三区| 色综合久久99| 成人美女在线观看| 国产一区二区美女诱惑| 日韩电影免费在线| 亚洲国产日日夜夜| 亚洲色欲色欲www| 中文字幕欧美国产| 26uuu国产一区二区三区| 欧美日韩电影一区| 在线观看国产精品网站| 97精品国产露脸对白| 成人免费不卡视频| 国产99一区视频免费| 国产麻豆精品95视频| 美国十次综合导航| 免费黄网站欧美| 日韩av电影天堂| 日韩精品一二三| 日本大胆欧美人术艺术动态| 日韩电影在线免费观看| 日韩电影在线一区二区三区| 午夜精品久久久久| 午夜在线成人av| 日本成人在线电影网| 日韩电影一区二区三区四区| 日韩二区三区四区| 麻豆精品在线播放| 国产一区二区三区免费| 国产传媒欧美日韩成人| 国产成人精品影视| 成人一区二区三区视频在线观看 | 国产三级欧美三级日产三级99| 欧美一区二区成人| 欧美xxxxx牲另类人与| 欧美tickling挠脚心丨vk| 精品日韩一区二区| 国产夜色精品一区二区av| 国产拍揄自揄精品视频麻豆| 国产精品动漫网站| 亚洲福中文字幕伊人影院| 日本亚洲天堂网| 国产乱子轮精品视频| 成人高清av在线| 91国偷自产一区二区三区观看| 欧美日韩一级二级| 久久亚洲二区三区| 国产精品看片你懂得| 亚洲成人激情社区| 韩日av一区二区| 91蜜桃在线免费视频| 欧美三级午夜理伦三级中视频| 欧美成人精品1314www| 欧美国产精品v| 午夜成人免费电影| 国产一区二区日韩精品| 色综合色综合色综合|