Skip to content

Commit 6e9d894

Browse files
author
richardson
committed
添加手机串号,用来解决不同手机连接同一台设备时,消息无法区分的问题
1 parent 9c1a3db commit 6e9d894

File tree

3 files changed

+33
-7
lines changed

3 files changed

+33
-7
lines changed

src/components/InteractionInterface.tsx

+14-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ interface ChatResponse {
2626
servoY: number;
2727
}
2828

29+
export interface MessagePayload {
30+
text: string;
31+
audioBuffer: ArrayBuffer;
32+
expression: string;
33+
deviceName: string;
34+
phoneSerialNumber: string;
35+
}
36+
2937
export const InteractionInterface: React.FC = () => {
3038
const [prompt, setPrompt] = useState('');
3139
const [response, setResponse] = useState<ChatResponse | null>(null);
@@ -34,6 +42,7 @@ export const InteractionInterface: React.FC = () => {
3442
const [servoX, setServoX] = useState(90);
3543
const [servoY, setServoY] = useState(90);
3644
const [deviceName, setDeviceName] = useState('');
45+
const [phoneSerialNumber, setPhoneSerialNumber] = useState('');
3746
const [serverEndpoint, setServerEndpoint] = useState('');
3847
const [servoConfig, setServoConfig] = useState<ServoConfig>({
3948
deviceName: 'Default Device'
@@ -74,12 +83,15 @@ export const InteractionInterface: React.FC = () => {
7483
// 加载设置
7584
const deviceNameSetting = await db.settings.get('deviceName');
7685
const endpointSetting = await db.settings.get('wsEndpoint');
86+
const phoneSerialSetting = await db.settings.get('phoneSerialNumber');
7787

7888
const deviceName = deviceNameSetting?.value || 'Not set';
7989
const endpoint = endpointSetting?.value || '';
90+
const phoneSerial = phoneSerialSetting?.value || '';
8091

8192
setDeviceName(deviceName);
8293
setServerEndpoint(endpoint);
94+
setPhoneSerialNumber(phoneSerial);
8395

8496
// 检查服务器状态
8597
const serverCheck = await checkServerStatus();
@@ -165,7 +177,8 @@ export const InteractionInterface: React.FC = () => {
165177
text: result.response,
166178
audio: audioBuffer,
167179
expression: result.kaomoji ||'neutral',
168-
deviceName
180+
deviceName,
181+
phoneSerialNumber
169182
});
170183
logger.log('Message sent to server successfully', 'INFO', ModelName);
171184

src/components/SettingsPanel.tsx

+16-6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const SettingsPanel: React.FC<SettingsPanelProps> = ({ setIsConfigured })
2424
tts_baseUrl: '',
2525
tts_apiKey: '',
2626
tts_modelName: '',
27+
phoneSerialNumber: '',
2728
});
2829

2930
const { ports, loading, error } = useSerialPorts();
@@ -148,13 +149,22 @@ export const SettingsPanel: React.FC<SettingsPanelProps> = ({ setIsConfigured })
148149
onChange={(e) => handleChange('deviceName', e.target.value)}
149150
/>
150151
</div>
152+
151153
<div>
152-
<label className="block mb-1">WebSocket 服务地址</label>
153-
<Input
154-
value={settings.wsEndpoint}
155-
onChange={(e) => handleChange('wsEndpoint', e.target.value)}
156-
/>
157-
</div>
154+
<label className="block mb-1">WebSocket 服务地址</label>
155+
<Input
156+
value={settings.wsEndpoint}
157+
onChange={(e) => handleChange('wsEndpoint', e.target.value)}
158+
/>
159+
</div>
160+
<div>
161+
<label className="block mb-1">手机串号</label>
162+
<Input
163+
value={settings.phoneSerialNumber}
164+
onChange={(e) => handleChange('phoneSerialNumber', e.target.value)}
165+
placeholder="请输入手机唯一标识符,在手机屏幕连续单机3下获取"
166+
/>
167+
</div>
158168
</div>
159169
</CardContent>
160170
</Card>

src/lib/webSocketService.ts

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export interface MessagePayload {
1010
audioBuffer: ArrayBuffer;
1111
expression: string;
1212
deviceName: string;
13+
phoneSerialNumber: string;
1314
}
1415

1516
// Get server URL from settings
@@ -45,6 +46,8 @@ export async function sendMessage(message: any): Promise<void> {
4546

4647
// 添加表情数据(必需字段)
4748
formData.append('expression', message.expression || 'neutral');
49+
// 添加设备ID(必需字段)
50+
formData.append('deviceId', message.phoneSerialNumber);
4851

4952
// 将 FormData 转换为字节数组
5053
const formDataArray = await formDataToBytes(formData);

0 commit comments

Comments
 (0)