首页 > 其他分享 >CH58xCentral杂谈

CH58xCentral杂谈

时间:2023-09-20 17:12:44浏览次数:36  
标签:CH58xCentral 杂谈 连接 MAC 名称 Judge EVT events

一、直接连接无扫描

CH58x芯片作为主机建立连接是通过MAC地址方式,即先搜索周围从机的MAC,然后与内部保存的MAC比对并决定是否建立连接。

可以省略搜索周围从机而直接根据MAC发起连接,通过GAPRole_CentralEstablishLink即可。

    if(events & EstablishLink_EVT)
    {
        printf("establish\n");
        if(linkflag == 1){
          linkflag = 0;
          printf("link\n");
          GAPRole_CentralEstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
                                       DEFAULT_LINK_WHITE_LIST,
                                       0,
                                       PeerAddrDef);
          tmos_start_task(centralTaskId, Judge_EVT, 4800);
        }
        tmos_start_task(centralTaskId, EstablishLink_EVT, 3200);  
        return (events ^ EstablishLink_EVT);
    }

    if(events & Judge_EVT)
    {
      if(!connectflag){           //2s未建立连接,则停止直接连接,否则功耗会很高
        GAPRole_TerminateLink(INVALID_CONNHANDLE);
      }
        return (events ^ Judge_EVT);
    }

二、通过设备名称建立连接

  1. 默认通过MAC地址建立连接,修改为通过设备名称建立连接;
  2. 先获取到扫描应答包中的设备名称,然后跟内部存放的设备名称通过strstr对比;
  3. 对比成功再获取到该设备的MAC地址并建立连接。
static uint8_t PeerAddrDef[B_ADDR_LEN] = {0x02, 0x02, 0x03, 0xE4, 0xC2, 0x84};      //不可屏蔽,后面会重新赋值用到
//static uint8_t PeerDeviceName[] = {'O','P','P','O','\0'};          //使用的是strstr,对比字符串,所以需要在最后加上\0表示结束
static uint8_t* PeerDeviceName = "OPPO";                             //输入待连接的从机名称
case GAP_DEVICE_INFO_EVENT:
{
    if((pbuf = strstr(pEvent->deviceInfo.pEvtData, PeerDeviceName)) != 0)           //对比扫描到的名称
    {
        PRINT("pbuf = %s\r\n", pbuf);
        centralAddDeviceInfo(pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType);
    }
}
break;

 

标签:CH58xCentral,杂谈,连接,MAC,名称,Judge,EVT,events
From: https://www.cnblogs.com/gscw/p/17717800.html

相关文章

  • C++ sizeof 杂谈
    原来sizeof是一个特殊的,运算优先级很高的一种运算符?之前一直都不知道。参考博客:c++中sizeof()的用法介绍C++学习杂谈:sizeof(string)到底是多少?优先级作为一个运算符,sizeof自然也是有优先级的,它在C++中优先级为\(3\),也就是除了作用域解析运算符和诸如括号的操作符,它优......
  • splog-杂谈与总结
    1.概述   spdloggithub地址,spdlog日志库自身带有包括控制台日志记录、基础文件日志记录、循环文件日志记录、每日文件日志记录等在内的日志记录方式,能满足日常不同的情景需求。  本文主要介绍spdlog日志库的基本使用,包括创建日志记录器(logger)、创建日志记录器槽(sink)......
  • 个人的一种简单一阶逻辑命题真值判定代数化方法与罗素的一些悖论的杂谈
    0.逻辑哲学相对于数学哲学来说可能更让人难绷,但既然归入哲学,意味着讨论这玩意儿也就图一乐,大家看着玩就好。显然可能有人以前也有过和我类似的一些想法,而且可能还不少。但是因为毕竟算不上什么主流,所以写出来也大概率会有一部分人没想到过。那么这篇文字对于读者的娱乐性就达到......
  • 数论杂谈
    数论杂谈记录一些小小的东西贝尔数(bell)\(Bell(n)\)(\(B_n\))表示有\(n\)个元素的集合划分成若干个互不相交的子集的方案数\[B_0=1,B_1=1,B_2=2,B_3=5,\dots\]\[B_0=1,B_{n+1}=\sum_{i=0}^nC_n^i\timesB_i\]......
  • 【个人杂谈】假如我是一个前端工程师,我该如何在日常的学习过程中使用费曼学习法?
    什么是费曼学习法?费曼学习法是一种学习方法,它由诺贝尔物理学奖得主理查德·费曼(美籍犹太裔物理学家,加州理工学院物理学教授,1965年诺贝尔物理奖得主)提出。该方法的核心思想是通过将所学的知识以简单明了的方式解释给别人,来加深自己对知识的理解和掌握。具体来说,费曼学习法包括以......
  • 杂谈
    众所周知,我体育中考失败了。而且是完全失败。真好笑。回家想了一下,感觉我在考场的所作所为跟小丑一样——自信虚伪,骄傲自大。然后呢?跳绳比平时少了二三十个,长跑是本组的最后一名。还假惺惺地要找主考员申诉。平时在学校跟班主夸下海口,必满分。小丑。沉淀。回想从2023年初......
  • 【杂谈】所以什么是功?
    有人要我写whk日记,写这玩意好像也没啥意思,那就研究点有意思的东西吧。初中阶段我们学习了什么是功:物体在力的作用下移动了一段距离,就叫做功。令\(W\)为功,\(F\)为力,\(s\)为沿力的方向移动的距离,那么\(W=Fs\)。我们先按照这个公式去考虑,先不考虑力与位移方向不同的情况。那......
  • 2023.3.24杂谈【化学×情感】
    今天的化学课上,老师讲了这样一个方程式:\[3Cu+2HNO_3+3H_2SO_4\stackrel{}{=\!=\!=}3CuSO_4+2NO\uparrow+4H_2O\]当硝酸少量时,它只表现出了氧化性,而并未表现出酸性。这何尝不是一种\(NTR\),硝酸经过努力,终于将\(Cu\),这个冷漠的元素氧化,却让后来居上的硫酸占据,硝酸自......
  • TensorRT 模型加密杂谈
    在大多数项目交付场景中,经常需要对部署模型进行加密。模型加密一方面可以防止泄密,一方面可以便于模型跟踪管理,防止混淆。由于博主使用的部署模型多为TensorRT格式,这里以TensorRT模型为例,讲解如何对模型进行加密、解密以及推理加密模型。加密算法的选择和支持的库Crypto++是C/C......
  • 广义容斥定理杂谈
    概念用语言描述,容斥原理求的是不满足任何性质的方案数,我们通过计算所有至少满足\(k\)个性质的方案数之和来计算。同样的,我们可以通过计算所有至少满足\(k\)个性质的方案数之和来计算恰好满足\(k\)个性质的方案数。这样的容斥方法我们称之为广义容斥原理。......