Например TDA7294

Форум РадиоКот • Просмотр темы - ESP 32 - BLE
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб дек 20, 2025 01:10:13

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ESP 32 - BLE
СообщениеДобавлено: Ср фев 08, 2023 19:47:41 
Родился

Зарегистрирован: Ср окт 28, 2015 23:59:20
Сообщений: 5
Рейтинг сообщения: 0
Здравствуйте. :)
Плата ESP 32
Никак не получается решить проблему по передаче и приему данных по BLE.
Есть несколько разных датчиков от которых требуется передавать данные плюс требуется предавать значения некоторых переменных.
Эти данные помещаются в массив и в цикле передаются от сервера клиенту.
Ниже для примера вместо данных передаем значения в 0x виде и для идентификации на приемной стороне начала массива обозначаем находящиеся там данные как 0xAA;

BLE_KGR_buf[0] = 0xAA;
BLE_KGR_buf[1] = 0xA;
BLE_KGR_buf[2] = 0xB;
BLE_KGR_buf[3] = 0xC;
BLE_KGR_buf[4] = 0xD;
BLE_KGR_buf[5] = 0xE;
BLE_KGR_buf[6] = 0xF;
BLE_KGR_buf[7] = 0xFF;
for (uint8_t i = 0; i < 8; i++)
{
float BLE_KGR = BLE_KGR_buf[i];
static char BLE_buf[7];
dtostrf(BLE_KGR, 6, 2, BLE_buf);
filter_Characteristics.setValue(BLE_buf);
filter_Characteristics.notify();
delay(20);
}


Код клиента запускается когда от сервера начинают приходить данные:

static void filterNotifyCallback(BLERemoteCharacteristic* pBLERemoteCharacteristic,
uint8_t* pData, size_t length, bool isNotify) {
String tstr = (char*)pData;
filter = tstr.toInt();
}


Данные приходят, но при попытке упорядочивания в цикле их обратно в массив после определения первой ячейки 0xAA для идентификации кто есть кто получается путаница, например:
BLE_KGR_buf[0] = 0xAA;
BLE_KGR_buf[1] = 0xA;
BLE_KGR_buf[2] = 0xB;
BLE_KGR_buf[3] = 0xC;
BLE_KGR_buf[4] = 0xD;
BLE_KGR_buf[5] = 0xD;
BLE_KGR_buf[6] = 0xD;
BLE_KGR_buf[7] = 0xFF;
Код для распределения данных по порядку в массив находится в основном цикле.
Если в одной характеристике передавать одно значение от одного датчика то все работает хорошо.
Есть ли какой то флаг по которому можно судить, что данные по определенной характеристике пришли?
Как правильно организовать передачу и прием данных по BLE для массива, поделитесь информацией, кодом, идеей ссылкой))


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y