HCE300磁卡读写机程序手册(部分)

来源:互联网 发布:屋顶上的轻骑兵 淘宝店 编辑:程序博客网 时间:2024/04/30 08:55

HCE-300 系列磁卡读写机技术指标

1.拉卡速度:10120cm/s

2.记录格式:兼容IBMISO 格式,可用控制命令切换。

3.记录密度:第1 210BPI,最多79 个字符。

2 75BPI/210BPI 可选,最多37/107 个字符。

3 210BPI,最多107 个字符。

4.串行通讯参数:波特率:9600bps;数据格式:8 位无校验;1 位起始位;1 位停止位。

5.磁头寿命:≥ 600000 次。

6.电源电压:DC 5V±5%。

7.电源电流:≤ 200mA

6.工作环境:温度:0℃~45℃ 湿度:1090RH

 

HCE-300 系列磁卡读写机

Win32 动态链接库函数说明

版本1.10

 

函数索引

函数名称功能简述页次

HCE300_Open 打开磁卡读写机进行读写磁卡操作

HCE300_Close 关闭磁卡读写机

HCE300_Reset 复位磁卡读写机

HCE300_Read 读取磁卡上指定磁道数据

HCE300_Write 将指定磁道数据写入磁卡

HCE300_GetLastStatus 取得上次读写操作结果

HCE300_SetTrack2Denisty 设置磁道2 记录密度

HCE300_GetTrack2Denisty 取得磁道2 记录密度

HCE300_SetRecordFormat 设置磁道数据记录格式

HCE300_GetRecordFormat 取得磁道数据记录格式

HCE300_SetDeviceType 设置磁卡读写机型号

HCE300_GetDeviceType 取得磁卡读写机型号

HCE300_SetShowDialog 设置是否显示操作对话框

 

函数说明

关于动态库的重要说明

函数库位于安装目录的APILIB 子目录下,包含有以下文件:

PComm.DLL COM 端口操作动态链接库

HCE300_API.DLL HCE300 磁卡读写机操作动态链接库

HCE300_API.Pas HCE300 磁卡读写机动态库在Delphi 中的声明文件

HCE300_API.H HCE300 磁卡读写机动态库在C/C++ 中的声明文件

HCE300_API.Bas HCE300 磁卡读写机动态库在Visual Basic 中的声明文件

HCE300_API.Prg HCE300 磁卡读写机动态库在Visual FoxPro 中的声明文件

HCE300_API.PB HCE300 磁卡读写机动态库在PowerBuilder 中的声明文件

其中在最后应用系统发行,必须包含以上两个动态链接库,Pcomm.DLL HCE300_Api.DLL

 

关于动态库函数返回值定义的重要说明

返回值

定义

说明

0

HCE300_OK

操作成功

1

HCE300_ERROR

操作错误

10

HCE300_NOOPEN

设备未打开

11

HCE300_ALREADYOPEN

设备已经打开

12

HCE300_NOCONNECT

磁卡读写机未联机

13

HCE300_ERRPARAMETER

错误的调用参数

14

HCE300_TIMEOUT

操作已经超时(对于HCE300_Open 函数超时时间为10 秒,对

HCE300_Read/HCE300_Write 函数超时时间为120 秒)。

15

CE300_USERBREAK

用户中断

16

CE300_USERESCAPE

用户按下ESC 键中断操作

17

CE300_EMPTYDATA

空的输入缓冲区

100

CE300_BUSY

当前设备正忙

注意:以上返回值均为长整形(LongInt)。

 

相关函数注解(部分)

 

HCE300_Open

功能描述:

打开HCE-300 磁卡读写机,以便进行读写等操作,这时COM 口的通讯参数设置为9600Bps8 位数据

位,1 位停止位,无校验位。

函数原型:

编程语言 语法

Delphi function HCE300_Open(ComPort:Integer):Integer;

C/C++ int WINAPI HCE300_Open(int ComPort);

Visual Basic Function HCE300_Open(ByVal ComPort As Long) As Long

Visual Foxpro DECLARE INTEGER HCE300_Open In HCE300_Api INTEGER ComPort

PowerBuilder Function Long HCE300_Open(Long ComPort) Library "HCE300_API.DLL "

参数说明:

ComPort:表示磁卡读写机连接在主机的哪个COM 口上,取值范围19,即COM1 COM9

返回值:

HCE300_OK(0):磁卡读写机打开成功。

HCE300_ERROR(-1):与磁卡读写机通讯握手失败。(可能磁卡读写机插头没有插好)

HCE300_ALREADYOPEN(-10):磁卡读写机已经打开。

HCE300_ERRPARAMETER(-13):输入参数错误。

示例:

Delphi

var ComPort: Integer;

ComPort := 1; { COM1 口打开磁卡读写机 }

if HCE300_Open(ComPort) <> HCE300_OK then

begin

{ 打开失败 }

end;

C/C++:

int ComPort;

ComPort = 1;

if(HCE300_Open(ComPort) != HCE300_OK) {

/* 打开失败 */

}

Visual Basic:

Dim ComPort As Long

ComPort = 1

If HCE300_Open(ComPort) <> HCE300_OK Then

’打开失败

End If

Visual Foxpro:

? ComPort = 1

IF HCE300_Open(ComPort) <> 0 THEN

* 打开失败

ENDIF

 

 

HCE300_Close

功能描述:

关闭HCE-300 磁卡读写机。

函数原型:

编程语言 语法

Delphi function HCE300_Close:Integer;

C/C++ int WINAPI HCE300_Close(void);

Visual Basic Function HCE300_Close() As Long

Visual Foxpro DECLARE INTEGER HCE300_Close IN HCE300_Api

PowerBuilder Function Long HCE300_Close() Library "HCE300_API.DLL "

参数说明:

返 回 值:

HCE300_OK(0):成功关闭磁卡读写机。

HCE300_NOOPEN(10):关闭操作失败。(没有正确打开磁卡读写机)

示 例:

Delphi:

var ComPort:Integer;

ComPort := 1;

...

HCE300_Close();

C/C++:

int ComPort;

ComPort = 1;

...

HCE300_Close();

Visual Basic:

Dim ComPort As Long

ComPort = 1

...

HCE300_Close()

Visual Foxpro:

? ComPort = 1

? HCE300_Close()

 

 

HCE300_Reset

功能描述:

复位磁卡读写机。

函数原型:

编程语言 语法

Delphi function HCE300_Reset(ResetWay:Integer):Integer;

C/C++ int WINAPI HCE300_Reset(int ResetWay);

Visual Basic Function HCE300_Reset(ByVal ResetWay As Long) As Long

Visual Foxpro DECLARE INTEGER HCE300_Reset IN HCE300_Api INTEGER ResetWay

PowerBuilder Function Long HCE300_Reset(Long ResetWay) Library "HCE300_API.DLL "

参数说明:

ResetWay:复位方式,HCE300_HARD_RESET(0)表示进行硬复位(模拟重新上电过程);

HCE300_SOFT_RESET(1)表示进行软复位;

HCE300_INIT_RESET(2)表示进行软复位并且进行初始化(设置磁道2 密度、设

置记录格式)。

返 回 值:

HCE300_OK(0):磁卡读写机复位成功。

HCE300_NOOPEN(10):关闭操作失败。(没有正确打开磁卡读写机)

HCE300_ERRPARAMETER(-13):输入参数错误。

示 例:

Delphi:

{ Open Success }

HCE300_Reset(HCE300_INIT_RESET);

C/C++:

/* Open Success

HCE300_Reset(HCE300_INIT_RESET);

Visual Basic:

Open Success

HCE300_Reset(HCE300_INIT_RESET)

Visual Foxpro:

* Open Success

? HCE300_Reset(HCE300_INIT_RESET)

 

 

HCE300_Read

功能描述:

从磁卡读写机读取指定磁道的数据,读取的数据在ReadData 中,ReadData 缓冲区必须大于300 字节。

若分配缓冲过小,可能引起内存存取错误。

函数原型:

编程语言 语法

Delphi function HCE300_Read(TrackNo:Integer; ReadData:PChar):Integer;

C/C++ int WINAPI HCE300_Read(int TrackNo char *ReadData);

Visual Basic Function HCE300_Read(ByVal TrackNo As Long ByRef ReadData As Byte) As Long

Visual Foxpro DECLARE INTEGER HCE300_Read IN HCE300_Api INTEGER InTrackNo STRING

InReadBuf

PowerBuilder Function Long HCE300_Read(Long TrackNo, REF String ReadData) Library

"HCE300_API.DLL "

参数说明:

TrackNo:指定磁道数。

1 表示第一磁道;

2 表示第二磁道;

3 表示第三磁道;

4 表示第一、二磁道;

5 表示第二、三磁道。

ReadData:被读取磁卡的数据,使用‘|’(十六进制7CH)来分隔。

返 回 值:

HCE300_OK(0):读取成功;

HCE300_ERROR(-1):读取失败;

HCE300_NOOPEN(-10):磁卡读写机没有打开;

HCE300_ERRPARAMETER(-13):输入参数错误;

HCE300_TIMEOUT(-14):等待读卡超时(最长等待读取时间为120 秒,120 秒后函数返回操作超时错误);

HCE300_USERBREAK(-15):用户中断读取操作;

HCE300_USERESCAPE(-16):用户使用ESC 键中断读取操作。

示 例:

Delphi:

var ReadBuf: array[0..250] of Char;

{ Open Success }

if HCE300_Read(2, ReadBuf) = HCE300_OK then

{ 读取磁道2 成功,数据在ReadBuf }

else

{ 读取磁道2 失败 } ;

C/C++:

char ReadBuf[250];

/* Open Success */

if(HCE300_Read(2, ReadBuf) == HCE300_OK) {

/* 读取磁道2 成功,数据在ReadBuf */

}

else {

/* 读取磁道2 失败 */

}

Visual Basic:

Dim ReadBuf(0 To 250) As Byte;

Open Success

If HCE300_Read(2, ReadBuf(0)) = HCE300_OK) Then

’读取磁道2 成功,数据在ReadBuf

Else

’读取磁道2 失败

End If

Visual Foxpro:

* Open Success

? ReadBuf = “ ”

IF HCE300_Read(2, @ReadBuf) = HCE300_OK THEN

* 读取磁道2 成功,数据在ReadBuf

ELSE

* 读取磁道2 失败

ENDIF

 

 

HCE300_Write

功能描述:

WriteData 缓冲区中数据写入到磁卡的指定磁道。

函数原型:

编程语言 语法

Delphi function HCE300_Write(TrackNo:Integer; WriteData:PChar):Integer;

C/C++ int WINAPI HCE300_Write(int TrackNo Char *WriteData);

Visual Basic Function HCE300_Write(ByVal TrackNo As Long ByRef WriteData As Byte) As

Long

Visual Foxpro DECLARE INTEGER HCE300_Write IN HCE300_Api INTEGER InTrackNo STRING

InWriteData

PowerBuilder Function Long HCE300_Write(Long TrackNo, String WriteData) Library

"HCE300_API.DLL "

参数说明:

TrackNo:指定磁道数。

1 表示第一磁道;

2 表示第二磁道;

3 表示第三磁道;

4 表示第一、二磁道;

5 表示第二、三磁道。

WriteData:将被写入磁卡的数据,不同磁道的数据使用‘|’(十六进制7CH)来分隔。

返 回 值:

HCE300_OK(0):写卡成功;

HCE300_ERROR(-1):写卡失败;

HCE300_NOOPEN(-10):磁卡读写机没有打开;

HCE300_ERRPARAMETER(-13):输入参数错误;

HCE300_TIMEOUT(-14):等待写卡超时(最长等待读取时间为120 秒,120 秒后函数返回操作超时错误);

HCE300_USERBREAK(-15):用户中断读取操作;

HCE300_USERESCAPE(-16):用户使用ESC 键中断读取操作;

HCE300_EMPTYDATA(-17)WriteData 为空。

示 例:

Delphi:

var WriteBuf: array[0..250] of Char;

{ Open Success }

StrPCopy(WriteBuf, 0123456789);

if HCE300_Write(2, WriteBuf) = HCE300_OK then

{ 写卡成功 }

else

{ 写卡失败 } ;

C/C++:

char WriteBuf[250];

/* Open Success */

StrCopy(WriteBuf, 01234356789);

if(HCE300_Write(2, WriteBuf) == HCE300_OK) {

/* 写卡成功 */

}

else {

/* 写卡失败 */

}

Visual Basic:

Dim WriteBuf(0 to 250) As Byte

Open Success

if HCE300_Write(2, WriteBuf(0)) = HCE300_OK Then

’写卡成功

Else

’写卡失败

End If

Visual Foxpro:

? WriteBuf = 0123456789

* Open Success

IF HCE300_Write(2, WriteBuf) = HCE300_OK THEN

’写卡成功

ELSE

’写卡失败

ENDIF

 

 

HCE300_ GetLastStatus

功能描述:

读取上次读写操作后的状态。

函数原型:

编程语言 语法

Delphi function HCE300_GetLastStatus:Integer;

C/C++ int WINAPI HCE300_GetLastStatus(void);

Visual Basic Function HCE300_GetLastStatus() As Long

Visual Foxpro DECLARE INTEGER HCE300_GetLastStatus IN HCE300_Api AS HCE300_GetLStatus

PowerBuilder Function Long HCE300_GetLastStatus() Library "HCE300_API.DLL "

参数说明:

返 回 值:

HCE300_OK(0):上次读写卡成功;

HCE300_ERROR(-1):上次读写卡失败;

HCE300_NOOPEN(-10):磁卡读写机没有打开;

示 例:

Delphi:

{ Open Success }

if HCE300_GetLastStatus = HCE300_OK then

{ 上次读写操作成功 }

else

{ 上次读写操作失败 } ;

C/C++:

/* Open Success

if(HCE300_GetLastStatus == HCE300_OK) {

/* 上次读写操作成功 */

}

else {

/* 上次读写操作失败 */

}

Visual Basic:

Open Success

If HCE300_GetLastStatus() = HCE300_OK Then

’上次读写操作成功

Else

’上次读写操作失败

End If

Visual Foxpro:

* Open Success

IF HCE300_GetLStatus() = HCE300_OK THEN

* 上次读写操作成功

ELSE

* 上次读写操作失败

ENDIF

 

 

HCE300_ SetShowDialog

功能描述:

设置是否在磁卡读写操作中显示内建对话框,在此对话框上有一取消按钮可中断当前的操作。

函数原型:

编程语言 语法

Delphi function HCE300_SetShowDialog(InFlag:Integer):Integer;

C/C++ int WINAPI HCE300_SetShowDialog(int InFlag);

Visual Basic Function HCE300_SetShowDialog(ByVal InFlag As Long) As Long

Visual Foxpro DECLARE INTEGER HCE300_SetShowDialog IN HCE300_Api AS HCE300_SetShowDialog

INTEGER InFlag

PowerBuilder Function Long HCE300_SetShowDialog(Long InFlag) Library "HCE300_API.DLL"

参数说明:

InFlag:设置是否显示操作对话框标志。

0:不显示对话框(用户可按ESC 键中断当前操作);

1:显示操作对话框(用户可按ESC 键或点击对话框上中止按钮中断当前操作)。

返 回 值:

HCE300_OK(0):设置操作成功;

示 例:

Delphi:

HCE300_SetShowDialog(1); { 显示操作对话框 }

HCE300_SetShowDialog(0); { 不显示操作对话框 }

C/C++:

HCE300_SetShowDialog(1); /* 显示操作对话框 */

HCE300_SetShowDialog(0); /* 不显示操作对话框 */

Visual Basic:

HCE300_SetShowDialog(1) ’显示操作对话框

HCE300_SetShowDialog(0) ’不显示操作对话框

Visual Foxpro:

? HCE300_SetShowDialog(1) * 显示操作对话框

? HCE300_SetShowDialog(0) * 不显示操作对话框

 

原创粉丝点击