Рад сообщить о выходе новой версии 0.21.0 языка визуального программирования XOD. Основная тема выпуска - новые типы.

Байтов

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

Раньше, когда вы пытались указать адрес I2C или какое-либо значение регистра, зависящее от оборудования, которые обычно выражаются в шестнадцатеричной или двоичной форме в таблицах данных, вам приходилось преобразовывать все в десятичную форму. Теперь вы можете использовать 2Fh или 00101111b для представления байтового значения непосредственно в его исходной форме.

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

Кстати, мы добавили новую статью: Справочник по типам данных и доработали существующее Руководство по типам данных. Они помогут вам вспомнить детали системы типа XOD.

Порты

Порт - это еще одна вещь, с которой вы сталкиваетесь в каждой программе, работающей на Arduino. Исторически в XOD для обозначения портов платы использовались числа. Это вызывает некоторую двусмысленность: «к какому порту относится значение 3,14?», «3 относится к аналоговому A3 или цифровому 3?». Теперь ответы более очевидны.

Новый тип Port может иметь значения формы A3 или D3, чтобы напрямую ссылаться на аналоговый или цифровой порт 3.

Пользовательские типы

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

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

Вы можете добавить новый терминал xod/patch-nodes/output-self в патч, чтобы сообщить, что вы определяете новый тип с именем этого патча. Эта вещь в сочетании с универсальными типами приносит силу. Мы собираемся использовать его в полной мере в следующих версиях XOD для предоставления средств доступа в Интернет, реализации связи UART и SPI, абстрактного моторного API из моторного оборудования и многого другого. Будьте на связи.

На данный момент новая библиотека I2C использует пользовательский тип i2c для определения аппаратной шины.

Подробнее о настраиваемых типах читайте в новой статье руководства: Определение настраиваемых типов.

Разделить xod/core

Вы могли заметить, что xod/core активно превращался в груду «всего». Ориентироваться уже сложно. Реализация новых типов была хорошей отправной точкой для некоторого разделения. В результате из xod/core были извлечены три библиотеки:

  • xod/math - для математики, выходящей за рамки самой простой арифметики;
  • xod/gpio - ввод и вывод общего назначения, например, базовая связь порта;
  • xod/i2c - разговаривает по шине I²C.

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

Твик xod / common-hardware

Узлы в xod/common-hardware также были обновлены, чтобы использовать новые типы и новые родственные библиотеки.

Следует отметить, что большинство из них теперь предоставляют дополнительные контакты, такие как UPD, DONE и ERR, для более простой обработки случаев, когда аппаратный узел используется совместно в нескольких состояниях или когда требуется точный контроль порядка выполнения.

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

Есть много других мелких улучшений. Прочтите полный список на GitHub.

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

Хороших выходных!