Выпуск Сентябрь 2022 www.winstar.com.tw
 
Winstar Newsletter
Выпуск 163
 
Содержание
1) WF0200BTYAJDNG10: 2" IPS TFT с емкостной сенсорной тач панелью
2) WF22GN5AB2DNN0: 2.13" Mono TFT с LPRD (Светоотражатель с низким энергопотреблением)
3) WF101JSYFHLHBV: 10.1" HDMI IPS TFT LCD с емкостной сенсорной тач панелью
4) WL0F00050000FGAAASA01: 5" Smart Display с увеличенной яркостью (CAN интерфейс)
5) Полудуплексный интерфейс RS485

 

 

WF0200BTYAJDNG10: 2" IPS TFT с емкостной сенсорной тач панелью

WF0200BTYAJDNG10 - это 2'' дюймовый цветной IPS TFT модуль с разрешением 240x320 пикселей. Данная модель работает на базе IC драйвера ST7789VI с поддержкой MCU и SPI интерфейсов. Емкостная сенсорная тач панель (PCAP) имеет встроенный контроллер IC GT911 с поддержкой I2C интерфейса. Данный IPS TFT LCD дисплей обладает яркостью - 400 кд / м2 и контрастом - 800:1 (типичное значение), а также широкими углами обзора: Левый угол: 80 ° / Правый угол: 80 ° / Верх: 80 ° / Низ: 80 ° (типичное значение).

Напряжение питания для дисплея варьируется от 2.4 V до 3.6V (типичное значение 3.3V). В случае если тач панель не требуется, то в нашей стандартной продуктовой линейке имеется версия дисплея без тач панели - WF0200BTYAJDNN0. Также в наличии имеется версия с увеличенной яркостью - WF0200BSYAJDNN0. IPS матрица имеет глянцевый поляризатор. Рабочий температурный диапазон от -20 ℃ до + 70 ℃, температура хранения от -30 ℃ до + 80 ℃.

WF0200BTYAJDNG10 Измерения Единица
Диагональ 2.0" Дюймов
Разрешение 240 x RGB x 320(TFT) Точек
Габариты 38.8(W) x 52.3(H) x3.8(D) mm
Активная область 30.60 x 40.80 mm
Шаг пикселя 0.1275 x 0.1275 mm
Тип LCD IPS, Чёрный, Трансмиссивный
Интерфейс MCU / SPI
IC ST7789VI or Equivalent
Угол обзора 80/80/80/80
Соотношение сторон 3:4
Подсветка LED, Белая
IC тач панели GT911
Интерфейс тач панели I2C
Версия прошивки тач панели V92
Разрешение тач панели 240 * 320
Тач панель PCAP емкостная сенсорная тач панель
Поверхность матрицы Глянцевая

WF0200BTYAJDNG10

WF0200BTYAJDNG10

Link to WF0200BTYAJDNG10 web page

 

TOP

 

 

WF22GN5AB2DNN0: 2.13" Mono TFT с рефлективной матрицей

WF22GN5AB2DNN0 - это 2.13'' дюймовый Mono TFT модуль с разрешением 240x320 пикселей и рефлективной матрицей. Данная модель работает на базе IC драйвера ST7306 с поддержкой 8-бит MCU, 3-4 жильного SPI интерфейсов. Особенностью WF22G Mono TFT является рефлективная матрица которая используется в дисплее и обладает рядом преимуществ:

  • Низкое энергопотребление
  • Четкость изображения при ярком солнечном свете
  • Устойчивость к ультрафиолетовому излучению
  • Высокая частота обновления, что идеально подходит для отображения динамической информации
  • Не имеет подсветки, за счет чего удалось добиться минимальной толщины в 1 мм.

Углы обзора дисплея WF22GN5AB2DNN0 составляют: Левый угол: 65° / Правый угол: 65° / Верх: 65° / Низ: 65° (типичное значение), соотношение сторон - 18:9 Напряжение питания (VDDA) варьируется от 2.55 V до 3.6V (типичное значение 3.3V). Дисплей имеет антибликовый поляризатор. Рабочий температурный диапазон от -20℃ до + 70℃, температура хранения от -30℃ до + 80℃.

WF22GN5AB2DNN0 идеально подходит для применения в электронных ценниках, спортивных устройствах (пример: GPS-трекер для велосипедa), портативных медицинских измерительных устройствах, носимых устройствах, зарядных станциях и т.д.

WF22GN5AB2DNN0 Измерения Единица
Диагональ 2.13 Дюймов
Разрешение 122 x 250 Точек
Габариты 27.07(W) x 56.2 (H) x 1.09 (D) mm
Активная область 23.668 x 48.50 mm
Шаг пикселя 0.194 x 0.194 mm
Тип LCD Mono TFT (рефлективный)
Угол обзора 65/65/65/65
Соотношение сторон 18:9
IC ST7306 or or Equivalent
Интерфейс 8bit MCU/4-SPI/3-SPI
Тач панель Без тач панели
Поверхность матрицы Антибликовая

WF22GN5AB2DNN0

WF22GN5AB2DNN0

Link to WF22GN5AB2DNN0 web page

 

TOP

 

 

WF101JSYFHLHBV: 10.1" HDMI IPS TFT LCD с емкостной сенсорной тач панелью

WF101JSYFHLHBV - это 10.1” дюймовый HDMI IPS TFT-LCD дисплей с разрешением 1024x600 точек, с емкостной сенсорной тач панелью. Модуль поставляется с платой управления с HDMI интерфейсом (только DVI) и разъемом GPIO с 40-контактным разъемом на плате, который позволяет подключиьбся к Raspberry Pi, а также с любой встроенной системой которая имеет HDMI выход. Данный индикатор имеет IPS матрицу, что позволяет добиться широких углов обзора: Левый угол: 80°/ Правый угол: 80°/ Верх: 80°/ Низ: 80°(типичное значение). WF101JSYFHLHBV обладает яркостью – 950 cd/m2 (типичное значение). Модель имеет глянцевое покрытие, и ландшафтный режим отображения с соотношением сторон 16:9, с контрастом 800:1 (типичное значение). Дисплей имеет 2 встроенных IC драйвера: EK79001HN и EK73215BCGA. Емкостная сенсорная тач панель имеет встроенный контроллер IC ILI2511 с поддержкой USB интерфейса. Напряжение питания дисплея VDD составляет 5V. Рабочий температурный диапазон -20℃ to +70℃, а температура хранения -30℃ to +80℃.

WF101JSYFHLHBV Измерение Единица
Диагональ 10.1 Дюймов
Разрешение 1024 RGB X 600 Точек
Габариты 235(W) x143(H) x 27.96(MAX)(D) mm
Активная область 222.72 (H) x 125.28(V) mm
Шаг пикселя 0.2175(W) x 0.2088(H) mm
Тип LCD IPS, Чёрный, Трансмиссивный
Угол обзора 85/85/85/85
Цветовая гамма RGB-STRIPE
Соотношение сторон 16:9
IC EK79001HN + EK73215BCGA or equivalent
Подсветка LED, Белая
Интерфейс HDMI(только DVI)
IC тач панели ILI2511 or equivalent
Интерфейс тач панели USB
Версия прошивки тач панели V6.0.0.0.62.90.1.2
Тач панель PCAP емкостная сенсорная тач панель
Поверхность матрицы Глянцевая
WO13232A

WF101JSYFHLHBV

Link to WF101JSYFHLHBV web page

 

TOP

 

 

WL0F00050000FGAAASA01: 5" Smart Display с увеличенной яркостью (CAN интерфейс)

WL0F00050000FGAAASA01 – это 5" дюймовый умный TFT дисплей_CAN серии, который определяется как подчиненное устройство (slave device), которым управляет ведущее устройство с помощью команды CAN шины для отображения содержимого экрана на панели и возврата данных о событиях касания с объектами протокола. Данный модуль объединяет в себе стандартный TFT дисплей WF50FSWAGDNG0 и 4–уровневую плату PCBA со встроенным программным обеспечением. Дисплей CAN Series очень прост в использовании, что позволяет быстро и экономически эффективно начать разработку проекта. Наш Smart Display может использоваться на платформах с несколькими хостами (HOST) например: компьютер (с USB2CAN Dongle), MCU, Raspberry Pi (с PiCAN2), Arduino (+ адаптер CAN).

Умные TFT дисплеи_CAN серии поставляются со встроенными стандартными иконками пользовательского интерфейса позволяющими быстро запустить проект. Если нужны индивидуальные иконки, то пожалуйста свяжитесь с нами; отправьте содержимое в формате PNG / JPG и мы поможем создать новый набор объектов пользовательского интерфейса.

Winstar Smart Display Can Series – является идеальным выбором, поскольку данный 5" дюймовый Smart Display обладает множеством особенностей и важных функций:

  • 5" WF50FSWAGDNG0 IPS матрица
  • Рабочее напряжение DC 5V
  • Поддерживает PCAP емкостную сенсорную тач панель.
  • CAN интерфейс.
  • Поддерживает CAN open протокол (скорость передачи по умолчанию составляет 250 КБ).
  • Большое расстояние передачи данных.
  • Усиленная противоинтерференционная способность.
  • Встроенная флэш–память (16MB) для хранение шрифта и данных словаря объектов.
  • Встроенный зуммер управляется с главного устройства.
  • Рабочая температура: –30℃~80℃
  • Создавайте UI без написания кода с помощью Winstar GUI конструктор! (►сслыка на GUI конструктор «краткое руководство»)
WL0F00050000FGAAASA01 Стандартное значение Единица
Напряжение питания 5 Vdc
Интерфейс обмена данными CAN bus differential ± 3.3 Vpp
MCU STM32F750 N/A
Флеш память 16 MB
Частота SDRAM 108 MHz
Диагональ 5.0 inch
Артикул дисплея WF50FSWAGDNG0 dot
Разрешение 800× 3(RGB) × 480 dot
Габариты 135.7(W) ×82.4(H) ×12.15 mm
Активная область 108(W) ×64.8 (H) mm
Шаг пикселя 0.135(W) ×0.135(H) mm
Яркость Min: 650; Typ: 750 cd/m2
Тип LCD IPS, Чёрный, Трансмиссивный
Угол обзора 80/80/80/80
Соотношение сторон 5:3
Тач панель PCAP емкостная сенсорная тач панель
Поверхность матрицы Глянцевая
WL0F00050000FGAAASA01

WL0F00050000FGAAASA01

Link to WL0F00050000FGAAASA01 web page

 

TOP

 

 

Полудуплексный интерфейс RS485

Кроссплатформенность - концепция методов управления
 

I. Введение:

Smart Display - это серия дисплеев в сочетании с микроконтроллером, который может выполнять сложную загрузку графики, а также настройку, отображение и даже ввод. Внешнее устройство (т.е. хост) может выполнять интерактивные операции с помощью простых команд, что очень подходит для различных нужд, и широко используется в различных областях, таких как: медицина, промышленность, автомобилестроение и т.д.

Smart Display поддерживает множество коммуникационных интерфейсов, но наиболее распространенными и популярными в настоящее время являются CAN/CANopen и RS485/Modbus. Своей популярностью применения в промышленных устройствах, простотой управления, доступностью и сравнительно недорогой ценой выделяется RS485 интерфейс.

Интерфейс имеет довольно простую структуру, поскольку для передачи и приёма данных требуется одна витая пара (RS485_A/RS485_B) через которую происходит обмен данными с помощью дифференциальных сигналов. Кроме того, протокол Modbus довольно понятен и прост в использовании, поэтому в качестве иллюстрации, в данной статье мы рассмотрим принципы и методику управления RS485/Modbus для создания кросплатформенных приложений.

II. Требуемые компоненты:
 

Smart Display_RS485

Для проверки требуется Smart Display с поддержкой RS485

RS485 Dongle

Dongle (электронный ключ) на RS685

Рис. 2-1 Типы USB to RS485 Dongle

Рис. 2-1 Типы USB to RS485 Dongle

 

ХОСТ-устройство

После того как мы подготовим все компоненты, у нас появится возможность выбора среды выполнения тестового стенда в качестве хоста. Единственным требуемым условием является возможность хоста читать и записывать через последовательный порт независимо от ОС: Windows, Mac OS, различные Linux (включая Raspbian для Raspberry Pi) или одноплатный компьютер, Arduino и т. д.

В качестве образца используется одноплатный компьютер (SBC) со встроенным портом RS485, который можно использовать непосредственно в качестве хост-устройства.

Model No. WUACLB120V0000N0NX01

Model No. WUACLB120V0000N0NX01

 

III. Проверка интерфейса управления:
 

Проверка интерфейса управления:

Чтобы понять как связать Smart Display с хостом, прежде всего нам нужно получить код управления, и для этого нам поможет программа GUI Builder. GUI Builder является отличным программным обеспечением для работы со Smart Display, которое позволяет создавать собственный дизайн интерфейса и отображать его без необходимости написания какой-либо программы. С помощью функций данной программы можно создать свой идеальный пользовательский интерфейс путем перетаскивания иконок на дисплей для отображения. Кроме всего прочего, встроенный симулятор и Smart Display используют одинаковый исходный код!

Contact for Smart Display GUI Builder

Рис. 3-1 Smart Display GUI Builder

Рис. 3-1 Smart Display GUI Builder

 

Запустите программу GUI Builder в Windows OS и ввведите желаемое имя проекта в строке «Project Name». Если Вы создавали проект ранее, то можно выбрать сохраненный проект нажав на иконку «Open Project» в меню на правой стороне интерфейса. После выбираем иконку Device Type 5’’ TFT, затем нажмите на иконку «Create» для создания нового проекта.

Рис. 3-2 Создание проекта

Рис. 3-2 Создание проекта

 

После создания проекта в первую очередь выберите интерфейс

Рис. 3-3 Выбор интерфейса

Рис. 3-3 Выбор интерфейса

 

Рис. 3-4 Задать параметры интерфейса

Рис. 3-4 Задать параметры интерфейса

 

В качестве интерфейса по-умолчанию нужно выбрать RS485. Порт хоста RS485 должен быть установлен как фактический порт для подключения Dongle (электронный ключ). Проверить имя порта можно через диспетчер устройств, а значение Baudrate нужно оставить без изменений - 115200.

Рис. 3-5 Отображение порта в диспетчере устройств

Рис. 3-5 Отображение порта в диспетчере устройств

 

Если на руках образца Smart Display RS485 еще нет, то можно запустить GUI Builder в режиме симуляции для изучения возможностей программы.

Кликните Simulator и выберите Simulator with GUI для запуска режима симуляции:

Рис. 3-6 запуск режима симуляции

Рис. 3-6 запуск режима симуляции

 

После запуска симулятора Вы увидите экран моделирования, элементы управления каждого объекта и запись данных связи в правой части экрана. Измените значение любого объекта, чтобы увидеть содержимое команды соответствующей объекту.

Рис. 3-7 Изменение контента для получения кода

Рис. 3-7 Изменение контента для получения кода

 

Каждая операция будет выводить две команды TX/RX, так как устройство отображения отправит обратно ту же подтвержденную команду после получения команды, чтобы сообщить, что она была получена.

Имеется возможность записать несколько разных значений для разных объектов и использовать для управления физическим устройством.

Коды управления

Коды управления

Подключение выводов:

RS485 использует дифференциальную пару для передачи и приема сигналов, и если эти два провода подсоединены, заземляющий провод не требуется. Имя сигнальной линии RS485 — A/B (A соедините A, B соедините B).

Рис. 3-8 Подключение

Рис. 3-8 Подключение

 

Есть две вещи, о которых следует помнить, прежде чем приступать к тестированию.

1. Перед тестированием проверьте имена COM-портов, поскольку в разных операционных системах они различаются.

Имена COM-портов в различных операционных системах

Имена COM-портов в различных операционных системах

 

2. COM-портыв некоторых операционных систем не назначены по умолчанию, и требует предварительной настройки. В качестве примера возьмем Linux/Ubuntu; если имя COM-порта - ttyUSB0, и в терминале нужно назначить права:

sudo chmod 666 /dev/ttyUSB0
 

Два метода тестирования:

Управление терминалом последовательного порта

Используя терминал последовательного порта, поддерживающего шестнадцатеричный ввод, нужно введисти шестнадцатеричный код управления после подключения:

Рис. 3-9 Отправка кода управления в терминал

Рис. 3-9 Отправка кода управления в терминал

 

Если команда выполнена правильно, то можно увидеть, что объекты на устройстве действуют в соответствии с разными кодами управления.

Данный способ используется только для проверки соединения и не очень удобен в практическом применении, и чтобы получить правильный результат, операция должна быть выполнена через программу. Для начала давайте проделаем данную операцию на кроссплатформенном языке программирования python.

Использование Python

Следующие программы выполняются с использованием python3. Требуется записать три набора кодов управления на последовательный порт подавая сигнал каждую секунду.

import serial
from time import sleep

"""
The name of Com Port varies according to the operating system, For example:
Raspberry Pi: /dev/ttyUSBn (e.g. /dev/ttyUSB0)
Windows: COMn (e.g. COM22)
"""
# Raspberry Pi / Rasbian
# COM_PORT = '/dev/ttyUSB0'
COM_PORT = 'COM22'

v000 = bytes.fromhex('7B06000600006251')
v050 = bytes.fromhex('7B0600060032E384')
v100 = bytes.fromhex('7B060006006463BA')

ser = serial.Serial(COM_PORT, 115200)
while True:
ser.write(v000)
sleep(1.0)
ser.write(v050)
sleep(1.0)
ser.write(v100)
sleep(1.0)
ser.write(v050)
sleep(1.0)

 

Исходный код Python может выполняться на различных платформах, и если последовательный порт назван правильно, то он должен корректно работать с тестовым стендом.

Однако фиксированные управляющие коды не подходят для практического применения, поэтому для того, чтобы полностью их использовать необходимо понять содержание команд.

IV. Анализ кодов управления

Сравнительный анализ

Сравнение команд с разными значениями для одного и того же объекта:

Table

Значения выделенные синим — это значение установленного нами объекта.

Сравнение разных объектов с одинаковой командой значения

Table

Значения, выделенные синим, относятся к индексу или адресу объекта.

Что касается последних двух байтов данных, то тут вроде правил нет, но что означают эти сообщения?

Анализ кодов управления

На самом деле содержимое этих 8 байт и есть так называемое сообщение Modbus. Таблица с кодовыми обозначениями показана ниже:

Рис. 4-1

Рис. 4-1

 

ID
Каждое Modbus устройство должно иметь идентификационный код. Идентификационный код Smart Display - 0x7B = 123


Код функции
Код функции указывающий назначение сообщения (например 06) —Запись единого регистра, который также записывает значение в указанное место.


Адрес регистра
Aдрес регистра — это место назначения для записи (то есть адрес объекта)


Данные
Записываемая информация (значение объекта)


Циклический избыточный код
Результат CRC (циклический избыточный код) первых 6 байтов используемый для проверки наличия ошибок в процессе передачи данных.
 

Do you have some concepts? If you want to know more, you have to look at what Modbus is.

V. Modbus Введение

 

Протокол Modbus

Протокол Modbus на самом деле является форматом данных, и в основном определяет коммуникационное содержание архитектуры ведущий-ведомый.

Поскольку это только определение структуры данных, она может обмениваться данными через различные физические интерфейсы, такие как RS232, RS422, RS485 и даже через сеть.

Концептуальная модель

Modbus рассматривает передачу данных как доступ к «Регистрации», так как каждое устройство должно определить свой собственный тип регистра и адрес для внешней ссылки. Так называемая передача данных на устройство — это запись в указанный регистр, а чтение данных — это чтение указанного регистра (16-бит).

Код функции

В соответствии с характеристиками данных, Modbus определяет несколько методов чтения и записи определяемых кодом функции в сообщении.

Функии кодов Modbus

Функии кодов Modbus

 

Для управления Smart Display чаще всего используется 06: запись значения единого регистра в указанное место (запись 16-битного значения) и, чтение регистров временного хранения (чтение значения нескольких регистров).

CRC (Циклический избыточный код)

CRC - циклический избыточный код, иногда называемый также контрольным кодом. По своей сути — это просто вычисленное на основе исходного передаваемого сообщения число (или можно сказать код), которое передаётся вместе с самим сообщением (дописывается в конец информационной части) и служит для контроля его безошибочной передачи.

VI. Контроль объектов Smart Display

Каждому Modbus требуется определить тип и адрес регистра, и ниже мы разберем данную тему.

Классификация регистров

Регистры Smart Display можно условно разделить на три категории:

1) Информация об устройстве (версия, имя устройства и т. д.)

Отправить код 04 для чтения входных регистров. Данные будут изменены при обновлении прошивки, при подключении.

2) Свойства объекта (вид, местоположение и т. д.)

Отправить код 03 для чтения регистров временного хранения/16: Запись нескольких регистров для чтения и записи. Эти данные влияют на внешний вид объектов и обычно не меняются вне стадии проектирования. Чтобы изменить содержимое, Smart Display должен быть временно отключен, прежде чем его можно будет обновить.

3) Значения объекта (значения, которые представляет объект, например, число оборотов в минуту, включение или выключение, процент и т. д., варьируются от объекта к объекту).

Данный пункт является основным пунктом изменения в работе и каждый элемент использует 16-битное значение, поэтому для него установлено значение 06: запись в одиночный регистр.

Ниже приведен список этих регистров:

Регистры ввода

Регистры ввода Smart Display

Регистры ввода Smart Display

 

Регистры хранения

Регистры хранения Smart Display

Регистры хранения Smart Display

 

Ранняя версия прошивки Smart Display поддерживала только 10 объектов, поэтому диапазон идентификаторов виджета составлял от 0 до 9 (включительно). В новой версии прошивки данный диапазон был расширен до 64, но способ адресации был изменен.

Этих данных достаточно для сжатия и отправки на Smart Display для управления. Способ сжатия данных и добавления CRC кода будет описано ниже.

VII. Пользовательский интерфейс

Для практического применения Smart Display по-прежнему необходим подходящий человеко-машинный интерфейс, особенно графический пользовательский интерфейс, графический интерфейс пользователя. В настоящее время существует множество вариантов кроссплатформенных разработкок графического интерфейса, и мы используем Qt для ее реализации.

Многие люди думают, что Qt — это просто библиотека с графическим интерфейсом, но она является полноценной средой разработки (Framework). Предположим, что приложение полностью реализовано через кроссплатформенную библиотеку классов; проект может быть легко перенесен на несколько платформ (ПК/Windows, Mac/MacOS, Raspberry Pi/Raspbian, Android, iOS, Embedded и т. д.) с небольшими изменениями, поскольку программа представляет собой средство разработки программного обеспечения.

Более новая версия Qt уже поддерживает библиотеку классов Modbus, но чтобы облегчить переписывание на другие языки, мы реализуем эту тестовую программу для наиболее удобного чтения и записи последовательного порта.

Помимо предоставления функции выбора последовательного порта и передачи кода для управления, эта программа дополнительно предоставляет горизонтально рычажное приложение, которое может устанавливать значение указанного объекта. Если вы выбираете COM для последовательного порта, не забудьте указать фактический номер.

На изображении ниже показано выполнение программы на Raspberry Pi и Ubuntu, которая не требует модификации.

Рис. 7-1 Задать значение виджета на Raspberry Pi

Рис. 7-1 Задать значение виджета на Raspberry Pi

 

Рис. 7-2 Задать значение виджета на Ubuntu

Рис. 7-2 Задать значение виджета на Ubuntu

 

CRC (Циклический избыточный код)

Алгоритм циклического избыточного кода довольно прост в применении и в Qt выглядит в виде алгоритма ниже:

QByteArray SetWidgetValue::calculateCRC(QByteArray data)
{
uint16_t crc = 0xFFFF;
for(int idx = 0; idx < data.length(); idx++)
{
uint8_t i = (uint8_t)crc ^ data[idx];
crc >>= 8;
crc ^= crcTable[i];
}
QByteArray ba;
ba.append(char(crc & 0xFF));
ba.append(char(crc >> 8));
return ba;
}

Контент таблицы циклического избыточного кода:

const uint16_t crcTable[] =
{
0X0000, 0XC0C1, 0XC181, 0X0140, 0XC301, 0X03C0, 0X0280, 0XC241,
0XC601, 0X06C0, 0X0780, 0XC741, 0X0500, 0XC5C1, 0XC481, 0X0440,
0XCC01, 0X0CC0, 0X0D80, 0XCD41, 0X0F00, 0XCFC1, 0XCE81, 0X0E40,
0X0A00, 0XCAC1, 0XCB81, 0X0B40, 0XC901, 0X09C0, 0X0880, 0XC841,
. . .
0X8801, 0X48C0, 0X4980, 0X8941, 0X4B00, 0X8BC1, 0X8A81, 0X4A40,
0X4E00, 0X8EC1, 0X8F81, 0X4F40, 0X8D01, 0X4DC0, 0X4C80, 0X8C41,
0X4400, 0X84C1, 0X8581, 0X4540, 0X8701, 0X47C0, 0X4680, 0X8641,
0X8201, 0X42C0, 0X4380, 0X8341, 0X4100, 0X81C1, 0X8081, 0X4040
};

Информация выше не является полной, и если требуется, то с ней можно ознакомиться на github.

Упаковка данных

Ниже приведена ключевая функция, которая вычисляет управляющий код в соответствии с пользовательским интерфейсом и отправляет его на Smart Display:

void SetWidgetValue::on_sbValue_valueChanged(int value)
{
int id = ui->edWidgetID->text().toInt();
sendWidgetValue(id, value);
ui->lbValue->setText(QString::number(value));
}

void SetWidgetValue::sendWidgetValue(int id, int value)
{
QByteArray msg;
uint16_t addr = (uint16_t)(id * 100 + 6);
msg.append(deviceID);
msg.append(writeSingleRegister);
msg.append((uint8_t)addr >> 8);
msg.append((uint8_t)addr & 0xFF);
msg.append((uint8_t)value >> 8);
msg.append((uint8_t)value & 0xFF);
QByteArray msgToSend = msg.append(calculateCRC(msg));
writeSerialPortData(msgToSend);
}

Если вы уже знакомы с Qt, приведенный выше код будет прост для понимания. Если вы не знакомы с Qt, найдите время, чтобы изучить его, так как некоторые из его концепций довольно интересны и заслуживают более глубокого изучения.

VIII. Расширенный пример

Предыдущий пример предназначен только для установки значения объекта, и для изучения наиболее полного примера, можно обаратиться к SmartDisplayConsole. На рис. ниже показан экран выполнения на Raspberry Pi:

Рис. 8-1 SmartDisplayConsole в Raspbian среде

Рис. 8-1 SmartDisplayConsole в Raspbian среде

 

В конце статьи есть URL-ссылка на github, и каждый может обратиться к нему для изучения.

IX. Заключение

В этой статья мы обсудили каждый шаг управления Smart Display, предоставили различные методы управления, и спользуя эти знания и богатое воображение, можно разработать уникальный интерфейс.

X. Ссылки

Serial Terminal Basics
https://learn.sparkfun.com/tutorials/terminal-basics/command-line-windows-mac-linux

Modbus
https://www.modbustools.com/modbus.html
https://www.modbusdriver.com/doc/mbusmaster.net/modbus.htm

XI. Пример исходного кода

GettingStartedWithSmartDisplay
https://github.com/Smart-Display-Series/GettingStartedWithSmartDisplay.git

SmartDisplayConsole
https://github.com/Smart-Display-Series/SmartDisplayConsole.git

 

Link to Technology web page

 

TOP