Le protocole UART de Smart Display est un protocole de communication propriétaire développé par WINSTAR pour assurer la communication et le contrôle entre un contrôleur hôte et les Smart Displays WINSTAR via l’interface UART. Associé à WINSTAR GUI Builder, il permet de rationaliser le développement des IHM, de la conception de l’interface utilisateur à la communication et au contrôle du dispositif.
Avec GUI Builder, les développeurs peuvent créer des interfaces IHM à l’aide de différents Widgets, des éléments de base tels que Button et Text jusqu’à Gauge et Keypad, afin de répondre aux exigences de différentes applications. Cette approche de développement visuel simplifie la conception de l’interface tout en offrant davantage de flexibilité pour créer des interfaces adaptées à chaque application.
Une fois l’interface utilisateur créée, le contrôleur hôte peut communiquer avec le Smart Display via UART et le contrôler à l’aide du protocole de communication propriétaire et des commandes WINSTAR. L’association de la conception de l’interface et de la communication UART contribue à simplifier le développement des IHM et l’intégration système.
WINSTAR améliore continuellement GUI Builder afin d’offrir un environnement de développement toujours plus efficace et flexible pour les applications Smart Display.
Smart Display GUI Builder – Configuration d’un projet UART
Smart Display GUI Builder offre une interface intuitive et conviviale pour créer efficacement des projets IHM. Il suffit de faire glisser les différents Widgets sur la page pour les afficher sur le Smart Display et interagir avec eux. Sa simplicité d’utilisation et la flexibilité de ses fonctions permettent de répondre aux besoins de différentes applications tout en facilitant le développement.
Les étapes suivantes expliquent comment créer un projet UART avec Smart Display GUI Builder et contrôler les objets via UART.
■ Créer un projet avec le protocole UART
Pour créer un projet UART, saisissez le nom du projet, sélectionnez le type de Smart Display adapté à votre application, puis choisissez "SmartDisplay protocol (UART)" dans l’option Protocol.

■ Ajouter un Gauge et un Horizontal Slider Widget à la page principale
Après l’ajout d’un Widget, chaque objet possède un Index ID unique ainsi que les paramètres Page Index et Object ID correspondants. À partir de ces deux paramètres, le Host peut contrôler l’objet concerné à l’aide de commandes UART.

■ Simuler l’interaction entre UART et le Widget
Cliquez sur l’icône "Simulator With GUI" pour lancer le simulateur.

Une fois le simulateur lancé, déplacez le curseur GAUGE_0 situé en bas de l’écran pour simuler l’envoi de données du Host vers GAUGE_0. Observez les variations du Gauge dans le simulateur et consultez le journal des commandes UART dans le Message Log à droite. Vous pouvez également manipuler le Horizontal Slider dans le simulateur afin de simuler l’envoi de données depuis le Device.

■ Mettre à jour les paramètres du Smart Display
Après avoir vérifié le bon fonctionnement à l’aide du simulateur, connectez le dispositif et transférez les paramètres du projet vers le Smart Display.

Attendez la fin du transfert et de la mise à jour.

■ Vérifier l’interaction entre le Device et le Widget
Une fois le projet transféré sur le dispositif, vous pouvez vérifier son fonctionnement directement sur le Smart Display. Connectez le dispositif à l’aide de GUI Builder, cliquez sur "Test Device", puis testez l’interaction entre le Host et le Device.

■ Fenêtre Test Device
Cette interface de test permet de simuler la modification de la valeur d’un objet par le Host. Déplacez le curseur GAUGE_0 situé en bas de l’écran pour simuler l’envoi de la valeur de Object 0 par le Host, puis observez les variations du Gauge sur le dispositif. Le Message Log situé en bas permet également de consulter Send command et Response command. Vous pouvez en outre manipuler le Horizontal Slider sur le dispositif afin de vérifier l’Event command envoyé par le Device.

La fenêtre Test Device décrite ci-dessus permet de simuler l’envoi de commandes UART par le Host pour contrôler le Smart Display. Observez le résultat sur le Smart Display, puis utilisez le Touch Panel pour vérifier que le Host reçoit bien l’Event command correspondant.

Smart Display GUI Builder – Widgets personnalisés
Lorsque les Widgets proposés par défaut dans Smart Display GUI Builder ne répondent pas aux exigences de conception, il est possible de personnaliser leurs icônes en remplaçant les images correspondantes afin d’adapter l’interface à l’application. Pour les boutons simples ou les boutons à bascule, il suffit de remplacer les images On/Off. Pour les Widgets plus complexes, des paramètres supplémentaires peuvent également devoir être configurés, en complément du remplacement des images, afin de garantir un affichage correct.
■ Exemple de personnalisation d’un Gauge
Pour créer un Gauge personnalisé, il suffit de remplacer les images et d’ajuster les paramètres Gauge correspondants.

■ Texte multilingue
Le Text Widget du Smart Display prend en charge Unicode et permet ainsi d’afficher du texte dans plusieurs langues. Suivez les étapes ci-dessous pour configurer les textes dans les langues souhaitées.
1. Ajoutez un Custom Font, sélectionnez la police et la taille souhaitées, puis définissez la plage de caractères Unicode à afficher. Vous pouvez consulter Unicode Character Blocks pour identifier la plage Unicode correspondante. Si la plage de caractères nécessaire est trop étendue, notamment pour les caractères chinois, et que l’espace Flash disponible est insuffisant, vous pouvez limiter la section Custom Characters aux seuls caractères réellement utilisés afin de réduire l’espace de stockage nécessaire à la police.

2. Définissez la police du Text Widget : sélectionnez le Text Widget dont vous souhaitez modifier les paramètres de police.

3. Ajoutez un Text Widget et vérifiez dans le simulateur que le texte s’affiche correctement.

Introduction aux commandes UART personnalisées
La section suivante présente le protocole de commandes utilisé pour la communication UART. Ces commandes permettent au Host de contrôler différentes fonctions du Smart Display, notamment le changement de page, le réglage de la luminosité du rétroéclairage et l’activation du buzzer.
The following are the default UART settings:
Default baud rate: 115200 (Cela peut être modifié via le GUI Builder)
Parity Bit: None
Data Bit: 8
Stop Bit: 1
Le format de données principal pour le UART est le suivant :
| 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) |
Le protocole UART se compose principalement de trois types de commandes : la commande d'envoi, la commande de réponse et la commande d'événement, avec les formats suivants dans cet ordre.
1. Format de la commande d'envoi
La commande d'envoi est utilisée par le côté hôte pour envoyer des commandes au côté 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. Format de la commande de réponse
La commande de réponse est utilisée par le côté SmartDisplay pour répondre au côté hôte avec les résultats de la commande d'envoi.
| 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. Commande d'événement<
Lorsque le côté SmartDisplay doit proactivement rapporter des données, il utilisera cette commande, par exemple, lorsqu'un bouton est déclenché.
| 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 |
* Pour des détails sur le code de la commande d'envoi et le code de la commande d'événement, veuillez consulter le document du guide de l'utilisateur UART de SmartDisplay.
■ Explication et exemples du protocole de commande d'envoi/réponse
Ce qui suit décrit séquentiellement le format des données et des exemples pour chaque charge utile de commande.
● 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 |
Example: Set 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 |
Example: Set Object Text: test

Example: Set Clock Widget date time: 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 |
Example: Set brightness to 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 |
Example: Emitting buzzer: 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 |
Example: Switching Page Index to 1.
Pour changer de page, vous devez d'abord définir l'état de l'appareil sur ConfigMode. Ensuite, envoyez la commande de changement de page. Après avoir terminé la commande de changement de page, définissez l'état de l'appareil sur Display Mode pour finaliser l'opération de changement de page. La séquence des commandes associées est la suivante :

● 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 |
Example: Refer to the example of switching pages
■ Explication et exemples du protocole de commande d'événement
● Page change event: 0x1
Event Command
| Event Code |
1 Byte |
0x01 |
| Parameter data |
2 Byte |
Uint16 PageIndex |
Example: SmartDisplay switches to 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 |
Example: Keypad widget sends the text "1234"

● Object Value change event: 0x3
Event Command
| Event Code |
1 Byte |
0x03 |
| Parameter data |
6 Byte |
Uint16 ObjectId
int32 value |
Example: Object value change event.

Avec GUI Builder, les utilisateurs peuvent créer leur interface en faisant glisser-déposer des Widgets. L’approche WYSIWYG (What You See Is What You Get) rend le développement de l’interface utilisateur plus intuitif et efficace. Le simulateur intégré permet également de prévisualiser l’interface et d’évaluer sa conception avant d’utiliser l’écran physique.
Une fois l’interface utilisateur finalisée, le contrôleur hôte peut communiquer avec le Smart Display via UART en utilisant le protocole de communication propriétaire de WINSTAR, permettant ainsi le contrôle du dispositif et l’échange de données. Ce flux de travail associe conception de l’interface, simulation et communication avec le dispositif afin de simplifier le développement IHM et l’intégration système.
Avant d’acheter un UART Smart Display, vous pouvez utiliser GUI Builder et le simulateur intégré afin d’évaluer si la conception de l’interface et les fonctionnalités répondent aux exigences de votre application.
Demander le téléchargement de GUI Builder — remplissez simplement le formulaire en ligne pour recevoir le lien de téléchargement.