Brady(Honeywell) 扫描枪OCR-Scanner-OCR-V2正式发布-让扫描枪眼睛看懂世界
扫描枪在产线上勤勤恳恳干了几十年,练就一身”哔一下就知道”的本领。但你要让它看看工件上的刻字?它只能一脸茫然:这题超纲了。 哈皮实验室正式发布 Scanner-...

扫码枪的条码解析规则,能不能像手机 App 一样”随时更新”?
答案是:能。客户不再需要厂家改固件、跑现场、反复调试——扫一个条码,新规则立刻生效。
客户技术负责人: 今天客户有个需求。扫描枪要支持自由定义各种正则表达式,来适配不同的条码数据处理;要具备表达式扩展性,可以自由添加、删除。
集成商老李: 这个怎么办?Honeywell EZConfig 配置扫描枪太复杂了,我也不可能坐在客户那里给他做各种配置。而且 EZConfig 那个”格式化配置”,根本没有客户要的”正则表达式”那么强大。
老李同事: 等等,正则表达式是什么?
老李: 一句话——就是一段”匹配规则”,告诉扫码枪”什么样的数据算合格””要提取哪一段内容”。比如
^[A-Z]{3}[0-9]{10}就是”3个大写字母+10位数字”。老李同事: 对了,我记得哈皮实验室有篇文章写的是 TTF 扫码枪”大脑”,扫码枪可以编程!找他们试试?
老李: 对!光哥,帮个忙,客户这个需求(……)可以做吗?之前看到你有一篇文章写的是 TTF 扫码枪大脑(《扫码枪装上”大脑”——Brady TotalFreedom 2.0/3.0 插件开发》),请哈皮帮个忙。
光哥: 好,简单,哈皮干活了。
……5 分钟后,一套完整方案出炉。
核心思路: 在 Honeywell TotalFreedom 2.0 (TTF2.0) 平台上,用自研的轻量正则引擎 + 规则管理器,让扫码枪的条码解析规则完全可配置——客户扫一个”规则条码”,就能添加/删除/查看解析规则,无需重新编译固件、无需厂家到场。
| 能力 | 说明 |
|---|---|
| 🧩 自由表达式 | 客户可随时添加/修改/删除解析规则 |
| ⚡ 自研正则引擎 | 独立开发的轻量正则算法库,零依赖 |
| 📁 规则持久化 | 规则存于扫描枪文件系统,断电不丢失 |
| 🔄 规则热加载 | 扫描规则条码后立即生效,无需重启 |
| 🔒 License 授权 | 一枪一码,CRC32 加密校验 |
1 | ┌─────────────────────────────────────────────────┐ |
匹配策略:
客户条码可能有多种格式,每种格式要提取不同的字段。
1 | 输入: 5|\MH-636898762559574717|O|DEL/YKB|D|D|03|R|S|F|D2 |
1 | 输入: 2E1234567890OATQ/RJADE03RSF44 |
1 | 输入: 201234567890OATQ/RJADE03RSF44 |
有些条码包含多个业务字段,需要一次性提取并拼接。
1 | 输入: 6|MH-636898762559574717|EFMPC0754351961|3SF575183621FK| |
1 | 输入: ABCDEFG12345678ABCDEFG |
💡 支持最多 7 个捕获组,可拼接、可重排、可跳过——比 EZConfig 的固定格式化灵活得多。
| 条码内容 | 操作 | 说明 |
|---|---|---|
RULA:H:<hex> |
➕ 添加规则 | Hex 编码防特殊字符丢失 |
RULD:<索引> |
🗑️ 删除规则 | 按行号删除(1-based) |
RULX |
💥 全部清空 | 清空所有规则 |
RULL |
📋 列出规则 | 输出当前规则列表 |
1 | 规则: ^6\|M([A-Z0-9-]*)\|E([A-Z0-9-]*)\|3([A-Z0-9-]*)\| |
客户把这条码(或 QR)打印出来,扫描一下 → 蜂鸣 OK → 规则生效。全程不需要厂家到场,不需要重新编译固件。
| 语法 | 含义 | 示例 |
|---|---|---|
^ |
字符串开头 | ^ABC 必须以 ABC 开头 |
$ |
字符串结尾 | XYZ$ 必须以 XYZ 结尾 |
. |
任意单个字符 | a.c 匹配 a+任意+c |
[abc] |
集合内任一字符 | [ABC] 匹配 A/B/C 之一 |
[a-z] |
范围 | [0-9] 匹配任意数字 |
[^abc] |
否定集合 | [^0-9] 匹配非数字 |
(...) |
捕获组(提取) | (\d{3}) 提取3位数字 |
\d \w \s |
数字/单词/空白 | \d+ 连续数字 |
| \. \\ |
转义特殊字符 | | 匹配管道符 |
| 语法 | 含义 | 示例 |
|---|---|---|
* |
0 或多次 | A* 任意个 A |
+ |
1 或多次 | A+ 至少 1 个 A |
? |
0 或 1 次 | A? 可选 A |
{n} |
精确 n 次 | [0-9]{10} 恰好 10 位数字 |
{n,} |
至少 n 次 | [0-9]{2,} 至少 2 位 |
{n,m} |
n 到 m 次 | [0-9]{2,4} 2 到 4 位 |
| 规则写法 | 输出行为 |
|---|---|
| 无捕获组 | 输出整段匹配内容 |
1 个捕获组 (x) |
输出组1内容 |
多个捕获组 (x)(y)(z) |
按顺序拼接所有组输出 |
不只是提取!表达式还能做字符替换和更多数据整形。
1 | 规则: ^ABC([0-9]+)DEF$ → 替换为: 编号-\1 |
\1 \2 引用捕获组内容编号- 前缀、-OK 后缀\2-\1 把两组顺序对调| 玩法 | 说明 | 状态 |
|---|---|---|
| 🔄 字符替换 | 提取后按模板重组 | 支持中 |
| 🔢 计算 | 数字加减、校验位计算(Luhn/CRC) | 可定制 |
| 🧹 数据清洗 | 去空格、去特殊字符、统一大小写 | 可定制 |
| 🎯 条件分支 | 按条码内容走不同输出逻辑 | 可定制 |
| 🔗 联动 | 蜂鸣/LED/GPIO 按结果触发 | 可定制 |
💡 核心:可以根据客户要求定制逻辑。 提取、替换、计算、清洗——扫描枪的条码处理能力,由客户的需求决定,而不是由 EZConfig 的配置项决定。
| # | 注意事项 | 说明 |
|---|---|---|
| 1 | 管道符必须转义 | | 而不是 |(管道符是特殊字符) |
| 2 | 反斜杠双写 | 数据中的 \ 在规则中写 \\ |
| 3 | 捕获组数量限制 | 最多 7 个捕获组 |
| 4 | 规则长度限制 | 单条 ≤ 128 字符,最多 64 条 |
| 5 | 匹配即停止 | 命中第一条规则后不再匹配后续 |
| 6 | 不匹配则透传 | 无规则命中时输出原始数据 |
| 7 | 纯 ASCII | 不支持中文/Unicode(条码场景均为 ASCII) |
| 8 | 不支持交替 | A|B 不支持,需拆成两条规则 |
| 9 | 规则顺序 | 先匹配的规则优先,新规则追加在末尾 |
| 10 | 修改需重载 | 添加/删除后立即生效(自动重载) |
| 对比项 | 传统 EZConfig | 本方案 |
|---|---|---|
| 表达式能力 | 固定格式化,弱 | 完整正则,强 |
| 规则更新 | 重新配置/刷固件 | 扫条码即生效 |
| 现场支持 | 需要人跑现场 | 远程发条码即可 |
| 多格式适配 | 配置项有限 | 无限规则,按需添加 |
| 开发门槛 | 无编程,但能力弱 | 我方提供工具,客户零门槛 |
你只需要准备:
剩下的交给哈皮实验室。
💬 如需 TTF 插件开发技术支持、技术合作,请通过哈皮实验室官网联系我们。
哈皮实验室 · 让设备调试简单到离谱
🌐 www.happylab.me
Previous

扫描枪在产线上勤勤恳恳干了几十年,练就一身”哔一下就知道”的本领。但你要让它看看工件上的刻字?它只能一脸茫然:这题超纲了。 哈皮实验室正式发布 Scanner-...
Next

一根 USB 线,浏览器接管一切。 告别驱动、告别命令行、告别环境配置。 👉 点击进入 AI-ADB-Web 在线工具 打开即用,无需注册,无需登录。 TIP ...