Платформенные ограничения
Введение
В процессе тестирования были выявлены существенные различия в стабильности работы USB-коммуникации с FTDI-устройствами на разных платформах.
Windows
- Основная целевая платформа
- Стабильная работа с драйверами FTDI
- Использует новую Python-реализацию USB-коммуникации
- Полностью протестирована и соответствует функциональности предыдущей legacy-версии
Linux (Ubuntu)
- Ограниченная поддержка через legacy C++ код
- Проблемы с таймаутами при использовании Python-реализации
- Используется немного переработанная версия старой C++ библиотеки для USB-коммуникации
- Полной гарантии стабильной работы нет
MacOS
- Не поддерживается
- Фундаментальные проблемы с драйверами FTDI
- Нестабильная работа как D2XX, так и Libftdi драйверов
- Техническая возможность поддержки отсутствует из-за особенностей работы FTDI-чипа
Причины принятых решений
Решения о поддержке платформ были приняты на основе продолжительного тестирования с реальным устройством.
Основные факторы:
Стабильность драйверов:
- Windows показала наиболее стабильную работу
- Linux и macOS имеют проблемы с таймаутами при чтении данных
Производительность:
- На Windows Python-реализация показала производительность, сравнимую с C++
- На Linux потребовалось сохранить C++-реализацию для обеспечения стабильности
Поддержка:
- Фокус на Windows как основной платформе позволяет обеспечить наилучшее качество
- Поддержка Linux через C++-реализацию как компромиссное решение
- MacOS исключена из-за технических ограничений
Рекомендация
Для наилучшего опыта использования рекомендуется работать на платформе Windows