簡單易用的串口類CSerialIO

來源:互聯網
上載者:User

CSerialIO-簡單好用的串口控制項



源碼:src.rar

Demo:SerialCtrlDemo.rar

一、介紹

CSerialIO實現一個對串口讀寫的類,有一個線程負責處理對串口資料的讀寫,只需要簡單調用CSerialIO提供的API就可以偵聽串口的資料。

二、背景

目前網上有同步和非同步串口讀寫控制項,需要使用者去定時的或者啟動一個線程去讀取資料,所以我實現的這個串口讀寫類時已經封裝了一個線程來處理讀寫資料,使用者可以基於自己的應用來處理讀寫、開啟和關閉串口事件。


三、如何使用

class CSerialIO{

public:

     CSerialIO();

     virtual ~CSerialIO();

void OpenPort(CString strPortName,CString strBaudRate);//開啟串口

virtual void OnEventOpen(BOOL bSuccess); //開啟串口成功與否的響應事件

     void ClosePort();//關閉串口

     virtual void OnEventClose(BOOL bSuccess);//關閉串口成功與否的響應事件

     virtual void OnEventRead(char *inPacket,int inLength);//串口讀取資料處理事件

     void Write(char *outPacket,int outLength); //串口寫資料

     virtual void OnEventWrite(int nWritten);//串口寫資料的響應事件,nWritten<0表示寫出錯,否則表示實際寫的資料位元組數。

    …

};

CSerialIO 主要是提供7個API,使用者的應用如果是基於視窗,可以繼承該類來處理這幾個事件,然後在視窗上表現出來。

 

四、實踐結果

 

  源碼裡基於CSerialIO類實現了一個demo,1所示,裡面處理讀寫串口成功與否的事件,關閉串口事件,及讀寫事件。

圖一:串口控制項操作介面

五、結束語

目前很多裝置還是基於串口通訊的,對串口操作的情境經常是需要一直偵聽串口發來的資料,根據讀到的資料來決定發什麼命令給裝置,所以CSerialIO類很方面使用者來處理以上這種情境。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.