首页 解决方案 Smart Display UART 协定介绍

Smart Display UART 协定介绍

October 18,2024

介紹

Smart Display UART 协议是由 WINSTAR 开发的专有通信协议,用于主机控制器通过 UART 接口与 WINSTAR Smart Display 进行通信和控制。结合 WINSTAR GUI Builder,可构建从用户界面设计到设备通信与控制的一体化 HMI 开发流程。

通过 GUI Builder,开发人员可使用多种 Widget 创建 HMI 界面,包括基础的 Button、Text,以及 Gauge、Keypad 等,满足不同应用需求。可视化的开发方式不仅简化了 UI 设计,也为针对特定应用需求的界面开发提供了更高的灵活性。

完成用户界面设计后,主机控制器可通过 UART 与 Smart Display 进行通信,并利用 WINSTAR 专有通信协议及相关指令实现设备控制。UI 设计与 UART 通信的结合,有助于简化 HMI 开发与系统集成。

WINSTAR 持续优化 GUI Builder,为 Smart Display 应用提供更高效、更灵活的开发体验。

Smart Display GUI Builder – UART 项目设置说明

Smart Display GUI Builder 提供直观、易用的操作界面,帮助开发人员快速创建 HMI 项目。只需通过 GUI Builder 将各种 Widget 拖放至页面,即可在 Smart Display 上显示相应对象并进行交互。操作简单且功能灵活,可满足不同应用需求,提高开发效率。

以下将介绍如何使用 Smart Display GUI Builder 创建 UART 项目,以及如何通过 UART 控制对象。

创建 UART 协议项目

创建 UART 项目时,请输入项目名称,根据需求选择 Smart Display 设备类型,并在 Protocol 选项中选择 "SmartDisplay protocol (UART)"。

在主页面添加 Gauge 和 Horizontal Slider Widget

添加 Widget 后,每个对象都有唯一的 Index ID,同时具有对应的 Page Index 和 Object ID 设置。通过这两项设置,Host 可使用 UART 指令控制相应对象。

模拟 UART 与 Widget 之间的交互

点击 "Simulator With GUI" 图标启动仿真器。

启动仿真器后,可拖动底部标记为 GAUGE_0 的滑块,模拟 Host 向 GAUGE_0 发送数据。观察仿真器中 Gauge 的变化,并可在右侧的 Message Log 中查看 UART 指令记录。此外,还可操作仿真器中的 Horizontal Slider,模拟从 Device 端发送数据。

更新 Smart Display 设备设置

通过仿真器验证功能正常后,即可连接设备,并将项目设置上传至 Smart Display

等待上传及更新完成。

验证 Device 与 Widget 之间的交互

将项目上传至设备后,可进一步在 Smart Display 上验证功能。使用 GUI Builder 连接设备,点击 "Test Device",即可测试 Host 与 Device 之间的交互。

Test Device 窗口

通过该测试界面,可模拟 Host 修改对象数值。拖动底部标记为 GAUGE_0 的滑块,模拟 Host 发送 Object 0 的数值,并观察设备上 Gauge 的变化。同时,可在底部的 Message Log 中查看 Send command 和 Response command。此外,还可操作设备上的 Horizontal Slider,确认由 Device 端发送的 Event command。

通过上述 Test Device 窗口,可模拟 Host 发送 UART 指令控制 Smart Display。观察 Smart Display 上的执行结果,并通过 Touch Panel 操作 Smart Display,以确认 Host 是否接收到相应的 Event command。

Smart Display GUI Builder – 自定义 Widget

当 Smart Display GUI Builder 中的默认 Widget 无法满足设计需求时,可通过替换相应图片来自定义 Widget 图标,实现符合应用需求的界面效果。对于简单的按钮或切换按钮,只需更换 On/Off 图片即可完成自定义;对于较复杂的 Widget,除替换图片外,还可能需要调整相关参数,以确保 Widget 正确显示。

自定义 Gauge 说明与示例

通过更换图片并调整相应的 Gauge 参数,即可创建自定义 Gauge。

多语言文本

Smart Display 的 Text Widget 支持 Unicode,可用于显示多种语言的文本。请按照以下步骤设置不同语言所需的文本。

1. 添加 Custom Font,选择所需的字体和字号,并设置需要显示的 Unicode 字符范围(可参考 Unicode Character Blocks 确认对应的 Unicode 范围)。如果所需字符范围较大,例如中文字符,导致 Flash 空间不足,可在 Custom Characters 中仅添加实际需要使用的字符,以减少字体所需的存储空间。

2. 设置 Text Widget 的字体:选择需要修改字体设置的 Text Widget。

3. 添加 Text Widget,并通过仿真器确认文本是否正确显示。

自定义 UART 指令介绍

接下来将介绍 UART 指令协议。Host 可通过这些指令控制 Smart Display,包括切换页面、调节背光亮度以及启动蜂鸣器等功能。

下列为预设的 UART 设定:

Default baud rate: 115200 (可透过 GUI Builder 修改)
Parity Bit: None
Data Bit: 8
Stop Bit: 1

UART 主要的Data format 格式如下:

Header Byte(1 Byte) Length(1 Byte) Payload(N Byte) CRC(2 Byte)
Command Header Value: 4 + Payload length
Payload max size: 250
Payload data max size: 250 Modbus CRC16
(Calculate Modbus CRC16
https://www.modbustools.com/modbus_crc16.html)

UART protocol 主要有三大类Command: Send command, Response command 和 Event Command 依序格式如下:

(1) Send Command 格式

Send command 主要用于主机端向 SmartDisplay 端发送指令。

Header Byte(1 Byte) Length(1 Byte) Payload(N byte) CRC(2 Byte)
Start with 0x53 (S) Value: 4 + Payload length
Payload max size: 250
Command code: 1 byte
Command parameter: 0 ~ N bytes
Modbus CRC16
 

(2) Response Command 格式

Response command 主要用于 SmartDisplay 端回复主机端 Send command 的结果。

Header Byte(1 Byte) Length(1 Byte) Payload(N byte) CRC(2 Byte)
Start with 0x52 (R) Value: 4 + Payload length
Payload max size: 250
Command Code: 1 byte
Error Code: 1 byte
Response Data: 0 ~ N bytes
Modbus CRC16
 

(3) Event Command

当 SmartDisplay 端需要主动报告数据时,会使用此命令,例如在按钮被触发时。

Header Byte(1 Byte) Length(1 Byte) Payload(N byte) CRC(2 Byte)
Start with 0x45 (E) Value: 4 + Payload length
Payload max size: 250
Event Command Code: 1 byte
Event Data: 0 ~ N bytes
Modbus CRC16

*有关详细的 Send Command 代码和 Event Command 代码,请参考 Smart Display UART 用户指南文件。

Send / Response Command 协议说明与范例

以下将依序概述每个命令(Command)有效载荷(Payload)的数据格式和范例。

Set Object Value: 0x3

发送命令(Send Command)

Command Code 1 Byte 0x3
Parameter data 8 Byte uint16 PageIndex;
uint16 ObjectId;
int32 value;

回应命令(Response Command)

Command Code 1 Byte 0x3
Error Code 1 Byte 0: Success
1: Failed

范例: 设定 Object value

Set Object Buffer Data: 0x5

发送命令(Send Command)

Command Code 1 Byte 0x5
Parameter data N Byte uint16 PageIndex;
uint16 ObjectId;
uint8 [] data (max 100 bytes)
// Unicode String for Text
// Clock setting for Digital Clock

回应命令(Response Command)

Command Code 1 Byte 0x5
Error Code 1 Byte 0: Success
1: Failed

范例: 设定 Object Text: test

范例: 设定 Clock Widget 日期时间: 2024/09/01 04:05:06

Set Brightness: 0x6

发送命令(Send Command)

Command Code 1 Byte 0x6
Brightness 1 Byte Brightness value

回应命令(Response Command)

Command Code 1 Byte 0x6
Error Code 1 Byte 0: Success
1: Failed

范例: 设定亮度为 90

Set Buzzer: 0x7

发送命令(Send Command)

Command Code 1 Byte 0x7
Cycle 1 Byte Cycle value
High 1 Byte High value (Unit: 10 ms)
Low 1 Byte Low value (Unit: 10 ms)

回应命令(Response Command)

Command Code 1 Byte 0x7
Error Code 1 Byte 0: Success
1: Failed

范例: 发出声音: Cycle:1, High: 200 ms, Low: 0 ms

Set Page Index: 0x8

发送命令(Send Command)

Command Code 1 Byte 0x8
Page Index 1 Byte Page Index value

回应命令(Response Command)

Command Code 1 Byte 0x8
Error Code 1 Byte 0: Success
1: Failed

范例: 切换Page Index 为 1
切换Page 时, 需要先设定Device State 为ConfigMode, 之后在下换页命令, 结束换页命令后, 就再设定Device State Mode 为Display Mode, 即可完成换页的命令, 相关命令顺序如下:

Set Device State: 0x20

发送命令(Send Command)

Command Code 1 Byte 0x20
Device State 1 Byte 0: ConfigMode
1: DisplayMode

回应命令(Response Command)

Command Code 1 Byte 0x20
Error Code 1 Byte 0: Success
1: Failed

范例: 可参考切换Page 范例

Event Command protocol说明与范例

Page change event: 0x1

事件指令(Event Command)

Event Code 1 Byte 0x01
Parameter data 2 Byte Uint16 PageIndex

范例: SmartDisplay 切换 Page 1.

Object Text change event: 0x2

事件指令(Event Command)

Event Code 1 Byte 0x02
Parameter data N +2 Byte Uint16 ObjectId
N byte Unicode Text
 

范例: Keypad widget 送出文字 1234

Object Value change event: 0x3

事件指令(Event Command)

Event Code 1 Byte 0x03
Parameter data 6 Byte Uint16 ObjectId
int32 value

范例: Object value change event.

用户可通过 GUI Builder 拖放 Widget 进行用户界面设计,提供 WYSIWYG(所见即所得)的设计方式,使 UI 开发更加直观、高效。内置仿真器还可在实际使用显示屏之前预览界面并评估 UI 设计。

完成 UI 设计后,主机控制器可通过 UART 与 Smart Display 通信,并使用 WINSTAR 专有通信协议进行设备控制和数据交换。该开发流程将 UI 设计、仿真与设备通信相结合,有助于简化 HMI 开发与系统集成。

在购买 UART Smart Display 之前,您可先试用 GUI Builder 和内置仿真器,评估界面设计与功能是否满足实际应用需求。

申请下载 GUI Builder — 填写在线申请表后,即可获取下载链接。

对显示器解决方案有疑问?您想做的,由我们实现。 联络我们!

订阅

接收最新显示器技术知识与新品消息

联络我们

价格/规格书/一般查询

技术支持

联系我们询问技术内容

go top
联络我们
close

我们重视您的隐私

通过点击「允许所有 Cookie」,代表您同意在您的设备上存储 Cookie 以增强网站浏览体验、分析网站使用情况并协助我们的营销和网站效能优化工作。您可以在我们的隐私权政策中找到有关于此的更多信息。

我们重视您的隐私

Winstar 及部分第三方在 www.winstar.com.tw 上使用 cookies。关于 cookie 的种类、用途及相关第三方的详细信息,请参见下文及我们的《Cookie 政策》。请点击“允许全部”来同意我们使用 cookies,以确保您在我们网站上获得最佳体验。您也可以设置您的偏好或拒绝 cookies(必要的 cookies 除外)。

管理同意声明

永久启用
必要的 Cookie

这些 Cookie 是必不可少的,以便让您在浏览网站并使用其功能上有更好地体验,例如设置您的隐私偏好、登录或填写窗体。

分析 Cookie

这些也被称为「统计cookie」,用于收集您使用网站的信息,例如您访问了哪些页面以及点击了哪些连结。查看详细信息