Topic

FAQ
Login Register
基于{$projectname}\vendor\mesh工程开发自己项目的问题
Apr 19, 2023 17:16

/

A

/A

Hi Telink support team:

我们目前开发的ble mesh项目,一个网路中包含light和sensor两种设备,light只有server model(只接收不发送),sensor有server model和client model(需要接收和发送)。 目前是将工程从其他平台移植到tlsr8253,买了开发套件,下载了工程并阅读handbook和代码,并进行了APP入网配置,app控制灯onoff,根据移植的情况,还有些问题不太清楚,希望能给到一些建议或答案。


1. mesh标准中没有看到有:在status改变后自动publish状态。 工程中的自动publish是在lib中自动的完成的吗?
在可见的代码中没有看到有publish的相关函数调用。 如果不需要自动publish,是不是只需要在数组中设置cb_pub_t为null就可以?
这里的自动publish,使用的参数是通过config server配置的retransmission count和interval吗?
2. 对于vendor model的paramters:在可见代码中有看到sub op的使用,并且有注释说明0x00~0x7f属于telink使用,
0x80~0xff属于customer使用。 vendor model中para的8个字节中的第一个字节一定是sub op吗? 可以不使用sub op吗? 第一个字节可以从0x00开始使用吗(用于自己的定义)? 这个sub op怎么使用?
3. 使用mesh工程作为sensor主动发送data并接收其他mesh节点的message,是需要使用vendor client/server model的,所以还需要将md_client_en使能,还有其他宏需要打开吗?
使能吗?
4. 目前只使用vendor model,其他model都不使用,应该将哪些宏禁止掉呢?
5. 目前将工程从其他平台移植到tlsr8253上,工程逻辑是:在GPIO中断,timer中断,以及接收到mesh message的callback中直接调用
自己的处理逻辑,那么会在中断中直接调用发送mesh message的函数,中断中直接调用发送函数发送mesh message可以吗?
或者 可以在main_loop()中添加一个xxx_process(),然后在中断中产生event,在xxx_process()中处理?
6. 可否使用nordic的Android app来对节点进行入网配置?(之前基于nordic android app source code开发了自己APP)

谢谢!


2 replies
youngbo830 [Author] Apr 19, 2023 18:57
0
/A

对于问题3,我的理解是:如果节点只使用vendor model, 不使用sig model,并且只接收不发送,则MD_SERVER_EN设置为1,MD_CLIENT_EN和MD_CLIENT_VENDOR_EN设置为0;  如果节点只使用vendor model,不使用sig model,但需要接收和发送,则MD_SERVER_EN设置为1,设置MD_CLIENT_EN为0,设置MD_CLIENT_VENDOR_EN如下:

#define MD_CLIENT_VENDOR_EN (1 || MD_CLIENT_EN)

这样理解对吗?


另外:在一个工程中的main_loop()中打开工程中的sim_tx_cmd_node2node(),当下载.bin文件并且provision后,并没有对model进行app key的绑定,也没有对model进行publish的设置,但是这个节点每3秒发送onoff命令后,另一个节点仍然可以接收并渐亮渐灭。 请问下app key是什么时候绑定的呢? 需要手动对client model进行app key绑定吗?如果需要手动绑定,但是在APP中并没有sim_tx_cmd_node2node()使用到的SIG_MD_G_ONOFF_C client model(MD_CLIENT_EN未使能)。很困惑这个问题。

TL_Soyo Apr 20, 2023 13:46
0
/A

你好,

  鉴于你的问题很综合,论坛不能很好的解决你的问题,请在首页联系FAE团队获取支持(https://www.telink-semi.com/contact-us/)。