Skip to content

Приложение для печати стикеров на принтерах MHT-P13.

Notifications You must be signed in to change notification settings

niazlv/BT_Sticker

Repository files navigation

BT_Sticker

Приложение для печати стикеров на принтерах MHT-P13.

Как с ним работать?

  1. Откройте приложение, нажмите "Find device", начнется поиск устройств. Выберите из списка ваш принтер "MHT-P13", после завершите поиск, нажав stop scan(иначе приложение будет искать новые устройства все время).
  2. Подключитесь к нему кнопкой "Connect"
  3. Откройте нужную вам картинку внопкой "Open image"
  4. Если картинка вертикальная, то разверните её кнопкой "Rotate button"
  5. !!!ВАЖНО!!! Нажмите "Convert image size" и ваша картинка ужмется до размеров 96240px(размер стикера 1230мм)
  6. Если ваша картинка была не подготовлена, и не была превращена в монохромную, то можно её в такую превратить кнопкой "Black and White" или же, если картинка с отенками, то можно использовать "Dithering".
  7. Чтобы посмотреть как будет выглядеть стикер до печати, можно нажать кнопку "Real size" и вы увидите максимально приблеженную картинку к реальной
  8. Нажимаем кнопку "Send" для отправки на печать
  9. по окончании работы с принтером, нажимаем "Close connection" иначе приложение будет жить в фоне и поддерживать свою работу

У Dithering'а есть настройки, например как Matrix size. По умолчанию стоит размер матрицы 2. Получаются самые детальные фото.
Так же есть параметр threshold. Это "пороговые значения", изменяет порог при котором отсекаются цвета. Работает и к "Dithering" и к "Black and White".
Ещё есть параметр "inversion". Инвертирует цвета

Как оно работает? Могу ли я сам собрать приложение?

Да, конечно. Я лишь разобрал работу приложения MSticker через журнал HCL Bluetooth. Минимальный протокол таков(больше просто не разбирался)
Общается в RAW режиме(бинарном, байтовом) Команды буду писать используя HEX
dd - начало и конец пакета

команда          размер  служебный блок       данные    размер стикера
dd  00 01 02     0b 44   00 0c 01 00          ...00dd       12*30
dd  00 01 02     0f 04   00 0c 01 00          ...00dd       12*40
dd  00 01 02     1b b8   00 0c 01 00          ...00dd       12*109

в размер указывается размер данных(96*240/8) + 4 байта из служебного блока. Как посчитать разрешение?
DPI = 203px/in
pixX = 203*30/25.4
pixY = 203*12/25.4

Данные слать нужно через RFCOMM(BT serial port). На этом пока что все.

префикс устройства(мак адреса) таков: 42:21:BB:2C

TODO

  • Поиск устройств внутри приложения
  • Автоматический ввод пинкода
  • Адаптивный интерфейс
  • возможность печати на разных размерах(сейчас только 12*30)

In the process

  • ReactNative оболочка интерфейса(основной backend кода будет из этого проекта). Интерфейс будет аналогичен оригинальному китайскому MSticker. На текущий момент трудностью встала работа с BT под реактом. Не возможно слать RAW bytes по RFCOMM.

Others

Знаю, что приложение сырое. Делал сугубо для себя. Буду благодарен, если кто-то сделает интерфейс
Принтер покупался тут: aliexpress