串列埠非同步收發資料

2021-08-18 16:28:17 字數 1000 閱讀 4824

以linux系統為例,建議從basedataendpoint建立乙個子類,同時實現epollproxy介面,比如serialport_linux,在開啟裝置後把handle繫結到epoll上即可

class

sdk_ext_class

serialport_linux

:public

basedataendpoint

,public

epollproxy

;void

serialport_linux

::oncreate()

socket

s = (

socket

)mhandle;

unsigned

long

handle = (

unsigned

long

)mlooper->getlooperhandle();

intret = -1;

#ifdef

assert(false);

#else

struct

epoll_event

evt = ;

evt.events=

epollin

//|epollout  //

如果加上會一直觸發此事件

|epollrdhup

|epollerr

;evt.data.ptr= (

epollproxy

*)this

;ret= epoll_ctl((

int)handle,

epoll_ctl_add

, s, &evt);

#endif

logv(

"serial bind ret=%d"

, ret);

assert

(ret == 0);

}windows下的做法也類似

這個部分後面會封裝的更完善一點,對各os提供乙個抽象層,方便使用者擴充套件。

串列埠收發資料1

1.在zigbee 協議棧中,haluartcfg t 結構體是如何定義的?2.串列埠是如何初始化的?3.傳送給串列埠的資料時如何接收的?4.串列埠是如何向pc 機傳送資料的?這些問題涉及三個函式 haluartopen haluartread haluartwrite haluartopen 函式...

C 串列埠收發資料

串列埠命名空間 using system.io.ports 例項化串列埠物件 串列埠引數 串口號,波特率,資料位,停止位 奇偶校驗位 例項1 只通過串口號新建例項 返回值 串口號集合 serialport.getportnames 判斷串列埠是否開啟 如果串列埠沒有開啟就開啟串列埠 port.iso...

QT 串列埠收發

1 新增第三方qextserialport庫 解壓複製貼上到工程路徑,在工程檔案pro檔案中新增工程 include pwd qextserialport qextserialport.pri 編譯後pri庫被載入到工程中。2 串列埠初始化 定義如下變數 並將其初始化,因為使用需要,我將除了串口號之...