HCE-300 系列磁卡读写机技术指标
1.拉卡速度:10~120cm/s
2.记录格式:兼容IBM、ISO 格式,可用控制命令切换。
3.记录密度:第1 轨210BPI,最多79 个字符。
第2 轨75BPI/210BPI 可选,最多37/107 个字符。
第3 轨210BPI,最多107 个字符。
4.串行通讯参数:波特率:9600bps;数据格式:8 位无校验;1 位起始位;1 位停止位。
5.磁头寿命:≥ 600,000 次。
6.电源电压:DC 5V±5%。
7.电源电流:≤ 200mA。
6.工作环境:温度:0℃~45℃ 湿度:10~90%RH
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 口的通讯参数设置为9600Bps,8 位数据
位,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 口上,取值范围1~9,即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) * 不显示操作对话框