喜欢 +关注 +收藏夹=学习
这是真实蓝牙收据数据的整个过程。
本文使用 +以移动应用程序模式开发和运行(微信系列也是可行的)。
它提供了蓝牙和低功率蓝牙,该蓝牙提供了与微信Mini程序相同的,因此本文的解释也适用于微信微型编程。
本文仅实现蓝牙收发器数据功能。至于样式,我太懒了,无法调整?
我将逐渐解释蓝牙的功能。如果您有一个良好的基础和紧急,则可以直接跳到“完整代码”的章节进行检查。那里没有废话。
购买蓝牙学习套装花费几美元?
蓝牙收发器数据的逻辑与我们常用的网络请求不同。
更大的区别是:接收数据的蓝牙不太稳定。与网络请求相比,蓝牙更有可能丢失数据包丢失。
在开发中,浏览器基本上将为您提供答复,无论其成功或失败是什么。
使用蓝牙进行数据传输的大概思维如下:
上面汇总了使用蓝牙传输数据的五个主要动作,但实际上每个动作都是由提供的一个或多个组合制成的。
在使用蓝牙之前,您需要初始化蓝牙模块,这是最初要做的!
使用它来初始化蓝牙模块。其他蓝牙相关的API必须在调用后使用。否则,API将返回错误()。
错误代码可以咨询“错误代码文档”
代码示例
如果您的手机使用蓝牙打开,单击页面上的按钮后,控制台将输出以下内容
如果手机未打开,将返回以下内容
根据文档,10001表示当前的蓝牙适配器不可用。
如果您的控制台可以打印出第一步成功的证明。
接下来,您可以开始搜索附近的蓝牙设备。
此步骤需要2个合作才能完成。因此,可以将其分解为以下2个步骤:
在开发蓝牙相关功能时,操作逻辑更像是推动,因此“打开搜索”和“监视新设备”通过分离分开。
该设备可以开始搜索附近的蓝牙设备,但是此方法会消耗系统资源。连接到设备后,建议使用停止搜索。
该方法可以传递到一个对象中,该对象接收到该对象的几个参数,但我们只注意和。如果硬件人员在项目中提供给您,您也可以传递。其他参数可以查看引入的介绍官方文件。
使用(启动搜索)后,您可以使用监视。此方法接收回调函数。
代码示例
上述代码的逻辑是,如果“寻找附近的设备”的功能成功,则打开“监视和查找新设备的事件”。
搜索的设备将返回以下数据:
每个监视器都会听到新设备,我将其添加到Bluedevicelist列表中,最后将此列表的数据添加到页面上。
它只能以一个连接目标设备来完成。但是,根据文档,我们需要在连接后关闭“搜索附近设备”的功能。这是很好的理解。由于发现它,因此浪费了资源。
该过程如下:
我将事件添加到每个搜索的蓝牙结果,并将连接请求发送到目标设备。
我的设备名称是,所以我单击了此。
代码示例
连接成功后,控制台将输出
连接成功后,立即致电该方法,以停止在附近的其他设备上搜索,并且停止后将输出输出
连接成功后,设备还打开了绿灯。
连接设备后,必须先打开聆听数据的功能。这样,在发送读取 - 写入指令后,可以将设备传输给您。
要开始监视,我们需要了解蓝牙设备的服务,然后通过服务获得功能值。该功能值将告诉您可以读取哪一个以及可以编写哪一个。在最后,根据特征值的消息监视器。
进行以下操作:
在正常情况下,硬件人会提前告诉您蓝牙设备的指定服务。
例如,我的设备的蓝牙服务是:
功能值是:
第一步是获得蓝牙服务
此时,单击按钮以获取已连接的所有服务。
我的设备具有以下服务。您在工作中获得的服务与我的不同,而且数字不一定相同。
可以发现我得到的结果中有这项服务。
第二步是获得指定服务的特征值
为了获得功能值,需要传递设备ID和服务ID。
在前两个步骤中,我获得了设备ID,并且服务ID为。
最后一个成功的输出
服务的所有特征值都保存在现场。我的设备只有一个功能值,所有读取,写入和消息推动都是。
您的设备可能不止一个功能值。您需要收听该功能值。这需要您与硬件进行协商(通常是硬件的家伙直接告诉您要听哪一个)。
第三和四个步骤,打开消息以监视和接收消息监视的数据
根据已获得的设备ID,服务ID和功能值,可以打开相应的监视功能。
使用一条消息进行监视;
并触发了听到监视的消息。
该方法是从设备接收消息。
在上面的示例中,结果是
该设备的内容放置在该字段中,但是由于该字段的类型是无法直接观察到控制台上的肉眼。因此,该值通过该方法转换为十六进制,最后转动了十六进制使用该方法进入ASCII代码。
我从设备发送一个字符串:
该应用程序收到的应用到应用程序结束后的结果:十六进制后的结果:
从十六进制到ASCII代码的过渡结果:
最后到最后一步。
从提供的蓝牙的角度来看,只有两种方法可以发送说明:
有必要在这里澄清一个概念。本节的内容是“发送指令”,也就是说,将指令从应用程序或applet发送到其他蓝牙设备。该指令分为两种情况。DATA被授予蓝牙设备,另一种情况是您为您打电话给您一些信息。
我们需要单独讨论它们并首先交谈。
可以从文档中可以看出,这可以将一些数据发送到蓝牙设备,但是必须将发送的值转换。
代码示例
目前,如果您走了,则证明您已经成功地向外发送了数据,但这并不意味着必须收到设备。
通常,该设备会收到您过去发送的信息,并将向您返回消息,并且将触发此回调消息,即步骤[9]。但是,这是由蓝牙设备控制的。作为最前沿,您不禁要“不阅读”。
在“监视”部分中,我们使用设备的功能值,设备提供的功能值支持,因此我们可以使用“读取”指令对蓝牙设备。然后您可以接收设备发送的数据。
代码示例
使用“阅读”方法将指令发送到设备不需要其他值。
此刻我的设备返回
该数据由硬件设置。
在日常工作中,主要是阅读数据,但使用场景并不多。
我在工作中遇到的场景是:蓝牙设备提供多个接口,并且传递的数据相对较大,例如将图片传递给应用程序。我首先告诉设备我现在需要获取的数据,然后使用读取读取数据的请求。如果数据量相对较大,则有必要重复阅读以进行阅读。例如,上面的示例,我在阅读第一次时返回,然后第二次阅读时返回...
最后,我将提醒您只发送阅读请求,而内部只是成功地返回了发送请求的移动。至于另一侧的蓝牙设备是否已收到此说明,目前尚不清楚。
最后,数据通过监视设备传递。
以上是本文的完整代码。
Uni-App蓝牙文档
Uni-App低功耗蓝牙文档
微信迷你计划蓝牙文档
微信迷你计划低功耗蓝牙文档
如何使用Dataview
?Uni-App应用程序结束半屏幕连续扫描代码
记住:像 + collow + laster =学习