roma-cezar 0 28 июня, 2017 Опубликовано 28 июня, 2017 (изменено) · Жалоба Всем добрый день! Мало помалу осваиваю 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 прошу совета.... Изменено 28 июня, 2017 пользователем Роман Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 28 июня, 2017 Опубликовано 28 июня, 2017 · Жалоба Разделом не ошиблись? :bb-offtopic: BLE - это больше относится к Форумы по интерфейсам Вы вообще Bluetooth Core Specification version 4.0 пользовали? :salmari: Что значит но записать со стороны МК не получается....не вижу на телефоне чтобы чтото полученно было. особенно, когда устройств типа BLE Observer ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться