BamDude Bridge¶
Невеликий десктопний застосунок, що з'єднує Windows-робочу станцію з твоїм сервером BamDude. BamDude зазвичай живе в контейнері на іншій машині, тож дві речі йому структурно недосяжні: файл, який слайсер щойно записав на локальний диск, і принтер етикеток у USB-порту. Bridge робить це на твоїй машині й віддає результат серверу через його звичайний HTTP-API.
Це міст, а не другий продукт: без власної бази даних і без власної думки про вміст твоєї бібліотеки. Живе в системному треї — закриття вікна ховає його, лівий клік по іконці повертає, а Quit у трей-меню — єдиний справжній вихід.
Встановлення¶
Два білди, одна робота:
| Білд | Що отримуєш |
|---|---|
Інсталятор (…-setup.exe) |
Пункт у Start Menu, деінсталятор, сам довантажує WebView2-рантайм, якщо його нема |
Портейбл (…-portable.zip) |
Розпакуй будь-де і запускай. Налаштування й логи все одно живуть у %APPDATA% / %LOCALAPPDATA%; реєстрація прийому зі слайсера все одно торкається реєстру |
Непідписані бінарники
Жоден білд поки не має код-підпису, тож SmartScreen попереджає при першому запуску: More info → Run anyway.
Bridge оновлює себе сам на обох шляхах — встановлена копія через стандартний апдейтер, портейбл — через власне оновлення на місці, яке ніколи тихо не перетворить тебе на встановлену копію.
Підключення до сервера¶
У вікні налаштувань вкажи URL сервера та API-ключ. Ключу потрібні два дозволи:
- Manage Library — прийом зі слайсера заливає плити у твою бібліотеку;
- Print labels on a desk printer — полер етикеток забирає роботи і звітує результати.
Перевірка з'єднання робить більше за пінг: вона доводить, що ключ справді може писати, тож ключ із неправильним скоупом падає ще на етапі налаштування, а не на першій реальній передачі.
Одна ідентичність на машину
Bridge генерує installation id при першому запуску, і сервер прив'язує всиновлений принтер етикеток саме до нього. Витирання %APPDATA%\BamDude Bridge створює новий id — сервер бачить новісінький невсиновлений пристрій і тихо перестає давати йому роботу, доки не всиновиш знову.
Роль 1 — плити з Bambu Studio¶
Кнопка Send to Bambu Farm Manager Client у Bambu Studio віддає наслайсену плиту тому застосунку, що володіє певною URL-схемою. Bridge реєструє себе її приймачем: слайсер експортує тимчасовий 3MF, запускає URL, і Bridge заливає файл просто у твою бібліотеку BamDude.
- Реєстрація — свідома кнопка у вікні налаштувань, ніколи не робота інсталятора за спиною. Якщо схемою вже володіє власний клієнт Bambu Lab — Bridge скаже про це, а не перехопить мовчки (у системи один обробник на схему — файли може приймати лише один із двох).
- Реєстрація також додає per-user автозапуск, щоб перезавантаження не ламало прийом; зняття реєстрації його прибирає.
- Успішна передача показує сповіщення і не піднімає вікно — перед тобою слайсер, і стрибати поверх нього було б хамством. Лише збій виводить вікно наперед. Трей-тултіп завжди несе останній результат, і все пишеться в лог — тож придушене сповіщення ніколи не сплутається з невдалою заливкою.
Інтеграція тільки для Windows — Bambu так і не реалізувала цю передачу для macOS.
Роль 2 — принтери етикеток (Niimbot, USB)¶
Роль етикеток вимкнена, доки не ввімкнеш — Bridge, поставлений лише заради прийому зі слайсера, ніколи не відкриває серійний порт. Увімкни, вибери порт — і Bridge прочитає принтер: модель (і чи підтримується вона), прошивку, серійник, стан паперу і що каже мітка касети — штрих-код, тип витратника, скільки використано.
Далі він полить чергу етикеток твого сервера: BamDude рендерить етикетку в 1-бітний растр у момент постановки в чергу (надрукується саме те, що ти бачив у прев'ю — навіть через години), Bridge забирає роботу, друкує і звітує. Серверна половина — Етикетки шпуль.
- Пристрій всиновлює людина, а не ключ. Свіжопобачений принтер з'являється на сервері вимкненим; вмикаєш його в Налаштування → Філамент → Маркування. API-ключ доводить, що міст твій — він не вирішує, що принтеру за ним можна віддавати твої етикетки.
- Шаблон — істина, касета — гейт. Дизайн друкується рівно свого розміру або відхиляється — ніколи не масштабується: дробове масштабування 1-бітного растру тихо ламає пропорції штрих-кодів.
- Скінчився папір — пауза, не помилка. Робота чекає, доки вкинеш новий рулон — це фікс на десять секунд, а не стан збою.
- Розміри касет питаються один раз, на сервері. Жодна мітка Niimbot не звітує розмір у міліметрах; Bridge показує штрих-код, а BamDude питає тебе один раз про кожну касету, якої ще не бачив. Поля розміру в Bridge свідомо немає — розмір, який можна задати у двох місцях, стає двома розмірами.
Десктопний застосунок NIIMBOT тримає порт ексклюзивно
Поки він запущений, ніхто інший не відкриє принтер, а помилка — голе «Access is denied». Спершу закрий його.
Вирішення проблем¶
Принтер видно в Bridge, але він нічого не друкує
Ймовірно, він ще не всиновлений на сервері — новий пристрій приходить вимкненим за задумом. Увімкни його в Налаштування → Філамент → Маркування на боці BamDude.
Роботи стають у чергу, але нічого не виїжджає
Перевір стан паперу в Bridge — порожній рулон паркує чергу, а не валить її. І переконайся, що десктопний NIIMBOT закритий.
«Access is denied» при відкритті порту
Десктопний NIIMBOT (або інша програма) тримає серійний порт ексклюзивно. Закрий його і перепідключись.
Після відправки зі слайсера не з'явилось сповіщення
Focus Assist може придушувати сповіщення. Трей-тултіп завжди показує результат останньої передачі, а лог поруч із налаштуваннями пише все — включно з тим, чи прийнялось сповіщення.
Після перевстановлення Windows / чистки AppData принтер замовк
Свіжий installation id означає, що сервер бачить новий невсиновлений пристрій. Всинови його знову в Налаштування → Філамент → Маркування.