|
@@ -10,6 +10,17 @@ import {
|
|
CmdWeek
|
|
CmdWeek
|
|
} from './bt_cmd';
|
|
} from './bt_cmd';
|
|
|
|
|
|
|
|
+import {
|
|
|
|
+ CmdEvent,
|
|
|
|
+ EnumCmdEvent,
|
|
|
|
+ EnumPlayStatus,
|
|
|
|
+ EnumSupplier
|
|
|
|
+} from '../cmd_key_event';
|
|
|
|
+
|
|
|
|
+import EventManager from '../../utils/event_bus'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
class BtParse {
|
|
class BtParse {
|
|
// 型号名称
|
|
// 型号名称
|
|
// static mateX2 = "MW-Mate X(4G_WIFI)";
|
|
// static mateX2 = "MW-Mate X(4G_WIFI)";
|
|
@@ -58,46 +69,50 @@ class BtParse {
|
|
// 查询版本号后校验设备
|
|
// 查询版本号后校验设备
|
|
else if (type === CmdBase.queryVersion) {
|
|
else if (type === CmdBase.queryVersion) {
|
|
const version = CmdBase.parseVersion(value);
|
|
const version = CmdBase.parseVersion(value);
|
|
- //EventManager.fire(CmdEvent.version(version));
|
|
|
|
- //EventManager.fire(CmdEvent.getDeviceInfo());
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.version(version));
|
|
|
|
+ EventManager.fire(CmdEvent.getDeviceInfo());
|
|
} else if (BtParse._getDataHeader(cmd)) {
|
|
} else if (BtParse._getDataHeader(cmd)) {
|
|
// 控制指令
|
|
// 控制指令
|
|
BtParse._controlCmd(cmd);
|
|
BtParse._controlCmd(cmd);
|
|
} else {
|
|
} else {
|
|
|
|
+ console.log("收到不明指令:", cmd);
|
|
const manufacturer = "";
|
|
const manufacturer = "";
|
|
// DeviceManager.instance.device?.manufacturer ?? "";
|
|
// DeviceManager.instance.device?.manufacturer ?? "";
|
|
|
|
|
|
// 山景的语音判断
|
|
// 山景的语音判断
|
|
- if (manufacturer === EnumSupplier.shanJing) {
|
|
|
|
- const sjCmd = cmd[4];
|
|
|
|
- if (sjCmd === CmdVoice.sjStartVoice) {
|
|
|
|
- BtParse._startRecord(EnumSupplier.shanJing);
|
|
|
|
- } else if (sjCmd === CmdVoice.sjStopVoice) {
|
|
|
|
- BtParse._stopRecord(EnumSupplier.shanJing);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 山景的都要走接收数据
|
|
|
|
- BtParse._receiveRecordData(cmd);
|
|
|
|
- } else {
|
|
|
|
- // b1耳机、领芯、杰里p2第二部分语音数据直接走这里
|
|
|
|
- BtParse._receiveRecordData(cmd);
|
|
|
|
- }
|
|
|
|
|
|
+ // if (manufacturer === EnumSupplier.shanJing) {
|
|
|
|
+ // const sjCmd = cmd[4];
|
|
|
|
+ // if (sjCmd === CmdVoice.sjStartVoice) {
|
|
|
|
+ // BtParse._startRecord(EnumSupplier.shanJing);
|
|
|
|
+ // } else if (sjCmd === CmdVoice.sjStopVoice) {
|
|
|
|
+ // BtParse._stopRecord(EnumSupplier.shanJing);
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // // 山景的都要走接收数据
|
|
|
|
+ // BtParse._receiveRecordData(cmd);
|
|
|
|
+ // } else {
|
|
|
|
+ // // b1耳机、领芯、杰里p2第二部分语音数据直接走这里
|
|
|
|
+ // BtParse._receiveRecordData(cmd);
|
|
|
|
+ // }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
static _send(cmdEvent) {
|
|
static _send(cmdEvent) {
|
|
- // todo
|
|
|
|
- // EventManager.fire(CmdEvent[cmdEvent]);
|
|
|
|
|
|
+ EventManager.fire(CmdEvent[cmdEvent]);
|
|
}
|
|
}
|
|
|
|
|
|
static _getDataHeader(cmd) {
|
|
static _getDataHeader(cmd) {
|
|
if (cmd.length < 4) {
|
|
if (cmd.length < 4) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
+ ["54", "44", "44", "48", "1", "9", "22", "1", "4"]
|
|
|
|
+
|
|
const header = [0x54, 0x44, 0x44, 0x48];
|
|
const header = [0x54, 0x44, 0x44, 0x48];
|
|
- return cmd[0] === header[0] && cmd[1] === header[1] && cmd[2] === header[2] && cmd[3] === header[3];
|
|
|
|
|
|
+ let isCmd = cmd[0] === header[0] && cmd[1] === header[1] && cmd[2] === header[2] && cmd[3] === header[3];
|
|
|
|
+ // console.log("收到数据头:", cmd[0], header[0], cmd[1], header[1], cmd[2], header[2], cmd[3], header[3],);
|
|
|
|
+ return isCmd;
|
|
}
|
|
}
|
|
|
|
|
|
// todo 暂时不要
|
|
// todo 暂时不要
|
|
@@ -159,12 +174,6 @@ class BtParse {
|
|
switch (type) {
|
|
switch (type) {
|
|
// 校验设备
|
|
// 校验设备
|
|
case CmdBase.checkDeviceSuccess:
|
|
case CmdBase.checkDeviceSuccess:
|
|
- // 设置100ms间隔,同时发会丢失指令
|
|
|
|
- // DeviceManager.instance.setLowKwhWarningTone();
|
|
|
|
- // DeviceManager.instance.queryLowKwhWarningTone();
|
|
|
|
- // DeviceManager.instance.getAutoPlay();
|
|
|
|
- // DeviceManager.instance.setTime();
|
|
|
|
- // DeviceManager.instance.getDeviceInfo();
|
|
|
|
break;
|
|
break;
|
|
|
|
|
|
// 按键 短按、长按等
|
|
// 按键 短按、长按等
|
|
@@ -299,34 +308,35 @@ class BtParse {
|
|
}
|
|
}
|
|
|
|
|
|
// 仅用于记录设备音量,播控页面显示用
|
|
// 仅用于记录设备音量,播控页面显示用
|
|
- //EventManager.fire(CmdEvent.volume({ volume: trueVolume }));
|
|
|
|
- // if (DeviceUtil.isAndroid) {
|
|
|
|
- // const name = "";
|
|
|
|
- // // DeviceManager.instance.name;
|
|
|
|
- // if (name === "猫王·霹雳唱机") {
|
|
|
|
- // // VolumeUtil.setVolume(trueVolume);
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.volume({ volume: trueVolume }));
|
|
|
|
+ if (DeviceUtil.isAndroid) {
|
|
|
|
+ const name = "";
|
|
|
|
+ // todo
|
|
|
|
+ // DeviceManager.instance.name;
|
|
|
|
+ if (name === "猫王·霹雳唱机") {
|
|
|
|
+ // VolumeUtil.setVolume(trueVolume);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
|
|
|
|
// 查询电量
|
|
// 查询电量
|
|
case CmdKwh.queryKwh:
|
|
case CmdKwh.queryKwh:
|
|
- //EventManager.fire(CmdEvent.battery({ kwh: value }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.battery({ kwh: value }));
|
|
break;
|
|
break;
|
|
|
|
|
|
// 自动播放 54, 44, 44, 48, 1, 9, 24, 1, 1
|
|
// 自动播放 54, 44, 44, 48, 1, 9, 24, 1, 1
|
|
case CmdBase.getAutoPlay:
|
|
case CmdBase.getAutoPlay:
|
|
case CmdBase.setAutoPlay:
|
|
case CmdBase.setAutoPlay:
|
|
- // setTimeout(() => {
|
|
|
|
- // EventManager.fire(CmdEvent.playStatus({
|
|
|
|
- // playStatus: value === EnumOpen.open ? EnumPlayStatus.play : EnumPlayStatus.pause,
|
|
|
|
- // }));
|
|
|
|
- // }, 300);
|
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ EventManager.fire(CmdEvent.playStatus({
|
|
|
|
+ playStatus: value === EnumOpen.open ? EnumPlayStatus.play : EnumPlayStatus.pause,
|
|
|
|
+ }));
|
|
|
|
+ }, 300);
|
|
break;
|
|
break;
|
|
|
|
|
|
// 查询低电量设置
|
|
// 查询低电量设置
|
|
case CmdKwh.queryLowKwhWarningTone:
|
|
case CmdKwh.queryLowKwhWarningTone:
|
|
- //EventManager.fire(CmdEvent.queryLowKwn({ kwh: value }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.queryLowKwn({ kwh: value }));
|
|
break;
|
|
break;
|
|
|
|
|
|
// 耳机电量 index0 :左耳机, index1:左耳机 ,index2: 充电盒。value: 0-9代表10-100% 获取不到用-1
|
|
// 耳机电量 index0 :左耳机, index1:左耳机 ,index2: 充电盒。value: 0-9代表10-100% 获取不到用-1
|
|
@@ -342,12 +352,12 @@ class BtParse {
|
|
kwh = Math.max(value, rightKwh);
|
|
kwh = Math.max(value, rightKwh);
|
|
}
|
|
}
|
|
|
|
|
|
- // EventManager.fire(CmdEvent.batteryEarphone({
|
|
|
|
- // kwhLeft: value,
|
|
|
|
- // kwhBox: boxKwh,
|
|
|
|
- // kwhRight: rightKwh,
|
|
|
|
- // kwh: kwh,
|
|
|
|
- // }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.batteryEarphone({
|
|
|
|
+ kwhLeft: value,
|
|
|
|
+ kwhBox: boxKwh,
|
|
|
|
+ kwhRight: rightKwh,
|
|
|
|
+ kwh: kwh,
|
|
|
|
+ }));
|
|
break;
|
|
break;
|
|
|
|
|
|
// EQ [84, 68, 68, 72, 1, 18, 180, 10, 0, 0, 240, 237, 236, 0, 236, 0, 0, 0]
|
|
// EQ [84, 68, 68, 72, 1, 18, 180, 10, 0, 0, 240, 237, 236, 0, 236, 0, 0, 0]
|
|
@@ -357,14 +367,14 @@ class BtParse {
|
|
const result = cmd.slice(8, cmd.length);
|
|
const result = cmd.slice(8, cmd.length);
|
|
const list = result.map(element => parseInt(element, 16));
|
|
const list = result.map(element => parseInt(element, 16));
|
|
console.log("eq==============", list);
|
|
console.log("eq==============", list);
|
|
- // EventManager.fire(CmdEvent.eqs({ eqs: list }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.eqs({ eqs: list }));
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
// 低延迟 [54, 44, 44, 48, 1, a, b2, 2, 0, 2]
|
|
// 低延迟 [54, 44, 44, 48, 1, a, b2, 2, 0, 2]
|
|
case CmdEarPhone.queryLowDelayMode:
|
|
case CmdEarPhone.queryLowDelayMode:
|
|
const lowDelayMode = cmd[9];
|
|
const lowDelayMode = cmd[9];
|
|
- // EventManager.fire(CmdEvent.lowDelayMode({ lowDelayMode, lowDelayModeOpen: value }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.lowDelayMode({ lowDelayMode, lowDelayModeOpen: value }));
|
|
break;
|
|
break;
|
|
|
|
|
|
// 耳机低电量
|
|
// 耳机低电量
|
|
@@ -382,19 +392,19 @@ class BtParse {
|
|
const minutes = cmd[11];
|
|
const minutes = cmd[11];
|
|
const wakeCycle = CmdWeek.cmd2Week(week);
|
|
const wakeCycle = CmdWeek.cmd2Week(week);
|
|
console.log("queryAlarm=====", wakeSwitch, "=", wakeCycle);
|
|
console.log("queryAlarm=====", wakeSwitch, "=", wakeCycle);
|
|
- // EventManager.fire(CmdEvent.wake({
|
|
|
|
- // wakeSwitch,
|
|
|
|
- // wakeCycle,
|
|
|
|
- // wakeHour: hour,
|
|
|
|
- // wakeMinutes: minutes,
|
|
|
|
- // }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.wake({
|
|
|
|
+ wakeSwitch,
|
|
|
|
+ wakeCycle,
|
|
|
|
+ wakeHour: hour,
|
|
|
|
+ wakeMinutes: minutes,
|
|
|
|
+ }));
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
// 查询自动休眠状态
|
|
// 查询自动休眠状态
|
|
case CmdRtc.querySleepAfterPlayPause:
|
|
case CmdRtc.querySleepAfterPlayPause:
|
|
case CmdRtc.setSleepAfterPlayPause:
|
|
case CmdRtc.setSleepAfterPlayPause:
|
|
- //EventManager.fire(CmdEvent.pauseSleep({ pauseSleep: value }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.pauseSleep({ pauseSleep: value }));
|
|
break;
|
|
break;
|
|
|
|
|
|
// 查询休眠
|
|
// 查询休眠
|
|
@@ -404,11 +414,11 @@ class BtParse {
|
|
const minutes = cmd[10];
|
|
const minutes = cmd[10];
|
|
const leftHour = cmd[11];
|
|
const leftHour = cmd[11];
|
|
const leftMinutes = cmd[12];
|
|
const leftMinutes = cmd[12];
|
|
- // EventManager.fire(CmdEvent.sleep({
|
|
|
|
- // sleepSwitch,
|
|
|
|
- // sleepHour: hour,
|
|
|
|
- // sleepMinutes: minutes,
|
|
|
|
- // }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.sleep({
|
|
|
|
+ sleepSwitch,
|
|
|
|
+ sleepHour: hour,
|
|
|
|
+ sleepMinutes: minutes,
|
|
|
|
+ }));
|
|
break;
|
|
break;
|
|
|
|
|
|
// 开始录音
|
|
// 开始录音
|
|
@@ -422,7 +432,7 @@ class BtParse {
|
|
const singleC = cmd[8];
|
|
const singleC = cmd[8];
|
|
const doubleC = cmd[9];
|
|
const doubleC = cmd[9];
|
|
const longC = cmd[10];
|
|
const longC = cmd[10];
|
|
- //EventManager.fire(CmdEvent.ctrlStatus({ ctrlStatus: [singleC, doubleC, longC] }));
|
|
|
|
|
|
+ EventManager.fire(CmdEvent.ctrlStatus({ ctrlStatus: [singleC, doubleC, longC] }));
|
|
break;
|
|
break;
|
|
|
|
|
|
default:
|
|
default:
|