Выход версии бета версии с номером 7.0

После продолжительного перерыва вышла новая бэта версия программы с номером 7.0.

Разработка этой версии заняла более трёх месяцев, но и работа была произведена очень большая.

Что нового в версии 7.0.

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

Изменена идеология пользовательского блока. Теперь  это мультиблок. То есть один пользовательский блок включает в себя один блок или пакет блоков.

Код в мультиблоке представляет собой иерархическую  структуру.  Есть общий код, который вставляется в программу ОДИН раз при использовании в проекте любого блока.  Блоки в пакете можно группировать в папки и группы. Папки служат для визуального разделения блоков. Группы служат для логического разделения. В группах так же есть ветка кода, который вставляется в программу ОДИН раз при использовании в проекте любого блока группы.

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

Каждый блок кода разделён на секции Declare, Setup, Loop, и Function. Каждая секция кода разделена на участки – начало секции и конец секции.  Кроме того в секции Loop в блоке кода каждого инстанса есть участок «Место вставки блока». Этот код вставляется в программу в том месте, в котором на схеме установлен данный блок.  В каждом участке можно создать любое количество частей кода, и для каждой части задать условие его появления в программе.

Такая же архитектура присутствует и в параметрах. Есть общие параметры мультиблока. Они появляются в проекте в настройках всех блоков данного пакета, и при изменении данного параметра в одном блоке (при настройке блока пользователем в проекте), они изменяются сразу у всех блоков. Так же общие параметры есть и у групп блоков, и у каждого блока.  У каждого блока кроме того есть параметры каждого инстанса, которые изменяются независимо у каждого экземпляра данного блока используемого в проекте.

В качестве параметров могут использоваться  переменные проекта, массивы проекта, физические пины проекта, и порты UART. Параметры и отдельные характеристики параметров могут использоваться в условиях, с помощью которых задаётся наличие входов – выходов у блока, наличие других параметров настройки блока, и использование части кода при компиляции.

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

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

В мультиблок можно импортировать блоки, сделанные в старом редакторе. Можно импортировать и целиком библиотеки, но в этом случае импортируются только  блоки CODE. FBD и LAD блоки не импортируются. 

Для различия блоков сделанных в старом и новом редакторе, первые в библиотеке отображаются с припиской (CODE) как и раньше, вторые (Code).

 В качестве первоочередной задачи сейчас у меня стоит написание развёрнутого хелпа на редактор. Пока я не успел его сделать.  Для облегчения понимания как что работает  в редакторе,  я сделал небольшой тестовый блок для дисплеев OLED SPI.

Тестовые_блоки_(Code)

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

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

Следующее новшество в программе – реалтайм просмоторщик кода проекта.  Для каждого открытого проекта можно открыть в отдельном окне просмоторщик кода, который будет выгружаться в Arduino IDE. Для этого надо нажать кнопку с глазиком на тулбаре  основного окна программы.

 

 

Для текущей вкладки проекта откроется окно, в котором будет отображаться код программы для текущего состояния проекта. 

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

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

 

В связи с особенностями языка программирования, в котором я работаю, отображение большого количества цветного текста, притормаживает движок. Если и это не поможет (хотя мне не удалось добиться притормаживания при отключённой подсветке синтаксиса даже на огромном проекте и на слабом ноуте), можно переключиться на ручной режим. В этом случае при наличии изменений в коде проекта,  активируется кнопка «Обновить», с помощью которой можно обновить окно просмоторщика в удобное время.

И последнее большое обновление программы.  Реализовано автоматическое форматирование кода. Он теперь выводится и в просмоторщик, и Arduino IDE в форматированном виде. Возможно, я не учёл все тонкости языка С, и в каких то случаях форматер будет делать свою работу некорректно. В этом случае в настройках проекта можно отключить форматирование кода (эта настройка сохраниться в проекте). В настройках программы можно отключить форматирование для всех вновь создаваемых проектов по умолчанию (для любого проекта можно в любой момент включить этот параметр).

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

  1. Использование в качестве параметров для условий типа ЦП контроллера, и типа платы.
  2. Задание отдельного шрифта для всех полей просмотра и редактирования кода.
  3. Под вопросом (буду обсуждать с Вами) возможность редактирования кода библиотек прямо в редакторе. Сейчас есть возможность просмотра содержимого файлов библиотек, редактирование сделать не сложно, но я пока для себя не решил – нежно ли это и правильно ли это.

Обсуждение тестирования бэта версии происходит здесь 


3

Publication author

759
Comments: 15Publics: 389Registration: 04-02-2018

Leave a Comment

Войти с помощью: