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

請教..透過TComm連接發票機的傳輸字串??

答題得分者是:領航天使
jojoboy
初階會員


發表:65
回覆:108
積分:34
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-09 11:25:59 IP:61.220.xxx.xxx 未訂閱
請教各方前輩........ 小弟最近因為需要使用到發票機........ 但.......因為我沒有相關的經驗....所以....... 經過多天的努力.....我試著使用TComm元件....... 但一直都沒法子送出正確的字串可以讓發票機動起來....... 所以冒味請教眾前輩們....... 不知道有沒有相關的經驗可以指導我....... 以下是我所試寫的程式.......但發票機就是毫無反應...... >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
領航天使
站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-14 07:57:04 IP:192.168.xxx.xxx 未訂閱
1.從您的文件來看 esc 為控制碼用的,列印文字應該是不用加esc 如:Comm1.WriteCommData('測試科技股份有限公司',20); 2.您的發票機有內建中文字型嗎? 有試過英文可以印出嗎? 如:Comm1.WriteCommData('123abc',6); ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jojoboy
初階會員


發表:65
回覆:108
積分:34
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-15 15:58:31 IP:61.220.xxx.xxx 未訂閱
謝謝前輩的回覆........ 我有照您的方式試過了........ 可以確定的是...這台機器是有內建中文的........ 但我試著用以下指令列印.....但機器依然是不會動的..... Comm1.WriteCommData('測試科技股份有限公司',20); 然後我一直在try以下這種方式來列印...... PDStr:=Chr(27) Chr(64); PDStr:=Chr(10) '12345678901234567890'; PDStr:=PDStr Chr(10) '測試科技股份有限公司1'; PDStr:=PDStr Chr(10) '測試科技股份有限公司2'; AssignFile(F, 'COM2'); Rewrite(F); Write(F, PDStr); CloseFile(F); 會出現 1.機器剛啟動時的前幾次列印都會出現亂碼....但..連續印個幾次....就正常了 2.當我連續列印時...有時候會這行'測試科技股份有限公司2'並不會列印出來 以上是我所遇到的怪異狀況.......
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-15 16:35:34 IP:61.222.xxx.xxx 未訂閱
您的設定是否正確,如BaudRate,ByteSize,CommName及其他相關設定等.. 我之前也過用COM PORT與設備溝通,通常問題都是傳輸的協定不正確導致... 給您參考 (我也是用TComm元件)
kkccgg
初階會員


發表:50
回覆:54
積分:30
註冊:2002-07-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-15 17:33:18 IP:202.145.xxx.xxx 未訂閱
以下幾點共參考: 1.確認PDStr傳出字串長度是否正確 2.可以去http://web2.moxa.com.tw/services/download/download_tw.asp 下載PComm Lite它提供rs232收送服務(很好用) 3.將傳出資料在接到本機pc rs232口. 以PComm Lite中之PComm terminal emulator 監看,看傳出是否為你要傳的資料,注意一些不可視位元監看(可以以16進制看), 4.設備未處理完成,載送資料,設備無緩衝功能 5.設備故障
jojoboy
初階會員


發表:65
回覆:108
積分:34
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-15 20:07:09 IP:61.220.xxx.xxx 未訂閱
超怪異的........... 用以下的方式......組合起來用..... 就.....就好了.......有那位前輩可以解答呢??? Comm1.StartComm; Comm1.StopComm; PrintWP520('12345678901234567890','COM2'); PrintWP520(Chr(10) '測試科技股份有限公司1','COM2'); PrintWP520(Chr(10) '測試科技股份有限公司2','COM2'); PrintWP520(Chr(10),'COM2'); PrintWP520(Chr(27) Chr(12),'COM2');
領航天使
站長


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-15 20:54:08 IP:192.168.xxx.xxx 未訂閱
引言: 超怪異的........... 用以下的方式......組合起來用..... 就.....就好了.......有那位前輩可以解答呢??? Comm1.StartComm; Comm1.StopComm; PrintWP520('12345678901234567890','COM2'); PrintWP520(Chr(10) '測試科技股份有限公司1','COM2'); PrintWP520(Chr(10) '測試科技股份有限公司2','COM2'); PrintWP520(Chr(10),'COM2'); PrintWP520(Chr(27) Chr(12),'COM2');
研判應該不用加上(27)就可以印出字串了 (27)應該是控制指令用的 (10)是換行字元 最好是採用(13)(10)來換行 (12)是跳頁字元 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
jojoboy
初階會員


發表:65
回覆:108
積分:34
註冊:2002-03-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-17 15:47:51 IP:61.220.xxx.xxx 未訂閱
謝謝各方前輩的幫忙........ 基本的問題都處理的差不多了....... 只是小弟都是用最原始的方式去處理Com Port的資料........ 還是學不會用TComm元件來處理資料傳輸......... 只盼這個案子Close後,能有時間研究TComm元件的操作...... 最後小弟再請教各位前輩一個問題....... 我後來把寫入Com Port的程式寫成Procedure..... 內容很簡單......如下 procedure TDataModule2.PrintWP520(String1,Port1:String); Var F:TextFile; begin if Copy(String1,1,3) <> 'Chr' then CheckLineCount; Inc(InvoiceLineCount); AssignFile(F, Port1); Rewrite(F); Write(F, String1); CloseFile(F); end; 但這個程式Run了一陣子.....就會出現stack overflow的錯誤訊息..... 我在想.....是不是因為我一直透過Com Port在輸出資料....... 所以......把Com Port塞爆了........我也只能朝這方向去想..... 但......我該怎麼把Com Port的資料釋放掉呢?? 用CloseFile()應該有做到這個功能吧~~~ 望各位前輩能再指導...... Thanks
jojoboy
初階會員


發表:65
回覆:108
積分:34
註冊:2002-03-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-17 16:22:54 IP:61.220.xxx.xxx 未訂閱
sorry........ 小弟找到問題了....... if Copy(String1,1,3) <> 'Chr' then CheckLineCount; 因為中間有一行在檢查行數的Procedure CheckLineCount 因為又會回來呼叫這個Procedure...... 所以造成了stack overflow......... 真是不好意思.......問了一個笨問題...... 還是謝謝三位前輩的大力幫助....... 讓我渡過了這次難關......Thanks
系統時間:2024-04-17 7:08:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!