Send Numbers through MQTT

Dear Nordic Team, 

I am trying to send numbers in Cjson format through MQTT. However, I am getting errors as shown in the diagram below. I have attached my code below. May i know how to resolve this issue?

Best regards,

Yeo Rhi Khin

void my_work_handler(struct k_work *work)
{
    printk("Timer triggered, publishing MQTT message!!!!\n");
	data_publish(&client,MQTT_QOS_1_AT_LEAST_ONCE,dPayload,strlen(dPayload));
	
// Cjson testing starts here

   snprintf(value_buf1, sizeof(value_buf1), "%.1f",
   value1);

   snprintf(value_buf2, sizeof(value_buf2), "%.1f",
   value2);

   //snprintf(val_buf, sizeof(val_1), "%.1f",
   //val_1);

   /* create root node and array */
   root = cJSON_CreateObject();
   sensors = cJSON_CreateArray();

   /* add sensors array to root */
   cJSON_AddItemToObject(root, "sensors", sensors);

   /* add 1st sensor to sensors array */
   cJSON_AddItemToArray(sensors, sensor = cJSON_CreateObject());
   cJSON_AddItemToObject(sensor, "value", cJSON_CreateNumber(data_value));
   cJSON_AddItemToObject(sensor, "sensor_id", cJSON_CreateString(id1));

   /* add 1st sensor to sensors array */
   cJSON_AddItemToArray(sensors, sensor = cJSON_CreateObject());
   cJSON_AddItemToObject(sensor, "value", cJSON_CreateString(value_buf2));
   cJSON_AddItemToObject(sensor, "sensor_id", cJSON_CreateString(id2));

   /* print everything */
   out = cJSON_Print(root);
   printk("%s\n", out);

   /* Publish with MQTT */
   data_publish(&client, MQTT_QOS_1_AT_LEAST_ONCE,
				out, strlen(out));

   free(out);

   /* free all objects under root and root itself */
   cJSON_Delete(root);

   return;

   //Cjson testing ends here

}

Parents Reply Children
Related