本发明属于无线通信技术领域,涉及Android操作系统的应用,具体涉及一种基于Android操作系统的激光测距仪蓝牙通信方法。
背景技术:
目前,随着智能设备的普及,智能操作系统得到了极大的发展,Android系统是谷歌推出的一款开源的操作系统,广泛地被用作移动终端、平板电脑以及智能电视等终端的操作系统中。BLE是Bluetooth Low Energy的缩写,又叫蓝牙4.0。与原有的蓝牙技术相比,它的特点是低功耗、低延迟、超长的有效连接距离。
激光测距仪是利用调制激光的某个参数对目标的距离进行准确测定的仪器。脉冲式激光测距仪是在工作时向目标射出一束或一序列短暂的脉冲激光束,由光电元件接收目标反射的激光束,计时器测定激光束从发射到接收的时间,计算出从测距仪到目标的距离。激光测距仪广泛用于地形测量,战场测量,坦克,飞机,舰艇和火炮对目标的测距,测量云层、飞机、导弹以及人造卫星的高度等。它是提高高坦克、飞机、舰艇和火炮精度的重要技术装备。由于激光测距仪价格不断下调,工业上也逐渐开始使用激光测距仪,可以广泛应用于工业测控、矿山、港口等领域。
目前,传统的激光测距仪与移动端进行通信时存在功耗大、数据传输时效率低,造成应用程序的不稳定等缺点,给用户带来了不便。因此亟需一种基于Android操作系统的激光测距仪的通信方法以解决上述问题。
技术实现要素:
本发明的目的在于客服传统的激光测距仪与移动端进行通信时存在的不足,为此提供一种Andriod操作系统激光测距仪蓝牙通信方法,解决了降低蓝牙设备的功耗,使应用程序更加稳定,用户体验更加良好的问题。
为了解决上述技术问题,本发明采用的技术方案为一种基于Android操作系统的激光测距仪蓝牙通信方法,包含以下步骤:
S1:在Android操作系统上运行App软件,扫描激光测距仪的BLE蓝牙设备;
S2:确认激光测距仪的蓝牙设备处于开启状态时,获取其属性信息,建立连接,Android操作系统上运行的App软件显示与激光测距仪连接成功;
S3:Android操作系统上运行的App软件发送十六进制数据请求,激光测距仪的蓝牙设备与预设的移动终端相互传输数据。
进一步,在步骤S1中,激光测距仪通过BLE蓝牙设备与App进行通讯时无需配对,激光测距仪蓝牙设备会返回一个bluetoothDevice列表,通过这个列表可以查询激光测距仪蓝牙设备的相关信息。
上述相关信息包含物理地址、设备名称。
进一步,在步骤S2中,首先需要建立通用属性协议GATT(Generic Attribute Profile)连接,连接GATT Server,获取设备的通用唯一识别码UUID(Universally Unique Identifier),然后读取激光测距仪设备上的特征值,在完成特征值的读写后,调用GATT的API,完成连接。
进一步,在步骤S3中,App与激光测距仪的蓝牙设备通讯前必须与设备进行一次确认字符ACK握手(Acknowledgement),表示发来的数据已确认接收无误,可以接受数据。App发送十六进制请求给设备内存数据,App每收到一条数据就发送一个ACK,以便于下一次请求数据或者设备完成后自动回调数据,App收到一条设备数据后,判断是否传输完整,若判断结果为是,则主动请求下一条数据,若判断结果为否,则返回数据包出错信息。
与现有技术相比,本发明具有以下有益效果:
本发明通过采用BLE技术,App请求单次测量的十六进制数据,设备处于单次测量状态,从而实现每次设备测量完成之后自动回调数据发送到App,降低蓝牙设备的功耗,具有使应用程序更加稳定,用户体验更加良好的优点。
附图说明
图1为本发明的蓝牙连接的过程示意图;
图2为本发明的蓝牙传输数据时的过程示意图。
具体实施方式
下面将结合附图对本发明做进一步详细的说明。
如图1所示,蓝牙连接的过程为:扫描激光测距仪蓝牙设备,激光蓝牙测距仪蓝牙设备会返回一个设备列表,设备列表将设备信息传到程序的connect方法中进行连接,判断设备是否连接成功,若连接成功,App显示与设备连接成功。若连接失败,更新界面,继续扫描设备。
本发明的蓝牙传输数据时的过程如图1所示,包含以下步骤:
步骤1:在Android操作系统上运行App软件,扫描激光测距仪蓝牙设备;激光测距仪通过BLE蓝牙与App进行通讯,无需配对,扫描设备时激光蓝牙测距仪蓝牙设备会返回一个bluetoothDevice列表,通过这个列表可以查询设备的物理地址、设备名称等信息。
步骤2:连接步骤,在扫描到激光测距仪蓝牙设备开启时,获取属性信息,建立连接,Android操作系统上运行的App软件显示与激光测距仪连接成功。首先需要建立GATT连接,连接GATT Server,获取设备的UUID,在知道设备UUID后,读取激光测距仪设备上的特征值,在完成特征值的读写后,调用GATT的API,完成连接。
步骤3:通信步骤,Android操作系统上运行的App软件发送十六进制请求数据,激光测距仪蓝牙设备与预设的移动终端相互传输数据。App与设备通讯前必须与设备进行一次ACK,App发送十六进制请求设备内存数据,App每收到一条数据发送一个ACK,以便于下一次请求数据或者设备完成后自动回调数据,App收到一条设备数据后,判断是否传输完整,若判断结果为是,则主动请求下一条数据,若判断结果为否,则返回数据包出错信息。
需要说明的是,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。