關於串列埠程式設計的讀書筆記

2022-05-21 08:20:21 字數 3317 閱讀 7141

5.dcb結構:      

typedef   struct   _dcb     dcb;      

6.改變埠設定      

使用如下的兩個方法      

bool   getcommstate(hcomm,&dcb);      

bool   setcommstate(hcomm,&dcb);      

7.改變普通設定      

buildcommdcb(szsettings,&dcb);      

szsettings的格式:baud   parity   data   stop      

例:   "baud=96   parity=n   data=8   stop=1"      

簡寫:"96,n,8,1"      

szsettings   的有效值      

baud:      

11   or   110   =   110   bps      

15   or   150   =   150   bps      

30   or   300   =   300   bps      

60   or   600   =   600   bps      

12   or   1200   =   1200   bps      

24   or   2400   =   2400   bps      

48   or   4800   =   4800   bps      

96   or   9600   =   9600   bps      

19   or   19200=   19200bps      

parity:      

n=none      

e=even      

o=odd      

m=mark      

s=space      

data:      

5,6,7,8      

stopbit      

1,1.5,2      

8.commconfig結構:      

typedef   struct   _comm_config     commconfig,   *lpcommconfig;      

可方便的使用bool   commconfigdialog(      

lptstr   lpszname,      

hwnd   hwnd,      

lpcommconfig   lpcc);      

來設定序列口。      

9.超時設定:      

可通過commtimeouts結構設定超時,      

typedef   struct   _commtimeouts     commtimeouts,*lpcommtimeouts;      

區間超時:(僅對從埠中讀取資料有用)它指定在讀取兩個字元之間要經歷的時間      

總超時:   當讀或寫特定的位元組數需要的總時間超過某一閾值時,超時觸發.      

超時公式:      

readtotaltimeout   =   (readtotaltimeoutmultiplier   *   bytes_to_read)      

+   readtotaltimeoutconstant      

writetotaltimeout   =   (writetotaltimeoutmuliplier   *   bytes_to_write)      

+   writetototaltimeoutconstant      

note:在設定超時時引數0為無限等待,既無超時      

引數maxdword為立即返回      

超時設定:      

getcommtimeouts(hcomm,&timeouts);      

setcommtimeouts(hcomm,&timeouts);  

10.查詢方式讀寫資料      

例程:      

commtimeouts   to;      

dword   readthread(lpdword   lpdwparam)      

purgecomm(hcomm,purge_rxclear);      

return   0l;      

}      

note:      

purgecomm()是乙個清除函式,它可以中止任何未決的後台讀或寫,並且可以沖掉i/o緩衝區.      

bool   purgecomm(handle   hfile,dword   dwflags);      

dwflages的有效值:      

purge_txabort:   中止後台寫操作      

pruge_rxabort:   中止後台讀操作      

pruge_txclear:   清除傳送緩衝區      

pruge_rxclear:   清除接收緩衝區      

技巧:      

可通過clearcommerror()來確定接收緩區中處於等待的位元組數。      

bool   clearcommerror(      

handle   hfile,   //   handle   to   communications   device      

lpdword   lperrors,   //   pointer   to   variable   to   receive   error   codes      

lpcomstat   lpstat   //   pointer   to   buffer   for   communications   status      

);      

clearcommerror()將返回乙個comstat結構:      

typedef   struct   _comstat     comstat,   *lpcomstat;      

其中的cbinque和cboutque中即為緩衝區位元組。      

11.同步i/o讀寫資料      

commtiomouts   to;      

dword   readthread(lpdword   lpdwparam)      

return   0l;      

}

《iOS程式設計》讀書筆記

第2章 objective c 1.訊息和方法的區別 方法是指一塊可以執行的 而訊息是指要求類或物件執行某個方法的動作 2.訊息的名稱和將要執行的方法的名稱一定是相同的 3.在oc中,方法的唯一性取決於方法名。因此,即使引數型別或返回型別不同,乙個類也不能有兩個名稱相同的方法 4.oc允許向某個值為...

讀書筆記 iOS iCloud程式設計

一,蘋果雲服務 icloud.蘋果公司斥資10億美元在北卡羅來納州簡歷數所中心 idatacenter,該資料中心面積為50萬平方英呎,也是美國最大規模的資料中心之一。二,配置icloud.2,建立配置概要檔案。三,icloud資料儲存。1,icloud鍵值資料儲存。2,icloud儲存注意事項。四...

《程式設計珠璣》 讀書筆記

程式設計珠璣 讀書筆記 婁雨禛pb16060356 準確的問題描述 很多時候,我們總是過度關注了解決問題所用的巧妙演算法,而將問題本身的重要性忽視。當我們拿到乙個問題時,應當反覆研讀問題的每乙個細節,因為正是這些細節的細微偏差導致了我們在解決問題時方案與技巧的重大不同。如果我們只花很少的時間研讀問題...