1

我已经设置了一个使用 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;

         }

这是我可以实现的图像在此处输入图像描述

4

0 回答 0