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

    技术2022-05-20  71

    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) * 不显示操作对话框

     


    最新回复(0)