修复6155蓝牙数据问题
This commit is contained in:
@ -446,6 +446,35 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
calcTotalPackets(frames) {
|
||||||
|
if (!Array.isArray(frames) || frames.length === 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return frames.reduce((frameSum, frame) => {
|
||||||
|
if (!Array.isArray(frame)) {
|
||||||
|
return frameSum;
|
||||||
|
}
|
||||||
|
const packSum = frame.reduce((packAcc, pack) => {
|
||||||
|
if (!Array.isArray(pack)) {
|
||||||
|
return packAcc;
|
||||||
|
}
|
||||||
|
return packAcc + pack.length;
|
||||||
|
}, 0);
|
||||||
|
return frameSum + packSum;
|
||||||
|
}, 0);
|
||||||
|
},
|
||||||
|
toByteValue(value) {
|
||||||
|
if (typeof value === 'number') {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
if (value.startsWith('0x') || value.startsWith('0X')) {
|
||||||
|
return parseInt(value, 16);
|
||||||
|
}
|
||||||
|
return parseInt(`0x${value}`, 16);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
deviceRecovry(res) {
|
deviceRecovry(res) {
|
||||||
if (this.Status.pageHide) {
|
if (this.Status.pageHide) {
|
||||||
return;
|
return;
|
||||||
@ -921,37 +950,42 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//视频切片
|
//视频切片
|
||||||
let videoCutPacket = (array) => {
|
let videoCutPacket = (data) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
let imgSize = 25600;
|
const imgSize = 25600;
|
||||||
let packetSize = 3200;
|
const packetSize = 3200;
|
||||||
let tdSize = 500;
|
const chunkSize = 500;
|
||||||
|
const maxPacketCount = 30;
|
||||||
|
|
||||||
|
let source = Array.isArray(data) ? data.slice() : [];
|
||||||
let results = [];
|
let results = [];
|
||||||
for (let i = 0; i < 30; i++) { //先切出30张,每张25600字节
|
for (let i = 0; i < maxPacketCount && source.length >= imgSize; i++) {
|
||||||
let packet = array.slice(0, imgSize);
|
let frameBytes = source.splice(0, imgSize);
|
||||||
array.splice(0, imgSize)
|
let framePackets = [];
|
||||||
|
|
||||||
let secondLevel = [];
|
for (let j = 0; j < 8 && frameBytes.length > 0; j++) {
|
||||||
for (let j = 0; j < 8; j++) { //每张切8大包,每包3200字节
|
let majorPacket = frameBytes.splice(0, packetSize);
|
||||||
let childPacket = packet.slice(0, packetSize);
|
let childPackets = [];
|
||||||
|
|
||||||
packet.splice(0, packetSize);
|
while (majorPacket.length > 0) {
|
||||||
|
let chunk = majorPacket.splice(0, chunkSize);
|
||||||
let thirdLevel = [];
|
if (chunk.length) {
|
||||||
for (let k = 0; k < 7; k++) { //每1个大包切出7个小包,前6包500字节,第7包200字节,共计56小包
|
childPackets.push(chunk);
|
||||||
|
}
|
||||||
let arr = childPacket.slice(0, tdSize);
|
}
|
||||||
|
if (childPackets.length) {
|
||||||
childPacket.splice(0, tdSize)
|
framePackets.push(childPackets);
|
||||||
thirdLevel.push(arr);
|
|
||||||
}
|
}
|
||||||
secondLevel.push(thirdLevel);
|
|
||||||
}
|
}
|
||||||
results.push(secondLevel);
|
|
||||||
|
if (framePackets.length) {
|
||||||
|
results.push(framePackets);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
updateLoading(these,{text:'切片完成,正在发送'});
|
updateLoading(these, {
|
||||||
|
text: '切片完成,正在发送'
|
||||||
|
});
|
||||||
resolve(results);
|
resolve(results);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
updateLoading(these, {
|
updateLoading(these, {
|
||||||
@ -960,31 +994,25 @@
|
|||||||
reject(error);
|
reject(error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//发送视频到设备
|
//发送视频到设备
|
||||||
let shotVideoClick = (array, type, ReSendNo) => {
|
let shotVideoClick = (array, type, ReSendNo) => {
|
||||||
var sendImagePackets = () => {
|
var sendImagePackets = () => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.currentPacket = 0;
|
this.currentPacket = 0;
|
||||||
|
let totalPackets = these.calcTotalPackets(array);
|
||||||
// 总数据包数
|
|
||||||
var totalPackets = 1680;
|
|
||||||
this.totalPackets = totalPackets;
|
this.totalPackets = totalPackets;
|
||||||
|
if (totalPackets === 0) {
|
||||||
|
reject('没有可发送的数据');
|
||||||
|
return;
|
||||||
|
}
|
||||||
let currentPacket = 1;
|
let currentPacket = 1;
|
||||||
|
|
||||||
let imgIndex = 0;
|
let imgIndex = 0;
|
||||||
let imgPackIndex = 0;
|
let imgPackIndex = 0;
|
||||||
let childPacketIndex = 0;
|
let childPacketIndex = 0;
|
||||||
if (ReSendNo) {
|
if (ReSendNo) {
|
||||||
|
|
||||||
this.currentPacket = ReSendNo - 1;
|
this.currentPacket = ReSendNo - 1;
|
||||||
currentPacket = ReSendNo;
|
currentPacket = ReSendNo;
|
||||||
totalPackets = ReSendNo;
|
totalPackets = ReSendNo;
|
||||||
@ -992,96 +1020,88 @@
|
|||||||
}
|
}
|
||||||
// 发送单个数据包
|
// 发送单个数据包
|
||||||
const sendNextPacket = () => {
|
const sendNextPacket = () => {
|
||||||
// console.log("111111")
|
if (imgIndex >= array.length) {
|
||||||
if (currentPacket > totalPackets) {
|
|
||||||
resolve();
|
resolve();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// console.log("111111")
|
|
||||||
// 计算当前包的数据
|
if (!array[imgIndex]) {
|
||||||
let packetSize = 500;
|
console.error("没有找到对应的帧数据", imgIndex);
|
||||||
|
reject(`帧数据缺失,索引 ${imgIndex}`);
|
||||||
if ((currentPacket - 1) % 56 === 0) {
|
return;
|
||||||
|
|
||||||
packetSize = 508;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (childPacketIndex === 6) {
|
let childPacketsGroup = array[imgIndex][imgPackIndex];
|
||||||
packetSize = 200;
|
if (!childPacketsGroup || !childPacketsGroup.length) {
|
||||||
|
console.error("帧数据结构异常", imgIndex, imgPackIndex);
|
||||||
|
reject(`帧数据结构异常,帧 ${imgIndex}`);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((currentPacket - 1) % 56 === 55) {
|
let packetData = childPacketsGroup[childPacketIndex];
|
||||||
packetSize = 201;
|
let packetSize = packetData.length;
|
||||||
|
|
||||||
|
const isFirstChild = childPacketIndex === 0;
|
||||||
|
const isLastChild = childPacketIndex === (childPacketsGroup.length - 1);
|
||||||
|
|
||||||
|
if (isFirstChild) {
|
||||||
|
packetSize = packetData.length + 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("imgIndex=" + imgIndex + ",imgPackIndex=" +
|
if (isLastChild) {
|
||||||
imgPackIndex +
|
packetSize = packetData.length + (isFirstChild ? 9 : 1);
|
||||||
",childPacketIndex=" + childPacketIndex)
|
}
|
||||||
|
|
||||||
let packetData = array[imgIndex][imgPackIndex][childPacketIndex];
|
const buffer = new ArrayBuffer(packetSize);
|
||||||
|
const dataView = new DataView(buffer);
|
||||||
let buffer = new ArrayBuffer(packetSize);
|
|
||||||
let dataView = new DataView(buffer);
|
|
||||||
|
|
||||||
let sortNo = currentPacket.toString(16).padStart(4, '0');
|
|
||||||
// console.log("11111");
|
|
||||||
let start = 0;
|
let start = 0;
|
||||||
if ((currentPacket - 1) % 56 === 0) {
|
if (isFirstChild) {
|
||||||
// 填充头部
|
// 填充头部
|
||||||
dataView.setUint8(0, 0xFA); // 帧头
|
dataView.setUint8(0, 0xFA); // 帧头
|
||||||
dataView.setUint8(1, 0x09); // 帧类型:开机画面
|
dataView.setUint8(1, 0x09); // 帧类型:开机画面
|
||||||
dataView.setUint8(2, 0x0C);
|
dataView.setUint8(2, 0x0C);
|
||||||
dataView.setUint8(3, 0x84);
|
dataView.setUint8(3, 0x84);
|
||||||
|
|
||||||
|
|
||||||
dataView.setUint8(4, 0xFD);
|
dataView.setUint8(4, 0xFD);
|
||||||
dataView.setUint8(5, 0x09);
|
dataView.setUint8(5, 0x09);
|
||||||
dataView.setUint8(6, imgIndex);
|
dataView.setUint8(6, imgIndex);
|
||||||
dataView.setUint8(7, imgPackIndex + 1);
|
dataView.setUint8(7, imgPackIndex + 1);
|
||||||
start = 8;
|
start = 8;
|
||||||
}
|
}
|
||||||
console.log("222222");
|
|
||||||
for (let i = 0; i < packetData.length; i++) {
|
for (let i = 0; i < packetData.length; i++) {
|
||||||
dataView.setUint8(start + i, '0x' + packetData[i]);
|
dataView.setUint8(start + i, these.toByteValue(packetData[i]));
|
||||||
}
|
}
|
||||||
// console.log("333333333");
|
|
||||||
if ((currentPacket - 1) % 56 === 55) {
|
if (isLastChild) {
|
||||||
dataView.setUint8(200, 0xFF);
|
dataView.setUint8(packetSize - 1, 0xFF);
|
||||||
}
|
}
|
||||||
// console.log("444444");
|
|
||||||
let inteval = parseInt(this.inteval ? this.inteval : 80);
|
let inteval = parseInt(this.inteval ? this.inteval : 80);
|
||||||
|
|
||||||
ble.sendData(f.deviceId, buffer, f.writeServiceId, f
|
ble.sendData(f.deviceId, buffer, f.writeServiceId, f.wirteCharactId).then(() => {
|
||||||
.wirteCharactId, ).then(() => {
|
|
||||||
if (ReSendNo) {
|
if (ReSendNo) {
|
||||||
|
|
||||||
resolve();
|
resolve();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 更新进度
|
// 更新进度
|
||||||
this.currentPacket = currentPacket;
|
this.currentPacket = currentPacket;
|
||||||
|
|
||||||
updateLoading(these,{
|
updateLoading(these,{
|
||||||
text:'正在发送:'+currentPacket+"/"+totalPackets
|
text:'正在发送:'+currentPacket+"/"+totalPackets
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
childPacketIndex++;
|
childPacketIndex++;
|
||||||
if (childPacketIndex == 7) {
|
if (childPacketIndex >= childPacketsGroup.length) {
|
||||||
imgPackIndex++;
|
|
||||||
if (imgPackIndex == 8) {
|
|
||||||
imgIndex++;
|
|
||||||
imgPackIndex = 0;
|
|
||||||
}
|
|
||||||
childPacketIndex = 0;
|
childPacketIndex = 0;
|
||||||
|
imgPackIndex++;
|
||||||
|
if (imgPackIndex >= array[imgIndex].length) {
|
||||||
|
imgPackIndex = 0;
|
||||||
|
imgIndex++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 发送下一个包(添加延迟避免蓝牙缓冲区溢出)
|
// 发送下一个包(添加延迟避免蓝牙缓冲区溢出)
|
||||||
currentPacket++;
|
currentPacket++;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setTimeout(sendNextPacket, inteval);
|
setTimeout(sendNextPacket, inteval);
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
if (err.code == 10007) {
|
if (err.code == 10007) {
|
||||||
@ -1090,25 +1110,16 @@
|
|||||||
setTimeout(sendNextPacket, 100);
|
setTimeout(sendNextPacket, 100);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.error(err.errMsg + ",发送失败了" + currentPacket);
|
console.error(err.errMsg + ",发送失败了" + currentPacket);
|
||||||
updateLoading(these,{text:"发送失败,"+err.errMsg});
|
updateLoading(these,{text:"发送失败,"+err.errMsg});
|
||||||
reject(err);
|
reject(err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// console.log("111111")
|
|
||||||
|
|
||||||
sendNextPacket();
|
sendNextPacket();
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return sendImagePackets();
|
return sendImagePackets();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uni.chooseVideo({
|
uni.chooseVideo({
|
||||||
@ -1143,7 +1154,25 @@
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
uplploadVideo(path).then(result => {
|
uplploadVideo(path).then(result => {
|
||||||
|
|
||||||
videoCutPacket(result.data).then(array => {
|
let data = result.data;
|
||||||
|
let convertedData = [];
|
||||||
|
for (let i = 0; i < data.length; i += 2) {
|
||||||
|
if (i + 1 < data.length) {
|
||||||
|
const byte1 = these.toByteValue(data[i]);
|
||||||
|
const byte2 = these.toByteValue(data[i + 1]);
|
||||||
|
const rgb565 = (byte1 << 8) | byte2;
|
||||||
|
const red = (rgb565 & 0xF800) >> 11;
|
||||||
|
const green = (rgb565 & 0x07E0) >> 5;
|
||||||
|
const blue = (rgb565 & 0x001F);
|
||||||
|
const bgr565 = (blue << 11) | (green << 5) | red;
|
||||||
|
convertedData.push((bgr565 >> 8) & 0xFF);
|
||||||
|
convertedData.push(bgr565 & 0xFF);
|
||||||
|
} else {
|
||||||
|
convertedData.push(these.toByteValue(data[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
videoCutPacket(convertedData).then(array => {
|
||||||
|
|
||||||
let start = new Date();
|
let start = new Date();
|
||||||
console.log("开始发送");
|
console.log("开始发送");
|
||||||
@ -1535,8 +1564,8 @@
|
|||||||
});
|
});
|
||||||
console.log("result=", result);
|
console.log("result=", result);
|
||||||
|
|
||||||
// var str1="FA 06 01 00 FF FF F7 9F EF 6F EC F7 EA 09 CF FF AF FB EF EB EF EB EC 6B EF EB EC 6B EF EB EF FB EE 63 FF FF FF FF F7 9F EF 6F EC F7 EA 09 CF FF AF FB EF EB EF EB EC 6B EF EB EC 6B EF EB EF FB EE 63 FF FF FF FF F7 FF 81 03 ED BB DD B7 CB CF F3 C7 CD 39 BE FF FE FF C0 03 FE FB FD FB F3 F7 8F 87 FF FF FF FF FE FF FE FF FE FF C0 03 FF FB FD FB FD FB FD FB FD FB FB FB FB FF F7 F7 EF F7 9F 8F FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
|
// var str1="FA 06 01 00 FF FF F7 9F EF 6F EC F7 EA 09 CF FF AF FB EF EB EF EB EC 6B EF EB EC 6B EF EB EF FB EE 63 FF FF FF FF F7 9F EF 6F EC F7 EA 09 CF FF AF FB EF EB EF EB EC 6B EF EB EC 6B EF EB EF FB EE 63 FF FF FF FF F7 FF 81 03 ED BB DD B7 CB CF F3 C7 CD 39 BE FF FE FF C0 03 FE FB FD FB F3 F7 8F 87 FF FF FF FF FE FF FE FF FE FF C0 03 FF FB FD FB FD FB FD FB FD FB FB FB FB FF F7 F7 EF F7 9F 8F FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
|
||||||
// var str2="FA 07 01 00 FF FF EE DD EE DF EF 5B AB DF AA 03 AE FF AE FF EE 03 EE FF EE FF EE 03 EE FF EE FF EE E3 FF FF FF FF EE DD EE DF EF 5B AB DF AA 03 AE FF AE FF EE 03 EE FF EE FF EE 03 EE FF EE FF EE E3 FF FF FF FF EF 77 EF 73 EF 7F 80 01 EF 7F EF 7F EF 03 E7 3B 8E BB EE D7 EE EF ED E7 ED 9B 8B 7D FF FF FF FF FF FF F7 EF F7 F7 EF F7 DF FB FF FF FF FF FE FF 80 01 FE 7F FD BF FB DF F7 E7 9F F9 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
|
// var str2="FA 07 01 00 FF FF EE DD EE DF EF 5B AB DF AA 03 AE FF AE FF EE 03 EE FF EE FF EE 03 EE FF EE FF EE E3 FF FF FF FF EE DD EE DF EF 5B AB DF AA 03 AE FF AE FF EE 03 EE FF EE FF EE 03 EE FF EE FF EE E3 FF FF FF FF EF 77 EF 73 EF 7F 80 01 EF 7F EF 7F EF 03 E7 3B 8E BB EE D7 EE EF ED E7 ED 9B 8B 7D FF FF FF FF FF FF F7 EF F7 F7 EF F7 DF FB FF FF FF FF FE FF 80 01 FE 7F FD BF FB DF F7 E7 9F F9 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
|
||||||
// var str3="FA 08 01 00 FF FF EF DF EC 01 EF FF AB FF AA 03 AA FB AE FB EE 03 EF DF EF DF EE DB ED DF ED DD EF 1F FF FF FF FF EF BF EF 87 81 77 EE F7 EC 03 81 7F EF 7F EF 7F EF 03 81 7F EF 7F EF 7D EF 7D EF 03 FF FF FF FF F9 F1 CF BF DF FF DF FF C1 FF DD 81 DD F7 DD F7 C1 F7 DF 77 FF 77 BF 77 BF 77 FF F7 FF FF FF FF FD FF FD FF FB FF FB FF F0 07 E7 F7 EF F7 D8 07 BF F7 FF F7 F8 07 FF F7 FF F7 FF C7 FF FF FF FF FF FF FF FF FF FF FE FF FE 7F FE 7F FE FF FD BF FD FF FB DF F7 EF EF F7 DF FB BF FD FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
|
// var str3="FA 08 01 00 FF FF EF DF EC 01 EF FF AB FF AA 03 AA FB AE FB EE 03 EF DF EF DF EE DB ED DF ED DD EF 1F FF FF FF FF EF BF EF 87 81 77 EE F7 EC 03 81 7F EF 7F EF 7F EF 03 81 7F EF 7F EF 7D EF 7D EF 03 FF FF FF FF F9 F1 CF BF DF FF DF FF C1 FF DD 81 DD F7 DD F7 C1 F7 DF 77 FF 77 BF 77 BF 77 FF F7 FF FF FF FF FD FF FD FF FB FF FB FF F0 07 E7 F7 EF F7 D8 07 BF F7 FF F7 F8 07 FF F7 FF F7 FF C7 FF FF FF FF FF FF FF FF FF FF FE FF FE 7F FE 7F FE FF FD BF FD FF FB DF F7 EF EF F7 DF FB BF FD FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
|
||||||
|
|
||||||
// let arr1=('0x'+(str1.split(' ').join(",0x"))).split(',');
|
// let arr1=('0x'+(str1.split(' ').join(",0x"))).split(',');
|
||||||
|
|||||||
Reference in New Issue
Block a user