// 写入数据
const sendmmm = async (requestStr) => {
isSending.value = true
const buffer = string2buffer(requestStr)
let pos = 0
let bytes = buffer.byteLength
uni.setStorageSync(
'blueTooth',
JSON.stringify({
deviceId: deviceId.value,
serviceId: serviceId.value,
characteristicId: writeId.value || characteristicId.value
})
)
const sendSegment = async (segmentSize = 20, delay = 50) => {
while (bytes > 0) {
const tmp = buffer.slice(pos, pos + segmentSize)
await new Promise((resolve, reject) => {
uni.writeBLECharacteristicValue({
deviceId: deviceId.value,
serviceId: serviceId.value,
writeType: 'write',
characteristicId: writeId.value || characteristicId.value,
value: tmp,
success:resolve,
fail: reject
})
})
pos += segmentSize
bytes -= segmentSize
if (bytes > 0) await new Promise(resolve => setTimeout(resolve, delay))
}
}
try {
// setTimeout(()=>{
await sendSegment()
console.log('✅ 数据发送完成')
// },2000)
} catch (err) {
console.error('❌ 数据发送失败', err)
}
isSending.value = false
}
0 个回复