以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 串列埠初始化 定義如下變數 並將其初始化,因為使用需要,我將除了串口號之...