网站首页 | 中文 | English

16触发器工具 TriggerTool 使用说明

独立于设计器的自动打印工具:监听事件(文件 / 定时 / 串口 / 手动 / 网络HTTP / 数据库)→ 满足条件 → 加载 .iba 模板并打印。

16.1 基本概念

触发器 = 触发源(何时唤醒) + 触发条件(是否放行) + 动作(触发后做什么)

概念说明
触发源什么时候触发:文件监控、定时器、串口数据、手动、网络HTTP、数据库轮询
触发条件可选表达式,成立才执行动作;不填 = 直接执行
动作打印指定 .iba 模板(可注入数据、可调打印机 / 份数)

16.2 界面布局

16.3 文件监控(最常用)

  1. 「+ 添加触发器」,类型选 文件监控
  2. 监控目录:填写或浏览要监听的文件夹,如 D:\Triggers
  3. 文件过滤*.txt 只监听 txt;*.csv 只监听 csv;*.* 监听全部
  4. 触发动作:选择 .iba 模板、打印机、打印模式(GDI / ZPL)、份数
  5. 打印成功后删除触发文件(可选):勾选后打印成功即删除源文件,避免重复触发 / 文件堆积;打印失败会保留文件以便重试
  6. ▶ 启动
  7. 向目录中放入匹配文件 → 自动打印

关于重复触发:一次放入文件,系统可能产生"新建 + 多次修改"多个事件。工具已内置去重(同一文件在 2 秒内只触发一次),所以一份文件只打一次。若程序写文件耗时超过 2 秒可能再次触发,可勾选"删除触发文件"进一步避免。

16.4 定时器

  1. 类型选 定时器
  2. 间隔(ms):如 5000 = 每 5 秒触发一次;60000 = 每分钟
  3. 配置模板 / 打印机后启动,到点自动打印

16.5 手动

  1. 类型选 手动
  2. 配置模板 / 打印机后,点「测试触发」立即执行一次(也用于外部调用 ManualTrigger(Id)

16.6 串口

  1. 类型选 串口
  2. 串口号:自动列出电脑所有串口(可刷新);波特率:如 9600
  3. 串口每收到一行数据触发一次;数据字段见下方"触发条件变量"

16.7 网络HTTP触发

  1. 类型选 网络HTTP
  2. 端口(默认 8700)、路径(默认 trigger
  3. 配置区会自动显示对方系统可调用的 URL 地址(本机回环 + 局域网 IP),示例带参数
  4. 对方系统访问 http://IP:端口/路径 即触发,支持三种内容格式,多字段自动成为数据字段:
    • GET 查询参数http://IP:8700/trigger?批次=LOT1&数量=500
    • POST 表单Content-Type: application/x-www-form-urlencoded,内容 批次=LOT1&数量=500
    • POST JSONContent-Type: application/json,内容 {"批次":"LOT1","数量":500,"明细":{"客户":"ACME"}}
      • 嵌套对象用点号展开成字段:明细.客户 = ACME;数组保留原始 JSON 文本(字段 JsonArray
    • 固定内置字段:EventType=NetworkUrlBody(原始 body)
  5. Token(可选):填了则对方请求必须携带凭证,否则返回 401 且不触发
    • 传法任选其一:?token=值 参数 / X-Api-Token: 值 头 / Authorization: Bearer 值
  6. 数据字段 = 请求参数名,用自定义字段名映射到模板变量

16.8 网络HTTP触发 — 测试方法(POSTMAN / Winsock 调试器)

返回值速查200 OK = 接收并触发;401 = Token 不对;404 = 路径与配置不一致。

方法一:POSTMAN(推荐,格式全自动)

  1. GET:方法选 GET,URL 填 http://127.0.0.1:8700/trigger,点 Paramsorder=abcbatch=123,点 Send
  2. POST 表单:方法 POSTBodyx-www-form-urlencoded,填 order=abcbatch=123,Send
  3. POST JSON:Body → raw → 类型选 JSON,内容如 {"order":"abc","batch":123},Send
  4. Token:GET 在 Params 加 token=值;或 Headers 加 X-Api-Token: 值
  5. 端口 / 路径以工具界面显示的那条 URL 为准(不一定是 8700)

方法二:Winsock / 网络调试助手(裸 TCP)

调试器是"裸 TCP"工具,只负责发字节,HTTP 格式要自己手写

GET /trigger?order=abc&batch=123 HTTP/1.1
Host: 127.0.0.1:8700
Connection: close

16.9 数据库触发(SQLite / MySQL / PostgreSQL / SQL Server / Oracle)

  1. 类型选 数据库,选数据库类型
    • SQLite → 选数据库文件(.db / .sqlite / .db3)
    • MySQL / PostgreSQL / SQL Server / Oracle → 填服务器、端口、数据库、用户名、密码
      • 端口默认值:MySQL 3306、PostgreSQL 5432、SQL Server 1433(可留空)、Oracle 1521
  2. 可点 测试连接 验证连接信息是否正确
  3. 查询SQLSELECT 返回待处理行,如 SELECT * FROM print_queue
  4. 轮询间隔(ms):默认 5000
  5. 处理后SQL(可选):每行触发后执行,{列名} 引用行值,如 DELETE FROM print_queue WHERE id={id}
  6. 每行触发一次;行各列成为数据字段(列名 → 用自定义字段名映射)

16.10 触发条件(重点)

条件不填 = 任何触发事件都直接执行。填了 = 表达式成立才执行

可用变量

变量触发源含义示例
FileName文件文件名(不含路径)ok.txt
FilePath文件完整路径D:\Triggers\ok.txt
EventType文件事件类型Created(新建) Changed(修改)
TriggerTime定时触发时间2026-08-03 12:00:00
Data串口收到的一行数据M6x20
PortName串口串口号COM1
Source手动触发来源UI测试

语法

常用示例

FileName == "ok.txt"                         // 只认 ok.txt
FileName.EndsWith("_print.csv")              // 以 _print.csv 结尾
EventType == "Created"                       // 只在"新建"时触发(忽略修改)
FileName.Contains("urgent") && EventType == "Created"
!FileName.StartsWith("temp")                 // 排除 temp 开头
Data == "DONE"                               // 串口收到 DONE 才触发

16.11 数据映射(注入模板变量)

把触发数据填入模板变量,使标签内容随数据变化。

  1. 分隔符:自定义输入分隔符,把文件内容拆成多段
    • 常见:逗号 ,、斜杠 /、分号 ;、制表符 \t、回车换行 \r\n
    • 多个分隔符| 分隔,如 ,|\r\n = 逗号或回车换行都算分隔
    • 留空 = 整个文件 = 1 个值
    • 预设按钮可快速填入:逗号 / 斜杠 / 分号 / Tab / 换行 / 逗号或换行
  2. 触发数据字段下拉选择:
    • 字段1 / 字段2 … → 有文件时 = 拆分后的第 1 / 2 / … 段;网络 / 数据库触发 = 收到的第 1 / 2 / … 个字段(按接收顺序)
    • FileContent → 整个文件文本
    • FilePath / FileName / EventType / TriggerTime → 事件数据
    • Data → 串口收到的数据
    • 网络 / 数据库的多字段也可用自定义字段名直接按名映射(更直观)
  3. 模板变量:填变量名(不含花括号),如模板里写 {Batch} 就填 Batch
  4. 「+ 添加映射」
  5. 触发时,模板中的 {变量} 会被对应数据替换

单字段示例

文件内容:LOT20260803,映射 FileContent → 批次 → 模板 {批次} = LOT20260803

多字段示例(CSV)

文件内容:LOT20260803,500,PO-2026-001

字段1 → 批次
字段2 → 数量
字段3 → 单号

多字段示例(每行一个值)

文件内容:

LOT20260803
500
PO-2026-001

16.12 配置持久化

16.13 打印模式

模式适用需要配置
驱动打印Windows 驱动打印机(普通激光 / 喷墨),跨打印机一致打印机名
ZPL 打印Zebra 兼容条码打印机,经 Windows 驱动发送原始 ZPL打印机名(需装好驱动)
免驱ZPL绕过驱动,直接 TCP 发 ZPL 到打印机(Zebra 默认 9100)打印机 IP + 端口(默认 9100)

16.14 快速测试方法

  1. 建一个简单模板(含变量,如 {FileName}
  2. 加文件监控触发器,目录指向一个空文件夹,过滤 *.txt
  3. 点「启动」
  4. 用记事本新建一个 ok.txt 放进目录
  5. 看底部日志:应出现"已触发 → 加载模板 → 注入变量 → 打印完成"
  6. 若不想真打印,可先不配打印机,观察日志中触发与模板加载是否正确
SDK 嵌入 目录 触发器工具 ›