关于POS的各种外设处理(包括打印机、钱箱等)
现把POS的各种外设处理整理如下,可能还有许多不全或者代码不正确的地方,望大家补充且指证
POS的外设包括打印机、钱箱、顾显、卡、扫码枪和扫码平台。
一般的外设编程可以通过PB通过的串口编程,也有部分特殊的,可由厂家直接提供技术支持。
各种外设如果接的是COM,必须在打开的时候,让其初始化,一般卡可在刷卡的时候再初始化,刷卡结束后,再把COM口关闭。因为如果COM已被某一外设打开,另一外设将不可用,即COM口是独占的。
一、打印机
POS的外设包括打印机、钱箱、顾显、卡、扫码枪和扫码平台。
一般的外设编程可以通过PB通过的串口编程,也有部分特殊的,可由厂家直接提供技术支持。
各种外设如果接的是COM,必须在打开的时候,让其初始化,一般卡可在刷卡的时候再初始化,刷卡结束后,再把COM口关闭。因为如果COM已被某一外设打开,另一外设将不可用,即COM口是独占的。
一、打印机
申明
/*210D´串口打印*/
Function boolean OpenSerPort(int iPt) LIBRARY "prndll.dll" //打开串口
Function boolean ClosePort() LIBRARY "prndll.dll" //关闭串口
Function boolean SendPData(string pData,int iDataLen) LIBRARY "prndll.dll" //发送打印命令
Function boolean OpenPrnDrawer() LIBRARY "prndll.dll" //开钱箱
Function boolean TM210D_Init() LIBRARY "prndll.dll" //打印初始化串口
Function boolean TM210D_PrnCnEn(int iColor,string pData,int iDataLen) LIBRARY "prndll.dll" //向打印机从软字库(串口)
Function boolean OpenPalPort(int iPt) LIBRARY "prndll.dll" //´打开并口
Function boolean TM210PD_PrnCnEn(int iColor,string pData,int iDataLen) LIBRARY "prndll.dll" //向打印机从软字库(并口)
1、打印机初始化(可在OPEN事件中写)
gs_system_qt.ls_printtype:为打印机型号
OLE_print:为Microsoft Communication control控件(装VB6后,此控件可见)
gs_system_qt.ls_pagewidth:打印纸的宽度
ls_printstr:送入打印机的字符
//初始化串口打印机
choose case gs_system_qt.ls_printtype
case 'IBM Sure one 4614'
w_main.OLE_print.Object.RTSenable = true
w_main.OLE_print.Object.handshaking = 2
w_main.OLE_print.Object.CommPort = 3
w_main.OLE_print.Object.PortOpen = True
case 'TP POS2000'
choose case gs_system_qt.ls_printport
case 'COM1'
li_printport = 1
case 'COM2'
li_printport = 2
case 'COM3'
li_printport = 3
case 'COM4'
li_printport = 4
case 'COM5'
li_printport = 5
case 'COM6'
li_printport = 6
case else
li_printport = 1
end choose
if li_printport >=1 and li_printport <=6 then
w_main.OLE_print.Object.RTSenable = true
w_main.OLE_print.Object.handshaking = 2
w_main.OLE_print.Object.CommPort = li_printport
w_main.OLE_print.Object.PortOpen = True
end if
end choose
end if
//此处判断如果打印机不是“IBM Sure one 4614”,但是钱箱是“IBM Sure one 4614”的
if gs_system_qt.ls_printtype <> 'IBM Sure one 4614' then
if gs_system_qt.ls_moneyboxport = 'IBM Sure one 4614' then
w_main.OLE_print.Object.RTSenable = true
w_main.OLE_print.Object.handshaking = 2
w_main.OLE_print.Object.CommPort = 3
w_main.OLE_print.Object.PortOpen = True
end if
end if