BLE_MESH的一些问题

Wangcheng
Posts: 73
Joined: Wed Mar 06, 2019 3:26 am

Re: BLE_MESH的一些问题

Postby Wangcheng » Tue May 21, 2019 12:03 pm

Wangcheng wrote:
Tue May 21, 2019 11:09 am
chenluhui2019 wrote:
Tue May 21, 2019 1:04 am
Wangcheng wrote:
Mon May 13, 2019 7:08 am

Hi chenluhui,
问题1:
方案可行,但是不建议这样操作,在手机app(provisioner)上实现?
补充: 一般开发网关有两种方式:方式1 APP作为网关(比如我们提供的EspBleMesh App),方式2 不要APP,直接用设备作为网关(比如我们提供的ble_mesh_provisioner demo),它们都具备将设备配置入网的能力。
设备配置入网后网络中就有Provisioner,Node1,Node2,Node3 .Provisioner 知道Node1,Node2,Node3的地址。Node1,Node2,Node3知道Provisioner 的地址。它们两者之间可以使用单播地址(设备地址)进行通讯。
说明: 代理节点从一种承载层接收消息并将消息通过另一种承载层重新发送,目的是将只支持 GATT 承载层的通讯设备接入到蓝牙 mesh 网络中,比如手机 App。承载层一般包含广播承载层及GATT承载层等。
问题2:采用的是设备地址(单播地址)通讯的。
问题3:你可以通过Vendor model来写心跳,也可以采用Health Server相关的Model,Health Model相关的API在esp_ble_mesh_health_model_api.h
问题4:暂时没有功能,你可以把它当做普通按键使用
问题5:provisioner 知道节点的地址,可以采用vender model的方式发送自定义消息.
问题6:多个provisioner共享网络中的消息,你需要自己想一个机制去获取网络中的信息,比如采用一个节点存放网络中所有节点的地址。
问题7:你是在哪个app上进行操作的?
问题8:在NRF的手机app里,右下角“Setting”里有个“Network Key”,修改它就意味着修改了provisioner的Netkey,provisioner配置其它设备入网时会把这个netkey分配给入网的节点。
谢谢支持
问题2:采用的是设备地址(单播地址)通讯的。
==》意思是,ble_mesh_client_model和ble_mesh_node在设置了remote_addr值之后,就算两个node之间没有发布订阅关系也能用单播地址通讯?
问题5:provisioner 知道节点的地址,可以采用vender model的方式发送自定义消息.
==》我是否可以理解成:因为都是软件栈,手机APP里可以模拟成client,通过GATT代理(proxy)特性来向server(node)发送消息。
vendor model有分client和server吗?
问题6:多个provisioner共享网络中的消息,你需要自己想一个机制去获取网络中的信息,比如采用一个节点存放网络中所有节点的地址。
==》那是否需要根据NRF的源码做修改,使得多个provisioner(手机)里面关于node的数据通过任意方式(比如云端)同步,就能做到任意手机都能充当provisoner。
问题7:你是在哪个app上进行操作的?
==》我是在NRF的app上操作的,我看了代码,ESP_BLE_MESH_NODE_PROV_RESET_EVT没有做任何处理,可能是这个功能还没写,所以不会是的Node->device
问题8:在NRF的手机app里,右下角“Setting”里有个“Network Key”,修改它就意味着修改了provisioner的Netkey,provisioner配置其它设备入网时会把这个netkey分配给入网的节点。
==》修改它就意味着修改了provisioner的Netkey:Provisioner和Node的netkey在组网后应该都是一样的,您这里说的意味着修改了provisioner的Netkey,那provisioner的Netkey改了,不是全网的Netkey都变掉了吗?
问题9:组网后,netkey是否可以在代码里获取得到?我看手机app上能显示netkey?
问题10:贵司reset node的操作执行函数是否还未做出来?现在无法实现node->device的操作,只能复位开发板
问题11:ble_mesh_client_model似乎不能在ESP32_PICO_KIT板子上跑,会不断的报错重启。
如果我两块板子(node)都烧写ble_mesh_client_model的代码,那都有client和server存在了,都绑上一样的appkey,就可以实现互发消息了对吧?
另外:贵司的esp32可以和Nodic或者其他厂家的组网吗?贵司ble_mesh的sdk正式版本何时能提供呢?
问题2: 是的,地址包含单播地址,组地址,虚拟地址,未分配地址(Unassigned Address) 4种。
问题5: 可以这样理解,Vendor model 和 SIG model其实差不多,SIG model 采用官方定义的消息进行通讯,SIG model 采用自定义的消息进行通讯。
问题6: 只有网络资源是共享的,理论是可行的。 你可以将网络资源存到云端,也可以将网络资源存储到网络中的某个设备中。
问题7: 目前还没有标准的方法,不过也是可以实现这个功能的。
问题8:如果 provisioner 拥有多个 Netkey ,provisioner 在配置设备时,可以选择使用哪个NetKey分配给设备。provisioner 可以使用不同的Netkey和网络中的节点进行通讯。每个节点的Netkey都是provisioner分配的。
问题9:provisioner会发送 Provisioning data 消息给节点,该消息包含 Network Key,Key Index ,Flags,IV Index,Unicast Address信息。 你可以尝试在协议栈中mesh_main.c中的bt_mesh_provision中函数找到这些值。
问题7与10: 在 ESP_BLE_MESH_NODE_PROV_RESET_EVT 下调用API : esp_ble_node_prov_enable
问题11:这个我们会尽快答复你。

chenluhui2019
Posts: 36
Joined: Wed Apr 10, 2019 9:08 am

Re: BLE_MESH的一些问题

Postby chenluhui2019 » Mon May 27, 2019 7:49 am

Wangcheng wrote:
Tue May 21, 2019 12:03 pm
Wangcheng wrote:
Tue May 21, 2019 11:09 am
chenluhui2019 wrote:
Tue May 21, 2019 1:04 am

谢谢支持
问题2:采用的是设备地址(单播地址)通讯的。
==》意思是,ble_mesh_client_model和ble_mesh_node在设置了remote_addr值之后,就算两个node之间没有发布订阅关系也能用单播地址通讯?
问题5:provisioner 知道节点的地址,可以采用vender model的方式发送自定义消息.
==》我是否可以理解成:因为都是软件栈,手机APP里可以模拟成client,通过GATT代理(proxy)特性来向server(node)发送消息。
vendor model有分client和server吗?
问题6:多个provisioner共享网络中的消息,你需要自己想一个机制去获取网络中的信息,比如采用一个节点存放网络中所有节点的地址。
==》那是否需要根据NRF的源码做修改,使得多个provisioner(手机)里面关于node的数据通过任意方式(比如云端)同步,就能做到任意手机都能充当provisoner。
问题7:你是在哪个app上进行操作的?
==》我是在NRF的app上操作的,我看了代码,ESP_BLE_MESH_NODE_PROV_RESET_EVT没有做任何处理,可能是这个功能还没写,所以不会是的Node->device
问题8:在NRF的手机app里,右下角“Setting”里有个“Network Key”,修改它就意味着修改了provisioner的Netkey,provisioner配置其它设备入网时会把这个netkey分配给入网的节点。
==》修改它就意味着修改了provisioner的Netkey:Provisioner和Node的netkey在组网后应该都是一样的,您这里说的意味着修改了provisioner的Netkey,那provisioner的Netkey改了,不是全网的Netkey都变掉了吗?
问题9:组网后,netkey是否可以在代码里获取得到?我看手机app上能显示netkey?
问题10:贵司reset node的操作执行函数是否还未做出来?现在无法实现node->device的操作,只能复位开发板
问题11:ble_mesh_client_model似乎不能在ESP32_PICO_KIT板子上跑,会不断的报错重启。
如果我两块板子(node)都烧写ble_mesh_client_model的代码,那都有client和server存在了,都绑上一样的appkey,就可以实现互发消息了对吧?
另外:贵司的esp32可以和Nodic或者其他厂家的组网吗?贵司ble_mesh的sdk正式版本何时能提供呢?
问题2: 是的,地址包含单播地址,组地址,虚拟地址,未分配地址(Unassigned Address) 4种。
问题5: 可以这样理解,Vendor model 和 SIG model其实差不多,SIG model 采用官方定义的消息进行通讯,SIG model 采用自定义的消息进行通讯。
问题6: 只有网络资源是共享的,理论是可行的。 你可以将网络资源存到云端,也可以将网络资源存储到网络中的某个设备中。
问题7: 目前还没有标准的方法,不过也是可以实现这个功能的。
问题8:如果 provisioner 拥有多个 Netkey ,provisioner 在配置设备时,可以选择使用哪个NetKey分配给设备。provisioner 可以使用不同的Netkey和网络中的节点进行通讯。每个节点的Netkey都是provisioner分配的。
问题9:provisioner会发送 Provisioning data 消息给节点,该消息包含 Network Key,Key Index ,Flags,IV Index,Unicast Address信息。 你可以尝试在协议栈中mesh_main.c中的bt_mesh_provision中函数找到这些值。
问题7与10: 在 ESP_BLE_MESH_NODE_PROV_RESET_EVT 下调用API : esp_ble_node_prov_enable
问题11:这个我们会尽快答复你。
谢谢支持
static esp_err_t esp_ble_mesh_set_msg_common(esp_ble_mesh_client_common_param_t *common,
esp_ble_mesh_generic_client_set_state_t *set,
esp_ble_mesh_model_t *model, uint32_t opcode,
uint8_t onoff)
common->ctx.addr = remote_addr;
1.在贵司的client_model demo里,是否在发送单播消息的时候,只需要实时的修改如上函数的remote_addr值,就可以向网内任意节点发送消息(有相同的client-server模型,且绑定相同appkey)?
2.在贵司的client_model demo里,使用nrf app做provisoner,on-off模型,UART1设置了单播地址后,我必须要把Generic onff server和Generic onff client模型都绑定相同的appkey才能单播?为什么on-off的控制台不能再Generic onff client model里,只能在server model里?
3.贵司的板子可以和Mesh网内其他家公司SIG MESH板子进行单播吗?比如检测心跳信息(Health Client-Server),贵司的用(Health Server Model),其他公司的用(Health Client Model)?
4.当health server model的板子意外掉线了(退出mesh网络),health client model是否会以opcode:ESP_BLE_MESH_MODEL_OP_HEALTH_FAULT_GET来获得到一个消息?
5.lightness server model和generic onoff serverl model有关联吗?如果只是单纯拿来控制灯的话,是否两个模型都需要?
6.目前贵司V0.6的SDK里,是否有vendor model的完整例子?

Wangcheng
Posts: 73
Joined: Wed Mar 06, 2019 3:26 am

Re: BLE_MESH的一些问题

Postby Wangcheng » Mon May 27, 2019 11:10 am

chenluhui2019 wrote:
Mon May 27, 2019 7:49 am
Wangcheng wrote:
Tue May 21, 2019 12:03 pm
Wangcheng wrote:
Tue May 21, 2019 11:09 am

问题2: 是的,地址包含单播地址,组地址,虚拟地址,未分配地址(Unassigned Address) 4种。
问题5: 可以这样理解,Vendor model 和 SIG model其实差不多,SIG model 采用官方定义的消息进行通讯,SIG model 采用自定义的消息进行通讯。
问题6: 只有网络资源是共享的,理论是可行的。 你可以将网络资源存到云端,也可以将网络资源存储到网络中的某个设备中。
问题7: 目前还没有标准的方法,不过也是可以实现这个功能的。
问题8:如果 provisioner 拥有多个 Netkey ,provisioner 在配置设备时,可以选择使用哪个NetKey分配给设备。provisioner 可以使用不同的Netkey和网络中的节点进行通讯。每个节点的Netkey都是provisioner分配的。
问题9:provisioner会发送 Provisioning data 消息给节点,该消息包含 Network Key,Key Index ,Flags,IV Index,Unicast Address信息。 你可以尝试在协议栈中mesh_main.c中的bt_mesh_provision中函数找到这些值。
问题7与10: 在 ESP_BLE_MESH_NODE_PROV_RESET_EVT 下调用API : esp_ble_node_prov_enable
问题11:这个我们会尽快答复你。
谢谢支持
static esp_err_t esp_ble_mesh_set_msg_common(esp_ble_mesh_client_common_param_t *common,
esp_ble_mesh_generic_client_set_state_t *set,
esp_ble_mesh_model_t *model, uint32_t opcode,
uint8_t onoff)
common->ctx.addr = remote_addr;
1.在贵司的client_model demo里,是否在发送单播消息的时候,只需要实时的修改如上函数的remote_addr值,就可以向网内任意节点发送消息(有相同的client-server模型,且绑定相同appkey)?
2.在贵司的client_model demo里,使用nrf app做provisoner,on-off模型,UART1设置了单播地址后,我必须要把Generic onff server和Generic onff client模型都绑定相同的appkey才能单播?为什么on-off的控制台不能再Generic onff client model里,只能在server model里?
3.贵司的板子可以和Mesh网内其他家公司SIG MESH板子进行单播吗?比如检测心跳信息(Health Client-Server),贵司的用(Health Server Model),其他公司的用(Health Client Model)?
4.当health server model的板子意外掉线了(退出mesh网络),health client model是否会以opcode:ESP_BLE_MESH_MODEL_OP_HEALTH_FAULT_GET来获得到一个消息?
5.lightness server model和generic onoff serverl model有关联吗?如果只是单纯拿来控制灯的话,是否两个模型都需要?
6.目前贵司V0.6的SDK里,是否有vendor model的完整例子?
Hi chenluhui2019 ,
问题1: 可以的
问题2: 我没有读懂你的意思, onoff server model 维护了灯的开关状态,onoff client model 通过给 onoff server model 发送消息去更改它所维护的状态。比如状态为开,设备的灯就打开。
问题3,4: Health Client Model ---- Health Server Mode,Health Server Mode 内部维护了一些状态(Current Fault ,Registered Fault, Health Period ,Attention Timer), Health Client Model 可以同过消息去控制这些状态,具体如何控制请参考官方规范中的 4.4.3 Health Server model章节。
比如 Current Fault 状态是一个数组,可能表示如下值:
0x00 No Fault
0x01 Battery Low Warning
0x02 Battery Low Error
0x03 Supply Voltage Too Low Warnin
注意:设备掉电后,是无法发送消息和接收消息的。
5 lightness server models 是一个大的集合(总称),包含了generic onoff serverl model。单纯拿来控制灯的话只需要generic onoff serverl model。
6 在快速配网的 demo 中,会使用到 vendor model 所有的相关操作。建议你最好先阅读快递配网相关的文档。

chenluhui2019
Posts: 36
Joined: Wed Apr 10, 2019 9:08 am

Re: BLE_MESH的一些问题

Postby chenluhui2019 » Mon Jun 03, 2019 9:19 am

Wangcheng wrote:
Mon May 27, 2019 11:10 am
chenluhui2019 wrote:
Mon May 27, 2019 7:49 am
Wangcheng wrote:
Tue May 21, 2019 12:03 pm
谢谢支持
static esp_err_t esp_ble_mesh_set_msg_common(esp_ble_mesh_client_common_param_t *common,
esp_ble_mesh_generic_client_set_state_t *set,
esp_ble_mesh_model_t *model, uint32_t opcode,
uint8_t onoff)
common->ctx.addr = remote_addr;
1.在贵司的client_model demo里,是否在发送单播消息的时候,只需要实时的修改如上函数的remote_addr值,就可以向网内任意节点发送消息(有相同的client-server模型,且绑定相同appkey)?
2.在贵司的client_model demo里,使用nrf app做provisoner,on-off模型,UART1设置了单播地址后,我必须要把Generic onff server和Generic onff client模型都绑定相同的appkey才能单播?为什么on-off的控制台不能再Generic onff client model里,只能在server model里?
3.贵司的板子可以和Mesh网内其他家公司SIG MESH板子进行单播吗?比如检测心跳信息(Health Client-Server),贵司的用(Health Server Model),其他公司的用(Health Client Model)?
4.当health server model的板子意外掉线了(退出mesh网络),health client model是否会以opcode:ESP_BLE_MESH_MODEL_OP_HEALTH_FAULT_GET来获得到一个消息?
5.lightness server model和generic onoff serverl model有关联吗?如果只是单纯拿来控制灯的话,是否两个模型都需要?
6.目前贵司V0.6的SDK里,是否有vendor model的完整例子?
Hi chenluhui2019 ,
问题1: 可以的
问题2: 我没有读懂你的意思, onoff server model 维护了灯的开关状态,onoff client model 通过给 onoff server model 发送消息去更改它所维护的状态。比如状态为开,设备的灯就打开。
问题3,4: Health Client Model ---- Health Server Mode,Health Server Mode 内部维护了一些状态(Current Fault ,Registered Fault, Health Period ,Attention Timer), Health Client Model 可以同过消息去控制这些状态,具体如何控制请参考官方规范中的 4.4.3 Health Server model章节。
比如 Current Fault 状态是一个数组,可能表示如下值:
0x00 No Fault
0x01 Battery Low Warning
0x02 Battery Low Error
0x03 Supply Voltage Too Low Warnin
注意:设备掉电后,是无法发送消息和接收消息的。
5 lightness server models 是一个大的集合(总称),包含了generic onoff serverl model。单纯拿来控制灯的话只需要generic onoff serverl model。
6 在快速配网的 demo 中,会使用到 vendor model 所有的相关操作。建议你最好先阅读快递配网相关的文档。
谢谢支持
1.开关灯、调灯发的是u8-u32类型的变量,如果我想单播发送字符串消息给指定节点,是否有对应的函数参考?
2.我的意思是,demo里。普通node的onoff server model 绑appkey。client node的onoff server model和onoff client model都要绑appkey,那么,为什么client node的onoff server model也需要绑appkey?
3.其他资料里提到,节点掉线后,GAP层会有连接断开的消息,应用层可以收到做相应处理。那么通常某个节点掉线了,其他节点是如何侦测到的呢?
4.在单播信息给其他节点时,会跑进ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET(0x8202),发送的是有应答消息,节点server收到后会自动回复已经执行or没有执行吗?
5.有个疑问,如果网内的某个节点(0002),想要接收其他节点发来的单播消息,对方节点(0004)如果是server model,自己(0002)也是一样的server model。可以吗?
6.贵司的芯片UUID有没有哪几位是厂家识别码可供和其他厂商的SIG MESH设备区分?
7.从资料里看到,两个node之间发送消息的方法有两种
一个是节点之间通过client-server模型来发送,另一个是通过GATT发送信息。
前者你们有提供client_model demo。后者是否有有范例?

esp_liu
Posts: 35
Joined: Wed Nov 28, 2018 4:12 am

Re: BLE_MESH的一些问题

Postby esp_liu » Mon Jun 03, 2019 10:14 am

chenluhui2019 wrote:
Mon Jun 03, 2019 9:19 am
Wangcheng wrote:
Mon May 27, 2019 11:10 am
chenluhui2019 wrote:
Mon May 27, 2019 7:49 am


谢谢支持
static esp_err_t esp_ble_mesh_set_msg_common(esp_ble_mesh_client_common_param_t *common,
esp_ble_mesh_generic_client_set_state_t *set,
esp_ble_mesh_model_t *model, uint32_t opcode,
uint8_t onoff)
common->ctx.addr = remote_addr;
1.在贵司的client_model demo里,是否在发送单播消息的时候,只需要实时的修改如上函数的remote_addr值,就可以向网内任意节点发送消息(有相同的client-server模型,且绑定相同appkey)?
2.在贵司的client_model demo里,使用nrf app做provisoner,on-off模型,UART1设置了单播地址后,我必须要把Generic onff server和Generic onff client模型都绑定相同的appkey才能单播?为什么on-off的控制台不能再Generic onff client model里,只能在server model里?
3.贵司的板子可以和Mesh网内其他家公司SIG MESH板子进行单播吗?比如检测心跳信息(Health Client-Server),贵司的用(Health Server Model),其他公司的用(Health Client Model)?
4.当health server model的板子意外掉线了(退出mesh网络),health client model是否会以opcode:ESP_BLE_MESH_MODEL_OP_HEALTH_FAULT_GET来获得到一个消息?
5.lightness server model和generic onoff serverl model有关联吗?如果只是单纯拿来控制灯的话,是否两个模型都需要?
6.目前贵司V0.6的SDK里,是否有vendor model的完整例子?
Hi chenluhui2019 ,
问题1: 可以的
问题2: 我没有读懂你的意思, onoff server model 维护了灯的开关状态,onoff client model 通过给 onoff server model 发送消息去更改它所维护的状态。比如状态为开,设备的灯就打开。
问题3,4: Health Client Model ---- Health Server Mode,Health Server Mode 内部维护了一些状态(Current Fault ,Registered Fault, Health Period ,Attention Timer), Health Client Model 可以同过消息去控制这些状态,具体如何控制请参考官方规范中的 4.4.3 Health Server model章节。
比如 Current Fault 状态是一个数组,可能表示如下值:
0x00 No Fault
0x01 Battery Low Warning
0x02 Battery Low Error
0x03 Supply Voltage Too Low Warnin
注意:设备掉电后,是无法发送消息和接收消息的。
5 lightness server models 是一个大的集合(总称),包含了generic onoff serverl model。单纯拿来控制灯的话只需要generic onoff serverl model。
6 在快速配网的 demo 中,会使用到 vendor model 所有的相关操作。建议你最好先阅读快递配网相关的文档。
谢谢支持
1.开关灯、调灯发的是u8-u32类型的变量,如果我想单播发送字符串消息给指定节点,是否有对应的函数参考?
2.我的意思是,demo里。普通node的onoff server model 绑appkey。client node的onoff server model和onoff client model都要绑appkey,那么,为什么client node的onoff server model也需要绑appkey?
3.其他资料里提到,节点掉线后,GAP层会有连接断开的消息,应用层可以收到做相应处理。那么通常某个节点掉线了,其他节点是如何侦测到的呢?
4.在单播信息给其他节点时,会跑进ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET(0x8202),发送的是有应答消息,节点server收到后会自动回复已经执行or没有执行吗?
5.有个疑问,如果网内的某个节点(0002),想要接收其他节点发来的单播消息,对方节点(0004)如果是server model,自己(0002)也是一样的server model。可以吗?
6.贵司的芯片UUID有没有哪几位是厂家识别码可供和其他厂商的SIG MESH设备区分?
7.从资料里看到,两个node之间发送消息的方法有两种
一个是节点之间通过client-server模型来发送,另一个是通过GATT发送信息。
前者你们有提供client_model demo。后者是否有有范例?
1. 当前发送消息的 API 相关参数为 uint16_t length 以及 uint8_t *data, 如需发送字符串需要自行转换
2. demo 中 client node 需要先通过 Generic OnOff Server Model 接收到消息后再通过 Generic OnOff Client Model 转发出去
3.可否告知相关资料, 我们需要确认一下
4. 节点收到后会回复相应的 status 消息,消息中包含节点当前灯的状态, 对方收到 status 后可以进行判断
5. 这个按照 Mesh Model Spec 是不可以的, Generic OnOff Server Model 不支持接收 Generic OnOff Status 消息
6. 目前没有, demo 中的 uuid 是根据 public address 生成的
7. 通过 GATT 发消息需要实现 Proxy Client 相关的功能,我们后续会实现

chenluhui2019
Posts: 36
Joined: Wed Apr 10, 2019 9:08 am

Re: BLE_MESH的一些问题

Postby chenluhui2019 » Thu Jun 13, 2019 1:23 am

esp_liu wrote:
Mon Jun 03, 2019 10:14 am
chenluhui2019 wrote:
Mon Jun 03, 2019 9:19 am
Wangcheng wrote:
Mon May 27, 2019 11:10 am

Hi chenluhui2019 ,
问题1: 可以的
问题2: 我没有读懂你的意思, onoff server model 维护了灯的开关状态,onoff client model 通过给 onoff server model 发送消息去更改它所维护的状态。比如状态为开,设备的灯就打开。
问题3,4: Health Client Model ---- Health Server Mode,Health Server Mode 内部维护了一些状态(Current Fault ,Registered Fault, Health Period ,Attention Timer), Health Client Model 可以同过消息去控制这些状态,具体如何控制请参考官方规范中的 4.4.3 Health Server model章节。
比如 Current Fault 状态是一个数组,可能表示如下值:
0x00 No Fault
0x01 Battery Low Warning
0x02 Battery Low Error
0x03 Supply Voltage Too Low Warnin
注意:设备掉电后,是无法发送消息和接收消息的。
5 lightness server models 是一个大的集合(总称),包含了generic onoff serverl model。单纯拿来控制灯的话只需要generic onoff serverl model。
6 在快速配网的 demo 中,会使用到 vendor model 所有的相关操作。建议你最好先阅读快递配网相关的文档。
谢谢支持
1.开关灯、调灯发的是u8-u32类型的变量,如果我想单播发送字符串消息给指定节点,是否有对应的函数参考?
2.我的意思是,demo里。普通node的onoff server model 绑appkey。client node的onoff server model和onoff client model都要绑appkey,那么,为什么client node的onoff server model也需要绑appkey?
3.其他资料里提到,节点掉线后,GAP层会有连接断开的消息,应用层可以收到做相应处理。那么通常某个节点掉线了,其他节点是如何侦测到的呢?
4.在单播信息给其他节点时,会跑进ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET(0x8202),发送的是有应答消息,节点server收到后会自动回复已经执行or没有执行吗?
5.有个疑问,如果网内的某个节点(0002),想要接收其他节点发来的单播消息,对方节点(0004)如果是server model,自己(0002)也是一样的server model。可以吗?
6.贵司的芯片UUID有没有哪几位是厂家识别码可供和其他厂商的SIG MESH设备区分?
7.从资料里看到,两个node之间发送消息的方法有两种
一个是节点之间通过client-server模型来发送,另一个是通过GATT发送信息。
前者你们有提供client_model demo。后者是否有有范例?
1. 当前发送消息的 API 相关参数为 uint16_t length 以及 uint8_t *data, 如需发送字符串需要自行转换
2. demo 中 client node 需要先通过 Generic OnOff Server Model 接收到消息后再通过 Generic OnOff Client Model 转发出去
3.可否告知相关资料, 我们需要确认一下
4. 节点收到后会回复相应的 status 消息,消息中包含节点当前灯的状态, 对方收到 status 后可以进行判断
5. 这个按照 Mesh Model Spec 是不可以的, Generic OnOff Server Model 不支持接收 Generic OnOff Status 消息
6. 目前没有, demo 中的 uuid 是根据 public address 生成的
7. 通过 GATT 发消息需要实现 Proxy Client 相关的功能,我们后续会实现
谢谢支持
1.如果我需要node向指定node发送字符串消息,您觉得用现有的generic onoff model来修改合适么?还是得用vendor model?如果使用vendor model,另外一个接收的node不是贵司的IC,能否接收处理?
2.Vendor model的model ID和opcode是否也是自定义的?如果我想定义一个vendor model和其他厂家的SIG MESH芯片通讯,是否是靠model ID和Opcode来识别为同一个模型?
3.我对贵司提供的添加新的vendor model看得不是很理解,是参照哪个文件呢?我这里主要是需要model能够发送字符串消息。
因为并没有看到一个类似esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb)的vendor model
像ble_mesh_fast_provision里面demo是指开发板作为provisoner的时候,而我这边添加的vendor model是开发板作为node的时候。
4.贵司的其他客户一般在什么场合下会去使用到vendor model呢?能举个例子吗?
5.在快速配网的 demo 中,会使用到 vendor model 所有的相关操作。建议你最好先阅读快递配网相关的文档。
===》您之前提到的快速配网的demo,指的是ble_mesh_vendor_models/fast_prov_vendor_model目录吗?
在这个demo烧写进Devkitc板子里后,似乎没有运行起来,而且这个demo里没有md说明文档
I (251) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (257) heap_init: At 40088364 len 00017C9C (95 KiB): IRAM
I (263) cpu_start: Pro cpu start user code
I (282) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
6.如何将贵司板子的UUID某几位或者全部写死呢?需要在一堆mesh设备中,区分是否乐鑫的,是的话才允许provison,不是就不扫描出来
7.通过 GATT 发消息需要实现 Proxy Client 相关的功能,我们后续会实现
==》您所说的实现Proxy Client相关功能,能举个简单例子说明吗?
8.如果A板子的固件里只有generic onoff client model。B板子的固件里只有generic onoff server model。A向B单播开灯消息(有应答的,opcode:8202,onoff=1)。这样B板子开灯成功后会发送消息让A接收到吗?
9.我看到在client_model的范例里,ble_mesh_init函数里,增加了这项回调esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb);
这项回调里,除了打印LOG外,似乎没有调用执行任何函数?(屏蔽此函数也不影响功能)

Wangcheng
Posts: 73
Joined: Wed Mar 06, 2019 3:26 am

Re: BLE_MESH的一些问题

Postby Wangcheng » Mon Jun 17, 2019 2:54 am

chenluhui2019 wrote:
Thu Jun 13, 2019 1:23 am
esp_liu wrote:
Mon Jun 03, 2019 10:14 am
chenluhui2019 wrote:
Mon Jun 03, 2019 9:19 am


谢谢支持
1.开关灯、调灯发的是u8-u32类型的变量,如果我想单播发送字符串消息给指定节点,是否有对应的函数参考?
2.我的意思是,demo里。普通node的onoff server model 绑appkey。client node的onoff server model和onoff client model都要绑appkey,那么,为什么client node的onoff server model也需要绑appkey?
3.其他资料里提到,节点掉线后,GAP层会有连接断开的消息,应用层可以收到做相应处理。那么通常某个节点掉线了,其他节点是如何侦测到的呢?
4.在单播信息给其他节点时,会跑进ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET(0x8202),发送的是有应答消息,节点server收到后会自动回复已经执行or没有执行吗?
5.有个疑问,如果网内的某个节点(0002),想要接收其他节点发来的单播消息,对方节点(0004)如果是server model,自己(0002)也是一样的server model。可以吗?
6.贵司的芯片UUID有没有哪几位是厂家识别码可供和其他厂商的SIG MESH设备区分?
7.从资料里看到,两个node之间发送消息的方法有两种
一个是节点之间通过client-server模型来发送,另一个是通过GATT发送信息。
前者你们有提供client_model demo。后者是否有有范例?
1. 当前发送消息的 API 相关参数为 uint16_t length 以及 uint8_t *data, 如需发送字符串需要自行转换
2. demo 中 client node 需要先通过 Generic OnOff Server Model 接收到消息后再通过 Generic OnOff Client Model 转发出去
3.可否告知相关资料, 我们需要确认一下
4. 节点收到后会回复相应的 status 消息,消息中包含节点当前灯的状态, 对方收到 status 后可以进行判断
5. 这个按照 Mesh Model Spec 是不可以的, Generic OnOff Server Model 不支持接收 Generic OnOff Status 消息
6. 目前没有, demo 中的 uuid 是根据 public address 生成的
7. 通过 GATT 发消息需要实现 Proxy Client 相关的功能,我们后续会实现
谢谢支持
1.如果我需要node向指定node发送字符串消息,您觉得用现有的generic onoff model来修改合适么?还是得用vendor model?如果使用vendor model,另外一个接收的node不是贵司的IC,能否接收处理?
2.Vendor model的model ID和opcode是否也是自定义的?如果我想定义一个vendor model和其他厂家的SIG MESH芯片通讯,是否是靠model ID和Opcode来识别为同一个模型?
3.我对贵司提供的添加新的vendor model看得不是很理解,是参照哪个文件呢?我这里主要是需要model能够发送字符串消息。
因为并没有看到一个类似esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb)的vendor model
像ble_mesh_fast_provision里面demo是指开发板作为provisoner的时候,而我这边添加的vendor model是开发板作为node的时候。
4.贵司的其他客户一般在什么场合下会去使用到vendor model呢?能举个例子吗?
5.在快速配网的 demo 中,会使用到 vendor model 所有的相关操作。建议你最好先阅读快递配网相关的文档。
===》您之前提到的快速配网的demo,指的是ble_mesh_vendor_models/fast_prov_vendor_model目录吗?
在这个demo烧写进Devkitc板子里后,似乎没有运行起来,而且这个demo里没有md说明文档
I (251) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (257) heap_init: At 40088364 len 00017C9C (95 KiB): IRAM
I (263) cpu_start: Pro cpu start user code
I (282) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
6.如何将贵司板子的UUID某几位或者全部写死呢?需要在一堆mesh设备中,区分是否乐鑫的,是的话才允许provison,不是就不扫描出来
7.通过 GATT 发消息需要实现 Proxy Client 相关的功能,我们后续会实现
==》您所说的实现Proxy Client相关功能,能举个简单例子说明吗?
8.如果A板子的固件里只有generic onoff client model。B板子的固件里只有generic onoff server model。A向B单播开灯消息(有应答的,opcode:8202,onoff=1)。这样B板子开灯成功后会发送消息让A接收到吗?
9.我看到在client_model的范例里,ble_mesh_init函数里,增加了这项回调esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb);
这项回调里,除了打印LOG外,似乎没有调用执行任何函数?(屏蔽此函数也不影响功能)
Hi chenluhui2019,
问题 1: 自定义消息都只能通过 vender model 实现。
问题 2-5:我修改了 ble_mesh_node 和 ble_mesh_client_model 的demo,你可以了解到 vender model 具体是如何操作的(见附件)。
补充:ble_mesh_vendor_models/fast_prov_vendor_model 不是一个demo,只是在快速配网的 demo中调用。
问题6:mesh 设备的uuid的值是在 `static esp_ble_mesh_prov_t` 结构体中的uuid变量中设置的。配网相关的设置都可以在该结构体中找到。比如: oob信息
问题7: proxy client 的功能类似于你使用手机 app 去控制 mesh 网络中的设备,和 proxy feature 相关的操作有关。
问题8: B板子开灯成功向A应答一个状态消息。generic onoff client model 与 generic onoff server model 的交互行为官方都是定义好的。
问题9: esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb); 这个回调函数中可以处理所有 generic client model 的事件,如果你需要处理改事件,你可以添加对应的处理行为,或者只添加打印信息,或者直接不处理该事件。
Attachments
ble_mesh_node.zip
(78.27 KiB) Downloaded 1329 times
ble_mesh_client_model.zip
(1.26 MiB) Downloaded 1402 times

chenluhui2019
Posts: 36
Joined: Wed Apr 10, 2019 9:08 am

Re: BLE_MESH的一些问题

Postby chenluhui2019 » Thu Jun 20, 2019 8:12 am

Wangcheng wrote:
Mon Jun 17, 2019 2:54 am
chenluhui2019 wrote:
Thu Jun 13, 2019 1:23 am
esp_liu wrote:
Mon Jun 03, 2019 10:14 am

1. 当前发送消息的 API 相关参数为 uint16_t length 以及 uint8_t *data, 如需发送字符串需要自行转换
2. demo 中 client node 需要先通过 Generic OnOff Server Model 接收到消息后再通过 Generic OnOff Client Model 转发出去
3.可否告知相关资料, 我们需要确认一下
4. 节点收到后会回复相应的 status 消息,消息中包含节点当前灯的状态, 对方收到 status 后可以进行判断
5. 这个按照 Mesh Model Spec 是不可以的, Generic OnOff Server Model 不支持接收 Generic OnOff Status 消息
6. 目前没有, demo 中的 uuid 是根据 public address 生成的
7. 通过 GATT 发消息需要实现 Proxy Client 相关的功能,我们后续会实现
谢谢支持
1.如果我需要node向指定node发送字符串消息,您觉得用现有的generic onoff model来修改合适么?还是得用vendor model?如果使用vendor model,另外一个接收的node不是贵司的IC,能否接收处理?
2.Vendor model的model ID和opcode是否也是自定义的?如果我想定义一个vendor model和其他厂家的SIG MESH芯片通讯,是否是靠model ID和Opcode来识别为同一个模型?
3.我对贵司提供的添加新的vendor model看得不是很理解,是参照哪个文件呢?我这里主要是需要model能够发送字符串消息。
因为并没有看到一个类似esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb)的vendor model
像ble_mesh_fast_provision里面demo是指开发板作为provisoner的时候,而我这边添加的vendor model是开发板作为node的时候。
4.贵司的其他客户一般在什么场合下会去使用到vendor model呢?能举个例子吗?
5.在快速配网的 demo 中,会使用到 vendor model 所有的相关操作。建议你最好先阅读快递配网相关的文档。
===》您之前提到的快速配网的demo,指的是ble_mesh_vendor_models/fast_prov_vendor_model目录吗?
在这个demo烧写进Devkitc板子里后,似乎没有运行起来,而且这个demo里没有md说明文档
I (251) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (257) heap_init: At 40088364 len 00017C9C (95 KiB): IRAM
I (263) cpu_start: Pro cpu start user code
I (282) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
6.如何将贵司板子的UUID某几位或者全部写死呢?需要在一堆mesh设备中,区分是否乐鑫的,是的话才允许provison,不是就不扫描出来
7.通过 GATT 发消息需要实现 Proxy Client 相关的功能,我们后续会实现
==》您所说的实现Proxy Client相关功能,能举个简单例子说明吗?
8.如果A板子的固件里只有generic onoff client model。B板子的固件里只有generic onoff server model。A向B单播开灯消息(有应答的,opcode:8202,onoff=1)。这样B板子开灯成功后会发送消息让A接收到吗?
9.我看到在client_model的范例里,ble_mesh_init函数里,增加了这项回调esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb);
这项回调里,除了打印LOG外,似乎没有调用执行任何函数?(屏蔽此函数也不影响功能)
Hi chenluhui2019,
问题 1: 自定义消息都只能通过 vender model 实现。
问题 2-5:我修改了 ble_mesh_node 和 ble_mesh_client_model 的demo,你可以了解到 vender model 具体是如何操作的(见附件)。
补充:ble_mesh_vendor_models/fast_prov_vendor_model 不是一个demo,只是在快速配网的 demo中调用。
问题6:mesh 设备的uuid的值是在 `static esp_ble_mesh_prov_t` 结构体中的uuid变量中设置的。配网相关的设置都可以在该结构体中找到。比如: oob信息
问题7: proxy client 的功能类似于你使用手机 app 去控制 mesh 网络中的设备,和 proxy feature 相关的操作有关。
问题8: B板子开灯成功向A应答一个状态消息。generic onoff client model 与 generic onoff server model 的交互行为官方都是定义好的。
问题9: esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb); 这个回调函数中可以处理所有 generic client model 的事件,如果你需要处理改事件,你可以添加对应的处理行为,或者只添加打印信息,或者直接不处理该事件。
谢谢支持
1.关于使用vendor model和其他厂家发送消息。资料里显示,vendor model opcode是32bits,前16bits是厂家识别码(比如贵司的是0X02E5),后16bits是操作码(比如贵司提供的vendor model demo里,操作码是0x00C0)。那么想和其他公司的蓝牙mesh互通。opcode的前16bits厂家识别码要设置成一样的吗?还是只需要操作码一样即可?
举例来说就是:#define ESP_BLE_MESH_VND_MODEL_OP_FAST_PROV_INFO_SET ESP_BLE_MESH_MODEL_OP_3(0x00, CID_ESP)
得出来的opcode是:0x00C002E5,那其他厂家的芯片钥匙要收到我们的vendor model消息,得把model id和opcode怎么设置呢?

Wangcheng
Posts: 73
Joined: Wed Mar 06, 2019 3:26 am

Re: BLE_MESH的一些问题

Postby Wangcheng » Fri Jun 21, 2019 3:39 am

chenluhui2019 wrote:
Thu Jun 20, 2019 8:12 am
Wangcheng wrote:
Mon Jun 17, 2019 2:54 am
chenluhui2019 wrote:
Thu Jun 13, 2019 1:23 am


谢谢支持
1.如果我需要node向指定node发送字符串消息,您觉得用现有的generic onoff model来修改合适么?还是得用vendor model?如果使用vendor model,另外一个接收的node不是贵司的IC,能否接收处理?
2.Vendor model的model ID和opcode是否也是自定义的?如果我想定义一个vendor model和其他厂家的SIG MESH芯片通讯,是否是靠model ID和Opcode来识别为同一个模型?
3.我对贵司提供的添加新的vendor model看得不是很理解,是参照哪个文件呢?我这里主要是需要model能够发送字符串消息。
因为并没有看到一个类似esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb)的vendor model
像ble_mesh_fast_provision里面demo是指开发板作为provisoner的时候,而我这边添加的vendor model是开发板作为node的时候。
4.贵司的其他客户一般在什么场合下会去使用到vendor model呢?能举个例子吗?
5.在快速配网的 demo 中,会使用到 vendor model 所有的相关操作。建议你最好先阅读快递配网相关的文档。
===》您之前提到的快速配网的demo,指的是ble_mesh_vendor_models/fast_prov_vendor_model目录吗?
在这个demo烧写进Devkitc板子里后,似乎没有运行起来,而且这个demo里没有md说明文档
I (251) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (257) heap_init: At 40088364 len 00017C9C (95 KiB): IRAM
I (263) cpu_start: Pro cpu start user code
I (282) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
6.如何将贵司板子的UUID某几位或者全部写死呢?需要在一堆mesh设备中,区分是否乐鑫的,是的话才允许provison,不是就不扫描出来
7.通过 GATT 发消息需要实现 Proxy Client 相关的功能,我们后续会实现
==》您所说的实现Proxy Client相关功能,能举个简单例子说明吗?
8.如果A板子的固件里只有generic onoff client model。B板子的固件里只有generic onoff server model。A向B单播开灯消息(有应答的,opcode:8202,onoff=1)。这样B板子开灯成功后会发送消息让A接收到吗?
9.我看到在client_model的范例里,ble_mesh_init函数里,增加了这项回调esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb);
这项回调里,除了打印LOG外,似乎没有调用执行任何函数?(屏蔽此函数也不影响功能)
Hi chenluhui2019,
问题 1: 自定义消息都只能通过 vender model 实现。
问题 2-5:我修改了 ble_mesh_node 和 ble_mesh_client_model 的demo,你可以了解到 vender model 具体是如何操作的(见附件)。
补充:ble_mesh_vendor_models/fast_prov_vendor_model 不是一个demo,只是在快速配网的 demo中调用。
问题6:mesh 设备的uuid的值是在 `static esp_ble_mesh_prov_t` 结构体中的uuid变量中设置的。配网相关的设置都可以在该结构体中找到。比如: oob信息
问题7: proxy client 的功能类似于你使用手机 app 去控制 mesh 网络中的设备,和 proxy feature 相关的操作有关。
问题8: B板子开灯成功向A应答一个状态消息。generic onoff client model 与 generic onoff server model 的交互行为官方都是定义好的。
问题9: esp_ble_mesh_register_generic_client_callback(esp_ble_mesh_generic_cb); 这个回调函数中可以处理所有 generic client model 的事件,如果你需要处理改事件,你可以添加对应的处理行为,或者只添加打印信息,或者直接不处理该事件。
谢谢支持
1.关于使用vendor model和其他厂家发送消息。资料里显示,vendor model opcode是32bits,前16bits是厂家识别码(比如贵司的是0X02E5),后16bits是操作码(比如贵司提供的vendor model demo里,操作码是0x00C0)。那么想和其他公司的蓝牙mesh互通。opcode的前16bits厂家识别码要设置成一样的吗?还是只需要操作码一样即可?
举例来说就是:#define ESP_BLE_MESH_VND_MODEL_OP_FAST_PROV_INFO_SET ESP_BLE_MESH_MODEL_OP_3(0x00, CID_ESP)
得出来的opcode是:0x00C002E5,那其他厂家的芯片钥匙要收到我们的vendor model消息,得把model id和opcode怎么设置呢?
Hi chenluhui2019,
比如一个芯片有一个 vender client model ,另一个芯片有一个 vender server model。 vender client model 发送消息到 vender server model 需要满足以下几个条件:
1. vender client model 与 vender server model 在同一个子网下,两者的 Appkey 要相同。
2. vender client model 与 vender server model 之间交互的消息的opcode 要是已知的,消息的格式也要是已知的。

chenluhui2019
Posts: 36
Joined: Wed Apr 10, 2019 9:08 am

Re: BLE_MESH的一些问题

Postby chenluhui2019 » Tue Jul 23, 2019 1:57 am

Wangcheng wrote:
Tue May 21, 2019 11:09 am
chenluhui2019 wrote:
Tue May 21, 2019 1:04 am
Wangcheng wrote:
Mon May 13, 2019 7:08 am

Hi chenluhui,
问题1:
方案可行,但是不建议这样操作,在手机app(provisioner)上实现?
补充: 一般开发网关有两种方式:方式1 APP作为网关(比如我们提供的EspBleMesh App),方式2 不要APP,直接用设备作为网关(比如我们提供的ble_mesh_provisioner demo),它们都具备将设备配置入网的能力。
设备配置入网后网络中就有Provisioner,Node1,Node2,Node3 .Provisioner 知道Node1,Node2,Node3的地址。Node1,Node2,Node3知道Provisioner 的地址。它们两者之间可以使用单播地址(设备地址)进行通讯。
说明: 代理节点从一种承载层接收消息并将消息通过另一种承载层重新发送,目的是将只支持 GATT 承载层的通讯设备接入到蓝牙 mesh 网络中,比如手机 App。承载层一般包含广播承载层及GATT承载层等。
问题2:采用的是设备地址(单播地址)通讯的。
问题3:你可以通过Vendor model来写心跳,也可以采用Health Server相关的Model,Health Model相关的API在esp_ble_mesh_health_model_api.h
问题4:暂时没有功能,你可以把它当做普通按键使用
问题5:provisioner 知道节点的地址,可以采用vender model的方式发送自定义消息.
问题6:多个provisioner共享网络中的消息,你需要自己想一个机制去获取网络中的信息,比如采用一个节点存放网络中所有节点的地址。
问题7:你是在哪个app上进行操作的?
问题8:在NRF的手机app里,右下角“Setting”里有个“Network Key”,修改它就意味着修改了provisioner的Netkey,provisioner配置其它设备入网时会把这个netkey分配给入网的节点。
谢谢支持
问题2:采用的是设备地址(单播地址)通讯的。
==》意思是,ble_mesh_client_model和ble_mesh_node在设置了remote_addr值之后,就算两个node之间没有发布订阅关系也能用单播地址通讯?
问题5:provisioner 知道节点的地址,可以采用vender model的方式发送自定义消息.
==》我是否可以理解成:因为都是软件栈,手机APP里可以模拟成client,通过GATT代理(proxy)特性来向server(node)发送消息。
vendor model有分client和server吗?
问题6:多个provisioner共享网络中的消息,你需要自己想一个机制去获取网络中的信息,比如采用一个节点存放网络中所有节点的地址。
==》那是否需要根据NRF的源码做修改,使得多个provisioner(手机)里面关于node的数据通过任意方式(比如云端)同步,就能做到任意手机都能充当provisoner。
问题7:你是在哪个app上进行操作的?
==》我是在NRF的app上操作的,我看了代码,ESP_BLE_MESH_NODE_PROV_RESET_EVT没有做任何处理,可能是这个功能还没写,所以不会是的Node->device
问题8:在NRF的手机app里,右下角“Setting”里有个“Network Key”,修改它就意味着修改了provisioner的Netkey,provisioner配置其它设备入网时会把这个netkey分配给入网的节点。
==》修改它就意味着修改了provisioner的Netkey:Provisioner和Node的netkey在组网后应该都是一样的,您这里说的意味着修改了provisioner的Netkey,那provisioner的Netkey改了,不是全网的Netkey都变掉了吗?
问题9:组网后,netkey是否可以在代码里获取得到?我看手机app上能显示netkey?
问题10:贵司reset node的操作执行函数是否还未做出来?现在无法实现node->device的操作,只能复位开发板
问题11:ble_mesh_client_model似乎不能在ESP32_PICO_KIT板子上跑,会不断的报错重启。
如果我两块板子(node)都烧写ble_mesh_client_model的代码,那都有client和server存在了,都绑上一样的appkey,就可以实现互发消息了对吧?
另外:贵司的esp32可以和Nodic或者其他厂家的组网吗?贵司ble_mesh的sdk正式版本何时能提供呢?
问题2: 是的,地址包含单播地址,组地址,虚拟地址,未分配地址(Unassigned Address) 4种。
问题5: 可以这样理解,Vendor model 和 SIG model其实差不多,SIG model 采用官方定义的消息进行通讯,SIG model 采用自定义的消息进行通讯。
问题6: 只有网络资源是共享的,理论是可行的。 你可以将网络资源存到云端,也可以将网络资源存储到网络中的某个设备中。
问题7: 目前还没有标准的方法,不过也是可以实现这个功能的。
问题8:如果 provisioner 拥有多个 Netkey ,provisioner 在配置设备时,可以选择使用哪个NetKey分配给设备。provisioner 可以使用不同的Netkey和网络中的节点进行通讯。每个节点的Netkey都是provisioner分配的。
问题9:provisioner会发送 Provisioning data 消息给节点,该消息包含 Network Key,Key Index ,Flags,IV Index,Unicast Address信息。 你可以尝试在协议栈中mesh_main.c中的bt_mesh_provision中函数找到这些值。
问题10:这个我们会尽快答复你。
问题11:这个我们会尽快答复你。
您好:
1.我们在使用ESP32_Devkitc_v4和ESP32_PICO_KIT_V4.1两种开发板,发现前者通过手机app组网时,信息有差异。请告知两种板子的区别
2.当前mesh心跳机制贵司是否已经实现?有demo么?
3.在我们使用vendor model发包的时候,底层时常打印出一些错误的log,这个是正常的吗?
4.通过nordic手机app组网,有时候快,有时候慢。有时候provsion会卡住

Who is online

Users browsing this forum: No registered users and 45 guests