Приборы, протокол и «Карат-Дата»



Задание

На курсовой проект/работу

Студент Матафонов Денис Сергеевич

Группа РИ-380013

специальность/направление подготовки: Программная инженерия

 

1.Тема курсового проекта/работы: Разработка мобильного приложения для считывания архивных данных теплосчетчиков и вычислителей «Карат»

2. Содержание проекта/работы, в том числе состав графических работ и расчетов Введение; Декомпозиция проблемы; Приборы и “Карат-Дата”; Стек технологий; Архитектура приложения; Организация опроса прибора: Протокол, Подключение по USB, Подключение по ТСР; Взаимодействие с пользователем; Дизайн; Работа с файлами; Заключение; Список литературы; Приложения.

 

3.Дополнительные сведения __________________________________________________________________________________

____________________________________________________________________________________________________________________________________________________________________

4. План выполнения курсового проекта/работы 

Наименование элементов проектной работы Сроки Примечания Отметка о выполнении
Подготовка: декомпозиция, аналоги, изучение стека технологий 1.10.20 - 15.10.20   Выполнено
Опрос прибора по TCP 15.10.20 - 20.12.20   Выполнено
Разработка активностей, интерфейса пользователя 1.11.20 - 30.12.20   Выполнено
Опрос прибора по USB 20.12.20 - 13.01.21   Выполнено

 

 Руководитель ________________________/ Изотов И. Н. /


ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ.. 4

1 Декомпозиция проблемы.. 6

2 Приборы, протокол и «Карат-Дата». 7

3 Стек технологий. 12

4 Архитектура приложения. 15

5 Организация опроса прибора. 17

5.1 Протокол. 17

5.2 Подключение по ТСР. 20

5.3 Подключение по USB.. 23

6 Дизайн. 25

7 Взаимодействие с пользователем.. 27

8 Работа с файлами. 32

ЗАКЛЮЧЕНИЕ.. 34

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.. 36

ПРИЛОЖЕНИЯ.. 37

 


ВВЕДЕНИЕ

КАРАТ – это группа компаний, специализирующаяся на разработке, производстве и поставке теплотехнического оборудования, выполнении широкой гаммы услуг в области тепло – водоснабжения, диспетчеризации и телеметрии, автоматизации инженерных систем. Центральное место в деятельности Объединения КАРАТ занимает приборостроение. Это направление успешно развивается на базе Научно-производственного предприятия «УРАЛТЕХНОЛОГИЯ», с продукцией и представителями которого мы и работали в ходе реализации этого проекта. Предприятие производит широкий модельный ряд приборов учета воды, тепла и коммуникационное оборудование для систем сбора данных [1].

Конкретно наш проект направлен на работу со следующими приборами:

- квартирные теплосчетчики КАРАТ-Компакт-2-213 для учета тепловой энергии, ХВС, ГВС;

- общедомовые теплосчетчики и вычислители КАРАТ-306; КАРАТ-307.

Что же необходимо сделать нам, в чем заключается проблема?

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

Сейчас это реализовано с помощью десктопного приложения Карат-Дата [2], написанного на языке Delphi. Программа представляет собой интерфейс, в котором можно выбрать, к какому прибору мы обращаемся, какой архив у него запрашиваем. Затем прибор опрашивается по протоколу modbus и результаты записываются в csv файл. Проблема в том, что приборы чаще всего не оснащаются отдельным передатчиком, чтобы связаться с прибором по сети (через ТСР). Таким образом, контролёру приходится приходить к прибору с ноутбуком и опрашивать прибор. В частности, тепловычислители опрашиваются по USB (USB-B), а теплосчетчики — через оптический порт с помощью специальной оптоголовки. Понятно, что клиенты КАРАТа хотят иметь более удобный способ опроса приборов, и самый очевидный из них — создание мобильного приложения. Но в штате нет мобильных разработчиков или тех, кто может без потери производительности освоить эту технологию, поэтому проект был предложен студентам. Отсюда, наша цель — создать аналог программы Карат-Дата на мобильных устройствах, который мог бы работать с вышеупомянутыми приборами.


Декомпозиция проблемы

Разберем подробнее, что нам необходимо сделать для достижения цели — создания мобильного приложения для считывания архивных данных теплосчетчиков и вычислителей «Карат».

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

С другой стороны, есть особенности мобильной платформы. Заказчик предполагал, что лучшим вариантом будет создание приложения для ОС Android, и в главе о стеке технологий будет объяснено, почему это верное решение.

Таким образом, формируются следующие задачи:

1. Изучение и проработка открытия, поддержания и закрытия соединения по ТСР и USB непосредственно из приложения.

2. Понимание специфики работы с контроллерами и их драйверами в ОС Android.

3. Реализация версии протокола ModBus для приборов на Java, изучение соответствующих библиотек.

4. Создание сущностей, отражающих запрос.

5. Проработка пользовательского поведения, формирование активностей.

6. Реализация записи и сохранения файлов-отчетов.

7. Дизайн активностей.

8. Продумывание плана поддержки приложения.

То есть, для реализации проекта нужны не только знания о мобильной разработке, но и работе в сетях, с приборами. Поэтому работа в команде изначально делится на работу с компонентами Android (прежде всего интерфейсом), и вещами, напрямую с платформой не связанными, такими как протокол, по которому приложение будет «общаться» с прибором.

Приборы, протокол и «Карат-Дата»

Рисунок 1 — Теплосчетчик Карат-213

Дадим представление о том, с какими исходными велась работа.

КАРАТ-Компакт 2-213 (см.. Рисунок 1) — квартирный ультразвуковой теплосчетчик.

На экране прибор постоянно отображает значение об измеренной тепловой энергии с момента включения. Эти же значения сохраняются в энергонезависимой памяти. Кроме этого, прибор обладает возможностью просмотра дополнительных значений на дисплее, которые он не показывает постоянно, но сохраняет в энергонезависимой памяти [3].

При этом, теплосчетчик ведет архивы данных значений, количество архивных записей зависит от типа периода:

− помесячный интегральный (накапливаемый) – не менее 144 месяца (записей);

− помесячный — не менее 144 месяца (записей);

− посуточный — не менее 62 суток (записей);

− почасовом — не менее 48 часов (записей);

− журнал — не менее 100 событий (записей).

Рисунок 2 — Оптоголовка USB

Считывание данных происходит через оптоголовку IRDA-USB КАРАТ-916 (см. Рисунок 2) [4]. Таким образом, смартфон будет непосредственно работать с контроллером этой головки (определяется как STMicroelectronics Virtual COM Port), подсоединяемой к инфракрасному порту прибора.

Рисунок 3 — Тепловычислитель Карат-307

Вычислители КАРАТ-30x применяются в условиях круглосуточной эксплуатации на объектах ЖКХ, энергетики, промышленности, сельского хозяйства: в узлах коммерческого учета коммунальных ресурсов, индивидуальных и центральных тепловых пунктах; в энергетических и промышленных установках; в информационно-измерительных системах учета, контроля и управления энергетическими и технологическими процессами.

Он ведет следующие архивы (см. Таблица 1).

Таблица 1 — Состав и глубина архивов на примере Карат-307 (см. Рисунок 3)

Архивы

Почасовой,     часов 1 536
Посуточный, суток 1 456
Помесячный, месяцев 48
Аварийный посуточный, записей 496
Журнал событий, записей 1 008
Защищенный журнал, записей 4 096

К тепловычислителям уже можно подключиться напрямую, с помощью провода USB – USB-B (в случае смартфона добавится OTG). Перевод сигналов на USB-шину осуществляет плата FTDI – решение это часто встречающееся и дает надеяться, что механизм работы с ней в том числе и через мобильные приложения отработан сообществом.

Рисунок 4 — Интерфейс программы Карат-Дата

В введении было разобрано, как работает эта программа. На снимке экрана видно (см. Рисунок 4), какие параметры нужно задавать, как происходит обмен данными. В данном примере идет опрос прибора Карат-307 через USB-порт.

Обмен данными происходит по редакции протокола ModBus от производителя. Протокол передачи данных подобен протоколу ModBus-RTU. Отличительной особенностью протокола ModBus307 является то, что в значении начального регистра зашифрована структура данных. В разных «регистрах» ModBus307 находятся разного размера структуры. Так же в приборе есть регистры с «чистым» протоколом ModBus-RTU, специально для работы с различными ОРС серверами и SCADA системами (5-й пункт оглавления).

Протокол подразумевает на общей шине одно ведущее устройство (персональный компьютер, Луч-МК, преобразователь Ethernet-RS485 или подобное) и до 247 ведомых устройств (КАРАТ). В одной сети могут работать приборы КАРАТ и ЭЛЬФ (по протоколу ModBus для ЭЛЬФ).

Характеристики последовательной передачи данных: 8 бит в двоичном символе, 1 стоп бит, без бита чётности. Байты передаются пакетами. Окончанием пакета на любой скорости приёма и передачи является пауза более 30мс в передаче байт (пауза настраивается в приборе из меню, может быть задана от 5мс до 100мс и более). КАРАТ отвечает на запросы с задержкой от 10мс до 3с (3с возможно при поиске архивной записи по дате по всему массиву данных). [Протокол передачи данных ModBus307 для приборов Карат-306, Карат-307, Карат-308.]


Стек технологий

Концептуально стек технологий можно представить так:

Рисунок 5 — Стек технологий (исходник графа: см. Приложение А)

Видно, что в проекте должны существовать несколько уровней и независимых связей - по сути, путей от приложения на смартфоне до данных приборов (см. Рисунок 5). Разберем подробнее.

 

Android SDK — универсальное средство разработки мобильных приложений для операционной системы Android. Отличительной чертой от обычных редакторов для написания кодов является наличие широких функциональных возможностей, позволяющих запускать тестирование и отладку исходных кодов, оценивать работу приложения в режиме совместимости с различными версиями ОС Android и наблюдать результат в реальном времени (опционально) [5].

 

USB On-The-Go (USB OTG или просто OTG) - это спецификация, впервые использованная в конце 2001 года, которая позволяет USB-устройствам, таким как планшеты или смартфоны, выступать в качестве хоста, позволяя другим USB-устройствам, таким как USB-флеш-накопители, цифровые камеры, мышь или клавиатуры, подключаться к ним. Использование USB OTG позволяет этим устройствам переключаться между ролями хоста и устройства. Мобильный телефон может считывать данные со съемного носителя в качестве хост-устройства, но при подключении к хост-компьютеру представлять себя как запоминающее устройство USB [6].

 

Modbus — коммуникационный протокол, основан на архитектуре ведущий-ведомый (master-slave). Использует для передачи данных интерфейсы RS-485, RS-422, RS-232, а также Ethernet сети TCP/IP (протокол Modbus TCP). Например, сообщение Modbus RTU состоит из адреса устройства SlaveID, кода функции, специальных данных в зависимости от кода функции и CRC контрольной суммы [7].

 

Версия протокола Modbus для приборов “Карат” основана на Modbus-RTU. Если используется конвертер, позволяющий передавать сообщения по TCP, то к нему сначала нужно подключиться по ТСР, а потом общение происходит, как в RTU. Такую возможность - режим “RTU over TCP” - предоставляет java-библиотека JLibModbus [8]. Протокол Modbus позволяет одинаково отправлять данные и по ТСР (через конвертер), и через интерфейсы RS-232 (оптоголовка, Карат-2) или RS-485 (FTDI, Карат-3).

 

 

Под FTDI мы понимаем чип компании Future Technology Devices International — шотландской частной компании, работающей в сфере полупроводниковых устройств. Специализируется в области, связанной с шиной USB. Она разрабатывает, производит и осуществляет поддержку устройств и соответствующих программных драйверов для преобразования последовательной передачи данных по RS-232 или уровней TTL в сигналы шины USB, для того чтобы дать возможность современным компьютерам использовать простой классический RS-232 интерфейс, а разработчикам не приходилось вникать в сложности USB интерфейса.
4 Архитектура приложения

Операционная система Android имеет три весьма различных и сильно отделённых друг от друга уровня:

1. В основе лежит модифицированная и урезанная версия Linux.

2. Над уровнем Linux находится уровень инфраструктуры приложения, содержащий виртуальную машину Dalvik, веб-браузер, базу данных SQLite, некие инфраструктурные решения и Java API.

3. И, наконец, уровень написанных в Google Android-приложений. Вообще говоря, они являются расширением уровня инфраструктуры, поскольку разработчик может использовать эти приложения или их части как строительные блоки для собственных разработок [9].

Проект разрабатываемого приложения состоит из следующих частей:

1) Java-классы и интерфейсы. Условно можно разделить на классы активностей и фрагментов (отвечают за функциональность элементов UI), классы-модели данных, классы-обработчики и другие.

2) Манифест приложения [10].

a) объявляет имя Java-пакета приложения, который служит уникальным идентификатором;

b) описывает компоненты приложения — деятельности, службы, приемники широковещательных намерений и контент-провайдеры, что позволяет вызывать классы, которые реализуют каждый из компонентов, и объявляет их намерения;

c) содержит список необходимых разрешений для обращения к защищенным частям API и взаимодействия с другими приложениями, а именно разрешения на передачу данных, запись файлов и подключения USB-устройств;

d) объявляет разрешения, которые сторонние приложения обязаны иметь для взаимодействия с компонентами данного приложения — в нашем приложении главным образом ассоциация с USB;

e) объявляет минимальный уровень API Android, необходимый для работы приложения - API level 21 (Android 5.0) — поддерживается на 94% устройств.

3) Ресурсы. К ним относятся:

a) файлы разметок активностей и фрагментов — пользовательский интерфейс;

b) строковые ресурсы;

c) ресурсы изображений, стилей, наборы цветов.

4) Файлы конфигурации Gradle. Gradle — система автоматической сборки. Gradle сам по себе не имеет функционала сборки Android-проекта, в этом ему помогает плагин, который разрабатывается вместе с Android SDK. В главном сборочном скрипте build.gradle Android Studio самостоятельно добавляет зависимость от этого плагина. Именно в зависимостях Gradle формируется набор дополнительных библиотек, используемых в проекте.

Организация опроса прибора

Протокол

Напомним, протокол передачи данных подобен протоколу ModBus-RTU. Отличительной особенностью протокола ModBus307 является то, что в значении начального регистра зашифрована структура данных. В разных «регистрах» ModBus307 находятся разного размера структуры. Так же в приборе есть регистры с «чистым» протоколом ModBus-RTU, специально для работы с различными ОРС серверами и SCADA системами. Структура пакетов для команды чтения с прибора (0x03) указана в таблице (см. Таблица 2).

Таблица 2 — Структура пакета чтения с прибора

Байты

1 2 3 4 5 6 7 8
Адрес Функция H L H L L H

Регистры

1

2

3

4

Андрес и функция

Начальный регистр

Количество регистров

Контрольная сумма

Байты попарно объединены в регистры. H — старшая часть регистра, L — младшая. «Начальный регистр» и «Количество регистров» передаются старшим байтом вперёд. Контрольная сумма передаётся младшим байтом вперёд. Адрес может принимать значения от 1 до 247. Адрес 0 является широковещательным. Функция может принимать значения 0х03 (чтение данных из прибора), 0х10 (запись данных) и пользовательская функция 0х42 (чтение архивной записи одной транзакцией).

КАРАТ в ответ на корректный «пакет чтения с прибора» отвечает пакетом, структура которого указана в таблице ниже (см. Таблица 3). Если полезные данные имеют нечетное количество байт, то они дополняются одним байтом для соответствия со стандартом ModBus, в котором данные передаются регистрами. Количество передаваемых байт определяется размером структуры данных, размещаемой в регистре «Начальный регистр» и не зависит от значения «Количество регистров».

Таблица 3 — Структура «ответного пакета» на корректный пакет чтения с прибора

Байты

1 2 3 N байт данных N+4 N+5
Адрес Функция 0х03 Счётчик байт Данные - четное количество байт определенной структуры младшими байтами вперед

Контрольная сумма

Способ считывания позволяет экономить ресурсы батареи, при питании от неё прибора. Вычислитель ищет необходимую архивную запись по всему массиву данных только один раз за всё время чтения выбранного архива. Алгоритм таков:

1) Записать в регистр 0х0060 дату и время требуемой записи или в регистр 0х0061 индекс требуемой записи.

2) Считать требуемую запись из регистра 0х00Y0 (почасовую из 0х0000; посуточную из 0х0010; помесячную из 0х0020; интегральную помесячную из 0х0030; аварийную посуточную из 0х0040; журнала событий из 0х0050; защищенного журнала из 0х0070).

3) Считать следующую в будущем архивную запись относительно последней полученной архивной записи из регистра 0x00Y5 (почасовую из 0х0005; посуточную из 0х0015; помесячную из 0х0025; интегральную помесячную из 0х0035; аварийную посуточную из 0х0045; журнала событий из 0х0055; защищенного журнала из 0х0075) или считать следующую в прошлое архивную запись относительно последней полученной архивной записи из регистра 0x00Y7 (почасовую из 0х0007; посуточную из 0х0017; помесячную из 0х0027; интегральную помесячную из 0х0037; аварийную посуточную из 0х0047; журнала событий из 0х0057; защищенного журнала из 0х0077).

4) Повторять предыдущий пункт до окончания архива или до получения нужного количества архивных записей.


Подключение по ТСР

Напомним, приборы серии Карат-30х могут с помощью специального конвертера быть соединены с сетью. Поэтому следовало организовать опрос приборов и через ТСР-соединение.

Протокол управления передачей ТСР отвечает за проверку корректной доставки данных от клиента к серверу. Данные могут быть потеряны в промежуточной сети. TCP добавлена возможность обнаружения ошибок или потерянных данных и, как следствие, возможность запросить повторную передачу, до тех пор, пока данные корректно и полностью не будут получены.

Организовать ТСР-передачу в Android можно так же, как в любом другом java-приложении - при помощи сокетов. Однако наша задача - отправлять данные по протоколу, и в этой ситуации следует обратиться к библиотекам, которые предоставляют нам абстракции более высокого уровня - именно Modbus-запросы и ответы.

Было изучено и апробировано несколько библиотек: jamod, его форк modbus4j, jlibmodbus. Именно последняя версия, написанная разработчиком оренбургского предприятия “Инвентор” В.Ю.Кочедыковым, легла в основу опроса приборов в нашем приложении.

Опрос прибора по TCP разбивается на несколько этапов.

В первую очередь, он должен быть реализован в отдельном потоке, так как сетевые операции в основном потоке - по сути, потоке UI - в Android запрещены.

Для открытия соединения задаются его параметры - TCPParameter. В этом классе определяются хост, порт (введенные пользователем), условие разрыва (keepAlive).

Мы подключились к серверу-конвертеру, но дальше нам нужно общаться с прибором на другом уровне - через последовательный порт. Для этого с помощью класса SerialPortFactoryTcpClient, передавая в него параметры ТСР, создаем SerialParameter, с помощью которого создаем класс-мастер, который будет отвечать за установку соединения и отправку запросов. Реализованная возможность работы по Modbus-RTU через TCP-соединение - одна из причин выбора рассматриваемой библиотеки.

Назначив срок ожидания ответа, открываем соединение, можно делать запросы. Нас интересует запрос с функцией 0х03, то есть команда на запрос аналогового вывода.

Пример запроса (см. Таблица 4) AO с регистров от #40108 до 40110 для SlaveID адреса устройства 17. Адрес первого регистра будет 006B hex = 107, т.к. счет ведется с 0 адреса.


Таблица 4 — Пример запроса и ответа HoldingRegisters

Байт Запрос Байт Ответ
(Нех) Название поля (Нех) Название поля
11 Адрес устройства 11 Адрес устройства
03 Функциональный код 03 Функциональный код
00 Адрес первого регистра Hi байт 06 Количество байт далее
Адрес первого регистра Lo байт АЕ Значение регистра Hi #40108
00 Количество регистров Hi байт 41 Значение регистра Lo #40108
03 Количество регистров Lo байт 56 Значение регистра Hi #40109
76 Контрольная сумма CRC 52 Значение регистра Lo #40109
87 Контрольная сумма CRC 43 Значение регистра Hi #40110

 

40 Значение регистра Lo #40110
49 Контрольная сумма CRC
AD Контрольная сумма CRC

В JLibModbus это реализовано при помощи классов ReadHoldingRegistersRequest/Response.

Запросу (request), в соответствии с протоколом, назначаются адрес устройства (Slave ID), адрес стартового регистра (offset) и количество считываемых байт (quantity). Когда запрос создан, он передается мастеру, получается ответ (response). Зная длину полученных данных, необходимо разобрать ответ в зависимости от запроса, например, получить серийный номер прибора или данные за конкретный день.

Запросы отправляются последовательно, в зависимости от результатов предыдущих. Так, нельзя считать архивы, если не получена их конфигурация.

С точки зрения организации кода многие запросы и ответы оформлены в виде классов-сущностей, а расшифровка ответов производится в методах из написанного класса Util.

Опрос визуализируется при помощи листа расшифрованных сообщений от сервера. Обычно это производится при помощи адаптера прокручиваемого списка на экране, который нужно уведомлять об изменении ресурса с результатами. Но так как опрос происходит в отдельном потоке, обратимся к UI-потоку при помощи перегрузки Activity.this.runOnUiThread.


 

Подключение по USB

Особенности работы с как таковым опросом прибора описаны в предыдущему пункте, подключение по USB отличается методами установки соединения.

Физически к смартфону подключается OTG-переходник. Затем, в случае с приборами трехсотой серии, по USB-кабелю сигнал приходит в чип FTDI, который был рассмотрен ранее.

Сам по себе Android, начиная с версии 3.1, умеет работать как хост USB с компьютерными мышами и клавиатурами. Также можно управлять и устройствами USB HID, USB CDC (виртуальный COM-порт), или последовательными интерфейсами на USB. Однако приложение должно назначить необходимый драйвер, а также иметь разрешение и приемник намерений на работу с устройствами USB.

Каждый тег <activity> поддерживает вложенные узлы <intent-filter>. Элемент <intent-filter> определяет типы намерений, на которые могут ответить деятельность, сервис или приемник намерений. Фильтр намерений объявляет возможности его родительского компонента — что могут сделать деятельность или служба и какие типы рассылок получатель может обработать. Фильтр намерений предоставляет для компонентов-клиентов возможность получения намерений объявляемого типа, отфильтровывая те, которые не значимы для компонента, и содержит дочерние элементы <action>, <category>, <data>. В случае подключения USB-девайса:

<intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/usb_device_filter" />

Затем следует работа со стандартной библиотекой android.hardware.usb и библиотекой usb-serial-for-android, которую поддерживает и официальные разработчики платформы.

Приложение сначала с помощью USB-менеджера получает список подключенных устройств, а UsbSerialDriver помогает выяснить, есть ли подобное в списке драйверов. На данный момент поддерживаются:

− FTDI FT232R, FT232H, FT2232H, FT4232H, FT230X, FT231X, FT234XD;

− Prolific PL2303;

− Silabs CP2102 and all other CP210x;

− Qinheng CH340, CH341A и некоторые другие.

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

Для оптоголовки, которая считывает данные с приборов двухсотой серии, обращаться нужно на другом уровне: нет чипа-переводчика FTDI. Решение разрабатывается.


Дизайн

Приложение имеет простой пользовательский интерфейс, с похожей логикой как у прошлой программы КАРАТ-ДАТА, для удобного использования.

В приложении содержатся 2(3) экрана. На рисунке (см. Рисунок 6) изображен вид главного экрана, где можно внести всю необходимую информацию, для формирования отчетов по данным архивов:

− Имя для сохранения отчета.

− Выбор прибора (вычислители КАРАТ-306/7/8 или теплосчётчики КАРАТ-КОМПАКТ-2-213/223).

− Выбор начальной даты, для опроса прибора.

− Выбор типов считываемых архивов.

Рисунок 6 — Интерфейс приложения «Карат-Дата» на смартфоне

     Перейдя на второй экран (см. Рисунок 7), пользователь выбирает настройки параметров линии связи:

− Вручную вводится Port и адрес прибора.

− Если пользователь выбрал TCP подключение, то дополнительно в отведенном поле вводится IP адрес.

− Если выбрано USB подключение, то из выпадающего списка выбирается скорость обмена.

Рисунок 7 — Интерфейс приложения «Карат-Дата» (второй экран)

Решение брендируется цветами НПО «Карат», а также иконками, выполненными в нескольких разрешениях. В оформлении выбрана комфортная тёмная тема.


Дата добавления: 2021-02-10; просмотров: 314; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!