線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1585
推到 Plurk!
推到 Facebook!

WriteFile( )至一COM PORT發生timeout

尚未結案
hwhynot
一般會員


發表:4
回覆:1
積分:1
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-16 17:41:08 IP:211.76.xxx.xxx 未訂閱
大家好: 我使用TComm元件對一USB COM PORT接手機作WriteFile()的動作, (Comm1->Output), 但執行一段時間後就無法對COM POrt作寫入的動作 , 但可接收資料 , 用Portmon觀察 : http://delphi.ktop.com.tw/topic.php?topic_id=38547  (Portmon) 發現出現訊息是:IRP_MJ_WRITE TIMEOUT , 關閉程式後重新啟動程式也是可讀取但無法寫入的狀態 , 以超級終端機亦無法連線 ,  試到一個解決辦法: 在裝置管理員中把這個連接埠先停用,再啟用,就恢復正常. 想請教兩個問題 : 1.WriteFile有timeout發生會有哪些可能的原因 , 我試過每作一次WriteFile前就PurgeComm , 過一段時間亦會發生同樣情形. 2.請問在裝置管理員裡面把COM PORT作停用與啟用的動作 , 有哪些API可用嗎? 謝謝
李國維
高階會員


發表:42
回覆:287
積分:235
註冊:2003-02-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-16 19:22:49 IP:218.167.xxx.xxx 未訂閱
hwhynot: 1.有可能是該設備所接收的buffer區滿了.因為不是很了解你傳輸的方式.是一來一去.還是一直的塞資料. 2.有可能是協定的問題.有些通訊協定需要作ACK的動作.如果沒ACK就會失去功能. 建議你先從這兩方向著手.畢竟將COM PORT關閉在開啟是很不正確的做法.
hwhynot
一般會員


發表:4
回覆:1
積分:1
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-24 11:33:55 IP:61.220.xxx.xxx 未訂閱
大家好 : 我作的動作是用兩台數據機互相撥號連線 後來用try&error , 把SoftwareHandshaking Diable, 就解決這個問題了 個人判斷應該是作軟體交握時會送一些字元使Com port無法寫入
系統時間:2024-04-27 20:25:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!