NOTICE
Этот репозиторий содержит публичный FTC SDK для сезона соревнований SKYSTONE (2019-2020).
Ранее этот программный проект размещался здесь. Команды, участвующие в SKYSTONE Challenge, должны использовать этот новый репозиторий SKYSTONE вместо более старого (и больше не обновляемого) репозитория ftc_app.
Добро пожаловать!
Этот репозиторий GitHub содержит исходный код, используемый для создания Android-приложения, управляющего роботом соревнований FIRST Tech Challenge. Чтобы использовать этот SDK, загрузите/клонируйте весь проект на свой локальный компьютер.
Начало работы
Если вы новичок в робототехнике или в FIRST Tech Challenge, вам стоит ознакомиться с учебным пособием по FTC Blocks, чтобы понять, как пользоваться системой управления:
Онлайн-учебник по FTC Blocks
Даже если вы опытный Java-программист, полезно начать с учебного пособия по FTC Blocks, а затем перейти на инструмент OnBot Java или в Android Studio.
Загрузка проекта
Если вы программируете в Android Studio, есть несколько способов загрузить этот репозиторий. Обратите внимание: если вы используете Blocks или инструмент OnBot Java для программирования робота, загружать этот репозиторий не нужно.
- Если вы пользователь git, вы можете клонировать самую актуальную версию репозитория:
git clone https://github.com/FIRST-Tech-Challenge/SKYSTONE.git
-
Или, если хотите, вы можете воспользоваться кнопкой «Download Zip», доступной на главной странице репозитория. Загрузка проекта в виде .ZIP-файла позволит сохранить приемлемый размер загружаемых данных.
-
Также вы можете загрузить папку проекта (в виде архива .zip или .tar.gz) из раздела Downloads на странице Releases этого репозитория.
После того как вы загрузили и (при необходимости) распаковали папку, вы можете использовать Android Studio для импорта папки («Import project (Eclipse ADT, Gradle, etc.)»).
Получение помощи
Документация для пользователей и учебные пособия
Организация FIRST поддерживает онлайн-документацию с информацией и учебными пособиями по использованию программного обеспечения FIRST Tech Challenge и системы управления роботом. Вы можете получить доступ к этой документации по следующей ссылке:
Онлайн-документация SKYSTONE
Обратите внимание: онлайн-документация является «постоянно обновляемым» документом, который непрерывно редактируется и дополняется. В ней содержится самая актуальная информация о программном обеспечении и системе управления FIRST Tech Challenge.
Справочные материалы Javadoc
Справочная документация Javadoc для FTC SDK теперь доступна онлайн. Нажмите на следующую ссылку, чтобы просмотреть документацию Javadoc FTC SDK в виде живого веб-сайта:
Документация FTC Javadoc
Документация для FTC SDK также включена в этот репозиторий. В нём есть подпапка «doc», содержащая несколько подпапок:
- Папка «apk» содержит .apk-файлы приложений FTC Driver Station и FTC Robot Controller.
- Папка «javadoc» содержит пользовательскую документацию JavaDoc для FTC SDK.
Онлайн-форум пользователей
По техническим вопросам, касающимся системы управления или FTC SDK, посетите форум FTC Technology:
Форум FTC Technology
Информация о выпуске
Версия 5.2 (20190905-083227)
- Исправлены чрезмерно широкие поля на экранах настроек и расположение новой кнопки конфигурации.
- Добавлены данные изображений-маркеров Skystone Vuforia.
- Включены примеры режимов OpMode навигации Skystone Vuforia (Java).
- Включены примеры режимов OpMode навигации Skystone Vuforia (Blocks).
- Добавлена модель логического вывода TensorFlow (.tflite) для игровых элементов Skystone.
- Включены примеры режимов OpMode TensorFlow для Skystone (Java).
- Включены примеры режимов OpMode TensorFlow для Skystone (Blocks).
- Удалены устаревшие (привязанные к сезону) примеры режимов OpMode.
- Добавлена поддержка 64-бит (для соответствия требованиям Google Play).
- Защита от зависших OpMode при запросе перезапуска робота (Restart Robot). (Благодарность FROGbots-4634) (проблема ftc_app #709)
- Изменения, связанные с Blocks:
- Исправлена ошибка в коде, сгенерированном блоками, когда имя аппаратного устройства является зарезервированным словом Java или JavaScript.
- Отображает сгенерированный Java-код для блоков, даже если в активной конфигурации отсутствуют аппаратные компоненты.
- Отображает значок предупреждения при использовании устаревших блоков Vuforia и TensorFlow (проблема SkyStone #27)
Информация о выпуске
Версия 5.1 (20190820-222104)
- Задаёт параметры PIDF по умолчанию для следующих двигателей:
- REV Core Hex Motor
- REV 20:1 HD Hex Motor
- REV 40:1 HD Hex Motor
- Добавляет кнопку «Назад» при работе на устройстве без системной кнопки «Назад» (например, на Control Hub)
- Позволяет REV Control Hub обновлять прошивку REV Expansion Hub через USB
- Исправляет проблему SkyStone #9
- Исправляет проблему ftc_app #715
- Предотвращает лишние нажатия пользователя DS за счёт фильтрации на основе текущего состояния.
- Предотвращает некорректные изменения состояния интерфейса DS при получении нового списка OpMode от RC
- Добавлена поддержка REV Color Sensor V3
- Добавлена трансляция камеры DS с ручным обновлением для удалённого просмотра кадров камеры RC.
- Чтобы показать трансляцию на DS, инициализируйте но не запускайте режим opmode с поддержкой трансляции, выберите пункт Camera Stream в меню DS и коснитесь изображения для обновления. Эта функция автоматически включается при использовании Vuforia или TFOD—для типичных случаев дополнительная настройка RC не требуется. Чтобы скрыть трансляцию, снова выберите тот же пункт меню.
- Обратите внимание: в целях безопасности геймпады отключены, и выбранный opmode нельзя запустить, пока открыта трансляция.
- Для использования пользовательских трансляций обратитесь к документации API для
CameraStreamServer#setSource и CameraStreamSource.
- Добавлено множество звуков Star Wars в ресурсы RobotController.
- Добавлен пример программы SKYSTONE Sounds Chooser.
- Заменены звуки запуска, подключения и ошибок/предупреждений на звуки Star Wars
- Обновлён OnBot Java для использования WebSocket при взаимодействии с роботом
- Странице OnBot Java больше не требуется полное обновление при переходе пользователя от редактирования одного файла к другому
Известные проблемы:
- Трансляция камеры
- Трансляция камеры Vuforia наследует проблемы, присутствующие в предпросмотре на телефоне (а именно проблема ftc_app #574). Эта проблема не затрагивает трансляцию камеры TFOD, хотя она получает кадры от Vuforia.
- Ориентация кадров трансляции не всегда может соответствовать предпросмотру на телефоне. Пока эти кадры при желании можно поворачивать вручную через пользовательский
CameraStreamSource.
- OnBotJava
- Кнопка «Назад» в браузере может работать не всегда корректно.
- Возможно, сборка будет поставлена в очередь, но не запущена. В этом случае консоль сборки OnBot Java отобразит предупреждение.
- Пользователь может не заметить, что редактирует другой файл, если случайно переключится с одного файла на другой, поскольку это переключение теперь происходит незаметно. Имя текущего открытого файла отображается во вкладке браузера.
Информация о выпуске
Версия 5.0 (собрана 19.06.14)
- Поддержка REV Robotics Control Hub.
- Добавлена панель предпросмотра Java в редакторе Blocks.
- Добавлена новая функция автономного экспорта в редакторе Blocks.
- Отображение канала Wi-Fi в круге сети на Driver Station.
- Добавлена калибровка для Logitech C270
- Обновлены средства сборки и целевой SDK.
- Соответствие инфраструктуре разрешений Google (требуется после обновления средств сборки).
- Keep Alive для уменьшения проблемы сканирования Wi-Fi на Motorola. Подстановка телеметрии больше не требуется.
- Улучшена отчётность об ошибках Vuforia.
- Исправлены проблемы ftctechnh/ftc_app 621 и 713.
- Прочие исправления ошибок и улучшения.
Информация о выпуске
Версия 4.3 (собрана 18.10.31)
- Добавлены отсутствующие библиотеки и файлы, связанные с TensorFlow.
Информация о выпуске
Версия 4.2 (собрана 18.10.30)
- Включено исправление для предотвращения взаимоблокировки с WatchdogMonitor, которая могла приводить к ошибкам USB-связи.
- Ошибка связи, судя по всему, требовала отключения USB-кабеля и перезапуска приложения Robot Controller для восстановления.
- В robotControllerLog.txt содержались сообщения об ошибках со словами "E RobotCore: lynx xmit lock: #### abandoning lock:"
- Включено исправление для корректного указания адреса родительского модуля для REV Robotics Expansion Hub в файле конфигурации (.xml).
- Ошибка в версиях 4.0 и 4.1 приводила к некорректному указанию адреса модуля родительского устройства REV Robotics как "1".
- Если адрес родительского модуля был больше адреса модуля, подключённого по цепочке, эта ошибка не позволяла Robot Controller связываться с нижестоящим Expansion Hub.
- Добавлено требование ACCESS_COARSE_LOCATION, чтобы Driver Station под управлением Android Oreo могла выполнять сканирование устройств Wi-Fi Direct.
- Добавлен репозиторий google() в build.gradle, поскольку начиная с версии 3.2 плагина Android Gradle Plugin библиотека aapt2 должна загружаться из репозитория google().
- Важное примечание: пользователям Android Studio потребуется подключение к Интернету при первой сборке проекта ftc_app.
- Подключение к Интернету требуется для первой сборки, чтобы соответствующие файлы можно было загрузить из репозитория Google.
- Для последующих сборок подключение к Интернету пользователям не требуется.
- Это также должно исправить проблему сборки, при которой Android Studio сообщала «Could not find com.android.tools.lint:lint-gradle:26.1.4» (или нечто подобное).
- Добавлена поддержка контроллера двигателя REV Spark Mini в меню конфигурации для порта сервопривода/ШИМ на REV Expansion Hub.
- Приведены примеры воспроизведения аудиофайлов в режиме OpMode.
- Изменения в инструменте разработки Block
- Включено исправление проблемы с блоками Velocity, о которой сообщалось на форуме FTC Technology (подфорум Blocks Programming).
- Изменён цвет сообщения «Save completed successfully.» на белый, чтобы оно контрастировало с зелёным фоном.
- Исправлена функция «Download image», чтобы она работала при наличии текстовых блоков в op mode.
- Добавлена поддержка технологии Google TensorFlow Lite для обнаружения объектов в игре 2018-2019 годов.
- TensorFlow Lite может распознавать Gold Mineral и Silver Mineral из игры 2018-2019 годов.
- Включены примеры режимов OpMode на Java и в Blocks, показывающие, как определить относительное положение золотого блока (слева, по центру, справа).
Информация о выпуске
Версия 4.1 (выпущена 18.09.24)
Изменения включают:
- Исправление для предотвращения сбоя при использовании устаревших аннотаций конфигурации.
- Изменение, позволяющее автоматически обновлять APK FTC Robot Controller с помощью скриптов обновления FIRST Global Control Hub.
- Удалены примеры для неподдерживаемого / не разрешённого оборудования.
- Улучшения блока Telemetry.addData с сокетом «text».
- Обновлён список примеров режимов OpMode в Blocks: добавлен пример Rover Ruckus Vuforia.
- Обновлён номер версии библиотеки SDK.
Информация о выпуске
Версия 4.0 (выпущена 18.09.12)
Изменения включают:
-
Начальная поддержка UVC-совместимых камер
- Если UVC-камера имеет уникальный серийный номер, RC обнаружит её и выведет в список по серийному номеру.
- Если у UVC-камеры нет уникального серийного номера, RC будет поддерживать только одну подключённую камеру этого типа.
- Включены настройки калибровки для нескольких камер (подробности см. в TeamCode/src/main/res/xml/teamwebcamcalibrations.xml).
- Пользователь может загружать файлы калибровки через веб-интерфейс Program and Manage.
- Похоже, UVC-камеры потребляют значительный электрический ток от шины USB.
- По-видимому, это не создаёт проблем для REV Robotics Control Hub.
- Однако это, похоже, создаёт проблемы со стабильностью при использовании некоторых камер с Robot Controller на базе Android-телефона.
- Команда FTC Tech Team изучает способы решения этой проблемы для Robot Controller на базе телефона.
- Обновлены примеры режимов OpMode Vuforia Navigation и VuMark для демонстрации использования внутренней камеры телефона и внешней UVC-веб-камеры.
-
Поддержка улучшенного управления двигателями.
- Прошивка REV Robotics Expansion Hub версии 1.8 и выше будет поддерживать механизм прямого управления (feed forward) для замкнутого контура управления двигателем.
- FTC SDK изменён для поддержки коэффициентов PIDF (пропорциональный, интегральный, дифференциальный и прямой).
- Инструмент разработки FTC Blocks изменён и включает программные блоки PIDF.
- Объявлены устаревшими старые методы и переменные, связанные с PID.
- Изменения REV 1.8.x, связанные с PIDF, обеспечивают более линейный и точный способ управления двигателем.
-
Беспроводная связь
- Добавлена поддержка 5 ГГц для смены беспроводного канала на устройствах, которые её поддерживают.
- Протестировано на телефонах Moto G5 и E4.
- Также протестировано на других (пока не одобренных) телефонах, таких как Samsung Galaxy S8.
-
Улучшена поддержка обновления прошивки Expansion Hub в приложении Robot Controller
- Изменения для повышения устойчивости системы в процессе обновления прошивки (при выполнении через приложение Robot Controller).
- Пользователю больше не нужно отключать нижестоящий Expansion Hub, подключённый по цепочке, при обновлении прошивки Expansion Hub.
- Если пользователь обновляет прошивку Expansion Hub через USB-подключение, ему/ей не нужно отключать RS485-соединение с другими Expansion Hub.
- Пользователь по-прежнему должен использовать USB-подключение для обновления прошивки Expansion Hub.
Информация о выпуске
Версия 3.6 (сборка от 17.12.18)
Изменения включают:
- Изменения в Blocks
- Используется обновлённое программное обеспечение Google Blockly, позволяющее пользователям редактировать свои op mode на устройствах Apple iOS (включая iPad и iPhone).
- Улучшение в инструменте Blocks для обработки повреждённых файлов op mode.
- Автономные op mode больше не должны переключаться обратно на tele-op после повторного открытия для редактирования.
- Система теперь может обнаруживать несоответствия типов во время выполнения и предупреждать пользователя сообщением на Driver Station.
- Обновлена документация javadoc для метода setPower() с указанием корректного диапазона значений (от -1 до +1).
- Изменён VuforiaLocalizerImpl, чтобы обеспечить возможность пользовательской отрисовки кадров
- Добавлен переопределяемый пользователем метод onRenderFrame(), который вызывается методом renderFrame() этого класса.
Информация о выпуске
Версия 3.5 (сборка от 17.10.30)
Изменения в версии 3.5 включают:
- Добавлено исправление для предотвращения случайных остановок op mode, которые могут возникать после приостановки и последующего возобновления работы приложения Robot Controller (например, когда пользователь временно выключает дисплей телефона Robot Controller, а затем снова включает экран).
- Добавлено исправление для предотвращения случайных остановок op mode, которые ранее были вызваны случайными событиями отключения пира на Driver Station.
- Исправлена проблема, при которой файлы журнала закрывались при приостановке RC или DS, но не открывались повторно при возобновлении работы.
- Исправлена проблема с гонкой запуска/остановки обработчика батареи (напряжения).
- Исправлена проблема, при которой op mode, созданные в Android Studio, в определённых ситуациях исчезали из списка доступных.
- Исправлена проблема, при которой OnBot Java не собирался на REV Robotics Control Hub.
- Исправлена проблема, при которой OnBot Java не собирался, если дата и время на устройстве Robot Controller были «перемотаны назад» (установлены на более раннюю дату/время).
- Улучшено сообщение об ошибке в OnBot Java, появляющееся при сбое переименования файла.
- Удалены ненужные ресурсы из бинарных файлов android.jar, используемых OnBot Java, для уменьшения конечного размера приложения Robot Controller.
- Добавлен блок MR_ANALOG_TOUCH_SENSOR в Blocks Programming Tool.
Информация о выпуске
Версия 3.4 (сборка от 17.09.06)
Изменения в версии 3.4 включают:
- Добавлен оператор telemetry.update() для шаблона BlankLinearOpMode.
- Переименованы примеры op mode в Blocks для большего соответствия примерам на Java.
- Добавлено несколько дополнительных примеров op mode в Blocks.
- Несколько переформулирован readme для OnBot Java.
Версия 3.3 (сборка от 17.09.04)
Эта версия программного обеспечения содержит улучшения для FTC Blocks Programming Tool и OnBot Java Programming Tool.
Изменения в версии 3.3 включают:
- Проект ftc_app в Android Studio обновлён для использования Gradle Plugin 2.3.3.
- Проект ftc_app в Android Studio уже использует дистрибутив Gradle 3.5.
- Журнал Robot Controller переименован в /sdcard/RobotControllerLog.txt (обратите внимание, что это изменение фактически было введено в v3.2).
- Улучшения надёжности I2C.
- Оптимизировано чтение I2C для REV Expansion Hub с прошивкой v1.7 или новее.
- Обновлены все external/samples (доступные через OnBot и в папке Android-проекта).
- Vuforia
- Добавлена поддержка VuMarks, которые будут использоваться в игре сезона 2017-2018.
- Blocks
- Обновление до последнего выпуска Google Blockly.
- Примеры op mode можно выбрать в качестве шаблона при создании нового op mode.
- Исправлена ошибка, из-за которой блоки временно исчезали при удерживании кнопки мыши.
- Добавлены блоки для Range.clip и Range.scale.
- Пользователь теперь может отключать/включать op mode в Blocks.
- Исправление для предотвращения редких взаимоблокировок (deadlock) в Blocks.
- OnBot Java
- Значительные улучшения функции автозаполнения в редакторе OnBot Java.
- Примеры op mode можно выбрать в качестве шаблона при создании нового op mode.
- Исправления и изменения для завершения функции настройки оборудования.
- Обновлено (и сделано более полезным) приветственное сообщение OnBot.
Известные проблемы:
- Android Studio
- После обновления до новой папки проекта Android Studio v3.3, если появляются сообщения об ошибке "InvalidVirtualFileAccessException", возможно, потребуется выполнить File->Invalidate Caches / Restart, чтобы устранить ошибку.
- OnBot Java
- Иногда при нажатии кнопки сборки для сборки всех op mode RC возвращает сообщение об ошибке о том, что сборка не удалась. Если нажать кнопку сборки второй раз, сборка обычно завершается успешно.
Версия 3.2 (сборка от 17.08.02)
Эта версия программного обеспечения представляет инструмент разработки «OnBot Java». Как и FTC Blocks Development Tool, FTC OnBot Java Development Tool позволяет пользователю динамически создавать, редактировать и собирать op mode, используя только веб-браузер с поддержкой Javascript.
OnBot Java Development Tool — это интегрированная среда разработки (IDE), которая предоставляется Robot Controller. Op mode создаются и редактируются с помощью браузера с поддержкой Javascript (рекомендуется Google Chrome). Op mode сохраняются непосредственно на Android-устройстве Robot Controller.
OnBot Java Development Tool предоставляет среду программирования на Java, которая НЕ требует Android Studio.
Изменения в версии 3.2 включают:
-
Расширенные веб-инструменты разработки
- Представление OnBot Java Development Tool.
- Веб-функции программирования и управления «всегда включены» (пользователю больше не нужно переводить Robot Controller в режим программирования).
- Веб-интерфейс управления (где пользователь может изменить имя Robot Controller, а также легко загрузить файл журнала Robot Controller).
- Функции OnBot Java, Blocks и управления доступны через веб-интерфейс.
-
Blocks Programming Development Tool:
- Изменён блок «LynxI2cColorRangeSensor» на блок «REV Color/range sensor».
- Исправлена всплывающая подсказка для блока ColorSensor.isLightOn.
Добавлены блоки для ColorSensor.getNormalizedColors и LynxI2cColorRangeSensor.getNormalizedColors.
-
Добавлены примеры op mode для цифрового датчика касания и датчика цвета/расстояния REV Robotics.
-
Выбираемые пользователем цветовые темы.
-
Включает множество мелких улучшений и исправлений (слишком много, чтобы перечислять).
Известные проблемы:
- Функция автозаполнения неполна и пока не поддерживает следующее:
- Доступ через ключевое слово this
- Доступ через ключевое слово super
- Члены суперкласса, не переопределённые классом
- Любые методы, предоставленные в текущем классе
- Внутренние классы
- Не может обрабатывать приведённые объекты
- Любые объекты, получаемые из выражения, заключённого в скобки
Версия 3.10 (сборка от 17.05.09)
Эта версия программного обеспечения обеспечивает поддержку REV Robotics Expansion Hub. Эта версия также включает улучшения уровня USB-связи для повышения устойчивости системы. Если вы ранее использовали версию 2.x, то при обновлении до версии 3.1 необходимо также обновить программное обеспечение Driver Station в дополнение к обновлению программного обеспечения Robot Controller.
Также обратите внимание, что в версии 3.10 методы setMaxSpeed и getMaxSpeed больше недоступны (не объявлены устаревшими — они удалены из SDK). Также обратите внимание, что новое программное обеспечение 3.x включает профили двигателей, которые пользователь может выбирать при настройке робота.
Изменения включают:
- Изменения в Blocks
- Добавлены блоки VuforiaTrackableDefaultListener.getPose и Vuforia.trackPose.
- Добавлена оптимизированная поддержка блоков для расширенного отслеживания Vuforia.
- Добавлен блок atan2 в категорию математики.
- Добавлен параметр useCompetitionFieldTargetLocations в блок Vuforia.initialize. Если задано значение false, целевые местоположения размещаются в точке (0,0,0) с ориентацией цели, как указано в учебном op mode https://github.com/gearsincorg/FTCVuforiaDemo/blob/master/Robot_Navigation.java.
- Включает дополнительные улучшения уровня USB-связи для повышения устойчивости системы (для восстановления после большего количества сбоев связи).
Дополнительные примечания к версии 3.00 (сборка от 17.04.13)
В дополнение к изменениям выпуска, перечисленным ниже (см. раздел «Version 3.00 (built on 17.04.013)»), версия 3.00 имеет следующие важные изменения:
- Программное обеспечение версии 3.00 использует новую версию FTC Robocol (роботного протокола). Если вы обновляетесь до v3.0 на стороне Robot Controller и/или Android Studio, вы также должны обновить программное обеспечение Driver Station для соответствия новому Robocol.
- Программное обеспечение версии 3.00 удаляет методы setMaxSpeed и getMaxSpeed из класса DcMotor. Если у вас есть op mode, который ранее использовал эти методы, вам нужно будет удалить ссылки/вызовы этих методов. Вместо этого v3.0 предоставляет информацию о максимальной скорости с помощью профилей двигателей, которые выбираются пользователем при настройке робота.
- Программное обеспечение версии 3.00 в настоящее время не имеет механизма отключения дополнительных датчиков i2c. Мы надеемся вернуть эту функцию в одном из ближайших выпусков.
Версия 3.00 (сборка от 17.04.13)
*** ИСПОЛЬЗУЙТЕ ЭТУ ВЕРСИЮ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА СВОЙ РИСК!!! ***
Это программное обеспечение выпускается как «альфа»-версия. Используйте эту версию на свой страх и риск!
Это предварительное программное обеспечение содержит ЗНАЧИТЕЛЬНЫЕ изменения, включая изменения механизма сопряжения Wi-Fi Direct, переписывание классов датчиков I2C, изменения уровня USB/FTDI и введение поддержки REV Robotics Expansion Hub и датчика цвета/расстояния/света REV Robotics. Эти изменения были реализованы для повышения надёжности и устойчивости системы управления FTC.
Однако обратите внимание, что версия 3.00 считается «альфа»-кодом. Этот код выпускается для того, чтобы сообщество FIRST получило возможность протестировать новый электронный модуль REV Expansion Hub, когда он станет доступен в мае. Разработчики не рекомендуют использовать этот код для ответственных применений (т.е. для соревнований).
*** ИСПОЛЬЗУЙТЕ ЭТУ ВЕРСИЮ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА СВОЙ РИСК!!! ***
Изменения включают:
- Крупная переработка инфраструктуры, связанной с датчиками. Включает переписывание классов датчиков для реализации синхронной связи I2C.
- Исправление для сброса таймера автономного режима обратно до 30 секунд.
- Реализация специальных профилей двигателей для одобренных 12-вольтовых двигателей (включая модели Tetrix, AndyMark, Matrix и REV).
- Небольшие улучшения для повышения качества сопряжения Wi-Fi P2P.
- Исправлена гонка при добавлении записей в журнал телеметрии.
- Публикует все исходные коды (а не только избранные).
- Включает улучшения программирования в Blocks
- Добавление оптимизированных блоков Vuforia.
- Автоматическая прокрутка на страницах проектов и звуков.
- Исправлена ошибка вставки блоков.
- Блоки выполняются после цикла while-opModeIsActive (для обеспечения очистки перед выходом из op mode).
- Добавлен блок гироскопа integratedZValue.
- Исправлена ошибка со страницей проектов в браузере Firefox.
- Добавлен блок IsSpeaking в AndroidTextToSpeech.
- Реализована поддержка REV Robotics Expansion Hub
- Реализована поддержка встроенного REV IMU (физически установлен на шине I2C 0, использует тот же датчик абсолютной ориентации Bosch BNO055 с 9 осями, что и датчик абсолютной ориентации Adafruit 9DOF). - Реализована поддержка датчика цвета/расстояния/света REV.
- Обеспечивает поддержку обновления прошивки Expansion Hub через FTC SDK.
- Определяет версию прошивки REV и записывает её в файл журнала.
- Включает поддержку REV Control Hub (обратите внимание, что REV Control Hub ещё не одобрен для использования в FTC).
- Реализована поддержка программирования в FTC Blocks для REV Expansion Hub и датчиков.
- Обнаруживает отключение устройства I2C и предупреждает об этом.
Версия 2.62 (сборка от 17.01.07)
- Добавлена проверка на нулевой указатель перед вызовом modeToByte() в методе finishModeSwitchIfNecessary для класса ModernRoboticsUsbDcMotorController.
- Изменения для повышения устойчивости USB-протокола Modern Robotics.
Версия 2.61 (выпущена 16.12.19)
- Изменения в режиме программирования Blocks:
- Исправление проблемы, когда возникало исключение из-за того, что объект OpticalDistanceSensor появляется в карте оборудования дважды (второй раз как LightSensor).
Версия 2.6 (выпущена 16.12.16)
- Исправления для класса Gyro:
- Улучшение (уменьшение) задержки обновления датчика.
- Исправление проблем isCalibrating.
- Изменения в режиме программирования Blocks:
- Теперь Blocks игнорирует устройство в конфигурационном xml, если имя пустое. Остальные устройства в конфигурации работают нормально.
Версия 2.5 (внутренний выпуск, выпущена 16.12.13)
- Изменения в режиме программирования Blocks:
- Добавлена поддержка блоков для AdafruitBNO055IMU.
- Добавлена кнопка Download Op Mode в FtcBocks.html.
- Добавлена поддержка копирования блоков в одном OpMode и вставки их в другой OpMode. Содержимое буфера обмена хранится на телефоне, поэтому сервер режима программирования должен быть запущен.
- Изменён раздел Utilities панели инструментов.
- В режиме программирования отображается информация об активных подключениях.
- Исправлено место вставки при прокрутке рабочей области.
- Добавлена поддержка блоков для android Accelerometer.
- Исправлена проблема, при которой Blocks Upload Op Mode обрезал имя на первой точке.
- Добавлена поддержка блоков для Android SoundPool.
- Добавлена типобезопасность блоков для Acceleration.
- Добавлена типобезопасность блоков для AdafruitBNO055IMU.Parameters.
- Добавлена типобезопасность блоков для AnalogInput.
- Добавлена типобезопасность блоков для AngularVelocity.
- Добавлена типобезопасность блоков для Color.
- Добавлена типобезопасность блоков для ColorSensor.
- Добавлена типобезопасность блоков для CompassSensor.
- Добавлена типобезопасность блоков для CRServo.
- Добавлена типобезопасность блоков для DigitalChannel.
- Добавлена типобезопасность блоков для ElapsedTime.
- Добавлена типобезопасность блоков для Gamepad.
- Добавлена типобезопасность блоков для GyroSensor.
- Добавлена типобезопасность блоков для IrSeekerSensor.
- Добавлена типобезопасность блоков для LED.
- Добавлена типобезопасность блоков для LightSensor.
- Добавлена типобезопасность блоков для LinearOpMode.
- Добавлена типобезопасность блоков для MagneticFlux.
- Добавлена типобезопасность блоков для MatrixF.
- Добавлена типобезопасность блоков для MrI2cCompassSensor.
- Добавлена типобезопасность блоков для MrI2cRangeSensor.
- Добавлена типобезопасность блоков для OpticalDistanceSensor.
- Добавлена типобезопасность блоков для Orientation.
- Добавлена типобезопасность блоков для Position.
- Добавлена типобезопасность блоков для Quaternion.
- Добавлена типобезопасность блоков для Servo.
- Добавлена типобезопасность блоков для ServoController.
- Добавлена типобезопасность блоков для Telemetry.
- Добавлена типобезопасность блоков для Temperature.
- Добавлена типобезопасность блоков для TouchSensor.
- Добавлена типобезопасность блоков для UltrasonicSensor.
- Добавлена типобезопасность блоков для VectorF.
Версия 2.4 (выпущена 16.11.13)
- Исправление для предотвращения сбоев при обращении к несуществующим ресурсам.
- Изменения в режиме программирования Blocks:
- Добавлены блоки для поддержки OpenGLMatrix, MatrixF и VectorF.
- Добавлены блоки для поддержки AngleUnit, AxesOrder, AxesReference, CameraDirection, CameraMonitorFeedback, DistanceUnit и TempUnit.
- Добавлены блоки для поддержки Acceleration.
- Добавлены блоки для поддержки LinearOpMode.getRuntime.
- Добавлены блоки для поддержки MagneticFlux и Position.
- Исправлены опечатки.
- Сделаны блоки для ElapsedTime более согласованными с другими объектами.
- Добавлены блоки для поддержки Quaternion, Velocity, Orientation, AngularVelocity.
- Добавлены блоки для поддержки VuforiaTrackables, VuforiaTrackable, VuforiaLocalizer, VuforiaTrackableDefaultListener.
- Исправлено несколько блоков.
- Добавлена проверка типов для новых блоков.
- Обновлено до последней версии blockly.
- Добавлены блоки переменных по умолчанию к блокам навигации и матриц.
- Исправлена запись в панели инструментов для openGLMatrix_rotation_withAxesArgs.
- Когда пользователь загружает op mode, созданный в Blocks, загружается только файл .blk.
- Когда пользователь загружает op mode, созданный в Blocks (файл .blk), код Javascript генерируется автоматически.
- Добавлена поддержка DbgLog.
- Добавлено журналирование при чтении/записи файла блоков.
- Исправлена ошибка для корректного отображения блоков даже при отсутствии устройств из файла конфигурации.
- Добавлена поддержка дополнительных символов (не только буквенно-цифровых) в именах файлов блоков (для загрузки и выгрузки).
- Добавлена поддержка типа OpMode («Autonomous» или «TeleOp») и группы.
- Изменения в Samples для предотвращения проблем с учебными материалами.
- Внесены предложенные изменения из публичного pull request 216 («Replace .. paths»).
- Устранены сбои сервоприводов при остановке робота.
- Если пользователь нажимает «Отмена» при редактировании файла конфигурации, несохранённые изменения очищаются и выполняется возврат к исходной неизменённой конфигурации.
- Добавлена информация в журнал для диагностики причин завершения работы приложения Robot Controller (например, функцией сторожевого таймера).
- Добавлена возможность передачи журнала с контроллера.
- Исправлена несогласованность для AngularVelocity
- Ограничен неограниченный рост данных телеметрии. Если пользователь не вызывает telemetry.update() для LinearOpMode своевременно, данные, добавленные для телеметрии, могут быть потеряны при превышении лимита размера.Версия 2.35 (выпущена 16.10.06)
- Режим программирования Blockly — удалён ненужный вызов idle() из блоков для нового проекта.
Версия 2.30 (выпущена 16.10.05)
- Режим программирования Blockly:
- Добавлен механизм сохранения op modes Blockly с сервера Programming Mode на локальное устройство
- Во избежание беспорядка блоки отображаются в категоризированных папках
- Добавлена поддержка DigitalChannel
- Добавлена поддержка ModernRoboticsI2cCompassSensor
- Добавлена поддержка ModernRoboticsI2cRangeSensor
- Добавлена поддержка VoltageSensor
- Добавлена поддержка AnalogInput
- Добавлена поддержка AnalogOutput
- Исправление блока setMode для CompassSensor
- Vuforia
- Исправление взаимоблокировки / обеспечение доступности данных камеры во время работы Vuforia.
- Обновление до Vuforia 6.0.117 (рекомендовано Vuforia и Google для закрытия бреши в безопасности).
- Исправление ошибки 30-секундного таймера автономного режима (когда таймер продолжал действовать, даже если казалось, что время вышло).
- Изменения opModeIsActive, позволяющие выполнять очистку после остановки op mode (с принудительным 2-секундным тайм-аутом безопасности).
- Исправление, исключающее двукратное чтение i2c.
- Обновлены примеры Op Modes.
- Улучшено журналирование и исправлены периодические зависания.
- Добавлен пример цифрового ввода/вывода.
- Приведены в порядок имена устройств в примерах op modes в соответствии с руководством Pushbot.
- Исправление, позволяющее использовать IrSeekerSensorV3.
Версия 2.20 (выпущена 16.09.08)
- Поддержка датчика компаса Modern Robotics.
- Поддержка датчика расстояния Modern Robotics.
- Пересмотрены имена устройств для шаблонов Pushbot, чтобы они соответствовали именам, используемым в руководстве Pushbot.
- Исправлена ошибка, из-за которой устройство IrSeekerSensorV3 было доступно как IrSeekerSensor в hardwareMap.
- Код компьютерного зрения изменён, чтобы требовалась отдельная лицензия Vuforia (в соответствии с юридическими требованиями PTC).
- Незначительные исправления.
- Улучшения Blockly:
- Поддержка датчика напряжения.
- Поддержка аналогового входа.
- Поддержка аналогового выхода.
- Поддержка датчика света.
- Поддержка контроллера сервоприводов.
Версия 2.10 (выпущена 16.09.03)
- Поддержка Adafruit IMU.
- Улучшения класса ModernRoboticsI2cGyro
- Блокировка при сбросе оси Z.
- isCalibrating() возвращает true, пока выполняется калибровка гироскопа.
- Обновлена примерная программа для гироскопа.
- Улучшения Blockly
- поддержка android.graphics.Color.
- добавлена поддержка ElapsedTime.
- улучшен внешний вид и читаемость блоков.
- поддержка датчика компаса.
- поддержка ультразвукового датчика.
- поддержка IrSeeker.
- поддержка светодиода.
- поддержка датчика цвета.
- поддержка CRServo
- запрос пользователю настройки робота перед использованием режима программирования.
- Добавлена возможность отключения звуковых сигналов.
- Различные исправления ошибок и улучшения.
Версия 2.00 (выпущена 16.08.19)
- Это новый выпуск для предстоящего сезона FIRST Tech Challenge 2016–2017.
- Смена канала включена в приложении FTC Robot Controller для телефонов Moto G 2-го и 3-го поколений.
- Пользователи теперь могут использовать аннотации для регистрации/отключения своих Op Modes.
- Изменения в требованиях к Android SDK, JDK и инструментам сборки (minsdk=19, java 1.7, build tools 23.0.3).
- Стандартизированы единицы измерения в аналоговом входе.
- Упорядочен код существующих классов аналоговых датчиков.
- setChannelMode и getChannelMode были УДАЛЕНЫ из класса DcMotorController. Это важно — мы больше не задаём режимы двигателя через контроллер двигателя.
- setMode и getMode были добавлены в класс DcMotor.
- Класс ContinuousRotationServo добавлен в FTC SDK.
- Метод Range.clip() перегружен, чтобы он мог поддерживать эту операцию для целых чисел int, short и byte.
- Внесены некоторые изменения (добавлены новые методы) в способ доступа пользователя к элементам из карты оборудования (hardware map).
- Пользователи теперь могут задавать поведение при нулевой мощности для двигателя постоянного тока, чтобы двигатель тормозил или свободно вращался при нулевой мощности.
- В FTC Robot Controller добавлен прототип режима программирования Blockly. Пользователи могут перевести Robot Controller в этот режим, а затем с помощью устройства (например, ноутбука) с браузером с поддержкой Javascript записывать Op Modes на основе Blockly непосредственно в Robot Controller.
- Пользователи теперь могут настраивать робота удалённо через приложение FTC Driver Station.
- Проект Android Studio поддерживает Android Studio 2.1.x и compile SDK Version 23 (Marshmallow).
- Vuforia Computer Vision SDK интегрирован в FTC SDK. Пользователи могут использовать образцы визуальных меток для получения информации о локализации на стандартном поле FTC.
- Структура проекта реорганизована: теперь существует пакет TeamCode, в который пользователи могут помещать свои локальные/пользовательские Op Modes.
- Функция проверки интегрирована в приложения FTC Robot Controller и Driver Station (Спасибо команде HazMat… 9277 и 10650!).
- В FTC SDK добавлены звуковые сигналы.
- Механизм Swap добавлен в активность конфигурации FTC Robot Controller. Например, если у вас на роботе два контроллера двигателей и вы неправильно их идентифицировали в файле конфигурации, вы можете использовать кнопку Swap, чтобы поменять устройства местами в файле конфигурации (так что вам не придётся вручную заново вводить информацию о конфигурации для двух устройств).
- Механизм Fix добавлен, чтобы позволить пользователю легко заменить электронный модуль. Например, предположим, что на вашем роботе вышел из строя контроллер сервопривода. Вы заменяете сломанный модуль новым, у которого другой серийный номер, чем у исходного контроллера сервопривода. Вы можете использовать кнопку Fix, чтобы автоматически перенастроить файл конфигурации на использование серийного номера нового модуля.
Выпуск 16.07.08
- Для проекта ftc_app файлы gradle были изменены для поддержки Android Studio 2.1.x.
Выпуск 16.03.30
- Для MIT App Inventor блоки дизайна получили новые значки, которые лучше отражают функцию каждого компонента дизайна.
- В логику завершения работы были внесены изменения, чтобы обеспечить надёжное завершение некоторых наших USB-сервисов.
- В LinearOpMode было внесено изменение, позволяющее выполнять данный экземпляр более одного раза, что требуется для App Inventor.
- Javadoc улучшен/обновлён.
Выпуск 16.03.09
- Внесены изменения, делающие FTC SDK синхронным (значительное изменение!)
- waitOneFullHardwareCycle() и waitForNextHardwareCycle() больше не нужны и объявлены устаревшими.
- runOpMode() (для LinearOpMode) теперь отделён от потока чтения/записи аппаратного обеспечения системы.
- loop() (для OpMode) теперь отделён от потока чтения/записи аппаратного обеспечения системы.
- Методы являются синхронными.
- Например, если вы вызываете setMode(DcMotorController.RunMode.RESET_ENCODERS) для двигателя, гарантируется, что энкодер будет сброшен после завершения вызова метода.
- Для легаси-модуля (совместимого с NXT) пользователю больше не нужно переключаться между режимами чтения и записи при чтении из легаси-устройства или записи в него.
- Внесены изменения для повышения надёжности/устойчивости во время события ESD.
- Внесены изменения для обеспечения потокобезопасности кода.
- Добавлено отладочное хранилище ключей (debug keystore), чтобы все созданные пользователем APK robot controller использовали один и тот же подписанный ключ (например, чтобы избежать конфликтов, если у команды несколько ноутбуков разработчика).
- Информация о версии прошивки для модулей Modern Robotics теперь записывается в журнал.
- Внесены изменения для повышения надёжности и устойчивости USB-связи.
- Добавлена поддержка индикатора напряжения для легаси-контроллеров двигателей (совместимых с NXT).
- Внесены изменения, обеспечивающие возможность автоматической остановки op modes.
- Класс LinearOpMode остановится, когда операторы в runOpMode() будут выполнены. Пользователю не нужно нажимать кнопку остановки на driver station.
- Если op mode остановлен driver station, но продолжает существовать неуправляемый/непрерываемый поток, приложение запишет сообщение об ошибке, а затем принудительно завершится, чтобы остановить вышедший из-под контроля поток.
- Интерфейс Driver Station изменён для отображения минимального измеренного напряжения ниже текущего напряжения (батарея 12 В).
- Интерфейс Driver Station изменён для отображения цветного фона для текущего напряжения (зелёный — хорошо, жёлтый — осторожно, красный — опасно, крайне низкое напряжение).
- Javadoc улучшен (правки и дополнительные классы).
- В активность About добавлено время сборки приложения для приложений driver station и robot controller.
- Отображение локальных IP-адресов в активности About на Driver Station.
- Добавлен I2cDeviceSynchImpl.
- Добавлен интерфейс I2cDeviceSync.
- Добавлены seconds() и milliseconds() в ElapsedTime для ясности.
- Добавлен getCallbackCount() в I2cDevice.
- Добавлен отсутствующий clearI2cPortActionFlag.
- Добавлен код для создания журнальных сообщений при ожидании завершения LinearOpMode.
Выпуск 16.02.09
- Улучшена функция проверки батареи: значения напряжения теперь регулярно обновляются (каждые 250 мс) в пользовательском интерфейсе Driver Station (DS).
- Улучшено программное обеспечение, чтобы Robot Controller (RC) стал значительно более устойчивым и «самовосстанавливающимся» при отключениях USB:
- Если пользователь пытается запустить или перезапустить RC при отсутствии одного или нескольких модулей, будет отображаться предупреждение, но запуск всё равно произойдёт.
- При выполнении op mode, если один или несколько модулей отключаются, RC и DS отобразят предупреждения, и робот продолжит работать, несмотря на отсутствующий(ие) модуль(и).
- Если отключённый модуль будет физически подключён заново, RC автоматически обнаружит модуль, и пользователь снова получит управление недавно подключённым модулем.
- Предупреждающие сообщения стали более полезными (указывают тип отсутствующего модуля, а также его USB-серийный номер).
- Изменения кода для исправления нулевой ссылки на геймпад, когда пользователи пытаются обратиться к геймпадам в части init() своего op mode.
- Выходной сигнал датчика света NXT теперь правильно масштабируется. Обратите внимание, что командам, возможно, придётся заново отрегулировать пороговые значения света в своих op modes.
- В пользовательском интерфейсе DS значок геймпада водителя исчезнет, если соответствующий геймпад отключён или если этот геймпад назначен другому водителю.
- Информация о номере версии протокола робота (ROBOCOL) отображается на экране About в приложениях RC и DS.
- Добавлен фильтр отображения на экране сопряжения, чтобы отфильтровывать устройства, не использующие формат «-». Этот фильтр можно отключить, чтобы показать все устройства WiFi Direct.
- Обновлён текст в файле License.
- Исправлена ошибка форматирования в OpticalDistanceSensor.toString().
- Исправлена проблема с пустым именем устройства («»), которая нарушала сопряжение WiFi Direct.
- Внесено изменение, чтобы информация о WiFi и батарее отображалась на DS быстрее после подключения к RC.
- Улучшена генерация javadoc.
- Изменён код для упрощения поддержки языковой локализации в будущем.
Выпуск 16.01.04
- Обновлён compileSdkVersion для приложений
- Предотвращение перехода WiFi в энергосберегающий режим
- Удалён неиспользуемый импорт из driver station
- Исправлен код джойстика «мёртвой зоны».
- LED.getDeviceName и .getConnectionInfo() возвращают null
- Приложения проверяют несоответствие ROBOCOL_VERSION
- Исправление для Telemetry: также исправлены ошибки смещения на единицу в размере строки данных / ошибка ограничения малого размера
- Вывод телеметрии пользователя отсортирован.
- Добавлены варианты форматирования в API DbgLog и RobotLog
- Код изменён, чтобы обеспечить длинный список имён op mode.
- Изменения для повышения потокобезопасности RobocolDatagramSocket
- Исправление ошибки «отсутствующее оборудование оставляет robot controller отключённым от driver station»
- Исправление для «быстрое нажатие Init/Start вызывает проблемы» (toast теперь создаётся только в UI-потоке).
- Добавлены некоторые операторы журналирования для жизненного цикла потоков.
- Логика сброса геймпада перенесена внутрь initActiveOpMode() для повышения надёжности
- Внесены изменения для снижения риска состояния гонки в публичных методах.
- Изменения для попытки сигнализировать, когда имя WiFi Direct содержит непечатаемые символы.
- Исправление состояния гонки между .run() и .close() в ReadWriteRunnableStandard.
- Обновлён драйвер FTDI
- Интерфейс ReadWriteRunnableStanard сделан публичным.
- Исправлены ошибки смещения на единицу в конструкторе Command
- Конкретные реализации аппаратного обеспечения перенесены в отдельный пакет.
- Конкретные реализации геймпадов перенесены в библиотеку аппаратного обеспечения.
- Файл LICENSE изменён на новую версию BSD.
- Исправлено состояние гонки при завершении работы USB-устройств Modern Robotics.
- Методы в классах ColorSensor синхронизированы.
- Исправлен статус isBusy(), чтобы отражать окончание движения.
- Исправлен код клавиши «back».
- Метод notSupported() класса GyroSensor изменён на protected (он не должен быть публичным).
Выпуск 15.11.04.001
- Добавлена поддержка гироскопа Modern Robotics.
- Класс GyroSensor теперь поддерживает датчик гироскопа MR.
- Пользователи могут получать данные курса (относительно оси Z)
- Пользователи также могут получать исходные данные гироскопа (оси X, Y и Z).
- Включён пример op mode MRGyroTest.java.
- Улучшены сообщения об ошибках
- Более описательные сообщения об ошибках для исключений в пользовательском коде.
- Обновлён API DcMotor
- Включён режим чтения по новому адресу в setI2cAddress
- Исправление, чтобы приложение driver station сбрасывало геймпады при переключении op modes.
- Изменения кода, связанные с USB, для повышения отзывчивости USB-связи и отображения более явных сообщений об ошибках.
- Исправление, чтобы USB корректно восстанавливался, если USB-шина возвращает мусорные данные.
- Исправлено состояние гонки при инициализации USB.
- Улучшено сообщение об ошибках при открытии FTDI.
- Более явные сообщения при сбоях USB.
- Исправлена ошибка, из-за которой USB-устройство не закрывалось, если метод разбора event loop не был вызван.
- Исправлена проблема с таймером в интерфейсе
- Исправлена ошибка дублирования имени в интерфейсе (конфигурация Legacy Module).
- Исправлено состояние гонки в EventLoopManager.
- Исправление для сохранения стабильных ссылок при обновлении геймпада.
- Для легаси-контроллеров Matrix motor/servo больше не требуется добавлять «Motor» и «Servo» к именам контроллеров.
- Обновлён драйвер датчика цвета HT для использования констант из класса ModernRoboticsUsbLegacyModule.
- Обновлён драйвер датчика цвета MR для использования констант из класса ModernRoboticsUsbDeviceInterfaceModule.
- Корректная обработка изменения I2C-адреса во всех датчиках цвета
- Обновлены/приведены в порядок op modes.
- Обновлены комментарии в примере op mode LinearI2cAddressChange.java.
- Вызовы "setChannelMode" заменены на "setMode" (в соответствии с новым названием метода DcMotor).
- Удалён op mode K9AutoTime.java.
- Добавлен op mode MRGyroTest.java (демонстрирует использование MR Gyro Sensor).
- Добавлен op mode MRRGBExample.java (демонстрирует использование MR Color Sensor).
- Добавлен op mode HTRGBExample.java (демонстрирует использование легаси-датчика цвета HT).
- Добавлен MatrixControllerDemo.java (демонстрирует использование легаси-контроллера Matrix).
- Обновлена документация javadoc.
- Обновлены выпущенные .apk-файлы для приложений Robot Controller и Driver Station.
T. Eng
5 ноября 2015 г.
Выпуск 15.10.06.002
- Добавлена поддержка легаси-контроллера двигателей/сервоприводов Matrix 9.6V.
- Приведён в порядок файл build.gradle.
- Незначительные исправления интерфейса и ошибок для приложений driver station и robot controller.
- Выдаёт ошибку, если ультразвуковой датчик (NXT) не настроен для порта 4 или 5 легаси-модуля.
T. Eng
6 октября 2015 г.
В этой последней версии FTC SDK (20150803_001) следует отметить следующие изменения:
- Новые пользовательские интерфейсы для приложений FTC Driver Station и FTC Robot Controller.
- В класс OpMode добавлен метод init().
- В этом выпуске init() вызывается непосредственно перед методом start().
- В конечном итоге метод init() будет вызываться, когда пользователь нажимает кнопку «INIT» на driver station.
- Методы init() и loop() теперь обязательны (т. е. должны быть переопределены в пользовательском op mode).
- Методы start() и stop() необязательны.
- Представлен новый класс LinearOpMode.
- Команды могут использовать режим LinearOpMode для создания линейной (не событийно-ориентированной) модели программы.
- Команды могут использовать блокирующие операторы, такие как Thread.sleep(), внутри линейного op mode.
- Обновлён API для Legacy Module и Core Device Interface Module.
- Теперь работает поддержка энкодеров с Legacy Module.
- Аппаратный цикл обновлён для повышения производительности.
T. Eng
3 августа 2015 г.