Smart Display UART 协定介绍
SmartDisplay UART通讯协议 (UART Protocol) 是由华凌光电开发的一种专属通信协议,旨在帮助客户轻松透过UART接口轻松控制其人机接口(HMI)画面。这个创新的协议结合了华凌光电用户友好的 GUI Builder,为客户提供了一个直观而强大的工具,帮助客户快速建立符合需求的图控对象。透过 GUI Builder 客户可以轻松设计各种 HMI 人机接口,从简单的按钮 (Button) 、文字 (Text) 到复杂的仪表 (Gauge) 和键盘 (Keypad),满足各种应用场景的需求。这不仅节省了客户的时间和成本,还使人机接口设计更加灵活和个性化,再透过华凌光电自定义 UART 协议指令,可以轻松与 Smart Display UART互动和控制。我们致力于提供最佳的客户体验,并持续改进我们的 GUI Builder,以确保它能满足客户不断演变的需求。无论您是专业设计师还是初学者,我们相信 Smart Display UART协议将成为您打造出色 HMI 人机接口的理想选择。让我们一同探索这个令人振奋的创新技术,为您的产品注入更多活力和灵感。
Smart Display GUI Builder – UART Project 设定说明
Smart Display GUI Builder 为您提供了一个直观且友好的操作环境,让您轻松创建属于自己的 HMI 项目,您只需要透过 GUI Builder 拖曳各种小工具 (Widget) 到页面上,在零代码的情况下您就可以轻松的在Smart Display 装置上显示图控对象并与之互动。操作简单、功能灵活,能满足您的各种需求,让您的工作更加高效率。
以下将介绍如何使用 Smart Display GUI Builder 建立UART项目项目,以及如何透过 UART 控制对象的关系。
■ 建立 UART 协议项目 (UART Protocol Project)
依据需求, 输入project 名称, 选择 SmartDisplay 机种, 于 protocol 选择 SmartDisplay protocol (UART), 即可建立UART project。
■ 于主画面新增一个仪表(Gauge)和水平滑杆小工具(Horizontal Slider Widget)
新增 Widget 后,每个对象都有唯一的索引 ID(Index ID),每个对象都有其页面索引(Page Index)和对象ID (Object ID)设定,透过了解这两个设定,主机端(Host)即可透过指令(Command)来控制此对象。
■ 模拟 UART 与 Widget 之间的互动
点选 icon: “Simulator With GUI” 启动仿真器
启动仿真器后,您可以拖曳下方标记为 GAUGE_0 的滑杆,来仿真主机发送 GAUGE_0 的数据, 请观察仿真器中仪表的变化,也可以从右侧的讯息记录(Message Log)查看UART 指令日志。 您还可以操作仿真器的水平滑杆(Horizontal Slider), 模拟从设备端(Device)送出数据。
■ 更新 Smart Display 装置设定
经由仿真器验证功能后,如果没问题后,就可以连接设备(Device)将项目(Project)设定上传到 Smart Display 设备。
等待上传并更新完毕。
■ 验证设备与小工具之间的互动
在将Project上传到设备后,您可以进一步验证 Smart Display 设备端功能。使用 GUI Builder 连接到设备(Device)端后, 点选 "Test Device", 即可测试主机与设备之间的互动。
■ 测试设备窗口
藉由此测试画面,您可仿真主机端修改对象的值。拖曳下方标示为GAUGE_0的滑杆,仿真主机端送出 Object 0 的值。观察设备上仪表的变化,您也可以从下方的讯息纪录看到, 发送指令(Send command)和响应指令(Response command)的变化。此外,也可以操作设备上的水平滑杆(Horizontal Slider)确认从设备端发送的事件指令(Event command)。
透过上述的测试设备窗口(Test Device Window),您可仿真主机端送出UART指令控制Smart Display。从Smart Display观察结果画面,并透过触控面板操作 Smart Display 来确认主机端接收到事件指令(Event command)信息。
SmartDisplay GUI Builder – 自定义小工具
当SmartDisplay的预设小工具(Widget)无法满足设计需求时,客户可自行设计自定义小工具(Widget)的图示。透过更新相对应的图片后,即可达到自定义的小工具画面。一般的按钮(Button)或切换按钮(Toggle Button),一般更换 On/Off 图片即可达到自定义的功能。然而,对于有些较复杂的小工具(Widget),除了更换图片,可能还需要进一步的参数设定,以确保Widget能正常显示效果。
■ 自定义仪表(Gauge)说明与范例
您可以依序更改图片与仪表参数后即可达到自定义小工具(Widget)画面。
■ 多国语言显示
SmartDisplay Text Widget 支持Unicode,可显示多国语言文字,客户可依下列步骤,设定想要显示的多国语言文字。
1. 新增 Custom Font,依序选择想要显示的字型与大小,并选择要显示的Unicode 文字范围(可参阅网站 https://unicode-table.com/en/blocks/ 确认要显示文字的Unicode 范围为何),如要显示的文字范围太大(如中文汉字),导致Flash 空间不足,可透过设定Custom Characters 部分,设定只要纳入那些文字而已,降低字型的Flash 空间。
2. 设定Text Widget 显示字型: 选择要修改哪个 Text Widget 设定
3. 新增 Text Widget 并在仿真器中确认文字显示是否正常
Custom CAN Command 说明
接下来将说明UART所使用的command protocol。透过这些指令,主机端可轻松控制Smart Display,包括换页、调整背光亮度,或者使Buzzer发出声音。
下列为预设的 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的方式设计 UI,达成 WYSIWYG(所见即所得)的效果,让 UI 设计变得直观且高效。同时,客户可利用仿真器预览设计结果,实时查看 UI 的呈现,提前了解最终效果,从而节省时间和精力。最终,通过 WINSTAR自定义的 UART 协议,客户可以轻松控制设备。这种端对端的设计流程使客户能够在设计和控制上实现无缝整合,提高操作的便捷性和准确性。Smart Display UART 协议的应用为客户带来了更多的操作可能性和便利性,扩展了产品开发和应用的范围。这种综合解决方案不仅提升了客户的工作效率,还增强了产品的创造力和竞争力。心动了吗?快与华凌光电联系索取 Smart Display GUI Builder!在购买 Smart Display 之前,您可以先试用仿真器,确认其是否满足您的需求!