// pages/shouye/shouye.js
var deviceId;//连接的设备的ID
var i=0;
var serviceId=[];//各种服务的ID
var characteristicId=[];//
var shujubianhuan=[];
Page({
data: {
sendmsg:"",
shujy:"31/.",
long:"0",
shumu:"",
sousuo:"",
status:"",
zhuangtai:"未初始化",//
shebei:"",//
deviceName:"0",//
deviceId:[],//
devices:[],//
connectedDeviceId:"",//已连接设备UUid
services:"",//连接设备的服务
characteristics:"",//连接设备的状态值
writeServicweId:"",//可写服务UUid
writeCharacteristicsId:"",//可写特征值UUid
readServicweId:"",//可读服务UUid
readCharacteristicsId:"",//可读特征值UUid
notifyServicweId:"",//通知服务UUid
},
shousuo:function(){
var that=this;
wx.openBluetoothAdapter({
success:function(res){
that.setData({
zhuangtai:"适配成功,您已经成功开启蓝牙"
})
wx.getBluetoothAdapterState({
success:function(res){
that.setData({
zhuangtai:"蓝牙适配器可用,当前蓝牙处于未连接状态"
})
that.zhoubian();
},
fail:function(res){
that.setData({
zhuangtai:"蓝牙适配器不可用,已经与蓝牙设备连接。"
})
wx.showModal({
title: '注意',
content: '您的蓝牙设备已经连接了其他的设备,请确保连接的是当前使用的设备',
})
}
})
},
fail:function(res){
that.setData({
zhuangtai:"适配失败,请检查您的蓝牙设备是否开启"
})
wx.showModal({
title: '注意',
content: '您还未开启蓝牙,请先开启蓝牙',
})
}
})
},
//开始搜索蓝牙设备
zhoubian:function(){
var that = this;
setTimeout(() => {
wx.startBluetoothDevicesDiscovery({
success: function(res) {
that.setData({
zhuangtai:"正在搜索中。。。",
})
function ab2hex(buffer) {
var hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function(bit) {
return ('00' + bit.toString(16)).slice(-2)
}
)
return hexArr.join('');
}
wx.getBluetoothDevices({ //获取周边蓝牙信息
success: function (res) {
that.setData({
zhuangtai:"搜索设备:"+JSON.stringify(res.devices),
shumu:"搜索到的蓝牙设备的数目:"+res.devices.length,
devices:res.devices
})
}
})
},
fail(res) {
}
})
}, 500)
},
//连接蓝牙设备
connectTO:function(e) {
var that=this;
setTimeout(() => {
wx.createBLEConnection({
deviceId: e.currentTarget.id,
success: function(res) {
that.setData({
connectedDeviceId:e.currentTarget.id,
zhuangtai: e.currentTarget.id,
//zhuangtai:"已连接"+e.currentTarget.id+'==='+'连接设备返回:'+res.errMsg,
msg1:"",
shumu:"已经连接一个"
})
deviceId=e.currentTarget.id//连接的是哪一个保存在全局变量里面
that.tingshisousuo();
},
fail: function(res) {
that.setData({
zhuangtai:"连接失败",
})
} ,
complete:function(){
that.setData({
// zhuangtai:"调用结束",
})
}
})
}, 1000)
},
//停止搜索周边设备
tingshisousuo:function(){
var that=this;
// setTimeout(() => {
wx.stopBluetoothDevicesDiscovery({
success: function(res) {
that.setData({
zhuangtai:"停止搜索周边设备"+"/"+JSON.stringify(res.errMsg),
suosou:res.discovering ? ";正在搜索":";未在搜索",
status:res.available ? ";可用" : ";不可用"
})
that.getservice();
},
})
// }, 500)
},
//获取蓝牙设备的 service 服务
getservice:function() {
var that=this;
// setTimeout(() => {
wx.getBLEDeviceServices({
deviceId: that.data.connectedDeviceId,
success: function(res) {
for(var i=0;i<res.services.length;i++)
{
serviceId[i]=res.services[i].uuid;//将蓝牙模块的各种服务ID都保存在全局变量中
}
that.setData({
services:res.services,//所有的服务ID
zhuangtai:JSON.stringify(res.services),
})
that.getBLEDeviceCharacteristics();
},
})
// }, 500)
},
//获取蓝牙设备特征值:获取到的特征值有多个, 最后要用的事能读, 能写, 能监听的那个值的 uuid 作为特征值 id
getBLEDeviceCharacteristics:function() {
var that=this;
//var myuuid=that.data.services[0].uuid;//具有通知读写的属性的服务uuid
wx.getBLEDeviceCharacteristics({
deviceId: that.data.connectedDeviceId,//这里的deviceId需要在上面的getBLEDeviceServices或onBluetoothDeviceFound接口中获取
serviceId: "0000ffe0-0000-1000-8000-00805f9b34fb",
success: function(res) {
for (var i = 0; i <res.characteristics.length; i++) {
characteristicId[i]=res.characteristics[i].uuid;
if(res.characteristics[i].properties.notify){
that.setData({
notifyServicweId:"0000ffe1-0000-1000-8000-00805f9b34fb",
notifyCharacteristicsId:res.characteristics[i].uuid,
})
}
if(res.characteristics[i].properties.write){
that.setData({
writeServicweId:"0000ffe1-0000-1000-8000-00805f9b34fb",
writeCharacteristicsId:res.characteristics[i].uuid,
})
}
if(res.characteristics[i].properties.read){
that.setData({
readServicweId:"0000ffe1-0000-1000-8000-00805f9b34fb",
readCharacteristicsId:res.characteristics[i].uuid,
})
}
}
that.setData({
zhuangtai:JSON.stringify(res.characteristics)
})
that.uselanyachaaracteristic();
},
fail: function(res) {
that.setData({
zhuangtai:"获取特征值失败"
})
} ,
complete:function(){
console.log("complete")
}
})
},
//启用蓝牙特征值变化, // 启用低功耗蓝牙设备特征值变化时的 notify 功能
uselanyachaaracteristic:function(){
var that=this;
wx.notifyBLECharacteristicValueChange({
state: true,//是否启用 notify
deviceId: deviceId,//蓝牙ID
serviceId: "0000ffe0-0000-1000-8000-00805f9b34fb",//蓝牙特征值对应服务的 uuid
characteristicId:"0000ffe1-0000-1000-8000-00805f9b34fb",//蓝牙特征值的 uuid
success:function(res) {
/* 用来监听手机蓝牙设备的数据变化 */
that.setData({
zhuangtai:"启用状态值变化成功"
})
},
fail:function(res) {
that.setData({
zhuangtai:"启用特征值变化失败"
})
}
})
function ab2hex (buffer) {
var hexArr = Array.prototype.map.call(
new Uint8Array(buffer), function (bit) {
return ('00' + bit.toString(16)).slice(-2)
}
)
return hexArr.join('')
}
wx.reLaunch({
url: '../xiaoche/xiaoche'
})
wx.onBLECharacteristicValueChange(function(res){
that.setData({
zhuangtai:'接收的数据是:'+ab2hex(res.value)
})
})
},
// 断开设备连接
close() {
var that=this
if (that.data.connectedDeviceId) {
wx.closeBLEConnection({
deviceId: that.data.connectedDeviceId,
success: function(res) {
that.closeBluetoothAdapter()
},
fail(res) {
}
})
} else {
that.closeBluetoothAdapter()
}
},
// 关闭蓝牙模块
closeBluetoothAdapter:function() {
var that=this
wx.closeBluetoothAdapter({
success: function(res) {
that.setData({
zhuangtai:"断开蓝牙成功"
})
},
fail: function(err) {
}
})
},
getmsg: function (event){
for (var i = 0; i < event.detail.length; i++) {
shujubianhuan[i]=event.detail.value[i]-(-48);
}
this.setData({
sendmsg:event.detail.value-(-48)+'4746'
})
},
sendData:function(event){
var that = this
var hex = that.data.sendmsg //要发送的信息
var typedArr
没有合适的资源?快使用搜索试试~ 我知道了~
微信小程序(通过蓝牙发送接收数据与下位机通信)
共43个文件
png:13个
json:9个
js:8个
需积分: 50 88 下载量 62 浏览量
2021-03-19
20:59:49
上传
评论 11
收藏 173KB ZIP 举报
温馨提示
能够发送接收数据通过蓝牙
资源详情
资源评论
资源推荐
收起资源包目录
蓝牙微信小程序.zip (43个子文件)
app.json 1021B
pages
che_shuoming
che_shuoming.js 857B
che_shuoming.wxss 42B
che_shuoming.wxml 94B
che_shuoming.json 77B
shouye_lanya
shouye.js 9KB
shouye.wxss 932B
shouye.wxml 876B
shouye.json 27B
bo_shuoming
bo_shuoming.json 77B
bo_shuoming.wxss 40B
bo_shuoming.wxml 90B
bo_shuoming.js 855B
xiaoche
xiaoche.wxss 3KB
xiaoche.json 86B
xiaoche.wxml 2KB
xiaoche.js 8KB
boxing
boxing.wxml 287B
boxing.js 2KB
boxing.wxss 255B
boxing.json 86B
shouye_wifi
shouye.js 1KB
shouye.wxss 932B
shouye.wxml 681B
shouye.json 27B
resource
image
disanfang.png 777B
yaogan_di.png 59KB
home_1.png 1KB
yaogan_tou.png 89KB
fenge.png 1KB
pinglunfenge1.png 3KB
分割.png 3KB
zidong.png 1KB
jianjie2.png 2KB
jianjie1.png 3KB
pinglunfenge.png 11KB
shoudong.png 2KB
home_2.png 1KB
sitemap.json 191B
app.wxss 194B
app.js 1KB
project.config.json 2KB
utils
util.js 472B
共 43 条
- 1
@心有猛虎,细嗅蔷薇@
- 粉丝: 3
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- GigaDevice.GD32F4xx-DFP.2.1.0 器件安装包
- 智慧校园数字孪生,三维可视化
- 多种土地使用类型图像分类数据集【已标注,约30,000张数据】
- 3.0(1).docx
- 国产文本编辑器:EverEdit用户手册 1.1.0
- 多边形框架物体检测27-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 基于stm32风速风向测量仪V2.0
- 高效排序算法:快速排序Java与Python实现详解
- Metropolis-Hastings算法和吉布斯采样(Gibbs sampling)算法Python代码实现
- IP网络的仿真及实验.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0