BLE Mesh Sensor Model issue 2

Hi everyone,


I have a preblem for BLE Mesh 5.0 version (board is nrf52840),

I found that in the Setting set function of the Sensor Model, it seems that the data is transmitted  by client to the server, but the server cannot receive it.

Does anyone have the same problem? How to solve it?

Process:

I'm using unmodified example when testing, but 

I using client model button(1) trigger sensor_client_setting_set (P1)

 (P1)

set data is 

static uint16_t length;
static sensor_setting_set_msg_pkt_t set_data;
set_data.property_id = SENSOR_MOTION_SENSED_PROPERTY_ID;
set_data.setting_property_id = SENSOR_MOTION_SENSED_PROPERTY_ID;
set_data.setting_raw[0] = 0x01;
set_data.setting_raw[1] = 0x20;

sensor_client_setting_set is timeout for Client. (P2) 

Client:

But I using sensor_client_setting_get with Client, server has response.

Client: (P3) 

 (P3)

Server: (P4)

  (P4)

By the way, provisioner configuration was successful.

Best regards.

Parents Reply Children
  • Hi Guanting-Lai, 
    I  would suggest to continue on the other 2 cases. I have changed the status of the Verified case to Open. You can add the information there. 


    One tip for you to debug this is to have a look at mesh_msg_handle() function inside access.c file. This is where the access layer processes incoming messages. You can print out more log information about incoming message in this function (look for where we print "RX: " ) from there you can printout the opcode used and can check if the sensor_client_setting_set  message from the client has reached the server or not. And why the server didn't reply the client. You can compare it with when you send sensor_client_setting_get () command. 

    On the client's side you can also printout what is sending out inside packet_tx() function, in the same file. 

  • Hi, Hung Bui
    Sorry for the late reply.
    I tried many times, but still can't receive the client's setting message on the server side. I also tried the method you said, but I don't know how to use what you said, can you say more?

  • Hi  Guanting-Lai, 

    Have you located where we print the log RX: in mesh_msg_handle() in access.c ? 
    You would need to turn on LOG_SRC_ACCESS in  __LOG_INIT initialize() in main.c 


    When you can see the RX: log for each message to access layer you can start printing out more information to see which packet has arrived with which data. 

Related