Smart Display UART protokolü, bir host kontrolcü ile WINSTAR Smart Display arasında UART arayüzü üzerinden iletişim ve kontrol sağlamak amacıyla WINSTAR tarafından geliştirilmiş tescilli bir iletişim protokolüdür. WINSTAR GUI Builder ile birlikte kullanıldığında, kullanıcı arayüzü tasarımından cihaz iletişimi ve kontrolüne kadar HMI geliştirme sürecinin daha verimli şekilde yürütülmesini sağlar.
GUI Builder ile geliştiriciler, temel Button ve Text öğelerinden Gauge ve Keypad gibi farklı Widget’lara kadar çeşitli bileşenleri kullanarak farklı uygulama gereksinimlerine uygun HMI arayüzleri oluşturabilir. Bu görsel geliştirme yaklaşımı, UI tasarımını kolaylaştırırken uygulamaya özel arayüzlerin oluşturulmasında daha fazla esneklik sağlar.
Kullanıcı arayüzü oluşturulduktan sonra host kontrolcü, UART üzerinden Smart Display ile iletişim kurabilir ve WINSTAR’ın tescilli iletişim protokolü ile komutlarını kullanarak cihazı kontrol edebilir. UI tasarımı ile UART iletişiminin birlikte kullanılması, HMI geliştirme ve sistem entegrasyonu süreçlerinin kolaylaştırılmasına yardımcı olur.
WINSTAR, Smart Display uygulamalarında daha verimli ve esnek bir geliştirme deneyimi sunmak amacıyla GUI Builder’ı sürekli olarak geliştirmektedir.
Smart Display GUI Builder – UART Projesi Ayarları
Smart Display GUI Builder, HMI projelerinin verimli bir şekilde oluşturulması için sezgisel ve kullanıcı dostu bir arayüz sunar. Farklı Widget’ları GUI Builder üzerinde sayfaya sürükleyip bırakarak Smart Display üzerinde görüntüleyebilir ve bu öğelerle etkileşim sağlayabilirsiniz. Kolay kullanım ve esnek işlevler, farklı uygulama gereksinimlerine uyum sağlamayı ve geliştirme sürecini daha verimli hale getirmeyi sağlar.
Aşağıdaki adımlarda, Smart Display GUI Builder ile bir UART projesinin nasıl oluşturulacağı ve nesnelerin UART üzerinden nasıl kontrol edileceği açıklanmaktadır.
■ UART Protokol Projesi Oluşturma
Bir UART projesi oluşturmak için proje adını girin, uygulama gereksinimlerine uygun Smart Display cihaz tipini seçin ve Protocol seçeneği altında "SmartDisplay protocol (UART)" öğesini seçin.

■ Ana Sayfaya Gauge ve Horizontal Slider Widget Ekleme
Bir Widget eklendikten sonra her nesnenin benzersiz bir Index ID’si ve ilgili Page Index ile Object ID ayarları bulunur. Host, bu iki ayarı kullanarak ilgili nesneyi UART komutları üzerinden kontrol edebilir.

■ UART ile Widget Arasındaki Etkileşimi Simüle Etme
Simülatörü başlatmak için "Simulator With GUI" simgesine tıklayın.

Simülatörü başlattıktan sonra, Host tarafından GAUGE_0’a veri gönderilmesini simüle etmek için alt bölümde GAUGE_0 olarak işaretlenmiş kaydırıcıyı hareket ettirin. Simülatördeki Gauge değişikliklerini gözlemleyebilir ve sağ taraftaki Message Log bölümünden UART komut kayıtlarını kontrol edebilirsiniz. Ayrıca, Device tarafından veri gönderilmesini simüle etmek için simülatördeki Horizontal Slider’ı kullanabilirsiniz.

■ Smart Display Cihaz Ayarlarını Güncelleme
Simülatör üzerinden işlevleri doğruladıktan ve sistemin doğru şekilde çalıştığını kontrol ettikten sonra cihazı bağlayabilir ve proje ayarlarını Smart Display cihazına yükleyebilirsiniz.

Yükleme ve güncelleme işlemi tamamlanana kadar bekleyin.

■ Device ile Widget Arasındaki Etkileşimi Doğrulama
Projeyi cihaza yükledikten sonra işlevleri doğrudan Smart Display üzerinde doğrulayabilirsiniz. GUI Builder ile cihaza bağlanın, "Test Device" seçeneğine tıklayın ve Host ile Device arasındaki etkileşimi test edin.

■ Test Device Penceresi
Bu test arayüzü üzerinden Host tarafından bir nesnenin değerinin değiştirilmesini simüle edebilirsiniz. Host tarafından Object 0 değerinin gönderilmesini simüle etmek için alt bölümdeki GAUGE_0 kaydırıcısını hareket ettirin ve cihaz üzerindeki Gauge değişikliklerini gözlemleyin. Alt bölümdeki Message Log üzerinden Send command ve Response command bilgilerini de kontrol edebilirsiniz. Ayrıca, Device üzerindeki Horizontal Slider’ı kullanarak Device tarafından gönderilen Event command bilgisini doğrulayabilirsiniz.

Yukarıda açıklanan Test Device penceresi üzerinden Host tarafından Smart Display’i kontrol etmek için UART komutlarının gönderilmesini simüle edebilirsiniz. Sonucu Smart Display üzerinde gözlemleyin ve Touch Panel üzerinden Smart Display’i kullanarak Host’un ilgili Event command bilgisini aldığını doğrulayın.

Smart Display GUI Builder – Özelleştirilebilir Widget’lar
Smart Display GUI Builder’da bulunan standart Widget’lar tasarım gereksinimlerini karşılamadığında, ilgili görseller değiştirilerek Widget simgeleri özelleştirilebilir ve arayüz uygulama gereksinimlerine uygun hale getirilebilir. Basit butonlar veya toggle butonlar için On/Off görsellerinin değiştirilmesi yeterlidir. Daha karmaşık Widget’larda ise doğru görüntüleme sağlamak için görsellerin değiştirilmesine ek olarak ilgili parametrelerin de ayarlanması gerekebilir.
■ Özelleştirilmiş Gauge Ayar Örneği
İlgili görselleri değiştirip Gauge parametrelerini ayarlayarak özelleştirilmiş bir Gauge oluşturabilirsiniz.

■ Çok Dilli Metin
Smart Display Text Widget, Unicode desteği sayesinde farklı dillerde metinlerin görüntülenmesine olanak tanır. İhtiyaç duyulan dillerdeki metinleri yapılandırmak için aşağıdaki adımları izleyin.
1. Bir Custom Font ekleyin, istediğiniz yazı tipini ve boyutunu seçin, ardından görüntülenecek Unicode karakter aralığını belirleyin. İlgili Unicode aralığını kontrol etmek için Unicode Character Blocks sayfasından yararlanabilirsiniz. Çince karakterlerde olduğu gibi gerekli karakter aralığı çok genişse ve kullanılabilir Flash alanı yetersiz kalıyorsa, Custom Characters bölümüne yalnızca kullanılacak karakterleri ekleyerek yazı tipi için gereken depolama alanını azaltabilirsiniz.

2. Text Widget için yazı tipini ayarlayın: Yazı tipi ayarlarını değiştirmek istediğiniz Text Widget’ı seçin.

3. Bir Text Widget ekleyin ve metnin doğru görüntülendiğini simülatörde kontrol edin.

Özel UART Komutlarına Giriş
Sonraki bölümde UART iletişiminde kullanılan komut protokolü açıklanmaktadır. Bu komutlar sayesinde Host, Smart Display üzerinde sayfa değiştirme, arka aydınlatma parlaklığını ayarlama ve buzzer’ı etkinleştirme gibi çeşitli işlevleri kontrol edebilir.
Aşağıda varsayılan UART ayarları verilmiştir:
Default baud rate: 115200 (Can be modified through GUI Builder)
Parity Bit: None
Data Bit: 8
Stop Bit: 1
UART için ana veri formatı aşağıdaki gibidir:
<> <>
| 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 protokolü esasen üç ana komut türüne sahiptir: Gönderim komutu, Yanıt komutu ve Olay Komutu. Bunların formatları sırasıyla aşağıda belirtilmiştir.
1. Gönderim Komutu Formatı
Gönderim komutu, Ana Bilgisayar tarafının SmartDisplay tarafına komut göndermesi için kullanılır.
<> <>
| 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. Yanıt Komutu Formatı
Yanıt komutu, SmartDisplay tarafının Ana Bilgisayar tarafına Gönderim komutunun sonuçlarıyla yanıt vermesi için kullanılır.
<> <>
| 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. Olay Komutu
SmartDisplay tarafı veri bildirmek gerektiğinde bu komutu kullanır; örneğin, bir düğmeye basıldığında.
<> <>
| 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 |
* Ayrıntılı Gönderim Komutu kodu ve Olay Komutu kodu için lütfen SmartDisplay UART Kullanıcı Kılavuzu belgesine başvurun.
■ Gönderim/Yanıt Komutu Protokolü Açıklaması ve Örnekleri
Aşağıda, her bir komut yükü için veri formatı ve örnekleri sırasıyla açıklanmaktadır.
● 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.
Sayfaları değiştirmek için öncelikle Cihaz Durumunu ConfigMode olarak ayarlamanız gerekir. Ardından, sayfa değişim komutunu gönderin. Sayfa değişim komutunu tamamladıktan sonra, Cihaz Durum Modunu Görüntüleme Modu olarak ayarlayarak sayfa değiştirme işlemini tamamlayın. İlgili komutların sıralaması aşağıdaki gibidir:

● 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
■ Olay Komutu Protokolü Açıklaması ve Örnekleri
● 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.

GUI Builder ile Widget’lar sürükle ve bırak yöntemiyle yerleştirilerek kullanıcı arayüzleri oluşturulabilir. WYSIWYG (What You See Is What You Get) yaklaşımı, UI geliştirme sürecini daha kolay ve verimli hale getirir. Entegre simülatör sayesinde fiziksel ekran kullanılmadan önce arayüz önizlenebilir ve UI tasarımı değerlendirilebilir.
UI tasarımı tamamlandıktan sonra host kontrolcü, UART üzerinden Smart Display ile iletişim kurabilir ve WINSTAR’ın tescilli iletişim protokolünü kullanarak cihaz kontrolü ve veri alışverişi gerçekleştirebilir. Bu iş akışı; UI tasarımı, simülasyon ve cihaz iletişimini bir araya getirerek HMI geliştirme ve sistem entegrasyonu süreçlerini kolaylaştırır.
Bir UART Smart Display satın almadan önce GUI Builder ve entegre simülatörü kullanarak arayüz tasarımının ve işlevlerin uygulama gereksinimlerinize uygun olup olmadığını değerlendirebilirsiniz.
GUI Builder’ı indirmek için başvurun — indirme bağlantısını almak için çevrimiçi başvuru formunu doldurmanız yeterlidir.