Cypress技术论坛
直播中

姚秋月

7年用户 255经验值
私信 关注
[问答]

psoc 4 ble通知自定义特性返回错误代码1该怎么办?

大家好,
今天我又遇到了另一个奇怪的话题,我个人没有意识到。
我有一个44字节(11个32个字段)的大定制特性,经常改变(4秒一次),因此我希望他们在值改变时通知手机。由于代码很长,我只把通知部分放在这里。我可以说一个简单的滑块例子是完美的。这个例子也适用于某些情况。
&代码;
TStValue.ToStalValue:T2Value.So2= ASTwitter(1).I32 avgValuest.No2= AsStistor(2).I32 avgValue:TSTValue.O3= AsStistor(3).I32 avgValue:TSTValue.No=AsStistor [4 ] .ItvavgValue:TSTValue.SPEC= ASTwitter [5 ] .I32 avgValue:TSTValue.CO2= ASTASEiSCOR(6).I32 avgValue:TSTValue.Voc=ASSTORTER(7).I32 avgValue:TSTValue.t= AsStistor(8).I32 avgValue:TSTValue.H= AsStistor(9).I32 avgValuy;TSTValue.P= AsStistor [10 ] .I32 AVG值;
如果(U8连接标志)!{= 0){ /*获取通知特性*/CyLabyGATSH-HealLayValueNTfft TimeDLE的句柄;/*采取特征*/TEMPANDEL.AtHealGuff= CyLySysReloSersServices SyrWorsValueSuxHub句柄;/*更新值并指定LangHy/TyPHANDEL.ValueVal=(UTI8*)和TST值;TEMPANDEL.Value.LeN=44;CyLygGATSWRITE属性值(and;TAMPHANDLE,0,和CyByLyCon句柄,0);/*如果BLE与电话连接,通知它*/IF(U8NoTif)!= 0){char STR〔20〕;CybLyAppReultTyt结果;/*通知电话值为Update */Reals= CyLabyGATSeNebug(CyByLyCon句柄,and PAMPHANDLE);SaveTFF(STR),“ErRR:%D WSDFGRFTHJHYY N,结果”;UARTHARUARTPATSHIPE串(STR);}
&代码/代码;
结果代码总是1,这意味着一个输入参数不正确。
我跟踪问题的大小的特点。如果不是44个长度i 20,那么没有错误,它正确地通知,但在20以上,我总是有代码1。
我的问题是:是否有问题,因为我试图通知一个字符的44字节?如果是的话,我怎么能做这样大的通知呢?
谢谢!

回帖(2)

李华瑞

2019-10-24 09:14:53
你好,Marian,
在BLE 4.1V中,最大链路层分组大小为27字节。因此,你不能发送超过20字节的通知。
在BLE 4.2V中,数据长度扩展特性支持PDU大小为251字节,从而可以发送更大大小的数据包。
举报

姚秋月

2019-10-24 09:25:05
你好,
谢谢你的回答。我把MTU放大到47字节,现在我的自定义iOS应用程序能够接收这个特性的通知。谢谢您!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分