Bluetooth mesh sensor client example gives different outputs in different mobile devices

Hello

I tried bluetooth mesh sensor server and client example, everything is good including provisioning process in mobile but the output is different with different mobiles. i have 2 mobiles where i tested in both mobiles i get output of this part as shown in picture-1

picture-1

and

picture-2

and from the picture-2 of code except chip temperature i can see other printk functions in output.

I tried this in my colleague mobile in that i can see picture-2 outputs but not picture-1 output.

I am really confused, why this happens? Can anyone help me as soon as possible please...

Regards

SaSu

Parents
  • Hi,

    1. Which devices did you use for the sensor server and client samples?
    2. Could you add the output you see on your mobiles as well? 
    3. Are there any differences between the mobiles? Different OS'?

    Kind regards,
    Andreas

  • Hello

    Sorry for late response. 1. For sensor_server thingy:53 with nRF5340DK and for sensor_client nRF52840DK

    2. From my colleague mobile i dont have screenshot also he is not available now its android and output comes from picture-2 i.e "chip temperature is .. ", "presence detected" and so on. I have two mobiles one is android and other is IOS so in both i could not see "chip temperature" output line its directly jumping to picture-1 i.e "Relative runtime in 0 to 30 degrees : 0.0000 percent" and also i can see presence detected lines when i press button on thingy-53.

    3. Already answered in point 2

    Regards

  • You need to understand that I don't have your application files, so these snippets mean nothing to me. Are they in the same function?

    Why should the last part be called? Where is it called from? is (sensor->id == bt_mesh_sensor_present_dev_op_temp.id) returning true? 

  • sensor_server.zipsensor_client.zip

    Here is the code and i could not understand the second line of your reply

    Regards

  • Ok, so I see that you have the callback function in you sensor_client:

    static void sensor_cli_data_cb(struct bt_mesh_sensor_cli *cli,
    			       struct bt_mesh_msg_ctx *ctx,
    			       const struct bt_mesh_sensor_type *sensor,
    			       const struct sensor_value *value)
    {
    	if (sensor->id == bt_mesh_sensor_present_dev_op_temp.id) {
    		printk("Chip temperature: %s\n",
    		       bt_mesh_sensor_ch_str_real(value));
    	} else if (sensor->id == bt_mesh_sensor_presence_detected.id) {
    		if (value->val1) {
    			printk("Precense detected\n");
    		} else {
    			printk("End of presence\n");
    		}
    	} else if (sensor->id ==
    		   bt_mesh_sensor_time_since_presence_detected.id) {
    		if (value->val1) {
    			printk("%s second(s) since last presence detected\n",
    			       bt_mesh_sensor_ch_str_real(value));
    		} else {
    			printk("No presence detected, or under 1 second since presence detected\n");
    		}
    	}
    }

    If you set a breakpoint inside sensor_cli_data_cb, is this ever triggered?

    And if it does, is sensor->id equal to bt_mesh_sensor_present_dev_op_temp.id?

    BR,
    Edvin

  • It is triggering and sensor->id is not equal to bt_mesh_sensor_present_dev_op_temp.id.

    Here are the screenshots for that. And i want the bt_mesh_sensor_present_dev_op_temp.id same as sensor->id. What should i do?

    Regards

  • Ok, so the issue is not that printk() is not working. The issue is that it never enters the condition:

    else if (sensor->id == bt_mesh_sensor_presence_detected.id)

    I am not that familiar with the sensor_cli API. But apparently, you are triggering the callback with sensor->id == bt_mesh_sensor_time_since_presence_detected.id. How do you trigger this?

Reply
  • Ok, so the issue is not that printk() is not working. The issue is that it never enters the condition:

    else if (sensor->id == bt_mesh_sensor_presence_detected.id)

    I am not that familiar with the sensor_cli API. But apparently, you are triggering the callback with sensor->id == bt_mesh_sensor_time_since_presence_detected.id. How do you trigger this?

Children
Related