函数参考手册一、说明与约定:1、在参数说明中不列举参数和返回值的数据类型,有关数据类型请参考函数定义。2、在VB中调用这些函数时,此处的int类型在VB中是LONG类型;BYTE,char类型在VB中是BYTE,char*在VB中声明可以声明成按地址传送的string类型,不过字符串声明后必须初始化;具体可参考给出的例程。3、有关卡处理的函数,超时值最少要大于6000;比如:打印,擦除等函数。4、本文档中列出的函数,是以《TCP300IISeriesProductSpecificationsManualCommands》定制的,如有任何疑问都可以参考《TCP300IISeriesProductSpecificationsManualCommands》。接下来的描述中,列举了每个函数跟《TCP300IISeriesProductSpecificationsManualCommands》中命令的对应关系。5、《TCP300IISeriesProductSpecificationsManualCommands》在接下来的文档中简称《TCP300II手册》。二、辅助函数1、向串口发送命令程序int_stdcallSendCommand(char*Command,intCmdLen,intWaitTime,char*Res);//0正确,-1超时功能:向打印机发送命令。命令格式参照STAR给出的指令参考手册。参数:Command:将要发送的命令,包括校验字节CmdLen:命令长度WaitTime:最大超时等待时间Res:打印机应答数据缓冲区(命令+状态+数据)返回:小于0x9000则正确返回切返回的是接收应答的字节数0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令三、初始化和系统资源释放函数1、打开串口函数int_stdcallOpenCom(BYTEbComId,BYTEbByteSize,BYTEbStopBits,BYTEbParity,DWORDdwBaudRate);功能:打开与打印机通讯的串行口。参数:bComId:串口号(字节型数据:1,2,3,4)bParity:奇偶校验设置,取值范围如下NOPARITY0//无奇偶位ODDPARITY1//奇校验EVENPARITY2//偶校验MARKPARITY3//掩膜SPACEPARITY4//空格bStopBits:停止位,取值范围如下ONESTOPBIT0//1个停止位ONE5STOPBITS1//1.5个停止位TWOSTOPBITS2//两个停止位bByteSize:数据位数,取值范围如下FOURBITS4//四位数据FIVEBITS5//5位数据SIXBITS6//6位数据SEVENBITS7//7位数据EIGHTBITS8//8位数据wBaudRate:波特率,取值范围如下BAUD24002400BAUD48004800BAUD96009600BAUD1920019200BAUD3840038400返回:int(VB为long)0:正确打开-1:出现错误,串口未打开2、关闭串口int_stdcallCloseCom(BYTEiComId);功能:关闭跟打印机通讯的串行口参数:iComId:当前被占用的串口号,也就是用OpenCom函数打开的串口号。返回:总是返回03、复位函数int_stdcallReSet(int*Status,intWaitTime);功能:初始化打印机。每次重新上电前,这个命令必须是发向打印机的第一个命令。参数:Status:返回打印机状态(返回参数)WaitTime:最大超时值返回:0:正确返回0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令0x9084:无效的返回数据(可能是指令不匹配,也可能是返回长度小于2)四、磁条读写函数1、读卡函数int_stdcallRead(charCodeNum,char*Res,int*Status,intWaitTime=500);功能:从磁条读数据,或从磁条缓冲区读数据。参数:CodeNum:命令号21h:读1磁条并等待插卡22h:读2磁条并等待插卡23h:读3磁条并等待插卡25h:读1磁条无卡立刻返回22h无卡状态到Status26h:读2磁条无卡立刻返回22h无卡状态到Status27h:读3磁条无卡立刻返回22h无卡状态到Status29h:读1磁条数据缓冲区2Ah:读2磁条数据缓冲区2Bh:读3磁条数据缓冲区Res:返回的磁条数据(返回参数)Status:返回的机器状态(返回参数)WaitTime:最大超时等待时间返回值:返回小于0x9000则正确返回,且返回的是读出的磁条数据的字节数0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令0x9084:无效的返回数据(可能是指令不匹配,也可能是返回长度小于2)对应关系:CodeNum参数所描述的命令号,与《TCP300II手册》中的相同命令号一一对应。2、设置写磁条数据缓冲区int_stdcallSettingTrackBuf(charCodeNum,char*Data,intDataLen,int*Status,intWaitTime);功能:设置写磁条缓冲区,但是这个函数并不往磁条上写数据。参数:CodeNum:命令号35h:设置Reverse7位格式数据1磁条写缓冲区36h:设置Reverse7位格式数据2磁条写缓冲区37h:设置Reverse7位格式数据3磁条写缓冲区38h:设置JIS-21磁条写缓冲区39h:设置JIS-22磁条写缓冲区3Ah:设置JIS-23磁条写缓冲区3Bh:设置ISO1磁条写缓冲区3Ch:设置ISO2磁条写缓冲区3Dh:设置ISO3磁条写缓冲区Data:写进缓冲区的数据DataLen:写进缓冲区的数据长度Status:返回的机器状态(返回参数)WaitTime:最大超时等待时间返回值:0:发送正确,Status返回打印几机的状态值。0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令0x9084:无效的返回数据(可能是指令不匹配,也可能是返回长度小于2)对应关系:CodeNum参数所描述的命令号,与《TCP300II手册》中的相同命令号一一对应。3、写磁条int_stdcallWriteTrack(charCodeNum,intTrackNum,int*Status,intWaitTime);/*OKCodeNum:命令号31h:写磁条数据(无卡则等待插卡)32h:写磁条并且吸卡(无卡则立即返回无卡状态到Status)TrackNum:磁条轨道号。1:1轨道2:2轨道3:3轨道.Status:返回的机器状态(返回参数)WaitTime:最大超时等待时间返回值:0:正确返回0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令0x9084:无效的返回数据(可能是指令不匹配,也可能是返回长度小于2)0x908E:轨道号溢出对应关系:CodeNum参数所描述的命令号,与《TCP300II手册》中的相同命令号一一对应。五、打印/擦写函数1、清打印扩展内存缓冲int_stdcallClrPrtExpBuf(int*Status,intWaitTime);功能:仅清除打印扩展缓冲区(按《TCP300II手册》中的描述,清除的应该是字符打印缓冲区)。参数:Status:返回的机器状态(返回参数)WaitTime:最大超时等待时间返回值:0:正确返回0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令0x9084:无效的返回数据(可能是指令不匹配,也可能是返回长度小于2)对应关系:对应于《TCP300II手册》中的40H命令。2、缓冲区清除指令int_stdcallClrBuf(int*Status,intWaitTime);功能:清除打印扩展缓冲区和图像缓冲区。参数Status:返回的机器状态(返回参数)WaitTime:最大超时等待时间返回值:0:正确返回0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令0x9084:无效的返回数据(可能是指令不匹配,也可能是返回长度小于2)对应关系:对应于《TCP300II手册》中的49H命令。3、打印字符数据设置指令int_stdcallSettingPrintChar(intArrangement,intX,intY,char*Data,int*Status,intWaitTime);参数:Arrangement:字符的打印安放位置(0-3)0:垂直和重写1:水平和重写2:垂直和覆盖3:水平和覆盖X:图像打印时的X坐标,坐标系以左上角为原点,Y轴垂直向下,X轴水平向左。Arrangement=0or2时X(0-319)Arrangement=1or2时X(0-479)Y:图像打印时的Y坐标,坐标系以左上角为原点,Y轴垂直向下,X轴水平向左。Arrangement=0or2时Y(0-479)Arrangement=1or2时Y(0-319)Data:写进打印缓冲区的数据Status:返回的机器状态(返回参数)WaitTime:最大超时等待时间返回值:0:正确返回0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令0x9084:无效的返回数据(可能是指令不匹配,也可能是返回长度小于2)对应关系:对应于《TCP300II手册》中的41H命令。4、设置内部图像数据int_stdcallSettingInterImage(intArrangement,intX,intY,intImageNum,int*Status,intWaitTime);参数:Arrangement:图像的打印安放位置(0-3)0:垂直和重写1:水平和重写2:垂直和覆盖3:水平和覆盖X:图像打印时的X坐标,坐标系以左上角为原点,Y轴垂直向下,X轴水平向左。Arrangement=0or2时X(0-319)Arrangement=1or2时X(0-479)Y:图像打印时的Y坐标,坐标系以左上角为原点,Y轴垂直向下,X轴水平向左。Arrangement=0or2时Y(0-479)Arrangement=1or2时Y(0-319)ImageNum:内部图像数据的编号,值域范围0到1999。Status:返回的机器状态(返回参数)WaitTime:最大超时等待时间返回值:0:正确返回0X9080:串口错误0X9081:超时0X9082:校验错误0x9083:无效指令0x9084:无效的返回数据(可能是指令不匹配,也可能是返回长度小于2)0x9085:Arrangement溢出0x9086:X溢出0x9087:Y溢出0x9088:ImageNum溢出对应关系:对应于《TCP300II手册》中的42H命令。5、外部图像数据描述命令int_stdcallSettingExternalImage(intX,intY,char*ImageData,int*Status,intWaitTime);功能:按指令手册中的描述,将整张卡分成了320个点,每4个点用一个字符来描述,共80个字符由ImageData传入。事实并非如此,其实,80个字节多代表的320个点,只能定义一行图像。比如:“AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55AA55”所代表的就是一行黑白相间的直线。具体见例程。参数:X:图像打印时的X坐标,坐标系以左上角为原点,Y轴垂直向下,X轴水平向左。取值范围:0–479这里的X参数是参照指令手册得出的,实际证明,X参数是不能被指定的。因此,你所指定的X值将被忽略,但是X必须指定一个值。Y:图像打印时的Y坐标,坐标系以左上角为原点,Y轴垂直向下,X轴水平向左。取值