我已经设置了一个使用 nrfconnect 和 nrf52 dk 将数据上传到 nrfcloud 的环境。我只能上传数据到 ff 然后它重置为零。我上传的值是一个整数值,所以我想显示数字云上从 0 到至少 32000。这是迄今为止的云图像。我已经使用此页面中的代码通过通知将数据上传到云。我必须如何增加从 00 到 0000 的位数最大值为 65585 的服务。我必须更改代码吗?请帮助
这是通知处理程序代码。
static void notification_timeout_handler(void * p_context)
{
UNUSED_PARAMETER(p_context);
ret_code_t err_code;
// Increment the value of m_custom_value before nortifing it.
m_custom_value=pulses;
///where pulses is of type integer
err_code = ble_cus_custom_value_update(&m_cus, m_custom_value);
APP_ERROR_CHECK(err_code);
}
ble_cus_custom_value_update() 代码是
uint32_t ble_cus_custom_value_update(ble_cus_t * p_cus, uint8_t
custom_value)
{
if (p_cus == NULL)
{
return NRF_ERROR_NULL;
}
/* 此代码属于 ble_cus.c 中的 ble_cus_custom_value_update() */
uint32_t err_code = NRF_SUCCESS;
ble_gatts_value_t gatts_value;
// 初始化值结构。memset(&gatts_value, 0, sizeof(gatts_value));
gatts_value.len = sizeof(uint8_t);
gatts_value.offset = 0;
gatts_value.p_value = &custom_value;
// Update database.
err_code = sd_ble_gatts_value_set(p_cus->conn_handle,
p_cus->custom_value_handles.value_handle,
&gatts_value);
if (err_code != NRF_SUCCESS)
{
return err_code;
}
/* This code belongs in ble_cus_custom_value_update() in ble_cus.c*/
// Send value if connected and notifying.
if ((p_cus->conn_handle != BLE_CONN_HANDLE_INVALID))
{
ble_gatts_hvx_params_t hvx_params;
memset(&hvx_params, 0, sizeof(hvx_params));
hvx_params.handle = p_cus->custom_value_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_cus->conn_handle, &hvx_params);
}
else
{
err_code = NRF_ERROR_INVALID_STATE;
}
return err_code;
}