powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / delphi 10.3 Bluetooth и тонометр AND UA651
3 сообщений из 3, страница 1 из 1
delphi 10.3 Bluetooth и тонометр AND UA651
    #39809848
PriBoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

Борюсь вот с какой задачей. Надо через мобильное приложение считывать данные с тонометра AND 651 (он же 911).
Мобильное приложение работает(и на айосе тоже), по блютусу коннектится, и даже данные с прибора читает. Но, только служебные, такие как уровень заряда батареии, номер прошивки, модель устройства, и.т.д. А вот давление — нет. В инструкции для разработчика нарисовано, что прибор нужно перевести в какое-то особое состояние, как я понял/

Соответственно, имею два вопроса:

1. Я помню, в какой-то из старых дельфей был прямо пример подключения к AND, только 621, а не 651 модели, если я правильно помню. Може кто подсказать, где поискать коды тех примеров? Я на sourceforg-е искал, не могу найти

2. Если я правильно понял это японское, блин, графити, то чтобы перевсти прибор в "особое состояние", надо передать ему флаг и команду синхронизации времени, и после этого он начнёт передавать данные в течение 5-ти секунд. Пишут вот что:

1. Set the application to pairing mode to start scanning.
2. Start pairing of A&D BLE device following each instruction manual.
3. At pairing mode, the application should set time and date and any other device settings to A&D BLE device. After successful pairing, A&D BLE device shows “End” on the screen.
4. Take a measurement and finish the measurement, then A&D BLE device start BLE connection with advertising. The application starts scanning with suitable interval so that the application catches the advertising of A&D BLE device as soon as it can.
5. At initial connection or pairing, the Application set “2” to CCCD (Client Characteristic Configuration Descriptor) so that A&D BLE device sends a measurement data with Indication.
6. After A&D device recognizes to be set “2” to CCCD and to be synchronized time and date within 5 seconds after connected, send the data with Indication.
7. If the timeout set CCCD and time and date is expired, A&D BLE device will not send data and store the data in memory. The stored data in A&D BLE device can send next successful connection.

Как это сделать? я не могу поянть, как прописать CCCD, как синхронизироваьт время?

Заранее спасибо.
...
Рейтинг: 0 / 0
delphi 10.3 Bluetooth и тонометр AND UA651
    #39810598
PriBoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё сделал. Пишу сюда, вдруг кому понадобится.

Всё оказалось до ужаса скучно. Есть только одна тонкость, ниже расскажу.

Как оказалось "всреднем по больнице" порядок работы с медицинскими устройствми одинаковый:

0. Нужно найти характеристику, в которую будут возвращаться данные. Это надо делать либо в документалове, либо методом тыка. У характеристики обычно красноречивое название, типа "Preassure Measurement", "Temperature", и.т.д.


Далее нужно запустить прибор, измерить показатель, дождаться когда прибор начнёт моргать блютусом(в этот момент он рассылет рекламное сообщение), запустить мобильное приложение, и сделать в нём следующее:

1. Получить устройство.
2. Прочитать сервисы. В этот момент дельфя сама подключится к устройству. В первый раз операционка мобилы попросит подтвердить спаривание.
3. Получить сервис, в котором есть характеристика "Дата Время" (он может соввпадать с тем, в котором характеристика с данными, а может отличатсья). В случае с тонометром совпало, а у китайских термометров — оказалась в отдельном сервисе.
4. Получить характеристику "Дата время" (не прочитать, получить!!!).
5. Записать в характеристику "Дата время" текущие дату и время с мобильного устройства.
6. Записать команду отправки данных. На всех устройствах это делается по-разному. Есть некая "кастомная характеристика", которая позволяет отправить на устройство команду на передачу данных. Сама команда — это несколько байт. И вот тут тонкость. Получить эту кастомную характеристику стандартынм методом почему-то иногда нельзя. Зато можно просто по индексу в сервисе. То есть
BC:=SV_CUST.GetCharacteristic(CUSTHAR_UUID); — Не работает, хотя должно
BC:=SV_CUST.Characteristics[0]; — А вот так работает.
7. Далее всё скучно. Подписываемся на характеристику с данными (метод SubscribeToCharacteristic).
8. В обработчике "OnCharacteristicRead" ловим данные и их парсим.

На всё про всё 20-30 стрчек кода, не считая парсинга(мы при парсинге пишем в базу данных, и целая история дальше). Приложение нормально работает и на Андроиде, и на Айос. Вцелом резюме следующее — не надо бояться, в дельфе, как обычно, всё работает. Надо только разбораться, какие именно 20-30 строчек написать.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
delphi 10.3 Bluetooth и тонометр AND UA651
    #40100873
Fast_IQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Вот то же бьюсь над таким же тонометром. И некоторые моменты не совсем понятны. Например авторПолучить характеристику "Дата время" (не прочитать, получить!!!). Вот в чем разница. Если можно было бы не плохо ключевые моменты кода. С временем получением и записью. С кастомной характеристикой.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / delphi 10.3 Bluetooth и тонометр AND UA651
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]