fix: 允许在 scanning 状态重新开始扫描

修复重复点击扫描按钮时的错误,现在会重置扫描状态而不是报错
This commit is contained in:
impressionyang 2026-04-16 15:35:23 +08:00
parent 23f671fa62
commit 13e2b36a0c

View File

@ -130,6 +130,13 @@ class ProvisioningManager:
async def start_scanning(self) -> None: async def start_scanning(self) -> None:
"""开始扫描设备.""" """开始扫描设备."""
# 如果已经在扫描中,先重置状态(允许用户重新启动扫描)
if self._state == ProvState.SCANNING:
_LOGGER.info("扫描已在进行中,重置扫描状态...")
self._devices = {}
self._scan_result = []
return
if self._state not in [ProvState.IDLE, ProvState.PROV_COMPLETED, ProvState.PROV_FAILED]: if self._state not in [ProvState.IDLE, ProvState.PROV_COMPLETED, ProvState.PROV_FAILED]:
_LOGGER.warning("无法开始扫描,当前状态:%s", self._state.value) _LOGGER.warning("无法开始扫描,当前状态:%s", self._state.value)
return return