全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4689
推到 Plurk!
推到 Facebook!

pos机开启钱柜的问题

尚未結案
minggl
一般會員


發表:4
回覆:11
積分:8
註冊:2002-10-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-11 18:11:17 IP:61.171.xxx.xxx 未訂閱
pos机开启钱柜的问题: 版主:我现在又碰到一个问题,我用的是eposn的票据打印机(lpt接口),钱柜是連在打印机上的, 我见有的书上说可以发出一串字符给打印机(比如说:XMB),钱柜就可以打开了,但是我试过了, 不行呀,不知你老人家有没有解决这种问题的经验,我是在kylix3上开发pos系统的,谢谢你了!
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-11 21:47:39 IP:210.208.xxx.xxx 未訂閱
應該又是 rs-232 的問題吧 基本上偶是還沒找到Kylix 3 上可用的 ComPort Component 你口不口以告訴偶你是用啥方法寫資料到 rs-232 上滴呀 ? 簡單的 interface 是口以直接用寫檔的方式 把 ComPort 當成一個 file 來做 output 但稍微複雜的裝置需要設定 bps , 同位檢查 , byte 等等 (如 9600,N,8,1) 則無法單存用寫檔方式來控制 等偶找到好用的 ComPort component 偶會再公佈 你也不要藏私喔 ....
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-11 21:55:20 IP:210.208.xxx.xxx 未訂閱
下面是偶找到的一個 rs-232 範例 , 偶還在研究如何寫成 Kylix C++ Muti-thread 版     
{    Kylix Delphi 版 讀寫 ComPort 範例    0.此範例完整原始檔案下載位置 ftp://members.aol.com/db1joe/kyserex.zip
1.以檔案觀念讀寫 ComPort 
2.使用時要將 /dev/ttyS0 讀寫權限開放 (使用指令 chmod 777 /dev/ttyS0 )
3.真正的應用上 , 要用多執行緒去不停的讀 ComPort , 此範例用 Timmer 去讀 ComPort    }    unit comtest1;
{    15.05.2001: Funktioniert, fgt jedoch bei jedem Lesevorgang ein
            Linefeed hinzu.
23.05.2001: fixed
}    interface    uses
  SysUtils, Types, Classes, Variants, QGraphics, QControls,
  QForms, QDialogs, QStdCtrls, LibC, QTypes, QExtCtrls;    type
  TForm1 = class(TForm)
    OpenButton: TButton;
    CloseButton: TButton;
    WriteButton: TButton;
    ReadButton: TButton;
    Box: TListBox;
    ReadLabel: TLabel;
    WriteEdit: TEdit;
    WritelnButton: TButton;
    OpenLabel: TLabel;
    EndButton: TButton;
    WriteLabel: TLabel;
    Timer: TTimer;
    procedure OpenButtonClick(Sender: TObject);
    procedure CloseButtonClick(Sender: TObject);
    procedure WriteButtonClick(Sender: TObject);
    procedure ReadButtonClick(Sender: TObject);
    procedure WritelnButtonClick(Sender: TObject);
    procedure EndButtonClick(Sender: TObject);
    procedure TimerTimer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    serFileTx, comfd:integer;
    ss: string;
  end;    var
  Form1: TForm1;    implementation    {$R *.xfm}    {
Button1 intialized the port
Button2 Close the port
Button3 write the string to the port
}    {-----開啟 COM1 通訊埠 (重點 !!)---------------------------------------------}
procedure TForm1.OpenButtonClick(Sender: TObject);
var ios:  termios;
begin
  serFileTx:= LibC.Open ('/dev/ttyS0',fmOpenReadWrite or o_nonblock);
  tcgetattr (serFileTx,ios);
  cfmakeraw (ios);
  cfsetospeed (ios, b115200);
  cfsetispeed (ios,b115200);
  tcsetattr (serFileTx,tcsanow,ios);
  OpenLabel.Caption:= IntToStr (serFileTx)
end;    {-----關掉 COM1 通訊埠 ------------------------------------------------------}
procedure TForm1.CloseButtonClick(Sender: TObject);
begin 
  fileClose(serFileTx);
  OpenLabel.Caption:= '' 
end;    {-----寫入資料至 COM1 通訊埠 ------------------------------------------------}
procedure TForm1.WriteButtonClick(Sender: TObject);
var d:string; resultat: integer;
begin
  d:= WriteEdit.Text;  {WriteEdit 只不過是畫面上的一個 Edit 元件 }
  resultat:= FileWrite (serFileTx, d[1], Length(d));
  WriteLabel.Caption:= IntToStr (resultat)
end;    {-----寫入資料至 COM1 通訊埠 ( 有加 CHR(13) )--------------------------------}
procedure TForm1.WritelnButtonClick(Sender: TObject);
var d: string; resultat: integer;
begin
  d:= WriteEdit.Text   #13;
  resultat:= FileWrite (serFileTx, d[1], Length(d));
  WriteLabel.Caption:= IntToStr (resultat)
end;    {$O-}    {-----讀出 COM1 通訊埠資料 --------------------------------------------------}
procedure TForm1.ReadButtonClick(Sender: TObject);
var a:       array [1..4096] of char;
    s:       string;
    zaehler, index: integer;
begin
  s:= '';
  zaehler:= FileRead (serFileTx, a, sizeof (a));
  ReadLabel.Caption:= IntToStr (zaehler);
    if zaehler > 0
    then begin
           for index:= 1 to zaehler do
             s:= s   a [index];
           Box.Items.Text:= s
         end
end;    {$O }    {-----結束程式 -------------------------------------------------------------}
procedure TForm1.EndButtonClick(Sender: TObject);
begin
  Application.Terminate
end;    {-----計時器(InterVal=100)不停去讀出 COM1 通訊埠資料------------------------}
procedure TForm1.TimerTimer(Sender: TObject);
begin
  ReadButtonClick(Sender)
end;    end.         
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-11 22:02:18 IP:210.208.xxx.xxx 未訂閱
下面是我找到的兩個比較新的(原作者有一直在維護) Kylix Comport solution 但在 Kylix 3 下好像都不能 Run 若有機會研究,別忘了寫研究報告分享大家 (不是我不想測試,而是公司這半年在趕 case (WIN2K BCB) 偶不好意思在公司玩這些有的沒有的 而在家又沒環境...但我有測過在KYLIX 3 下,安裝都有問題...) synaser.zip http://www.ararat.cz/synapse/files/synaser.zip NrComm Lib v.5.22 http://www.torry.net/kylix/clx/comp_klx_comms/nrcomm.zip 發表人 - bruce0211 於 2002/11/11 22:07:41
minggl
一般會員


發表:4
回覆:11
積分:8
註冊:2002-10-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-12 09:00:41 IP:61.171.xxx.xxx 未訂閱
我用的是并口打印机,不是串口的呀!现在打印没有问题了(我是通过在kylix3中调用linux shell命令的方式来打印的),但是钱柜是接在打印机上的。应该是通过控制打印机来使钱柜打开吧!(钱柜应该不用什么driver吧!) 我们用的客显是串口的(RS-232)我现在还没有测试呢,测好了我会讲出我的心得来和大家分亨的!
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-12 23:44:38 IP:210.208.xxx.xxx 未訂閱
看您沒有提到最重要的 RS-232 I/O -> BARCODE SCANNER 我猜您 POS 用的BARCODE SCANNER應該不是 RS-232 的吧 應該是那種模擬 KEYBOARD 的 SCANNER 吧 所以暫時還無 RS-232 的問題 至於 客顯器 , 把 COMPORT 模擬成 FILE 來 OUTPUT 應該就可以了 客顯器應該沒有通訊上那些通訊上速率設定或同位檢查的問題
minggl
一般會員


發表:4
回覆:11
積分:8
註冊:2002-10-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-11 18:35:00 IP:61.171.xxx.xxx 未訂閱
我的问题都已经解决了: 1、因为我的钱柜是连在打印机上的,所以要输出一串开柜指令给打印机,我的做法是先将要打印的内容保存在一memo中,将memo的内容保存为一文本文件(test1.txt) user libc libc.system('lp /u/test1.txt'); 这样钱柜就可以打开了。 2、对于RS-232,把它当做一个文件来用就可以了 比如你要发送一串字符到串口一(ttyS0): var a:textfile; begin assignfile(a,'/dev/ttyS0') rewrite(a); writeln(a,'abcdefg'); closefile(a); end; 这样就可以了,在kylix3中测试通过!
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-11 23:37:08 IP:210.208.xxx.xxx 未訂閱
謝謝長官心得分享... SCANNER 的問題(RS-232 Input) 是我一直沒有辦法克服的問題 長官有空在幫忙研究囉 ^_^
koncon
一般會員


發表:0
回覆:7
積分:1
註冊:2003-01-06

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-01-08 20:47:42 IP:210.58.xxx.xxx 未訂閱
那在MS的windows下呢? 在dos底下>>type xxx.txt > lpt 也都沒有東西跑出來啊....????.....|||
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-01-08 21:42:20 IP:218.174.xxx.xxx 未訂閱
若我沒記錯... DOS 底下印表機裝置名稱叫做 "PRN" 應該是 type xxx.txt > prn
koncon
一般會員


發表:0
回覆:7
積分:1
註冊:2003-01-06

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-01-09 23:42:48 IP:210.58.xxx.xxx 未訂閱
...沒錯....我記錯了... 但...還是不行... 不動就是不動....><.. 另.... 我試了一套pos系統(純dos的)...改了它列印的title 但中文印出不正確... 看它設定的印表機(倚天的環境中)是epson..通用型... 大概就是P20... driver錯誤? 發表人 - koncon 於 2003/01/09 23:45:26
koncon
一般會員


發表:0
回覆:7
積分:1
註冊:2003-01-06

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-01-11 14:21:27 IP:211.76.xxx.xxx 未訂閱
sorry!!已解決... 每行前面少加兩個←←的符號... 請問bruce0211大大... 那裏可以找的到esc/pos的指令表?
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-01-11 17:29:28 IP:210.208.xxx.xxx 未訂閱
試試收尋引擎 我只有書面資料沒有檔案,沒辦法貼上來 我覺得丟資料到發票印表機或客顯器(都是RS-232介面) 都還是小問題,能在 KYLIX 程式中連結需要設定通訊包率同位檢查等數據 的 RS-232 條碼掃描器才是重點 一起研究吧 ....我現在還沒時間及環境實際裝一套 Linux POS 但能先幫您找研究資料或提供經驗 (你要回報大家實驗結果喔) 發表人 - bruce0211 於 2003/01/11 17:32:00
koncon
一般會員


發表:0
回覆:7
積分:1
註冊:2003-01-06

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-01-13 01:19:19 IP:211.76.xxx.xxx 未訂閱
找過了....沒找到....><.. 目前環境準備中 redhat 7.2 kde 2.2 kylix 3 ..... 但跑東西有點慢... 想改在console下跑pos.... 手頭上都只有掛在keyboard的scanner...沒有接rs-232的... 發表人 - koncon 於 2003/01/13 01:21:12 發表人 - koncon 於 2003/01/13 01:23:42
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-01-13 17:46:18 IP:210.208.xxx.xxx 未訂閱
這裡有一篇 EPSON/POS COMMAND 不過好像是義大利文的..... http://sd.epson.es/support/download/data/faq/escpos.pdf
koncon
一般會員


發表:0
回覆:7
積分:1
註冊:2003-01-06

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-01-16 23:15:17 IP:210.58.xxx.xxx 未訂閱
謝啦....但看不懂....>< 我發現比較需要的是3688的指令集... 不是esc/pos的.... 一些有關跳行...開錢櫃等等... 是esc/pos裏的.. 但字型..大小...是3688的指令 你有看過嗎?
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-01-17 15:43:34 IP:210.208.xxx.xxx 未訂閱
下面的說明書中有 3688 指令說明 http://www.winpos.com.tw/catalog/wp-200_ch_manual.zip
koncon
一般會員


發表:0
回覆:7
積分:1
註冊:2003-01-06

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-01-27 00:40:10 IP:210.58.xxx.xxx 未訂閱
過年前比較忙...有一陣子沒上來... 抓到你post的東東了... Thx..a lot...t.t.t.t.t 用kylix發展的pos有下落了嗎?...
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#19 引用回覆 回覆 發表時間:2003-01-28 12:47:31 IP:210.208.xxx.xxx 未訂閱
勢單力薄,又非公司正業,所以暫擱著.....
minggl
一般會員


發表:4
回覆:11
積分:8
註冊:2002-10-22

發送簡訊給我
#20 引用回覆 回覆 發表時間:2003-03-06 15:10:10 IP:61.171.xxx.xxx 未訂閱
我开发的pos系统(rh8+postgres+kylix3)已经进行试运行阶段了!目前是在ibm4614sureone和wincor的机器上试用!    < >< >< >< >
系統時間:2024-04-27 8:25:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!