VID app具有一个修改当前与其连接的蓝牙设备名称的功能,以添加一些设备个性化的元素。

修改蓝牙设备的名称并不是一件困难的事情,按照手册规定的AT指令通过串口发送到蓝牙设备即可。不过手机要通过蓝牙连接的无线通信方式来修改蓝牙设备的名称,则并不简单。原因在于:手机发送的遵循AT指令格式的数据会被蓝牙当作普通数据内容而传送到单片机;

蓝牙设备处于连接的状态下,AT指令并不能完成对设备名称的修改。

解决办法:必须由单片机通过串口来进行AT指令的操作;

App发送携带有用户输入的自定义名称信息的命令给单片机;然后自动取消蓝牙连接;

单片机在解读手机发来的命令后,通过AT指令将蓝牙设备的名称修改为用户所输入的名称。

当中遇到了一个问题,使耗费了两天:

在确保单片机程序的正确性之后,

iOS源代码如下:

-(void) setDevice_Name {

[self Bluetooth_Send : command ]; //发送带有用户输入的自定义名称信息的命令command;

if ( sensor.activePeripheral.state == CBPeripheralStateConnected) { //判定是否为连接状态

[sensor.manager cancelPeripheralConnection : sensor.activePeripheral ] ; //取消连接

Sensor.activePeripheral = nil;

}

}

Ps:蓝牙连接及其它相关操作的代码直接引用了蓝牙模块供应商提供的例程,所以不必提供上来了。

现象是:成功修改蓝牙设备名称的机率极低!

跟踪单片机程序的运行发现:单片机并没有收到手机端发来的命令。

在修改代码之后,代码大意如下:

-(void)setDevice_Name {

[self Bluetooth_Send : command ]; //发送带有用户输入的自定义名称信息的命令command;

[NSTimer scheduledTimerWithInterval : 1.0f target : self selector : @selector(disconnectBLE) userInfo : nil repeats :NO]; //在延时1s后,执行disconnectBLE;

}

-(void)disconnectBLE {

if ( sensor.activePeripheral.state == CBPeripheralStateConnected) { //判定是否为连接状态

[sensor.manager cancelPeripheralConnection : sensor.activePeripheral ] ; //取消连接

Sensor.activePeripheral = nil;

}

}

成功实现了修改名称的功能。

作为非计算机/app开发专业人员,未能理解其中的原因。个人猜想为:程序并非在将command发送完成之后才执行取消连接。而是先把command读取到发送缓冲区,在另一线程中进行发送,而取消连接的操作在同步进行,导致command命令未能完整发出。

希望得到专业人士的指点。

蓝牙设备改参数教程_修改蓝牙设备的名称相关推荐

  1. 蓝牙设备改参数教程_蓝牙精确定位技术下的化工厂安全管理系统,蓝牙定位标签...

    一.项目背景; 苏州新导针对普瑞玛智能装备有限公司现场的实际情况与安全管理的需求,结合蓝牙定位技术,特设计适用于化工厂实际需求的定位安全管理系统. 通过蓝牙定位建设人员定位安全管理系统,可实现以下目标 ...

  2. #{}不自动改参数类型_证件照上传不成功,教你修改分辨率、调整照片大小

    ​关于上传证件照的问题我写过三篇文章,可能过程有些繁琐,一些没有计算机基础的朋友还是感觉很麻烦. 今天写的这篇文章简单.全面,看了这篇文章,相信你的证件照一定能够上传成功. 1.确定证件照的背景 报考 ...

  3. keil5改工程名称_修改Keil工程名称并添加其他模块文件

    学习目标 在上一篇文章 <基于STM32固件库的MDK5工程建立> 基础上,将Keil工程名称Template修改为Usart 添加延时函数文件及串口1的实现文件 main.c文件中测试p ...

  4. #{}不自动改参数类型_我是干流动补胎的,想让我的柴油机气泵自动打气,怎么改装。谢谢。...

    展开全部 买一个启动系统来 这个系统有源自带电瓶的,也有启2113动电机和启动模5261块的,怎么4102划算怎么去改,改1653装可以让柴油机实现全自动控制,低气压10公斤柴油机自动点火启动,高气压 ...

  5. #{}不自动改参数类型_【Just For Fun】C - 可变参数函数、可变参数宏 __VA_ARGS__、额外的逗号

    [Just For Fun] 本系列纯粹娱乐.研究用.一些旁门左道的东西. 事实上可能完全没用. (๑•̀ω•́๑) 對於可变参数函数.可变参数宏 __VA_ARGS__ , 我曾經有在另一些地方寫過 ...

  6. #{}不自动改参数类型_如何在不刷新页面的情况下改变URL

    本文为饥人谷原创文章,首发于 前端学习指南. 问没有具体业务场景的技术问题都是耍流氓,那在回答这个问题之前先简单介绍一下业务场景. 下午6点半,小 H写了一个下午的代码揉揉眼睛伸个懒腰,「今天终于能早 ...

  7. uc3842改可调电源教程_《学习笔记》--DC/DC电源电路设计实例

    1.设计概述 利用LTC3704实现3.3V 1.5V的转换,最大输出电流1A(LTC3704是一款支持正向电源电压转换为负向电源电压的DC/DC电源芯片,支持的输入端电源电压范围是2.5V~36V, ...

  8. 修改战网服务器,使命召唤16现代战争怎么改战网地区_修改战网客户端的方法_3DM单机...

    <使命召唤16:现代战争>即将在25日正式发售,由于游戏PC版没有登陆steam只能通过战网购买,而游戏并不会登陆国服战网,因此玩家需要手动修改战网客户端才能并游玩购买游戏.以下就是&qu ...

  9. dnf十字斩改暴风教程_十字改秒杀所有代码

    十字斩改暴风:21058 十字斩改红屏秒:24331 十字斩改紫爆:24293 十字斩改狙击秒:11169 十字斩改秒杀:24326 十字斩改BUFF秒:24070 十字斩改觉醒:24067 十字斩改 ...

最新文章

  1. 2022-2028年中国饮水机市场投资分析及前景预测报告
  2. 揭示生命的奥秘——生物信息学
  3. 反病毒引擎设计全解(三)
  4. python编写表白程序_python如何写出表白程序
  5. springcloud微服务实战--笔记--1、基础知识
  6. Java笔记-JdbcTemplate批量执行insert及update
  7. java语言 爱我,语言篇:Java环境
  8. was环境访问https_Go语言笔记|02-开发环境搭建
  9. linux 平行运行命令,Linux paste命令
  10. python主要用来做什么-python语言都可以做什么
  11. EMC之 “不整改好别回来了”
  12. bp神经网络训练样本个数,bp神经网络训练时间
  13. H.266/VVC代码学习:MIP技术相关代码之initIntraMip函数
  14. Chromebook + Crouton
  15. MATLAB如何去掉坐标轴上的数字或去掉坐标轴但保留刻度边框
  16. FBG光纤光栅反射器的特点
  17. biogeme-nest_logit-cnblog
  18. Altium Designer 10对集成库的理解
  19. Greenfoot简介与使用入门
  20. Rosalind第二题:将DNA转录为RNA

热门文章

  1. 使用TIM捕获测量PWM频率和占空比
  2. 微信小程序收款手续费_【微信支付】微信小程序支付开发者文档
  3. VS Code全局搜索
  4. Flink 结合 布隆过滤器(BloomFilter) 实现去重
  5. android su文件,Android su开放root权限
  6. 硬盘盒CE认证-EMC测试标准与流程
  7. H.264/AVC标准参考软件 JM
  8. 「Computer Vision」Note on Lossless Pooling Convolutional Networks
  9. 你还不知道邮件可以撤回吗?学会邮件怎么撤回,远离办公社死现场
  10. 机械臂matlab运动学仿真,matlab建立机械臂运动学仿真