Как читать значения из характеристик (BLE / BLUENRG-M2)?
Добрый день.
Я новичок в BLE, и мне довольно сложно с ним разобраться. Я использую демонстрационный пример датчика, поставляемый с ST X-Nucleo-BNRG2A1. Теперь у меня есть заказная плата с BlueNRG-M2 в качестве сопроцессора с STM32F030C8T6 (SPI).
Электроника получает команды от приложения по нескольким характеристикам, и в зависимости от команд uC будет включать / отключать TRIAC и реле. Есть 3 канала АЦП, которые опрашиваются, и значения записываются в 3 характеристики. Это прекрасно работает.
У меня проблемы с чтением значений, записанных приложением. Из того, что я собрал, чтение должно быть выполнено с помощью следующих команд:
aci_gatt_read_char_value();
или
aci_gatt_read_using_char_uuid();
Но оба они возвращают только статус BLE (и я получаю ошибку 0x47). Как я могу прочитать значения? В руководстве по программированию упоминаются события. Как я могу с этим справиться?
tBleStatus Read_ProgramID(void)
{
tBleStatus ret;
ret = aci_gatt_read_char_value(connection_handle, ProgramIDHandle+1);
if (ret != BLE_STATUS_SUCCESS){
PRINT_DBG("Error while reading ProgramID characteristic: 0x%02X\n",ret) ;
return BLE_STATUS_ERROR ;
}
return BLE_STATUS_SUCCESS;
}
connection_handle записывается с 0x801 и ProgramIDHandle 0x16.
Любая информация, подсказки и / или помощь приветствуются.
Большое спасибо
С уважением