請問TComm的onReceiveData接收問題 |
尚未結案
|
bt1
一般會員 發表:38 回覆:14 積分:10 註冊:2003-06-26 發送簡訊給我 |
|
bt1
一般會員 發表:38 回覆:14 積分:10 註冊:2003-06-26 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
引言: 問題:1.變數q是全域變數,我用來測ReceiveData事件執行次數,結果我接一筆 長度10 , 資料為:0x02 0x01 0x20 0x05 0x00 0x01 0x00 0x00 0x00 0x01 結果q=17,所以我想請問,不是否不管資料多長,在連續傳(7~200byte)下, ReceiveData事件應該只是發生一次才對,為什麼會累計這麼多次?????一般ReceiveData事件是多少時間觸發一次,而每次可能收到幾個bytes不等, 但你必須把它組合成一筆資料. 引言: 2.在程式中我以用rdata[]去把資料讀出,為什麼在沒有第二筆資料進來時, rs232裡面不是應該沒資料了,為什麼資料還在?????似乎還有個read之類的function,因為你的程式是直接複製它的字元,不是用它read 的 function. 引言: 4.有時接一筆比較長的資料(80~100byte)時,用ReceiveData事件去接收, 結果所接到的資料少了一些,為什麼???有可能是buffer大小的問題,也有可能來不及接收資料掉了. 用rs232接收資料,資料漏掉是正常的,所以一定要作資料的檢查checksum,還有如何判斷,哪個地方是資料的開始,也是很傷腦筋的,一般會把資料先編碼, 把0xff用0xfe0xff兩個bytes表示,如此編碼後就不可能有兩個0xff連續出現,我們就可以用兩個0xff當成接收端的資料開始,接收後還需解碼和checksum. 之後還會有些問題等著你,祝你好運. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |