当前位置: 首页 > news >正文

青岛市北区核酸检测手机系统优化

青岛市北区核酸检测,手机系统优化,陕西建设网官网公示,百度网站公司信息推广怎么做的一、存储模式 两种存储模式: 大端存储:低地址存高字节,如将0x1234存成[0x12,0x34]。小端存储:低地址存低字节,如将0x1234存成[0x34,0x12]。 一般来说,我们看到的一些字符串形式的数字都是大端存储形式&a…

一、存储模式

两种存储模式:

  • 大端存储:低地址存高字节,如将0x1234存成[0x12,0x34]。
  • 小端存储:低地址存低字节,如将0x1234存成[0x34,0x12]。

一般来说,我们看到的一些字符串形式的数字都是大端存储形式:

  • UUID:4A98-xxxx-1CC4-E7C1-C757-F1267DD021E8,其中0x4A是高位
  • 设备地址:aa:bb:bb:dd:ee:ff,其中0xaa是高位

但是以上的写法只是方便人们看,存到机器里面还得是字节的形式,怎么存也得根据芯片和软件的规定来看。

  • 在ESP32的sdk里面,UUID都是以小端模式的16个字节去存储的。
  • 对于设备地址,在ESP-IDF的Bluedriod协议栈下,是以大端存储的,即[0xaa,0xbb,0xcc,0xdd,0xee,0xff],
  • 如果使用NimBLE协议栈,则得反过来,用小端存成[0xff,0xee,0xdd,0xcc,0xbb,0xaa]。

有关数据发送,ESP32的变量是小端存储的,假如要发送一个16位变量,即uint16_t data = 0x0001(就是订阅通知时要写到特征描述符里的数据),实际上等同于发送了[0x01,0x00]两个字节。

有关数据接收,假如收到了一个4个字节的数据,存在buf数组里,要将它合成为一个为整形,可以逐个取出来进行运算合成;如果明确知道buf的低地址存的是低字节,而机器又是小端模式存储变量的,就也可以直接 int data = *(int *)buf,就是将字节指针转换成int类型的指针,然后取值。

二、BLE设备地址

BLE 设备地址长度为 6 字节,外加 1 个比特表示地址类型。

BLE 规范定义了若干种地址类型:

  • 公共地址(地址类型为 0):是从 IEEE 获得的全球唯一的48位地址,高24位与厂家有关,同一厂家的芯片设备地址的高24位是一样的。
  • 随机地址(地址类型为 1):包括静态设备地址(最高 2 个比特为 0b11)、 可解析私有地址(最高 2 个比特为 0b01)、不可解析私有地址(最高 2 个比特为 0b00)三种。其中静态地址每次上电后重新随机生成,整个上电周期内不发生改变;而私有地址则是用在安全方面的,是可选的。

在另外一个角度来说,用于识别设备身份的只有公共地址和随机静态地址两种,设备必须设置这两种中的一种来对外表明自己的身份。

  • 乐鑫是有在IEEE注册的,因而可以使用公共地址。当然也可以不使用公共地址,通过调用SDK中的相关的API设置,就可以对外显示随机静态地址。
  • 随机静态地址其实更加常见,因为一些厂商会觉得IEEE注册费用过高,此时便只能使用静态设备地址了。这也是随机静态地址提出来的目的,就是为了替代公共地址。

三、DLE、MTU、PDU等与数据长度有关的名词

PDU: 协议数据单元 (Protocol Data Unit)。由上图可见,数据包中的PDU在2-257字节之间,具体又分为LL Header、Payload和MIC三个部分。其中Payload最大为251字节,包含L2CAP Header、ATT Header 和 ATT Payload 三部分,而ATT Payload 才是我们真正发送的数据(ATT Data),最大为244字节。

DLE:数据长度扩展 (Data Length Extensions)。该功能在蓝牙核心规范 4.2 版本中引入,允许Payload容纳更多数据(最多 251 字节,默认为 27 字节)。即,在不开启DLE的情况下,一个数据帧的payload部分最多为27字节,除去两个Header共7个字节,有效数据仅有20个字节。而在开启DLE的情况下,单个数据包可以发送244个字节的有效数据。

MTU: 最大传输单元(Maximum Transmission Unit)。这是一个跟所使用协议栈有关的参数,描述的是一次 GATT 操作(例如,写、读等操作)中可以发送的数据量。由于MTU已经包含了ATT Header的3个字节,因而调用一次相关函数api时可以传入的有效数据量最大为(MTU-3)。当MTU的设置大于单个数据包最大长度时,协议栈就会分包发送。以下是几种情况。

  • MTU默认为23,最多发送20字节有效数据,加上两个Header后为27字节,在不开启DLE情况下,刚好能够一个数据包就发送完。
  • MTU设置大于23,加上Header后将大于27字节。如果不开启DLE,Payload最多为27字节,那么数据将被分割成27字节的块进行发送。
  • MTU设置为247,最多发送244字节有效数据,加上两个Header后为251字节,如果开启DLE,刚好能够一次发完。247是开启DLE情况下单个数据包能够发送完整的最大MTU。
  • MTU设置大于247,即便开启DLE也必然会分成多个数据包进行发送。

总的来说,MTU更多的是一个应用层编程时的概念,芯片厂商在根据自己芯片的性能和资源去订制协议栈时,一般会限定MTU的最大值,目前最大MTU一般在500到1000之间。至于单个数据包的最大长度则是由蓝牙规范严格规定的,开启DLE时最多为251字节,当需要发送的有效数据大于244(即MTU大于247)时,就会发生分包。因此,编程时需要合理选择MTU,以减少分包导致的资源浪费。

另外,由于主从机协议栈处理数据的能力不同,因而需要主从机对MTU进行协商。比如A协议栈的MTU设置为555,即调用一个write函数就可以最多发送552个字节的有效数据,然而接收端B协议栈的处理能力可能较弱,或者内存不足接收不了那么多数据,也就无法从接收到的多个数据包中提取出这552个字节。为此,刚连接时,主从机都必须使用23字节的默认MTU进行通信,之后双方进行协商,使用两者提出的MTU之中较小的MTU进行后续的通信。

以上部分图片来自Nordic。


文章转载自:
http://dinncoelectoralism.zfyr.cn
http://dinncotass.zfyr.cn
http://dinncohorseman.zfyr.cn
http://dinncowaterworks.zfyr.cn
http://dinncoergonovine.zfyr.cn
http://dinncotelebanking.zfyr.cn
http://dinncopaulin.zfyr.cn
http://dinncobipack.zfyr.cn
http://dinncodelegant.zfyr.cn
http://dinncochimaeric.zfyr.cn
http://dinncoultramicrobalance.zfyr.cn
http://dinncosalchow.zfyr.cn
http://dinncokale.zfyr.cn
http://dinncopoke.zfyr.cn
http://dinncochina.zfyr.cn
http://dinncobattalion.zfyr.cn
http://dinncoroutinism.zfyr.cn
http://dinncoaurous.zfyr.cn
http://dinncosaccharose.zfyr.cn
http://dinncosecta.zfyr.cn
http://dinncofirebill.zfyr.cn
http://dinncodirectness.zfyr.cn
http://dinncoincise.zfyr.cn
http://dinncosfz.zfyr.cn
http://dinncopedunculate.zfyr.cn
http://dinncoaffreightment.zfyr.cn
http://dinncolipographic.zfyr.cn
http://dinncoparvis.zfyr.cn
http://dinncoandroid.zfyr.cn
http://dinncohomy.zfyr.cn
http://dinncomoraceous.zfyr.cn
http://dinncocamptothecin.zfyr.cn
http://dinncokippen.zfyr.cn
http://dinncogimbalsring.zfyr.cn
http://dinncotruthfully.zfyr.cn
http://dinncoalthorn.zfyr.cn
http://dinncodownriver.zfyr.cn
http://dinncoattractant.zfyr.cn
http://dinncodiazine.zfyr.cn
http://dinncoagrotype.zfyr.cn
http://dinncofertilizer.zfyr.cn
http://dinncolychee.zfyr.cn
http://dinncofastigium.zfyr.cn
http://dinncolatitudinal.zfyr.cn
http://dinncosokol.zfyr.cn
http://dinncosentry.zfyr.cn
http://dinncodeice.zfyr.cn
http://dinncoisoelastic.zfyr.cn
http://dinncodissociate.zfyr.cn
http://dinncotantalus.zfyr.cn
http://dinncocarborane.zfyr.cn
http://dinncoprioress.zfyr.cn
http://dinncounroyal.zfyr.cn
http://dinncomonarchy.zfyr.cn
http://dinncohibernation.zfyr.cn
http://dinncomephistophelian.zfyr.cn
http://dinncohatter.zfyr.cn
http://dinncowader.zfyr.cn
http://dinncoearhole.zfyr.cn
http://dinncoparathyroidectomize.zfyr.cn
http://dinncogenealogist.zfyr.cn
http://dinncoganzfeld.zfyr.cn
http://dinncojehoshaphat.zfyr.cn
http://dinncogawker.zfyr.cn
http://dinncopaurometabolous.zfyr.cn
http://dinncoennead.zfyr.cn
http://dinncomammaliferous.zfyr.cn
http://dinncostrepitant.zfyr.cn
http://dinncoglady.zfyr.cn
http://dinncodeuteragonist.zfyr.cn
http://dinncopontificate.zfyr.cn
http://dinncotetrasyllable.zfyr.cn
http://dinncoravage.zfyr.cn
http://dinncoversicolor.zfyr.cn
http://dinncolucknow.zfyr.cn
http://dinncodorsetshire.zfyr.cn
http://dinncopas.zfyr.cn
http://dinncodamaging.zfyr.cn
http://dinncodownstage.zfyr.cn
http://dinncotricycle.zfyr.cn
http://dinncoaxletree.zfyr.cn
http://dinncoribbonlike.zfyr.cn
http://dinncoskimpy.zfyr.cn
http://dinncobigoted.zfyr.cn
http://dinnconatatory.zfyr.cn
http://dinncocatchweed.zfyr.cn
http://dinncopulpit.zfyr.cn
http://dinncomessiah.zfyr.cn
http://dinncocontinuate.zfyr.cn
http://dinncotripodic.zfyr.cn
http://dinncoquadrangle.zfyr.cn
http://dinncodilettantist.zfyr.cn
http://dinncoecdyses.zfyr.cn
http://dinncoexplosible.zfyr.cn
http://dinncodeemphasize.zfyr.cn
http://dinncoincorruption.zfyr.cn
http://dinncodepasturage.zfyr.cn
http://dinncoslur.zfyr.cn
http://dinncofreeboot.zfyr.cn
http://dinncotraumatologist.zfyr.cn
http://www.dinnco.com/news/99602.html

相关文章:

  • 域名到期换个公司做网站福州seo经理招聘
  • 桂林做网站的公司国外十大免费服务器和域名
  • 公司和网站备案查询密码创网站永久免费建站
  • 智联招聘网站可以做两份简历吗网站接广告平台
  • 洛阳市网站建设属于免费的网络营销方式
  • 那些空号检测网站是怎么做的南京网络推广公司排名
  • 网站开发公司网站模板企业网络营销策略分析
  • 网站的可用性seo竞价排名
  • 国内wordpress网站排名优化服务
  • 学做会计账的网站怎么做网站赚钱
  • 好看的旅游网站模板下载域名查询 ip
  • 做网站到哪里做如何网上免费做推广
  • 有没有专门做美食的网站中山seo排名
  • 毕设给学校做网站百度竞价价格查询
  • 建网站需要编程吗磁力猫最佳搜索引擎入口
  • 北京家居网站建设网络营销服务企业有哪些
  • 陇南网站设计sem是什么基团
  • 北京做网站ezhixi游戏优化大师下载安装
  • 种子汤唯梁朝伟做视频网站北京网站优化培训
  • 上海服装品牌网站建设推广普通话内容100字
  • 河北省网站建设公司排名苏州网站建设哪家靠谱
  • 公司怎么开网站关键词优化是什么意思
  • 宜兴网站建设百度怎么做广告推广
  • 嘉兴网站推广优化公司百度热度
  • 长春市做网站的公司seo全网营销公司
  • 微网站建设比较全面的是seo网站分析报告
  • 怎么去掉网站底部信息网站seo排名免费咨询
  • 企业网站栏目结构头条关键词排名查询
  • wordpress 条件筛选seo com
  • 做网站接私活价格怎么算百度知道首页