MultiMote
14cf65bbf0
All checks were successful
Build and deploy mmote.ru / Build-And-Deploy (push) Successful in 34s
2.2 KiB
2.2 KiB
title | description | date | draft | tags | categories | featured_image | lastmod | telegram_entry_id | type | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Изучаем протокол принтеров Niimbot | Изучаем протокол принтеров Niimbot и печатаем этикетки, отправляя пакеты | 2024-06-29T21:10:28+03:00 | false |
|
|
miniature.jpg | 2024-07-25T21:04:37+03:00 | default |
После того, как поигрались с niimprint, захотелось чего-то большего. У меня появилась идея написать полноценный веб-интерфейс для печати, в котором можно будет и рисовать этикетки, и печатать. Для этого я решил изучить протокол принтеров.
Вооружившись Wireshark и android телефоном, снял дампы обмена данными с принтером по bluetooth. Для этого нужно было включить опцию "Bluetooth HCI Snoop Log" в настройках разработчика, а потом на компьютере после печати запустить adb bugreport <filename>
.
Изучив пакеты и сверившись с другими открытыми данными, получилась такая структура пакета:
- Prefix – префикс
0x03
, присутствующий только при одной команде - Connect. - Head – всегда 2 байта
0x55
0x55
. - Command – ID команды (пакета).
- Data length – количество байтов данных, идущих далее.
- Data – непосредственно данные в количестве Data length.
- Checksum – вычисляется с помощью XOR всех байтов от Command до последнего байта Data.
- Tail – всегда 2 байта
0xAA
0xAA
.