当前位置: 首页 > 网络应用技术

“ Uni-App,迷你程序”蓝牙连接,在整个过程中读取和写入数据

时间:2023-03-08 15:29:52 网络应用技术

  喜欢 +关注 +收藏夹=学习

  这是真实蓝牙收据数据的整个过程。

  本文使用 +以移动应用程序模式开发和运行(微信系列也是可行的)。

  它提供了蓝牙和低功率蓝牙,该蓝牙提供了与微信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 =学习