Comments 8
Спасибо за статьи.
У меня завалялись китайские часы "Watch 8 Ultra", просканировал их nRF Connect'ом, нашелся сервис Immediate Alert 0x1802, у него характиристика Alert Level 0x2A06 с возможностью записывать байты (Properties: WRITE NO RESPONSE). Отправлял туда 0x00, 0x01 , 0x02 - тишина, часы не издали ни звука, при этом, из официального Android приложения "WearPro" для этих часов, "пищалка" включается. Может быть там какие-то "проприетарные" байты нужны, как думаете?

Лучше всего отреверсить оригинальное приложение и посмотреть что оно отправляет
Я реверсил простой браслет. В гите есть ссылки на полезные статьи: https://github.com/dimka-rs/cheap-band
Не шибко силён в этом. Логи блютуса с помощью adb с телефона (фильры все предварительно отключил) вытащил после того, как потыкал в приложении и на часах отозвалось, посмотрел log-файл в Wireshark'е, но не увидел, что там, что-то передавалось похожее на байты для Alert Level. Хотя, пунктики Immediate Alert и Alert Level там были.
UPD:
В итоге, с помощью просмотра логов в nRF Connect, выяснилось, что ничего в Alert Level часов не отправляется, а звуковой сигнал с вибрацией удалось включить совершенно в другом сервисе c3e6c1a0-e966-1000-8000-be99c223df6a, в котором я обычно считывал температуру, давление, пульс и кислород. Включить сигнал можно отправив 0x55300005004000230500500000 в характеристику c3e6c1a1-e966-1000-8000-be99c223df6a. Вероятно, что в отправляемых байтах, есть какие-то параметры, отвечающие за длительность сигнала и включение/выключение вибрации, но я не стал с этим разбираться. Выяснилось лишь только, что байты (пометил их квадратными скобками) 0x553000050040[0023]0500500000 при отправке каждого нового сигнала, не должны повторять предыдущие. Выяснилось так же, что можно просто там ставить 0000, тогда не надо будет заморачиваться с вставкой значения отличающегося от предыдущего.
протокол для многих часов которые использует WearPro довольно неплохо разобран уже, на основе этого разбора сделали альтернативную софтину для часов chronos
Буду примного благодарен, если поделитесь ссылками.
примеры работы вот здесь https://github.com/m32/wearfit2
а вот здесь документашка и всякое, https://github.com/fbiego/dt78 после нее автор начал делать свои приложения для часов
Да, я согласен с dmitryrf, это лучший вариант. Если у производителя железа есть ещё и свое приложение, то они не обязаны строго придерживаться стандарта. Я обычно при помощи сниффера отслеживаю весь трафик обмена между телефоном и гаджетом, а потом его разбираю
BLE под микроскопом. Андроид. Часть3