understanding of logic behind address used in Publish-Subscribe mechanism for Bluetooth Mesh

Vikrant More <vikrant8051@...>

static void gen_onoff_set(struct bt_mesh_model *model,
              struct bt_mesh_msg_ctx *ctx,
              struct net_buf_simple *buf)
        static volatile unsigned char copy1=NULL;

        unsigned char elem_idx = model->elem->addr - bt_mesh_primary_addr();

        unsigned char boo = net_buf_simple_pull_u8(buf);

        if( boo != copy1)
         printk("Data(set)= %u \n\r",boo);
         printk("Data(set) unicast_addr = %u \n\r",model->elem->addr);
         printk("Data(set) pub_addr = %u \n\r",model->pub->addr);
         printk("Data(set) sub_addr = %u \n\r",model->groups[0]);
            case 0:   
                        NRF_P0->OUT &= ~(1<<13);
                        NRF_P0->OUTSET |= (1<<13);                             

             case 1:     
                     NRF_P0->OUT &= ~(1<<14);
                     NRF_P0->OUTSET |= (1<<14);                             


       }//end of if


I have edited gen_onoff_set function for onoff server as mentioned above.

I'm using Silicon Labs Bluetooth Mesh App to provision & configure my nrf52840_pca10056 Board.

After controlling LED using GUI from App, above function is executing normally.

And it prints ...

Data(set)= 0 or 1
Data(set) unicast_addr = 1
Data(set) pub_addr = 0xC000 <--------------------------What is significance of this address ??
Data(set) sub_addr = 0XC001

when I control Led individually , source address = 0x2001 & destination address = 0x0001

when I control Led using master control , source address = 0x2001 & destination address = 0xC001.

Then tell me what is roll or use of 0xC000 ?
Or how it will help us ?



Join {users@lists.zephyrproject.org to automatically receive all group messages.