修改音频保存逻辑,后续再完善,添加设备信息保存到数据库

This commit is contained in:
HycJack
2026-04-29 04:24:44 +08:00
parent b37f6fb9cd
commit 7d4ae15fb5
11 changed files with 397 additions and 9 deletions

View File

@@ -2,10 +2,13 @@ import json
import time
import asyncio
from typing import Optional, Dict, Callable, Awaitable
from banban.service.device_setting import device_setting_service
from config import settings
from services.card_service import card_service
from services.offline_audio_cache import offline_audio_cache
import aiomqtt
from banban.service.location import location_service
from database.models import ChildLocationCurrent
from services.device_target_cache import device_target_cache
from utils.logger import session_logger as logger
@@ -97,6 +100,8 @@ class TalkingQMQTTService:
version = data.get("version")
voice = data.get("voice")
logger.info(device_id, "", f"[设备信息] 设备 {d_id} 信息: 电量={power}, 信号强度={signal}, 版本号={version}, 音量={voice}")
# 插入到数据库
await device_setting_service.insert_or_update(device_id=device_id, power=power, signal_strength=signal, version_str=version, volume=voice)
# else:
# logger.warning(device_id, "", f"[设备信息] 设备 {device_id} 查询失败: {payload}")
await self._publish(f"device/{device_id}/event_resp", {"msg_id": "000", "status": "success"})
@@ -108,6 +113,9 @@ class TalkingQMQTTService:
lat = data.get("latitude")
lon = data.get("longitude")
logger.info(device_id, "", f"[GPS] 设备 {device_id} 位置: 纬度={lat}, 经度={lon}")
# 插入到数据库
location = ChildLocationCurrent(device_id=device_id, lat=lat, lon=lon)
await location_service.insert_or_update(device_id=device_id, location=location)
else:
logger.warning(device_id, "", f"[GPS] 设备 {device_id} 查询失败: {payload}")
@@ -117,6 +125,9 @@ class TalkingQMQTTService:
if status == "success":
level = data.get("current_level")
logger.info(device_id, "", f"[音量] 设备 {device_id} 当前音量: {level}")
# 更新设备音量
await device_setting_service.insert_or_update(device_id=device_id, volume=level)
else:
logger.warning(device_id, "", f"[音量] 设备 {device_id} 调节失败: {payload}")
@@ -130,6 +141,8 @@ class TalkingQMQTTService:
elif status == "success":
new_ver = data.get("new_version")
logger.info(device_id, "", f"[OTA] 设备 {device_id} 升级完成: {new_ver}")
# 更新设备版本号
await device_setting_service.insert_or_update(device_id=device_id, version_str=new_ver)
else:
logger.warning(device_id, "", f"[OTA] 设备 {device_id} 升级异常: {payload}")