스마트 디스플레이 UART 프로토콜 소개
SmartDisplay UART 프로토콜은 WINSTAR에서 개발한 독점 통신 프로토콜로, 고객이 UART 인터페이스를 통해 HMI(인간-기계 인터페이스) 화면을 쉽게 제어할 수 있도록 설계되었습니다. 이 혁신적인 프로토콜은 Winstar의 사용자 친화적인 GUI 빌더와 결합되어 고객이 필요에 맞는 위젯을 직관적이고 강력하게 커스터마이즈하고 신속하게 구축할 수 있는 도구를 제공합니다. GUI 빌더를 통해 고객은 간단한 버튼 및 텍스트부터 복잡한 게이지와 키패드까지 다양한 HMI 객체를 쉽게 설계할 수 있어 다양한 응용 시나리오에 대응할 수 있습니다. 이를 통해 고객은 시간과 비용을 절약하고 UI 디자인을 더 유연하고 특색 있게 만들 수 있습니다. WINSTAR의 커스텀 UART 프로토콜 명령을 사용하여 Smart Display와의 상호작용 및 제어가 쉽게 이루어질 수 있습니다. 우리는 최고의 고객 경험을 제공하고 GUI 빌더를 지속적으로 개선하여 고객의 변화하는 요구를 충족시키기 위해 최선을 다하고 있습니다. 전문 디자이너든 초보자든, SmartDisplay UART 프로토콜은 뛰어난 HMI 인터페이스를 만드는 데 이상적인 선택이 될 것이라고 믿습니다. 함께 이 흥미로운 혁신 기술을 탐험하고 귀하의 제품에 더 많은 활력과 영감을 불어넣어 봅시다.
Smart Display GUI 빌더 – UART 프로젝트 설정 안내
SmartDisplay GUI 빌더는 직관적이고 사용자 친화적인 인터페이스를 제공하여 사용자가 쉽게 HMI 프로젝트를 생성할 수 있도록 합니다. GUI 빌더를 사용하여 다양한 위젯을 페이지에 드래그 앤 드롭하면 SmartDisplay 장치에서 손쉽게 표시하고 상호작용할 수 있습니다. 간단한 조작과 유연한 기능으로 다양한 요구를 충족하여 작업의 효율성을 높입니다.
이제 Smart Display GUI 빌더를 사용하여 UART 프로젝트를 생성하는 방법과 UART를 통해 객체를 제어하는 방법을 소개하겠습니다.
■ UART 프로토콜 프로젝트 생성
UART 프로젝트를 생성하려면 프로젝트 이름을 입력하고 SmartDisplay 장치 유형을 선택한 후, 요구 사항에 따라 프로토콜 옵션에서 SmartDisplay 프로토콜(UART)을 선택합니다.
■ 주 페이지에 게이지 및 수평 슬라이더 위젯 추가
위젯을 추가한 후, 각 객체는 고유한 인덱스 ID를 가집니다. 각 객체는 페이지 인덱스와 객체 ID 설정도 갖고 있습니다. 이 두 가지 설정을 알고 있으면 호스트 측에서 UART 명령을 통해 이 객체를 제어할 수 있습니다.
■ UART와 위젯 간의 상호작용 시뮬레이션
"Simulator With GUI" 아이콘을 클릭하여 시뮬레이터를 실행합니다.
시뮬레이터를 실행한 후, 하단의 GAUGE_0 레이블이 붙은 슬라이더를 드래그하여 호스트가 GAUGE_0에 데이터를 보내는 시뮬레이션을 할 수 있습니다. 시뮬레이터의 게이지에서 변화를 관찰하고 오른쪽의 메시지 로그에서 UART 명령 로그를 확인할 수 있습니다. 또한 시뮬레이터의 수평 슬라이더와 상호작용하여 장치 측에서 전송되는 데이터를 시뮬레이션할 수 있습니다.
■ SmartDisplay 장치 설정 업데이트
시뮬레이터를 통해 기능을 확인한 후, 모든 것이 정상적으로 작동하면 장치에 연결하고 프로젝트 설정을 Smart Display 장치에 업로드할 수 있습니다.
업로드 및 업데이트 프로세스가 완료될 때까지 기다립니다.
■ 장치와 위젯 간의 상호작용 검증
프로젝트를 장치에 업로드한 후, Smart Display 장치 측에서 기능을 추가로 검증할 수 있습니다. GUI 빌더를 사용하여 장치에 연결하고 "Test Device"를 클릭하면 호스트와 장치 간의 상호작용을 테스트할 수 있습니다.
■ 장치 테스트 창
이 테스트 인터페이스를 통해 호스트 측에서 객체의 값을 수정하는 시뮬레이션을 할 수 있습니다. 하단의 GAUGE_0 레이블이 붙은 슬라이더를 드래그하여 호스트가 객체 0의 값을 전송하는 시뮬레이션을 합니다. 장치의 게이지에서 변화를 관찰하고, 하단의 메시지 로그에서 전송 명령과 응답 명령의 변화를 확인할 수 있습니다. 또한 장치의 수평 슬라이더와 상호작용하여 장치 측에서 전송된 이벤트 명령을 확인할 수 있습니다.
위에서 설명한 장치 테스트 창을 통해 호스트가 UART 명령을 전송하여 SmartDisplay를 제어하는 시뮬레이션을 할 수 있습니다. SmartDisplay의 결과 화면을 확인하고 터치 패널을 통해 SmartDisplay를 조작하여 호스트 측에서 이벤트 명령 정보가 수신되었는지 확인합니다.
SmartDisplay GUI 빌더 – 커스텀 위젯
SmartDisplay의 기본 위젯이 디자인 요구 사항을 충족하지 않을 경우, 고객은 직접 커스텀 위젯 아이콘을 디자인할 수 있습니다. 해당 이미지를 업데이트함으로써 커스터마이즈된 위젯 인터페이스를 만들 수 있습니다. 간단한 버튼이나 토글 버튼의 경우, On/Off 이미지를 변경하여 커스터마이징 요구를 충족할 수 있습니다. 그러나 더 복잡한 위젯의 경우, 이미지 교체 외에도 위젯이 올바르게 표시되도록 추가적인 매개변수 설정이 필요할 수 있습니다.
■ 커스텀 게이지 설명 및 예제
이미지와 게이지 매개변수를 순차적으로 변경하여 커스텀 위젯 인터페이스를 구현할 수 있습니다.
■ 다국어 텍스트
SmartDisplay 텍스트 위젯은 유니코드를 지원하여 다국어 텍스트를 표시할 수 있습니다. 고객은 아래 단계를 따라 표시할 다국어 텍스트를 설정할 수 있습니다.
1. 커스텀 폰트 추가: 원하는 폰트와 크기를 선택하고 표시할 유니코드 텍스트 범위를 선택합니다. 표시할 텍스트의 유니코드 범위를 확인하려면 https://unicode-table.com/en/blocks/를 참조하세요. 표시할 텍스트의 범위가 너무 넓어(예: 한자) 플래시 공간이 부족해지는 경우, 커스텀 문자 섹션에 포함할 문자만 설정하여 폰트의 플래시 공간을 줄일 수 있습니다.
2. 텍스트 위젯 표시 폰트 설정: 수정할 텍스트 위젯 설정을 선택합니다.
3. 텍스트 위젯 추가: 시뮬레이터에서 텍스트 표시가 올바른지 확인합니다.
커스텀 CAN 명령 소개
다음으로, UART에 사용되는 명령 프로토콜에 대해 설명하겠습니다. 이 지침을 통해 호스트 측에서는 스마트 디스플레이를 쉽게 제어할 수 있으며, 페이지 변경, 백라이트 밝기 조정 또는 버저 소리를 발생시키는 등의 작업이 가능합니다.
다음은 기본 UART 설정입니다:
Default baud rate: 115200 (GUI 빌더를 통해 수정 가능)
Parity Bit: None
Data Bit: 8
Stop Bit: 1
UART의 주요 데이터 형식은 다음과 같습니다:
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 프로토콜은 주로 세 가지 주요 명령 유형이 있습니다: 송신 명령(Send command), 응답 명령(Response command), 이벤트 명령(Event Command), 각 명령의 형식은 다음과 같습니다.
(1) 송신 명령 포맷 (Send Command format)
송신 명령은 호스트 측에서 스마트 디스플레이 측으로 명령을 전송하는 데 사용됩니다.
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 format)
응답 명령은 스마트 디스플레이 측에서 호스트 측에 송신 명령의 결과를 회신하는 데 사용됩니다.
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)
스마트 디스플레이 측에서 데이터를 능동적으로 보고해야 할 때 이 명령을 사용합니다. 예를 들어 버튼이 눌릴 때입니다.
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 |
* 자세한 송신 명령 코드 및 이벤트 명령 코드는 SmartDisplay UART 사용자 가이드를 참조하시기 바랍니다.
■ 송신/응답 명령 프로토콜에 대한 설명 및 예시
다음은 각 명령 페이로드에 대한 데이터 형식과 예시를 순차적으로 설명합니다.
● 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 |
예시: 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 |
예시: Set Object Text: test
예시: 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 |
예시: 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 |
예시: 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 |
예시: Switching Page Index to 1.
페이지를 전환하려면 먼저 장치 상태를 ConfigMode로 설정해야 합니다. 그런 다음 페이지 변경 명령을 전송합니다. 페이지 변경 명령을 완료한 후 장치 상태 모드를 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 |
예시: Refer to the example of switching pages
■ Explanation and examples of the Event Command protocol
● Page change event: 0x1
이벤트 명령 (Event Command)
Event Code | 1 Byte | 0x01 |
Parameter data | 2 Byte | Uint16 PageIndex |
예시: 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 |
예시: 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 |
예시: Object value change event.
고객은 GUI 빌더를 사용하여 위젯을 드래그 앤 드롭하여 UI를 디자인할 수 있으며, WYSIWYG(What You See Is What You Get) 효과를 달성하여 UI 디자인을 직관적이고 효율적으로 만듭니다. 또한, 시뮬레이터를 통해 디자인 결과를 미리 볼 수 있어 고객은 UI 프레젠테이션을 즉시 확인할 수 있으며, 최종 효과에 대한 조기 이해를 제공하여 시간과 노력을 절약합니다. 궁극적으로 Winstar의 커스텀 UART 프로토콜을 통해 고객은 장치를 쉽게 제어할 수 있습니다. 이 종합적인 디자인 프로세스는 고객에게 디자인과 제어의 매끄러운 통합을 가능하게 하여 작업의 편의성과 정확성을 향상시킵니다. SmartDisplay UART 프로토콜의 적용은 고객에게 더 많은 운영 가능성과 편리함을 제공하여 제품 개발 및 응용의 범위를 확장합니다. 이 포괄적인 솔루션은 고객의 작업 효율성을 높일 뿐만 아니라 제품의 창의성과 경쟁력을 강화합니다. 흥미롭나요? SmartDisplay GUI 빌더를 빠르게 다운로드하세요. Smart Display를 구매하기 전에 시뮬레이터를 사용하여 SmartDisplay가 귀하의 요구를 충족하는지 확인할 수 있습니다! 문의하기