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

如何偵測RS-232上的RTS狀態變化

答題得分者是:Jammy_Xu
iann
一般會員


發表:17
回覆:31
積分:14
註冊:2003-08-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-23 14:13:14 IP:61.31.xxx.xxx 未訂閱
各位先進好: 小弟目前正在寫一程式,要將文字檔的資料,拋送到COM PORT接口的印表機,目前碰到的狀況是,因為有時列印的張數過多,而傳輸資料的速度較快,所以會造成 DATA LOST,所以,想根據印表機的腳位訊號的變化來延遲送出資料,在用了LED來觀察燈號之後,發現印表機在開始列印時RTS的腳位會有變化,但是遍查資料之後,沒有方法可用,想請問各位先進,可有好的方法,感激不盡 ^^a 努力學習中....
------
努力學習中....
小蚊子
中階會員


發表:55
回覆:267
積分:94
註冊:2002-06-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-25 08:53:04 IP:211.78.xxx.xxx 未訂閱
您的印表機廠牌是 ?? 經由 WINDOWS 的管理,怎會有 DATA LOSS 的狀況?? 還是您直接連上 COM PORT ,不由 WINDOWS 印表機處理(無安裝驅動程式)??
iann
一般會員


發表:17
回覆:31
積分:14
註冊:2003-08-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-29 08:42:24 IP:61.30.xxx.xxx 未訂閱
引言: 您的印表機廠牌是 ?? 經由 WINDOWS 的管理,怎會有 DATA LOSS 的狀況?? 還是您直接連上 COM PORT ,不由 WINDOWS 印表機處理(無安裝驅動程式)?
我要寫的是條碼機,不同於印表機。 我不是透過WINDOWS的介面來丟列印資料。 而是利用 rs-232 來丟列印指令及資料。 本也是想利用window 印表機的方式來作。 但是,牽涉到一些機器動作,需要由指令來控制,所以無法用windows的方式。 努力學習中....
------
努力學習中....
iann
一般會員


發表:17
回覆:31
積分:14
註冊:2003-08-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-29 08:48:01 IP:61.30.xxx.xxx 未訂閱
您的印表機廠牌是 ?? 經由 WINDOWS 的管理,怎會有 DATA LOSS 的狀況?? 還是您直接連上 COM PORT ,不由 WINDOWS 印表機處理(無安裝驅動程式)? ============================================================ 我要寫的是條碼機,不同於印表機。 我不是透過WINDOWS的介面來丟列印資料。 而是利用 rs-232 來丟列印指令及資料。 本也是想利用window 印表機的方式來作。 但是,牽涉到一些機器動作,需要由指令來控制,所以無法用windows的方式。 努力學習中....
------
努力學習中....
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-29 10:08:28 IP:211.76.xxx.xxx 未訂閱
這會不會是與您使用的元件有關係 一般來說 RS232 的資料會有一個 Byte停在Chip的Buffer上 當您傳送資料時 一般都會等這一個byte被讀走後才回送上第二個byte 而這些動作一般是不需要軟體來控制的 您的程式是採用哪個元件? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-03 11:46:56 IP:211.22.xxx.xxx 未訂閱
你是使用元件呢? 還是直接呼叫API來處理的呢? 先 POST 出一些程式碼來看看才好判斷. 我是雪龍
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
iann
一般會員


發表:17
回覆:31
積分:14
註冊:2003-08-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-07 10:50:06 IP:61.31.xxx.xxx 未訂閱
引言: 這會不會是與您使用的元件有關係 一般來說 RS232 的資料會有一個 Byte停在Chip的Buffer上 當您傳送資料時 一般都會等這一個byte被讀走後才回送上第二個byte 而這些動作一般是不需要軟體來控制的 您的程式是採用哪個元件? ~~~Delphi K.Top討論區站長~~~
================================================ 我使用的是 MSCOMM32 去送資料 目前碰到的狀況是,在送出資料的時候 因為機器的列印時需要時間,如果列印的張數多,那麼 前面送的資料,跟後面送的資料,都會印出,但是中間的幾筆資料 偶而會LOSS掉 後來去更改交握設定之後,情況有好轉,但是,偶而還是會發生卡住的情形 然後WIN 98 系統就會被卡住,一定要按下 alt del 關掉程式才行。 所以,才會想要偵測條碼機上的 RS232 腳位狀況 不好意思麻煩大家幫忙 努力學習中....
------
努力學習中....
Jammy_Xu
一般會員


發表:3
回覆:3
積分:6
註冊:2004-01-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-01-28 08:11:29 IP:218.16.xxx.xxx 未訂閱
我用Delphi加VaComm組件實現的 向COM發送數據是發送到緩沖區的﹐重要的事情是要在發送后要等待﹐直到緩沖區為空后程序再向下執行﹐我想MSCOMM32也是可以這樣做的 try FormMain.VaComm1.Open; FormMain.VaComm1.WriteText(StrPrint); while FormMain.VaComm1.WriteBufUsed > 0 do Application.ProcessMessages; FormMain.VaComm1.Close; except ShowMessage('打印失敗, 設備可能被占用或設置異常!'); end;
系統時間:2024-04-26 20:57:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!