first commit

This commit is contained in:
admin committed 2026-11-05 14:35:04 +08:00
commit 669f49b1d6
342 files changed
+320811

No files matched your search

@@ -0,0 +1,136 @@
# 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*