串口打印机
# Smart之串口打印机
# 1. 说明
范例采用串口通讯协议,控制串口打印机进行打印输出。通过向串口输入特定打印指令的字符,打印机对指令进行解析并打印出所需的内容。目前市面上的一些带有串口的标签打印机使用的是TSPL(TSC标签打印机的串口打印编程语言),通过串口输入的内容需按照TSPL的规范进行。
范例使用到的是佳博GP-3120TN标签打印机,该打印机带有一个串口接口,可用于接收TSPL指令进行打印操作,其外观如下图所示。

在使用前,先将USB串口转接线的串口端与标签打印机的串口端连接,再将USB端与PC进行连接。打印机通电并打开打印机的电源开关,待PC端确认设备连接后,在Windows的设备管理器中查看连接的串口端口号,该端口号会在接下来的范例中使用到。
通过范例学习,可以掌握TComport组件的基本属性,以及通过串口进行打印操作的方法。
# 2. 设计明细
开启Smart智慧控制平台,分别加入下插图之控件。或者通过点击菜单栏[文件]-[打开项目]选择范例项目文件来打开该范例。

①:TImage组件,控件名称为Image1。
②:TLabel组件,控件名称为Label9。
③:TImage组件,控件名称为Image2。
④:TMemo组件,控件名称为Memo1。
⑤:TComPort组件,控件名称为ComPort1。
⑥:TLabel组件,控件名称为Label5。
⑦:TLabel组件,控件名称为Label1。
⑧:TSwitchButton组件,控件名称为SwitchButton1。
⑨:TSwitchButton组件,控件名称为SwitchButton2。
Main窗体属性设置
Caption:设置窗体标题=串口打印机。ClientHeight:设置窗体显示区的高度=480。ClientWidth:设置窗体显示区的宽度=384。
①Image1属性设置
Align:设定对齐方式=alClient。Stretch:设定图像拉伸=True。PicTure:设置图像。点击Picture属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。

②Label9属性设置
AutoSize:设置控件大小与字体自适应=True。Caption:设置显示标签的内容=串口打印机。Font:设置字体,点击该属性右侧[...]按钮或者双击该属性打开字体设置界面,设置内容如下。

③Image2属性设置
Height:设置控件高度=245。Width:设置控件宽度=289。PicTure:设置图像。点击Picture属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。

④Memo1属性设置
Height:设置控件高度=181。Width:设置控件宽度=288。Lines:设置Memo中显示的打印格式的内容。其中的内容是按照TSPL的规范进行编写的,范例内容如下:
SIZE 40 mm,60 mm CLS TEXT 50,30,"TSS24.BF2",0,1,1,"商品清单" TEXT 50,45,"4",0,1,1,"--------------------" TEXT 50,60,"TSS24.BF2",0,1,1,"西红柿 1 15 15 " TEXT 50,90,"TSS24.BF2",0,1,1,"娃哈哈 1 15 15 " TEXT 50,120,"TSS24.BF2",0,1,1,"牛肉干 1 15 15 " TEXT 50,150,"TSS24.BF2",0,1,1,"红牛 1 15 15 " TEXT 50,170,"4",0,1,1,"--------------------" TEXT 50,190,"TSS24.BF2",0,1,1,"合计 1 15 15 " QRCODE 50,210,L,4,A,0,"www.isoface.cn" PRINT 1 EOP1
2
3
4
5
6
7
8
9
10
11
12
13Visible:设置控件是否可见=False。
⑤ComPort属性设置
BaudRate:通信的连接速率,设置为br9600。DataBits:通信的数据位数。设置为db8。DeviceName:设备的端口号,设置为打印机串口连接的端口号。
⑥Label5属性设置
AutoSize:设置控件大小与字体自适应=True。Caption:设置显示标签的内容=显示打印格式。Font:设置字体,点击该属性右侧[...]按钮或者双击该属性打开字体设置界面,设置内容如下。

⑦Label1属性设置
AutoSize:设置控件大小与字体自适应=True。Caption:设置显示标签的内容=打开串口。Font:设置字体,点击该属性右侧[...]按钮或者双击该属性打开字体设置界面,设置内容如下。

⑧SwitchButton1属性设置
Height:设置控件高度=38。Width:设置控件宽度=40。SwitchOff:设置IsChecked=False时显示的图片。点击属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
SwitchOn:设置IsChecked=True时显示的图片。点击属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
⑨SwitchButton2属性设置
Height:设置控件高度=38。Width:设置控件宽度=40。SwitchOff:设置IsChecked=False时显示的图片。点击属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
SwitchOn:设置IsChecked=True时显示的图片。点击属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
# 3. 程序设计
# 3.1. 程序初始设置
该程序无初始设置。
# 3.2. 事件设置
- ③Image2-OnClick事件
点击打印机的图像时,串口处于连接状态,则向串口发送打印机指令,打印机打印出对应的内容。
procedure TMyHandler.Image2Click;
//点击打印
begin
IOT.ComWriteAnsiLine(FThis.ComPort1,FThis.Memo1.Lines.Text);
end;
2
3
4
5
- ⑧SwitchButton1-OnSwitch事件
显示打印格式的开关按钮,点击以切换是否显示打印格式内容的文本框。
procedure TMyHandler.SwitchButton1Switch;
//是否显示打印格式
begin
FThis.Memo1.Visible := FThis.SwitchButton1.IsChecked;
end;
2
3
4
5
- ⑨SwitchButton2-OnSwitch事件
打开关闭串口的开关按钮,点击以打开或者关闭串口。
procedure TMyHandler.SwitchButton2Switch;
//打开或者关闭串口
begin
if FThis.SwitchButton2.IsChecked then
begin
iot.ComOpen(FThis.ComPort1);
end
else
begin
iot.ComClose(FThis.ComPort1);
end;
end;
2
3
4
5
6
7
8
9
10
11
12
# 4. 运行结果
通过工具栏保存,将程序保存为 sdb 项目文件。

使用鼠标点击工具栏运行(Run),测试运行结果。程序运行时,点击打开串口右侧的开关以打开串口,显示打印格式右侧的开关点击可切换显示或者关闭打印格式文本框的显示。在串口连接的情况下,点击打印机图像,打印机会打印出对应标签中的内容。
