22 lines
748 B
Python
22 lines
748 B
Python
from __future__ import annotations
|
|
|
|
from core.models import Scene
|
|
from device.manager import DeviceManager
|
|
from perception.ocr import PaddleOCREngine
|
|
from perception.provider import DefaultPerceptionProvider, PerceptionProvider
|
|
from tools._device import get_driver
|
|
|
|
|
|
def describe_screen(
|
|
device_id: str | None = None,
|
|
*,
|
|
manager: DeviceManager | None = None,
|
|
ocr_engine: PaddleOCREngine | None = None,
|
|
perception_provider: PerceptionProvider | None = None,
|
|
) -> Scene:
|
|
driver = get_driver(device_id, manager=manager)
|
|
screenshot = driver.screenshot()
|
|
raw_tree = driver.tree()
|
|
provider = perception_provider or DefaultPerceptionProvider(ocr_engine=ocr_engine)
|
|
return provider.build_scene(screenshot, raw_tree)
|