当前位置: 首页 > news >正文

导航网站模板网站设计版式

导航网站模板,网站设计版式,文小库公文写作网站,十款免费软件app下载蓝牙连接并通信方法封装大致步骤。 初始化蓝牙并搜索#xff1b;获取并启用service服务#xff1b;数据读取和监听设备返回数据 需要使用uniapp官方提供api#xff1a; // 关闭蓝牙 uni.closeBluetoothAdapter({}) // 打开蓝牙 uni.openBluetoothAdapter({}) // 搜索附近…蓝牙连接并通信方法封装大致步骤。 初始化蓝牙并搜索获取并启用service服务数据读取和监听设备返回数据 需要使用uniapp官方提供api // 关闭蓝牙 uni.closeBluetoothAdapter({}) // 打开蓝牙 uni.openBluetoothAdapter({}) // 搜索附近的蓝牙 uni.startBluetoothDevicesDiscovery({}) // 停止搜索 uni.stopBluetoothDevicesDiscovery({}) // 连接低功耗BLE蓝牙 uni.createBLEConnection({}) // 获取蓝牙设备所有服务(service) uni.getBLEDeviceServices({}) // 获取蓝牙特征值 uni.getBLEDeviceCharacteristics({}) // 启用低功耗蓝牙设备特征值变化时的 notify 功能订阅特征值 uni.notifyBLECharacteristicValueChange({}) // 监听低功耗蓝牙设备的特征值变化事件 uni.onBLECharacteristicValueChange({}) // 读取低功耗蓝牙设备的特征值的二进制数据值 uni.readBLECharacteristicValue({})1、开启蓝牙适配器初始化蓝牙模块获取手机蓝牙是否打开 const getBluetoothState () {return new Promise((resolve, reject) {uni.openBluetoothAdapter({mode: central, // 主机模式success: (r) {console.log(蓝牙初始化成功);// 获取蓝牙的匹配状态uni.getBluetoothAdapterState({success: function(row) {console.log(蓝牙状态, row.available);if (row.available) {// 蓝牙连接成功开启蓝牙设备搜索resolve();} else {// 请开启蓝牙uni.showToast({title: 请开启蓝牙,icon: none,duration: 2000});reject();}},fail: function(err) {// 请开启蓝牙uni.showToast({title: 请开启蓝牙,icon: none,duration: 2000});reject();}})},fail: () {// 请开启蓝牙uni.showToast({title: 请开启蓝牙,icon: none,duration: 2000});reject();}});}); }2、开启蓝牙设备搜索 const discoveryBluetooth () {return new Promise((resolve) {uni.startBluetoothDevicesDiscovery({success(res) {uni.showLoading({title: 正在搜索设备,icon:none,duration: 2000});console.log(搜索蓝牙外围设备完成, res)setTimeout(() {// 监听寻找到的蓝牙设备resolve();}, 2000);}});}); }3、获取搜索到的设备信息 const getBluetoothDevices () {return new Promise((resolve, reject) {uni.getBluetoothDevices({success(res) {// 过滤掉name为空或者未知设备的设备let devices res.devices.filter(function(obj) {return obj.name ! obj.name ! 未知设备});devices devices.forEach(item {// 获取指定连接deviceIdif(item.name item.name.substring(0, 5) aaaa-){// aaaa-*********蓝牙设备型号根据需求选择设备型号// item.deviceId;}});},fail: function() {console.log(搜索蓝牙设备失败);reject();},complete: function() {console.log(蓝牙搜索完成);resolve();}});}); }4、关闭蓝牙搜索 const stopDiscoveryBluetooth () {uni.stopBluetoothDevicesDiscovery({success(r) {console.log(停止搜索蓝牙设备, r);}}); };5、连接蓝牙 const connectBluetooth () {return new Promise((resolve, reject) {uni.createBLEConnection({deviceId: deviceId, // 设备idsuccess() {// 蓝牙连接成功后关闭蓝牙搜索并获取服务idstopDiscoveryBluetooth();resolve();// 获取服务idgetServiceId();},fail() {console.log(蓝牙连接失败);reject();}});}); };6、获取服务id const getServiceId () {uni.getBLEDeviceServices({deviceId: deviceId,success(res) {console.log(获取服务Id, res)// serviceId固定获取蓝牙设备某个服务中的所有特征值【读写属性】let model res.services[0];serviceId model.uuid;// 调用蓝牙监听和写入功能getCharacteId();},fail(err){console.log(获取服务失败, err);}}) };7、获取蓝牙低功耗设备某个服务中所有特征 const getCharacteId () {uni.getBLEDeviceCharacteristics({deviceId: deviceId, // 蓝牙设备idserviceId: serviceId, // 蓝牙服务UUIDsuccess(res) {console.log(数据监听, res);res.characteristics.forEach(item {// 003if (item.properties.notify true) {// 监听notify item.uuid;}// 002if (item.properties.write true) {// 写入let writeId item.uuid;}});},fail(err) {console.log(数据监听失败, err)}}) };8、监听设备返回数据启用低功耗蓝牙设备特征值变化时的notify功能 const startNotice () {uni.notifyBLECharacteristicValueChange({characteristicId: notify,deviceId: deviceId,serviceId: serviceId,state: true,success(res) {// 监听低功耗蓝牙设备的特征值变化uni.onBLECharacteristicValueChange(result {console.log(监听低功耗蓝牙设备的特征值变化, result);if (result.value) {console.log(设备返回数据, result.value)}})}}); };9、向蓝牙设备发送数据 const writeData (buffer) {return new Promise((resolve, reject) {uni.writeBLECharacteristicValue({characteristicId: uni.getStorageSync(writeId),deviceId: deviceId,serviceId: serviceId,value: buffer,success(res) {console.log(writeBLECharacteristicValue success, res);resolve();},fail(err) {console.log(报错了, err);reject();}});}); };封装完整方法 import { TextDecoder } from text-encoding-utf-8; let bluetoothOpen false; // 手机蓝牙是否打开 let bluetoothConnect false; // 设备和蓝牙是否连接 let isHaveDevice false; // 是否查找到设备 let deviceId null; // 设备id let serviceId null; // 服务id let notify null; // 监听uuid let writeId null; // 写入uuid /*** 获取手机蓝牙是否打开*/ const getBluetoothState () {// 主机模式return new Promise((resolve, reject) {uni.openBluetoothAdapter({mode: central,success: (r) {console.log(蓝牙初始化成功);// 获取蓝牙的匹配状态uni.getBluetoothAdapterState({success: function(row) {console.log(蓝牙状态, row.available);if (row.available) {bluetoothOpen true;resolve();} else {// 请开启蓝牙bluetoothOpen false;bluetoothConnect false;reject();}},fail: function(err) {// 请开启蓝牙bluetoothOpen false;bluetoothConnect false;reject();}})},fail: () {// 请开启蓝牙bluetoothOpen false;bluetoothConnect false;reject();}});}); }; /*** 开始搜索蓝牙设备*/ const discoveryBluetooth () {return new Promise((resolve) {uni.startBluetoothDevicesDiscovery({success(res) {console.log(搜索蓝牙外围设备完成, res)setTimeout(() {resolve();}, 2000);}});}) }; // 关闭蓝牙搜索 const stopDiscoveryBluetooth () {uni.stopBluetoothDevicesDiscovery({success(r) {console.log(停止搜索蓝牙设备, r);}}); }; /*** 获取搜索到的设备信息*/ const getBluetoothDevices () {return new Promise((resolve, reject) {uni.getBluetoothDevices({success(res) {bluetoothConnect false;// 过滤掉name为空或者未知设备的设备let devices res.devices.filter(function(obj) {return obj.name ! obj.name ! 未知设备});devices devices.forEach(item {if(item.name item.name.substring(0, 5) aaaa-){deviceId item.deviceId;}});},fail: function() {console.log(搜索蓝牙设备失败);bluetoothConnect false;reject();},complete: function() {console.log(蓝牙搜索完成);// 是否具有当前设备if (deviceId) {isHaveDevice true;} else {isHaveDevice false;}resolve(isHaveDevice);}});}); } /*** 连接蓝牙* deviceId 蓝牙设备id*/ const connectBluetooth () {return new Promise((resolve, reject) {uni.createBLEConnection({deviceId: deviceId, // 设备idsuccess() {bluetoothConnect true;// 蓝牙连接成功后关闭蓝牙搜索stopDiscoveryBluetooth();resolve();// 获取服务idgetServiceId();},fail() {bluetoothConnect false;console.log(蓝牙连接失败);reject();}});}); }; // 获取服务id const getServiceId () {uni.getBLEDeviceServices({deviceId: deviceId,success(res) {console.log(获取服务Id, res)let model res.services[0];serviceId model.uuid;// 调用蓝牙监听和写入功能getCharacteId();}}) }; // 获取蓝牙低功耗设备某个服务中所有特征 const getCharacteId () {uni.getBLEDeviceCharacteristics({deviceId: deviceId, // 蓝牙设备idserviceId: serviceId, // 蓝牙服务UUIDsuccess(res) {console.log(数据监听, res);res.characteristics.forEach(item {// 003if (item.properties.notify true) {// 监听notify item.uuid;startNotice();}// 002if (item.properties.write true) {// 写入let writeId item.uuid;uni.setStorageSync(writeId, item.uuid);}});},fail(err) {console.log(数据监听失败, err)}}) }; // 启用低功耗蓝牙设备特征值变化时的notify功能 const startNotice () {uni.notifyBLECharacteristicValueChange({characteristicId: notify,deviceId: deviceId,serviceId: serviceId,state: true,success(res) {// 监听低功耗蓝牙设备的特征值变化uni.onBLECharacteristicValueChange(result {console.log(监听低功耗蓝牙设备的特征值变化, result);if (result.value) {let decoder new TextDecoder(utf-8);let data decoder.decode(result.value);console.log(帽子返回数据, data)}})}}); }; // 蓝牙发送数据 const writeData (buffer) {return new Promise((resolve, reject) {uni.writeBLECharacteristicValue({characteristicId: uni.getStorageSync(writeId),deviceId: deviceId,serviceId: serviceId,value: buffer,success(res) {console.log(writeBLECharacteristicValue success, res);resolve();},fail(err) {console.log(报错了, err);reject();}});}); }; export default {getBluetoothState,discoveryBluetooth,stopDiscoveryBluetooth,getBluetoothDevices,connectBluetooth,getServiceId,getCharacteId,startNotice,writeData };使用案例 templateview classdevice_container/view /templatescriptimport bluetooth from ../bluetooth.js;export default {data() {return {bluetoothStatus: false, // 蓝牙连接状态}},methods: {// 获取蓝牙和设备是否已连接initBluetooth() {let _this this;// 初始化蓝牙bluetooth.getBluetoothState().then(() {// 搜索外围蓝牙设备bluetooth.discoveryBluetooth().then(() {this.discoveryLoading true;// 获取蓝牙设备bluetooth.getBluetoothDevices().then((isHaveDevice) {if (isHaveDevice) {// 搜索到指定设备,连接蓝牙bluetooth.connectBluetooth().then(() {_this.bluetoothStatus true;}, () {_this.bluetoothStatus false;});} else {// 未搜到设备_this.bluetoothStatus false;}}, () {// 蓝牙搜索失败_this.bluetoothStatus false;});});}, () {// 未开启蓝牙_this.bluetoothStatus false;});},// 向设备发送数据writeBlueData() {let obj {cmd: 3,freq: 430125,speakable: 1};let objStr JSON.stringify(obj);let buffer new ArrayBuffer(objStr.length); // 每个字符占用2个字节let bufView new Uint8Array(buffer);for (let i 0; i objStr.length; i) {bufView[i] objStr.charCodeAt(i);}bluetooth.writeData(buffer);}},onShow() {// 获取蓝牙和设备连接状态this.initBluetooth();},} /scriptstyle langscsspage {height: 100%;} /style
http://www.dnsts.com.cn/news/88285.html

相关文章:

  • 长裕建设有限公司网站百度快速优化软件排名
  • 大安移动网站建设微信电商小程序开发公司
  • les做ml网站设计网页时有哪些配色方法
  • 网站用ai做还是ps网站编辑专题怎么做
  • 网站建设公司主营业务互动营销经典案例
  • 高校资源网网站建设方案在线制作网站
  • 网站页面太多是否做静态广州黄埔区开发区建设局网站
  • 焦作商城网站建设wordpress怎样设置会员免费
  • 东莞桥头网站建设程序员自己建站赚钱
  • 东莞做网站哪个公司好互联网运营推广
  • 自己做的网站如何联网阿里云 网站
  • 网站如何改造wapwordpress去掉图片width
  • 网站建设怎么做平台开发wordpress教学插件
  • 美橙表业手表网站windows 安装wordpress
  • 做肮脏交义的网站做建网站的工作一年赚几百万
  • 怎么在濮阳网站做宣传wordpress人体时钟
  • 免费建立网站的网站都有啥专业商铺装修设计
  • 微网站建设正规公司六安服装网站建设地址
  • 怎样在手机上建网站网站静态首页模板
  • 安徽网站推广营销设计asp公司企业网站模板源代码
  • 做网站广告收入中国建设质量安全协会网站
  • 微餐饮网站建设平台垦利网站设计
  • 最新网站信息网络维护费计入什么科目
  • 做网站怎么切图制作小网站
  • 徐汇做网站公司六盘水网站建设求职简历
  • 常宁网站建设常宁网站建设世界交互设计最好的前10大学
  • 如何开发网站建设业务网站建设英文怎么说
  • 做网站需要公司资质吗济南网站建设_美叶网络
  • asp.net做网站 推荐书籍wordpress 后台地址
  • 怎么做服务器网站pageadmin做的网站的域名必须要备案吗