Cypress技术论坛
直播中

李微波

8年用户 998经验值
私信 关注
[问答]

如何写入设备名称特征?

我能够从iOS设备向外围设备写入一个新的设备名,并将其显示在广告代码中。
Char NeNeNo[] =“任何新名称”;
CyBLY-GAPSETALLAtiOND(NeNEX);
CyBLY-GAPUPDATEADVATION(CysLyDebug MyDeFo.AdDATA,CysLyDebug MyDeFiel.ScRrSPDATA);
遵循ZADK'方法AtTtp://wwwyCyp.com /FoMU/PSOC-4BL/WORITION DEVENE-NAME-特性?源=搜索和关键词:pSOC4%20BLe% %20%-20%-202A00 %20特征和CAT=社区,我也为新的设备名称做了AGATT特性,我可以很容易地用IOS设备来写。下面是代码:
CysLayEvtggtssWrad Erq:
WrReqPARAM= =(CyLaygGassx ReqEqReqPARAMET**)EndoPARAM;
如果(WrReqPARAM-GT;HANDALVALION.AtHARTHORAC= = CyByLyMyService eDeice
CyLabyGATSWrreAtestToalValuy(&WrReqPARAM-&G.HANDALVALION,0,&;
CybLygGATScript(连接句柄);
};
现在我在我的设备名特性上使用CyBygGATEADEDITEVALUTIVE(),这样我就可以将读取响应分配给我的char NeNAME[]变量吗?如果是,那代码看起来像什么?谢谢。
另外,我想把新名字放在Sflash中,就像ZADK所做的那样,这样它就可以生存下来。那个代码看起来像什么?(链接不再提供)再次感谢。

回帖(3)

李微波

2019-10-25 10:48:55
感谢PVKV。工作精细。我可以从我的手机到外设写一个新名字,在广告包里有新的名字。现在我想把这个新名字闪耀到Sfflash,这个新名字幸存于外围的SoffeRoad。我已经看过了UsRysFrasyWrut-2项目,并在我的项目中添加了RealEuthSersFlash、C和.h。我已经计算出可用的sFlash行数从562到1023(这听起来正确吗?)我还没能回忆起来。
我应该如何使用RealEuthReFieldWe()?像这个RealEuffer-Flash行(563,&NeNeNd);
我怎样才能让NeNeNe[]在电源上重新进入ADVDATA?
谢谢。
举报

李微波

2019-10-25 11:02:26
我可以编写一个特性,然后使用下面的代码来更新外围设备的本地名称:
第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、第二、
StutkHythRunter(UIT32事件代码,VATE*EndoPARAM)
{
CyBLY-GATSSA-ReqSeqReqPARAME*Tr.WrReqPARAM;
开关(事件代码)
{
……
CysLayEvtggtssWrad Erq:
WrReqPARAM=
CyBLY-GATSDS-Reqq-PARAMAMT**事件PARAMAM;
开关(WrReqPARAM-gt;
{
案例:
触觉句柄
CyBythoToService Edl Chanle柄;
SythPosieHeldL.ValueVal=
“”;
SythPosieHealLe.Value.LeN=19;
CysLygGaseWrrestAdvestValue[&SnPrimeToePr句柄,0,&连接句柄,
CyBLY-GATHYDBL LoCalyLa启动;
CyLabyGATSWrreAdvestValue[&WrReqPARAM-&G.HeallValPoIn,0,&连接句柄,
CyBLY-GATHYDBL LoCalyLa启动;
CybLygGATScript(连接句柄);
UIT8名称[ 19 ]={“}”;
触觉句柄
CyBythoToService Edl Chanle柄;
SytPrimeHealLe.ValueVal=名称;
SythPosieHealLe.Value.LeN=19;
CysLygAgsRealAdvestRealValue[&SnPrimeToeWrand,&连接句柄,
CyBLY-GATHYDBL LoCalyLa启动;
int长度=siZeof(名称);
INTI;
对于(i=0;i<长度;i++){
CysLyDebug数据AdDATAB[i+1] =名称[I];
}
CysLyDebug数据AdDATA〔3〕=长度;
CysLyggSaltLoalNeNd(
const char *)名称;
DeaveRealPayLoopUpDebug();
断裂;
α,β,α,β,β,β,α,β,β,β,β,β,β,β,α,β,β,β,β,α,β,β,β,α,β,β,β,α,β,β,β,α,β,β,β,α,β,β,β,α,β,β,β,α,β,β,β,α,β,β,β,α,β,β,β,α,β,β,β,α,β,β,α,β,β,β,α,β,β,β,α,β,β,α,β,β,β,α,β,β,α,β,β,β,α,β,β,
但是我只能成功地设置本地名称的12个字符。如果我尝试从iOS设备中拖出超过12个字符,那么本地名称就不会被重置。另外,如果我发送少于12个字符,比如说我发送9个字符,那么最后一个本地名字的最后3个字符仍然作为新的本地名称的一部分。我已经使用了iOS代码,我很确定问题是在我的外围设备的代码中。有什么想法吗?在广告扫描响应包中有足够的空间用于20个字符,所有这些都显示在iOS第一次读取外围设备的时候。12字符问题只出现在第一次从IOS写入外围设备之后。
举报

李微波

2019-10-25 11:14:42
请不要理会以上问题。我朝另一个方向前进。谢谢。
举报

更多回帖

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