RS232串口打印机
# TaskRunner 自定程序 - RS232串口打印机
# 1. 说明
- 任务运行器 TaskRunner 通过自定程序,以串口通讯的方式向串口打印机写入打印指令,实现打印的功能。
- 市面上的一些带有串口的标签打印机使用的是TSPL(TSC标签打印机的串口打印编程语言),通过串口输入的内容需按照TSPL的规范进行。
- 范例使用到的是佳博GP-3120TN标签打印机,该打印机带有一个串口接口,可用于接收TSPL指令进行打印操作,其外观如下图所示。

- 在使用前,先将USB串口转接线的串口端与标签打印机的串口端连接,再将USB端与PC进行连接。打印机通电并打开打印机的电源开关,待PC端确认设备连接后,在Windows的设备管理器中查看连接的串口端口号,此端口号会在接下来的范例中使用到。
# 2. 设计程序
TaskRunner 的初始示例已包含 RS232串口打印机
自定程序。下面介绍创建自定程序的流程。
- 点击
自定程序
选项卡,在自定程序界面中点击新建
按钮,打开新建程序界面。 - 在新建程序界面,填写要设计的自定程序的基本信息。如下图所示。填写完成点击
保存
按钮。
- 返回自定程序列表界面,选择刚才创建的
JS014
自定程序,点击菜单栏中的设计
按钮,打开程序设计器界面。 - 在程序设计器界面中输入自定程序代码,代码示例如下。完成后,点击
保存
按钮。
{
//定义变量
var s = new TStringList();
var c = new TComPort(nil);
var p;
var COM;
COM = iif(UgParams.Values["device"] == "","COM3",UgParams.Values["device"]);
try
{
//外部传入打印的数据
p = UGParams.Values["data"];
//打印资料
TStringList(s).Add("SIZE 40 mm,40 mm");
TStringList(s).Add("CLS");
TStringList(s).Add("TEXT 50,30,\"TSS24.BF2\",0,1,1,\"ITEMS \"");
TStringList(s).Add("TEXT 50,45,\"4\",0,1,1,\"-------------------------------\"");
TStringList(s).Add("TEXT 50,70,\"TSS24.BF2\",0,1,1,\"NOODLES 1 15 15 \"");
TStringList(s).Add("TEXT 50,100,\"TSS24.BF2\",0,1,1,\"POTATO 1 15 15 \"");
TStringList(s).Add("TEXT 50,130,\"TSS24.BF2\",0,1,1,\"KNIFE 1 15 15 \"");
TStringList(s).Add("TEXT 50,160,\"TSS24.BF2\",0,1,1,\"CHICKENS 1 15 15 \"");
TStringList(s).Add("TEXT 50,175,\"4\",0,1,1,\"------------------------------\"");
TStringList(s).Add("TEXT 50,200,\"TSS24.BF2\",0,1,1,\"SUM 4 60 60 \"");
TStringList(s).Add("QRCODE 50,230,L,4,A,0,\"www.isoface.cn \"");
TStringList(s).Add("PRINT 1");
TStringList(s).Add("EOP");
//定义串口
TComPort(C).BaudRate = br9600;
TComPort(C).DeviceName = COM;
TComPort(C).DataBits = db8;
TComPort(C).StopBits = sb1;
TComPort(C).Open;
//判断串口是否被激活
if (TComPort(C).Active)
{
//如果外部传入打印数据为空,则打印默认内容
if (p == "")
TComPort(C).WriteAnsiLine(s.Text)
else
TComPort(C).WriteAnsiLine(p);
}
}
//释放对象
finally
{
c.free;
s.free;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

- 如需要测试效果,可在程序设计器界面中点击
运行
按钮进行测试。确认第 7 行的串口端口号是否一致。运行后可执行打印操作。
程序中定义的参数说明如下:
名称 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
device | 设备使用的端口号 | 是 | COM3 |
# 3. 调用执行
设计完成的自定程序可使用以下方式来调用执行。
# 3.1. RestAPI
使用浏览器或RestAPI 客户端,访问以下地址,执行自定程序调用。请将 {ip}
修改为运行 TaskRunner 主机的IP地址,{port}
修改为 TaskRunner WebSocket 服务端监听的地址。
http://{ip}:{port}?restapi=script&taskname=JS014
1
如需要自定义参数,参照以下方式执行。其中将 {device}
替换为设备的端口编号。
http://{ip}:{port}?restapi=script&taskname=JS014&device={device}
1
# 3.2. WebSocket
使用WebSocket客户端,连接至 TaskRunner 中的 WebSocket 服务端。向 WebSocket 服务端发送以下文本实现自定程序的调用。
{"action":"script","taskname":"JS014"}
1
如需要自定义参数,参照以下方式执行。其中将 {device}
替换为设备的端口编号。
{"action":"script","taskname":"JS014","params":[{"name":"device","value":"{device}"}]}
1
# 3.3. MQTT
使用 MQTT 客户端,连接至 TaskRunner 连接的 MQTT 服务器。MQTT 客户端向 TaskRunner 订阅的主题发送以下文本实现自定程序的调用。
{"action":"script","taskname":"JS014"}
1
如需要自定义参数,参照以下方式执行。其中将 {device}
替换为设备的端口编号。
{"action":"script","taskname":"JS014","params":[{"name":"device","value":"{device}"}]}
1