Одно целевое программирование

GUI Composer предлагает несколько различных вариантов получения данных с вашего целевого устройства или отправки данных на ваше устройство на основе действий пользователя. Нажмите на кнопку Добавить. Которая добавит новую запись с этими опциями:

  • Устройство: Вам нужно будет указать устройство. Вы можете ввести частичные имена устройств. Чтобы ограничить набор опций.
  • Подключение: Это поле в большинстве случаев заполняется автоматически на основе выбранного устройства на предыдущем шаге.

  • Исполняемыйфайл : Нажмите кнопку загрузить, чтобы выбрать файл программы из вашей локальной файловой системы.

    Это поле показывает программный (т. е. .out) файл. Который используется для программирования MCU или используется для получения символьной информации для целевых параметров связи XDS.

  • Автоматическое программирование: Это необязательный шаг во всех сценариях. Если эта опция включена. То перед запуском приложения GUI Composer запрограммирует устройство.

3.2.1. Целевая коммуникация

Нажав кнопку Далее, вы перейдете на следующую страницу мастера. Где сможете выбрать нужный способ связи. Нажмите на +кнопку в левом верхнем углу. Чтобы добавить целевую опцию связи.

Каждый целевой вариант связи имеет несколько иной набор опций.

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

Примечание

Для параметров целевой связи XDS требуется указать устройство и файл программы.

3.2.1.1. Взаимодействие с целевым устройством

Существует несколько различных вариантов целевой связи. Которые можно использовать для обмена данными с целевым устройством. Выбор конкретного приложения GUI Composer будет зависеть от вашего целевого устройства. Вашей прикладной программы и способа подключения устройства. Во время создания нового проекта вам нужно будет выбрать. Какой целевой метод связи должна использовать ваша целевая прошивка.

Вы также можете изменить или настроить целевой метод связи позже с помощью свойств проекта.

Совет

GUI Composer теперь поддерживает несколько подключений к данным в одном приложении. Вы можете объединить USB-UART для потоковой передачи данных для визуализации и добавить опцию связи XDS для записи пользовательских изменений для управления работой целевого микропрограммного обеспечения.

(Поддерживается только на некоторых устройствах)

В большинстве случаев вам нужно будет выбрать физическое соединение. Такое как транспорт и кодирование / протокол. Который используется для передачи данных.

Например, опция USB-UART использует кабель USB для подключения устройства. Где данные передаются через UART. Одним из протоколов кодирования данных является JSON. Некоторые варианты могут иметь фиксированный протокол. Например XDS использует протокол JTAG.

В общем случае выбор целевой связи выглядит следующим образом:

  • Нажмите на +кнопку в левом верхнем углу и выберите физический транспорт (например. Сетевой транспорт).

  • Добавьте модель данных. Нажав на add-verboseкнопку. Конкретные параметры модели будут представлены автоматически.

    Точный список опций зависит от выбранного целевого варианта связи.

3.2.1.2. Сеть

В этом случае мы используем сетевой канал связи для разговора с устройством.

IBM IOT

Целевой код связан с библиотекой

GUI Composer использует привязки к ti-model-iot-ibmкомпоненту. Чтобы позволить виджетам автоматически обновляться для отражения значения полученных строк свойств в формате JSON при изменении этих значений. А также для передачи значений свойств целевому объекту через строки в формате JSON при настройке виджета пользователем.

Пожалуйста, обратитесь к Учебнику IoT для получения подробной информации о том. Как это сделать.

Совет

Используйте IBM IoT, если:

  • Ваша цель может общаться с Интернетом.

  • Вы используете IBM IoT broker либо Quickstart. Либо authenticated для связи с вашей целью.

  • Вы хотели бы. Чтобы ваше приложение взаимодействовало с вашим устройством без прямого физического соединения.

MQTT

Целевой код связан с библиотекой

GUI Composer использует привязки к ti-model-iot-mqttкомпоненту. Чтобы позволить виджетам автоматически обновляться для отражения значения полученных строк свойств в формате JSON при изменении этих значений. А также для передачи значений свойств целевому объекту через строки в формате JSON при настройке виджета пользователем.

Пожалуйста, обратитесь к Учебнику IoT для получения подробной информации о том. Как это сделать.

Совет

Используйте MQTT (IoT), если:

  • Ваша цель может общаться с Интернетом.

  • Вы настроили брокера MQTT для связи с вашей целью.

  • Вы хотели бы. Чтобы ваше приложение взаимодействовало с вашим устройством без прямого физического соединения.

HTTP

Целевой код строится с помощью веб-сервера. Который ваше приложение GUI Composer использует для получения данных. Есть две схемы. Которые поддерживаются,

urlencoded и JSON.

Как только вы нажмете кнопку Добавить и добавите HTTP-модель, вам нужно будет ввести адрес веб-сервера и при необходимости предоставить учетные данные. Как только информация о подключении веб-сервера будет указана. Вам нужно будет добавить переменные. Представляющие ваши данные. Кроме того, вам нужно будет нажать кнопку Добавить и заполнить имя переменной, затем путь. На который должен ответить веб-сервер. А затем указать. Будут ли данные закодированы URL-адресом или в формате JSON. Использование формата JSON позволяет ему возвращать несколько фрагментов данных в объекте.

Совет

Используйте HTTP, если:

  • Ваша цель может общаться с Интернетом.

  • Вы настроили веб — сервер для связи с вашей целью.

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

3.2.1.3. USB — UART

Целевое устройство физически подключается с помощью USB-кабеля. И данные передаются с помощью периферийного устройства UART. Вы можете дополнительно указать идентификатор устройства. Который поможет автоматически выбрать правильный COM-порт.

Как только вы нажмете на кнопку Добавить. Будут поддерживаться два варианта:

Монитор и потоковаяпередача .

Модель монитора используется для моделирования связи типа XDS с помощью целевого монитора. В этом случае данные кодируются через пользовательский монитор. Который должен быть интегрирован с вашей целевой программой (микропрограммой). GUI Composer имеет реализацию на стороне хоста. Которая может получать информацию. Но для этого требуется реализация на стороне цели. Которая использует тот же протокол.

Ниже приведен пример протокола pull based protocol как инфраструктуры GUI Composer. Которая будет периодически извлекать данные с целевого устройства.

Потоковая модель используется для потребления данных. Которые целевой объект непрерывно передает на главный компьютер.

Поддерживаются две схемы, JSON и Custom:

  • JSON: В этом случае данные передаются с помощью строк в формате JSON. Пожалуйста, смотрите Последовательный учебник для примера проекта USB — UART over JSON. Который получал данные в кодировке JSON с устройства. Он использует push-протокол. Поскольку целевое приложение передает данные клиенту (т. е. хост-компьютеру)

Совет

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

MSP430Ware MSP430Ware GUI Composer Examples Есть примеры для пусковых панелей на базе MSP430, которые включают примеры проектов прошивки и графического интерфейса.

  • MessagePack: В этом случае данные отправляются по протоколу MessagePack. Который очень похож на JSON. Но является более эффективным двоичным протоколом. MessagePack предлагает множество библиотек на разных языках. Пожалуйста, смотрите [MessagePack.org] (https://msgpack.org/index.html) для получения дополнительной информации.

  • Custom: В этом случае целевое приложение может отправлять пользовательские данные. Оптимизированные для вашего приложения.

    Эта опция обеспечивает наибольшую эффективность при отправке данных. Так как отправляются только указанные данные. Недостатком этого метода являются написанные от руки пользовательские функции Javascript. Которые анализируют данные и привязывают их к виджетам. Этот метод является примером push-протокола. Поскольку целевое приложение передает данные клиенту (т. е. хост-компьютеру) с помощью пользовательского протокола.

3.2.1.4. USB — XDS

Приложение GUI Composer использует отладочный зонд для физического подключения (в большинстве случаев это также через USB-кабель) для обмена данными.

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

Инфраструктура GUI Composer преобразует символьные данные в адреса памяти. Которые затем считываются или записываются из/в.

  • Этот вариант часто является самым простым для начала. Поскольку он не требует каких-либо специальных изменений целевой программы или какой-либо специальной обработки на стороне клиента (хоста). Однако для этого требуется. Чтобы устройство и отладочный зонд имели поддержку неинтрузивного доступа к памяти.

    Эта опция доступна на микроконтроллерах Cortex и устройствах C2000.

Совет

Используйте XDS, если:

  • Вы конвертируете проект из GUI Composer v1 в GUI Composer v2 или у вас есть проект CCS. В который вы хотите добавить пользовательский интерфейс. Не написав много целевого кода для предоставления API интерфейса.

  • Вы хотели бы иметь свободу привязки к любой глобальной переменной на вашем целевом объекте без необходимости изменять свой целевой код

  • Ваше приложение GUI Composer будет извлекать данные из устройства с фиксированным интервалом таймера.

3.2.2. Взаимодействие с использованием строк в формате JSON

JSON, IBM IoT и MQTT target communications options используют строки в формате JSON для сообщений. Для получения дополнительной информации о формате JSON, пожалуйста. Посетите JSON.org.

  • Все поля чувствительны к регистру и не будут работать должным образом. Если есть какие-либо ошибки в орфографии. Прописных и строчных буквах. Пунктуации и т. Д.

  • Используйте “прямые двойные кавычки”. А не завитые “кавычки”

  • \n (0x0A) используется в качестве разделителя между объектами.

    • Не используйте \nв качестве конца строки в строке JSON.

Пример: следующие работы:

Пример: следующее НЕ работает:

{\n }\n }\n 

Вот пример целевого кода (с использованием последовательной библиотеки Energia) для отправки ответа JSON в ваше графическое приложение:

int greenLedState = HIGH; int redLedState = HIGH; ... Serial.print(); Serial.print(redLedState, DEC); Serial.print(); Serial.print(greenLedState, DEC); Serial.print(); 

При привязке к свойству. Подобному Greenсвойству в приведенном выше примере. Используется точечная нотация. Поэтому для привязки к значению зеленого светодиода используйте LEDs.Green.

При отправке значения целевому объекту объект JSON будет динамически создан на основе введенного вами значения привязки.

Например: Если вы введете LEDs.Blueв качестве целевого объекта привязки свойство checkboxes checked. Даже если в целевом объекте для этого объекта JSON нет записи. Целевому объекту будет отправлена следующая строка:

{"LEDs":{"Blue":true}}\n

Где trueбудет заменено значение свойства checkbox checked.

Примечание

Важно отметить. Что тип свойства виджета (например. Boolean) определяет. Что будет отправлено цели (напримерtrue), и цель отвечает за обработку этого.

3.2.3. Диалоговые окна конфигурации USB-UART : JSON, IBM IoT и MQTT

‘Научите’ GUI Composer строкам JSON. Которые посылает ваша целевая программа. Чтобы включить автоматическое завершение

  • Вы можете ЗНАЧИТЕЛЬНО упростить привязку строк свойств/значений JSON. Отправляемых целевым объектом. К виджетам GUI-приложений. Используя одну из расширенных функций диалоговых окон конфигурации целевых коммуникаций.

  • Диалоговое окно Конфигурации отображается. Когда вы создаете Новый проект и выбрали в качестве протокола в диалоговом окне Target Communications “USB-UART : JSON”, “IBM IoT” или “MQTT”. Вы также можете открыть его в любое время. Нажав на Project : Properties и нажав кнопку Next во всплывающем диалоговом окне.

  • Когда страница Мастера целевой связи активна. Щелкните по определенному целевому методу связи в левой части дерева. Чтобы выбрать целевой метод связи. Это покажет настройки для данного конкретного метода обмена данными. Затем нажмите кнопку Подключиться и нажмите кнопку Консоль. GUI Composer попытается подключиться к вашему устройству или брокеру и покажет данные. Которые он получает в консоли. Это решает две задачи:

    • Он проверяет. Что соединение может быть установлено успешно.

    • GUI Composer анализирует полученные строки JSON и создает таблицу имен. Которые можно использовать при указании привязок виджетов. В диалоговом окне спецификация привязки вы можете вызвать автоматическое завершение. Нажав CTRL + пробел.

  • После создания проекта вы можете повторно открыть это диалоговое окно в любое время. Выбрав пункт Проект / Свойства на панели инструментов в верхней части конструктора и нажав кнопку Далее в мастере свойств.

Используйте библиотеку aJson Energia для создания объектов JSON в вашей прошивке

Самый простой способ начать публикацию объектов JSON-это использовать библиотеку aJson. Входящую в состав инструмента Energia. Вы можете скачать инструмент Energia desktop tool с сайта Energia или использовать Cloud IDE по адресу dev.ti.com, в которую интегрирована Мы рекомендуем вам использовать примеры. Включенные в библиотеку aJson. Чтобы лучше понять. Как использовать библиотеку aJson в вашем собственном проекте.

В CCS Cloud IDEСоздайте Новый Проект . Выберите свое устройство и прокрутите вниз до библиотек Energia. Разверните узел aJson и выберите один из примеров.

В качестве примера кода ниже:

типа bool createJSONString(структура sensorData *localDataPtr) { aJsonObject* корень = aJson.функции createobject(); aJsonObject* возвращение null = aJson.функции createobject(); если (корень != Значение null && возвращение null != Значения null) { aJson.addItemToObject(корень, ,возвращение null); aJson.addStringToObject(возвращение null, ,свойство DeviceID); aJson.addNumberToObject(возвращение null, ,localDataPtrout_temp); aJson.addNumberToObject(возвращение null, ,localDataPtrins_hum); aJson.addNumberToObject(возвращение null, ,localDataPtrhum_state); aJson.addNumberToObject(возвращение null, ,localDataPtrтемп); publishJsonString = aJson.print(root); aJson.DeleteItem(root); return true; } else return false; } 

Это создает объект JSON показанный ниже который затем может быть отправлен брокеру MQTT или через UART через USB соединение:

 { "d": { "myName":"f4b85e01868e", "outside_temperature":3, "inside_humidity":28, "humidifier_state":1, "inside_temperature":20 } } 

Примеры галереи

Ниже приведены ссылки на соответствующий целевой код и демонстрируется альтернативный метод с низкими накладными расходами для анализа входящих строк JSON. Отправляемых графическим приложением. Код также периодически отправляет информацию о состоянии светодиода в графическое приложение:

3.2.3.1. USB-UART : Монитор

Использование этого метода для доступа к целевым переменным позволяет простым способом создать приложение GUI Composer. Указав глобальные переменные в привязках виджетов.

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

Основным недостатком является то. Что ваша программа должна быть скорректирована. Чтобы включить поддержку периферийных устройств UART и простой монитор. Реализующий протокол чтения/записи памяти. GUI Composer преобразует информацию о символах. Введенную в привязки виджетов. В адрес памяти. А затем запрашивает монитор для выполнения этого чтения и отправки результатов обратно на главный компьютер. Этот монитор потребует некоторых циклов. Чтобы иметь возможность предоставлять данные в ваше приложение GUI Composer. Накладные расходы трудно поддаются количественной оценке. Поскольку они зависят от того. Сколько данных ваше приложение GUI Composer будет извлекать из целевого объекта для обновления виджетов.

На странице Целевого программирования вы должны выбрать устройство. С которым работаете. И загрузить программу. Это результат построения вашего проекта CCS в CCS Desktop или CCS Cloud. GUI Composer будет использовать символы. Содержащиеся в этом файле. Для получения адресов памяти на устройстве. В большинстве случаев программа уже должна быть запрограммирована на вашем устройстве.

Пример: библиотечный монитор

Вы можете использовать библиотеку Energia. Которая реализует целевой монитор. Чтобы быстро начать работу с GUI Composer и программой на основе Energia. В этом случае программа Energia включает в себя библиотеку мониторов. А затем вы можете начать привязку переменных к виджетам.

Пример: Монитор Barebones

Вам нужно будет взять реализацию исходного кода целевого монитора и интегрировать его с вашей программой. Это лучше всего подходит. Если у вас уже есть программа. И вы хотели бы добавить монитор на основе GUI Composer data exchange. Вам также нужно будет добавить поддержку периферийного устройства UART. Которое целевой монитор будет использовать для выполнения запросов чтения/записи памяти GUI Composer.

3.2.3.2. USB-UART : Пользовательский

Этот метод доступа к целевым данным позволяет полностью контролировать способ передачи данных по периферийному устройству UART.

  • Основное преимущество этого метода заключается в том. Что передаваемые данные можно полностью контролировать. Поскольку нет общих накладных расходов протокола. Пользователь определяет протокол. В качестве примера тривиальная одинарная переменная float в JSON может быть представлена следующим {"value":"12345.0"}образом . Для отправки этого единственного значения требуется 19 байт. Если бы это было отправлено в двоичном формате (то есть только само значение). То все число могло бы быть представлено 4 байтами (на большинстве архитектур). Эта опция обычно несет минимальные накладные расходы на передачу данных. Однако это самый сложный вариант для разработчика приложения.

Разработчику необходимо:

  • Предоставьте целевое приложение (микропрограммное обеспечение). Которое отправляет/получает данные через UART. Этот параметр потребует добавления кода периферийной обработки UART в целевое приложение.

  • Реализуйте функции Javascript на стороне хоста (клиента). Которые анализируют полученные данные и делают их доступными для виджетов. Эта функция может быть обеспечена. Выполнив шаги пользовательского кодека. Перечисленные ниже.

Примечание

Пример: Пользовательский кодек

  1. Создайте новый проект. Используя USB-UART в качестве опции транспорта. И добавьте потоковую модель с пользовательским выбором протокола. Вы можете дополнительно предоставить программу для прошивки устройства через целевую страницу программирования. Однако это необязательно. Если на устройстве уже установлена правильная прошивка.

  2. Закройте диалоговое окно новый проект. Теперь выберите Файл → Новый → Пользовательский файл кодека. Откроется файл Javascript. Содержащий шаблонный код. А документация в комментариях поможет вам с разбором пользовательских данных и обновлением виджетов.

  3. Пожалуйста, обратитесь к странице Обработки пользовательских данных UART в Javascript для получения дополнительной информации о том. Как добавить пользовательские файлы Javascript. Которые позволяют добавлять код синтаксического анализа.

3.2.3.3. Конфигурация для связи XDS

Этот целевой вариант связи опирается на функциональность отладочных зондов и возможности устройства (процессора) для обеспечения неинтрузивного доступа к памяти. Он поддерживается на большинстве устройств на базе Cortex и на C2000. Для устройств MSP430 вам нужно будет использовать опцию USB-UART : Monitor, чтобы получить аналогичное поведение.

На странице Целевого программирования вы должны добавить устройство и файл программы. Которые будут использоваться для связи. Файл программы и устройство должны быть сгенерированы с помощью символов. Это выходной файл при построении проекта CCS в CCS Desktop или CCS Cloud. На этом этапе файл программы должен быть загружен с вашего локального компьютера.

Совет

Если вы использовали CCS Cloud для создания своей программы. То сначала вы должны загрузить двоичный файл на свой локальный компьютер. А затем загрузить его в GUI Composer. Нажатие на кнопку FLASH позволяет запрограммировать ваше устройство с помощью загруженного двоичного файла.

На целевой странице связи добавьте правильную модель программы. Которая будет использоваться для разрешения символов. Указанных на Целевой странице программирования. Будут использоваться файл программы и устройство. Указанные на этапе Целевого программирования. Нажмите на кнопку Подключиться и вкладку Консоль, чтобы узнать. Может ли GUI Composer успешно подключиться к вашему устройству. Вы должны увидеть сообщение в консоли. Которое гласитHardware Connected:

Примечание

Пример: Пользовательские файлы целевой конфигурации (.ccxml)

Чтобы работать с пользовательским оборудованием или выполнять расширенные целевые конфигурации. Такие как обход устройства. Вы можете дополнительно предоставить свой собственный файл .ccxml для использования в проекте GUI Composer. CCS Desktop-это рекомендуемый способ создания или изменения файла. ccxml.

Настройте свой проект GUI Composer для использования пользовательского файла .ccxml:

  • Переименуйте свой пользовательский файл в target_config.ccxml.

  • Откройте свое приложение в GUI Composer.

  • Выберите Проект / Свойства в меню GUI Composer.

  • Нажмите кнопку Далее, чтобы перейти на целевую страницу программирования.

  • В поле Исполняемый файл Целевой страницы программирования вашего проекта нажмите кнопку Загрузить и выберите target_config.ccxmlнужный файл.

  • Убедитесь, что ваш файл загружен. Вы должны увидеть target_config.ccxmlэто в выпадающем списке.

  • Установите Исполняемое поле обратно. Выбрав исходный .outфайл с помощью раскрывающегося списка.

  • Нажмите кнопку ОК, чтобы сохранить свойства проекта.

Примечание

Убедитесь, что выбран исполняемый файл .outдля вашего проекта.

Удалите пользовательский файл .ccxml из проекта GUI Composer:

  • Откройте свое приложение в GUI Composer.

  • Выберите Проект / Свойства в меню GUI Composer.

  • Нажмите кнопку Далее, чтобы перейти на целевую страницу программирования.

  • В поле Исполняемый файл страницы Целевого программирования вашего проекта щелкните раскрывающийся список в поле Исполняемый файл и выберите target_config.ccxmlфайл

  • Нажмите на значок корзины справа от выпадающего списка. Чтобы удалить его из проекта.

  • Установите Исполняемое поле обратно. Выбрав исходный .outфайл с помощью раскрывающегося списка.

  • Нажмите кнопку ОК, чтобы сохранить свойства проекта.