Как читать значения из характеристик (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.

Любая информация, подсказки и / или помощь приветствуются.

Большое спасибо

С уважением

0 ответов

Другие вопросы по тегам