реклама на сайте
подробности

 
 
> NRF52 BLE Custom Service, Запись значения в характеристику
Роман
сообщение Jun 28 2017, 12:10
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 14-08-11
Пользователь №: 66 719



Всем добрый день!
Мало помалу осваиваю 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 прошу совета....

Сообщение отредактировал Роман - Jun 28 2017, 12:11
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 01:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016