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
}
