当前位置:   article > 正文

uniapp 蓝牙分包发送数据

蓝牙分包发送

【uniapp蓝牙分包发送】uniapp蓝牙分包发送,最大20字节_uni-app_爱音乐的程序猿-华为云开发者联盟

  1. // 连接蓝牙设备并发送数据
  2. function sendDataOverBLE(deviceId, data) {
  3. // 首先连接蓝牙设备
  4. uni.createBLEConnection({
  5. deviceId: deviceId,
  6. success: function(res) {
  7. // 连接成功后,获取服务
  8. uni.getBLEDeviceServices({
  9. deviceId: deviceId,
  10. success: function(res) {
  11. // 假设我们使用第一个服务
  12. var serviceId = res.services[0].uuid;
  13. uni.getBLEDeviceCharacteristics({
  14. deviceId: deviceId,
  15. serviceId: serviceId,
  16. success: function(res) {
  17. // 假设我们写入特性的uuid是已知的
  18. var characteristicId = res.characteristics[0].uuid;
  19. // 分包发送数据
  20. var chunkSize = 20; // 假设每个包的大小是20字节
  21. var chunks = splitArrayIntoChunks(data, chunkSize);
  22. chunks.forEach((chunk, index) => {
  23. uni.writeBLECharacteristicValue({
  24. deviceId: deviceId,
  25. serviceId: serviceId,
  26. characteristicId: characteristicId,
  27. value: chunk,
  28. success: function(res) {
  29. if (index === chunks.length - 1) {
  30. // 所有分包发送成功后的回调
  31. console.log('所有数据分包发送成功');
  32. }
  33. },
  34. fail: function(err) {
  35. console.error('分包发送失败', err);
  36. }
  37. });
  38. });
  39. },
  40. fail: function(err) {
  41. console.error('获取特性失败', err);
  42. }
  43. });
  44. },
  45. fail: function(err) {
  46. console.error('获取服务失败', err);
  47. }
  48. });
  49. },
  50. fail: function(err) {
  51. console.error('连接蓝牙设备失败', err);
  52. }
  53. });
  54. }
  55. // 分割数组为指定大小的多个分包
  56. function splitArrayIntoChunks(array, chunkSize) {
  57. var chunks = [];
  58. for (var i = 0; i < array.length; i += chunkSize) {
  59. chunks.push(array.slice(i, i + chunkSize));
  60. }
  61. return chunks;
  62. }
  63. // 使用示例
  64. var deviceId = 'your-device-id'; // 蓝牙设备ID
  65. var data = new Uint8Array([/* 你的数据 */]); // 需要发送的数据
  66. sendDataOverBLE(deviceId, data);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/956058
推荐阅读
相关标签
  

闽ICP备14008679号