跳转至

泰凌B91电子货架标签使用指南


电子货架标签(ESL)介绍

电子货架标签(ESL)是基于蓝牙Core v5.4规范的蓝牙配置文件。规范中定义了两种角色,即接入点(Access Point)和电子货架标签(Electronic Shelf Label, ESL)。每个ESL设备可以关联到一个接入点设备。接入点可以配置多个ESL设备。

ESL拓扑结构

接入点配置的ESL设备具有唯一的ESL地址。ESL地址由GROUP ID和ESL ID组成。

GROUP ID映射到特定的周期性广播子事件。周期性广播间隔内的子事件数量决定了组的数量。例如,有4个子事件,则有4个组(0, 1, 2, 3):

周期性广播间隙中的四个子事件

接入点可以通过以下方式与ESL设备通信:

  • GATT, 通过写入/读取ESL服务属性并更新ESL设备上的图像(称为更新状态)
  • PAwR, 通过在子事件中发送ESL有效载荷并接收响应(称为同步状态)

由于可能有数百个ESL设备,同步状态允许控制的设备数量多于更新状态。如前所述,每个子事件映射到一个组ID。以下是这种映射的示例:

每个子事件都携带对单组有效的数据

ESL设备可以在响应时隙内响应子事件ESL有效载荷中包含的命令(响应时隙的时间可以从接入点接收的PAST数据包中获得)。

子事件中的响应时隙

单个ESL有效载荷可能包含多个命令,每个命令可以发送给不同的ESL设备。它们在分配的响应时隙中发送响应。为了保护在PAwR事件中传输的数据,接入点使用AP密钥对发送给ESL设备的消息进行加密。每个ESL设备都有自己的密钥来加密响应。

硬件准备

ESL板

ESL电路板

ESL 电路板由显示屏和电路板组成。如下图所示,连接烧录工具对电路板进行烧录:

ELS板和烧录工具的连接

使用 BDT 工具将 ESL 二进制文件 (eslp_esl_demo.bin) 写入电路板。重置后显示屏将刷新。

Access Point板(接入点的板子)

接入点电路板

接入点是利用USB CDC与主机通信的B91 dongle设备。将Telink Flash工具连接到开发板并下载固件(eslp_ap_demo.bin)。写入镜像后,将dongle插入主机的USB端口。它应在Windows系统中显示为COM\设备,在Linux系统中显示为/dev/ttyACM\

运行演示程序

工具内容

目录ap_tool包含可以与接入点设备通信的Python脚本。

ap_tool工具目录

本指南涵盖start_ap_client.pyw和image_convert_gui.pyw的使用。两个脚本都可以从命令行运行(python start_ap_client.py)或作为窗口化的Python应用程序运行。从命令行运行时,会打印出额外的日志(主机和接入点之间的通信)。这些工具需要安装以下软件包:pyserial-asyncio、Pillow(Python图像库)和tkinter。最低要求的Python版本是3.12。

开始接入点应用

Dongle连接到主机的时候运行start_ap_client.pyw,从列表中选择端口:

Windows下选择端口

Linux下选择端口

然后按下"开始"按钮。它将打开如下新窗口:

接入点客户端主页

也可以在不选择UART/USB CDC端口的情况下运行GUI图形用户界面应用程序--可以将其作为参数传递给ap_client_gui.py应用程序。它将在控制台中打印日志,因此对调试非常有用。

从控制台开始ap_client_gui.py

配置面板Configuration

配置面板

扫描按钮Scan

按下"扫描Scan"按钮后,设备开始发现附近的ESL设备,如下图所示:

按下“扫描”按钮后的扫描结果

清除按钮Clear

"清除Clear"按钮可停止扫描并清除扫描结果队列。

配置按钮Configure

如果扫描结果队列不为空,则按下"配置"按钮后将弹出新窗口。该窗口允许从列表中选择设备并分配组ID(0 - 1)和ESL ID(1 - 8)。

配置设备窗口

选择设备、组ID和ESL ID后,用户可以按"完成"按钮。如果配置成功完成,设备将出现在组面板中:

设备已成功配置并分配到0组

如果出现以下情况,配置将失败:

  • ESL设备无法连接
  • 指定的组ID和ESL ID已被使用

保存配置和加载配置

保存配置

配置文件(.json格式)可简化ESL设备的搜索和设置。要存储当前配置,请按下"保存配置"按钮并选择文件路径。它将以下列格式写入数据:

配置文件格式

当用户想用已保存的配置来关联设备,可以使用“加载配置”按钮。

操作面板Operation

操作面板允许与组内的ESL设备通信。

操作面板

设置标签Setup labels

Setup labels设置标签可以设置ESL设备上显示的标签内容。

设置标签窗口

左栏的字段描述:

  • 复选框指示是否应用标签设置(是否选中)
  • ESL ID
  • 输入产品名称(名称将自动转换为大写字母)
  • 输入产品描述(描述将自动转换为大写字母)
  • 输入币种(应使用人民币CNY、美元USD、欧元EUR等货币代码。人民币CNY、欧元EUR、美元USD、英镑GBP将显示货币符号,其他货币将显示为货币代码)。
  • 输入产品主价格和次价格
  • 输入单位(单位有g, kg, l, piece, 现在支持的字母有:b,c,e,g,i,k,l,n,p,u)。
  • 复选框指示标签是否显示条形码(随机生成)
  • 复选框指示标签是否显示条形码编号(随机生成)
  • 复选框指示标签是否显示图标
  • 图标,选中 "图标显示"复选框时有效

注意

  • 现在仅支持拉丁字母。

按下"完成"按钮后,数值将存储在应用程序中。请注意,ELS设备并不支持所有的字母,例如,支持的显示在单位里的小写字母有c, e, g, i, k, l, n, p, u.

应用标签Apply labels

按下此按钮后,设置标签窗口中设置的值将通过PawR Vendor数据包发送并应用于ESL 端。例如以下标签设置:

标签设置示例

按下"应用标签"按钮后,接入点将发送PawR命令。将显示ESL ID 1:

标签示例

发送图像Send image

此功能可将图像(或多幅图像)发送到ESL设备。由于图像大小问题,需要ACL连接。

发送图像窗口

选择文件(每个文件大小为4736字节,不允许其他值)后,用户可以选择ESL设备来接收图像和图像所在的图像ID。此外,"显示"复选框将要求 ESL 显示给定的图像。

该命令向组内所有设备发送广播信息,使LED灯(绿色和红色)闪烁三次。该命令通过PAwR发送。

显示图像Display image

按下此按钮后,用户可从组中选择ESL设备,并设置应在其上显示的图像索引:

显示图像窗口

解除关联Unassociate

该命令允许从组中删除ESL设备。设备可配置为其他组员,或保持未关联状态。

具体实现Implementation details

上述命令在接入点和ESL之间使用不同的通信方式。以下是在执行过程中使用的功能列表:

Table: 实现过程中使用的功能列表


No. 命令 功能/特性 ------ ---------------------- --------------------------------------------------------- 1 Apply labels PawR vendor命令发送给每个选定的ESL设备

2 Send image 连接建立(GAP周期性广播连接过程),通过自定义L2CAP CoC进行图像传输,通过ESL控制点特性发送ESL命令。

3 Blink LEDs PAwR命令(LED控制)使用广播地址

4 Display image PAwR命令(显示图像)使用选定的ESL ID

5 Unassociate 连接建立(GAP周期性广播连接过程)并通过ESL控制点特性发送ESL命令。


image_convert_gui.pyw工具

图像转换工具

该工具可将图像文件(如.png或.jpeg)转换为ESL设备可读取的格式。它接受标签(宽296px / 高128px)和图标(宽48px / 高48px)的格式。

加载文件按钮Load File

该按钮允许选择要转换的文件。它会打开选择文件窗口。选择文件后,其路径将显示在主窗口中:

输入选择的文件

另存为按钮Save as

按此按钮可选择存储新图像的文件路径。也可以创建新文件。新文件路径也将出现在主窗口中。

另存为窗口

转换按钮Convert

按下此按钮后,输入文件将转换为新格式并写入输出文件。

转换图像 – 成功状态

如果出现分辨率错误、文件路径不存在等问题,则会显示在状态标签("转换 "按钮下方)中,即:

图像转换 – 文件不存在

图像转换 – 错误输入图像尺寸