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

刷卡機無法動作

答題得分者是:frankiech
hungyulin
一般會員


發表:36
回覆:33
積分:13
註冊:2003-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-29 11:22:19 IP:61.219.xxx.xxx 未訂閱
小弟現在手上有一台刷卡機,但是試了好久就是無法控制它進行交易,請各位大大幫忙看看。 1.傳輸規格 ASYNC.9600, 7 data-bit, Even parity, 1 Stop-bit. 2.採固定長度資料送收 Total 144 byte 不用之欄位填"0" 3.資料傳輸協定 資料封包格式定義(Message Block Format) STX DATA ETX LRC DATA message data to be sent LRC exclusive-OR bytes from DATA to ETX STX = 0x02 ETX = 0x03 我寫了以下的程式作測試,但它就是不動。 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Comms; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var i: integer; P,sP: string; ComPort,ComPort1: TComPort; begin ComPort := TComPort.Create(nil); ComPort.Port := TPortType(sInvComPort-1); ComPort.WriteBufSize:=0; try ComPort.Open; except raise Exception.Create('請確認刷卡機有否安裝好!'); end; P:=''; p:=p '01';//trans_type p:=p '0000000000000000000000000000000';//host_id receipt_no card_no date_exp p:=p '0000000100000';//trans_amount p:=p '000000000000000000000';//trans_date trans_time approval_no p:=p '000000000000000000000000';//auth_amount resp_code terminal_id p:=p '0000000000000000000000000000000000000';//ref_no exp_amount vip_card offset amount p:=p 'AA00000001';//invoice p:=p '0000000';//filler ComPort.WriteString(chr(2) P chr(3), True); Comport.free; end; end.
frankiech
中階會員


發表:7
回覆:78
積分:52
註冊:2002-08-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-30 09:01:10 IP:61.222.xxx.xxx 未訂閱
你好像沒有送 LRC 吧!!
hungyulin
一般會員


發表:36
回覆:33
積分:13
註冊:2003-10-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-30 09:49:32 IP:61.219.xxx.xxx 未訂閱
LRC 要送什麼?
frankiech
中階會員


發表:7
回覆:78
積分:52
註冊:2002-08-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-30 17:54:42 IP:61.222.xxx.xxx 未訂閱
你自已不是Post出來嗎 ?     LRC exclusive-OR bytes from DATA to ETX 就是將 DATA到ETX的資料做XOR 運算後的值.
hungyulin
一般會員


發表:36
回覆:33
積分:13
註冊:2003-10-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-02 10:23:11 IP:61.219.xxx.xxx 未訂閱
那請問一下有沒有可以取得字串的ascii碼的函數。
frankiech
中階會員


發表:7
回覆:78
積分:52
註冊:2002-08-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-02 13:19:31 IP:61.222.xxx.xxx 未訂閱
var 
   s : String;
   i : Integer;
   bb : BYTE;
begin
   s := '1234';
   for i := 1 to Length(s) do
   begin
      bb := BYTE(s[i]);
      ShowMessage(intToStr(bb));
   end;
end;
系統時間:2024-07-07 4:44:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!