[問題] 如何知道收到的資料parity是否為mark

看板Programming作者 (涼雨)時間15年前 (2010/02/12 10:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
最近在處理一個Serial通訊 每次資料的第一個byte,對方會將parity設為Mark 而之後的資料就會設定Space 利用這個方式可以得知每次新資料是在哪個byte開始 網路查的結果是Address使用Mark,Data使用space 我目前使用的是VC++ 2003 現在我試了幾天,仍然無法得知對方資料的parity是多少 我使用了以下的函式 以下失敗: 1. ClearCommError 抓取 DCB,但抓到的似乎是自己的Comport,parity沒變化 使用CE_RXPARITY做比對,有時候會判斷到Parity的變化,但是弄出來有問題, 久久才會探測到一次 2. GetCommModemStatus 沒反應 3. GetCommProperties 對方的parity不管如何切換,我這邊抓到的資訊都沒變化 以下有反應: 1. SetCommMask(EV_ERR),搭配WaitCommEvent, 如此會成功,但是我不能讓它一直堵塞 找不到有方式可以判斷這個ERROR,卻不會堵塞 2. GetCommMask和GetLastError 使用也沒反應 以下曾成功過: DeviceIoControl(IOCTL_SERIAL_LSRMST_INSERT) 但只能適用於標準序列埠,用某些廠商擴充的序列埠就會失敗 目前要應用在擴充的 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.22.144.222 ※ 編輯: clarkman 來自: 211.22.144.222 (02/12 12:52)
文章代碼(AID): #1BTBxubm (Programming)
文章代碼(AID): #1BTBxubm (Programming)