Перейти к содержанию
    

NRF52 BLE Custom Service

Всем добрый день!

Мало помалу осваиваю NRF51/52 пытаюсь разобраться по примерам как работать с блутуз стеком от нордика. стадию написания блютуз меток, устройств типа BLE Observer ну и по примерам тестирование различных готовых сервисов прошел.

основные же трудности у меня в меру небольшого ума и знания языка встали при попытке реализовать свой сервис и обмениваться с программкой на андройде данными. Со стороны андройда все просто и работает.

Со стороны мк у меня долго ничего не получалось, пока не наткнулся на Bluetooth dev. studio (BDS) и с горем пополам, опираясь на скудный мануал смог запустить свой сервис.

В итоге могу со стороны мк получать данные из значения value моей characteristic при записи в нее с телефона, но записать со стороны МК не получается....не вижу на телефоне чтобы чтото полученно было.

 

Параллельно задавал данный вопрос по этому поводу (на своем корявом англ.) в теме на nordic dev zone тут!

Там же выложил проект в кейле и файлы, сгенерированные BDS.

 

 

Функция для записи данных делалась на основе примера с того же Nordic Dev Zone.

 

uint32_t ble_my_service_value_update(ble_myprofile_t * p_myprofile, uint8_t data)
{
uint32_t err_code = NRF_SUCCESS;

ble_myprofile_evt_t ble_myprofile_evt;
ble_gatts_value_t gatts_value; 
ble_myprofile_t ble_myprofile;
ble_myprofile_mycharacteristic_t * p_mycharacteristic;

memset(&gatts_value, 0, sizeof(gatts_value));
gatts_value.len = sizeof(uint8_t);
gatts_value.offset = 0;
gatts_value.p_value = &data;
err_code = sd_ble_gatts_value_set(p_myprofile->conn_handle, 
p_myprofile->mycharacteristic_handles.value_handle, 
&gatts_value);

if (p_myprofile->conn_handle != BLE_CONN_HANDLE_INVALID)
{
ble_gatts_hvx_params_t hvx_params;
// Initialize value struct.
memset(&hvx_params, 0, sizeof(hvx_params));

hvx_params.handle = p_myprofile->mycharacteristic_handles.value_handle;
hvx_params.type = BLE_GATT_HVX_NOTIFICATION;
hvx_params.offset = gatts_value.offset;
hvx_params.p_len = &gatts_value.len;
hvx_params.p_data = gatts_value.p_value;
err_code = sd_ble_gatts_hvx(p_myprofile->conn_handle, &hvx_params);
}
return err_code;
}

 

 

Возможно не правильно произвожу обновление значения в характеристике, либо что то накосячил при настройке BDS

Знатоки NRF5 и BDS прошу совета....

Изменено пользователем Роман

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разделом не ошиблись? :bb-offtopic: BLE - это больше относится к Форумы по интерфейсам

 

Вы вообще Bluetooth Core Specification version 4.0 пользовали? :salmari:

Что значит

но записать со стороны МК не получается....не вижу на телефоне чтобы чтото полученно было.

особенно, когда

устройств типа BLE Observer

? :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...