bigbaicai

芯方式是以半导体人、电子工程师等电子行业相关领域从业人员为核心的知识经验学习、分享、交流社群。 凭借开放、合作、共赢的运营理念,聚集了来自国内外知名院校和顶尖科技公司的半导体人、电子工程师。 我们致力于营造专业、认真、有温度的分享交流环境,将高质量的内容和方案成规模地生产和分享,帮助个人和团队在芯方式找到有价值的Key。 http://www.icfans.com/

如何修改SPP uart owner

0
阅读(1058)

[DESCRIPTION]
建立SPP连接后,uart owner默认为ATCI,如何修改owner为MMI。
[SOLUTION]来自半导体社区
client端收到MSG_ID_UART_OWNER_IND消息,处理函数为
srv_spp_uart_set_owner_ind();此函数只是简单的回复cnf消息,但是为了让
Server端也成功进行uart owner转换则需要对Server发送第一包数据pattern,所以
在这里首先判断当前是否为Client,如果为Client则发送第一个数据包给
Server,Server收到此包后会给Server的MOD_MMI发送一个MSG_ID_UART_OWNER_IND消
息,并进行Uart Owner重设。
srv_spp_uart_set_owner_ind()函数中,在returen语句前,添加代码:
srv_spp_uart_set_owner_ind()
{
kal_bool IsServerFlag=KAL_FALSE;
IsServerFlag=IsThisPortAsSPPServer(uart_owner_ind->port);
UART_CTRL_PUT_BYTES_T data;
kal_uint16 returnWriteLen=0;
kal_uint8 WRingBuf[51];
kal_uint8 pattern_len=0;
********************************
*********************************
if(!IsServerFlag)
{
memset(WRingBuf,0,51);
memcpy(WRingBuf,(const
U8)BtGet_SPPClientFirstConnDataPattern(&pattern_len),pattern_len);
data.u4OwenrId=MOD_MMI;
data.u2Length=pattern_len;
data.puBuffaddr=WRingBuf;
DCLSerialPort_Control(dcl_handle,SIO_CMD_PUT_BYTES,(DCL_CTRL_DATA_T*)&data);
if(data.u2RetSize!=pattern_len)
MMI_BT_ASSERT(0);
}
return MMI_RET_OK;
}

ICfans