前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >delphi开发SP-POS802串口打印机动态库

delphi开发SP-POS802串口打印机动态库

作者头像
Vaccae
发布2019-07-24 11:04:33
9060
发布2019-07-24 11:04:33
举报
文章被收录于专栏:微卡智享

简介

因为某个项目的POS机用了SP-POS802的打印机,针对这个打印机要开发一个调用打印机的动态库。收到了厂家发来的打印机指令和动态库的开发要求。做了这个,好久没用Delphi开发东西了,正好借次再熟悉一下。

动态库的文档

动态库的文件

需要加入的接口

  1. 初始化打印机
  2. 打印字符串
  3. 全部切纸
  4. 部分切纸
  5. 走纸
  6. 开钱箱
  7. 关闭打印机
  8. 打开关闭黑标功能

开发

用delphi7新建一个Library起名为OtherPrinter

新建一个窗体文件Comform,在窗体中增加一个TComPort控件,不用写任何代码。

然后我们现新建一个单元文件OthPrint,这个单元文件处理写所有入口函数。


初始化打印机

调用接口的文档里要求函数名为Other_InitPrinter,所以一会儿我们写代码时初始化打印机的函数名为这个。

然后再看一下厂家的指令集里初始化打印机的方法

可以看到红框上面就是我们初始化打印机的指令集。Hex是十六进制的字符,Decimal是十进制的字符。我们的初始化代码如下:

初始化的函数里面我们对串口进行打开,包括端口号设置,波特率,停止位,数据位,然后再打开串口发送初始化的指令

ComPort1.WriteStr(chr($1B)+chr($40));


打印字符串

接口文档里

打印的字符串就是往串口发送数据即可,这个里面用到的厂家指令集就是设置字体标号和颜色标号,因为这个厂家指令集里没有颜色的指令,所以我们只关注字体标号就可以了

厂家指令集

指令集里面标注的也是很清楚了,只不过上在有个标号的大小说明,最大的是8,如果超过8则忽略这条指令了。

我的们代码如下:

frmComform.ComPort1.WriteStr(chr($1D)+chr($21)+chr(SizeType));


全切纸和部分切纸

厂家指令集中全切纸和部分切纸都是一个指令集,所以我们也写在一起了。

接口说明

厂家指令集

代码如下:

全切纸

frmComForm.ComPort1.WriteStr(chr($1D)+chr($56)+chr(0));

部分切纸

frmComForm.ComPort1.WriteStr(chr($1D)+chr($56)+chr(1));


走纸

接口说明

厂家指令集

代码如下:

frmComForm.ComPort1.WriteStr(chr($1B)+chr($64)+chr(Count));


开钱箱

接口说明

厂家指令集

代码如下:

//组合开钱箱指令,开启钱箱 sCmd := Chr($1B) + Chr($70) + Chr(m) + Chr(t1) + Chr(t2); frmComForm.ComPort1.WriteStr(sCmd);


关闭打印机

接口说明

关闭打印机厂家没有指令,实际上我们也直接用关闭串口的方式即可。

代码如下:


打开/关闭黑标功能

接口说明

查了一下厂家指令集里没有开关黑标功能,在说明书上看到是用FEED的键进行黑标的开关。所以我们的代码什么也不用写了。


这样写完了,我们通过Ctrl+F9进行编译,生成的DLL文件就可以看到了


-END-

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档