137 lines
4.5 KiB
Markdown
137 lines
4.5 KiB
Markdown
# YX_Voice 协议设计文档
|
|
|
|
## 1. 协议接口定义
|
|
|
|
### 1.1 IProtocolHandler (协议处理接口)
|
|
|
|
```java
|
|
public interface IProtocolHandler {
|
|
void onHandleProtocol(long msgSendTime, String remoteName, Bundle data);
|
|
}
|
|
```
|
|
|
|
### 1.2 IProtocolLogic (协议逻辑接口)
|
|
|
|
```java
|
|
public interface IProtocolLogic {
|
|
void onProtocolLogic(Bundle data);
|
|
}
|
|
```
|
|
|
|
## 2. 协议基类 (BaseProtocol)
|
|
|
|
```java
|
|
public abstract class BaseProtocol implements IProtocolLogic {
|
|
@Override
|
|
public void onProtocolLogic(Bundle data) {
|
|
String cmd = data.getString(VoiceConst.PARAMS_CMD_KEY, "");
|
|
switch (cmd) {
|
|
case CMD_SWITCH_TXZ_WINDOW: // 切换TXZ窗口
|
|
case CMD_PLAY_TTS: // 播放TTS
|
|
default:
|
|
onProtocolParse(data); // 子类实现具体解析
|
|
}
|
|
}
|
|
|
|
protected abstract void onProtocolParse(Bundle data);
|
|
}
|
|
```
|
|
|
|
## 3. 协议映射表
|
|
|
|
```java
|
|
protocolLogicMap.put(CAR_CAR_CONTROL_PKG, new CarControlProtocol()); // 车辆控制
|
|
protocolLogicMap.put(TXZ_PKG_NEW, new VoiceProtocol()); // 语音协议
|
|
protocolLogicMap.put(AIR_PKG, new AirProtocol()); // 空调协议
|
|
protocolLogicMap.put(BLUETOOTH_PKG, new BluetoothProtocol()); // 蓝牙协议
|
|
protocolLogicMap.put(MUSIC_PKG, new MediaProtocol()); // 媒体协议
|
|
protocolLogicMap.put(VIDEO_PKG, new MediaProtocol()); // 视频协议
|
|
protocolLogicMap.put(PHOTO_PKG, new MediaProtocol()); // 图库协议
|
|
protocolLogicMap.put(RADIO_PKG, new MediaProtocol()); // 收音机协议
|
|
protocolLogicMap.put(YX_VOICE_PKG, new YxProtocol()); // 内部协议
|
|
protocolLogicMap.put(SETTING_PKG, new SettingProtocol()); // 设置协议
|
|
protocolLogicMap.put(SYSTEM_UI_PKG, new SystemUIProtocol()); // 系统UI协议
|
|
protocolLogicMap.put(FACTORY_PKG, new FactoryProtocol()); // 工厂模式协议
|
|
protocolLogicMap.put(AVM_PKG, new AvmProtocol()); // 360环视协议
|
|
protocolLogicMap.put(DVR_PKG, new DvrProtocol()); // 行车记录仪协议
|
|
```
|
|
|
|
## 4. 协议命令常量
|
|
|
|
### 4.1 车辆控制类
|
|
|
|
| 命令常量 | 命令名称 | 说明 |
|
|
|----------|----------|------|
|
|
| CMD_OPEN_SUNROOF | openSunroof | 打开天窗 |
|
|
| CMD_CLOSE_SUNROOF | closeSunroof | 关闭天窗 |
|
|
| CMD_OPEN_WINDOW | openWindow | 打开车窗 |
|
|
| CMD_CLOSE_WINDOW | closeWindow | 关闭车窗 |
|
|
| CMD_OPEN_MIRROR_HEAT | openMirrorHeat | 打开后视镜加热 |
|
|
| CMD_OPEN_AVM | openAvm | 打开360环视 |
|
|
|
|
### 4.2 空调控制类
|
|
|
|
| 命令常量 | 命令名称 | 说明 |
|
|
|----------|----------|------|
|
|
| CMD_OPEN_AC | openAc | 打开空调 |
|
|
| CMD_CLOSE_AC | closeAc | 关闭空调 |
|
|
| CMD_SET_AC_WIND_SPEED_LEVEL | setAcWindSpeedLevel | 设置风速档位 |
|
|
| CMD_SET_AC_TEMP_VALUE | setAcTempValue | 设置温度 |
|
|
|
|
### 4.3 系统设置类
|
|
|
|
| 命令常量 | 命令名称 | 说明 |
|
|
|----------|----------|------|
|
|
| CMD_OPEN_BLUETOOTH | openBluetooth | 打开蓝牙 |
|
|
| CMD_OPEN_WIFI | openWifi | 打开WiFi |
|
|
| CMD_SET_VOLUME_TO_VALUE | setVolumeToValue | 设置音量 |
|
|
| CMD_SET_SCREEN_BRIGHTNESS_VALUE | setScreenBrightnessValue | 设置亮度 |
|
|
| CMD_SWITCH_VOICE_WAKEUP | switchVoicewakeup | 语音唤醒开关 |
|
|
| CMD_CUSTOM_WAKE_UP_WORD | customWakeupWord | 自定义唤醒词 |
|
|
|
|
### 4.4 媒体控制类
|
|
|
|
| 命令常量 | 命令名称 | 说明 |
|
|
|----------|----------|------|
|
|
| CMD_PLAY_PAUSE | playPause | 暂停播放 |
|
|
| CMD_PLAY_RESUME | playResume | 继续播放 |
|
|
| CMD_PLAY_PREV | playPrev | 上一首 |
|
|
| CMD_PLAY_NEXT | playNext | 下一首 |
|
|
| CMD_OPEN_APP | openApp | 打开应用 |
|
|
|
|
## 5. 消息格式
|
|
|
|
### 5.1 Bundle格式
|
|
|
|
```java
|
|
Bundle bundle = new Bundle();
|
|
bundle.putString(VoiceConst.PARAMS_CMD_KEY, "命令类型");
|
|
bundle.putInt(VoiceConst.PARAMS_NUM_KEY, 数值);
|
|
bundle.putBoolean(VoiceConst.PARAMS_SWITCH_KEY, 开关状态);
|
|
bundle.putString(VoiceConst.PARAMS_TYPE_KEY, "类型");
|
|
```
|
|
|
|
### 5.2 参数说明
|
|
|
|
| 参数Key | 类型 | 说明 |
|
|
|---------|------|------|
|
|
| PARAMS_CMD_KEY | String | 命令类型 |
|
|
| PARAMS_NUM_KEY | int | 数值参数 |
|
|
| PARAMS_SWITCH_KEY | boolean | 开关状态 |
|
|
| PARAMS_TYPE_KEY | String | 类型参数 |
|
|
|
|
## 6. 状态同步命令
|
|
|
|
| 命令 | 说明 |
|
|
|------|------|
|
|
| syncAcStatus | 同步空调状态 |
|
|
| syncBlueToothStatus | 同步蓝牙状态 |
|
|
| syncWiFiStatus | 同步WiFi状态 |
|
|
| syncMediaVolume | 同步媒体音量 |
|
|
| syncScreenBrightness | 同步屏幕亮度 |
|
|
| syncVoiceWakeUpStatus | 同步语音唤醒开关 |
|
|
|
|
---
|
|
|
|
*文档整理日期: 2026-05-27*
|