Topic

FAQ
Login Register
手机连接proxy server发广播问题
May 06, 2024 16:30

/

A

/A



最近在折腾这个,主要是跟手机app的通信问题,有A B C D E F 几个节点使用同个固件。

用vender  model通信,几个节点可以互相通信,收发。

使用手机app连接某个节点的proxy server,之后往mesh网络中的0xffff地址发送数据,只有被连接的节点才能收到,其他节点收不到。


4 replies
cd_gk [Author] May 06, 2024 18:57
0
/A


发现一个问题,就是同一套代码,用的是同个SDK,顶层业务功能不一样,但是用其中某个节点做proxy server,其他节点是可以收到广播的。打印了期间的流程日志,日志都一样,也没报什么异常。


cd_gk [Author] May 07, 2024 10:46
0
/A

这个不知道是代码跑久了才有的问题还是什么,发现不是必然出现的,但是出现的概率也是很高



cd_gk [Author] May 08, 2024 14:10
0
/A


问题出在app_proxy.c 里面的  proxy_gatt_Write 这个函数里面,跟踪调查发现




else if(p_gatt->msgType == MSG_NETWORK_PDU){


if(!pkt_pb_gatt_data(pw,L2CAP_NETWORK_TYPE,(u8 *)&p_bear->nw,&proxy_para_len)){

return 0;


}

// and then how to use the data ,make a demo to turn on or turn off the light


p_bear->trans_par_val = TRANSMIT_DEF_PAR;

p_bear->len=proxy_para_len+1;

p_bear->type=MESH_ADV_TYPE_MESSAGE;

mesh_nw_pdu_from_gatt_handle((u8 *)p_bear);

}


这里,有时候p_bear->trans_par_val =TRANSMIT_DEF_PAR,也就是这个 model_sig_cfg_s.nw_transmit.val 的值是0.


目前还不清楚这个为什么会有变成0



cd_gk [Author] May 08, 2024 14:22
0
/A

难道是因为业务逻辑比较复杂,用的ram太多导致溢出或在啥的,影响到这个?怎么在运行的时候查看ram使用情况,有相关的日志打印函数吗