Download the PHP package hopex/bambulab-sdk without Composer

On this page you can find all versions of the php package hopex/bambulab-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package bambulab-sdk

Bambu Lab

Bambu Lab API для PHP

Полностью типизированный PHP 8.4 SDK для локального управления принтерами Bambu Lab.

Пакет предоставляет типизированный API для работы с состоянием принтера, заданиями печати, файлами, камерой, температурой, вентиляторами, подсветкой, прошивкой, HMS-сообщениями и событиями в реальном времени.

Проект является неофициальным SDK сообщества и не связан с Bambu Lab.

Возможности

Требования

SDK использует несколько локальных сервисов принтера:

Поддержка конкретных возможностей зависит от модели принтера и версии прошивки.

Установка

Настройка принтера

Перед использованием SDK:

  1. Подключите принтер и PHP-приложение к одной локальной сети.
  2. Включите LAN Mode в настройках принтера.
  3. Получите Access Code.
  4. Определите локальный IP-адрес принтера.
  5. Получите серийный номер принтера.

Не рекомендуется открывать MQTT, FTPS и порт камеры напрямую в интернет.

Быстрый старт

Жизненный цикл клиента

Подключение

По умолчанию клиент активирует MQTT-подписку и запрашивает полное состояние принтера.

Подключение без автоматического запроса состояния:

Обработка входящих сообщений

Одна итерация MQTT-цикла:

Блокирующий цикл:

Остановка активного цикла:

Отключение

Состояние принтера

PrinterState хранит накопленное состояние принтера.

Принтер часто отправляет только изменившиеся поля. SDK рекурсивно объединяет частичные сообщения с ранее полученным состоянием.

Получение полного накопленного payload:

Текущее задание печати

Текущее задание представлено объектом CurrentPrintJob.

Доступные вспомогательные методы:

При локальном запуске облачные идентификаторы, например taskId и projectId, могут отсутствовать.

Состояния G-code

Состояние печати представлено enum GcodeState.

Вспомогательные методы:

Состояние FAILED может означать как реальную ошибку, так и ручную отмену задания.

Ожидание состояния

Ожидание запуска печати:

Ожидание одного из нескольких состояний:

Ожидание пользовательского условия:

Управление печатью

Запуск задания

Файл должен быть предварительно загружен на принтер.

Пауза

Продолжение

Остановка

После ручной отмены принтер обычно сообщает состояние FAILED.

Запрос полного состояния

G-code

Отправка одной команды:

Отправка нескольких команд:

Произвольный G-code может запустить движение механизмов, нагрев и другие опасные операции. Проверяйте команды перед отправкой.

Подсветка

Включение:

Выключение:

Получение текущего состояния:

Температура

Температура сопла:

Температура стола:

Получение текущих значений:

Настроенные ограничения SDK:

Корректная безопасная температура зависит от модели принтера, сопла, стола и используемого материала.

Вентиляторы

Управление вентиляторами выполняется через FanApi.

Альтернативно можно использовать проценты.

Остановка вентилятора:

Перед использованием дополнительного вентилятора рекомендуется проверить возможности принтера:

При использовании заведомо отсутствующей возможности SDK может выбросить UnsupportedCapabilityException.

Файлы

Работа с файловой системой принтера выполняется через FTPS.

Типизированный список

Только файлы

Только директории

Только модели 3MF

Фильтрация по расширению

Можно передавать расширение с точкой или без неё:

Поиск элемента

Проверка существования

Пользовательская фильтрация

Загрузка

Скачивание

Удаление

Файловые операции используют собственное FTPS-соединение и не зависят от активного MQTT-цикла.

Камера

Получение одного JPEG-кадра:

Сохранение кадра:

Дополнительные представления:

Поддержка камеры зависит от модели принтера и используемого локального протокола.

Текущая реализация TcpCameraTransport предназначена для совместимых локальных TLS-потоков камеры.

Информация об устройстве

Состояние периферии:

Возможности принтера

Возможности определяются по фактическому состоянию, полученному от принтера.

До полной синхронизации некоторые значения могут быть равны null.

Прошивка

Запрос актуальной информации:

Получение основной версии:

Получение модулей:

Получение состояния обновления:

Первая версия API прошивки предназначена только для чтения данных. Установка и откат прошивки не поддерживаются.

HMS

HMS содержит сообщения диагностики, предупреждения и аппаратные ошибки принтера.

Предупреждения:

Ошибки:

Проверки:

Не все прошивки передают человекочитаемое описание и уровень сообщения. В таком случае SDK сохраняет исходные данные и использует уровень UNKNOWN.

События

Обработчики событий вызываются синхронно во время tick(), run() или runWithReconnect().

Начало печати

Пауза и продолжение

Завершение и отмена

Определение ручной отмены является эвристическим, поскольку принтер обычно использует состояние FAILED.

Изменение задания

Изменение прогресса и слоя

Оставшееся время

Температура, свет и HMS

Отмена подписки

Удаление всех подписок:

Автоматическое переподключение

Для длительно работающих процессов можно использовать runWithReconnect().

Параметры политики переподключения

Параметр Значение
attempts количество попыток
delayMilliseconds задержка между попытками
subscriptionWarmupMilliseconds ожидание после подписки
synchronizeAfterReconnect запрос полного состояния
clearStateBeforeReconnect очистить накопленный PrinterState

После успешного переподключения клиент:

  1. создаёт новое MQTT-соединение;
  2. повторно активирует подписку;
  3. запрашивает полное состояние;
  4. сохраняет зарегистрированные обработчики событий;
  5. продолжает цикл обработки сообщений.

Одна итерация с автоматическим восстановлением:

Явное переподключение:

Пользовательские реализации

Основные механизмы SDK построены на контрактах.

MQTT-транспорт

Файловый транспорт

Транспорт камеры

Это позволяет заменить стандартную реализацию, например при интеграции с другим MQTT-клиентом, файловым шлюзом или собственным сервисом камеры.

Исключения

Все исключения SDK наследуются от:

Общая обработка:

Основные группы исключений:

Исключения разнесены по соответствующим feature-модулям.

Совместимость и ограничения

Документация

Полная документация по каждому модулю будет доступна отдельно:

Открыть документацию

Планируемые разделы:

Безопасность

Не публикуйте в репозитории:

Используйте переменные окружения:

Не открывайте локальные сервисы принтера напрямую в интернет.

Статус проекта

SDK находится в активной разработке.

Перед выпуском стабильной версии рекомендуется зафиксировать:

Участие в разработке

Сообщения об ошибках и Pull Request приветствуются.

Перед отправкой изменений:

  1. проверьте соответствие структуры feature-first архитектуре;
  2. сохраняйте строгую типизацию;
  3. добавляйте документацию на русском языке;
  4. не добавляйте зависимость от Laravel в основной пакет;
  5. не ломайте существующие публичные контракты без необходимости.

Лицензия

Проект распространяется по лицензии MIT.


All versions of bambulab-sdk with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
ext-curl Version *
ext-json Version *
ext-openssl Version *
php-mqtt/client Version ^2.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package hopex/bambulab-sdk contains the following files

Loading the files please wait ...