graph LR
PlugManager["PlugManager"]
BasePlug["BasePlug"]
UsbPlugs["UsbPlugs"]
DeviceWrappingPlugs["DeviceWrappingPlugs"]
UserInputPlugs["UserInputPlugs"]
PlugManager -- "manages" --> BasePlug
UsbPlugs -- "extends" --> BasePlug
DeviceWrappingPlugs -- "extends" --> BasePlug
UserInputPlugs -- "extends" --> BasePlug
The Hardware Abstraction & Plugs subsystem provides a flexible and extensible interface for interacting with diverse hardware devices and external systems. It abstracts the complexities of direct hardware communication, enabling tests to interact with devices through a standardized, plug-in based mechanism.
The central orchestrator responsible for managing the lifecycle of all hardware abstraction plugs. This includes their instantiation, initialization, and teardown during a test run, acting as the primary registry and coordinator for plug instances.
Related Classes/Methods:
openhtf.plugs.PlugManager(1:1)
The foundational abstract class for all hardware abstraction plugs. It defines the common interface and core functionalities that all concrete plugs must implement, ensuring a standardized interaction mechanism for tests with diverse hardware and external systems.
Related Classes/Methods:
A comprehensive collection of specialized plugs and utilities designed for interacting with USB-connected devices. This includes high-level implementations for ADB (Android Debug Bridge) and Fastboot protocols, as well as underlying USB communication mechanisms, file synchronization, and shell services.
Related Classes/Methods:
openhtf.plugs.usb(1:1)openhtf.plugs.usb.AdbPlug(1:1)openhtf.plugs.usb.FastbootPlug(1:1)openhtf.plugs.usb.adb_deviceopenhtf.plugs.usb.fastboot_deviceopenhtf.plugs.usb.filesync_serviceopenhtf.plugs.usb.shell_serviceopenhtf.plugs.usb.usb_exceptions(1:1)
Provides mechanisms to seamlessly integrate existing device drivers or external libraries into OpenHTF as standardized plugs. It acts as an adapter, allowing third-party hardware control to conform to the BasePlug interface without requiring extensive re-implementation.
Related Classes/Methods:
openhtf.plugs.device_wrappingopenhtf.plugs.device_wrapping.DeviceWrappingPlug(47:125)
Facilitates interactive communication with the test operator during test execution. This plug enables tests to prompt for user input, display messages, or request confirmations, often integrating with a web-based frontend or console for interaction.
Related Classes/Methods:
openhtf.plugs.user_inputopenhtf.plugs.user_input.UserInput(134:279)openhtf.plugs.user_input.FrontendAwareBasePlugopenhtf.plugs.user_input.ConsolePrompt(63:131)openhtf.plugs.user_input.Prompt(56:60)