98 lines
2.2 KiB
JavaScript

import BLESDK from './ble'
import TASK from './taskQueue'
import { aes128Encrypt } from '@/utils/index'
export function strInsert(str, length = 2) {
if (!str || !str.length) return ''
var reg = new RegExp('\\w{1,' + length + '}', 'g')
let ma = str.match(reg)
return ma.map((item) => `0x${item}`)
}
// 10进制转16进制
export const hex = (hex) => {
hex = Number(hex)
return hex < 16 ? '0' + hex.toString(16) : String(hex.toString(16))
}
// 第一次握手
export function handshake1() {
let list = strInsert(`7B12EA01014775696565652d56312e302e30`)
TASK.addTask(list)
}
// 第二次握手
export function handshake2() {
let list = strInsert(`7B0EEA0101436172652079616b6b`)
TASK.addTask(list)
}
// 同步时间
export function asyncDate() {
const now = new Date();
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString();
const day = now.getDate().toString();
const hours = now.getHours().toString();
const minutes = now.getMinutes().toString();
const seconds = now.getSeconds().toString();
const zone = (new Date().getTimezoneOffset() / 60) * -1;
let str = [
"10",
"a1",
"04",
"b2",
hex(zone & 0xff),
hex(year >> 8),
hex(year & 0xff),
hex(month),
hex(day),
hex(hours),
hex(minutes),
hex(seconds),
"00",
"00",
"00",
"00",
]
.toString()
.replaceAll(",", "");
TASK.addTask(strInsert(aes128Encrypt(str)));
}
// -----------------获取---------------------
export function getInitData() {
// 话筒音量
TASK.addTask(strInsert(`7B05EA05B100`));
// 音乐音量
TASK.addTask(strInsert(`7B05EA06B100`));
// 音源设置
TASK.addTask(strInsert(`7B05EA07B100`));
// 蓝牙开关
TASK.addTask(strInsert(`7B05EA08B100`));
// 声卡开关
TASK.addTask(strInsert(`7B05EA09B100`));
// 播放模式
TASK.addTask(strInsert(`7B05EA0AB100`));
// 音乐控制
TASK.addTask(strInsert(`7B05EA0BB100`));
// 超低音强度
TASK.addTask(strInsert(`7B05EA0CB100`));
// 混响模式
TASK.addTask(strInsert(`7B05EA0DB100`));
// 话筒混响
TASK.addTask(strInsert(`7B05EA0EB100`));
// AI
TASK.addTask(strInsert(`7B05EA11B100`));
}