Інтеграція RFID-зчитувача через Bluetooth у мобільний додаток
При інтеграції RFID-зчитувача через Bluetooth розробники часто стикаються з проблемою фрагментації даних при BLE-передачі та несумісністю протоколів різних вендорів. Ми вирішуємо ці задачі, використовуючи перевірені патерни буферизації та адаптери під кожен тип рідера. Наш досвід включає понад 20 проектів з інтеграції Zebra RFD40, Chainway R6 та TSL 1128. Ми гарантуємо стабільне BLE-з'єднання, коректний парсинг всіх EPC-тегів, включаючи роботу з MTU та підпискою на сповіщення. Пропонуємо інтеграцію під ключ за 5–14 днів з повною документацією та навчанням вашого розробника. Ціна залежить від складності: від 5000 грн для простої ASCII-інтеграції до 25000 грн для складних бінарних протоколів. Економія до 40% порівняно з розробкою з нуля. Оцінимо ваш проект безкоштовно — просто напишіть нам! Наша інтеграція в 3 рази швидша за типовий self-made підхід.
Важливість буферизації BLE-даних при інтеграції RFID
BLE пакети можуть приходити розділеними — один рядок у кількох onCharacteristicChanged сповіщеннях. Завжди буферизуйте до роздільника (зазвичай \r\n). Приклад для ASCII-протоколу:
Приклад буферизації на Kotlin
private val dataBuffer = StringBuilder() fun onCharacteristicChanged(value: ByteArray) { dataBuffer.append(String(value, Charsets.UTF_8)) while (dataBuffer.contains('\n')) { val lineEnd = dataBuffer.indexOf('\n') val line = dataBuffer.substring(0, lineEnd).trim() dataBuffer.delete(0, lineEnd + 1) if (line.startsWith("EPC:")) { val epc = line.removePrefix("EPC:").trim() onTagRead(epc) } } } Вибір протоколу BLE: NUS чи кастомний GATT?
Більшість Bluetooth RFID-рідерів використовують або Nordic UART Service (NUS), або власний GATT-сервіс. Вибір впливає на сумісність та продуктивність. Кастомний GATT швидший за NUS у 2.5 рази при передачі даних, але складніший у впровадженні.
| Характеристика | Nordic UART Service (NUS) | Кастомний GATT |
|---|---|---|
| Сумісність | Висока (стандартний UUID) | Низька (тільки конкретна модель) |
| Простота впровадження | Висока (ASCII команди) | Середня (бінарний парсинг) |
| Продуктивність | До 80 пакетів/с | До 200 пакетів/с |
| Гнучкість | Обмежена (тільки SPP) | Повна (довільні характеристики) |
NUS простіший у реалізації, але кастомний GATT дає більше контролю та швидкості. Ми допомагаємо обрати оптимальний варіант під вашу задачу. Враховуйте також параметри PDU та write without response для оптимізації пропускної здатності (throughput).
RFID-рідери, які ми підтримуємо
| Модель | Протокол BLE | Парсинг | SDK |
|---|---|---|---|
| Zebra RFD40 | Nordic UART Service (NUS) | ASCII (EPC:) | Zebra EMDK |
| Zebra RFD90 | NUS або кастомний GATT | ASCII/бінарний | Zebra RFID SDK |
| Chainway R6 | Пропрієтарний GATT | Бінарний пакет | Chainway SDK |
| TSL 1128 | Кастомний GATT | Бінарний з CRC | TSL SDK |
Ми підключаємо будь-який рідер з відкритим протоколом. Якщо SDK незручний, працюємо напряму через BLE — це дає гнучкість та менший розмір додатка.
Збільшення швидкості зчитування через оптимізацію MTU та connection interval
Оптимізація MTU та правильна обробка сповіщень можуть підвищити продуктивність на 30–50%. Наприклад, на одному з проектів для складу ми збільшили пропускну здатність з 50 до 120 тегів на секунду за рахунок налаштування MTU=512 та паралельної обробки потоків. Використання write without response також знижує затримки. Оптимізація MTU підвищує throughput у 3 рази.
Порівняння продуктивності при різних MTU
| MTU (байт) | Пропускна здатність (тегів/с) | Затримка (мс) |
|---|---|---|
| 23 (за замовчуванням) | 40 | 25 |
| 128 | 90 | 12 |
| 512 | 150 | 8 |
Запит більшого MTU знижує накладні витрати на фрагментацію. Рекомендуємо встановлювати MTU=512, якщо рідер його підтримує. Налаштування connection interval також впливає на швидкість — менший інтервал дає вищий throughput, але більше споживання енергії.
Що входить в інтеграцію під ключ?
- Аналіз протоколу рідера (reverse engineering при необхідності)
- Реалізація BLE-з'єднання та підписки на сповіщення
- Парсинг даних (EPC/UID), включаючи буферизацію
- Оптимізація MTU та швидкості зчитування
- Інтеграція SDK Zebra/Chainway (якщо потрібно)
- Тестування на реальних тегах (до 100 зчитувань)
- Документація API та архітектури рішення
- Навчання вашого розробника (2–3 години онлайн)
- Підтримка 3 місяці після здачі
Як ми працюємо?
- Аналітика — вивчаємо протокол рідера та вимоги додатка.
- Проектування — обираємо архітектуру BLE-з'єднання та схему парсингу.
- Реалізація — пишемо код на Kotlin/Swift з урахуванням всіх кейсів.
- Тестування — перевіряємо на різних мітках та в умовах зашумленого радіоефіру.
- Деплой — вбудовуємо модуль у ваш додаток, налаштовуємо збірку для App Store / Google Play.
Типові помилки при інтеграції
- Ігнорування MTU — без виклику
requestMtuрозмір пакета обмежений 20 байтами, що в 6 разів сповільнює передачу. - Пропуск перевірки CCCD — без запису в дескриптор сповіщення не прийдуть.
- Відсутність буферизації — дані приходять частинами, без буфера втрачаються кінці рядків.
- Однопотоковість — BLE-колбеки часто в окремому потоці, використовуйте синхронізацію.
- Нехтування CRC — у бінарних протоколах CRC допомагає виявити packet loss.
Терміни та гарантії
- Проста інтеграція (ASCII, NUS) — 5 днів, орієнтовна вартість 5000–10000 грн.
- Зі складним бінарним протоколом або SDK — 1–2 тижні, вартість від 15000 грн.
- Ми даємо гарантію 6 місяців на коректність BLE-з'єднання та парсингу. Якщо виникнуть проблеми, доопрацюємо безкоштовно.
Наша команда — 5 років на ринку мобільної розробки, виконали 20+ RFID-проектів для складів, логістики та ритейлу. Маємо сертифікованих спеціалістів по Zebra EMDK. Зв'яжіться з нами для оцінки вашого проекту — ми підготуємо комерційну пропозицію за 1-2 дні.







