開發 heart 讀卡機的經驗 |
尚未結案
|
ckwong
一般會員 發表:7 回覆:15 積分:4 註冊:2004-03-12 發送簡訊給我 |
|
ckwong
一般會員 發表:7 回覆:15 積分:4 註冊:2004-03-12 發送簡訊給我 |
|
DavidLo
高階會員 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
|
ckwong
一般會員 發表:7 回覆:15 積分:4 註冊:2004-03-12 發送簡訊給我 |
|
DavidLo
高階會員 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
串列Library,每個人使用方式,大家都不同.
主要是下列幾個步驟:
1.建立指令,根據Heart通訊協定,"E01J\r",address:01,J:讀Password,\r:結束字元.
2.清除接收區,清除PC串列緩衝區資料.
3.送出指令,PC透過串列埠送出指令字元.
4.等待接收長度符合,Heart讀卡機會回應6各字元.當字元接收數為6時結束.
5.讀取資料.
6.顯示. 元件請參考MOXA公司PCommLite. 使用SPCOMM應該更簡單,確認Baud,parity,送出指令"E01J\r"是否正確!
|
ckwong
一般會員 發表:7 回覆:15 積分:4 註冊:2004-03-12 發送簡訊給我 |
我是用 spcomm, 第1個procedure 是發出 E02J\r 的字串, 第 2 個procedure
是接收回來的資料, 不知道是否有問題, 但仍不能收到傳回的資料. procedure TForm1.Button1Click(Sender: TObject);
var strsend,mm:string;
begin
mm:='E02J\r';
begin
strsend:=trim(mm);
comm1.WriteCommData(pchar(strsend),length(strsend));
end; end; procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
type
IArr=^integer;
var revP : array[1..2048] of byte;
i : integer;
commrevstr : shortstring;
begin
setlength(commrevstr,bufferlength);
move(iarr(buffer)^,revp,bufferlength);
for i:=1 to bufferlength do
begin
commrevstr[i]:=char(revp[i]);
edt_recv.text:=edt_recv.text commrevstr;
end;
end;
|
DavidLo
高階會員 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
|
ckwong
一般會員 發表:7 回覆:15 積分:4 註冊:2004-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |