fix:修改蓝牙功能以及增加维修扫码页面添加

This commit is contained in:
5g0Wp7Zy 2025-06-10 15:58:21 +08:00
parent 8987c3a4ae
commit 4dcb8ecf26
2 changed files with 1073 additions and 958 deletions

File diff suppressed because it is too large Load Diff

View File

@ -162,7 +162,7 @@
</template>
<script setup>
import { ref, onMounted } from 'vue';
import { ref, onMounted ,reactive } from 'vue';
import {
showModelMessage
} from '@/utils/tools.js';
@ -170,8 +170,14 @@
import { AES128ECBEncrypt } from '@/utils/aes_util.js';
const bluetoothForm = ref(null);
const bikeCodeScanRef = ref(null);
const serviceId = '0000FFF0-0000-1000-8000-00805F9B34FB';
const characteristicId = '0000FFF6-0000-1000-8000-00805F9B34FB';
// const serviceId = '0000FFF0-0000-1000-8000-00805F9B34FB';
// const characteristicId = '0000FFF6-0000-1000-8000-00805F9B34FB';
// serviceId characteristicId
const ids = reactive({
serviceId:'',
characteristicId:'',//characteristicId
writeCharacteristicId:''//characteristicId
})
const blueTooth = ref({
blueConn:false,
@ -414,7 +420,7 @@
createBLEConnection();
}
});
startNotify();
getBLEDeviceServices()
},
fail(err) {
console.log("createBLEConnection err",err);
@ -430,13 +436,68 @@
}
});
};
const getBLEDeviceServices =() => {
//(service)
uni.getBLEDeviceServices({
deviceId: blueTooth.value.deviceId,
success: function (res) {
console.log('蓝牙服务:', res.services);
for (var i = 0; i < res.services.length; i++) {
var serviceId = res.services[i].uuid;
var subServiceId = serviceId.value.substring(0, 8);
if (subServiceId == '0000fff0' || subServiceId == '0000FFF0' || subServiceId == '6e400001' || subServiceId == '6E400001') {
ids.serviceId = serviceId;
//(characteristic)
uni.getBLEDeviceCharacteristics({
deviceId: blueTooth.value.deviceId,
serviceId: serviceId.value,
success: function (res) {
console.log('获取到' + res.characteristics.length + '个特征值');
console.log('获取特征值:', res.characteristics);
for (var i = 0; i < res.characteristics.length; i++) {
var characteristicId = res.characteristics[i].uuid;
var subCharacteristic = characteristicId.substring(0, 8);
//
if (subCharacteristic == '0000fff6' || subCharacteristic == '0000FFF6' || subCharacteristic == '6e400003' || subCharacteristic == '6E400003') {
ids.characteristicId = characteristicId;
}
//
else if (subCharacteristic == '6e400002' || subCharacteristic == '6E400002') {
ids.writeCharacteristicId = characteristicId;
}
}
startNotify();
},
fail: function () {
console.log('获取特征值失败');
uni.showToast({
title: '连接失败,请重启蓝牙',
duration: 3000,
mask: true,
icon: 'none',
})
}
})
}else{
console.log('不符合的subServiceId =' + subServiceId);
}
}
},
fail: function (res) {
console.log('获取服务失败');
},
})
}
const startNotify = () => {
uni.notifyBLECharacteristicValueChange({
state:true,
deviceId: blueTooth.value.deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
serviceId: ids.serviceId,
characteristicId: ids.characteristicId,
success(res) {
console.log("notifyBLECharacteristicValueChange success",res);
//stopDiscovery();
@ -511,9 +572,9 @@
const writeBLECharacteristicValueWithBuff = (buffer) => {
uni.writeBLECharacteristicValue({
deviceId: blueTooth.value.deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
value: buffer,
serviceId: ids.serviceId,
characteristicId: ids.writeCharacteristicId,
value: buffer,
success: function (res) {
console.log('writeBLECharacteristicValue success', res.errMsg)
},